Interview with Con Kolivas part 2: his effort to improve Linux performance on the desktop

Ashton Mills
24 July 2007, 1:26 PM


What ultimately drove Con Kolivas to exit the Linux developer community forever.


Kernel developers: Con at the Kernel Summit in Ottawa, Canada, 2005Kernel developers: Con at the Kernel Summit in Ottawa, Canada, 2005

APC: So what did you do next to try to convince the Linux kernel devs of the need for more focus on end-users?

I set out to invent some benchmark to try and quantify performance problems in Linux on the desktop PC. The first benchmark I created called 'Contest' (pun intended). It was horribly complicated to use and set up and the results were difficult to interpret but at least I tried. It did help. Some changes did come about as a result of these benchmarks, but mostly on the disk I/O front. So I was still left looking at this stuttering CPU scheduling performance.

I had some experience at merging patches from previous kernels and ironically most of them were code around the CPU scheduler. Although I'd never learnt how to program, looking at the code it eventually started making sense.

I was left pointing out to people what I thought the problem was from looking at that particular code. After ranting and raving and saying what I thought the problem was, I figured I'd just start tinkering myself and try and tune the thing myself.

After a few failed experiments I started writing some code which helped... a lot. As it turns out people did pay attention and eventually my code got incorporated. I was never very happy with how the CPU scheduler tackled interactivity but at least it was now usable on the desktop.

Not being happy with how the actual underlying mechanism worked I set out to redesign that myself from scratch, and the second generation of the -ck patchset was born. This time it was mostly my own code. So this is the story of how I started writing my own code for the linux kernel.

In brief, following this I found myself writing code which many many desktop users found helped, but I had no way to quantify these changes. There is always a placebo element which makes the end user experience difficult to clarify as to whether there is an improvement or not.

However I have tried very hard to make myself relatively resistant to this placebo effect myself from years of testing, and I guess the fact that my website has close to 1 million hits suggests there are people who agree it makes a difference. This inability to prove quantitatively the advantage that -ck offered, though, was basically what would eventually spell out the death of it.

APC: What code did get incorporated into the mainline kernel?

Looking back, while the patchset has been well known, little of the actual code itself ended up in the mainline kernel, even if it spurned interest and development from other people in that time. Most of what did end up going in were changes to the CPU scheduler to improve interactivity, fairness, SMP user fairness, making 'nice' behave itself, hyperthread fairness and so on. There were lots of other minor contributions in other areas, such as the virtual memory subsystem, software suspend, disk i/o scheduling and random bugfixes.

The emphasis of what I did get involved in is still the area that there are many -ck patches in the last release I ever made (2.6.22-ck1). The remaining patches reflect where I still believe massive problems exist for the desktop, and ironically, despite my efforts to the contrary, the same problems seem to get magnified with each passing year.

It seems that the emerging challenges for the linux kernel on the desktop never seem to get whole-heartedly tackled by any full time developer, and only get a sideways glance when the problems are so obvious that even those on the linux kernel mailing list are willing to complain about them.

APC: Was there a toll on you for this voluntary involvement?

Yes. There is no doubt that whenever I was heavily involved, I would stay awake at night thinking up code solutions, I would be sleep deprived, and it had the possibility to impact on my work and family life. I tried very hard to never compromise those two for the sake of kernel development, but perhaps on occasion I did push it to far. I make an issue of never regretting anything I have done so I'm still pleased with my involvement till now.

In black and white: Con Kolivas' CK patch homepageIn black and white: Con Kolivas' CK patch homepage

APC: What was the driving force that caused you to hangup your kernel coding keyboard and the -ck patchset?

That's one of those 'I wish I had a dime for ever time I was asked that' sort of questions.

As most people are well aware, my involvement in kernel development was motivated on three fronts, and it has zero to do with my full time career and life.

First, it was lots of fun. I've always been a computer geek and enjoyed spending hours in front of the computer doing... well whatever really. So spending it on something that had become a passion for me was an obvious source of great enjoyment for me.

Second, it was an intellectual challenge. There seemed to be things that I always wish were done in the Linux kernel, and there were issues people didn't really care to tackle and so on. Trying to confront them head-on I was doing something I really hadn't done before in terms of high level programming. I learnt a heck of a lot about operating system design and all other really basic computer science things that most CS students probably are bored with.

However it was all new to me. There is precious little (and some would argue zero) new research in operating system design. Looking at linux there is innovation in the approach to tackling things, but it's not like there's anything new about the problems being fixed. The same issues have always been there in hardware vs software designs, and all the research has been done. I've seen many people accuse me of claiming I invented fair scheduling. Let me set the record straight. I make no such ridiculous claim.

What I did was take what was known and try and apply it to the constraints of current hardware designs and the Linux kernel framework. While the 'global picture' of the problems and solutions have been well known for many years, actually narrowing down on where the acute differences in hardware vs software have evolved has not. Innovation only lies in the application of those ideas. Academic approaches to solutions tend not to be useful in the real world. On the flip side, pure hackery also tend to be long term disasters even if initially they're a quick fix. Finding the right balance between hackery and not ignoring the many years of academic research is what is needed.

APC: Did you get that balance right?

Heck no. But that's what I strived for. I think there are precious few developers who do. If there is one failing in the human driven decision making in choosing what code goes where it is that it is impossible to recognise that (again I'm not saying it was my code).

Third, it was an ego trip. If I improved something that I cared about, I found that usually lots of other people cared about it. The reason for that obviously is that I was actually an ordinary desktop PC user that pretended to be a kernel hacker. So whenever I made improvements that affected desktop users, lo and behold lots of people cared about them. I recall a kernel hacker that I respected very much joked about my 'fans' and asking how he could attract a crowd. He has contributed possibly 1000 times more lines of code to linux kernel than myself, yet I had a 'following'.

I only attracted a following because I hacked on things I cared about. And the users told me so. The one thing that drove my development over the many years were the 'thank you's that I got from the users of the -ck patchset.

So I still haven't answered your question about what made me stop kernel development have I? I guess explaining my motivations helps me explain why I stopped.

The user response was still there. If anything, the users got more vocal than ever as I was announcing quitting kernel development.

The intellectual challenge? Well that still existed of course.

The fun? Yes that's what was killed. It stopped being fun. In my now quite public email announcing that I was quitting I explained it briefly. The -ck patchset was for quite a while, a meaningless, out of mainline's spotlight playground for my experiments. As the scope of changes got larger, the improvements became more drastic and were more acutely noticeable. This led to more and more people asking me when the changes would me merged into mainline. As the number of requests grew, my resolve to not get mainline involved diminished. So I'd occasionally post patches as examples to the linux kernel mailing list. This generated more interest and requests to get mainline involved. So I tried.

You asked before what patches from -ck got into mainline and I listed a whole lot of random minor patches. The magnitude of the changes in the patches that did _not_ get involved stands out far more than those that did get in.

APC: was there something that was the 'final straw' for you?

My first major rejection was the original staircase CPU scheduler. It stood out as being far better in interactivity than the mainline CPU scheduler, but ultimately, just as the mainline CPU scheduler, it had corner cases that meant it was not perfect. While I was still developing it, the attention moved away from the CPU scheduler at that time. The reason given by Andrew Morton (the maintainer and second last gateway into the mainline kernel) at the time was that the kernel had more burning issues and bugs to address.

Of course it did. There were so many subsystems being repeatedly rewritten that there was never-ending breakage. And rewriting working subsystems and breaking them is far more important than something that might improve the desktop right? Oops, some of my bitterness crept in there. I'll try and keep emotion out and just tell the rest of the story as objectively as I can.

The main problem was that there simply was not a convincing way to prove that staircase was better on the desktop. User reports were not enough. There was no benchmark. There was no way to prove it was better, and the user reports if anything just angered the kernel maintainers further for their lack of objectivity. I even tried writing a benchmark called Interbench. Note that interactivity is not responsiveness (I have a little summary of the difference as I see it with the Interbench code). This was much better code than Contest but even though I could demonstrate advantage with my scheduler on Interbench, the magnitude of the differences was difficult if not impossible to elicit based on the raw numbers generated by Interbench.

With a truckload of help from William Lee Irwin III (who wrote the main architecture) I posted a pluggable CPU scheduler framework that would allow you to build into the kernel as many of multiple CPU schedulers as you like and choose at boot time which one to run. I planned to extend that to runtime selection as well. This is much like the modular pluggable I/O scheduler framework that Linux kernel currently has. It was flat out refused by both Linus and Ingo (who is the CPU scheduler maintainer) as leading to specialisation of CPU schedulers and they both preferred there to be one CPU scheduler that was good at everything. I guess you can say the CPU scheduler is a steamroller that we as desktop users use to crack nuts with, and they didn't want us to build a nutcracker into the kernel.

The purpose of Plugsched was simply to provide a seamless way for the staircase CPU scheduler to be integrated into the mainline kernel. I didn't feel strongly about the presence of pluggable CPU schedulers, but many people still do and the code is still maintained today mainly by Peter Williams.

Then along came swap prefetch. I spent a long time maintaining and improving it. It was merged into the -mm kernel 18 months ago and I've been supporting it since. Andrew to this day remains unconvinced it helps and that it 'might' have negative consequences elsewhere. No bug report or performance complaint has been forthcoming in the last 9 months. I even wrote a benchmark that showed how it worked, which managed to quantify it! In a hilarious turnaround Linus asked me offlist 'yeah but does it really help'. Well, user reports and benchmarks weren't enough... It's still in limbo now but they'll have no choice but to drop it without anyone maintaining it.

Finally the nail in the coffin. The Staircase Deadline CPU scheduler. Initially started as a side project from the Staircase CPU scheduler I soon realised that it was possible to have excellent interactivity while fixing the horrible fairness issues that an unfair design had. Furthermore, it actually improved interactivity issues elsewhere that ended up being fairness problems, and fairness is of course paramount to servers and multiuser environments.

A lot of users and even kernel developers found that many long lasting complaints with the mainline and other schedulers were fixed by this code and practically begged me to push it into mainline, and one user
demanded Linus merge it as soon as possible as a bugfix. So I supported the code and fixed it as problems arose and did many bugfixes and improvements along the way.

Then I hit an impasse. One very vocal user found that the unfair behaviour in the mainline scheduler was something he came to expect. A flamewar of sorts erupted at the time, because to fix 100% of the problems with the CPU scheduler we had to sacrifice interactivity on some workloads. It wasn't a dramatic loss of interactivity, but it was definitely there. Rather than use 'nice' to proportion CPU according to where the user told the operating system it should be, the user believed it was the kernel's responsibility to guess. As it turns out, it is the fact that guessing means that no matter how hard and how smart you make the CPU scheduler, it will get it wrong some of the time. The more it tries to guess, the worse will be the corner cases of misbehaving.

The option is to throttle the guessing, or not guess at all. The former option means you have a CPU scheduler which is difficult to model, and the behaviour is right 95% of the time and ebbs and flows in its metering out of CPU and latency. The latter option means there is no guessing and the behaviour is correct 100% of the time... it only gives what you tell it to give. It seemed so absurdly clear to me, given that interactivity mostly was better anyway with the fair approach, yet the maintainers demanded I address this as a problem with the new design. I refused. I insisted that we had to compromise a small amount to gain a heck of a great deal more. A scheduler that was deterministic and predictable and still interactive is a much better option long term than the hack after hack approach we were maintaining.

Then I became very unwell. A disc prolapse in my neck basically meant I need to lie flat on my back for about 6 weeks. Yes, kernel development did contribute to this problem. So I was drugged to the eyeballs and spent most of the day and night lying down... having nothing to think about but stew over the kernel. Whenever I could I snuck back on the PC to try and support the code I had thrown out there. I refused to budge on the fairness aspect, and I kept getting that thrown back in my face as an unfixable failure in the design.

Then one day presumably Ingo decided it was a good idea and the way forward and... wrote his own fair scheduling interactive design with a modular almost pluggable CPU scheduling framework... and had help with the code from the person who refused to accept fair behaviour in my flamewar.

So I had plenty of time lying on my back to reflect on what I was doing and why, and whether I was going to regret it from that point on. I decided to complete the work on Staircase Deadline to make sure it was the reference for comparison, instead of having the CPU scheduler maintainer's new code comparing to the old clunky scheduler. Then I quit forever.

APC: Are developer egos a problem in the open source development model in general?

I think any problem with any development model has multiple factors, and ultimately, it is humans that make decisions. I won't comment on the humans themselves.

If there is any one big problem with kernel development and Linux it is the complete disconnection of the development process from normal users. You know, the ones who constitute 99.9% of the Linux user base.

The Linux kernel mailing list is the way to communicate with the kernel developers. To put it mildly, the Linux kernel mailing list (lkml) is about as scary a communication forum as they come. Most people are absolutely terrified of mailing the list lest they get flamed for their inexperience, an inappropriate bug report, being stupid or whatever. And for the most part they're absolutely right. There is no friendly way to communicate normal users' issues that are kernel related. Yes of course the kernel developers are fun loving, happy-go-lucky friendly people. Just look at any interview with Linus and see how he views himself.

I think the kernel developers at large haven't got the faintest idea just how big the problems in userspace are. It is a very small brave minority that are happy to post to lkml, and I keep getting users telling me on IRC, in person, and via my own mailing list, what their problems are. And they've even become fearful of me, even though I've never viewed myself as a real kernel developer.

Just trawl the normal support forums (which I did for Gentoo users as a way of finding bug reports often because the users were afraid to tell me) and see how many obvious kernel related issues there are. I'd love to tell them all to suddenly flood lkml with their reports of failed boots with various kernels, hardware disappearing, stopping working suddenly, memory disappearing, trying to use software suspend and having your balls blown off by your laptop, and so on.

And there are all the obvious bug reports. They're afraid to mention these. How scary do you think it is to say 'my Firefox tabs open slowly since the last CPU scheduler upgrade'? To top it all off, the enterprise users are the opposite. Just watch each kernel release and see how quickly some $bullshit_benchmark degraded by .1% with patch $Y gets reported. See also how quickly it gets attended to.

APC: What are you doing in your spare time now, and what future projects do you have planned?

I had some small userspace toys that I was experimenting with (compression tools, video encoding/conversion tools and a few others) that I thought I'd get back to. However just looking at any code gives me a bad taste in the mouth so that's not happening.

My current passion is learning Japanese. It's fun, it's a huge intellectual challenge, will allow me to eventually understand lots of interesting Japanese media in its native language (short stories, movies, manga and anime) and comes with no strings attached. I never really know what hobby I'll end up taking up but I usually get completely engrossed in whatever it was.

Thankyou for your time Con.

Page 3/3

Go to Kernel Knowledge home page >>

Con's pride and joy: Future coders?Con's pride and joy: Future coders?


Post your comment



First 50 Comments

View All Comments (74) RSS feed Email alert

eddiegi686:

To Con

www.syllable.org Syllable lacks many of the problems the linux community has, it is a desktop OS built on AtheOS without linux kernel woes and a very friendly kernel team. I'm sure if you were interested in persuing OS scheduler concerns your help would be greatly appreciated by the syllable team and community.

EGray

Very sad to see that once again linux dev circles and ther state of the kernel put people off helping.

29 February 2008, 8:31 PM (5 years ago)report abuse Send to a friend reply

ZephyrXero:

I second the idea that Syllable OS would probably be a much better place for you and your goals. I'm not saying there might be something even better for you out there, but it is mostly legacy free of the old Unix ways, and focused on the desktop. It's a very interesting and promising OS indeed.

Yes...they have just recently released a server edition, but it actually is built on top of Linux rather than the native desktop version, thus leaving server/enterprise stuff to the guys who are focused on it apparently. ;)

I love Linux and I love open source, but I've seen many of the issues you've noted from simply being a user. I think Linux's unix heritage constantly acts as not only a strength but also a great weakness at the same time.

There's an old saying, "Trying to make everyone happy just ends up making no one happy."

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

kefas (New user):

And I third your idea. I was really curious about the syllable OS you people mentioned. So I googled it and looked up what it was all about. And their 'about' webpage seems to address pretty much the same concerns Kolivas has on the Linux kernel; you know the difference between making an OS for the desktop or for servers, companies and their agendas and computers of the good-old-days. Reading the syllable's website felt like a deja vu (hmmm...I've read about this somewhere before... Oh wait, I just read about this from Kolivas' article two minutes ago!). I didn't any about any of this the day before, for example that we could trample on the desktop by rushing to make better servers... Anyway, I wish you well, Kolivas. You and others like you who try to make better desktop are the heroes of home desktop users like me (so don't injure yourself!):*(

07 September 2011, 4:32 AM (1 year ago)report abuse Send to a friend reply

Paul Murphy:


You might want to look at the opensolaris community. You'll find most of your schedular issues have been addressed in Solaris -many as far back as 2.7 - and the community a lot less ego driven.


And then, of course, there's openBSD - big ego issues, but interesting for desktop use.

29 February 2008, 8:31 PM (5 years ago)report abuse Send to a friend reply

Mike Dickson:

I'd second the OpenSolaris comment. IMO the development model used with the Linux kernel is fundamentally broken and many of Con's comments are on track. If Linux is the solution to the Windows desktop lockup then we all have a serious problem. I'm hoping that the OpenSolaris efforts can continue in the direction of stability and maintainability while embracing some of the open aspects of Linux.


29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Charlie Root:

Funny, I was also thinking that. How often do we read about how OpenBSD's Theo De Raadt is a jerk, and how Linus and his followers are so considerate to users? Hypocrites!

It's unfortunate that Con had to deal with this nonsense. Good code should be nurtured and appreciated, not nit-picked into oblivion.

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Drew Vogel:

Right on. I read many Con-Ingo-Andrew-etc threads on lkml. I got the impression that, because Con's code was good and very popular, the other developers expected the same level work that they expected from themselves. School teachers often grade unfairly based on the potential they see in a student; same concept.

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

J. Random Hacker:

OpenSolaris has a community? They have developers sure, but certainly no user community.

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Christopher:

Oh they do...Solaris users just like the Linux kernel has enterprise 'users'.

You can forget about trying anything new there. The Solaris users will tar, feather and flame anyone who dares suggest, let alone implement, anything that breaks their precious stable interfaces.

Maybe Nexenta but they have dropped desktop on the roadmap...they are pretty restricted man power wise.

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Venky:

OpenSolaris has a community? They have developers sure, but certainly no user community.

Oh? I thought I was part of the community. Probably all my imagination.

Have a look at http://opensolaris.org

I would be very interested in your definition of a community.

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Tony:

Con,

Yes, computing is in a mess.

Hardware innovation is slow and wanting, although the prospect of SSDs replacing hard disk drives is exciting, and LCDs are good news too especially with the new LED backlit variants. Also, a recent return to the idea of quiet fanless systems is very very welcome too. Just love all that copper on the motherboards.

The operating system should have addressed the security issue a long time ago when the Internet started becoming popular. Why don't any of the OSes sandbox everything by now better protecting users from themselves?

I would dearly love to see Con getting involved with Ubuntu and creating kernel enhancements which are desktop oriented for Ubuntu users.

Ashton states that Linux will rule the world. Well, it won't until the desktop side of things is addressed, and users taken into account. Ubuntu should boot fast, shutdown fast, be stable as a rock, everything intuitive, be secure, and be really easy to develop applications for. It should have a VB 6 like pre .Net RAD tool that uses a cross platform runtime a la Java. There is a gaping hole right now for a fast really easy to use software development tool that reduces software development costs (both on Windows and on Linux - RealBasis has the right idea though). A lot of the business community are very annoyed about that because they have lost the speed and low cost advantage that languages like VB 6 pre .Net, Cobol of old etc gave them. There is a huge opportunity out there right now, but Linux is missing it by concentrating too much on the server side of things.

Until this is addressed Microsoft will always win. The only other way to stop Microsoft is to stop paying the Microsoft tax and stop buying Microsoft products. To that end, I refuse to buy the awful Vista for as long as I can (XP rules for now), and will use Open Office rather than buy Microsoft's Office 2007.

I am interested in Ubuntu but it's not ready for mainstream consumer use yet. No wonder Microsoft is trying to get patent protection deals. Clearly it is worried that somebody might wake up and fix things on Linux so that it becomes a real threat. Sounds like Con is the man to get things rolling. Perhaps Con should give Mark Shuttleworth of Canonical a call. I'd love to see that happen.

29 February 2008, 8:31 PM (5 years ago)report abuse Send to a friend reply

David S:

That is a truly brilliant idea! This is the first I've heard of Con and his work, and it sounds worthwhile.


29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

João Carneiro:

maybe it could play the other way around... canonical could drop him a line...

Maybe if all Ubuntu users emailed both of them, hehehe

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Dane Mutters:

Con, I've been loosely following your patchset since I was using Slackware, around 2002. I positively loved all that you did to make things work better, from the inclusion of supermount/submount, to the finer tweaks in performance that made the Linux desktop more enjoyable to use. The reason I mention Ubuntu is because I've been following their devel lists (devel and devel-discuss) since before the release of Dapper.

What actually shocked and amazed me is that, as no more than an "average" Linux user, I was able to spur development of some really well-liked features! All I did was follow their testing guide for Dapper, submit the results to the devel list, and participate (in a fairly non-technical way) in the ensuing discussion. The developers and other participants were VERY understanding and helpful, and moreover, willing to DO SOMETHING about the problems I reported.

Most users of Ubuntu Feisty are probably familiar with their Restricted Media Codecs wizard. While I in NO WAY mean to say that I had a part in the implementation of the thing, I do recognize that the spec and later implementation occurred (as far as I can tell) as a direct result of my having posted some pretty non-technical, not difficult-to-get test results on their latest beta release. If you feel so inclined, you can get a feel for the development community (and see the posts I mentioned) at these links: (The original post had an attachment, hence the spam filter stuff.)

Link 1

Link 2

But whatever you do, Con, PLEASE don't give up because some people weren't good to you or your work. Whether you end up taking a look at Ubuntu or whatever else, your skills and work are appreciated.



29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Fred Hamranhansenhansen:

> Why don't any of the OSes sandbox everything by now
> better protecting users from themselves?

Because C programming goes back to a time when there were no users in the modern sense, just programmers, and so C programmers feel they have a divine right to run code on all silicon, wherever it may be found.

Look at the hue and cry over the iPhone sandoxing all third-party developers, and it is just a phone not a PC, and their sandbox already runs billions of lines of existing code. Third-party music and movie developers are more important to iPhone than third-party C developers but try telling C developers that.

So in short nobody's sandboxing a PC any time soon except for running Windows in a VM, which I think of more as litter boxing.



29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Dawie:

Ubuntu rocks... and will definitely rock even more with you joining Canonical... ;)

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Anonymous53698411:

If it is not ready for mainstream then why is Dell shipping with Ubuntu and HP shipping Mandriva 2007?

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

jjacksonRIAB:

Con,

I've had the same realizations that you have had over the years. If you can bear looking at code again, maybe you should consider working on openbeos (Haiku) http://haiku-os.org/ some day -- I'm sure they would appreciate the help. That's the closest thing I can think of to the Amiga ;-)



29 February 2008, 8:31 PM (5 years ago)report abuse Send to a friend reply

kolla:

Really? Never heard of AROS?
http://www.aros.org/

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Bob Newhart:

Yep. Never heard of it. From the page I probably won't again.

I really liked BeOS. I put it on my Mac. Amazing. I went to the demonstrations when they came to my local University.

To this day that was the most capable OS I've ever installed.

I used to hope that Linux would approach BeOS. I've stopped hoping. I will use Linux until something else comes along. I'm personally really hoping that OpenSolaris takes off. I would use that right now, but I need to run my computer as both a _reliable_ server and desktop. I don't have the funds to separate both, or to buy a Xen capable rig.

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

John Rancom Bass:

The problem is they need to come up with a competitive windows system instead of x-windows. It should be one windowing system and not Gnome or KDE. They should make a from scratch windowing system that is modern and efficient and competes with the MAC or Windows. Graphically a windowing system is much more than a pretty set of Icons and this is where Linux falls short in the desktop. Not in the kernel. There should also be an opensource version of direct x but the OSS guys can't compete with direct x.

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

joejoseph00:

Con, as much as I liked my Amiga in 1989-92, I have to say that Linux does everything that it did and it does it faster and more reliably.

If you want a fast operating system, run a c64 emulator at 20 mhz emulated speed, emulate a REU wih 256 k ram and load up G.E.O.S 2.0 . Of course it's faster than any OS currently for things like boot speed and loading applications and it's really cool but today's software demands are way higher than GeoPaint and GeoWrite.

A simple web browser isn't as simple as it looks, remember how slow JPEG's loaded on a 68k Amiga? If you just used IFF's or HAM's a JPEG was extremely slow to load in 1991 or 1990. even one with a 68030 at 25 mhz was painfully slow to display JPEG images by todays standards.

I can appreciate that you're experiencing burn-out as a kernel volunteer but really, the software we have today (Linux) is a million times better than anything we had in 1990. Thanks to people like you Linux is great.

I can't remember the last time I had my Operating System crash. (Applications yes, Operating System NO crashing)

Back in 1990 you were lucky if your computer had an MMU, applications "broke the rules" and gave Guru Meditation errors that the operating system couldn't recover from. I've never seen a Guru Meditation Error (or whatever they call it, blue-screen or kernel panic) on a Linux PC. 3 cheers for Linux, keep up the good work and yes, userspace can improve, OS's would be nice to load in less than 10 seconds, this would be a great goal.

There's no doubt room for improvement but wax your crystal ball, the current state of software has NEVER been better. Computers now are so much better than anything we used to have, especially those with Linux. We all have super-computers on our desktops, and soon our desktops will be 100 core or 1000 core cpu's that will require Linux's scalability and capability.

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Andreas Back:

During high workload on a linux, or for that sake windows, desktop machine i usually experince

*stuttering och non responsive mouse pointer

*window components, like buttons or full windows takes forewer to redraw or appears to be very slow.

*crackle and pops in audio

*pauses in video playback

This happends, for instance, when starting new applications, terminating applications, during file transfers, video encoding, disk access( even when dma is enabled ) or similar things that all obviously should be done *in the background* with no noticeable impact for the user.

I suspect these are the things con have been trying to fix, and in these regards todays software is not much better then before.

It is possible to load the os in a couple of seconds, linuxbios have demonstrated this in a few videos.

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Stefcep:

I still use my Amiga (An A4000 with 50 mhz 68060 128meg ram and 24 bit graphics card). I use it to browse web pages (90% of the time)and jpegs display in no time, I use email, edit photo's, burn cd's. play mp3's. It boots up faster (7-9 seconds)than my Athlon 5000+X2 with 2 gig ram, and the multitasking is wonderfuly smooth, windows resize smoothly, the mouse pointer never jerks. Try using the file manager Directory Opus on amiga (even under emulation on a PC) and the native windows version and see which is faster. Guru's happen because AmigaOS has no memory protection but thats because the parent company died 16 years ago and development didn't continue: what's windows and Linux excuse? Con acknowledges the only speed improvement with PC's is in cpu-intensive tasks such as video and sound encoding, everything else takes as long if not longer than it ever did despite the advancements in cpu's, busses, memory, and storage.

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Jore (New user):

I agree, i compare both computer, one a outdate amd duron with windows 2k and other with the latest linux distro with all the patch and driver, while in windows 2k i can open several windows at once without a performance hit, the other will start lagging with a few windows, not to say that some applications show evident graphics glitch (i don't known if it's because the skin or any other reason).


19 August 2008, 10:11 PM (4 years ago)report abuse Send to a friend reply

Pete:

Sounds like Linux needs to fork an experimental specialist desktop kernel.

29 February 2008, 8:31 PM (5 years ago)report abuse Send to a friend reply

psi:

i agree: if a developer community can't agree on a project's goals etc., fork. build a new community, take as much or as little of the code as you want, and make something wonderful with it. i don't understand why so many developer communities go on fighting each other when open licenses mean they can go their own ways so easily. distributions and other projects do this constantly and it's great: sometimes the forked projects merge again somewhere down the road, when they each see the good that's come out of the other's different direction.

ok, so the kernel is the holy of holies, but it shouldn't be: as rms keeps reminding us, there's a heck of a lot more gnu than linux in gnu/linux. if a desktop-kernel team produced a kernel that increasingly broke packages written for the mainline enterprise kernel, i bet a lot of developers working on desktop projects etc. would abandon linux for...well, whatever the new kernel was called. yes, i agree (with con) that the triumph of the ibm pc clones is an example of how the dull majority tends to win over the creative minority; but linux itself and its being taken seriously by huge corporations is an example of the opposite.

rather than giving up in frustration, i wish creative developers would take their frustrations as a cue to set up their own projects and keep going, with fewer frustrations, and better outcomes for users.

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Mladen:

Why just experimental one. If I'm correct, even Microsoft don't have identical kernels for enterprise server and desktop.

And you know which applications go where. I would never use my own desktop machine as a web server or let someone run office applications on company's database server. So you know on which version you need to test each application.

Hardware is quite cheap these days and two single processor computers are cheaper than one multi-processor one.

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Matt:

I was just thinking the same. You can't have a server OS running on a desktop - that's just plain daft. Even M$ worked that one out, although I don't know how much difference there is in the 2003 Server and XP codebase.

I fully appreciate Con's situation having been in similar positions myself - not with code though. I hope you have a great time with your family, and all the very best with Japanese (I'm doing Italian!) Hope you return refreshed, with a fresh outlook and new vision. We need peole like you.

I work in Enterprise IT, and have been a SUSE user (untill the M$ deal) since the mid-90's. I now use Ubuntu. At work Linux isn't really considerd. We run it for specific apps - proxy servers(Squid), network monitoring, and so on but all our main servers are Windows on SANs or Windows Clusters. Our desktops - of which there must be over 11,000 - all run XP or 2000 Pro. With all the inherant problems therein.

How many Windows desktops are there in the world? How many in comparrison to servers - what's the ratio? Surely if Linux is to make it into the mainstream, the offices and the boardroom, you have to get it running in the domestic sector first, get people aware of it's capabilities, and so on. Get the MD's kids running it at home and it'll end up as an IT project to test it and hopefully impliment it. A free alternative to Windows with no vendor lock-ins has to be good for everyone.

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

oscarspaz:

taking someone else hard work and claim it their own. I wonder if Ingo would be honest enough to give some credit to CK for getting a pluggable scheduler working in the first place? CK should be acknowledged for breaking the ground in getting a working version.

This really stinks.

29 February 2008, 8:31 PM (5 years ago)report abuse Send to a friend reply

ypnos:

Ingo gave credit to ck, you can read it in his patch.

I still think Ingo should have taken a more cooperative approach, supporting ck's scheduler and then improving it together.

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Tom Colman:

I read slashdot and osnews.com almost every day and it is the first time in years that somebody so clearly and openly states that the (linux) desktop is still slow.

Mailing lists/irc flame wars are closed group discussions, this interview is very public.

I hope this will be the start of a snappier linux desktop.

Currently Windows deskto is about as fast as linux desktop(s) so I think there is room to beat Microsoft there.

29 February 2008, 8:31 PM (5 years ago)report abuse Send to a friend reply

Johan:

I have been using Linux for a number of years, and are happy with the performance on the desktop.
The scheduler works fairly well and the system never becomes unresponsive like Windows does during high load.

However, it DOES become unresponsive when it is accessing the harddrive.
This to me is the current bottle-neck.
If I have a copy running in the background, I want to be able to renice the IO, or automatically determine it is background, so less important than what I am currently busy with.

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Youre Kidding:

The Windows XP desktop is much faster and more responsive than any Linux ditro that I have ever tried. I can't post benchmarks (just like Con found it hard to do), but I speak from real end-user experience. Take a respectable PC (P4, 2GB, Geforce 7800, 500GB SATA) and load a clean copy of XP and then a clean copy of any Linux distro. Boot each OS and simply open a web page (use the same for both.) The Windows OS will absolutely smoke Linux in responsiveness.

Con is dead on that Linux needs a lot of work for it to be truly useful on the desktop (and that nobody is really working on it!)

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Patrick_:

I have to agree with you there. If you compare apps that have both Windows and Linux versions, almost always for me is the Windows version more responsive. It loads more quickly, also.

As for memory usage, of course, Linux wins.

I'll miss your work, Con.

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

ktb:

I was trying Firefox on Ubuntu, and suprisingly it was faster than on windows.

Booting was slower on linux. But both systems are slow :/ on my machine( Centrino 2 Ghz). I have 800 Mhz, celeron in home, running windows 98SE, and it is a lot better, from user perspective (not taking crashes and reeboots into account).

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

JG:

Against any Linux distro? Slap a Damn Small Linux on an old X86 machines and see how fast it run circles against your supercomputer with Windows XP. And that's just one distro, I can mention a lot more.

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

J-Bling:

One area where XP really kicks linux's ass is putting the computer to sleep When I hit sleep on my XP box it goes down in less than 2 seconds. It resumes in less than 2 sec as well. The Linux kernel has yet to resume properly from sleep mode (although i haven't tried 2.6.23). My hardware (nVidia 680 SLI, core 2 duo, nvidia 7800gtx) was released much later than XP's release. Linux needs to catch up in this area.

29 February 2008, 8:47 PM (5 years ago)report abuse Send to a friend reply

Brian Astill:

Seems to me that Con's real lament was the lack of HARDWARE innobation exemplified by the Amiga.
Has there been any real change in PC architecture since the 386? Hasn't it been just more and more of the same thing - driven by the requirements of M$oft?
While they are limited by a restricted architecture, Linux and FreeBSD will continue to be regarded as mere alternatives to Windows.

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Jonathon:

Con, you should definitely check out the Haiku OS project--an effort to recreate BeOS R5. I really think it might be what you were hoping Linux would be.

We've already got a developer from GSoC working on getting us an O(1) scheduler, but we'd love to have your expertise on board. I think you'd really enjoy it.

29 February 2008, 8:31 PM (5 years ago)report abuse Send to a friend reply

Anonymous11e:

That's why i use FreeBSD instead of any Linux distro.

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

LR:

Yes. I support this suggestion. You seem like a person that cares about desktop experience and knows that it has alot to do with scheduling. BeOS gave me an expirience that I yet havent seen similar in both Windows and Linux. I ran BeOS on my PII266 10 years ago and it performed better then my P4 using WindowsXP today. I dont think that the GUI engine in Windows XP is slow, but it definitily has a problem scheduling it right. BeOS still had to do the same work on the same hardware, but it scheduled different and it made a huge difference. To me as a user it gave me a great expirience. Sometimes it seems that the name "operating system" means nothing, because its certainly not very operative when its blocking the users from performing tasks. Ofcourse, BeOS was/is optimized for desktop use, audio and video. But then again that is what the majority of desktop users will use their PC for anyway. If I need a server Ill go for Linux, but for a desktop system, BeOS is what I still use. Take a look at Haiku. It will fit your vision I think, and they could definitly need more developers :)

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Elwood:

Everybody that keep good feelings about AmigaOS, should try the real thing : AmigaOS 4.0
http://os4.hyperion-entertainment.biz

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Pietro:

If you need a suggestion, one thing you could do is to work on one of the micro kernels that are being developed right now.

E.g.: Minix, L4, HURD, ...

I think there is where real innovation can take place.


29 February 2008, 8:31 PM (5 years ago)report abuse Send to a friend reply

Arne Babenhauserheide:

I see good progress again on the HURD side, with Google Summer of Code students improving it in many places.

http://digg.com/linux_unix/The_GNU_Hurd_meets_Google_SoC

Info:
- general Info: http://www.gnu.org/software/hurd/
- current Info: http://www.gnu.org/software/hurd/help.html

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

Anonymous2:

Finally someone mentioned it.
Mr. Kolivas, if you ever think about returning to this, seriously consider the HURD. It still needs a lot of work, so you will catch some of the most important and defining parts of it.

The original GNU kernel, consider it.

29 February 2008, 8:47 PM (5 years ago)report abuse Send to a friend reply

elmar:

I hope you gonna choose HURD if you ever like to enter back the computer world.
The GNU spirit make one of the differences.

In the meanwhile all the bests whit you family - that is most important in live. And enjoy learning Japanese.


http://www.gnu.org/software/hurd/hurd.html

29 February 2008, 8:48 PM (5 years ago)report abuse Send to a friend reply

derek:

I've been strictly a Linux desktop user since 1998, the year I gave Microsoft the boot. I had enough time and interest to tinker with Linux and liked having some amount of control over what I put on my PC.

These days, I just need to be productive, and don't have time for tinkering and compiling. However, after all this time, I still can't rely on a desktop Linux to just *work*.

The cycle goes like this:
1. install a distro
2. several weeks of installing/configuring/compiling applications, getting everything functional (never quite happens though)
3. a year goes by
4. the distro becomes obsolete; can't get support for something or can't install something I need
5. rinse and repeat

With every distro I've used over the years, never once has everything (printing, audio, stability) been complete. There is always something unstable or non-functional. Currently I have the latest version of Ubuntu/Kubuntu, and it will just lock-up every so often without warning...requiring a hard reboot.

I think I've given Linux enough of a chance to work as my desktop OS, but it's time to move on...I have work to do.

29 February 2008, 8:31 PM (5 years ago)report abuse Send to a friend reply

silversidhe:

So did I - I'm playing with PC-BSD now and except for a glitch I probably caused with the sound I really love it. Everything has been so much easier and seems to just work. It would depend on your needs - what you need it to do - what your work involves. I did have a problem trying to install it on an old laptop I was fixing to give to a low income recipient - I never succeeded. It installed perfectly on my desktop - I'll probably try it on my old clevo laptop next. If anyone bothered to really read they would have heard his pain and burnout - you can only take so much. For those Ubuntu fans - it's still LINUX. I tried it briefly and gave it the boot for being too proprietary and clunky (p.s. what a hog!).

29 February 2008, 8:46 PM (5 years ago)report abuse Send to a friend reply

shae:

I come from Windows and not *nix, but I definitely agree.

Currently my hopes lie in ReactOS, which is based around Windows architecture. Linux is just not an option for games. I guess at first the aim would be recreating the whole mess, but perhaps once that is stable it could evolve or branch into a lean version of Windows.



29 February 2008, 8:31 PM (5 years ago)report abuse Send to a friend reply

View all comments (74)  

anonymous user Anonymous user