Linux Has Fewer Bugs Than Rivals
sushant_bhatia_progr writes "Wired has an article stating that according to a four-year analysis of the 5.7 million lines of Linux source code conducted by five Stanford University computer science researchers, the Linux kernel programming code is better and more secure than the programming code of most proprietary software. The report, set to be released on Tuesday, states that the 2.6 Linux production kernel, shipped with software from Red Hat, Novell and other major Linux software vendors, contains 985 bugs in 5.7 million lines of code, well below the industry average for commercial enterprise software. Windows XP, by comparison, contains about 40 million lines of code, with new bugs found on a frequent basis. Commercial software typically has 20 to 30 bugs for every 1,000 lines of code, according to Carnegie Mellon University's CyLab Sustainable Computing Consortium. This would be equivalent to 114,000 to 171,000 bugs in 5.7 million lines of code."
Proves it:
:)
better love (coding) your software, than making war selling it
Slashdot: stuff for news, nerds that matter, matter for news, stuff that nerd
I think they mean "40 million lines of bugs" :)
...but while they were going through all those 5.7 million lines of code, would it really have killed them to debug them while they were at it??
Love the Third Amendment?
How can one be sure about closed source kernels like Windows XP. Even though I agree that it has to contain more bugs, without the actual source how can any one make any judgement in this matter?
"In questions of science the authority of a thousand is not worth the humble reasoning of a single individual."
I wonder which facts from this study will end up on Steve Balmers Propaganda presentation sheets...
The problem is that there is very often little vested interest in fixing bugs in closed software...if it can be covered up, then so be it. In open software, there's always a reason, even if it is just to keep people from pointing at your code and laughing.
I'd like to draw conclusions from this, but I don't know what meaning of "bug" they are using here.
Lots of "bugs" aren't really bugs at all, so all these numbers (lies, damn lies, and statistics) don't mean anything to me until I know the assumptions they are using as a basis for the study.
Make that 986, they just found another one.
bhj
Not to be a downer but, how do we know they didn't miss anything? 5.7 million lines is a lot of code to go through and analyze. I'm also curious where they came up with the 20-30 bugs per thousand lines of code that proprietary software suffers from since they can't see the code.
Of course, we must remember, "It's not a bug, it's a feature!"
Fly me to the moon Let me sing among those stars Let me see what spring is like On jupiter and mars
... so, since they've discovered that many bugs, where's the patch? :)
- Leon Mergen
http://www.solatis.com
Hopefully since those bugs in the Linux kernel have been identified, they can be fixed. While whatever bugs there are in Windows have not been identified since the source code is not availalble. For those we will have to wait for the next exploit to be announced.
"Windows XP, by comparison, contains about 40 million lines of code, with new bugs found on a frequent basis"
which compares very well to a rate of "very frequently" on "less" lines of code. probably at least 2-3 times better - or "more".
Johns: Well, how does it look now? Riddick: Looks clear.
1. Are these the only bugs to be found in the Linux kernel?
2. Now that these bugs have been identified, should these bugs be fixed would that mean that Linux itsself could truthfully be classified as "bug-free" or am I missing something?
Backup not found: (A)bort (R)etry (P)anic
At least a totally freaking obvious story is better than a redundant one. ;-)
Murphy was an optimist.
Have they fixed the 985 bugs - if they have how many bugs are left ?
Semper ubi sub ubi
Talk about misleading stats...
The Windows XP code base includes all of the extraneous crap that gets bundled with and on top of the kernel.
The "Linux" code base just includes the kernel.
It is nice to see som real documentation from independt institutions that document what we have known for a long time. I took note of thge fact that the test had run for 4 years. That's some testing period. Hope that keep MS quiet for some time.
Since they've found all 985 bugs in the 2.6 Kernel, did they submit them for fixing, or submit patches to fix the bugs themselves? Seems like a waste to just count the bugs, rather than fix them.
Kythe
so we can fix them.
They're calling Windows XP a Linux "rival"?
If you're really itching to do a Windows vs. Linux comparison, you should at least be looking at Windows 2000 or Windows 2003.
That Linux is more bug free than it's rivals. It's nice to be able to show my clients. "Look! There really are less bugs than Windows server software!" With this, more of them may actually believe me.
985 bugs? That sounds like an exact number. Of course that is possible, it being open source, but I hope they don't believe that they found them all. Debugging is quite a profession on itself, and I don't think anyone has found the ultimate "solution" for it.
Anyway, I sure hope they at least reported the bugs they found. Being the best is no reason not to want better. (And no, I did not imply that Linux is the best existing kernel.)
Finally! A study to document the entirely obvious.
That's our life, the big wheel of shit. - The Fat Man, Blue Tango Salvage
First off, what does this statement mean?
"[Linux has] 985 bugs in 5.7 million lines of code, well below the industry average for commercial enterprise software. Windows XP, by comparison, contains about 40 million lines of code, with new bugs found on a frequent basis."
So Linux has 985 bugs. Windows has bugs that appear frequently. Ok that doesn't really tell me anything. I tried to dig a bit deeper and came up with: "Coverity has not analysed the source code to Microsoft Windows because the company does not have access to the source code, Hallem said. Apple Computer's Mac OS X has a great deal of proprietary programming, but the core of the operating system is based on BSD, an open-source operating system similar to Linux."
So everything is based on estimates. Now, you know and I know that the Linux kernel has less bugs... but this is a tentative (at best, shoddy at worst) way of presenting that idea.
Small potatoes make the steak look bigger.
- Linux Has Fewer Bugs Than Rivals
- Novell and other major Linux software vendors, contains 985 bugs
Ergo: there are at least 987 operating systems in the world.Since they didn't compare it to anything else, maybe their method just had low sensitivity? For example, I could analyze linux, find one bug and then be done. Linux has only one bug. Obviously my method is flawed. It only works appropriately when you actually apply the same protocol on a control, that is actual commercial buggy code. And to make the comparisons they want to windows, they should actually run windows code. (For all I know they could have done this, but the article seems to focus a lot on a comparison between linux and windows, and they didn't even test windows.)
Laboratree - Scientific collaboration based on OpenSocial.
If the same article were submitted but used windows instead of linux, it would have either been rejected or severely criticised in the abstract.
Read reviews of shopping cart software
What about if you throw in KDE or GNOME, Mozilla, etc, everything that you'd have to add to really equal the features of Windows XP....
Maybe there's so many bugs in recent Microsoft OSes because the code base is starting to get so huge that it's harder and harder to modify a known API without breaking something by mistake.
After all, maybe there's 10 times the bugs in Windows because there's 10 times the code. Earlier mistakes were mostly squashed out, but API or workflow defeciencies always come up late in development, no matter how you plan and when you have something as huge as Windows, it might be hard to reverse the direction they have taken and have to make do with what they have now. It's not as if Microsoft OSes are based on any variant of Unix or something.
Maybe the people who work at Microsoft aren't all big nerds who know 40 million of code by heart.
It's a comparison between oranges and apples. Windows has a GUI and a huge userland with complex applications. Linux is just a silly kernel (yes, silly if compared with the other OSS alternatives -- and definitely buggier than the others). But since it goes into slashdot's agenda, let's give it all the latitude.
It stands in stark contrast to some recent comments of the proprietary software spokesmen.
A redundancy score? :oO
Is someone trying to say that the redundancy in XP is in the form of redundant bugs?
"Ha, you may have squashed one bug, but we have 10 more in there doing exactly the same job!"
Don't take the above poster too seriously. He doesn't.
... the ongoing inability of creating a proper desktop environment is. I want to be able to use commands like cut'n'paste in between all programs, from terminal to OOwriter. Also, the driver version stuff can be done better. When I upgrade a kernel I don't want to recompile my Nvidia driver. It should just _work_. The fact that open source software can be the root of something that does work, is proven beyond doubt by Apple's OS X.
"No one likes working in a hamster wheel, and your shop smells of cedar shavings from here." - TaleSpinner
The 2.6 kernel isn't even a year old yet. How'd they do a 4 year analysis?
No I didn't RTFA.
Kids today are tyrants. They contradict their parent, gobble their food, and tyrannize their teachers. - Socrates 400 BC
This Windows survey says Windows is better. This Linux survey says Linux is better. Who knows? Who cares? The only way to do a fair comparison is to have both platforms tested on equal footing, and its never ever going to happen while Windows is a closed system. Just keep coding, folks. How does fodder like this end up on slashdot? It just fuels flamebaiters to post Win Vs Lin vs Commodore Vic 20 OS articles.
just a web application developer and instructor in Toronto, ON Canada
Sure this is nice and show what we already knew, but the burning question is:
Did Stanford pay tthe $699 fee to SCO???
In my IT shop we have code that has been running for up to 30 years. I guess that we have worked out most, if not all, of the "bugs" in these applications.
If Microsoft trys to release new software every 2 to 3 years, then they really have not had time to fully debug. In their race to beat the compitition, they have chosen quantity over quality. So be it. Most of the computer software consuming public have decided that it works "good enough".
Moderate this comment
Negative: Offtopic Flamebait Troll Redundant
Positive:Insightful Interesting Informative Funny
Nothing to see here
Uh, I'm not sure how this is a correct comparison. Since when is a bug (what they presumably looked at in Linux) a security flaw (what they presumably looked for in Windows, considering they didn't have hands on the code)? According to the article summary, they measured "bugs" in Windows by counting the number of identified security flaws, and compared it to the (estimated) number of lines of code.
I'd assume each flaw in Windows would actually result from multiple bugs (incorrectly defined data structure on this line, misread on this line, etc). This would actually skew the results MORE against Windows.
On the other hands, Windows has a lot more code built-in (for better or for worse) for functionality than the average Linux distro. Were they comparing functionaly the same OSes? They claim they were examining kernels, but does Windows KERNEL have 40 million lines (I always read the entire system did)? There's so many intangibles that the article itself fails to answer. All it does is stir up flames.
"[Windows xp has]40 million lines of code..." and if 5.7 million lines of code should have "114,000 to 171,000 bugs" that should be that windows has 800k - 1.2 million bugs!!!!
Wow, from the standard of their bugs thre's got to be some _really_ good ones in the source somewhere:-]
Does linux have fewer bugs than the freebsd, netbsd, openbsd kernels, the hurd and more?
That would also be interesting.
I expect the openbsd kernel to win!
But I'd still choose GNU/Debian for many other different reasons
What is the basis of these kinds of studies? Is it based on known bugs and submited patches of Linux Kernel? Or they've found new previously unknown bugs?
I find those numbers a little hard to believe.
We're talking about # bugs per # lines of code - it doesn't matter what the code does - it matters that the # bugs per LOC are relatively low.
Slashdot: stuff for news, nerds that matter, matter for news, stuff that nerd
...a new study confirming that patents do indeed stifle creativity in the software market; an analyst explaining that Microsoft is actually a monopoly; and how the DMCA can be abused to take away fair use rights.
Many Bothans died to bring you this sig.
Just to be sure, doesn't windows include a GUI and Web browser in their kernel/OS - addning several thousand lines of code to the count? (Also great places to find bugs.)
-dave
http://millionnumbers.com/ - own the number of your dreams
While I think it is plainly obvious that in terms of stability, performance and security that Linux systems are superior to windows systems I don't think that bugs per line of code is a very good measurement. The designs of the two operating systems are so far off from each other its really not a fair comparison.
A bettery way would be a component by component comparison. For example: look at the memory management code in Linux then in Windows. Compare the code for features as well as bugs. Do this for every component. Then you will get a fair comparison.
Of course, I'm almost sure that the result will be that the components of linux are smaller, less buggy, and more "computer science correct" than the windows counterparts. But I'm also sure you will find the windows code to have more features. Meaning the ability to do so many backwards compatible things that nobody understands. So the features don't necessarily mean beneficial abilities for the end user, but they mean ways in which the code allows for so many possibilities.
The GeekNights podcast is going strong. Listen!
Sounds like it was a pretty dull thing to do, but reasonably interesting results. I would question though that the "bugs" they found would seem to be pure programming bugs, since they just analysed the source code. The majority of bugs found in systems are usually found by actually using the software and often come about as a result of either unexpected circumstances, unexpected input or compatability issues. Merely reporting the straight programming errors really isn't the same thing.
Also "Windows XP, by comparison, contains about 40 million lines of code, with new bugs found on a frequent basis" isn't exactly very scientific either. How frequent? How severe? XP has been released for roughly 3 years. According to the poster, it's roughly 8 times the size of the code these guys analysed, in which they found 985 errors. So to be at the same level, that would allow for around 7880 bugs, or about 8-10 bugs being found per day since its release. Is that the frequency that's implied here?
It sounds like a good bit of initial research, but probably only just to Bachelors degree level. They need to apply this research correctly in fair comparisons to other operating systems before the results they came up with are meaningful.
--- Band: Joey Ultra
Crap code can be made to pass some poor unit tests (it works, as long as the input is exactly what you expect it to be), and slide through poor Q&A (we tested the data the way we expect them to be, and the pieces work together).
It can still make for a helluva mess if there is unexpected data (past a certain range, called by a different function with a wider range, while in a wrong state etc.) Perhaps it'll bring the program down in flames out on the users machine, but tracking it down might be hell. So no, the company couldn't cover it up, but the *programmer* covered it up.
Bugs in crap code tend to also be crappy documented, and near impossible to understand so you can fix it. The result is a bunch of patches and workarounds until you really got no idea what you're doing.
Kjella
Live today, because you never know what tomorrow brings
It's good to see that the Linux kernel is well designed and coded.
What really matters is what you run on the thing, many security issues occur outside of the kernel.
985 bugs is enough to give you a new bug every day for the next 3 years. How does that make it better than microsoft? How does that make this article seem any less biased towards linux? Seriously?
Kill my karma all you want, but the jab at windows ruins any objectivity in the article. Its obvious that they didn't research the actual number of bugs in microsofts product, so really this is just a marketing pitch for open source instead of an actual reason to embrace it.
It is clear that each line of Linux kernel code has 0.0001728th part of a bug. Obviously, Linux programers are evil...they cruelly chop up bugs (and would think nothing of doing the same to cute little puppies) into little, almost unrecognizable chunks and put them in each line of code.
Microsoft is clearly much more compassionate and Pro-Life (TM)...they're willing to forego a little software quality if it means saving a A Bug's Life (TM).
An Indian-American Hindu committed to non-violent thought/speech/action alarmed by the global explosion of radical Islam
Yes, the extra eyes looking at your code helps. But so does the fact that you know that there will be extra eyes looking at your code.
So you do a better job.
And the correllary is therefore that one of the big reasons some programmers don't like code inspections is that they don't want others to see their code.
Gee, if you worked for me and didn't want others to see your code I'd wonder why.
So if they submit the patches would this make Linux perfect?
moo
From the post itself: The report, set to be released on Tuesday, states that the 2.6 Linux production kernel, shipped with software from Red Hat, Novell and other major Linux software vendors, contains 985 bugs in 5.7 million lines of code, well below the industry average for commercial enterprise software See where it says: "shipped with software from Red Hat, Novell and other major Linux software vendors"
Reality is nothing but a collective hunch.
That's all nice and dandy, but maybe we should be comparing an entire Linux-based OS to Windows XP. Remember that Windows XP comes with a media player, wordpad, notepad, and many many other tools. So let's take the full Redhat Enterprise WS distro (since it's a pretty popular commercial distro) and track down all it's bugs and see if that average doesn't change. I don't think we should be comparing OS vs Kernel. It takes a lot more than a kernel to make my Linux machine go. Having said that, I would be very interested in a comparison of the Windows XP kernel to the Linux kernel.
So, this is another area where Linux is severely lacking.
I have decided to donate some of my code to bring Linux up to the standards set by commercial operating systems with regard to unexpected extra features. I have a great track record with this, and I'm sure that if my memory allocation subroutines are incorporated into the kernel, Linux will no longer languish at the bottom of the list of semi intentional value added programming decisions per thousand lines of code.
People can argue all they want - but Linux vs. OS X or Win XP for the average joe on the desktop just is NOT a reality yet. Not even close.
Counting an unknowable number of bugs in code is meaningless compared to what is exploited, in the case of security, or just plain breaks alot in the case of applications.
I suspect this metric does not take into consideration the fact that most business apps run fairly well on Windows whatever the relative number of bugs otherwise. So given that, you may have fewer bugs and less ultity in the Linux world.
On the other hand bugs are only useful as the ease of exploitation whatever the number of occurences you see. It really doesn't matter that Windows has lots of bugs, what's important is that a relatively small number of them are easy to exploit in disasterous ways. By comparison Linux and company have relatively fewer bugs, it's possible, but what's important is that they are comparatively more complex to exploit and generally wreak less havoc if they are exploited.
An API call that is partly broken is often not fixed for a few reasons: kludges and workarounds. A broken call might work in conjunction with some other functions or it might behave differently to how it is documented (it might return TRUE not FALSE as expected.
So if a programmer has foolishly used these calls or had no choice, their code will fail if the call is fixed. Therefore the solution in this instance is to create another function and deprecate the old one at some stage.
They want to make that claim, they can live with all the results.
Slightly OT, just wondering as you are reading this article and its responses, what OS are you using to read it? What apps are running in the background? This helps to add what considers to be a "typical" session that could be used to effectively evaluate the OS's in the future. For example I am (because it is there) running Win XP SP2 and surfing with Mozilla 1.7.x. Outlook running in the BG, with stuff like Google Desktop, gmail notifier, MSN Messenger, etc. running. What would be the equivalent running on *Nix? Mozilla, Thunderbird, GAIM etc.?
just a web application developer and instructor in Toronto, ON Canada
Linux on the desktop would be very dull. Without any userspace, you couldn't do much.
Or are you talking about the operating systems which use Linux as a kernel? In which case, you're offtopic.
that's why it is recommended to put only one instruction per line and a lot of comments ! The number of bugs per line of code tends to go down !
Google passes Turing test : see my journal
Did they file bug reports on those 985 items?
+1 Insightful, -1 Troll. What can I say, I'm an Insightful Troll.
i call bullsh*t to all these partisan studies! "windows better", "linux better", ... why won't this stop at least from the "good guys" and let's all have some objective analysis of the REAL cost/benefit situation instead of each side stubbornly stating how superior and infallible they are!
linux has a severe lack of a stringent development process, does little coordinated code reviews and is a big lump of monolithic code!
yet, the discovery-bugfix time is quite acceptable and with enough background knowledge the stability and performance is quite good. but why trash (implicitely) the quality of the alternatives? *BSD and solaris for example are definitely superior to GNU/linux in some areas and have an excellent track record at security, stability. why do we have to worship linux as the non-plus-ultra when in fact it simply is a respectable alternative to windows on the server?
oh, sure, windows has its problems, but at its core the once-microkernel approach is not all that bad and bad drivers will crash linux just as well as windows!
but apart from shady business practices and horrible reaction times to exploitable holes (patch day, anyone?) microsoft is actually making an effort and has some development practices in place that wouldn't be such a bad idea for the open-source community to adopt like nightly regression tests and driver certification.
i am far from saying how wonderful microsoft is as a software producer, but simply bashing them all the time (even if in self defense) won't make the open-source movement look any better!
come on! give a little respect to the *BSD guys who are actually making an effort of code reviews and an emphasis on security! and even give some credit to microsofts (recent) efforts to work towards security (even if in vain when faced with the horrid IE code base)...
open source has HUGE issues with code quality and developer trust, so we shouldn't mouth off about our superiority until we can make sure that total chaos won't break out with the next kernel release!
doing your cutting-edge development in the current "stable" kernel is just as bad as many things microsoft is doing!
jethr0
In proprietary closed code, it's impossible for an outside party to determine the number of bugs.
The best you can hope to do is to count the number of *symptoms*, but that's not the same thing as bugs. It's possible, even likely, that a single bug in the code manifests itself as 100 apparently different external symptoms.
So this comparison is apples to oranges and completely meaningless.
...have they found any SCO bugs? ;P I kid, I kid! Because I love!
-"...bad old ideas look confusingly fresh when they are packaged as technology" - Jaron Lanier (Digital Maoism on Edge.o
Here are some new vulnerabilities:
Linux kernel IGMP vulnerabilities von Paul Starzetz
Linux kernel scm_send local DoS von Paul Starzetz
Grundgesetz * 23. Mai 1949 - 30. November 2007 - http://www.vorratsdatenspeicherung.de/
Regardless of what I feel about Linux and Microsoft, this comparison is between the code base of Linux 2.6 kernel and Windows XP.
If you were to compare the code base of a complete GNU/Linux distribution with that of Windows XP, what would be the outcome then?
However, the benefits of the open source software development model are proved by the facts pertaining to the number of bugs in the Linux 2.6 kernel - 985 in 5.7 million is still well below industry average.
Any fool can talk, but it takes a wise man to listen.
#include expects "FILENAME" or . In this case, perhaps stdio.h. Which means you have a very high bugs/LoC rate.
>> Linux software vendors, contains 985 bugs in 5.7 million lines of code, well below the industry average for commercial enterprise software. Will they be sending in the bug reports so that it may get fixed? And how do they know they are bugs? Maybe some of those were meant be as such and not a bug at all.
I totally agree. When there are 1,200 media players each of which uses the OS in a slightly different way the fact that the OS is being used so many different sheds more light on bugs. Next to no one uses Linux of course not as many bugs are found. But when some random baby-boomer plugs in their digital camera and wants it to go go go, Linux would have the same problem if it had the user base.
Update: 18 hours after posting the study, the Linux kernel team had eliminated all the bugs documented in the study, forcing the researchers to correct the bug count down to 0 per 10,000 lines.
Assorted stuff I do sometimes: Lemuria.org
After sumitting appropriate patches, the total number of bugs in the 2.6 kernel has now gone down to 0, as per the official four-year count.
Come on folks, this article says absolutely nothing about competitors. they didn't also investigate windows code. someone just used estimates based on averages.
3 + X = Y
obviously x and y are only 1 and 4 respectively. yeah.
Commercial software typically has 20 to 30 bugs for every 1,000 lines of code, according to Carnegie Mellon University's CyLab Sustainable Computing Consortium
I'm going to call bullshit on this. Maybe this number is based on some rule that every variable must be asserted, everything exception checked, etc. (even if these conditions rarely or never happen).
If they're counting bugs like I count bugs - i.e., in a normal operating environment the software loses data, produces incorrect results or limits operability then there is no way that a commericially viable product can have this number of bugs.
So, I guess the next release of the kernel will contain zero bugs? If these guys found all 985 of them, then they should all get fixed. Tell me they filled out bug reports!
Charlie: 82 what? Raymond: Bugs in the Linux kernel. Charlie: There's a lot more than 82 bugs, Ray. Raymond: 985 total. Oh wait. I forgot, they didn't have rain man count the bugs. They had 5 grad students running some lame source code analysis software. It's definitely 985 bugs then...definitely...
How do you analyze 5.7 million lines of code except to run it through a static analyzer? Static analyzers can't detect most errors, which tend to be data dependent. So a company selling an uberlint donates their tool, 5 academics run it and write a paper. *Blech*
Commercial software typically has 20 to 30 bugs for every 1,000 lines of code Bull. Software with 20-30 errors per KSLOC doesn't work. (I know, I just spent a year trying to save a project that had 10 errors per KSLOC. Even at that defect density (found and fixed) it was undeliverable. Notice that the link in TFA doesn't take you to anything that supports this assertion, just to the organization's home page. I could't find anything to support these numbers.
Weasely non-comparisons: 2.6 Linux production kernel, ... contains 985 bugs in 5.7 million lines of code as opposed to Windows XP, by comparison, contains about 40 million lines of code, with new bugs found on a frequent basis.What, bug in Linux are found on an infrequent basis?
This is all hot air.
They didn't simply count the number of bugs, but the relationship between lines of code and bugs.
Also, I don't run X, KDE, Gnome, whatever on a server, that you can't use Windows without a gui (they even install a browser and a media player on a server) sure isn't Linux fault.
So perhaps a comparison between the linux kernel + apache and Windows server with this nice media player and browser would be relevant.
Linux software ... contains 985 bugs in 5.7 million lines of code
:)
I hope they submitted a patch
NO - Not fewer Features - Less trainning. I use Linux as my Desktop and I have for years. I am a Unix admin. and a Linux Desktop makes me MUCH more productive. I use Open Office and Crossover Office for Lotus Notes as a way to interface with my co-workers. This is not Linux Desktops falt. If the company would standardize on other product the few places where there are problems would go away. And the company would not having problems with viruses and malware.
There are 10 type of people in the world, those who understand binary and those who don't.
its rivals' Linux kernels.
things like typo's in dialog text, or typos in the help. Simple typos are still listed as Defects by Microsoft, and make up a fairly large portion of the 'bugs' in Windows XP.
So now we know how many bugs does Linux kernel have.
Let's remove them and we will have the first ever
system of that size without bugs.
Don't be silly!
I'd like to know what consistutes a bug.
"When I die, I want to go quietly, like my grandfather, in his sleep... not screaming, like the passengers in his car."
So if Oracle shipped with Windows, you would include Windows bugs in a count against Oracle? Sorry, but a little reading comprehension refresher seems to be in order, this is called an explanation. What is the Linux 2.6 production kernel? Linux is a kernel that shipped with software from Red Hat, Novell and other major Linux software vendors. That statement explains what the linux kernel is, not that they counted all of the bugs in all of the software included in a distro. The bug count would have been much higher if they had. Go and count the number of bugs logged against KDE, Gnome, GCC, and X to get an idea what could have been counted had they tried to make a fair comparison. A Linux distro might still have less, but personally I'd bet that the BSD's have less.
"I use a Mac because I'm just better than you are."
I don't care about the number of bugs in Linux, XP, my iPod, or my Toyota - the severity of the glitches is a bigger concern for me.
Obviously these bugs aren't causing *me* problems - so I'm gonna call 'em easter eggs.
Not sure why, but I'm abnormally happy and positive today - karma be damned.
It would be more useful to have a list of bugs per OS level, i.e., kernel level, driver level, and so on.
This compared the Linux kernel to something a lot bigger. Perhaps the core of the Windows code tested (i.e., the kernel) is a lot more bugfree than the other stuff around it?
And just because the Linux kernel is relatively bug free, it doesn't mean that anything developed by other people is as well! Maybe it is just a sign of having a high quality control level at the kernel submission stage, and that certainly won't translate to other projects.
Karma to burn, karma to burn...
The report, set to be released on Tuesday, states that the 2.6 Linux production kernel, shipped with software from Red Hat, Novell and other major Linux software vendors, contains 985 bugs in 5.7 million lines of code, well below the industry average for commercial enterprise software.
Commercial software (at this point in time) has its priority on releasing new versions often. Because each release is a salable item. Linux on the other hand gets forked or changes version whenever "Linus feels its ready". BIG DIFFERENCE. Here's why.
Commercial software decide how much value is on each bug, if the bugs are cheap (not show stoppers), but minor things they can't forsee as causing them to lose money... They will ship it. Acceptable known bugs. Project management decision.
Open source has time on their hands. They can look over the code carefully, waste time on bugs that commercial outfits wouldn't even bother... But the problem (like with software project management) is that you can't tell which bugs will be the nasties when you choose to ignore them. Less bugs == more secure software, less nasties.
If commerical software decided to play the careful release, minimize bug game... They would make less money initially, but in the end it would work out. Microsoft and ilk can certainly compete with linux, but they made a choice long ago not to. They made a choice to RELEASE FAST and MAKE MONEY FAST! (hey, that sounds like spam).
m
If this is true, how comes that any program works anyway? If I write a simulation it is of the order a few thousand lines, but I cannot afford ONE bug in there. Publishing wrong results is not something I would like to do. This of course takes a lot of time, testing and debugging. But to put 30 bugs in each 1000 lines, have it to compile and run cleanly, and then even produce results that somehow hide the obviousness of these bugs and errors must be quite difficult. Anyone an idea of what sort of "bugs" we are talking about here?
int main(void) {while(1) fork(); return 0;}
I mistook the title to mean "Linux has fewer bugs than it has rivals" ...
-- -Keith
That's amazing that we have only about 1,000 bugs in the kernel, while most commercial software would have over 100,000 bugs. Interesting to read the report.
Both are kernel's as stated by their owners. Both are written in C. Both work on the x86 architecture.
While the posters here do not want to compare apples to oranges I think that would be a wasted opportunity. Don't forget Microsoft themselves have compared Linux to them on a fairly regular basis.
It matters to you (and me) that the bug in a certain application has a more severe impact. The number of bugs / loc is however a pure statistical number that tells nothing about the impact-rating of a bug...
Slashdot: stuff for news, nerds that matter, matter for news, stuff that nerd
It also has fewer features.
"I have an odd craving to whisper about those few frightful hours in that ill-rumored and evilly shadowed seaport of dea
Quite.
My thought, too, was that some "bugs" are not evident by looking solely at the OS codebase.
That is, some bugs only manifest themselves through interaction between, say, a fuzzy incomplete API that the OS exposes to poorly written applications, or applications expecting to see the practical API from 9 years ago.
From my limited experience, it seems that those kinds of bugs are common.
I would expect Linux to have fewer of those kinds of bugs for a couple of reasons:
"Provided by the management for your protection."
It would have been really nice to see some more specific numbers for XP. Without the MS specicic numbers to compare against, I can easily see this article being cannibalised by some marketing droid for juicy, anti-Linux quotes. Think about how a movie studio will crib a single, positive sounding word from a horrible movie review to use as an advertising blurb:
becomes
Given to the right marketeer, this article could just as easily be re-titled/re-packaged by Microsoft as:
I'm not tense. I'm just terribly, terribly, alert.
Water is wet.
Fire is hot.
as if this comes as a shock to anyone here. sigh
"Obvious Day" on Slashdot again ?
What do they classify as a "bug"??
There was a story a while back about the same exact thing, but unlike this incomplete and vaigue article, it mentioned that a lot of the bugs aren't actually bugs, but "warnings." (Maybe as simple as a dangling pointer... but if you're doing anything useful with pointers, they'll dangle at least for 1 line of code.)
You might have 100% bug free code, but their test might think there are 500 bugs in it, simply because an issue that would appear to be isn't because of a check or such beforehand. (but, I guess that's how buffer overflow exploits happen).
Another note: this still does not derive some explanation for bugs. If I have a 20-line program with two bugs, can I extrapolate that software will have one bug per every ten lines? Also, remember that Microsoft has many source licensing and backward compatibility issues. They have bugs that exist simply because they improve beyond the capabilities of older software. I don't mean to come off as a Microsoftee, but this is just a slam Microsoft article, and for once it is unfounded.
Click here or here.
How many library of congresses could these bugs fill?
The article claims that "...the Linux kernel programming code is better and more secure than the programming code of most proprietary software..."
Of course it is.
Most proprietary software are user-level apps where a bug here or a bug there isn't critical. The economic loss that can be atributed to a bug in MS Word's bullet-point-algorithm isn't as great as a datacenter going down due a Oops in the linux-box running the SQL-database. To put it simply: there are different requirements for different tasks. A comparison between the quality of WinXP's GUI and GNOME for example would have been much more interesting.
I don't understand how this story could make slashdot's frontpage.
The report, set to be released on Tuesday, states that the 2.6 Linux production kernel, shipped with software from Red Hat, Novell and other major Linux software vendors :)
I just ran up2date and got the latest... 2.4.21-20.0.1.EL
I guess they were back-porting a bugfix
This just in: Microsoft has purchased Stanford University. These rogue researchers have been fired and put in jail on nebulous theft charges. Stanford University announces that Windows is better than Linux according to its research.
My other computer is a Jacquard loom.
were to get the winmodem drivers working...
When I walked with dinosaurs (ok, IBM mainframes) as a sysprog, there was a utility program named IEFBR14.
The purpose of IEFBR14 was to do exactly nothing, and pass a zero return code to the caller after doing the 'nothing' (branching on the return address in register 14 - thus BR 14).
This was actually more useful than it sounds and was used frequently in MVS JCL (Job Control Language) to make JCL do its thing without having to run a real program in a JCL 'step'.
Thing is, this program that had to do precisely nothing, had no less than 3 patches issued from IBM. Mostly to do with not clearing R15 (the return code register) correctly.
Go figure!
:(){echo "hello world"|:&};:
It would be cool if it didn't suck.
Seriously folks, this article sounds at first like "Go Open Source!!", but instead of cheering for it, you guys/girls* point out how it's not really comparing apples to apples. Would Microsoft ever come out and say, "No, actually that study that says that MS is better really doesn't address the real issues"?
/.
I guess the fact that not many open-source developers rely on that development for their livelihood, so they're more likely to go for truth over hype.
It somehow restores my faith in humanity.
*I realize that girls don't use
Wer mit Ungeheuern kämpft, mag zusehn, dass er nicht dabei zum Ungeheuer wird. --Nietzsche
Windows XP is an operating system. The 2.6 kernel is a kernel. A more fair comparison would be the RHEL or Suse distro versus XP.
"I'd rather be a lightning rod than a seismometer." -Ken Kesey
I thought it was OpenBSD
Microsoft has chosen to include as much stuff in their OS as they have. No one said, for example, that they had to integrate the kernel and the GUI, or the web browser, etc.
That said, the article specifically refers to the number of bugs per lines of code, so this is accounted-for.
Kythe
Okay, here are some non-facts:
o Well to be sure the "facts" are rather hard to come by. Microsoft is loath to part with any of its software for someone to check into it. So much of this HAS to be guesswork.
o 20-30 bugs per 1000 lines is about right (for what I was taught). My compsci class posed about 1 bug for every 50 lines. Reasoning is that if code goes beyond 1 page (printed page), it breaks up the users thought. I have yet to see anything that sez "no, no, it's not true!!!".
o As for the definition of a bug, that is a tricky question. You know what it is and I know what it is, but much like art, we only define it by seeing it. The argument that "it is behaviour that was not designed as part of the program" is such a weak definition as to be laughable (yup, I've heard that one).
o Reporters main goal is to hit the 12th grade reading level. Anything beyond goes over the readers head.
Now you know why heads of business are such morons.
IANAL, but I've seen actors play them on TV
Once a very wise CS prof of mine asked us to examine the phrase "We have no undiscovered bugs in our software". Which, as it's written, is true. Truly, a piece of software has no undiscovered bugs. Take that in mind when you read this article. To say that a piece of software has "less bugs" than some other is a very tricky and bold statement to make, as a bug isn't a bug until it's DISCOVERED.
I reckon there is an exponential drop off for bug discovery in large code bases; as well as measure of bugs-per-lines-of-code for project types.
I reckon that combining these figures over time will give you an estimated number-of-bugs-yet-to-be-found along with the number of hours it will take to find the first certain-proportion of them.
(And being exponential it will that just as long to find the next certain-proportion of whats left.)
I'm guessing all of this, but it seems reasonable to be able to predict bugs left in a large project.
Sam
blog.sam.liddicott.com
There's also the question of defining a bug. Sometimes, one person's feature is another person's bug. Take allowing scripts in email, like Outlook Express used to do. (May still do, for all I know.)
"Who controls the past controls the future. Who controls the present controls the past." -- George Orwell
For most proprietary software, the source is not available. So when contemplating this study the authors should have realized that it couldn't possibly be valid and decided to go do something else. The fact that they went ahead anyway, is a strong indication of their lack of dedication to scientific principles.
There is actually a technique to accurately estimate the number of total bugs in a closed-source product. This uses the "theory of unknown numbers".
It requires accurate tracking of two things: bugs reported by the users, and bugs found and fixed by the development
Scenario 1: for every 10 bugs found and fixed during testing, there are 2 more new bugs reported by the outside world.
Now, after testing a release extensively, we find 1000 bugs. We now now that the total number is approx. 1200.
Scenario 1: for every 2 bugs found and fixed, there are 10 more new bugs reported.
After testing we have 1000 bugs. We now know that the true number is closer to 5000 bugs.
This is an accurate tool and we've used it in several projects to predict future support costs. Your mileage may vary, of course. And you definitely want to be in scenario 1, not 2.
Sig for sale or rent. One previous user. Inquire within.
100% of this article is 100% useless.
Great, so the Linux KERNEL is in great shape. That really is good news. However, take one look at Secunia's security bulletins for actual Linux software and you'll see just how secure the Linux platform really is. "Oh, but most open-source stuff is patched!" you'll cry. Well, so are the majority of the most severe security-related commercial software bugs. The whole "Carnegie Mellon predicts this bullshit" is bullshit. No explanation needed because if you can't figure out why this is bullshit, your skull must be filled with bullshit. Congratulations researchers! Yet more bullshit for the sake of rhetoric!
You are only as much as what you do with what you know.
Commercial software typically has 20 to 30 bugs for every 1,000 lines of code
What software? When? The average for OS Kernels? Not hardly.
"We reject as false the choice between our safety and our ideals." --The American President (20.1.2009)
and skip everything that was marked with the universal "this is not a bug" notation:
Maybe they should go back and count again.
This space intentionally left blank
Although a pretty good study of the Linux code can be made since itis readily available, they obviously didn't find ALL the bugs. Lumping all commercial code into the statement of: "Commercial software typically has 20 to 30 bugs for every 1,000 linesof code, according to Carnegie Mellon University's CyLab SustainableComputing Consortium." casts a very wide net.
The key word is 'typically'. Obviously Microsoft's code falls well short of the commercial bug average because of their more stringent and advanced build methods and the personnel they hire. (Outlook/Internet Explorer and Ballmer excepted). They can say that the Linux bug rate is low when compared to the overall average. Okay...fine. To then imply that the Linux bug rate is lower than Microsoft's is nothing short of disingenuous. It might be more accurate to imply that the study of the Linux code lends credence to modular code and programming methods, proper source code control, and that many eyes searching the code are better than few.
> The report, set to be released on Tuesday,
The result of a four year study by 5 researchers is probably much more dense than a few hazardous assumptions. The result of their work is supposed to come next week, let's see then.
No - according to the C and C++ standards, main must return an int.
See the C FAQ
If someone can confidently say Linux has 985 bugs, and ONLY 985 bugs, and point them all out, then one would think in short order Linux would have 0 bugs, since they'd all get fixed.
The whole thing kind of strikes me as people talking out of their ass.
While I'd like this news to be true, I have to be very suspicious because any time someone claims to have successfully tallied all the bugs in a program, that person is lying.
Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.
But I thought IE was easily removed?
When bitching about software bugs, Slashdotters complain that IE is too integrated. When bitching about Microsoft tactics, they complain that IE isn't really integrated and can be easily removed by utility programs, and it was all a lie at the antitrust trial.
Meanwhile, this is one of the silliest, most biased, most one-sided articles Slashdot has posted. Wow, 40 million lines of code has more bugs than 5 million? An entire operating system, desktop environment, shell, and included programs has more bugs than a simple kernel? WOW!
- 100 were security holes,
and 33 of the bugs could result in less-than-optimal system performance.Clearly Sun's Solaris does better in security and reliability in the kernel and the reason commercial UNIX's are still viable. Linux is good but Solaris 10 is just in another league.
Is comparing the Linux kernel to the Windows OS as a whole. The Linux kernel by itself is essentially worthless as an OS. You at the very least have to add drivers, a shell, and some basic programs and services. In reality to have a workable desktop OS you need X, a good WM, and a ton of programs on top of that.
Now I can see maybe comparing the kernel mode code. Windows throws a lot of stuff in the kernel, much of which UNIX types disagree with. Basically the whole graphics subsystem, including rendering engine, is all kernle mode. Microsoft decided that the speed increase was worth it and it didn't matter since if it goes down, the system halts anyhow since Windows doesn't drop to shell. UNIX is different, if X crashes, big deal, you now have a console and you restart X.
However even with kmode comparisions it gets hairy. I mean what is really necessiary and proper there? Talk to a hard core microkernel fan of soemthing like QNX and they'll say NOTHING excpet the kernel, not even drivers. Linux put a LOT in kernel space as compared to some OSes.
Is anyone else bothered by the idea that an article entitled "Linux Has Fewer Bugs Than Rivals" is posted that compares 5 million lines of code that make up just a kernel to 40 million lines of code that make up a kernel, an operating system, a desktop, its integrated components, and its included applications? 40 million lines has more bugs than 5 million? Who'd have thunk it?
Why does "Linux is just a kernel" suddenly not apply here? Is it because we're bashing Microsoft? This is kind of lame and makes the community look silly and vitriolic.
What precisely is a bug, and is the same definition used when comparing the Linux Kernel to MS-Windows?
Unless the treated the Linux kernel as a black box, the answer to the 2nd question is "of course not," rendering the comparison much less useful.
There are many ways to "count" bugs.
You can count symptoms.
You can count symptoms that result in behavior that is worse than some BADBEHAVIORLEVEL (i.e. ignore inconsequential mis-behavior).
You can scour the source code looking for code that LOOKS like it doesn't match the DESIGN (or what you think the design would be if there is no explicit design).
You can scour the source code looking for both implimentation errors AND broken-when-written or ok-when-written-but-broken-in-today's-environment designs. But this begs the question "if it's a broken design, is that one bug, one bug for every affected module, one bug for every affected line, or one bug for every unique symptom?". Microsoft code is full of "arguably-ok-when-written-but- broken-in-today's-malware-environment" code.
When it comes to implimentation bugs, do you count bugs in unreachable code?
I'm sure every programmer can add his own two cents to the "what is a bug, really" discussion.
Knowledge is how to play a game, intelligence is how to win, wisdom is knowing what game to play.
And yet, Linux has more security advisories than Windows each month.
I'd like to see a serious discussion of the methods and funding sources in this study. You know, the same kind of discussions that appear whenever a Microsoft study is posted. Mysteriously, that critical thinking is absent in articles like this.
40 million lines of code != 5 million lines of code. If Microsoft attempted such a skewed study, I can already picture the kinds of posts people would be writing, asking about methods, funding, and more. Those posts aren't appearing in this article. Why? Well, that's because this isn't about the quest for finding out which operating system actually has less bugs (sorry, I forgot, "Linux is just a kernel!"...funny how that oft-uttered phrase is missing in the article discussion), this is nothing more than a Microsoft-bash article intended to generate Microsoft-bashing replies.
OSTG, the corporation that owns Slashdot, makes money off of OSS products. It's rather convenient that they run a "tech news" site that just so happens to post news stories that are all critical of their competitors, isn't it? Imagine if Microsoft owned a tech news site that posted nothing but anti-Linux articles? You guys would be all over it, but your biases against Microsoft make you have a double-standard. So you ignore that Slashdot is a corporate-owned website with a major bias and an editorial staff that can barely read and write correctly, much less bother to read their own website.
[sings]
These are the Daves I know, I know. These are the Dave's I know...
[/sings]
"Apparently so, but suppose you throw a coin enough times. Suppose one day, it lands on its edge."
In Python it would be :
print "Hello World!"
We NEVER compile code without using -Wall and -pedantic!
dylang@shadowgate:~/.tmp$ gcc -Wall -pedantic -c foo.c
foo.c: In function `main':
foo.c:6: warning: `return' with no value, in function returning non-void
foo.c:8: warning: control reaches end of non-void function
It compiles, but you are TOLD about your mistakes!
--
Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
While this may seem like some random posting to Slashdot, those folks from Stanford have been active on the LKML plenty of times, asking about conditions their tools have found, and whether they are bugs or not.
;)
They've directly led to many of those bugs or design choices being discussed and changed, for the better in every case. I wouldn't belittle such work easily, because they have (in their way) contributed a lot to everyone's favourite OS
--
Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.
Although not as pure Unix - it is definitely a more stable solution than SCO.
Althought not as stable - it is definitely more powerful than QNX.
Although not as powerful - it is definitely more user-friendly than Solaris.
Although not as user-friendly - it is definitely more secure than Mac OS.
Although not as secure - it is definitely more widely known than FreeBSD.
Althought not as widely known - it is definitely a cheaper choice than Microsoft Servers.
Linux is winning popularity for the same reason Microsoft Windows won 20 years ago
- it is suddenly becoming very accessible to businesses at large.
Coverity is a start-up formed from the group at Stanford who developed the Stanford Checker. The Stanford Checker is a static analysis tool (quite primative actually as far as the state-of-the-art is concerned) who's main claim to fame was the number of bugs it found in the Linux kernel.
What they're probably claiming is that their tool found less bugs in Linux than in most commericial software. I buy this. The tool finds a lot of bugs that aren't necessarily easy to exploit or things that are really just not best practices.
Open source software tends to get highly critiqued (at least, the popular projects). It often becomes a programmer pissing-contest to see who can come up with problems in someone elses code. Commericial software, on the other hand, tends to just be whatever gets the job done.
This doesn't answer the most important question though: Which method is more succeptiable to attack? The question is very hard to answer.
I have to agree on your bug definition question. The install base of Windows is so wide and the hardware so varied, many of the so called bugs are simply hardware and software errors caused by the users themselves.
The other problem, related to above, is that new hardware comes to th market and everyone expects that the previously written software should support it without a flaw.
And, furthermore, many people seem to consider a feature that is not there, i.e. no right click menu on an item, a bug. If that is the case, then Linux is loaded so full of bugs that you can see the software through the mass of bugs. There is so much that is not supported or is simply not there that I can't do half of the things I set out to with my Linux installations. Don't get me wrong, I like Linux and use it where it is suitable. I don't use it where it is not suitable and scream 'bugs!'
This seems to completely miss the point of why it is smart to use Linux now.
1. Linux is "Good Enough" now. Maybe it is better than windows, maybe it is worse, but unless you are a dope, Linux can do what you want it to.
2. Linux improves every day. Most distro's have a twice a year release cycle, with noticable improvements each release. So long as the improvement is non-trivial this leads to #3,
3. Linux will be the best eventually, and by an ever widening margin. Open source is the future of software. Switching to linux now means that you won't have to 'upgrade' to it later, and you can contribute to it by finding those bugs now.
(4. Stop being an asshat and install Linux.)
How many bugs are there in the NT micro kernel? Not so many, I'd warrant. Comparing the entire win32 api and the XP GUI to the linux kernel doesn't make any sense at all. Granted, it's not really possible for the average person to separate the two, but in order to get the closest comparison, you'd need to compare Windows XP To Linux + Gnome or Linux + KDE, or something along those lines. I believe the number of bugs in KDE or Gnome easily exceeds the bugs in Windows XP, although I can only prove it anecdotally.
I'm excluding Internet Explorer from this, which I refuse to use, but if I were to include it, I'd have to compare it to Mozilla, which also has a huge number of bugs. Also, are security vulnerabilities considered bugs, or not? I'll admit upfront I haven't RTFA, but the summary seems to indicate a comparison of apples to oranges.
-Dan
give me that time machine, so I can run 2.8 right now !!!!
The study hasn't been released yet. Once it has, we can check for ourselves what their methodology was, what their definition of "bug" was, etc. Then, and only then, can we discuss whether the study has merit or not. Until then, there is no reason to flame either way.
yay for ambiguously worded headlines!
Next time it will be 3.0.. ehm.. right Linus?
now please submit all bug reports to bugzilla ;)
I get so tired of the FUD by the linux crowd. Yes, anybody can lie with numbers.
Yes oh great linux people, you must take over the earth and subject us to your rule. Yes, comrade, everything else is inferior and our only allowable choice is Linux. You know what's best for the people, so that's what the people will get.
I don't even have a linux box anymore. I got so tired of the we must conquer the world shit that it's over.
Great, that's the obvious bugs they could find. The insidious ones are the logical errors, timing problems, or bizarre interactions of code. Those are the ones that you often spend years scratching your head over infrequent, seemingly random (yet oddly related) failures until one day you happen to be looking through code and find something screwy, or you happen to have the debugger on at the right time. Then there's the ones that hide for years, and suddenly pop up when something innocent changes in a completely different section.
I'm a legacy code maintainer among other things, and that's my personal hell.
It made the front page because its interesting and sparks debate, they didnt dump it in the trash just because you happened to disagree.
/pro
Slashdot is not just a blog for the latest software releases, if you only want that kind of news, try freshmeat.
Only 114,000 bugs... wonderful.
Microsoft has an insanely high in-house QA to developer ratio (it's over 50% I believe). That alone could account for a large discrepancy in the number of bugs found.
Umm... I don't think microsoft gave up their source code to be analyzed... so I'm not exactly sure HOW this study could compare invisible code to public code. What did they do use their powers of intuition to estimate Window's bug count?
They provide specific Linux kernel numbers for the 5.7 million lines of kernel code.
Then they reference 20 million lines of code for Windows. Is that all kernel? Microkernal+HAL? Entire OS? No specific number of bugs listed.
Then they reference "commercial software" bug rates per 100,000 lines of code as if a bug in my rss reader app is as important as a bug in the kernel. They no effort to state which types of code deserve higher qa and which do not.
All in all a non-story.
I'd like to note that although /. is aggressively pro-Linux and anti-M$, and despite this pro-Linux propaganda, the /. community has remained largely objective to this study.
I guess coding discipline trumps O/S bias and politics.
https://www.accountkiller.com/removal-requested
What is the current status of the Standford Checker. Last time I talked with them they were going to try it on X but that was before the X-Open split.
http://shit.slashdot.org/article.pl?sid=04/12/14/1 340237
I am in the midst of finals week and one of my classes is on computational theory and time complexity.
This post goes againt all that I just learned. Obviously these 5 students did not read over all 5.7 million lines of c code. Doing so would take a copious amount of time. Even if they did go over every single line, what makes you think that *they* found all the bugs that dozens of other developers missed??
Obviously some sort of code analyser was used here. And it is not possible to write a program that analyses other arbitrary programs to determine some non trivial property. So, if you cant tell how a program reacts on every possible input, you cannot find all the bugs.
This is a textbook NP-Complete problem. There are innumerable proofs on it. If these 5 Stanford researchers have found a way to take an arbitrary large code sample and give you a number representing the amount of bugs in it, they would be instant billionaires.
(Not to mention having implicitly solved every other non-polynomial decidable problem!)
There are 10 types of people in the world. Those who understand binary and those who do not.
This doesn't mean that the kernel has only 985 bugs, it means that the Stanford guys found 985 bugs using their particular tools (which scan for certain types of bugs). That's a big difference. Remember Dijkstra's law: testing can show the presence of bugs, but never their absence.
985 bugs is an absurdly low figure for a software system of any respectable size (except, maybe, life-critical systems). Hell, just looking at a handful of changelogs for Linux kernel releases gives you more bugs than that.
then it doesn't matter if they've found all the bugs. It's reasonable to assume that they found roughly the same percentage of bugs as they did in any other code they analyzed. But I agree. Phrasing it that way is misleading.
Please stop stalking me, bro.
Windows does appear in TFA:
"Windows XP, by comparison, contains about 40 million lines of code, with new bugs found on a frequent basis."
They don't, however, actually say anything about Windows though. And even though they say "by comparison," it's not an actual relevant comparison.
Please stop stalking me, bro.
Sure, the Linux core may have fewer bugs but what about all the additional packages included with each distro?
The advisories are amalgamated at LinuxSecurity.
"fewer bugs than rivals"
;)
I don't know if I agree. Linux has a handful of rivals (NetBSD, Solaris, Windows... ) but the number of bugs in Linux probably numbers in the tens or hundreds.
Of the 985 bugs identified, 627 were in critical parts of the kernel. Another 569 could cause a system crash...
627 and another 569 is 1196, which is already more than 985.
Ask me if I've been required to disclose any crypto keys.
Sure the kernel is less buggy than anything else, but I've found that most of my linux applications crash WAY more often than any of my windows software.
If these people were smart enough to know where the bugs were, why waste 4 years of time just to prove that "Linux is less buggy than Windows" It seems to me that they could have put these four years to better use FIXING the bugs as well as finding them, or just writing new code, or SOMETHING.
I have this really funny quote that I like to put here. Unfortunately, there's this really annoying thing called a char
but if all commercial software contains 30 bugs every 1000 lines, does their analysing tool also contain these amount of bugs? they could have debuged it with their own program, ofcourse that first version checking itself would have had bugs of its own that it would not detect because of the bugs. so how do we know that the result is not bugged? this is too complicated and unreliable!
:P
also, since their software is commercial does that mean that the linux kernel has less bugs then their own software?
On a long enough timeline, the survival rate for everyone drops to zero.
That's only compared to WindowsXP.
How about comparing it with MacOS/X, FreeBSD and others?
bash$
It's a real shame that such new was published the same day than
Isec's Two vulnerabilities that were published today.
It makes one think "It's not that good"
It was recently discovered that Microsoft attempted to patent software bugs, in an attempt to force all other buggy software off the market.
Ballmer was stated saying, "Microsoft has been the first and lead developer of Operating System Bugs since the early 90s. We feel it's about time."
"breaking news: power sauce is great!"
compare that with:
"breaking news: linux has fewer bugs!"
From the ACM paper "bugs as deviant behavior", we find
"We demonstrate that the approach works well on complex, real code by using it to find hundreds of errors in the Linux and OpenBSD operating systems. Many of our bugs have resulted in kernel patches."
This paper appeared in 2001 and represents the work of several researchers, some of whom were PhD students in CS. Some of them went on to form a private company (Coverity ) which plans to offer (for pay, of course) the use of their software to companies. It would be possible for Sun to use this software to look for errors in Solaris. However, the fact that the source codes for Linux and BSD were freely available allowed these researchers to test their prototype code and to submit bug reports years before Sun or MS had the option of using the tools developed by this group. Who knows what other groups of CS students or faculty are doing the same type of exercise right now; they may develop tools which will help private companies someday while using OSS to test their code now. (By the way, you might ask why such a group might help OSS projects. The answer is illustrated in the quote above; this company can already claim credit for finding bugs for which kernel patches have been released. You cannot buy better PR than this.)
Commercial software has 115 to 174 times as many bugs as Linux 2.6 on a percentage basis. So that means they have to work that many times as hard spreading FUD that Linux isn't ready for the enterprise.
It'd be much easier to count the bug reports that apply to a given version of each OS, and divide by the published line count...
I mod down anyone who says "I will be modded down for this", regardless of the rest of their comment
I am very suspicious of this story, although I'm inclined to qualitatively believe it and I certainly think MS makes crappy software. But, what constitutes a bug, and how were they able to find them? How do they know they didn't miss any? And if they don't know that, then how do they know their numbers are accurate? Sounds like a case of the facts flowing from a theory to me.
Currently hooked on AMP
They apparently spent four years on this, but only produced numbers for the very latest version of the Linux kernel?
Why not compare it to older versions, from 2.1 to 2.6-test? Why didn't they even mention if the number of bugs has been falling or rising with that? Presumably it'd be lower in 2.4.21 than the latest 2.6.x considering that 2.6.x has suddenly become more or less a development kernel for the time being, but they don't seem to've substantiated that at all.
But even so, all of that aside, what did they compare it against that wasn't Linux? They seem to've just used guesstimation numbers. They didn't use Windows source code to check against. They didn't check against other Open Source projects. If they spent years of time on this, wouldn't it have been interesting for them to compare against the *BSDs, or even FreeDOS?
If it were really, actually, a study, there should've been a lot of competing and baseline data to compare against. Otherwise, it just seems like a thinly veiled 'PR spin' attempt to get more people on the fence to use Linux.
"A Goddess rarely smiles for she is forced by others to be an island unto herself." - Zephiris
http://www.securityfocus.com/bid/11864/info/, along with the other 59 other Linux Kernel security vulnerabilities reported this year seem to indicate otherwise. Check out http://www.securityfocus.com/ and choose Linux as the vendor.
These results are ONLY because Linux does not have a SQA department. The software is released to an unsuspecting public with the unwritten assumption that THEY will do all the testing. Since most users would rather use than test, fewer bugs get reported than in commercial software where there are entire teams of professionals looking for bugs.
A commercial product I worked on last year required nine months of testing for an UPDATE release. On the other hand, your typical Linux release gets zero hours and zero minutes of non-developer testing before it gets released upon the public. And from what I can tell of the commercial distros, very little additional testing is done before being sent to the end user.
Frankly, it's amazing it isn't a complete pile of festering bits.
Don't blame me, I didn't vote for either of them!
Can you say "propaganda"?
It matters because it is false to assume that bugs found is a representative percentage of bugs existing. If bugs of type A are more common in one system, and bugs of type B are more common in the other, and your test tends to find a larger percentage of the type A bugs than the type B bugs, then you get an incorrect skewed result when comparing the two.
Don't label something "offtopic" unless you know the topic well enough to tell what's on topic.
You are talking about the linux kernel vs the entire code base for windows XP. Gee I wonder why there are so many more lines of code. I don't think we can get just the kernel for windows. Anyway lets compare apples to apples. Take the complete CD set for for linux lets say RH enterprise server vs windows 2003 server.
RH you get 101 security advisories in 1 year. http://secunia.com/product/2535/
With windows 2003 you get 36 in 1 year. http://secunia.com/product/1173/
OK so lets get back to the kernel of linux and security advisories. They have noted in 1 year 27 exploits. http://secunia.com/product/2719/
hmm Honest numbers and it looks like windows is kicking butt.
Imagine if Microsoft owned a tech news site that posted nothing but anti-Linux articles?
Ever heard of msn.com?
http://security.msn.com/
From the manpage:
-pedantic
Issue all the warnings demanded by strict ISO C and ISO C++; reject all programs that use forbidden extensions, and some other programs that do not follow ISO C and ISO C++. For ISO C, follows the version of the ISO C standard specified by any -std option used.
-- That seems to be exactly what I described it as doing.
Now, you choosing to make standards un-conformance into a warning rather than an error is something else. (Old) C defines the default return type to be int, but C++ has it as undefined. Forcing it to a warning is not the way to solve that problem; you should've fixed the code, which is why g++ defaults to making the type checking as errors, instead of warnings.
--
Internet Explorer (n): Another bug -- that is, a feature that can't be turned off -- in Windows.