Time for a Linux Bug-Fixing Cycle
AlanS2002 writes "As reported here on Slashdot last week, there are some people who are concerned that the Linux Kernel is slowly getting buggier with the new development cycle. Now, according to Linux.com (Also owned by VA) Linus Torvalds has thrown his two cents in, saying that while there are some concerns, it is not as bad as some might have thought from the various reporting. However he says that the 2.6 Kernel could probably do with a breather to get people to calm down a bit."
fp
As a user, I preferred the old odd/even unstable/stable code split; I'd run .even at work and .odd at home.
I suppose if you buy your linux off the shelf you can complain to your vendor, but for home users looking to do some DIY kernel building the new way is a bit worse. However, I suspect we're a dying breed...
I guess today is a passable day to die.
Linux is BUGGY so it IS about TIME ! In 10 years of NT I've had two panics, and one was when my wife was seeing the neighbor too often. In 1 year of Linux I've had a dozen or more, and the wife hasn't been at the neighbors in a long while.
I thought since it is open source the bug level should be more or less constant. More bugs, more people willing to fix the bug, more fix submissions - problem solved?
I understand that the kernel code grows, it is natural for any software code, so does it mean that open source community is lacking developers now to handle existing corpus of open source code?
I do not believe in karma. "Funny"=-6. Do good and forbid evil. Yours, Oft-Offtopic Flamebaiting Troll.
I have been using Linux since the early 1990's and I've been a software developer for almost 30 years. The one ting that concerns me, and I think this recent indictment is just a symptom of a larger problem.
The problem is that the drivers have to remain in constant flux because the kernel API is always changing. Now, when there are a limited number of drivers, this means that you can move quickly on the kernel. As you add more and more drivers, you add more and more work to keep the drivers updated. Eventually, there is more work needed to update the drivers than modify the kernel, and the drivers become your sticking point.
This is where I believe Linux is stuck. Linus and the kernel team has to look at the various kernel APIs and standardize them with the next release.
Sorry guys, time to grow up. Linux *is* mainstream!
It's funny that not so long ago Andrew thought 2.4 development was too slow. That was one of the reasons for the versioning scheme change (the other beeing getting more people to test new stuff).
I think all this means that the new versioning system is working too well.
Any kernel with upwards of 2.5 million lines of code is going to be incredibly buggy, perhaps it's time to rethink and go back to the microkernel
"Kernel developers will need to reapportion their time and spend more time fixing bugs. We may possibly have a bug-fix-only kernel cycle, which is purely for fixing up long-standing bugs."
Sounds like this approach will benefit everyone in the long run, instead of constantly playing catch-up later?
He who knows best knows how little he knows. - Thomas Jefferson
sed -e 's/security/bugs/g' -e 's/Windows/Linux/g' -e 's/innovation/imitation/g'
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
That is in my opinion the most important flaw within the OSS community, the thing in which many commercial approaches excell but that is something most people don't wish to hear because "commercial = bad". It would help to keep an open mind and look and learn before you judge, but I guess that is also something not many people of us are capable of.
I can't help wonder how long this comedy has to continue before people will finally realize that some things are best adopted instead of mocked. In my opinion this kernel incident is no different. "Homeostasis and Transisstasis". One is the power for change while the other is the power for maintaining the same. Unrelated psycho mumbo jumbo I hear you think? Well, what about that marvelous piece of work (you probably won't find a distro without it) the BerkelyDB ? Its almost as if every released version is incompatible with the previous one. If you don't believe me try installing SquidGuard with the current BerkeleyDB. Or simply stop and wonder why your distribution keeps several versions of the same product around.
This is but a single program, now what about some strict standards? SuSE tried to introduce some standard with regards to administration (Yast being in control; changes should be done through yast all the time, even overruling manual changes) making it possibly a very solid basis for your average workstation. Like being able to administrate and roll out standards through the use of AD. Or what about Java? The so called "free java" is also breaking standards. Ofcourse these free tools were needed because you can't distribute Java. Really, is that so? When I look at the license all I see is that they don't allow you to ship additional software which will replaces parts of the environment. So distributing JRE and kaffe wouldn't be allowed. But what is the use of kaffe if you have the original?
And now the same issue is manifistating itself in the kernel development itself. Change after change and no one seems to care about setting certain standards. Even the well appreciated previous standard on seperation between stable and unstable has been thrown in the bucket for no other reason than "we don't feel like it anymore". And this is exactly the thing which makes OSS unreliable in the eyes of many.
I'm not condemning this perse since it is but a hobby (although people sure don't like to profile it this way anymore) but I do think people should realize this before they start barking up other people's legs for trying to maintain certain standards, enforced if need to. "Everything should be free?", maybe that is a noble cause but throwing smoothly working things in the pools of chaos and cheering that it is now free while the product itself as it once was is utterly destroyed isn't always the best way.
So in the case of the kernel development I'd say setup some (new?) standards and this time STICK with them instead of dropping whatever you build simply because you don't feel like it anymore. Only then will you last a whole lot longer and will it even survive when Linus stops caring about all this. But in any other situation I foresee Linux exploding (splintering into many factions and ideas) due to several people trying to oppose several "standards" because they simply "don't feeel like it".
That's the entire reason a free kernel exists, some folk really should just stick with Windows. That said, every time I come to upgrade (and I do track releases) there's a bunch of new configuration options that are never going to be relevant to anything I'm going to be involved in. 2.6 has been reasonably stable for me but there's just too much crud bundled with the mainstream release that ought to be split off into patch-sets.
found\ out about the turned over to yet Alike to reap you join Rtoday!
(Davej is a long time kernel hacker and currently the Fedora kernel maintainer.)
Does this mean that everyone who has complained or criticised Slackware for sticking with the 2.4.* kernel for the sake of stability will apologise?
Not holding my breath or anything, but it might be nice.
Off-topic yet still Linux related - does anyone know if this is a wind-up or a genuine nutter?
yeah, the fix is called BSD. (open)
*runs*
i keep slackware-10.2 with the stock kernel-2.4.31 as my main os and keep an extra partition for playing and testing out other Linux distros, and the slackware is more smoother and stable than any of the disktros i tried with 2.6.xx series kernels...
:)
i am sure the kernel dev people (Linus & co.) will iron any wrinkles out of the 2.6.xx series kernels soon
_i for one welcome our kernel hacking overlords...
Politics is Treachery, Religion is Brainwashing
It's obvious that better developers should generate fewer bugs, but I think you don't get the point.
Open source has fewer bugs irregardless of overall developers quality, because it's the quality of the best developer that has access to the code that matters. It doesn't matter if 99.999% of the people who have access to the code are ignorant, or unwilling to debug it. It's enough that *one* competent developer gets motivated to fix that bug. The more people who have access to the code, the greater probability that among them will exist one competent and motivated programmer.
In the old days, when the kernel guys were working on an odd numbered kernel they would try out all kinds of stuff... Then, when they had a big batch of cool stuff they would go after an even numbered release and spend all their time solidifying what they had just done... So they used to operate with a built in (and regular) period that allowed them to focus on bugs...
Since 2.6, they've changed all this. I believe we will see the occasional "bug fix" only release as this is really what the developers are used to... and it just works... In the old days, this would be a 2.7 release...
td
hard core geek-ware
I was going to suggest that Minix 3 might be worth taking a look at now.
It is free now. Well documented and now has performance as it's primary goal.
Can you put convert BSD code into GPL code? I know you can not take GPL and make it BSD but I wondered about the other way around?
The current problem with Minix goes back to drivers.
I almost want to download it and give it a shot.
See my blog http://ilovecookes.blogspot.com/ for light hearted technical information.
Speaking of Bugs,
how's the state of the support for the sky2 / Yukon Ethernet card that is usually shipped inside Centrino Solo/Duo laptops? Suse 10.1 RC3 did not properly perform a DHCP on my laptop's internal sky2 LAN - it just hung.
Is there any patch available?
--- Eat my sig.
You should consider LXR (Linux Cross Reference), it's a very useful tool. You can navigate through kernel source up to 2.6.11 here.
Now, it's not perfect because function pointers still are requiring hard work, and the tool can't understand macro-defined 'nightmare' functions like this one (in kernel/spinlock.c)
I have discovered a truly marvelous proof of killer sig, which this margin is too narrow to contain.
Seems like consensus is that there is
1) lack of motivation to fix bugs (boring and/or difficult)
2) complexity of the Linux kernel code
Given this observation I wonder if refactoring is needed for the kernel code to make it more readble and if it is needed then how open source projects are approaching it?
I would assume that the project leader would have to make some kind of a team to do that. What I have mostly heard about OS projects is that they are started by a single person who codes something workable then depending on the prospects of the future use and general interest more developers are joining it in a very free, relaxed manner.
Refactoring seems to be a different issue: one needs to redo a whole bunch of functions without getting any intermediate working results. How is OS community is dealing with the problem of refactoring or how would it deal with it?
I do not believe in karma. "Funny"=-6. Do good and forbid evil. Yours, Oft-Offtopic Flamebaiting Troll.
I have a question here. What is it that needs so much change that the API can't even be solidified, let alone frozen? The hardware obviously isn't morphing. Are the kernel developers discovering new principles of CS and they need the flexability? 'X' has already shown us that if you chose wisely your design will have a long lifespan even if it doesn't cover every contingency.
"But really - that only affects close source kernel modules - and why should the linux kernel team care about people who want to leverage the linux kernel without contributing their source code back."*
Like Nvidia, or ATI, or Broadcom, or...
Sorry but your going to have to wait for GPL 3 before you'll have a stick big enough to make people give you the source code to their hard work.
*OH and did I mention the GPL loophole that allows Linux users to keep their source code hidden from the RMS police, while gaining it's benefits? Oh wait, I alluded to that already.
The Message passing overhead is still large and makes coding difficult. eg. HURD is still not finished after 20 years.
Speaking of Hurd, I had actually forgotten about the whole thing. You don't see it mentioned as often as you used to, even in jokes. Bad sign?
Save your wrists today - switch to Dvorak
Give me break. Everybody knows that BerkleyDB is an unstable, sorry excuse for a DB that makes MySQL 4 look like the god-sent of all DBs. And lack of standards and arrogance certainly isn't a thing of the OSS community. Especially not the Linux Kernel people. "My biggest Job is to say 'No.' to new features." Hits the nail on the head. And from what I can tell Linux is anything but a weedy mess maintained by daredevils who don't care about stability. Some commercial vendors would give their right arm to have a piece of software like the Linux Kernel in their stock. There are enough OSS projects out there that are very well maintained and offer the cream of software quality. Your rant is baseless.
We suffer more in our imagination than in reality. - Seneca
I get so tired of hearing MS fanboys running around yelling "it is too stable! is too, is too, is too!"
Quoting myself here:
I have four boxes here in my office, a six-month-old, high-end Dell Windows box, my Powerbook, a Dell 2800 running VMware ESX Server, and a Dell 2800 running Ubuntu (crazy, I know, but the 2800 was what was available).
* My servers only reboot when I need to document startup behavior. Since I'm doing work that involves explaining how to build drivers for ESX, which includes info on installing and starting ESX, that means an occasional reboot. Initiated by me. At this time, (after about six months) neither server has required a restart for any other reason.
* My Powerbook has been rebooted three times since I bought it. Each time was after installing a system update for OSX.
* The Windows XP box I reboot at least once a week. Sometimes this is because of an update. Usually it's because a progam locks up and refuses to be killed, and no, the Task Manager can't kill it either (sometime the application refuses to quit, sometime it's the process). When that happens, the only way to get the application to restart is to reboot, and since I can't do my job without email and publishing applications, I have to reboot. While this is obviously caused by the application, the OS should be able to kill any userland program completely.
Windows XP may have eliminated the BSOD that we all love to mock, but "stable" it isn't, IME.
Interested in a Flash-based MAME front end? Visit mame.danzbb.com
A few comments have flown already, but let's be sane here and examine microkernelism.
File system crashes. Microkernel is going to panic because there's no way in hell it can guarantee consistency with running processes now; the FS driver might log-replay or FSCK, but all open file handles become invalid (this can be reduced though...). A monolith is also going to panic; the driver may be in a kernel thread and get flushed and re-initialized, but same problem with file handles.
IDE driver crashes. Microkernel can block disk reads, bring it back up and hold the file system's state, re-flush buffers that weren't confirmed, unblock disk reads. Monolyth may do the same if the driver is in a separate kernel thread.
Sound driver crashes. Microkernel re-inits it. Monolyth re-inits the thread if it wants to (Linux just says it's broke and sound stops working).
Video crashes. Hardware needs a re-initing. Microkernel means X gets killed! Monolyth means X gets killed! Although the video driver CAN be re-initialized, Linux is likely to panic; MULTICS was easily 70% error recovery code, UNIX we just had this routine called panic() where you yell down the hall to reboot it...
Network crashes. Our entire TCP/IP stack is blown out. Microkernel re-inits it, monolyth can too, most likely we let it die and you reboot. We got tired of panic()ing for simple shit, we call this "Oops."
What a microkernel DOES have that's nice is the ability to quickly and easily ensure that drivers with fucked up code don't stomp all over other kernel memory. I suppose some MM hacks can be done to remove writability but..
What Linux really needs is the 2.6 model for odd series, as "Volatile," on a set even "Stable" series release cycle where "Volatile" is pinned as "Stable." That way the "Volatile" is always as usably stable as 2.6 is now, while "Stable" is concrete. Everybody happy and no silly 2.6.x.y running trees.
Support my political activism on Patreon.
It is not that "commercial = bad", it is that proprietary = bad.
You mean the thundering herds of "must have the newest" videocard buyers, the gamers and graphics guys, would stop buying video cards because of the status of the drivers as regards an open source or not status? Or that the OEM vendors making new machines would stop buying video cards and installing them if tomorrow the code that ran the cards was GPL?
I doubt that for some reason. I think the vendors arguments are..well, quite dubious at best. Go back and look at what you are alleging, business suffering means selling less cards. Do you REALLY think they would sell less cards?? That is LUDICROUS. Really, that is your claim, that they would stop selling cards (that's the whole point of their business, selling cards) or that sales would somehow almost immediately "drop down" or something. THAT'S HILARIOUSLY LAME.
What WOULD happen is the first company that open sourced would get a TREMENDOUS influx of neat code, a tremendous amount of increased user enthusiasm beyond whatever they had now, they would get code and coding help designed to run on THEIR cards which would really quickly make them work better and they would sell MORE cards from it..not less. MORE. Their competition would be scrambling to keep up with it. The competiton would ALWAYS be one step behind in their efforts from that point forward, given the two "rivals" were very close in size when this transition occurred..
Open source works because *everyone* benefits from sharing..EVERYONE is the keyword there. Not just this or that guy, EVERYONE IN THE WHOLE FOOD CHAIN benefits from it. The vendors are scared they won't benefit..on the contrary, their efforts at building nice little cards will benefit as more people HELP them with coding to make them even better. I don't care how big your private company is, it is NOT larger than the global open source coding community and NEVER will be. MS is the largest software company arguable, one of the main components that people use on computers are browsers. Now which browser has been advancing faster in this market since open source really took off globally as a mindset and practice a few years ago?
Whether or not it is better cannot be proven UNLESS the code is open to have other people look at it and tweak it, so you can't argue one way or the other about it until you try it out. All we have to go by is past examples, so let us look around. Hmm, the operating system itself-linux and bsds are not doing too shabby, are they? Use and enthusiasm increasing daily, all over the planet. Sure, not dominant..yet. It'll happen.
In other areas where it has been opened up it has proven to be quite effective.
If nvidia is worried about ATI "getting their code", well, ATI would be "worried" about the same thing, so it's a *net wash*. If both of them got a lot of free code and help, guess what? They both would be..getting free code and help, back to the same exact *net wash*, except for the "more help" part, which would increase development at NO cost to either of them. If only one of them got the help, THAT one would get better/faster, a net INCREASE in the "desirability to purchase this card" factor, from individual end users to the bigbox manufacturers who would want the best video bang for the buck.
Their closed arguments simply fail to take into account that "open" is not partially restrictive to "your" company, they are basing their decisions on not really understandinhg the concept fully, honest, they really don't "get it" yet, and past inertia in the industry, and fear.
Here's the bottom line, when you open something, it can no longer be stolen away from you, you eliminate that whole "stolen" concept completely, you can then STOP WORRYING ABOUT IT and get back to business, which in this example is selling cards, all that happens is that you still have what you had previously, you lose nothing, but now you get a lot more free help.
That's why the larger companies are going more and more to opene
I prefer the current development model over the old one, upgrading from 2.4 to 2.6 was much more difficult then it should have been, mostly due to the learning curve though I think.
.x releases, so even those don't get a chance to stabilize much. I haven't NOTICED a new kernel feature in quite some time, so I would rather get the additional stability until I realize there are features available that I could make use of.
However the current development model does "seem" to have introduced more instability into the kernel then I remember. (My box at home seems to crash every 17days like clockwork.) Even with the 2.6.x.y releases, they are only maintained for a couple
Why not something like every kernel that is evenly divisible by 5, (or 10?) is considered a "stable" kernel. 2.6.20, 2.6.25, 2.6.30, and commit to supporting 2.6.x.y releases on those versions for a minimum set of time, perhaps 6months. 6 months seems to be about the average cycle of distro releases, so that may work pretty well.
This should give the best of both worlds, longer "stable" kernel releases then we have now, and still the fast developement/test cycle that the current development model offers.
Open Source Time and Attendance, Job Costing a
If Linus and the rest of the kernel developers decide at some point to provide an ABI that proprietary companies can use to build their drivers, all the while clinging to their dated business methodologies and obsession with "IP", then great, that's their choice.
Here's what you guys are overlooking. There is a stable kernel ABI. It's called "RedHat Enterprise". Look at high-end storage drivers and the like and they only come in binary and only "certified" for certain distributions. If you want stability, you pay RedHat and the hardware vendor pays RedHat.
So, this isn't all about Free Software lovey-dovey. Much of the mainline kernel's instability is directly motivated by the fact that "stability" where the revenue comes from.
Whenever I hear the word 'Innovation', I reach for my pistol.
The OS community is committed to refactoring... usually because some developer can't figure out how the previous developer wrote some unintelligible function, and decides the best way to "fix" it is to rewrite it in his own unintelligible style.
Any sect, cult, or religion will legislate its creed into law if it acquires the political power to do so.
I was skeptical when 2.6 changed its development model and ignored "stable" series, but I've now convinced it's a better model than before. It's simply more productive. Yes it destablizes stuff more, but the real benefit is what has brought Linux to success: motivation of highly talented developers around the world. It's human nature that people like to work on new stuff, especially for open source developers. You get fame, recognicion, and employment opportunity by working on high-profile code instead of bug fixing. For the old "stable"/"development" model, nobody really cares about stable anymore. This left an embarrassing situation there, and vendors would have to do a lot of feature back-porting work. Now the vendors just need to fix bugs, and bug fixes are generally far easier to port to mainline.
Every /.er knows the Linux kernel is without bugs, as bugs and poor
code are only found in the evil mind controlling applications of The
Beast, or Mr. Gates as we lesser-nerds still refer to him, or His
Legions, or Microsoft as we lesser-nerds still refer to it.
Linux cannot have bugs. Just like hippies can't have ill feelings.
Anything else contradicts my carefully insulated hyperbolic assumptions
of the world and the Dark Forces raging against it.
Duh.
In fact, you have strayed into the compounded strawman argument fused with completely false assumptions, and gone from there somehow conviced that is "fact".
Google WOULDN'T EXIST without open source. They wouldn't have a single dollar. There would not be a google as you see it now. That they only open some of their stuff means even there they still don't fully "get it", yet, besides that, they still managed to garner huge market share, PRECISELY BECAUSE OPEN SOURCE CODE WAS THERE FOR THEM TO USE. They kicked the shit out of MSN precisely because they came in on open source and that is the primary advantage they had.
You also make some utterly and arrogantly *lame* assumption (getting to be a habit with you, you might want to get that checked at the shrinks) that the open source community doesn't have MIT grads or EEs or Phds working in it. OMG OUR COMPANY HAS REAL SMART GUYS!!! NOBODY ELSE DOES THAT MAKES US THE BESTUS AUTOMAGICALLY!!ONE
Ya, SO WHAT? You lose,you lose BIG TIME right there, demonstrably false directly on this board, there are TONS of high level superior brains working on open source code, you can see that readily.
Now, back to a video card, PROVE that their hardware wouldn't get better with major contributions from the community, and come in faster than what the "closed source" community would provide for "the other brand". Prove it, that's your claim, so prove with some real world examples, give us the list of other type hardware vendors who lost major sales because their hardware runs on open source code. Give us THE BIG LIST, where is it? Can you point to serious LOST SALES?
Try again, PROVE some hardware vendor lost a sale-that's you ENTIRE POINT, LOST SALES OR NO SALE BASED ON OPEN SOURCE DRIVERS, because the hardware was running on open source and the competition wasn't, or could run on open source just as well as closed source and that open source was readily available. Give an example of lost sales, go ahead.
I like nvidia cards, I purchased a what to me was an expensive video card. Not top of the line, I can only afford a couple of generations back, but certainly good enough for my purposes now. If nvidia had a truly open source driver, does that mean automatically I would NOT buy a card from them because of that, that I would just flee overnight to ATI because for some reason they just "must" be better now? Any "advantage' that ATI might have would STILL BE IN THE NVIDIA CARD DRIVER, now wouldn't it?
This is why you don't get it on open source, you flat out refuse to see this, you think by opening the code you are THROWING IT AWAY, you AREN'T, you STILL GET TO KEEP IT, no one has "stolen" anything from you. You are selling VIDEO CARDS, that's where the cash comes from. And you get the code first while you are working on it, so how does that change things with 'the competiton" again? they don't see it until you dump it on the market, you have a huge lead time then, and after that, you STILL have lead time because something as important as that WILL get serious major effort donated to it, because it is in the USERS-your customers-best interest now, even MORESO than previously. They now have a stake in your business to make sure it stays working correctly and makes good stuff, so not only do you still get the cash for the cards, you get fre help to make the cards better.
I am just an average typical user, but we'll let some others chime in here, maybe someone in charge of purchasing a lot of desktops for their business, now would anyone "you" reading this NOT BUY A VIDEO CARD for those machines if there was a very good open source driver for it, direct from the devs at the manufacturer, with fully open contributions from the open source community? Or would you insist on the closed competition card?
This is a yes/no proposition, all things elsewhere take it as a near level playing field and considered, the hypothetical machines need video cards of some good qulity.
If yes, OK- that is understood, if the answer is NO, you WOULD NOT PURCHASE THOSE CARDS, why wouldn't you?
Yes, but the net calms down when Windows boxes have been told for the third time to go to bed. That's when the small linux goblins peek out from their firefox holes, and resume their quest to reach the golden kernel.
The stable ones mostly come at night.. mostly...
Defining Statistics and Social Research
It's not that it's unreliable. It's that if any one of the thousands of new options isn't exactly right, it crashes.
what if a distributed system is built to test every patch/release of the linux kernel on most/all hardware configurations? i use the word distributed as it will be difficult to have one place where all the testing happens. people/coders who are interested in helping in kernel development, but lack the experience, can start with downloading diffs and patching their kernels and testing them.
some people could also work on a distributed testing system, ala SETI.
all of this would get a bug out soon and it might be possible to trace the bugs to which patch/release introduced the bug. hence resulting in a lesser bug-closing turnaround time.
what is the existing way bugs are discovered and closed?