Why Linux Has Failed on the Desktop
SlinkySausage writes "Linux is burdened with 'enterprise crap' that makes it run poorly on desktop PCs, says kernel developer Con Kolivas. Kolivas recently walked away from years of work on the kernel in despair. APCmag.com has a lengthy interview with Kolivas, who explains what he sees is wrong with Linux from a performance perspective and how Microsoft has succeeded in crushing innovation in personal computers."
how Microsoft has succeeded in crushing innovation in personal computers.
I found that rather funny. Blaming Microsoft for your own lack of creativity and ingenuity.
Besides, Steve Jobs would very much disagree.
Some of us find it quite up to the task. The choice of desktop OS is up the consumer, and their individual needs. Some people need Windows, some people need Mac. Some of us need Linux because Windows and Mac have failed on OUR desktops.
The answer is simple: Application support. That's why desktop linux has failed. Nevermind the rest of the chatter; I can tell you that had I had the applications needed, I would have switched two organizations over to linux desktops by now, possibly more.
And it's not a problem of performance; It's a question of politics. We have to convince enough software vendors to start coding in a cross-platform language/way.
Mod me down with all of your hatred and your journey towards the dark side will be complete!
One of the strengths of Linux is also its biggest weakness. If someone has a computer and for some strange reason needs to install an OS, which Linux distro do they choose? I've run Linux for years and I still can't name all the available distros. I doubt ANYONE can.
Another problem is the MS dominance over the OS market. It's hard to buy a computer without Windows and even harder to purchase one with Linux preinstalled. Your average computer user is not going to purchase a computer that won't run (because of no OS) and even if they did, when they go to the store pick up an OS, all they see is Windows.
Linux users need to stick to a Distro that works, is easy, is well known, and comes as an option to be preinstalled on computers from the majority of manufacturers, even if it is along side Windows or as a bootable DVD thrown into the box.
There is no "I disagree" mod for a reason. Flamebait, Troll, and Overrated are not substitutes.
Everyone has a take on it. Haven't we had this discussion a hundred times on Slashdot?
My personal opinion, after having used Linux quite a bit, is simply that Linux isn't ready for the desktop. While many apps have easy to install packages, a lot of apps don't. Particularly smaller, single-developer shareware kind of apps. Many of these require getting source and compiling, something my mother or grandmother won't be able to do.
Speaking of my mother and grandmother, the other thing they already find confusing enough is the Windows directory layout. Linux is FAR more complicated in that department. They'd find organizing their documents much more difficult.
Finally, frankly, I don't find the UIs all that intuitive to use. I've used Gnome and KDE. I prefer KDE, but I have issues with both. It took me a while to figure out how to drag and drop gzip compressed files from KDE. I can't even remember how it works off the top of my head, I'd have to go do it again. But it definitely wasn't as intuitive as drag and drop from say WinZip to a folder in Windows.
The fact is, Linux just isn't ready for the desktop. Don't get me wrong, huge strides have been made over the past few years in usability and I suspect it'll get there eventually, but it's not there.
Another issue is the community, which in many places is hostile to newbies. I've been insulted on more Linux support forums for asking question than I've ever been on Windows support forums. There are places to get good support for Linux, but there are a lot of really hostile ones too. Windows may have some hostile ones, but I just run into it far less frequently.
This is just my personal opinion, based on my experiences with it. Other people may have had different experiences. I still love Linux for certain things and I run a Linux box as a file server, firewall, database server and for video editing. I'd never trust connecting a Windows box directly to the internet, but I've always trusted Linux for that. But as a desktop environment, it just doesn't work for me.
I disagree. If all I wanted to do with my PC is surf the web, check email, chat with friend and use office apps like the "average" computer user does, I'd switch to linux in a heart beat, in fact, I did for a while. But the one thing that keeps me bound to this monopoly that is Windows is gaming, which goes back to application availability. I don't think what the article is saying is true at all. I ran linux for months and didn't notice any of this "slow speed" in fact, it ran faster than windows, if anything. Even for games running through Wine.
Wow you really didn't bother to read the link did you.
The author was speaking about how poorly Linux performed ON the desktop. Thinks like audio skipping and the desktop feeling slow. He was talking about how the Kernel was so slanted to big iron and the server market that it has ignored desktop performance. The was also talking about how hard it is to create benchmarks that show interactive responsiveness.
He also talked about how hard it is for "normal" users to communicate problems to Kernel developers.
What he is talking about is how Linux has failed to perform as well as a desktop as it does a server.
What most people have failed to notice or care about is this is a person that actually tried to fix problems by writing code! He was a truly working under the FOSS ideal and has given up.
Too bad so many people are dismissing what he has to say.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
recently the Completely Fair Scheduler was merged
...
That _might_ be one of the reasons he's pissed off, you know
Anyone familiar with how Microsoft locks in customers will tell you the same thing.
We have reached a point where neither the desktop OS or the Server OS doesnt matter as much as the apps they run. Exchange is the one app that is almost a must-have. Anyone can list all the non-proprietary stuff that runs 80% of Exchange functionality, or 50%, but does it better, and so on and so on.
Give it up, and start building something that takes Exchange on directly, feature for feature, with better recovery, and message pushing to handheld devices.
Or, maybe just shutup? This has been obvious for years. Microsoft keeps improving Exchange, Enterprises keep buying it, and everything else that goes with it.
Linux cannot exist on its own with a bunch of 50-to-80% solutions, expecting to fill the gap by the temporary pleasure of giving Microsoft the finger from time to time.
Either compete or change the game. Only Google and Apple seem to get this.
And can we stop asking this question over and over again?
Stop. Reread what you just posted. First you say it's easy to use. Then you say that you configured your grandmothers machine with four buttons she can use to access the things she uses most.
If it's so easy, why did you have to configure those buttons? Why couldn't your grandmother do it herself?
I'm not saying whatever version of Linux your grandmother is using isn't easy to use. What I am saying is that well-meaning folks like you who support Linux on the desktop always use an example such as the one you gave to show how easy Linux is to use yet, by your own admission, you had to do the setup. You had to do the configuration.
This isn't to say that configuring Windows is necessarily easy or even intuitive. However, either through force of repetition or blind luck, the average person is able to configure a Windows environment more easily than a Linux environment.
I don't personally use Linux though I have fiddled with Slack 10 and Debian so maybe my perceptions are off, but the overall point is that those who support Linux and who say how easy it is to use ALWAYS say they got a family member/SO/whomever to use it AFTER they configured it for them so therefore, it must be easy to use. That's looking at it from the wrong angle.
I wrote in a post a while back about documentation and how the biggest problem with it is that it isn't detailed enough for the average person. People, despite the innate intelligence we are supposedly born with, like to be handheld the first few times when doing something. Particularly if they have never done it before.
You and I may be able to program our vcrs and dvd players (well, not me yet. See my journal for why) without reading the manual but that is only because we have been exposed to the general process for so long that we can draw upon our past experiences to get us through the configuration. Joe Average can't (or won't depending upon how militant they are).
I don't know what the answer is because installing an OS, even as streamlined as Microsoft, Apple and the various Linus distributions have done, is still not easy. There are still questions that need to be answered to configure it that I'm certain your grandmother couldn't answer without your guidance.
Yes, once the OS is installed and configured things will just work but as has been said a billionteen times before, people don't want to have go through a long configuration process. They want to be able to put in a floppy/CD/glass block/whatever and other than double-clicking on an icon, have the software installed and ready to go.
I realize this is somewhat of a rant but those of you who work with Linux on a daily basis think that using your distro is simple and easy. Which it is but ONLY because you've been working with it for X months/years/decades/eons and know it pretty much inside and out. Take someone off the street and have them do an install of the OS or a piece of software on Linux and I can guarantee you they will tell you to do things to yourself which are not possible (except if you're a master contortionist).
Easy is a relative term. What is easy for you or I is not easy to our parents or grandparents. Those who produce Linux distros need to understand this and have it plastered all over their work spaces so every time they do something they should always ask themselves, "Is this something that Joe Average can do?" not, "Well shoot, this is simple. All one has to do is rm -f *%!@, then grep for dlist -t to be sure it was disjoined at which point they can do an apt get something and finally a make something. I can do that in my sleep!" (and yes, I know what I wrote makes no sense. That it is exactly what the outside world hears when you folks talk about doing something)
We will bankrupt ourselves in the vain search for absolute security. -- Dwight D. Eisenhower
and she's not that computer savvy.
/s /b. In Linux it's a different command (find -name), and if you're not logged in as root, you get all these "access denied" warnings (where the heck did i put that web server root directory?).
/?". You type "man command", and then you have to scroll thru pages of explanations that you don't fully understand. (And don't get me started on the config).
Perhaps that was the cause for her lack of problems. My guess is that she didn't need much to do with the computer anyway, apart than writing stuff for homework.
An OS is like a car. The more you know it, the more you tune it, and you optimize and squeeze every little bit of performance from it to fit your needs. You install new seats, a more comfy steering wheel, cup holders, etc etc.
The problem comes with the change. One day you're sitting in your perfectly-tuned american car FR with V8 engine, and then you switch to an european car. And suppose it's a 4WD or FF with a rotary engine. For starters, the steering wheel is on what you knew was the passenger's seat. You have to change speed with the left hand instead of the right hand. You have to look to the right instead of the left.
It's much worse when you realize that the knowledge and tools that helped you to tune your old car don't work with the new car (how the heck do you fix a rotary?). It's a completely different monster, and you have to RELEARN EVERYTHING FROM SCRATCH. Lots of knowledge lost.
For example, to quickly search for a file in Windows, I open a commandline, and type dir *mask*
To get help, you don't type "command
Back to the cars analogy. If you're just LEARNING to drive, "ah, it has a steering wheel and pedals." It's easy. Of course it's easy! Because you don't know ANYTHING.
The real problem with switching to Linux is having to UNLEARN every bit of knowledge you've gained about windows with the years. It's much more painful when you're a Windows power user.
On my desktop, Windows recognized the monitor and was able to use the full resolution with its generic drivers. Performance was terrible, but once I installed the specific drivers, it worked fine.
With Ubuntu, it simply reported "sync out of range" and there was nothing that could be done. Safe mode generated the same error, and with no UI to interact with, that's the end of it.
Likewise, when I tried Ubuntu on a laptop, it recognized the wireless card and then refused to use it. (It just doesn't work - trying to set the WEP key does nothing, it just says "activating device" and then returns to not working.)
Windows on both machines just work. Granted drivers had to be installed, but once they were installed, it just worked. No additional effort. No "sync out of range".
Now this experience obviously isn't typical either, but it demonstrates the main problem with Ubuntu: when it fails, there's no way to get help. Your options are basically to whine on forums, and then get completely useless advice like editing configuration files on a read-only CD with an OS that doesn't display a UI.
With Windows, there's a support number you can call, or you can take it to a local computer store, or ask for help among the massive number of Windows users - in short, you're not stuck with snobs on forums who think you should be able to hand-edit configuration files without being able to see anything on the screen.
Since I don't have mod points, I'll just burn karma instead.
In short, you don't know what you're talking about. He's not talking about *throughput* which Linux does very well at. He's talking about latency and interactive performance. A system where the desktop is snappy and responsive, where the CPU wastes cycles if need be just to makes sure the mouse doesn't lag and that windows are redrawn in a prompt, synchronized way. A kernel optimized for desktop performance (have you ever *used* Quartz on OS/X?) will sacrifice overall throughput and raw total performance for low latency servicing of the things a user actually looks at on the screen. It's this perception of performance that matters on the desktop. If users sees a fraction of a second delay or stuttering in his UI, this is perceived as "slow!"
For example, my Fedora Core 6 box running on an older AMD 2800+ XP, is plenty fast at lots of things. I can compile large programs fairly quickly, and do all kinds of things. But dragging a window across the screen not only is slow, but it also can cause my audio to skip.
On the same processor (even under VMware!) Windows XP is smooth and the UI responsive. Of course under the hood Windows doesn't fair so well. I can't compile with as much raw speed, and although the UI is responsive, the code connected to it may not be executing in a speedy manner, causing me to have to wait for the computer. But the important part is that the windows draw smooth and fast. Resizing a window or moving a window is silky smooth.
Even Vista, though it ultimately is slower than XP and Linux, has a UI that appears to be super fast and slick, much faster than any Linux desktop (remember perception *is* reality). Just try to use it sometimes.
Now his patches combined with, say Compiz, go a long ways to making Linux have the responsiveness that desktop users require, the apparent schizophrenia on the part of Linux developers in relation to the desktop has frustrated him and driven him away. This is a tragedy.
What ticks me off is that the person in the interview was trying to take FOSS to the next level.
He wasn't saying that Linux was a worse desktop than Windows. In fact the said that Windows had many of the same problems! He wants Linux to be the best that it can be. Not just good as Windows or not just better than Windows but the best that it could be.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
Half way through the interview I slammed on the mental brakes. Linux is so famous for getting more from old hardware. My Debian distribution boots much more quickly than Windows. And waiting for me in apt-get an upgrade to a new kernel with a new "fair" scheduler. After slamming the brakes, I didn't get off the bus though. Con is a great guy, looking for 120% activity in his life. His insights are more to do with kernel development than Linux on the desktop. Con: Success with your further endeavors, and for sure you will find something related to computers quite soon. An Amiga user never gets that out of their system.
The average user has no idea how to do that, nor should they have to.
That's part of the reason why Linux will never really hit it big on the desktop.
Everything I need to know I learned by killing smart people and eating their brains.
ISTM there are two kinds of computer users: those who've learned how to use one system and those who've learned how to use computers in general. (no comment intended here as to which type the parent is)
The first can apply to any OS: the user has learned the specific, repetitive motions that get done for them what they need to have done on their specific system (usually this would be windows, but could be any OS). Their "skills" are easily translated to another system of the same type and maybe to a similar but not too distantly related system. An XP user could probably move down to win98 or up to say vista without too much difficulty, though they'd find certain things don't work the way they'd expect. An XFCE user could move fairly easily to gnome, not so much to KDE, but still okay. But if you ask this user to move to a completely different system (from any win to any linux, or from XFCE to say fluxbox or even worse to wmii (I love wmii, BTW)) then there's trouble. They don't actually have "skills", they have a set of rote responses that look like "skills" but aren't.
The second set have not necessarily learned any particular set of actions to get desired results. Instead they have learned about how computers work in general and have developed a set of "skills" for _determining_ which actions get desired results. The difference is subtle but important. Someone in this set can sit down at a computer they've never seen or even heard of before and figure out how to get something done in relatively short order. They will likely never be as productive on any one particular machine as the folks from the other set, but they will be proficient at _any_ machine in short order.
To determine which set you belong to, try something radically different from what you normally use for a good period of time and see what happens. If you give up within hours, then you're probably from the first set. If you find that you've forgotten exactly when you changed, then you're like from the second set and are probably already looking for something even more different to try.
So, after "Preview" (see what a good boy I am!), I have to add that there is probably a third set: those who probably belong in the second set, but have never fully developed that set of skills choosing instead to dive deep into the particular system of their choosing and learning it intimately. These folks can do _anything_ on their machine, but have given up their potential to learn breadth in exchange for depth.
man, I feel like mold.
He's saying that someone afraid of their computer can't do it. And until Linux can be used by people afraid of their computer, it won't appeal to the majority of the desktop PC market.
You are awash in a sea of fiercely stated opinions. Obvious exits are: 'File->Quit', 'Reply', and 'Page Down'.
>if that's your issue, then create a daemon that renices the priorities of pre-set programs to
>some given level - better yet tweak the module that starts programs to nice them as they start. Works
>better than blocking the background tasks by bumping everything that's happening under a users uid, while
>still providing the lower latency issue.
Here is what they average computer user will think of your solution:
1) What's a daemon?
2) What does "renices" mean?
3) What are priorities?
4) What is a pre-set program?
5) What is a module?
6) What does it mean to block a task?
7) What is a background task?
8) What is a UID?
9) What is latency?
A work that expires before its copyright never enters the public domain and thus enjoys eternal copyright protection.
Actually, knucklehead, I was the exec editor of an open source enterprise magazine.
Right, and flamebait is insulting people just because you're an asshole. And I don't mean "you" in the general sort of sense.
No Unix or Unix-like distro has been and they've been around a heck of a lot longer than windows.
I know several people on Ubuntu who struggle with Windows. Plus, saying Unix has been around a long time and it's going nowhere is like saying, in 1994, that the internet has been around a long time, and it's going nowhere. The initiative towards a widespread Linux desktop has been around a few years, max. OSS movements take a while to rev up, and this one's doing quite nicely.
Be quiet, be schooled, thank the nice man as he leaves.
Please stop stalking me, bro.
Unix and Unix-like systems have been around for a very long time (a lot longer than windows) and have yet to hit big on the desktop.
Really? Like OSX?
Granted, it doesn't have as much market on the desktop, but it's still the second. And it only is the second exactly because of the reasons de GP pointed out.
A tweak to the start module in the kernal should be able to set the nice level of any program when it starts - giving latency sensative software more priority & dropping those insensative. Skype cares about latency - terminal doesn't care all that much. The whole point of the comment was that a process already exists to deal with the majority of the latency issues described and either a daemon or a tweak to the start module should be able to use that process & adjust usage based on the program without user intervention.
The administrator creates a file /etc/nicety that ranks programs as needed:
[programs] /usr/local/bin/Skype 15 /usr/local/bin/gterm -4 /usr/local/bin/totem 15 ...
[user]
bob 45
alice 18 ...
With the user section, you could even prevent a slob from killing the system in a multi user environment by limiting his total niceness. Anything over nice(max) results in everything being trimmed back proportionally. If you boot into single user mode, that section is ignored.
ulimit does provide some of these constraints, but it works on the whole userspace for its memory & process quotas & per process for the nice limit.
And how exactly does the average home Windows user set the parameters on the software they install - oh yes, it's all done automagically. Why, I do believe that installation software for linux currently adds things to the SE linux contexts when it installs. But I suppose that would be impossible to do to a simple file when your creating a module to do it.
Here how about rather than toss an idea off my head, I spell it out in a step by step process:
or
A developer [not the desktop user] modifies the module in the kernal that starts processes to set the nice level of the process according to a set record already defined in a file [in
There did that include enough detail that your straw men are dispelled? The core protocols exist to minimize the problem - nice. A patch to set the nice level on starting shouldn't be all that hard to do, a daemon to reset them after starting even easier. Your argument that a home user needs an 'admin' who understands daemons & patches etc to do this is only valid if you also feel the average Windows box needs an 'admin' to install AIM.
As several people pointed out, Con's dissatisfaction with the kernel dev team is that they wouldn't change the way nice works to better impliment it's stated purpose - splitting CPU time based on the interactiveness of a program. However, even in it's current state, a system to automate nicing the processes would resolve most of the issues people are seeing with desktop responsiveness. In combination with any of the new schedulers, it should make just about anyone happy.
Boy you are really missing the point. bladesjester is correct. Your "simplified" answer gave me a headache and I have been into computers since the early 80's. The "computer geek" that understands that makes up probably less than 5% of computer users. Which is as hi as Linux desktop market penetration will ever get if they continue to keep things so complex/complicated.
If you could reason with religious people, there would be no religious people
Ashton (the interviewer) chose the title that says why linux failed on the desktop without consulting me. If you actually read the interview I never once say that linux failed on the desktop.
Well, now you have a personal understanding of why a lot of people are turning from "mainstream" journalism to alternative sources. The journalistic process isn't exactly honest or honorable, is it?
I did think it odd that after arguing against fair scheduling for quite a while, Ingo, et. al. decided to implement it (and how rapidly it was dropped into the kernel). I've read a few articles about the sudden change of heart. I'm sorry things worked out that way; I can definitely get an idea how disappointing that you didn't even get any credit for championing fair scheduling, nor were you given any involvement in implementing the CFS.
On the other hand, I also recall reading a paper that was given at OLS 2006 that was more or less stating that "Userspace Sucks"; there's a lot of work to be done there.
-- Sometimes you have to turn the lights off in order to see.