Slashdot Mirror


2.6 and 2.7 Release Management

An anonymous reader writes: "A recent discussion on the Linux kernel mailing list debated whether the upcoming 2.6 and 2.7 kernels should be released at the same time instead of first stabilizing the 2.6 'stable tree' then branching the 2.7 'development tree.' The theory behind the proposition is to keep "new" things from going into 2.6 once it is released, focusing instead only on making it stable. On the flip side of this argument is the possibility that with a 2.7 kernel in development, there will be too little focus on stabilizing the 2.6 kernel. The resulting debate makes for an interesting read."

50 of 173 comments (clear)

  1. this is silly by edrugtrader · · Score: 3, Insightful

    there will always be a kernel in development and one being stabalized.... its a wash either way.

    i would recommend the stabalization of 2.6 before the branch of 2.7 (the initial arguement) and i think the flip side is incorrect... just because 2.7 is 'in the works' doesn't mean that the 2.6 hackers are going to take a nap on their work

    --
    MARIJUANA, SHROOMS, X: ONLINE?! - E
  2. A Good Thing... by phraktyl · · Score: 4, Interesting

    I would release them at the same time. Just as now, with 2.4 and 2.5, there are people who are very good at stabilizing current code, and people very good at developing new code. Some folks can't stand working on new things when the old need work, and vice versa.

    I see this as having two benifits. First, it will help with the ``Most things work pretty well---let's go ahead and release it.'' attitude. The 2.4 series has only recently gotten stable enough to reliably use in a production environment, and not everyone agrees on that even.

    Second, it will allow people to focus on what they are good at. The 2.6 series will mature much faster without adding new features in every release. Sure, there are bound to be a few gotchas, but if the focus is on stabilizing the code, they will be out by the 2.6.3 or 2.6.4 release. At the same time, people will be adding to 2.7, which should mean that there is much less time between stable kernel series releases.

    I'm all for it!

    --Wyatt

    --
    Karma: Marginal (mostly due to the border around the website)
    1. Re:A Good Thing... by reaper20 · · Score: 2

      bah ... no it doesn't ... sure somethings could be done better - but when it comes to kernel development as a whole, its already broken about every rule to 'proper software' development ... and it's doing ok so far.

      The difference between kernel distributions is not really a big deal. Maybe in a close source system it would be ... but as long as everything stays open, its no big deal. I can grab the source to the latest redhat kernel and compile it on a debian system. That's what makes linux so great in the first place.

    2. Re:A Good Thing... by HiThere · · Score: 2

      No, the two versions sholdn't be released at the same time. Close, perhaps, but not the same.

      It would probably be ok if there were, say, 2.6 were released no more than a week before 2.7, but I'm a bit dubious. OTOH, I don't know just how stable 2.5.99999 is.

      It seems to me that the plan used last time worked out well. Not perfect, but well enough that I wouldn't want to tinker with it. Release the new version as current, and then wait a bit for more problems to show up. "We won't find any more problems unless we get some new testers in, so release it now." (LT being paraphrased.)

      That was the right time to release it. Then the next round of debugging happened. Then the 2.5 branch was forked off.

      Perhaps, as an intermediate step, submissions for the 2.7 branch could be accepted, and placed in a queue for evaluation after 2.6 was released.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  3. Stabilizing the stable branch? by Hrunting · · Score: 4, Insightful

    See, to me when someone calls it a "stable release", that means it's already been stabilized. Sure, you're going to have the occasional bug fix here and there, but actual "stabilization" should've been done in the 2.5.99 range, ie. the previous development branch. Once the stable tree is released, there shouldn't be a need to stabilize it and branching the new development tree right then makes sense. There should not be an "development" per se in the stable release after that, only the occasional maintenance.

    If the kernel maintainers would just grasp this one simple point, maybe this issue wouldn't be one, and maybe people wouldn't laugh at the .0 release of the kernel.

    1. Re:Stabilizing the stable branch? by Verizon+Guy · · Score: 3, Funny

      What are you talking about, "not stable"...?

      Linux doesn't crash. It can't; it's simply not possible... Slashdot told me so. They said that Linux crashing would defy the laws of physics, or something.

      --

      Aw, fuck it. Let's go bowling. - The Big Lebowski

    2. Re:Stabilizing the stable branch? by Error27 · · Score: 2

      A bazillion more people test the kernel after it hits the .0 mark and so of course mistakes are going to show up.

      If you need stable kernels you should get them from Linux vendors like Red Hat and Suse etc. That's the way it has been for a long time.

    3. Re:Stabilizing the stable branch? by cpeterso · · Score: 2


      When tons of people starting using 2.6.0, they will find new bugs. These bugs would also be in 2.7.0. Both kernel branches would need to be fixed BY HAND, increasing dev and testing time. I think it makes more sense for 2.7.0 to start with a "stable" stable 2.6.x.

    4. Re:Stabilizing the stable branch? by LinuxCumShot · · Score: 2

      Its like mac os x, it's crash proof!

      --
      -- OMFG = Oh My Floatse Goatse
    5. Re:Stabilizing the stable branch? by WNight · · Score: 3, Insightful

      Stable refers to the interfaces, more than the product stability.

      It's good when a "stable" kernel doesn't crash, but that's not actually what the word means. Look at Mozilla, it was stable, in that I often had 20 windows open for weeks at a time in Win2k (yeah, Win2k having an uptime of weeks, but really, it happened...) and Mozilla wouldn't crash once. But they didn't call it 1.0 until they stabilized the interfaces so you could use pluggins and addons without having to upgrade them for every minor update.

      It just happens that when you're adding functionality you often break backwards compatibility (hence, unstable interfaces) and make things crash (unstable in the other sense.)

      It's like 'Free', it's got multiple meanings. Linux 2.(even) releases are stable in the sense of unchanging. Releases that don't crash are stable in the meaning we normally use.

    6. Re:Stabilizing the stable branch? by LoonXTall · · Score: 2

      "Linux doesn't crash. It can't; it's simply not possible... Slashdot told me so. They said that Linux crashing would defy the laws of physics, or something."

      Obviously they've never tried to change VTs when X was busy starting. (2.4.17, stock Linus kernel)

      --

      ~~~LXT~~~
      Life is like a computer program: anything that can't happen, will.

    7. Re:Stabilizing the stable branch? by Chops · · Score: 2
      If the kernel maintainers would just grasp this one simple point, maybe this issue wouldn't be one, and maybe people wouldn't laugh at the .0 release of the kernel.
      The problem is that "stable" can't be added as a feature; it has to be bought with testing (ergo bugfixing), and you run into a chicken-and-egg problem trying to get people to test stuff that isn't "stable" yet. Each new level of supposed trustworthiness (2.3.x -> 2.4.0pre -> 2.4.x -> distro releases) brings orders of magnitude more users, and inevitably uncovers oodles of bugs.
      "Stable" refers to the halfway-frozen API in even-numbered releases; it doesn't mean 2.4.x is not expected to crash. Stability is empirical.
    8. Re:Stabilizing the stable branch? by Error27 · · Score: 3, Insightful

      The difference really is not in the patches that they add but the testing that they do. Some of the stock kernels are very bad. They might not compile for example.

      You're probably right that there is not always a lot of difference between stock kernels and vendor kernels. But I always tell people to only use vendor kernels, because if they break then the people can blame Red Hat or Suse but don't hassle the developers.

      The post I was replying to was belly aching about .0 releases and thus falls under the "hassling developers" catagory. I'd be willing to bet that Red Hat and Suse didn't ship with the .0 version because they knew it wasn't trusted.

      Mandrake may have shipped with it... They like to live on the edge.

      But yes. You're right. There is nothing wrong with using stock kernels in production. I believe that Debian only uses stock kernels.

  4. The backport concept by jhines · · Score: 2, Interesting

    From the bsd world, there is the concept of "backport" which is where a feature in the development kernal is ported back to a previous stable kernal series.

    Great for bug fixes, and other things in the middle ground.

    Certainly if there is interest, a set of patches to a stable kernel, or even another -someone kernel series can be developed. If these turn out to be in demand, and stable enoug, they can be officially included.

    1. Re:The backport concept by AxelTorvalds · · Score: 2, Interesting
      Backporting has been a stability problem and a source of great debate in the community.

      First. The kernel is pretty damn stable. The instability people talk about are usually extreme cases or performance that is less than optimal. I have yet to see a 2.4.8 or later kernel lock up or panic on my typical hardware and I've got 3 machines running 24x7. I don't count the first 7 cuts becuase I was doing development on them and going to great pains to track them and they collectively should have been maybe to of the last 2.3.99 releases.

      Linux is large. There are hundreds of regular contributors as well as a number of companies doing stuff. 2.3 lasted way to long and so everybody wanted to get their stuff in to 2.4 because 2.6 could be 2 years away after 2.4 came out. That was a mistake. The kernel underwent a lot of change during 2.3.99 and people were still adding tons of stuff. There were bitter fights about what should go in and when. You hate to be SGI, spend hundreds of thousands of dollars (I'm guessing that's the man hour cost) porting SGI and not make the cut and then wait 2 more years.

      At the same time the releases need to be tempered. People say 2.0.40 is a bad sign because it needed 40 patches. We could be on kernel 4.2 now if we made the releases closer and that just creates more confusion in a lot of ways also. 2.4 took way too long and too much happened. 2.6 will be much better and the community needs to see that and get used to 6 to 9 to 18 months for a major release. Companies need to understand that and make their investments accordingly. It's difficult though because there are so many independant people developing stuff they are planning to get in and it all can't go to Linus when he says he's getting ready to lock it down.

      I think if anything, maybe 2.7 should branch off before 2.6 is cut. Linux and the team and go through the big items and determine where and when and then make some timelines accordingly. You give people working on the bigger things a place to put their stuff. Then the final 2.5 releases shouldn't be as rushed.

    2. Re:The backport concept by jhines · · Score: 2

      In the case of BSD, many of the changes are for other than kernel items, which doesn't apply to Linux.

      For the kernel itself, it would have to be fairly minor changes, or possibly stub or future compatiblity reasons.

      I certainly agree that the average administrator needs to be able to rely on as stable.

      Again, the most common need would be a bug that affected both stable and development versions.

  5. Don't forget the past by brunes69 · · Score: 3, Interesting

    A large reason for the awful VM mess that 2.4 was in around 2.4.8 - 2.4.11 or so was largely due to the fact that a totally new VM was just kind of "thrown in" to the "stable" branch, probably mainly cause there wasn't a 2.5 branch yet at that point (as I recall). This is the sort of thing that branching earlier would hopefully prevent. While the stable branch may not have some of the "bells and whistles" it could have gained from keeping the branches together, at least hopefully a mess like that can be avoided.

    Then again, that's just my opinion :)

    1. Re:Don't forget the past by gmack · · Score: 2

      Actually that was more of a problem with the old VM not being stable enough and Linus taking a risk on a new one.

    2. Re:Don't forget the past by Anonymous Coward · · Score: 4, Informative

      This is true. The VM that came with 2.4 was so broken that we were seeing systems go down with massive data loss almost within hours of extensive use.

      The old VM has 4 different major bugs:

      1. Concurrent processes could not place deadlocks on sibling process in SMP mode.

      2. Utilization of VM code on tread process in UP and SMP systems were so bad (under load - ( specially when the 4gig mem system was used )), that more preformance would have been got by running the 2.0 series rather than 2.4's VM.

      3. No checks were placed in thread corruption and bucket fill code, which caused other nice things under load.

      4. The enter beast was so unyeilding, it was known that the only one person who ever understood it, had to keep a journal just to keep track of the beast (Seriously). This was one of the major reasons that ticked off Linus and I believe the reason why he pushed the new VM.

      But the 2.4 series was a major testbest. The moment we released it without having a 2.5 out, ppl started testing 2.4 in much more demand than they did the previous development series. This gave feedback in a week that we could not have got in six months for the development kernel.

      The new VM has been stabilized and it's working wonderfully, if you use any kernel above 2.4.16, you should be fine.

      jr

  6. What are the proposed new features in 2.5 and 2.6 by Anonymous Coward · · Score: 3, Interesting

    The linux kernel,. besides stability .. what sort of things do they want top add/improve?

    better networking? better I/O performance?

    what about multiple CPU support?

    The most important thing for me would be resource management features .. such as being able to allocate how much CPU, memory, or disk space a particular user or process can use. These are things that solaris has had for a long time .. and it seems that linux kernel developers arent interested in adding those features .. how can linux hope to take over the enterprise server market without it?

    Does anyone have any info on what's happening in the area of adding resource management features to the linux kernel?

    Actually any info on what cool features they are working on for future releases would be appreciated

  7. Simultaneous Release... by Nighttime · · Score: 3, Interesting

    ...would be a good idea IMHO if this kept Linus away from working on the stable branch.

    Look at what happened with 2.4, we had the change to VM, 2.4.11 which needed immediate patching and is tagged as dontuse, 2.4.13 similar problems, 2.4.15-greased-turkey released by Linus for Thanksgiving and a nice syncing problem.

    When it comes to deciding what is and is not allowed into the kernels the buck stops with Linus. This is why I think Linus should stick with the development kernels where a major change can have all its kinks worked out in relative safety. The stable branches should be maintained by someone who only has authority to accept and apply bug fixes.

    --
    I've got a fever and the only prescription is more COBOL.
  8. Slashdot by Catskul · · Score: 3, Interesting

    Most of our opinions on this really dont matter. I have run unstable kernels for a long time and never had any trouble with them. The only time it is really an issue is with production servers, which most of us dont run. I think those of us who dont run production servers should refrain from submitting our opinion and leave the line clear for those who it really affects.

    --

    Im not here now... Im out KILLING pepperoni
    1. Re:Slashdot by dvdeug · · Score: 2

      The only time it is really an issue is with production servers, which most of us dont run.

      I want and need for my kernel to magically just run. Yes, I'm a Debian maintainer running unstable on my own machines, but kernels are neither my forte nor my interest.

    2. Re:Slashdot by GigsVT · · Score: 2

      I think they are heard, and considered, where it matters. Slashdot was the first place I saw a big clamor for the "instant branching" that is proposed here.

      Even if Cox or Linus isn't reading regularly, it helps ideas get mindshare with lots of smaller players, who can spin the debate threads on LKML toward one side or the other.
      That doesn't mean Linus et al will agree, but his judgement in the past has usually been pretty good, which is a good thing, democracy is not a particularly good method of software engineering.

      --
      I've had enough abrasive sigs. Kittens are cute and fuzzy.
    3. Re:Slashdot by HiThere · · Score: 2

      You are right in a way. The arguments about kernels don't affect most of us, though we think it does (me, too, even though I know better).

      The thing is, most of us run the kernel that our distribution provides us. Most of us wouldn't really gain much be doing otherwise (though USB 2 sounds quite interesting). And we choose our distribution based partially on how stable we want our system to be. There seems to be a kind of order that runs roughly...
      Debain-stable, Red Hat, SuSE, Mandrake, Debian-unstable, other

      This is grossly oversimplified, as stability isn't the only variable here, but the people for whom stability is more important cluster toward the left, and those with other priorities cluster toward the right.

      And what we are talking about is stability of the distro, not of the kernel. The kernel is a small part. (For the more experimental people, the kernel may not even be the one supplied by the distro.)

      What most people are really doing is dreaming of the fabulous "next release" when all of the unnamed marvels will be given to them. It never happens, though incremental improvements happen all the time, and there's always lots of new eye-candy.

      I know this is happening, and even so it still happens to me. Watching it happen makes me feel silly, but it's fun! So I just don't take it too seriously. I'm just glad that I lust after new software more than after Ice Cream! (I already have enough troubles with that).

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  9. Just my thoughts by young+jedi · · Score: 4, Insightful

    If 2.7 begins before 2.6 is stable aren't we in danger of seeing a win9x syndrome in that bugs will live for ever and instead of being fixed they will be coded around. I fear very much the long term affects on the kernel and in turn Linux if the trees are split prior to a stabilization period. I am a developer, not on this level, but I have seen the affects of splitting a code base simply to continue developing and at the same time trying to patch existing "production code" and then port things back and forth. It is a very bad idea!! Usually what happens is things don't get back ported they are only provided doing a major upgrade, again the microsoft way of bug fixing.

    Granted, you will always have some cross patching, however I think the idea of building off of a clean base is very important. For example, you would not put new tires on your car if the engine is not running, right?

    Essentially, I think the issue here is one of knowing the base is clean versus drudging on in the dark despite the fact that you have been offered a lantern.

    To put this most bluntly I would call this Microsoft syndrome. As I said before win9x is the perfect example of a system that was never stabilized rather it was constantly released to the unsuspecting public as upgrades which where really bug fixes and the monkeys went back to the keyboards never addressing issues raised by numerous consumer requests on the so called production release because the devel team would rather work on that new feature because it is more interesting than maintaining the existing code base.

    I am being harsh here I know, but I am trying to view this in the long term. I feel that this would weaken the kernel and as I said weaken Linux which would in the end at least decrease corporate trust in the stability of Linux or at worst give M$ what it wants, Linux's death,

    Maybe I am extreme, feel free to beat me but I know you have to have a clean starting point before you can move forward otherwise you will constantly be taking steps backwards which eventually leads to stagnation and death.

    Just my thoughts

    1. Re:Just my thoughts by HiThere · · Score: 2

      I believe that there's some confusion here.

      I have heard that:
      A stable version release is one that has specified interfaces that don't change during the minor version releases.

      This isn't the same as a bug free release, though it does imply that a certain kind of bug has been fixed.

      Bug free releases don't happen. They aren't going to happen. And nobody expects them to happen. During the development process of changing the interfaces, attempts are made to avoid introducing new bugs, and to fix the ones that are introduced. These aren't totally successful. Don't expect it.

      Actually, until the interfaces have been frozen you can't really fix all the bugs. It really isn't possible even for perfect programmers. So only the really daring would even think of using 2.6.0 for anything that couldn't be reconstructed instantly. When inherrent problems are found with an interface in a major version, the only solution is to work around it until the next major version is ready. And you can't really know ahead of time. All you can do is try to get a wide variety of people to test it. And you can never get a wide enough variety of testers to give good reports. Guaranteed.

      --

      I think we've pushed this "anyone can grow up to be president" thing too far.
  10. In honour of Euler by Anonymous Coward · · Score: 2, Funny

    Release version 2.71828 and call it quits.

  11. Re:Problems with linux development by Felt+Tip+Pen · · Score: 2, Insightful

    Marcelo got into kernel hacking when he was like 16. So what if our current Gods decide to leave? They would be missed, for sure, but there'd surely be someone new, hungry, and just as skilled ready to take their place.

    That's why Linux can be counted on. NT4? MS just up and decides to drop support. Interactive Unix? Sun just up and decides to drop support. Thank god IBM has kept up with OS/2..for now..

  12. To release or not to release by renehollan · · Score: 3, Interesting
    Look, no matter when you release 2.6, you will want to change it. So, if you never want to change it, you will never release it.

    So, the best time to let 2.6 "escape" is when you're fairly confident it's "ready" and won't need patching.

    Of course, you'll be wrong -- it will need patching, or backports of useful features that just didn't make it in time.

    But, the idea is that these patches or backports should be trivial "oopses" where the change does not require massive code review, or the backport is clearly something that was "99% done" already.

    So, my suggestion is release 2.7, and hold off on release 2.6 until the obvious release-related "oops"es are found, say 1-2 weeks, then try your best to release a 2.6 that won't need patching. It will anyway, but don't lose sleep over it.

    --
    You could've hired me.
    1. Re:To release or not to release by drudd · · Score: 2

      This is nice in theory, but the problem is that most of the release-related oops's aren't found until 2.6 is released and 20x the number of people start using the newly labled "stable" kernel.

      That's why Linus tried to release 2.4 when it wasn't quite ready... it wasn't improving fast enough to ever be ready...

      Doug

      --
      Venn ist das nurnstuck git und Slotermeyer? Ya! Beigerhund das oder die Flipperwaldt gersput!
    2. Re:To release or not to release by renehollan · · Score: 2
      Your point is noted, but you can't have it both ways:

      Either issue a release candidate, with the intent of catching release-related oopses;

      or branch the next version, release it, and backport release-related oopses;

      or try your best, release, and patch release-related oopses to the stable branch either at the same time as the unstable branch, or delay forking the unstable branch for a while.

      As you note, the first two approaches don't give enough feedback. The third results in less than perfect releases. Without a release test plan in place, I don't really know how this problem can be avoided, short of getting people to test "release candidate" releases. In the old days, that's what gamma tests were for -- beta tests from an end-user perspective.

      --
      You could've hired me.
  13. Even numbered releases HAVE to be stable! by mojumbo · · Score: 3, Interesting

    Anyone who runs production systems expects (demands?) even-numbered releases to be stable.

    There's no serious linux admin out there that wants to have to test a new supposedly "stable" kernel for a week before employing it on a bunch of mission critical boxes. Say I want/need a feature in the new release of the "stable" kernel, should i expect anything less that a kernel that is rock solid? There's people still running 2.2 series kernels because of the whole 2.4 feature creep fiasco.

    All the stability issues should be worked out before a kernel is considered "stable." Seems to make sense to me...

    1. Re:Even numbered releases HAVE to be stable! by afidel · · Score: 2

      Actually I demand that my vendor does sufficient and apropriate testing before releasing a kernel. I don't care what branch it comes out of so long as they will support it. Beyond my distro vendor I also need support from my major apps vendors. Rational for instance will not support a redhat kernel for 90 days after errata is posted, so it usually means we are at least one minor revision behind the bleeding edge, but it doesn't matter because redhat backports all important (read security and critical bug) fixes and supplies them to us via internal up2date processes.

      --
      There are 4 boxes to use in the defense of liberty: soap, ballot, jury, ammo. Use in that order. Starting now.
  14. Early unstable kernels are too broken anyway by iabervon · · Score: 3, Interesting

    Unstable series often start off with versions which break everything, because whatever fundamental change is first up for the series has gone in and the drivers and so on haven't been updated. It was a long time in 2.5 before it was really sensible for people to work on it (aside from the bio work), and people were actually doing their development on 2.4 even after 2.5 had started. In part, this wasn't even an issue of stability: Linus just wasn't taking patches on other subsystems. If 2.7 starts when 2.6 comes out, and major changes go into 2.7.1, people will stay on 2.6 until the first major set of changes in 2.7 has stabilized. Provided that the first thing under development in 2.7 isn't broken in 2.6 (in which case, the people who could fix it would be working on 2.7), everyone important to fixing obscure bugs in 2.6 will still be working on 2.6, but sitting on their patches, because they can't go into 2.6 (not fixes). As the interfaces for 2.7 (where they differ from 2.6) become known, people will start using them, but, until that point, 2.6 and 2.7 are basically the same, except that you can get 2.6 running to develop on.

  15. Common Open Source Software Problem by tlambert · · Score: 5, Insightful

    [ ...Putting on my "politically incorrect" hat... ]

    It's a common Open Source Software problem: there is the last release, and there is the developement branch.

    Developers would all prefer that you use the developement branch, report bugs against *that*, provide patches for the bugs against *that*, do all new work in the context of *that*.

    But it's not how things work, outside of an Ivory Tower.

    In the real world, people who are using the system are using it as a platform to do real work *unrelated to developement of the system itself*.

    I know! Unbelieveable! Heretics! Sacreligios!

    FreeBSD has this disease, and has it bad. It very seldom accepts patches against it's last release, even in the developement branch of the last release, if those patches attempt to solve problems that make the submitted work look suspiciously like "developement". The cut-off appears to be "it fixes it in -stable, but would be hard to port to -current; do it in -current, as your price of admission, and back-port it instead, even if you end up with identical code".

    The only real answer is to keep the releases fairly close together -- and *end-of-life* the previous release *as soon as posible*.

    The FreeBSD 4.x series has lived on well past FreeBSD 4.4 -- supposedly the last release on the 4.x line before 5.0. FreeBSD 4.6 is out, and 4.7 is in the planning stages.

    It's now nearly impossible for a commercially paid developer to contribute usefully to FreeBSD, since nearly all commercially paid developers are running something based on -stable. FreeBS -current -- the 5.x developement work -- is *nearly two years* off the branch point from the 4.x -stable from which it is derived.

    Linux *MUST* strive to keep the differences between "this release" and "the next release" *as small as possible*. They *MUST* not "back-port" new features from their -current branch to their -stable branch, simply because their -current branch is -*UN*stable.

    Delaying the 2.6 release until the 2.7 release so that you can "stabilize" and "jam as many 2.7 features into 2.6 as possible" is a mistake.

    Make the cut-off on 2.6. And then leave it alone. People who are driven by features will have to either run the developement version of 2.7, or they will simply have to wait.

    Bowing to the people who want to "have their cake and eat it, too" is the biggest mistake any Open Source Software project can make.

    Don't drag out 2.7, afterward, either... and that's inevitable, if everything that makes 2.7 desirable is pushed back into 2.6. Learn from the mistakes of others.

    -- Terry

    1. Re:Common Open Source Software Problem by tlambert · · Score: 3, Insightful

      [ Dammit, I hate people who use cookies instead of hidden fields for forms ]

      "I think you're being terribly naive about this, particularly the It's now nearly impossible for a commercially paid developer to contribute usefully to FreeBSD comment. Development work on FreeBSD succeeds on both fronts."

      I have built or contributed to 5 embedded systems products based on FreeBSD. If you count licensing the source code to third parties, that number goes up to 12. This list includes IBM, Ricoh, Deutch Telekom, Ricoh, Seagate, ClickArray, and NTT, among other lessers.

      There has been no case where any of these projects have involved use of FreeBSD-current. It just does not happen: the intent of the commercial is to work on the product itself, not on the platform on which the product is intended to run. Toward that end, every one of these projects has used a stabilized snapshot of FreeBSD, usually a release, and, on only two occasions, a -security (release plus security bug fixes) or -stable (release plus any bug fixes) branch. Under no circumstances has the employer *paid* me to work on -current on their time.

      There are notable exceptions to this practice, where there have been specific DARPA grants, or Yahoo has a number of highly placed people who get to pick what they work on; these opportunities are few and far between.

      "Plainly, it is concievable that were a commercial team to submit changes to -CURRENT, they would be timed for integration into -STABLE in the same manner as current changes are. And try not to make a mistake, a *lot* of things are folded back from -CURRENT on a regular basis. They may have a lengthy test period, but hey, shouldn't every new feature?"

      Your argument is that FreeBSD -current and FreeBSD -stable bear a strong relationship to each other, besides each having the prefix "FreeBSD", and that integration into -current means that testing will be done, and that after testing, integration into -stable will happen.

      I disagree strongly. The two source bases run different tool chains, and they are significantly different, under the hood, as well. It is nearly impossible to write kernel code that operates identically, without substantial modification, on both -stable and -current. The differences in process vs. thread context, and locking *alone* mean that there is not one subsystem in the kernel that has not be touched. This ignores the semantics and API changes, etc., on top of that.

      Despite back-porting, there is nearly two years difference between -stable and -current. I have a system that I updated to -current in October of 2000. It claims to be 5.0. FreeBSD has not made a code cut off the HEAD branch in that entire time -- or FreeBSD 5.0 would have been its name.

      It would be a serious mistake for Linux to follow FreeBSD down this path. Linux should continue to make release code cuts off their HEAD branch, stabilize, *and then deprecating* the releases.

      FreeBSD has failed to deprecate its branches, following releases. This means that if a commercial developer wants to contribute code for inclusion in future version of FreeBSD in order to avoid local maintenance (FreeBSD, unlike Linux, does not *require* such contributions, it relies on this and other emergent properties), they must first take their code from where it's running, and port it to an entirely *alien* environment. Then they must wait for approval, and then back-port it, since no one is going to do the work for them, to the minor version after the one that they stabilized on for their product.

      "It keeps the stable kernels stable, and it folds in new changes in an orderly and well tested fashion."

      `Orderly' and `tested' are one thing. Two *years* of API and interface evolution are something else entirely.

      The first time Linux cuts a distribution that isn't a pure maintenance point release of a minor number (e.g. NOT 2.5.1 off 2.5, and NO 2.6 off of 2.5 if a 3.0 is in the works), it will have effectively forked itself.

      -- Terry

  16. It's a catch-22 by Chris+Pimlott · · Score: 3, Interesting

    Kernels don't get truly stable until you get thousands of people using them, but all those thousands of people aren't going to install a kernel until it's deemed a stable release.

    Release candidate kernels help alleviate this somewhat, but you can never really duplicate what happens when the bulk of normal users stand using it on an everyday basis.

  17. Branched development - more testers by BlowCat · · Score: 2
    What if we take another approach? When stable kernels were released in the past, they were not tested enough to be called stable. Hordes of new users would find hundreds of bugs, and the developers had to fix them instead of doing new development.

    Would starting the new development branch immediately after the stable release help? Hardly. It's the time when a lot of work has to be done on the stable branch.

    But what if we make sure that the stable kernel is indeed stable when it's released, not after the "stabilization"? The only solution to make kernel stable is to test it a lot before it's released.

    I don't think we should be afraid of "debian syndrome". Kernel is much more monolithic than a disribution, and if e.g. IDE doesn't work well, it takes much more efforts to downgrade it safely compared to downgrading e.g. Mozilla.

    The fundamental problem with the development branch is that issues with one part of the kernel affect all developers and testers. If I e.g. want to test ACPI and know how to fix it, but I don't know how to fix IDE, I won't test the latest 2.5 kernel.

    I believe that the best solution would be to have branches for different subsystems. IDE changes would be merged to the trunk only when they are stable enough for other developers. It's important that the development on the branches is done openly, step by step, so that an interested developer could find the exact place where a bug was introduced. But this style of development doesn't require doing everything in the trunk. In fact, to keep the kernel relatively stable the development should be done on specialized branches.

    More stable development kernel would mean more testers. More testers would mean stable release, which is truly stable, at least compared to 2.2.0 and 2.4.0. And that would eliminate the need to force developers on stabilizing the branch that is supposed to be stable form the beginning.

  18. what is the "enter beast"? by cpeterso · · Score: 2


    4. The enter beast was so unyeilding, it was known that the only one person who ever understood it, had to keep a journal just to keep track of the beast (Seriously). This was one of the major reasons that ticked off Linus and I believe the reason why he pushed the new VM.

    what is the "enter beast"?

  19. Re:Idea by Com2Kid · · Score: 2, Offtopic

    Just a note, Windows 2000 GUI crashes an average of 6 times every 6 hours in my experience,

    Nice math their buddy, that is called once an hour....

    Granted I had Windows 2000 core dump on me ~10-12 times yesterday (w00t) and another good 3 or 4 unexplained crashes, but that is all because I have managed to fuck up the DirectX sub layer to hell and well, err, heh;

    when it IS running properly (which it will be as soon as I manage to find the install disks. ^_^ ) it has very long uptimes, though it is awfully dependent on what you are doing. After the first 3 or 4 hundred program installs/uninstalls things to tend to, err, get a bit cluttered, heh.

    Then again I would like to see you do that many program installs in as short a time on a *nix box. :-D

    Bah, what am I saying, dependencies suck period, no matter what OS you are on. :(

    Oh, and the *nixs DO have a shitty ass GUI system, seriously, there needs to be a BIG effort to ditch X and get a real system underneath that, technology has advanced a lot in the intervening years since X came out, hell, just the pure CS theory stuff has advanced a good deal, for crying out loud, come up with a better system. Or at least a more coherent one. It has taken MS how long and how many revisions/API changes to get even a /somewhat/ understandable API running underneath things? Hell, if even MS can admit that GUI APIs are a not going to be gotten right the first time, certainly the OpenSource community can admit to the same thing and do it again until it IS gotten right. Yes it would be a lot of work, but it would be worth it. (and had somebody started back in 1999 or so it might be nearly complete by now....)

  20. My $0.02... by Zinho · · Score: 4, Interesting

    Couldn't the problem be solved by brancing the unstable first, then releasing the stable branch when it's ready?

    For example, let's say that we're happy with the feature set in the 2.5 unstable series. Instead of putting off waiting for all of the bugs to get shaken out and call it 2.6, just switch from 2.5 to 2.7 on the unstable development side. Linus can pass the reins off to someone he trusts, we can have a GROF (Get Rid Of the Fin) party and his trusted lieutenant can finish stabilizing 2.5 into 2.6 without him.

    This solves the problem of wanting to keep back-porting features from 2.7 into 2.6, it allows for time to make sure the 2.5 code is stable before public release as 2.6, and provides a clear feature-freeze mechanism: once Linus is gone, go bugfixes only. If you want the new features, run the unstable kernel or wait for 2.8 (released sometime after 2.9 is branched).

    Not that my opinion matters at all, it's just an idea.

    --
    "Space Exploration is not endless circles in low earth orbit." -Buzz Aldrin
    1. Re:My $0.02... by johnnyb · · Score: 2

      I agree. I've been saying this in public forums for years, and hopefully this idea (which is standard in almost every successfuly development house) will get adopted in Linux.

    2. Re:My $0.02... by Papineau · · Score: 2

      For example, let's say that we're happy with the feature set in the 2.5 unstable series. Instead of putting off waiting for all of the bugs to get shaken out and call it 2.6, just switch from 2.5 to 2.7 on the unstable development side. Linus can pass the reins off to someone he trusts, we can have a GROF (Get Rid Of the Fin) party and his trusted lieutenant can finish stabilizing 2.5 into 2.6 without him.

      The thing is, what needs to be done on the future 2.6 branch to stabilize it would also benefit 2.7. So the point of the current development model is to keep only one branch until it's really stable, then create the next development kernel branch on something which is sane. As a bonus you don't do the same work twice (stabilize the two branches for the same issues).

      Now, if Linus is not the one you want in charge of this, he could always back-out of the last stabilizing efforts (IIRC, he doesn't particularly appreciate that part of development).

      Branching before having a stable release would only cause both branches to diverge too much (especially in terms of bug fixes and drivers). And if you never have a "stable" development branch, it's kinda difficult to develop effectively on it. For example, see the current IDE situation in 2.5. To really develop on 2.5 atm, you need a SCSI machine because IDE seems too broken. Of course it will stabilize for 2.6, but if 2.7 is branched now, and then IDE is stabilized in 2.6, 2.7 won't necessarily have all the fixes (or some fixes won't make it to 2.6), if only because of communication problems.

      So I think they'd better to work on 2.5 for now (obviously), then get into feature freeze, stabilize, release 2.6, wait a couple minor releases for it to be really stable (as in you'd be confortable using it on low-criticality (sp?) production machines after enough testing), and then start 2.7. Then 2.7 will start in a "known good" state.

  21. Either way is wrong by IkeTo · · Score: 2, Interesting

    Okay, what stable is, really? What does it mean to release 2.6.0?

    To me, 2.6.0 means "okay, this is what we can possibly get if only developers are running the code. We have tested our kernel, we have high confidence that it will work for you, but, you know, there are surprises. So do try it out, if you can. We promise that if you find problems and tell us, we will put you to the highest priority, so that you don't have to fall back to 2.4.XX."

    What is 2.7.0? People says that it means "okay, now we have 2.6.Y stable, we can pretty much ignore it. Let's put it in the hand of Xyz Abc, the new maintainer of 2.6 series, and new work will be placed at 2.7.ZZ". But I don't like this view. This ignores the possibility that new thing can land directly into 2.6.XX. This happened quite frequently in 2.4.XX, actually, and it does work.

    I believe the real reason for 2.7.XX is that "after some use, we find that 2.6.XX has the following stupid problems. It can also be improved if we don't do things this way, but instead do things that way. But they are so fundamental to 2.6.XX, that if we ever change it, we can no longer make the claim that we made when we roll out 2.6.0. These things really needs to be done, though, but we prefer people not to use it yet, and we developers will try to make things work again after they break, and after every developers can reasonably make the claim we made when we delivered 2.6.0, we will roll out 2.8.0, when every of you can try this new neat way of doing things. Currently, please stick with what we have in 2.6.XX."

    If that reasoning can stand, then what 2.7 is for is really new API. A new one that can cause everything else to break. I'd say, once we know what new API we want to create, we should create 2.7.0, *regardless* of whether 2.6.XX is stable enough or not. It is absurd to be afraid that stablization of 2.6.XX will slow down because of the existence of 2.7.YY: preference is always given to 2.6.XX if things go wrong there. The real problem to release 2.7.0 too early is that many things get implemented too quickly, when most of the API changes are still up in the air, forcing most things to be written again, perhaps for many times. When that "up-in-the-air" problem goes away (or has settled to a point that we want to write and see what will happen if we really do things in the new way), there is no excuse not to release 2.7.0. Further delay only makes sure that the next kernel will arrive late again.

  22. Re:Idea by MadFarmAnimalz · · Score: 2

    After the first 3 or 4 hundred program installs/uninstalls things to tend to, err, get a bit cluttered, heh.

    Then again I would like to see you do that many program installs in as short a time on a *nix box. :-D

    So, let's see if I got this right. You install a lot of stuff, the box goes bad. And you can install a lot of stuff a lot faster in windows than in an *nix box.

    Therefore, the primary attraction in Windows is that you can muck it up one HELL of a lot faster.

    Efficiency, in other words.

    Yep, I'm with you :-)

    --
    Blearf. Blearf, I say.
  23. Re:Idea by Com2Kid · · Score: 2, Interesting

    So, let's see if I got this right. You install a lot of stuff, the box goes bad. And you can install a lot of stuff a lot faster in windows than in an *nix box.

    Therefore, the primary attraction in Windows is that you can muck it up one HELL of a lot faster.

    Efficiency, in other words.

    Yep, I'm with you :-)


    Well, thing is, I would like a setup (out of the box, I know I could just keep sequential images of my HD on a RAID array someplace on an older machine or such, but, err, that is NOT exactly eloquent. Kick ass yes, eloquent, no) where I can install all the crap I want and not have to worry about some bloated huge central depository of crap getting too big, or of the alternative, everything becoming so cross referenced and dependent that uninstalling anything becomes like a giant Jenga game.

    Either pathway sucks.

    DOS rocked, copied apps, ran apps, deleted apps. None of this installing or dependency bullshit. :-D (yah so darn nearly everything else about it may have sucked, but at least you could turn the computer on and know you'd get to something and be able to run something! If one app went down it didn't take nothing else with it.))

  24. How about they use some bug tracking system first by Nicolas+MONNET · · Score: 5, Interesting

    Slightly offtopic:

    It's really frustrating not to have a Linux kernel bug tracking system available. Searching through the huge lkml mailing list just doesn't cut it. And some questions pop back up every month, with no sign of it ever being addressed.

    Example: the Athlon/VIA chipset freeze bug. Is it a chipset bug? A bios bug? A kernel bug? Is it fixed? Is it AMD's fault? Is it VIA's? Is it Linus's? Is it a PCI latency problem? An IDE problem?

    Who the fuck knows!

  25. Re:What are the proposed new features in 2.5 and 2 by crsm · · Score: 3, Informative
    The linux kernel,. besides stability .. what sort of things do they want top add/improve?

    There is a list of the new features in 2.5 here.

    In summary:

    Performance
    • Major rewrite of the disk IO layer meaning better harddisk performance for Joe-user and high-end database servers as well
    • New and faster scheduler
    • Pre-empt scheduling for better interactive performance
    Features
    • ALSA sound infrastructure
    • Video for Linux redesign
    • ACPI interface and other power-control patches. Especially a new software suspend-to-disk feature that does not involve Windows specific BIOS magic.
    • Lots of high-end features (High memory, 64 bit processor support, per-CPU infrastructure, hot-swap CPU etc.etc.)
    • JFS - Journaling filesystem from IBM (where's XFS?)
    • Bluetooth
    • USB-2.0
    Security
    • Access Control Lists (ACL) which gives fine-grained security
    • Per-process namespaces (some Al Viro hackery. Someone please tell that man to slow down a bit)
    • Plugable quota system
    And as usual a lot of new driver updates.

    Suspiciously missing are any memory management patches (although Rik has his reversed mapping patch in the pipe). Perhaps the topic is still a litte too hot... ;-)

    The most important thing for me would be resource management features .. such as being able to allocate how much CPU, memory, or disk space a particular user or process can use. These are things that solaris has had for a long time .. and it seems that linux kernel developers arent interested in adding those features .. how can linux hope to take over the enterprise server market without it?

    I think that the with the current kernel you can already do much of this. But some of the new features of the 2.5 kernel allows for much more fine-grained control - like binding a process to a distinct CPU, better quota accounting etc. Perhaps thats what you're looking for ?

    The direction of the 2.5 kernel seems to me to be mainly (but not exclusively) targetting enterprise systems.
  26. ALL HAIL THE GLORIOUS PIRATE JOKE by OdinHuntr · · Score: 2

    Also, dammit, now you've got me wondering what the insult was in Monkey Island whose retort was something like 'get the POINT?'

    Burning karma for Jesus.