Linux

The Evolution of Linux

After a run-in with a cheap KVM Jack Wallen discovers that Xorg has evolved into something he never expected. In this open source blog entry you might get a glimpse of where Linux is heading and whether or not this is a good thing.

Recently I had a situation where a KVM was the cause of Xorg not being able to read the correct modes from my monitor. It took me a while to figure out what was going on, but in the process I discovered something about the most recent Xorg that is both exciting and disturbing at the same time.

The situation had me installing Fedora 10 on my desktop that had been running Ubuntu 8.10. Because the KVM switch was keeping Xorg from setting up 1200x1024 resolution, I thought I might just have to hand-tweak my xorg.conf in order to get it. Not a problem, I've done it hundreds of times.

Funny how things can quickly take a turn for the "huh?".

I opened up a terminal window, su'd to root, changed to the /etc/X11 directory, and issued the ls command. What I saw gave me pause. There was no xorg.conf file. I had a machine up and running, in full 5 runlevel, with no X configuration file. How is that so? Well, it turns out that is where Xorg is heading (as of release 7.4). And I'm not sure I like it.

Don't get me wrong, I understand the "why." For large-scale adoption, Linux needs to be as simple to use as the competition. One way to make this so is to take the guess work out of setting up such things as video. And I think it's safe to say we all know that configuring video has, in the past, been a nightmare on certain chipsets. And to that end I can fully understand why the developers would want to go this route. And if they can create a fool-proof system that will be able to successfully configure X Windows with zero user intervention, more power to them. But I think this is a sign of things to come, and that sign looks like a Merge with Linux and Windows.

How so? I'll tell you. It used to be that every single system in Linux had a handy, user-editable configuration file (most often found in the /etc directory). If there was ever a problem you simply had to open up that file and make a few modifications. Some of these systems are evolving in such a way that the configuration files have either disappeared altogether or spread out over numerous files that are either hard to find or figure out.

Personally, I don't want a Linux that obfuscates or does away with configuration files. It doesn't make sense to me. I want my Linux flexible. Of course I understand that even in this "new-fangled" Xorg, if I am not happy with an xorg.conf-less set up I can generate one with the Xorg -configure :1 command and then edit it myself. But if this new setup is heralding a new era of Linux then I worry that, when something goes wrong, the only way to solve a problem will be the old fashion Microsoft way of re-installing. That just will not do. But my complaint is not the loudest voice in the choir. No, the loudest voice is the one crying to make Linux ever-easier. And that is certainly the voice that needs to be heard. But I don't think the solution is to cut off us old-school users all together.

The answer is not to add another step to the installation process. In fact, the answer most likely lies in the end-users themselves. For those of us old-timers it might be time to allow Linux to evolve into something a bit easier for the masses to swallow. For the longest time we have barked and cried for "World Domination". But just like when U2 "sold out" after the Joshua Tree album, those who have cried the loudest for domination do an about face when it seems Linux is on to something that could tip the scales.

I cry, "Why are you making this too simple?" at the same time new users are crying "Why is this so hard?"

I think we can both have our cake and eat it too, but the old-schoolers are going to have to (and I borrow a phrase here) "eat our own dog food."

As a Linux user who is pretty confident in most areas of the OS (sans development) I don't have a problem with creating and editing an xorg.conf. So if Xorg wants to evolve in such a way that X Windows doesn't require an xorg.conf file (but can use one if the user so desires), then us old-timers will enjoy taking the user-friendly release and rockin' it old school.

And I am sure it's only a matter of time before the latest version of Fedora is forked and a newer, less user friendly version will appear. At that point there will be a Linux for every skill level. And from that, world domination will ensue.

About

Jack Wallen is an award-winning writer for TechRepublic and Linux.com. He’s an avid promoter of open source and the voice of The Android Expert. For more news about Jack Wallen, visit his website getjackd.net.

55 comments
mikifinaz1
mikifinaz1

I can get a Mac or WinX machine. I have been a proponent of dual level systems as much as most people hate it. One level runs on automatic for the new people, but there are always hooks for power users to manipulate the software, and this is what Linux should shoot for to make it easy for people to move to it and powerful enough for them to stay.

gettinoriginal2
gettinoriginal2

As an active user of Linux forums, I see many threads asking for help because of wrong resolution, video drivers, etc. It was much easier to help these people with editing their Xorg.conf than it is to say go here, post results, do this, do that. Plus, I see a lot of new users getting frustrated because their system does not "fit" the default, and without the xorg, the fix is CL intensive, so back to Windows they go. I do not mind, and even like most of the advancements that Linux is making, but give me editable files so that I can change it if I want to. After all, that is why I left Windows, the computer told me what I could and could not do. I came to Linux because I could tell my computer what to do.

chris
chris

why not just include GUI tools for everyone who wants it? That way you can configure your heart out...or not.

geofs2
geofs2

First thing I do is to create xorg.conf because I want to use the 'i810' driver instead of the 'intel' driver (it makes my laptop hang at shutdown). BTW, it's not only Xorg, it's also * udev and friends loading unneeded crap (e.g. alsa snd-* on an headless IBM pSeries... come on) that can't be avoided without playing with ugly blacklists when it's even possible * that IPv6 bloat on every single linux installation, useless, confusing, source of errors and configuration nightmares * Avahi automated configuration, that crap so many packages depend on and nobody uses (Bluetooth: same thing as avahi) * CUPS discovery * Samba broadcasts * Soon, the event-based init replacements (upstart) will bring more nightmares and headaches... * and the list goes on and goes on and goes on Dummy newbie stuff really killed what I liked the most about Linux: it's simplicity. Nowadays, everything is so complex and (badly) automated that it's almost impossible to tune a Linux install correctly and to have a system perfectly configured the way _I_ want it to be and not as some lousy distro devels have decided it would be.

vhrocker
vhrocker

create a new xorg.conf file. I know it can be a daunting task, but still quite possible. Doing a "man Xorg" and scrolling to bottom should tell you of the files (and corresponding directories) used for Xorg configuration. "Xorg -configure" should create a skeleton file in /root Just edit the file and mv to your "favorite" directory. I say favorite because there are actually several places Xorg looks for the .conf file and they should be listed in your man page. Here is some great documentation on doing this: http://www.freebsd.org/doc/en_US.ISO8859-1/books/handbook/x-config.html I also had some issues with my monitor not sending out config settings, but I can't recall the tools I used to pull them. I also doubt that that is common, as every other monitor I used. but mine, worked great. If someone needs this contact me, and I'll see if I can dig back...

chhoup
chhoup

If you think the changes to xorg makes for fun, wait till you dig into the new changes with GNOME and Network Manager. For one, GNOME removed the login editor and appears to be migrating to a pure xml based file format. Network Manager ads even more fun.

kwintesse
kwintesse

You have to remember that X11 is from a time where the display (and keyboard and mouse) normally got connected to your system when it was bought and placed on your desk and would be changed until something broke down. This is just not how we do things anymore today. Nowadays it's normal to plug in an extra display when you want to give a presentation or a TV when you want to watch a DVD, etc. And it this time that's exactly where Linux still falls flat on its face, even the developers working on X admit that often it just doesn't work and even they don't want to start editing xorg.conf files in the middle of a conference room with hundreds waiting for them to begin their presentation. What to do with a newly connected display might even depend on the software you're running it the time, if it's an external monitor when you're editing some documents you probably want your desktop expanded but if you're watching a movie you probably want the new display dedicated to it fullscreen. So a static configuration file just gets more akward as times change and our usage of our computer and it's in/output devices change with it.

Jaqui
Jaqui

grounds too start a fork of GNU-Linux to me. to keep a real, free, geeky os available.

Tony Hopkinson
Tony Hopkinson

having setup write the conf file and then using it. Is the conf file you can now create more limited than the 'old' one. The only reason I can see to run with no config file, is to diiot proof it if someone accidentally deletes it, which is damned unlikely given the level of knowledge of the users they are doing this to cater for. Unless, of course some options that were in the old file are now 'dangerous' in some way.

wozyjob
wozyjob

I do appreciate your point. Like you, I always want to retain absolute control over my machine, even over the most obscure features, and I would like to be able to edit a simple plain-text file to achieve this. However, and forgive me if I'm wrong, but I believe that as far as Xorg goes, you can simply add an appropriate xorg.conf file to the directory as usual and have everything under your control as before. No functionality or power lost. The only difference (again, if I'm correct) is that the configuration file simply isn't absolutely necessary as before. The software will just default to whatever it thinks is safe, suitable, and functional. If what I have outlined here isn't already the case, then I think it is one that should be considered, and one that could satisfy both the need for control by text file and default safe/suitable/functional behavior.

abilenercruz
abilenercruz

So I'm not the only one who noticed the missing xorg.conf but I wish I knew that it's part of the grand plan. But still, it lessens the pain of setting things up.

sagaciouskjb
sagaciouskjb

Yeah, I agree that removing configuration ability is not the right way to try to simplify things. In all reality, it just makes the whole thing more complicated; sure it might "just work", but for anyone that wants that nice ability to configure it custom, it suddenly became a lot harder. I think that there are already enough applications used to edit xorg.conf to really necessitate this in the first place. I'm one of the guys that likes customized things; I learned how to configure my xorg.conf file to display two x-screens. Not a huge feat by any means, but when I first had to learn how to do it, it seemed like an unsurmountable odd, but it taught me a lot of things about xorg.conf that aided me in the future. Afterwards, I found the nvidia-settings application, that allowed me to use a simple GUI and edited the xorg.conf itself. This was very nice and automated, saved a lot of time. However, there was a problem; every once a in a while it did not edit the file correctly. This was no problem, I could simply open xorg.conf and look to see what was wrong. However, if we transition into a point where we have no idea how to configure it on the lowest level, how are we to manage when the automated approach just doesn't work?

fatbuttlarry
fatbuttlarry

Jack, I have the utmost repect for the techrepublic, and your opinion on this matter. I've noticed this myself... I run a modern Linux OS and I keep a close eye on the xorg.conf file after making changes. I tend to use the non-text approach to modify my settings when possible... and we all know... this is not always possible. Well, the upgrade to the latest and greatest xorg landed me in the same crapshoot. I had an x server that woudln't start and dpkg-reconfigure xserver-xorg only made changes to my keyboard settings... What gives? Well, luckily the distro (actually gnome) prompted to start in what it called "low graphics mode". Not sure how it asked me this in a gui, as gui's need x, but lets throw recursion out the window for the purpose of this story. After starting in low-graphics mode, I was able to remove all 3rd party video related packages from the install and reinstall the proprietary drivers with some luck. To my surprise, the screen's refresh rate settings were listing properly (a problem I had with the previous distro) and things "just worked". From there, the xserver asked to load my modified .Xmodmap file, containing some keyboard overrides. This caused problems, but all in all, I really didn't need to poke into the xorg.conf file. Every time I edit a file in Linux to get a graphical program to work, i think of the windows 3.11 days. I never want to go back to those days, and because of that, I'd love to rid of that xorg.conf file. Your argument is still valid though... How do we customize a flat file system OS when settings aren't stored in a flat file system? Also... how do we build our own embedded devices 10 years from now when we've all forgotten how to get the old xorg files working? I'm not sure I have an answer, but I dream of the day the graphics "just work" and I see GNU Linux getting closer and closer each distro that's released, and that is very very comforting from a "lets get some sh*t done now" perspective! :) -Tres

seanferd
seanferd

Create a conf file with a "use this file/don't use this file" setting? Whatever; at least you can still use one if desired or necessary.

HAL 9000
HAL 9000

Most computer users just want it to work like a car turn the keys and use it. They do not want to configure or mess around with the system they just want it to work regardless of what they throw at it. That is the market that Nix has to address if they want Large Scale Use of the OS. Doesn't matter that Widows doesn't fit this requirement either they don't want to get a CS Degree just to use that $300.00 Net Book that they bought yesterday. The computer is a Domestic Appliance just like a Washing Machine or a Cordless Phone these days and that is why Windows is so big it's easier to us for the [b]Complete Idiot.[/b] The Problem with Dumbing down Linux is that it will hurt the Real Power Users who want to do as they please not as the computer tells them is possible. Personally I don't think that both camps can be adequately serviced but as the [b]Big Potential Market[/b] isn't for the Power Users I think we are all going to suffer as things progress to the No Brainier OS that is required/wanted by the Masses. The way things need to go is that we all ask [b]Whats a Manual[/b] to be perfect for the majority of people who use this Platform. :( Col

Neon Samurai
Neon Samurai

I'm getting noise in my logs which apears to be ipv6 related based on searching the warning message from Tiger (the security scanner not the OS). It would be nice if IPv6 was off by default or easily disabled. I don't yet trust that the two aliases in 00local I added to my etc/blah directory are really disabling the protocol.

chris
chris

Be nice about the dummy newbie stuff :-P Some of us like using linux for what it stands for/against, not because we salivate over CLI

Neon Samurai
Neon Samurai

I'm kidding. I really can't see how better hardware detection is not better for the end user so I'm all for it. There are cases like the KVM boxes though. Sometimes a static config file is a better solution. Ideally, Xorg should be able to read the static config file but still realize that an external or second/third/fourth monitor has been temporarily attached. For now, my Mandriva 2008.1 and Debian boxes work for my needs though and both are getting patches still so I can wait for Xorg to figure this out.

Jaqui
Jaqui

if the "dynamic" config can't give the desired resolution then the system is broken and needs to be fixed. until it dynamically allows for ALL possible resolutions of the monitor, even through a KVM switch, it needs to be scrapped and the static xorg.conf is used. edit to add: any sales rep that doesn't bring everything they require to give a presentation should be unemployed, that INCLUDES projection system to make the presentation viewable by a large group. if it's a training presentation, then it's even MORE important for the rep to bring needed hardware with them. No rep should rely on a client, or potential client, to have the needed hardware for them to do their job.

Neon Samurai
Neon Samurai

or Gentoo.. if you want to go half and half on the roll your own. ;)

chris
chris

you could have a check for it and regenerate the default one if it was deleted or whatever.

vhrocker
vhrocker

Sorry I didn't read this post before I posted below. I added a link for good Xorg help if needed.

Neon Samurai
Neon Samurai

I don't see why Xorg couldn't look for "regenerateconfig = yes" at the top of the .conf then run it's autoconfig function and write changed back down to the .conf. If "regenerateconfig = no" then it runs in ye'ol static config manner. I guess we'll see how it goes though. I suspect there will always be more manual distributions for those who like to adjust things.

techrepublic
techrepublic

Just look at this recent article about how much the demand for Linux programmers is skyrocketing right now. Incredible!!!

rbees
rbees

I recently installed Debian Lenny RC on a desktop and had no idea until I saw this article that anything had changed. I wondered why when I ran the dpkg-reconfigure thing I didn't get any options to set the driver and resolution and whatnot. I had some issues with getting the xserver to work correctly on reboot. I ended up having to enable the frame buffer. I also have a lot of extra resolutions that don't work with my monitor. I did get a xorg.conf file with the install but it is very generic and limited. I am running through a kdm too. Seams to me that the developers should have put a comment in the xorg.conf file that says that the system setup has been changed and what to do about it if the automatic stuff does not work correctly. I also don't like the idea of loosing the option of using a custom configuration in part of my system.

ihatespam
ihatespam

I must say that I agree with you completely. The absolute worst invention in the history of computers has to be the Windows registry. They took a brain-dead-simple flat-file, which was easy to read, understand, and change (not to mention backup) and changed it into a monstrously twisted labyrinth that practically defies human comprehension. However, I fear that there are elements in the Linux developer community who see that sort of complexity as a good thing, a desirable thing. Why, I don't know. But I prefer to keep things *simple*, and more importantly, when something *works well*, I don't believe it should be changed without a very, very good reason. Recently, I upgraded my Ubuntu 8.04 installation to the latest 8.10, and got caught with this change in xorg. As a result, I lost functionality when changes I made to support non standard hardware (e.g., a multi-button mouse) were commented out of the original config file without being transferred to the new system. After spending a lot of time with Google trying to learn how to implement the changes I needed in the new system, I finally gave up and went back to 8.04. I don't have time to fiddle with the OS -- I have *work* to do. If they're going to make my life harder by changing the rules on me, the developers have a duty to document the transition and make it more automatic. Leaving people lost at sea, assuming that ordinary users have the knowledge and ability to "fix it themselves" (whatever change "it" happens to be at the moment) is the height of arrogance.

phantomelr
phantomelr

It doesn't have exactly the setting "use this file/don't use this file". But if you put the file, then X use the file, if you don't, then X starts without it. I like this way and i wish the developers of X don't change it. I was a new user 3 years before and configuring xorg.conf was so difficult that i almost went back to windows, but after understanding how to do it i realize that tuning up your machine just the way you like it is the best part of linux and that was what made me love this OS. I feel that is good to have a simple way for new users, but please don't remove the old way of configuring (tuning) your machine for the advanced users.

stomfi
stomfi

Having poor vision, I always used CTRL-ALT-+ to zoom a virtual screen to 640x480. This is gone in the current xorg,conf replaced with "Configured Screen". Luckily I can still replace this with the old style rules. Another problem with older hardware is video hardware that freezes the system using say the "nv" or "nvidia" driver. Replacing this temporarily with "vesa" at least let one track down the problem or install extra RAM to permanently use vesa. I run a charity that donates 500 Linux refurbished older computers per year to the local digital divide, many that we have to configure in this way and put in some extra RAM to compensate. Without a config file how can one refurbish older equipment with video driver problems, or even set it up for people with failing vision?

vhrocker
vhrocker

Linux was meant to be a Unix clone, but perhaps I'm wrong.

Neon Samurai
Neon Samurai

While the politics is fun to debate, some of us use Linux because it's the better platform for our needs rather than some holy crusade.

chris
chris

sales people, right? :-) sorry, that's probably mean.

Jaqui
Jaqui

a distro, a complete fork. as in openBSD forked off of freeBSD. with enough code changes to actually be licensable under a completely different license.

Jaqui
Jaqui

nope, not quite. a fork, completely different than a roll your own distro.

Tony Hopkinson
Tony Hopkinson

This is a lot of work and wheel re-inventing to make a more complex, less robust and more tightly coupled design. Muppetville

Bernie S
Bernie S

I ran into this problem when I installed the proprietary nVidia driver. There is an nvidia config tool (nvidia-xconfig, I believe) that you must use for nVidia's proprietary driver, instead of the standard Linux/Xorg/your-distro-here graphics configuration tool for the open nv driver.

shryko
shryko

they could've left the xorg.conf file in place, and just made it so that there is a lot more automation in the setup process, and a lot more auto-detection/auto-configuration... they didn't have to make the file disappear, basically. All that said, I'm with you on the "just have it work, let me do what I'm supposed to do, not fuss with the OS"... and as such, I'd rather this current setup... the main issue with what you said, is that it appears that the update installer did not try to find out if the xorg.conf was custom or not.

pgit
pgit

The problem with this is when the adapter and monitor aren't speaking. The 'new' method is to generate the sub system every boot. This helps immensely when changing hardware, but then how often do you do that realistically? But if for whatever reason the monitor EDID isn't reported to the system at boot, you get the black screen with text log in. Then you're in Linux dark ages configuring an xorg.conf 'in the black.' Few can handle this. I bought a used mobo for my main system, and the on board video wouldn't talk to the monitor. I used a live CD to manually stick an appropriate xorg file in place. PITA but doable, but again only by the few. I think this is sort of a 'right' direction to go, but I also agree there should be an xorg.conf generated that's as close to correct as possible, to make editing easier if it comes to that. Like Jack said, a person posting in a forum usually has no problem editing a few lines in a config file, so long as the file is there, and the system will use it... How that gets handled I don't know. I'd write the X setup (boot) routine such that if monitor-edid returns nothing, the xorg.conf file is called and used. That would be too logical?

shardeth-15902278
shardeth-15902278

Default "plug-n-play", With the ability to override and go "old-school" simply by doing what you've always done. Seems like a pretty rational approach to meeting both needs.

seanferd
seanferd

Why does X not store the auto-configured settings in the xorg.conf?

HAL 9000
HAL 9000

Just that we may have to get used to it as we are not that important any longer once the Push for [b]Mass Market Appeal[/b] has started. :( I can see both sides and personally I don't like either of them but as that seems to be the way things are developing we just may be required to [b]Learn To Live With It.[/b] Col

vhrocker
vhrocker

It's just a 'tad annoying when everyone is a die-hard windows hater and thinks Linux is meant to be the Windows replacement OS. Yes, it may replace many Windows boxes, but it's actually a UNIX replacement OS...

seanferd
seanferd

Yes, it was designed as a Unix for those (well, actually Torvalds at first) who mostly use x86 hardware, and couldn't afford a big Unix license. No, you're not wrong.

Jaqui
Jaqui

in a few years I might be able to start a kernel rewrite of Linux, gotta get something else done to enable the change I see benefiting a kernel. to me, a fork is making changes in direction of the code base, not making a change in the api unless needed to work with the code changes.

seanferd
seanferd

Didn't mean to imply distro rather than fork with the name, but I did, didn't I? Maybe more micro-kernel oriented?

Neon Samurai
Neon Samurai

I was going for the generix "nix" ending in the same way I have a Tivonix on my hobby wishlist still. Jaquix really does sound like a distribution name though.

Neon Samurai
Neon Samurai

I was on ATI GPU when I moved to Mandriva years ago and it already had a distro built config tool. You just pop open the drakconf tool for configuring X, it detects the GPU and asks "say, there is a proprietary and an open source X server for this graphics card, do you want to use the proprietary?" Now, with ATI, my findings where that the community 2D X server provided much higher frame rates than the ATI closed X server (driver). Infact, the proprietary one was debilitating; 27'ish frames per second. It also crashed X frequently. I suspect that the X server has improved since then but my GPU has changed in that time. With nVidia, I tested the proprietary X server first and had no stability issues to cause me concern. draketools asks if I want the proprietary and lists the pros/cons; I answer Y and carry on with my install. I'd like to see what would happen if nVidia released the source code or detailed interface specs but as long as they keep putting out an improving driver, it's not critical.

Bernie S
Bernie S

I suspect that they could even auto-generate a complete configuration file, but completely commented out. In case of problems one could then easily un-comment and modify whatever lines were needed. Or the file could source one or more back-up files, and include comments explaining where to find the sourced files. These commented config files are more likely to give current, up-to-date info than man pages or other documentation. Well commented config-files can be very instructive, especially if they include some of the more common special options ready for use.

kwintesse
kwintesse

Because than it would be stuck with it. Like I explained in a message below today's world just isn't static anymore, people might be pluggin in or removing devices at any moment and the X server has to be able to adjust. That's why a static file to save the configuration is becoming less and less usefull.

Editor's Picks