Why I quit: kernel developer Con Kolivas

Ashton Mills24 July 2007, 1:40 PM

INTERVIEW | Linux is burdened with enterprise crap that makes it run poorly on desktop PCs, says kernel developer Con Kolivas who recently walked away from years of work on it.


Con KolivasCon Kolivas


Con Kolivas is a prominent developer on the Linux kernel and strong proponent of Linux on the desktop. But recently, he left it all behind. Why?

In this interview with APCMag.com, Con gives insightful answers exploring the nature of the hardware and software market, the problems the Linux kernel must overcome for the desktop, and why despite all this he's now left it all behind.

Read on for an honest appraisal of Linux, and why it has some way to go yet.

You wouldn't know it from seeing him online, but by day Con Kolivas works an anaesthetist at a hospital in Melbourne. Linux kernel hacking is just one of his hobbies.

Despite this, Con is one of the most well known names in Linux kernel development -- and with good reason. His focus on improving the kernel for desktop performance has won him a legion of fans, and his patchsets for the Linux kernel (marked as -ck) have had a significant impact. So much so that some of his changes have been directly incorporated into the kernel, and some of ideas inspire changes still taking place.

Recently, however, Con announced he was leaving it all behind. Interested in hearing what prompted the move I contacted Con to talk about the reasons for his leaving, what it takes to be a kernel developer, the future as he sees it.

The response I got was more than I bargained for -- in the conversation that followed, Con explored not just why he left, but also the challenges the Linux kernel must overcome as he sees it, and the very nature of the hardware and software market that led to the computing environment we have today. Whether you're a Windows user or Linux user, he makes some excellent points.

Rather than break up the Con's responses, we're publishing it as it stands. So grab a coffee, make yourself comfortable, and read on.

page 1/3

Next page: how Microsoft crushed innovation in PC architecture >>


Post your comment



Comments

RSS feed Email alert

Con Kolivas:

I have one regret about this article. I never suggested it be called "Why Linux failed on the desktop", and I actually never said that Linux failed on the desktop. My perspective was on how the Linux _kernel_ and its development treats the desktop.

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

Dan Warne:

(Note, it's not called "Why Linux failed on the desktop" on APCMag.com...)

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

Con Kolivas:

I did see it called that when the article was first posted. Thank you for changing it :)

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

xray:

Hi Con
they need good developer, to advance AmigaOS4; -)

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

t4c:

I'm very unhappy about CK's decision, I loved his patch and his work, how can the linux desktop live without him?
the performance adds were more then welcomed power for my machines...

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

AmigaMan:

As he has so much knowledge and he is so fairsighted and he still has some true Amiga roots he would be a great man to become a VIP in AROS development. Or even better: develop a new computer technology in general as he is not just single-focused. He is not only a kernel hacker but a competent and intelligent man with an enormous knowledge. He is no geek. He is a medicine man.

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

J.R. "Bob" Dobbs:

Well how come I've never heard of this clown?

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

Pery:

Because you a idiot mate, he has been around for a while now.

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

codeslinger at compslot:

There is a premise here that is not necessarily valid.

Con admits that he has never programmed before in his life, and yet suddenly he jumps in and starts writing kernel code, which is very complex. And then he wonders why the very first version of his program was not accepted.

Con is a very intelligent and insightful person, there is no doubt about it. Many of his observations are right on target. But there is a big difference between making good observations and writing good code.

Now maybe Con is some kind of genius genius; but I've got years of experience writing code in many different languages and I have seen the code that others have written. And it has been my observation that all programmers -- even genius programmers -- start out writing a lot of bad code before they get enough experience to start writing good code.

It would be like somebody spending a couple of weeks shooting hoops in their driveway and then calling up Magic Johnson and saying that they wanted to go one-on-one with him. I don't care how talented they are, without the experience of honing your craft, you just aren't going to be performing at that level.

Con must be good though, because the Linux dev's thought enough of his approach that they rewrote much of it and adapted it into the kernel, and gave him credit. That is a very high compliment and Con should be proud of that achievement, not having sour grapes about it.

Con seems to think that there is something wrong with rewriting code. This goes back to his complete inexperience as a developer. The first version of any program is nearly always a throw-away. If he knew more about the development process he would understand why rewriting code is a normal and often essential part of the development cycle.

Programming is complex, the first version of a program enables you to define the problem better. In the process of writing and studying the program you begin to appreciate the 20 zillion interactions that were not apparent at first.

But it is rare for the first version to be the final version, usually you need the insights gained from the first version of the program in order to be able to write the real program.

The Linux kernel dev's are very conservative, they shoulder a huge responsibility. Every change that is made to the kernel affects millions of machines running in lots of different environments. And some of those computers are running critical systems. Changes are slow to be adopted, I'm sure that it is a frustrating process for many, but it is a necessary one.

Politics aside, probably the main reason that people prefer Linux to Microsoft is that the Linux kernel is bullet-proof, it basically never crashes. It took a lot of careful thought to achieve that, and every possible interaction had to be considered. This is a level of craftsmanship that takes years of experience, and one which Microsoft appears to be incapable of achieving. It's one thing to have the desktop of one user crash and need rebooting, it's quite another thing to have a server upon which thousands of people are depending, to have it crash and need rebooting.

Performance is not the end-all be-all, reliability is much more important, unless you are building a race-car and you don't mind that it self-destructs and that you have to rebuild it at the end of every race -- which is something that the Windows operating system is well known for (reboot daily, rebuild quarterly). If you want something for the long haul then you have to take a much more conservative approach.

Yes, sadly, the Linux desktop has a ways to go. But Linux as a server is taking over the data centers. Do you really think that an IS department with a multi-million dollar budget, cares that it has to spend a few thousand dollars for a Microsoft Windows license. No, of course not, what they do care about is the reliability and stability and long-term compatibility issues, all of which Microsoft is very poor at delivering. But all of which Linux delivers in spades.


As far as taking a break, hey great! I highly recommend it, programming is such an intense activity, it's important to get away from it for awhile, I've done it myself. But you will be back, once you've been bit by this bug you are unlikely to get over it. Who knows? Maybe you will get some deep insights into how to write a really good Japanese-English translation program.




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

PJ Cabrera:

This site's content is very hard to read, and it seems to be laid out with the assumption that everyone has an 800 pixel wide screen (or similar.) Tell your site designer to get on with the times: it is very easy to make the sidebars fixed while making the center column resize flexibly to accommodate wider screens.

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

Michael Ott:

I have to agree with PJ Canbera. This design is very dated and does not utilise the browser real-estate effectively.

Considering your target audience (techies and alike) I would say it's a pretty safe bet an overwhelming majority are comfortable reading articles wider than the approximate 400 pixels of width you have allowed.

Consider a fluid design. It's not difficult to do and you can get it to validate (unlike this site...tsk tsk tsk)


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

Horace Ho:

As a quick fix, View -> Page Style -> No Style, if you are a FireFox user ;-)

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

Anonymous-user:

Shift-G disables stylesheets in the current page. A key feature for people that write web pages with dark text on black backgrounds.


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

janetk:

View-Style-User mode in Opera :)

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

Gabriel:

I just want to say a big thank you to Con for his efforts all these years to make Linux a better desktop OS.

Best wishes with the future, and learning Japanese!

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

Pats:

CK, Desktop users who have used your patch (atleast the polite ones) will probably say "Thank you!" and wish you well.

I for one think you are walking away from a fight that you can win man. Please if this is taking a toll on your health and family - I'd be the first to laud your decision to walk away, but for what it is worth - i think you probably need to talk to people in the Industry (I remember a feedback suggesting Mark Shuttleworth - i would suggest you talk to the Google Folk on this as well) about this and asking their feedback on the same before throwing in the towel. Linux needs people like you who can think out the box to compete on the Desktop.

:-), I have not used any of your patches, yet. But I intend to - after reading this article.

Either ways, my best wishes for your future, whatever decision you take and stick to. Have a wonderful life dude.

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

edam:

I too was unaware of your patches before your decision to leave kernel development (read on slashdot). And I have also been frustrated by the lack of responsiveness from the linux desktop. Switching over from Windows, I found it to be far less responsive - which surprised me!

I am compiling a kernel patched with your patch set as we speak. I only hope that if you cannot continue with the patch (for which no one could hold it against you), someone else will pick up where you left off.

All the best.

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

Julian:

When a cycle is finished, it is time to move. I respect your decision and wish you all the best to you Con and your family. I would like to thank you for all your hard work, it made a big difference in my Desktop Linux experience.

I don't think there is a point in fighting against the kernel people who have ignored your work during this years, only to now rewrite them with their own names. People that need fame for self-steem is not worth fighting. You have your family, your profession, other hobbies, and other priorities which are worth more than fighting for a name on top of the list. We all know what you did and thank you for that.

Thanks again and wish you all the best
-Julian

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

Michael:

I quit the software industry as a whole for years. The break refreshed me and got me willing to fight again. I suggest you do the same, Con. Take a break. Reconnect with your family. Learn Japanese. Clear your minds of the bitterness.

Then come back swinging.

Approach people like Canonical and explain to them the benefits of making a Linux distro that doesn't suck on the desktop. Let Mark Shuttleworth fight the Linux kernel crowd or, if necessary, fork from it. Who says that Linus has to be the Final Voice on all things kernel-related anyway? He's not even all that hot a coder (and an even worse designer)!

Alternatively, approach projects like Syllable or Haiku and let Linux rot in server land while a real desktop operating system takes over the hearts and minds of the user community.

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

Jonx:

Thanks to APCmag for publishing this article.

Con, you are the man. I truely understand what you have been going trough. Like some other suggested here I wanted to suggest you to fork the kernel and sell the idea of a better linux desktop to unbuntu or maybe novell but I guess they are not gonna take any chances at loosing the support of the kernel people.
I won't say anything against the people in charge of the final decisions about the linux kernel, every body can make his own idea from the objective words we can read here. I bet that everybody here has the same opinion.
I left linux after many years because of all the problems you tried to solve that never made it trough. Can you imagine that I prefer to work on XP rather then Linux as a desktop user. I never tought this will happen, but on the desktop this is the only reasonable choice.

Time has already proven you were right at first. The future will tell us the rest ;)

Of course, now, if by chance you change your mind some day and wanna give a chance to your own linux fork, I want in :) I even have the name: ChicKOS, you can read this in french *chikoss* meaning *classy* or like *cheekos*, the OS for girls or chicks, not real kernel hackers of course... also you could read it Chic Khaos. Because for me, it would be exactly that! A bomb ! But what a bomb!

Have fun in your future life. No regrets as for me, you did the best and are the best.

Thank you for all your tremendous efforts over all those years. We will truely miss you.
John.

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

fdisk:

Con, we need more people like you and less people like them. There's no evolution without a revolution. I hope you come back and start one.


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

Ken Krauss:

Con, thanks for all your hard work. It's people like you that keeps Bill Gates and Steve Jobs up at night. They know there's no stopping open source once the ball gets rolling, and it is finally. It's great to see Linux (and Apple) seriously challenging Microsoft's monopoly and bringing back some life to what was a very, very boring computer world. I use Mac on my desktop and Linux for servers which IMHO is a match made in heaven, but I don't think Macs are perfect even though I do think they're the best desktop out there today. The whole time I was reading this, I had visions of the spinning beachball in the back of my mind. I have no doubt that in a few years there will be a Linux distro that will challenge Apple's supremacy for ease-of-use on the desktop. Surely, your efforts will be an inspiration. Best of luck in all facets of you life!

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

Anon2k:

What most users don't realise is that even if the linux scheduler is far from ideal, there is plenty of cpu cycles to make even the most complex of GUI interfaces instantly responsive.

The whole problem is the complete and utter garbage that passes as a windowing system (X windows), and the equally inefficient, slow, bloated, and ill designed crap that pass themselves off as GUI (graphical user interface) toolkits such as GTK.


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

Michel_Tr:

The last Mandriva that works relatively well on many of my PCs is 2006. I tried many other flavours like Ubuntu, Fedora and I must say like CK, it is getting ridiculous, Linux desktop is getting so full of unneeded stuffing for eyecandy and corporate stuff that its stability is more often than not compromised. I am now giving a go at PC-BSD Desktop 1.3.4, although still very immature, it does handle updates better than most and software base is limited because it is desktop oriented. For neophites, it seems a better solution than the Linux one. CK, please join the PC-BSD Team, they seem serious about bloatware!


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

bill davidsen:

As someone who has contributed test results on scheduler behavior for years, I'm sad that Con Kolivas has taken such a negative attitude because the cfs scheduler was chosen for the kernel rather than the staircase-deadline. It's hard to admit that someone has done it better, but that seems to be the case.


The CFS has many tuning values to adjust the behavior, including a features menu which allows certain non-default policies to be used and others disabled. Instead of a pluggable scheduler there is a single scheduler which can can be tuned to optimize whatever process type is most important in a given system. So Con's concepts of fairness and user choice were provided to the user, just not in the form developed by Con.


As for the swap recovery problem, I believe that it is on the roadmap, but it is most useful on systems with minimal memory and which are not tuned to optimiza use of that memory. I discussed another solution with Andrea Archangeli in the 2.4 kernel (the -aa kernels) and decided that there was no support for any solution. However, there are now i/o memory parameters which can reduce the need for my patch or Con's.

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

Tony:

"It's hard to admit that someone has done it better, but that seems to be the case...
Instead of a pluggable scheduler there is a single scheduler which can can be tuned to optimize whatever process type is most important in a given system."

Yeah, I can just see it now.. the average Linux desktop user openning up a scheduler tuning menu and successfully tweaking the kernel timing to make his desktop run what ever he is doing quickly - NOT. In fact, it would seem much more likely that having seperate loadable modules labeled as "server1", "server2", "desktop-norm", "desktop-games", etc would be much more likely to be used correctly by the average user. As a rule of thumb, the most complex solutions (has the most variables) are usually the ones that suck the hardest.. CFS included.




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

Geronimo:

"Yeah, I can just see it now.. the average Linux desktop user openning up a scheduler tuning menu and successfully tweaking the kernel timing to make his desktop run what ever he is doing quickly - NOT"

I guess that would be the job of the user friendly distributions. Their desktop edition could be tuned differently from their server edition. The user would not have to do anything.

By the way, I would not expect a user choosing from many different schedulers available (even if they were called "server", "desktop", etc).

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

red7:

i have to agree that it is hard to admit that someone has done it better, and i think that is what we are seeing here, and for all the people saying go here, develop for these guys, well if the kernel was so far from being finished why wouldn't you stick with it and see it through?


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

Leslie Satenstein:

The battle about scheduling is only one aspect of what CK was trying to improve upon.

I for one use linux as a hobby machine, and for it's robustness, but not for it's performance.

If I start a copy of a large file (say a dvd iso image), be assured that the desktop is frozen until the copy is almost over.

XP has good response for desktop use. I have actually returned to XP after 2 years of linux desktop experience.

In the 1970's IBM had a great scheduler.
It divided the workload into groups, and those groups had members that were scheduled round-robin.

Interactive work group was first in the dispatch queue, batch last. I/O input was top.
So, we now have the question of time slice being fixed or variable, and how to determine the slice. This was solved.

I do believe that the IBM scheduler in MVS or VM was a staircase one. But since I am not a system programmer of these systems, who am I to say.

In interactive round-robin, different rules applied to the round-robin in batch or in I/O intensive work. Did the user give up the cpu voluntarily (he is reading the screen contents), or was it taken away from him (he was scrolling and exceeded his chunk of time). Then there is the question of fixed or variable chunks of time.

Anyway, one should define first what the workloads are and then define what or how the scheduler should address any combination of them.

So, where do we see the workload definitions and where do we read how the "new" scheduler addresses them.





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

Counsel:

Lots of flames present...

This is his opinion and his decision. Nobody has to agree with either the opinion or the decision, but you should respect him enough to not flame ... Hell, respect yourself enough not to flame.

If you are able to give your opinion that he is wrong (certainly nothing wrong with that), he is entitled to his opinion.

ck: I wish you well. May you find happiness and less "flaming" where you spend your time and energy. I will miss your work.

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

New Path:

I agree with others that you need to take a rest and be with your family. That is the most important thing.

If you decide to get back into kernel hacking, I don't think the dev enviroment will change even if you sit on the side lines for a while. I think the reasons that have made you leave will still be here if you decide to return to coding.

So I would suggest a change in OS. See which one you like better and where your skills will be needed and appreciated.

I would personally like to recommend ReactOS since they are still building their kernel from the ground up. It is a windows clone which I think would be a great addition to the desktop OS scene. And these guys need all the help they can get from interested developers. In the end, it will probably run more windows apps better than linux ever could hope to run (my opinion, of course) them.

Anyway, just like japanese, it will definitely be a change for you and something new that you might enjoy.

Bottom line...you can have fun again...8)

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

friend:

Con, the answer is...

MOBILE

Mobile phones/devices are very specific task products. Con (as you said) people want products for spefic/oriented tasks. In this products, everything is about the end-user. People want to communicate, to see maps, to take pictures, to read email, to record/watch movies, to play games, etc. In this products this is very easy and very fast to do. They are on cellphones, but they will be on cars, houses, etc. Therefore, the real treath to Microsoft Windows isn't (and will never be) Linux, the real treath there will be will be the mobile devices. The linux kernel is very big and it's to much server oriented (as you said). Sometimes, it seems that linux developers forget what people want: good software. People want fast/good software! Looking at your talent, I suggest you should consider working to a commercial company like SymbianOS, Microsoft, Apple. Take a smart move on this momentum. You are very known for your talent.

Matheus.

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

goatiusmaximus:

Oh well, you wrote for desktop users in an environment where server performance reigns. What can you expect? Its no reason to quit, this is how new divisions of linux start.

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

nick thompson:

Con,
Thanks for the years of learning + fun. Hope you decide to come back, maybe people are right; a break is in order. Then stick a toe in, maybe a 2.6.27/28-ck1 ?

:)

Regards,

Nick

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

Nyhl Rawlings:

Ever increasly the route microsoft takes to advertise. The Wow starts Now just isn't cutting it any more, so they're down to the same old tricks sony saw with the PS3 launch.

Microsoft's mentality is simply, "If you're losing ground, play dirty"

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

spartian:

Hi Con,

Hopefully I've understood your interests and past efforts: Your concerns seem familiar and relevant to myself. I think stepping away is a good thing, so even if I've got it wrong, just the act of stepping away seems like the right path.

I don't actually run Linux other than the knoppix boot disks, but I've noticed that many times on other OSs that when I click on an icon, the computer goes off does something and comes back with a normal cursor. Implying that everything is done, but in the mean time I'm waiting for the computer to respond.

If your concerns were targeted towards this issue, I think it is the biggest failing in today's operating systems. I would be happy if the icon changed as to say, 'I've got it and will be ready in a moment'. However, I would be more impressed if that task became more of a priority and the OS rearranged its priorities to match my needs. My impression is that in XP/Vista/Tiger the OS is more concerned with completing its own task list than what I actually do with the mouse or menus.

My guess is that if the OS were a bit more responsive, then people would wouldn't be over-clicking as much as they do with the current generations.

-spartian

p.s. I'm a total Mac fan. I don't really want to have to worry about which patch I should apply or why, but I have some appreciation of the appeal of Linux.

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

Dave (New user):

Too bad we can't have a desktop kernel AND a separate server kernel.

08 April 2008, 7:14 AM (1 year ago)report abuse Send to a friend reply

Dave (New user):

Too bad we don't have separate server and desktop kernels. Then they could both be optimised.

08 April 2008, 7:15 AM (1 year ago)report abuse Send to a friend reply

squirrl (New user):

FORK THE KERNEL!
Mark Shuttleworth forked a distribution.
RedHat routinely forks its own kernel.
Slackware has always told people to go fork off on what they like :)

Deprication tends to be a problem to take note of.
2.6.24 depricates the way ACPI is handled which cripples KDE's power management. I can use more of my function keys with the new kernel but I lose features. I can suspend but I can't alternate CPU profiles anymore. I don't have time to fix KDE's stuff. I'd like to focus on game programming.

Back in 2001, I stuck with 2.6.8. Because of the Rik Van Rel VM. It was superior. Look that guy up as a contributor to your version of the kernel.

Most of the things are not broken. They basically work. But the dev's are trying to fix them in the name of server anominoty. NetBSD is great for that sort of thing. Linux is great for X86/ARM. OpenBSD runs on SPARC. We don't need it!

Let's focus. Reiser would do great without the big kernel lock. So fix it. I notice a big performance increase using ext3 on my dual core. Why?

Quit messing with stuff that don't need fixing. ACPI, may be dirty but it works. Quit over simplfying the API's. Microsoft does this and it makes it a pain to work with. C# drives me nutts sometimes.

Dirty code is fast code :) My c programs look like rat's nest but they haul.

Good luck man.

squirrl
practicing the state of slack for 14 years.

15 April 2008, 6:52 AM (1 year ago)report abuse Send to a friend reply

kitsinu (New user):

I think this highlights the real vulnerability of Linux, which is money. As Linux is "free", there is no money to be made writing code for it unless writing code for it is part of your job. The only people who are making money writing code for it are the ones doing server coding. That seems to have become the Linux kernel writer's top priority. Linux used to be their hobby, now it is their job. People aren't going to threaten a job they enjoy for someone else's hobby.

I have to wonder if perhaps Microsoft didn't manage to divert Linux away from the home user in order to maintain their virual desktop monopoly.

06 June 2008, 10:32 AM (1 year ago)report abuse Send to a friend reply
09 September 2008, 8:29 PM (1 year ago)report abuse Send to a friend reply

anonymous user Anonymous user


Tags