Slashdot Mirror


Fork the Linux Kernel?

Joe Barr writes "Fork the kernel? Are you crazy? A blog entry on InfoWorld.com urged the Linux community to fork the kernel into desktop and server versions because, according to the author, all Linus Torvalds cares about is big iron. Sorry, but that's both wrong and stupid."

38 of 455 comments (clear)

  1. Well that's the beauty of Linux... by tekiegreg · · Score: 4, Insightful

    If you want to fork the Linux Kernel, there's absolutely nothing from stopping you from doing it yourself. Wanna tune a version just for Desktop or Server? By all means, just adhere to GPL. Your attempt at forking might even get some support from the community, however I'd think Linus's blessing on such a fork means something however...

    --
    ...in bed
    1. Re:Well that's the beauty of Linux... by MightyMartian · · Score: 4, Insightful

      Can you, or this blogger, or anyone, site some actual evidence that shows what the fuck "optimized" even means? You know, you guys go around spouting stuff about how Linux is too serveresque, but no one so far as I've seen has even defined that. A decade ago there might have been something to the complaint, although I can tell you now that I can take a Pentium 233mhz and turn it into a router running the newer kernels, and have it run like a hot damn, so I think you, like some other folks, are just spouting ill-conceived crapola.

      --
      The world's burning. Moped Jesus spotted on I50. Details at 11.
    2. Re:Well that's the beauty of Linux... by rawler · · Score: 2, Insightful

      The comment was not about performance on low-end hardware. Linux performs great on all kinds of hardware, in terms of throughput.

      The discussion here is about responsiveness vs. throughput.

      What I find funny, though, is why people is always screaming about the Desktop, when many embedded/real-time systems are the ones that really need strict-priority-scheduling and preemption to reach their deadlines.

      (In case anyone wonders it's not ok to chop the operators arm of, since the saw were currently calibrating power-consumption when the accident happened.)

    3. Re:Well that's the beauty of Linux... by complete+loony · · Score: 2, Insightful

      Forking the kernel is a requirement for working on it. Everyone who is maintaining the kernel is editing their own fork. That's how git works. Git is modeled on an idealized implementation of the GPL, everyone can create their own fork, but equally every change in every fork can be contributed back again. Which is why Linus thinks it's better for kernel development than CVS/SVN.

      --
      09F91102 no, 455FE104 nope, F190A1E8 uh-uh, 7A5F8A09 that's not it, C87294CE no. Ah! 452F6E403CDF10714E41DFAA257D313F.
  2. Why is it stupid? by xtracto · · Score: 3, Insightful

    I can not see why is it a stupid idea. Forking the Kernel in desktop and server forks will mean that each specific kernel is optimized for such tasks and that the distribution makers have just a subset of the huge kernel to care about when creating their distributions.

    A server is a relly different beast than a desktop and having this "all-in-one" kernel means that the operating system gets bloated with a) desktop specific features when using a server and b) Server specific features when installing a desktop.

    I think that a controlled fork in the linux version control tree might be beneficial.

    --
    Ubuntu is an African word meaning 'I can't configure Debian'
    1. Re:Why is it stupid? by DaleGlass · · Score: 4, Insightful

      Because the distinction between server and desktop is rather fuzzy these days. What could you leave out of the desktop OS?

      RAID? Doubtful with it being so affordable these days.
      ECC RAM? That can be had on many boards as well.
      Support for SCSI tape drives? Does my box suddenly turn into a server if I get a cheap drive on ebay?
      Ok, how about say, optimizing the desktop version for latency and the server version for throughput? Problem with that is that there exist server tasks that want low latency.
      Years ago you'd say "remove SMP support, nobody uses that". Not so these days.

      What could you leave out of the server?
      Support for sound cards? What if it's a server that records audio?
      Support for video cards? What if the server uses it for computation (rare but possible)

    2. Re:Why is it stupid? by 644bd346996 · · Score: 5, Insightful

      Which algorithms are bottlenecking your desktop? Is it the I/O scheduler? You can swap between one of four choices, at runtime.
      Is it the CPU scheduler? If so, you're a liar. Nobody had produced repeatable benchmarks that show a significant shortcoming in CFS for desktop and gaming use.
      Is the memory allocator really bad for your workload? Try using the new SLUB allocator, instead of the older SLAB allocator.
      Is the system not as responsive as you want? Turn on forced preemption and set the tick speed to 1000Hz.

  3. Fork? by EggyToast · · Score: 4, Insightful

    It's a blog post, so it's not like it's going to happen, but I don't see how forking the kernel would do anything than just lead to distribution craziness. Arguably that's Linux's biggest hurdle for new people -- deciding which distribution to get. And if people are checking out linux for workload purposes, forcing them to decide whether to get a server distro or a home distro and making that distinction at the kernel level? Buh?

    Generally, if it's good enough for enterprise, it's good enough for home use. And things that are useful for desktop Linux are often utilized at the enterprise level anyway. So yeah, it's just a blog post; I'm not sure anyone will take it seriously.

    1. Re:Fork? by bogaboga · · Score: 2, Insightful

      so it's not like it's going to happen, but I don't see how forking the kernel would do anything than just lead to distribution craziness.


      We already have "distribution craziness", with each distro placing vital system files in different places...and sometimes applications requiring different versions of a particular file in order to function. Man, it's crazy already.

  4. Why is this even controversial? by xxxJonBoyxxx · · Score: 3, Insightful

    Despite all the warm, fuzzy talk of open source and community development, the fact remains that, at the kernel level at least, Linux is still controlled by a small group of elitist "prigs." Stick too close to the "approved" Linux path and you end up with a crappy desktop experience. Stray too far, and you risk having your customizations broken if/when the kernel team decides to take things in a new direction.


    Why is this even controversial? If you don't like the way things work, the beauty of open source is that you can fork the code at any point. So...quit whining ("prings"?) and good luck with your fork.

  5. So? by SatanicPuppy · · Score: 3, Insightful

    Shrug. Let 'em fork it. I doubt they'll be able to swing enough maintainers to seriously effect development on the main fork.

    One of the great strengths of open source is that it allows for competing code. If the new fork is better (I view this as unlikely) then I'll switch. I'm about what works.

    When the level of discourse falls to articles of faith and prejudice, it's not about what's best for the code anymore. It's about your personal ideology, y

    --
    ad logicam Claiming a proposition is false because it was presented as the conclusion of a fallacious argument.
  6. Keep the code together; make it configurable by Kartoffel · · Score: 5, Insightful


    # Forking isn't necessary.

    options BIGIRON
    #options DESKTOP

    1. Re:Keep the code together; make it configurable by pohl · · Score: 4, Insightful

      At the moment I'm making this post, the parent post has been moderated "Interesting". I think "Insightful" or "Informative" would be more appropriate.

      What the parent poster is saying is that C pre-processor flags already allow the same kernel source code to contain features for both server and desktop without resulting in any bloat or compromise in the resulting binary.

      Only those who don't understand C would fret about a "bloated" kernel in this context.

      Now given a binary kernel that contains both feature sets you would have a legitimate concern, because then there would certainly be a bevy of both bloat and compromises. But this is linux, after all. We have the source code -- so none of that matters.

      --

      The "cue the foo posts in 3, 2, 1..." posts will commence with no subsequent foo posts in 3, 2, 1...

  7. The Kernel Isn't The Issue by craznar · · Score: 2, Insightful

    Linux has far too many varieties already, it makes mainstream hardware and software support almost impossible.

    And they want to fork the only consistent bit ?

    If they want to do a desktop version, it's time for the kernel developers to branch out into standardising Desktop libraries, desktops (KDE vs Gnome), devices, packages etc etc... so that we can have our 1000 versions of Linux and a single underlying version of Desktop Linux.

    Maybe then, Linux may make a dent in the world of Desktop Windows.

    --
    EMail: 0110001101100010010000000110001101110010 0110000101111010011011100110000101110010 0010111001100011011011110110
  8. memories... by TheSHAD0W · · Score: 1, Insightful

    I can sympathize with Mr. Barr; I remember when Linux natively ran on a 386SX with 16MB of RAM, and ran *well*. X? We don' need no steenkin' X! I think that, even if you stripped the current kernel to the bare bones, you'd have trouble running it in 16MB, it's been "spoiled" by too much cheap memory.

  9. Aside from the flamebait-ish nature of the post.. by somersault · · Score: 2, Insightful

    The less segregation in the Linux world the better, at least until desktop Linux is better at coping with new versions of the current kernel line (eg nVidia graphics drivers needing recompiling when a new version comes out and that sort of thing). Having different forks of the kernel would eventually also lead to software that can only be run on one fork without modification, and that's not much use either. The less work involved in porting to different distros/platforms, the better IMO.

    --
    which is totally what she said
  10. linux much better on low end machines by Gearoid_Murphy · · Score: 2, Insightful

    fact, the kernel is the core, everything else sits on top, no matter what, server, desktop, etc. Linux is doing well in server, desktop, mobile devices because its consistently provided a powerful and (read this, microsoft bastards) functional operating system. I have friends with reasonably powerful laptops which choke on windows bile, become soperific and lethargic, unresponsive and surly (like the dwarf). I run X windows with fluxbox on some of our old servers fine. Splitting linux is pointless and counter productive. Viva la linux!

    --
    prepare the survey weasels.
  11. This doesn't sound like a good idea by MonGuSE · · Score: 2, Insightful

    The advantages gained in forking a kernel are minimal compared to the disadvantages. Not to mention a lot of those advantages of a fork can be obtained by simply compiling a kernel based on your server's hardware and computing needs. If someone forked it they would then have to maintain two separate code bases, two separate patch bases a new naming scheme. Not to mention the main advantage stated which is getting rid of bloat occurs because of compiled driver support which means that only a small subset of hardware would be supported in theory and most of the bloat he is speaking about comes from the GNU side of things and can easily NOT BE INSTALLED or un-installed if so necessary...

  12. Re:Fork for other reasons by Mr.+Underbridge · · Score: 2, Insightful

    It makes sense for Linux to fork into two branches: one, a conservative one, aimed at upkeeping what already works, and the second, a wild-ass anarchist, aimed at forging new and innovative technologies.

    That's what they used to have with odd-number versioning. Problem is that cross-merging kept happening and the whole thing turned into a mess. Seems like what they do now (I'm not a kernel developer) is to do mini-forks to work on the new technologies and merge it back in when it works well enough. Sounds like a good idea to me - I don't think it wise to have *all* the buggy stuff in one 'test' distro, because the last thing I want when trying to debug *my* buggy code is sharing a codebase with *everyone elses* buggy code. And it's not like all the 'test' stuff finishes at the same time, so either distribution gets delayed, certain features get rushed, or you just end up merging some stuff back into stable anyway.

  13. Re:Fork for other reasons by ChakatSanddancer · · Score: 2, Insightful

    It makes sense for Linux to fork into two branches: one, a conservative one, aimed at upkeeping what already works, and the second, a wild-ass anarchist, aimed at forging new and innovative technologies.
    I totally agree here. We need to bring back the odd numbered branches for doing development work. I don't want to have to track down a specific sub-sub version if I want code tweaks, etc. The current system just means that the entrenched developers get to push their projects to the detriment of everyone else. Linux needs a branch where people can work without being afraid of breaking things, because that's pretty much the only way you're going to get good ideas right. The current system is just unworkable, and is making me take a good hard look at the BSDs or Solaris.
  14. So why the attention? by Bogtha · · Score: 4, Insightful

    Okay, so somebody made a stupid blog post. Why submit it to Slashdot?

    --
    Bogtha Bogtha Bogtha
  15. What about SMP? by Bill,+Shooter+of+Bul · · Score: 4, Insightful

    You could have made the same argument against including SMP a few years ago. And look, now ~90% of PCs (thats personal computers, for you me grandma and the king of Tahiti) have multiple processors. We don't know the direction computers are going to take in the future, but a lot of previous high end server stuff has trickled down into the consumer level hardware.

    --
    Well.. maybe. Or Maybe not. But Definitely not sort of.
  16. Re:No you can not by 644bd346996 · · Score: 5, Insightful

    Have you got any examples where there is significant overhead that can't be removed with a make config but could be removed with a specific, less scalable algorithm that isn't available in the kernel source?

    I'm pretty sure your comment is mostly BS. The vanilla kernel source includes a lot of configuration options for embedded systems. Low on RAM? Turn off CONFIG_BASE_FULL to use several smaller, slower data structures. Don't have swap space? Turn off things like CONFIG_SHMEM. Using uClibc? For now, you might as well throw out CONFIG_FUTEX as well.

  17. Re:No you can not by Fizzl · · Score: 2, Insightful

    Wish I had mod points.
    People should just read this comment before saying anything.

    (No, I will not resort to changing subject to MOD PARENT UP, because that annoyes me :))

  18. Re:No you can not by 644bd346996 · · Score: 3, Insightful

    The linux kernel already does this, with modules that can be loaded and unloaded at runtime. Whole subsystems (things like SCSI and DRI) can be loaded on demand. You can also enable or disable kernel preemption at compile time, and you can swap out I/O schedulers at run-time.

    However, the modular approach can have some overhead of its own (though not as much on linux as on darwin). If you really need a small kernel, you can actually disable loadable module support at compile-time, if you know exactly which drivers you need.

  19. Re:No you can not by Lonewolf666 · · Score: 3, Insightful

    Slow, scalable algorithms are used rather than lean but limited ones.

    If this is true it is actually a good idea. Today's personal computers have a lot in common with high end machines from 10 years ago.
    Multiple processors? Check.
    Gigabytes of RAM? Check.
    Harddisks with hundreds of Gigabytes? Check.

    And I guess the trend will continue, so what belongs in the big iron of today will be fine for tomorrow's personal computers.

    --
    C - the footgun of programming languages
  20. Re:No you can not by Midnight+Thunder · · Score: 1, Insightful

    However, the modular approach can have some overhead of its own (though not as much on linux as on darwin). If you really need a small kernel, you can actually disable loadable module support at compile-time, if you know exactly which drivers you need.

    Certainly, but the over head comes from the 'on demand' loading approach. You could technically use a modular approach and then have all the modules loaded at the start to reduce over head. If understand rightly the extra overhead in Darwin would come from the fact the 'modules' are slightly more loosely bound, allowing them to work with most kernels, whereas linux generally requires a recompile.

    --
    Jumpstart the tartan drive.
  21. Re:No you can not by 644bd346996 · · Score: 3, Insightful

    Sure, linux kernel modules don't have any significant execution speed overhead, wheras darwin does because of excess context switches. The overhead I was referring to on linux was just that a modular kernel (with all the modules loaded) can take up more memory. If you know you will always need all your drivers (usually for server and embedded workloads), compiling in everything and leaving out loadable module support can cut down on your RAM usage (though this typically only matters for embedded systems).

  22. Easy by NaCh0 · · Score: 3, Insightful

    Slashdot and linux.com are owned by the same company. Joe Barr submitted the slashdot article and also wrote the rebuttal blog. He can look smart and double the ad revenue all in one story.

  23. Re:No you can not by Braino420 · · Score: 4, Insightful

    Yes, you are correct, but you're missing the point. The Linux kernel is made to provide maximum throughput at the expense of responsiveness. Throughput is great for a server, responsiveness is great for a desktop. There is a trade-off.

    --
    They call me the wookie man, I guess that's what I am
  24. Re:No you can not by MarcoAtWork · · Score: 5, Insightful

    except by doing things that amount to hard-coded nice levels. All of the meaningful performance


    meaningful according to whom? and desktop users couldn't care less about 'hard coded nice levels' if it means their 3d games and/or X apps work better: yes, I know this is anathema to the linux developers where only super perfect code supposedly should go in, however if this supposedly super perfect code doesn't meet desktop users' needs as well as hacks, well, I'd all be for giving desktop users as many hacks as they want/need (as long as this could be changed via either a pluggable architecture or a difference in make config).

    As much as Linus has done a great job into making linux a great server side OS, if he's not willing to make compromises to make the desktop faster (because either it's too 'hacky' or it will cause issues for big iron, which is what pays the devs' bills) maybe it IS time to fork under the stewardship of somebody with the desktop users' needs more at heart. If companies like, say, NVIDIA or Adobe paid a kernel developer to make linux better on the desktop this is what would probably happen IMHO.

    I don't think a fork would be the end of the world, fork it and let the best survive: if a year from now we have a 'server linux' and a 'desktop linux' kernels, so be it, if instead the 'desktop linux' project flounders due to minimal speed improvements and so on, well, so be it as well. The vast majority of the patches/changes would apply to both the same way, so I don't see this causing issues and slowing development, if at all maybe people could spend less time flaming on LKML and more time writing code.
    --
    -- the cake is a lie
  25. How much improvement? by shmlco · · Score: 2, Insightful

    I hear what you're saying, but the real question is whether or not the gain balances out the pain. Assuming, and that's a big assumption, that there's some improvement to be had, the question is: how much?

    Let's assume that you fork the kernel, tweak it to meet "desktop users' needs", and find that your real world improvements offer no significant advantage? So what if you get an extra FPS in Quake? Would that really be worth all of that effort?

    Personally, I think all of the effort on eking out the last iota of performance is misplaced. Personally I'd rather have a system with more internal checks and layers to ensure stability and to protect the kernel from hacks and attacks.

    --
    Any sect, cult, or religion will legislate its creed into law if it acquires the political power to do so.
    1. Re:How much improvement? by MarcoAtWork · · Score: 3, Insightful

      whether or not the gain balances out the pain


      what's the pain really? business will continue as usual on LKML etc., there will just be a separate tree handled by somebody interested in this which will accept 'desktop patches' and will also integrate most, if not all, of the mainline patches.

      So what if you get an extra FPS in Quake


      and why shouldn't desktop users get that extra fps? desktop users couldn't care less that getting an extra fps in quake will lower some Oracle benchmark by 50%. Also what if, by really messing things up for databases or network loads and by hardcoding specific scheduler behaviour for the X binary, you could make xorg 50% more responsive? No way this would go in a mainstream kernel, but I bet a lot of users would run this quite happily if they could.

      Personally I'd rather have a system with more internal checks and layers to ensure stability and to protect the kernel from hacks and attacks.


      I am sure there are people that feel the same way you do, maybe you could consider a fork yourself? ;)
      --
      -- the cake is a lie
  26. Re:No you can not by 644bd346996 · · Score: 2, Insightful

    I'm quite familiar with all the CFS vs. SD issues.

    My point was that no forking or pluggable schedulers are necessary because all the important ideas, if not the actual code, from Con's SD (and more recently, Roman's RFS) have been incorporated into the mainline scheduler.

    Forking would only be justified if the work done by the likes of Con and Roman wouldn't be accepted into the mainline kernel. Even though there code hasn't been merged, the kernel has undeniably benefitted from their design work (which is far more important than the actual implementation). Using pluggable schedulers would only be justified if the single scheduler were forced to incorporate some fundamental tradeoffs that weren't acceptable to all users. That obviously hasn't happened: CFS and SD are both better than the previous O(1) scheduler all-around. Neither scheduler sacrifices desktop performance for server performance, or vice versa.

  27. Re:No you can not by 644bd346996 · · Score: 2, Insightful

    nice isn't all that's required for good gaming performance, but right now, it's the only way to exceed the performance from the default CFS and SD.

    As for your comments about clean code: Cleaner code will be easier to maintain and thus more secure. A unified server/desktop kernel will allow desktops to benefit from optimizations made with servers in mind. This happens all the time, as desktops are constantly catching up with the servers that went before them.

    Imagine where Linux desktop performance would be today if it weren't for the decade of SMP development that preceded the arrival of dual-core desktop processors. Now, in retrospect, would you say that it was worth it, given that none of the SMP code ever slowed down your UP kernels?

  28. Re:No you can not by recoiledsnake · · Score: 2, Insightful

    Using pluggable schedulers would only be justified if the single scheduler were forced to incorporate some fundamental tradeoffs that weren't acceptable to all users. That obviously hasn't happened: CFS and SD are both better than the previous O(1) scheduler all-around. Neither scheduler sacrifices desktop performance for server performance, or vice versa.

    I think the point of a pluggable scheduler would be so that *future* enhancements can be tested, benchmarked, tried out and deployed without either blessings from kernel devs or messy patches that need to be kept current between releases of the mainline. Is there no chance of a better scheduler than CFS coming along at all? The argument makes sense only if the pluggable scheduler causes excessive compuational or administrative overhead.

    --
    This space for rent.
  29. Re:No you can not by celle · · Score: 2, Insightful

    You left out two(the last two are more specific versions of the first two) that didn't exist in high end machines 10 years ago but exist in the current ones. gigabyte sized OS? check massive applications? check bloated internet forcing bloated interface software? check bloated guis on everything? check Computers today are not much faster in many applications than computers 10 years ago just due to the waste created by bloated (easy to use/gui?) software.

  30. Fork The Kernel, We dont need to Fork... by killmofasta · · Score: 2, Insightful

    The Steenkin Kernel.

    Case in point: BSD vs SYS V. What sepereated these distrubtions was a design philosophy.
    There was a call to fork the kernel, based upon the replacement of the scheduler, but that can be handled with differing defines. But until there is a compelling design philosoply, like GNU vs Linux, or even a liscencing issue such as Purity of Open Source, vs mixing some 3D binary drivers. Dont FORK WITH LINUX. Use the dessert spoon.

    This idea for server/client is a *Marketing* Idea. You can already install a subset of the full Redhat distrubtion for use as a server or a client workstation OR a developer workstation, and as I remember it, also a database server. ( MySQL et al ), but its too bad that I *hate* the RP package system so much, that I am using GenToo.

    My 3 cents