Slashdot Mirror


Linux Kernel to Fork?

Ninjy writes "Techworld has a story up about the possibility of the 2.7 kernel forking to accomodate large patch sets. Will this actually happen, and will the community back such a decision? "

25 of 578 comments (clear)

  1. From the article... by Anonymous Coward · · Score: 5, Insightful

    > Each version of the kernel requires applications to be
    > compiled specifically for it.

    FUD FUD FUD. No. no no no. NO!. Who writes this generic shit?. There's no truth behind the above statement and it just implies something that is not a problem.

    1. Re:From the article... by boaworm · · Score: 4, Insightful

      Perhaps he is refering to "Applications" such as the "Nvidia Driver Software" for Linux? That has to be rebuilt/recompiled if you switch kernels, even when switching between 2.6.9-r1 to -r2 etc (Gentoo!).

      Perhaps he is not talking about applications such as "Emacs" or "vim" ? (Or, he just finished his crackpipe :-)

      --
      Probable impossibilities are to be preferred to improbable possibilities.
      Aristotele
    2. Re:From the article... by DanTilkin · · Score: 5, Insightful

      FUD generally implies deliberate disinformation. All I see here is a clueless reporter. To anyone who knows enough about Linux to make major decisions, Linus Torvalds will fork off Version 2.7 to accommodate the changes should make it clear what's going on, then the rest of the article makes much more sense.

    3. Re:From the article... by DaHat · · Score: 4, Insightful

      I agree, even with a package manager, updating a single app under linux can be a nightmare. If you check out my blog in my sig, you'll see some rantings related to that.

      One of my biggest gripes, was how when you try to install the latest version of Foo, it requires the latest version of Bar, which in turn requires newer versions of X and Y and so on.

      If you are using a more recent distro, this is far less of a problem, but the moment you move back to something older that cannot be updated as far as required... you end up with problems.

      Specifically, I was trying to get some things working under Red Hat 6.2, a 5 year old distro. Many called me dumb for even trying such a thing, which I find quite entertaining considering how many still use 6.2 in server back ends, not unlike how many still use NT4, because it works.

      Speaking of NT4, I found it far easier to back port a Windows based app written for XP or 2k back to NT4, jumping back 5-9 years in terms of age, than it is to go from Fedora Core 2 to Red Hat 6.2, a jump of only 5.

      This is why I so love Windows, consistent targets (within reason), where the # of system updates is finite and can be controlled.

      As for this so called 'Dll hell' people like to bad mouth Windows for... I can't say I've ever had that issue myself... however I did find it worse than hell to try to figure out how to run 2 different versions of GLIBC on a system without recompiling every single application requiring one or the other... Windows has many simple solutions for a problem like that.

    4. Re:From the article... by trashme · · Score: 4, Insightful

      OK, I'll bite. Someone needs to teach you how this works.

      You aren't going through bullshit. How is 'apt-get install foo' or 'yum install foo' or 'emerge foo' going through bullshit? It's one command! Do you want something easier? Must the OS read your mind and install the package for you?

      These "200 other barely-related packages" are called dependencies. Pakcage managers don't just start downloading other packages willy-nilly. It installs those packages that your new package is dependant on. Some package managers can also download packages marked as suggested or recommended, but that is easily changed via a config option, menu choice, or dialog box.

    5. Re:From the article... by Kent+Recal · · Score: 3, Insightful

      Nice summary of DLL-Hell.
      But how exactly does that collide with grandparents point?

      You have stated yourself that any installer is free to use any of the quierks you've described (in short: rely on registry in hope it's not messed up yet again, overwrite DLLs that other programs may be using or waste diskspace and memory by dumping yet another copy of bozo.dll to be loaded at runtime).

      So it's only a matter of time until you run into a piece of software that picks the route that breaks your system.

    6. Re:From the article... by Etyenne · · Score: 4, Insightful
      You don't understand. I don't WANT to go through all this bullshit.

      Going thru this "bullshit" is actually easier than installing software in Windows. Assuming you use and apt-based distro, just type apt-get install foo. You don't need to even download the software, apt does it for you. The only interaction it require is a confirmation if your package have dependencies. A minute or two later (depending on the size of the software and the speed of your connection), the magic happen : the software is installed ! No chasing software on the Web, no downloading, almost no interaction (don't you find clicking Next, Next, Next stupid at last ?). It's the best thing since sliced bread, yet you fail to see it. Again, which distro do you use so I can give you clear instructions on how to use your package manager properly ?

      --
      :wq
    7. Re:From the article... by Allen+Zadr · · Score: 3, Insightful
      Even though I'm replying to an AC post, I'm going to assume that it isn't just trolling...

      A very few of the top Kernel developers are actually paid to do what they do. For the rest of the developers (the countless number of real folks with other things to do) who submit patches (many of which actually end up in the Kernel after a few bounces back-and forth with a lead).
      For the perspective of these folks, the kernel does exist for them to code.

      I think what you are forgetting, is that nobody can lock the Linux kernel up into an ivory tower. It is a community effort. When it's really, really important to someone with resources (IBM, HP), that someone will assign a few developers to get it done.

      I think the biggest thing your argument forgets is that - by the nature of Open Source development - implimentation of something someone else has already done (often the case in Linux) must be done in a vacuum to avoid IP infringement. So, when it was time to do USB support - decisions had to be made. For most devices, the USB stuff does work, the fact that it isn't done the same as Windows is important.

      --
      Kinetic stupidity has a new brand leader: Allen Zadr.
    8. Re:From the article... by AaronW · · Score: 4, Insightful

      I agree. It's about time that Linux provided a generic API for various drivers. Two types of drivers could exist, one type that sticks strictly with the API and the other that is not bound to it. For drivers that stick to the API they don't need to worry about being recompiled with each kernel version, only the API version. Different sets of APIs could be provided for different driver types. For example, network drivers have very different requirements than RAID drivers.

      Most other operating systems do this and it's about time Linux provided some standards for drivers.

      As much as we hate it, we do need to support binary only drivers.

      It pisses me off that I can no longer use my webcam because the driver maintainer can't keep up with every variation of the kernel, and for legal reasons can't release the source code.

      -Aaron

      --
      This post is encrypted twice with ROT-13. Documenting or attempting to crack this encryption is illegal.
    9. Re:From the article... by slux · · Score: 4, Insightful
      No.
      If we want to maintain the quality and stability that the Linux kernel has, we need to resist binary drivers. Many of the stability issues remaining with Windows today I believe are in fact driver issues.

      Giving in to the hardware companies' (pointless) fear of losing so-called "intellectual property" by opening up their drivers would pass part of the control of the kernel from Linus & co. to countless programmers who may or may not have special interest in improving Linux specifically. The quality assurance that currently takes place for the free software drivers that get into the kernel is valuable.

      Giving up on free/open source software at every turn where it is convenient would lead us to having an OS that is an assortment of non-free parts a bit like the current proprietary UNIXes. It might even lead to someone eventually getting into a position where they could charge for an essential part of the system thus rendering it non-free even in the beer sense.

      For a kernel developer's take on this, read this, it's from Greg Kroah-Hartmann's blog:

      But the issue of driver compatibility. For all of the people that seem to get upset about this, I really don't see anyone understand why Linux works this way. Here's why the Linux kernel does not have binary driver compatibility, and why it never will:

      • We want to fix the bugs that we find. If we find a bug in a kernel interface, we fix it, fix up all drivers that use that api call, and everyone is happy.
      • We learn over time how to write better interfaces. Take a look at the USB driver interface in Windows (as an example). They have rewritten the USB interface in Windows at least 3 times, and changed the driver interface a bit every time. But every time they still have to support that first interface, as there are drivers out there somewhere that use it. So they can never drop old driver apis, no matter how buggy or broken they are. So that code remains living inside that kernel forever. In Linux we have had at least 3 major changes in the USB driver interface (and it looks like we are due for another one...) Each time this happened, we fixed up all of the drivers in the kernel tree, and the api, and got rid of the old one. Now we don't have to support an old, broken api, and the kernel is smaller and cleaner. This saves time and memory for everyone in the long run.
      • compiler versions and kernel options. If you select something as simple as CONFIG_SMP, that means that core kernel structures will be different sizes, and locks will either be enabled, or compiled away into nothing. So, if you wanted to ship a binary driver, you would have to build your driver for that option enabled, and disabled. Now combine that with the zillion different kernel options that are around that change the way structures are sized and built, and you have a huge number of binary drivers that you need to ship. Combine that with the different versions of gcc which align things differently (and turn on some kernel options themselves, based on different features available in the compiler) and there's no way you can successfully ship a binary kernel driver that will work for all users. It's just an impossible dream of people who do not understand the technology.
      • Drivers outside the kernel tree and binary drivers take away from Linux, they give nothing back. This was one of the main statements from Andrew Morton's 2004 OLS keynote, and I agree. Out of the box, Linux supports more hardware devices than any other operating system. That is very important, and is something that we could not have done without the drivers being in our tree.
      • If a kernel api is not being used by anyone in the tree, we delete it. We have no way of knowing if there is some user of this api in a driver living outside on some sf.net site somewhere. I have been yelled at for removing apis like this, when there was no physical way I could have possibly known that someone was using th
    10. Re:From the article... by XO · · Score: 3, Insightful

      Yes.

      A better implementation would allow binary drivers, without any of these issues.

      While many of the issues out there may BE the binary drivers.. but, if Joe User goes out and buys a piece of hardware for his computer, plugs it in, and can just install a little driver program, to make it work, then Joe User is happy.

      When I, someone who has been using Unix since System III was common, and have been using computers for the last 25 years (i'm 28..), and have done kernel hacking, and worked on major products, even gained quite a bit of income from my own projects back in the day, has to set aside an entire day just because I want to operate my USB Webcam in Linux (which I Haven't done yet, because I am too busy to have an entire day to spend fucking with my computer), and I --know-- that it's not going to be as simple as "plug it in, install the driver, recompile". .. why the fuck should it require a recompile, anyway? If I'm using common hardware, and common software, there should be binary driver compatibility.

      To Greg's points:

      re: fixing bugs. Yes, you fix the api bugs, you fix the drivers you have control over, you bump the API version, and now drivers that can't work with that change refuse to load. I highly doubt that my Diamond Stealth 64 Windows '95 video driver will work if I try to load it into XP. It ain't gonna happen.

      re: building better apis. Yes, you fix the API, bump the version number, and now drivers that can't work with the new version refuse to load.

      re: CONFIG_SMP There must be an API to deal with "core kernel structures". What the fuck is a driver doing with "core kernel structures"?

      re: GCC alignment issues- GCC is obviously not the best compiler to do this with. GCC is quite obviously not the best at anything, except being compatible across a bazillion operating systems. That's ALL GCC is good for.

      re: drivers outside the kernel tree give nothing back; Maybe they have nothing useful to give, either? WHY is it important that we know how everything the hardware manufacturer does works, if they are competent enough to make it work? YES, I agree that open source drivers and being available with the kernel are the BETTER option, but that doesn't mean that some people aren't going to want a different option.

      re: deleting functions; See also API versioning. I think I've repeated that a few times now.

      Why do you hate Linux? Why do you not want it to succeed?

      Or do you enjoy spending an entire day or longer just making some USB gadget work?

      --
      "Champagne for my real friends - and real pain for my sham friends!" http://ericblade.postalboard.com/
    11. Re:From the article... by PastaLover · · Score: 3, Insightful

      Get your facts straight. linux is not supported by major hardware (and software) companies _because_ it only has 1 or 2% market share. And don't point to macintoshes either. It took big industry a looong while before supporting hardware on the mac. But at some point they started to realise that apple was capitalizing on hardware they could have been building. The same will probably be true one day for linux.

  2. About time.... by ThisNukes4u · · Score: 4, Insightful

    I say its about time to get a real development branch going. I'm sick of 2.6 being less that optimally stable, its time for 2.7 to take the untested patches.

    --
    thisnukes4u.net
  3. Yes, of course it will. by MartinG · · Score: 3, Insightful

    The kernel will fork to a new 2.7 branch. This is exactly what happens every iteration of kernel development. This looks like a case of poor journalistic understanding of the usual linux process and/or fear inducing sensationalist headlines.

    Even if this was a more hostile type of fork it wouldn't matter. Some amount of forking is healthy in open source.

    --
    -- MartinG To mail me: echo kewyjlcxyzvjfxbqwh | tr bcefhjklqvwxyz .@adgimnoprstu
  4. New linux development process by Anonymous Coward · · Score: 5, Insightful
    It strains credulity to call the 2.7 linux kernel a "fork" of linux. Every new development version of linux always starts out by forking the old stable kernel. This is how linux 1.3, 2.1, 2.3, and 2.5 all started. It is quite irresponsible for a journalist to proclaim all this doom and gloom over what is in fact a normal development fork in a proven development process.

    In fact, out of all the news articles out there about linux 2.7, it seems (not that this surprises me) that slashdot went out of its way to pick one laden with the most possible negative FUD and the least possible useful information about what really is news with 2.7. A much better writeup can be found at LWN. In summary, the present situation is:

    • The -mm tree of Andrew Morton is now the Linux development kernel, and the 2.6 tree of Linus is now the stable kernel. This represents a role reversal from what people were expecting last year when Andrew Morton was named 2.6 maintainer.
    • Andrew Morton is managing the -mm tree very well. Unlike all the previous development kernels, the -mm tree is audited well enough that it is possible to remove patches that prove to have no benefit (and this does often happen). Bitkeeper is to some degree contributing to this flexibility, although not every kernel developer uses it.
    • The development process is going so smoothly that there may not need to be a 2.7 at all; for the first time in linux development history the developers are able to make useful improvements to linux while keeping it somewhat stable. If there is a 2.7 at all, it will be used for major experimental forks and there is no guarantee that the result will be adopted for 2.8.
    There is a story here, but you could easily be forgiven for missing it if you follow the link. The story is that linux development has changed, it is better than ever, and if (not when) 2.7 shows up, it's not gonna be the 2.7 that you're used to seeing.
  5. Idiot. by lostlogic · · Score: 5, Insightful

    The writer of that article is an idiot. The linux kernel forks after every major release in order to accomodate large patches. How did we get to where we are today? Linux-2.4 forked into 2.4 and 2.5 to allow the major scheduler and other changes to be made on a non-production branch. Then 2.5 became 2.6 which was the new stable branch. Currently there are 4 maintained stable branches that I am aware of (2.0, 2.2, 2.4, and 2.6), having a new unstable branch is just the same path that Linux has been following for years. That writer needs to STFU and get a brain.

    --
    --Brandon
  6. i don't get it by Anonymous Coward · · Score: 3, Insightful

    I think that either the writers of this article, or myself are not getting something here.

    A couple of months ago there was a general upheavel over the fact that Torvalds et al. had decided not to fork a developement tree of of 2.6.8, but rather do feature developement in the main kernel tree. The message of the article (brushing aside the compiling-applications-for-each-kernel-FUD) seems to be that they have made up their mind and fork an unstable kernel branch of anyway.

    What am I missing?

  7. Re:Uh-oh by MartinG · · Score: 4, Insightful

    Firstly, the article is talking about linux itself, not linux distributions which are another issue and may or may not have "massive problems" of their own.

    Secondly, linux (the kernel) already "forks" every time a new development version is opened. ie, 2.1, 2,3, 2.5 etc. All this is saying is that 2.7 is about to open.

    "Fork" is not a dirty word.

    --
    -- MartinG To mail me: echo kewyjlcxyzvjfxbqwh | tr bcefhjklqvwxyz .@adgimnoprstu
  8. Re:I'd Like to Run Linux -- Just No Time by asciiRider · · Score: 5, Insightful

    Why is it that every Windows XP user thinks the goal of the Linux community is to convince windows user to make the switch?

    Dude - just stick with Winblows. You have no time to "know linux", as you put it, so just stick with what you know. You can post on Slashdot either way.

    Please, developers, don't dumb Linux apps/distros down so much that it looks and feels like Windows.

  9. It is Linus's fault. by IGnatius+T+Foobar · · Score: 4, Insightful

    Hold on, take this into consideration before you hit that "flamebait" button. I'm responsible for a large number of Linux systems at a hosting center, and this is our single biggest complaint:

    There needs to be a consistent driver API across each major version of the kernel.

    A driver compiled for 2.6.1 should work, in its binary form, on 2.6.2, 2.6.3, and 2.6.99. If Linus wants to change the API, he should wait until 2.7/2.8 to do so.

    The current situation is completely ridiculous. Anything which requires talking to the kernel (mainly drivers, but there are other things) needs either driver source code (watch your Windows people laugh at you when you tell them that) or half a dozen different modules compiled for the most popular Linux distributions. These days, that usually means you're going to get a RHEL version, and possibly nothing else. What happens when you're competent enough to maintain Fedora or Debian, but you don't have driver binaries? (Yeah I know, White Box or Scientific, but that's not the point.)

    In fact, I recently had to ditch Linux for a project which required four different third-party add-ons, because I couldn't find a Linux distribution common to those supported by all four. We had to buy a Sun machine and use Solaris, because Sun has the common sense to keep a consistent driver API across each major version.

    Yes, I've heard all the noise. Linus and others say that a stable driver API encourages IHV's to release binary-only drivers. So what? They're going to release binary-only drivers anyway. Others will simply avoid supporting Linux at all. LSB is going to make distributing userland software for Linux a lot easier, but until Linus grows up and stabilizes the driver API, anything which requires talking to the kernel is still stuck in the bad old days of 1980's-1990's. Come on people, it's 2004 and it's not too much to expect to be able to buy a piece of hardware that says "Drivers supplied for Linux 2.6" and expect to be able to use those drivers.

    --
    Tired of FB/Google censorship? Visit UNCENSORED!
    1. Re:It is Linus's fault. by geg81 · · Score: 3, Insightful

      A driver compiled for 2.6.1 should work, in its binary form, on 2.6.2, 2.6.3, and 2.6.99. If Linus wants to change the API, he should wait until 2.7/2.8 to do so.

      That's deliberate...

      In fact, I recently had to ditch Linux for a project which required four different third-party add-ons, because I couldn't find a Linux distribution common to those supported by all four. We had to buy a Sun machine and use Solaris, because Sun has the common sense to keep a consistent driver API across each major version.

      ... and that's the reason why. If it were easy to use binary drivers, more and more drivers would become binary. For making Linux distributions easier to manage, it would be nice if binary drivers were easier to manage and distribute for Linux. But the fact that that would make distribution of binary-only drivers easier is considered a disadvantage by many.

      Overall, please either by from open source friendly hardware vendors, or pay the price for a proprietary operating system. You have chosen the second option, so deal with it.

  10. Re:Uh-oh by Angstroem · · Score: 3, Insightful
    I think at some point everyone needs to get together and say OK. Everything from this point on will be compatible with everything from this point on. No more of this crap.
    Actually, we had this like 20 years ago. Whenever you upgraded your machines (at least in home and semi-pro market) there was a sharp cut. Hardware changed, the OS was not even remotely the same, you had to get new software. Sometimes you even got converters to re-use old data.

    Someone decided that this is "bad" (and which finally opened the market for DOS/Windows), which I still don't fully get. If the software/system is still usable to me, I keep on using it (I'm still running my trusty old Atari in the studio for average MIDI sequencing). If I need to get a more powerful machine and/or the software will only be supported on this new machine -- what is this any different to todays Windows/Office situation?

    With each new Windows the user interface changes (think of 3.11->95; XP anyone?), new data formats which are not backward compatible are introduced (.doc), and all they ensure is that you can load your old documents and please, please use the new formats as quickly as possible to make a lot of people buy the latest release...

    If your Linux application breaks because it requires some stoneage whatever library, then just install it. For instance, people are used to carry a shitload of same-but-of-different-version DLLs on Windows systems and don't seem to object it.

    With wide acceptance of RPMs we also accepted the breaks-if-lib-version-of-the-day-is-not-present kind of behavior... (The next logial step would be including required libraries in the RPMs just as every Windows program will come with all required DLLs.)

  11. Wow, this article is pure uneducated guesswork... by discord5 · · Score: 5, Insightful

    Well, this was fun to read. This article is about as educated about the subject as the average donkey.

    In a worrying parallel to the issue that stopped Unix becoming a mass-market product in the 1980s - leaving the field clear for Microsoft

    Uhm, what gave MS the edge in the 80s was cheap i386 (well, actually 8088) hardware, and a relatively cheap OS (MS-DOS). Unix servers cost an arm and a leg in those days, and many companies/people wanted a pc as cheap as possible. Buying an i386 in those days meant running DOS, and the "marketplace" standardized around MS-DOS.

    Each version of the kernel requires applications to be compiled specifically for it.

    Utter bull. Upgrade kernels as much as you like, it won't break software unless you change major/minor numbers perhaps. The same thing will happen to windows if you start running stuff for win2k on win'95. But this is rather a matter of features in the kernel, not compilation against the kernel.

    So at some point, Linux founder Linus Torvalds will fork off version 2.7 to accommodate the changes, Morton said at the SDForum open source conference.

    And the big news is? This happens every couple of years, with stable versions having even minor version numbers and unstable versions having odd minor version numbers. This helps admins and users to effectively KNOW which versions are good for everyday use, and which versions are experimental and for developers.

    He cited clustering as a feature sought for Linux.

    Well, imagine a Beowulf cluster... How long have those patches existed? There's several ways to build a cluster as long as you patch your kernel.

    OSDL does not anticipate, for example, having to ever rewrite the kernel, which would take 15 years, Morton said.

    And why on earth would they want to do that? Linux is on the right track, so why bother with an entire rewrite of good functional code with good design.

    Open source has focused on software such as the operating system, kernels, runtime libraries, and word processors.

    It's also focussed on multimedia (xmms, mplayer, xine), webservers (apache), mailservers (sendmail, qmail, postfix)... I'd rather have people say that open source has focussed on internet servers than stuff it needs to make an OS run and wordprocessors. This like saying that an oven is primarily being used for making toast, while actually it also bakes cake, pizza and whatever you toss inside.

    I'm sorry, this kind of article belongs in the trashbin. Either the journalist doesn't know what he's writing about, or he's being paid to know nothing about the subject. One of the things that keeps suprising me in business IT journalism is the lack of knowledge these people have about the subjects they're writing about.

  12. Re:Ours is not to wonder why. by Tim+C · · Score: 3, Insightful

    Well, if that's FUD, then so are upwards of 70% of anti-Windows comments here.

  13. Serious question: by deadlinegrunt · · Score: 4, Insightful

    I am not trolling nor do I disagree with the majority of your post. I am however a bit curious about this statement:

    "It pisses me off that I can no longer use my webcam because the driver maintainer can't keep up with every variation of the kernel..."

    Since this is a webcam I am making an assumption that this is more of a personal/desktop/workstation type role. With that in mind, is there any compelling reason that you must upgrade to the latest greatest kernel as opposed to sticking with a previous kernel that has worked along with your "webcam" driver that worked as well?

    I am under the assumption that there are a lot of users that upgrade/acquire the latest greatest software and that in and of itself is not a bad thing but not always the smart thing. I'm referring to a "if it ain't broke, don't fix it" line of thinking.

    Can you or someone else inform me what the other part of this issue is I seem to completely miss?

    --
    BSD is designed. Linux is grown. C++ libs