Over the past couple of months, and especially over the past couple of weeks, I’ve been working very hard to write and complete my thesis. I performed all the work on Windows 7, but now that the thesis is finally done, submitted, and accepted, I installed Ubuntu – and immediately I was reminded of why I do not do any serious work on Linux: the train wreck that is X.org.
Yesterday, I was quietly using my Ubuntu 9.04 installation. I have few problems with GNOME as a desktop environment, except maybe for the fact that Evolution and I don’t get along – for some reason, Evolution crashes about 5 times a day. It has been doing this for years now, on different machines, and I still don’t know why. After a crash, I need to kill all the Evolution-related processes to get the mail client working again. My wish: replace Evolution with a simple, to the point email client, and leave Evolution to the big boys that really need it.
Anyway, I had a whole bunch of applications running, but I decided to have some fun and watch an episode of 30 Rock. I browsed to the directory, and double clicked on the episode I wanted to play. Totem loaded up, but playback was unbearable. My entire quad-core 4GB powerhouse was brought to a screeching halt, and the video playback was choppy, audio lagging – it was terrible.
Since I never had much love for Totem anyway, I installed VLC, and I tried to play the video with that media player. VLC performed better, and the video was actually watchable, but it did make the rest of the machine quite slow and unresponsive. Then, I decided to resize the VLC window to make it a little bigger.
Poof.
And here we see why the X.org stack is a steaming pile of dog poo. VLC was using the XVideo output, which is what it defaults to. Apparently, the resize operating crashed XVideo. Which crashed X.org. And as all you educated Linux geeks know but some of you might want to forget: if X.org crashes – so do all of your applications. Evolution. Chrome with a number of tabs open. Pidgin with a number of IM windows open. Twitux. Evince with an insanely cool study open (‘Mathematical Modelling Of An Outbreak of Zombie Infection‘). OpenOffice.org Writer displaying a friend’s thesis which I was proofreading.
They were all gone.
Now I know what’s going to happen. The Linux fans will come out of the woodwork, and they will start doing two things. One, they’ll start saying that this is not a problem, as the machine is still running, and X restarts – and if not, I can ssh into it. Second, the finger-pointing will begin. Always with the finger-pointing!
I don’t care if X restarts, and I don’t care that I can ssh into it. I’m a user, and what matters to me are my applications, and the data and documents they’re holding. X restarting or the ability to get my nerd on by ssh’ing into my box is pointless and useless.
And then we get the finger-pointing. I’m sure the usual suspects are already busy churning out comments about how this is the fault of the driver, VLC, myself, the 30 Rock video, planetary alignment, anal probes, whatever. And all of you will miss the point completely: I don’t care where the problem lies. Bugs happen. Crashes happen. That’s a fact of life, and something that you have to accept when using software. However, under no circumstances should resizing a video window result in a complete system failure!
Let’s take a look at operating systems with a modern, advanced, and robust graphics stack: Windows Vista and Windows 7. Both of these have a graphics stack that is so far ahead of X.org that it’s like comparing an Airbus A380 to the Wright Flyer. Do you know what happens when a graphics driver crashes on Windows Vista/7?
Absolutely bloody nothing.
The screen will flicker a few times, you might get dumped back into Aero Basic for a few seconds, and then the graphics driver will be reloaded, and everything will be back to normal. A dialog may appear asking you to send debug information to Microsoft. None of your applications will crash, no data will be lost – in fact, you’ll barely even notice. The graphics stack in Windows Vista and 7 is so advanced, that even updating graphics drivers does not require a restart of the operating system or even the graphical environment – the screen will flicker, Aero Basic for a few seconds, and poof, new drivers running (note, though, that graphics chip makers do not yet take advantage of this, and will still force you to reboot. Use Windows Update, and you’ll see how they should do it).
The end result of all this is that I simply cannot entrust my work or my documents to a Linux installation. The graphics stack is so badly designed that resizing a video window can bring down the entire stack, taking with it all your applications, work, and documents. It would be like changing the radio station in your car, only to have your entire car explode.
This is simply bad design through-and-through, and it has been haunting the Linux desktop for a long time now. In the X world’s rush latch onto the “me-too” bandwagon of GPU acceleration, they completely forgot to actually fix their bloody design and move it from the 1990s into the 21st century. As long as X stays the way it is, I will never advise any of my friends or family to use it, because I know that X.org is simply not capable of robustly powering the multimedia and multitasking machines that computers of today have become.
I’m sure the blame-game will be played thoroughly in the comments, but it will only detract from the real problem here. The Linux desktop needs a modern, robust, and advanced graphics stack, which makes sure that crashes and bugs remain isolated, without them affecting the users’ work. Microsoft has shown us how it’s done, now all the X world needs to do is follow.
I admit to not having any issues with my system, but I am running OpenSuse 11.1. As far as I can tell, from this article (http://distrowatch.com/weekly.php?issue=20090817#feature), the problems are coming out from an Intel driver change, as well as major work done on the X.org system… perhaps You should check it out. Try a different distro, like OpenSuse 11.1, or straight Red Hat.
Tsue
I’ve been using Linux for +13 years now. I only use Windows, or other OS alternatives for Fun and Games.
Linux, “The Teenager” has gone from a child to a teenager: grumping, wanting money, always getting into fights. But it also has lots of stamina, eagerness, muscles and increasing knowledge. Its on the path to adultness, faster than many of us.
Some people think that because it is “GIVEN”, it should work perfectly. Well my friend, “Welcome to the real world!”. It was “GIVEN” for you to correct it “YOUR” way.
I’ve always worked with Linux on the Server side of things, and it really works perfectly, maybe because there are RFC’s, maybe because there are lots of companies using, developing, tweaking and supporting Server Environments, but mostly because we BELIEVE IT WORKS that way.
I’m now working on Linux desktop deployments to replace Windows XP, and this is my conclusion:
X is not the problem, it never was the problem. The problem is in the surroundings. The interconnection of applications, window-managers, the usability issues, the “cut and paste”, the old fashion Windows users lack of evolution, the bad implementation of computer policies, the way computer farms are administered, the cost effective monitoring, the bad scripting and poor knowledge of programming and the lack of do-it-yourself.
In the FOSS Community WE ALWAYS COMPARE “Linux” THINGS WITH OTHER OS THINGS, DAY TO DAY CRAPPY THINGS. And we try to put them in Linux, the same CRAPPY implementations the others made look pretty. They aren’t good, they are average. Just think of HAL, D-Bus, Compiz, think of “Science Fiction” UI’s… We are closer than many of them… but we still don’t grasp it, cause we are eager for more and more.
X is a good thing, IMHO it only lacks one thing… COMMUNITY SUPPORT!
So grab your tongue, warm your fingers and go write some X code. AND If you don’t like it, fork it and do it better. Cause thats FOSS (F*** Others Some Sense).
…sorry Thom. You may have problems, you’re right that resizing a Windows should never bring a graphics system down.
I couldn’t care less about how WinNT loads/unloads drivers, how it does without rebooting, etc. You know, people actually don’t care if they have to reboot! The machine says it needs to reboot, and people just does it.
What I care, in all systems, is how many times such a thing happens! And, with my experience, even with some weird hardware that rarely happens – but it did happen with some nvidia cards with old drivers.
And I’ve converted a *lot* of people to Linux (mostly Ubuntu). People that are happy with their setup, and yes, people doing serious work.
You have some valid points on your post, but I suspect you overreacted on this one. It’s NOT a catastrophe… It’s just a critical bug in a driver. How many time did that happen on other systems? Lots of times! So, just update the driver, and get over it…
Rail about X.org all you want; has anyone experience of commercial X servers who can add some balance to this thread?
X.org is more than you think.
First of all, X.org is a server, and it is actually very, very modular. You can have any setup you can imagine, any number of screens, any number of cards, any number of users, multiple servers running on the same machine, a nested X server in a nested X server in a nested X server… and also has extensions which make X.org even more modular. I truly believe that X.org is far superior than anything Windows can offer.
Also, your user experience will not rely only on X.org, but on your window manager (which is a different piece of software), on the extensions you have enabled, on the graphics driver, on the hardware. Some of this configuration is actually done by your distribution (and in that case blame your distro not X.org), and other cases the driver.