Are All Bugs Shallow? Questioning Linus's Law 596
root777 writes to point out a provocative blog piece by a Microsoft program manager, questioning one of the almost unquestioned tenets of open source development: that given enough eyeballs, all bugs are shallow. Are they? Shawn Hernan looks at DARPA's Sardonix experiment and the Coverity static-analysis bug discovery program in open source projects to conclude that perhaps not enough eyeballs are in evidence. Is he wrong? Why? "Most members of the periphery [those outside the core developer group] do not have the necessary debugging skills ... the vast numbers of 'eyeballs' apparently do not exist. ... [C]ode review is hardly all that makes software more secure. Getting software right is very, very difficult. ... Code review alone is not sufficient. Testing is not sufficient. Tools are not sufficient. Features are not sufficient. None of the things we do in isolation are sufficient. To get software truly correct, especially to get it secure, you have to address all phases of the software development lifecycle, and integrate security into the day-to-day activities."
more shallow than Windows (Score:3, Insightful)
They become a lot shallower when you can look at the source code.
Yeah, right.... (Score:5, Insightful)
What do they say?
PEBCEK is the issue... (Score:4, Insightful)
Until you get your code into the hands of users who - for example - will repeatedly hit the ENTER key wile waiting for a response, you don't have a clue what might happen.
Disagree (Score:1, Insightful)
Ok, you win. Most open source software hasn't been reviewed very much. Some open source software has security holes, and should not be trusted.
But, all proprietary software should not be trusted, at all. Proprietary software, by definition, has not been reviewed by anyone who hasn't entered into an agreement with the seller. The risk of accidental holes may be less, but the risk of intentional back doors is much higher.
Choose freedom, not some $attribute (Score:5, Insightful)
Comment removed (Score:5, Insightful)
Re:Bugs are an error in the... (Score:1, Insightful)
Re:Bugs are an error in the... (Score:5, Insightful)
To get software truly correct... (Score:5, Insightful)
Since when does MS have the right to say "To get software truly correct..."? They KNOW how to make software secure?
Most Difficult Bug for Me (Score:3, Insightful)
One of my most difficult bugs was fixed by simply rescheduling the time a datamining job was to run (which was integrated in to a massive ERP system with other major components of which i had no insight). It took at least 24 hours to test everytime i created a new build. Essentially it was a scheduling ordering issue, where pre-processing of other processes wasn't done in time.. It took me a month to figure this one out. Some times the bugs are outside of the scope of your own system, and the bug will probably re-arise as data grows. I've also had some difficult threading issues where a wait is never notified caused by bad error handling, which was fixed by simply renaming a file (after 1 month of multi threaded debugging with the final session taking 3 days for one execution).
Code fixes (Score:5, Insightful)
That's kinda funny.
I spent part of today working around problems with a closed source application.
The other part of the day has been working with an open source program, where I've already solved the problem, and am documenting my changes to pass back to the author for the next release.
I'm not a "core" developer for any public projects. I've never submitted a bug fix to someone like Microsoft (but have sent bug complaints that went unanswered). I have sent quite a few bug fixes for open source applications, most of which were used in future release. I'm just another guy, or as indicated, another pair of eyes.
Re:Bugs are an error in the... (Score:3, Insightful)
What process error is that other than human error? There's almost no way to ensure that human error will ever occur regardless of what type of process is being used. You can argue that proper testing should catch the bug, but not all software has the luxury of complete testing, and once again its possible that due to human error a test case is left out. I suppose that you could require the software use a formal methods to get around that, but at that point time and cost are going to become a large issue.
You can't stomp out all of the bugs during development, especially if you have some non-trivial system. One of the major benefits of open source is that third parties can and do spot bugs of this nature and can correct them or notify the developers. It's a recognition of the fact that developers aren't perfect and neither is their code.
Re:Bugs are an error in the... (Score:5, Insightful)
There is a problem of deflection on another level. Most of Microsoft's problems when it comes
to security are design issues. Creating and then enforcing standards and policies with respect
to source code and development process is not going to help if the whole thing is broken as
designed. You will end up with a very consistent turd that looks good on paper.
Buffer overruns and such are not the most serious problem.
Re:Choose freedom, not some $attribute (Score:5, Insightful)
Re:more shallow than Windows (Score:1, Insightful)
Just saying.... ;-p
Re:PEBCEK is the issue... (Score:3, Insightful)
I don't know that one could always consider user error as a "bug" in the software.
Given the potential variety of human experience and the ways in which software can be misused or abused, it's likely there is no way to make any piece of software "user proof", as you point out. ;)
SB
He's partly right. (Score:4, Insightful)
...though perhaps not in the way he intends.
Look, software is *hard*. Building an OS kernel is like assembling a thousand watch movements by hand. You're going to screw up. It's not a matter of "if". There Are Always Mistakes.
Now, when he says "truly correct", I'm assuming he doesn't mean formal proving. That would be absurd, especially for an operating system as complex as Windows or Linux (or really anything with limited resources). Anything short of the formal proof and you just have empirical evidence that it works - but if there's a billion branches and trillions of code paths, nobody will hit all of them with all data.
Fact is, stuff is going to break. You can't prevent it.
So if we can't keep code from breaking - if all significant code is buggy - what's the answer? Well, with open-source code you can find a bug in your application and debug through the kernel itself, finding out why your syscall isn't returning the right information, and fix it yourself. Then everybody benefits from your work - keep in mind, you only did it (or needed to) because your application exposed a flaw. If you're using Linux 1.8 for some unholy reason, well you can fix it anyway (just nobody else will care).
But if you're using Windows, and you get bad return data from a method, your best shot is probably going to be to just coerce the data how you want it. This happens *all the time* in closed-source software - handle a buggy OS method with a special case.
So "many eyeballs" is correct, but not because there are thousands of expert code analysts poring over every git commit. It's correct because any piddly little application developer can debug the kernel itself, following his own method calls around to make sure they do the right thing. Even if he doesn't know how to fix it, he'll be able to say "doThis(*myData) isn't returning the right value" and lead the experts (writers/kernel hackers) straight to a fix.
This is the strength of open source, at least from a code quality standpoint.
never mentions design or economics (Score:5, Insightful)
The funny thing about this article is that he essentially never mentions (a) design flaws or (b) perverse economic incentives to sell defective software. IMO these are probably the two biggest reason why MS has such a terrible reputation on security.
As an example of a design flaw, there are lots and lots of things that MS designed for ease of use, while ignoring security. MS software is way too willing to execute code in an email or on a web page just because they wanted to do something flashy without putting any responsibility on the user to know what the heck was going on. This is a design flaw. No amount of debugging will ever fully succeed in working around it.
The economic incentives to ship buggy, insecure software are also huge. Companies gather revenue by putting out a new version of the software with a long list of features. Users who buy the new version of the software generally have no way of knowing that it's full of bugs. MS is of course infamous for this.
Of course the implication of the whole article is that MS pays people to fix bugs, while nothing like that is going on in the open source world. This is complete nonsense. Most well known open-source projects are written by paid coders. But let's not let facts get in the way of MS advertising.
I don't think he understands the argument (Score:5, Insightful)
From the article:
One cannot deny the logic. In fact, it is a tautology. If you assume that all individuals have a non-zero probability of finding and fixing a bug, then all you need is "enough" individuals.
Emphasis added by me to show where I think his argument goes off the rails. "Linus' law" does not assumed that each eyeball is a bug fixer--it simply states that bugs are made shallow. Often the hardest part of fixing a bug is knowing about it, and finding it. The open source process makes it easier to do both, even if there are only a small group of coders actually fixing things.
This is not about how many software engineers you have reviewing your code. It's about how your end users can interact with the software engineers.
Re:PEBCEK is the issue... (Score:4, Insightful)
That's simply not true. Proper, bug-free code should fail gracefully in the event of odd user behavior. It may be that random mashing of the keyboard will give the user some unexpected results but it should never cause the program to go into a state that it was not designed to go into, such as trying to access 0x00000000.
Re:Bugs are an error in the... (Score:5, Insightful)
I think that in Microsoft's case in particular, all the exploits out there prove the opposite of his case.
I'm not a MS dev or even anyone important, just a small business owner who fixes infected Windows machines (it's better than 3/4 of the work I do, sadly) so it seems to me that security wise at least he is way off base - the many more eyes that are looking at MS Windows without even having access to the code base are doing a pretty damned good job of finding security bugs in it.
SB
Don't use a burning broom on a strawman (Score:4, Insightful)
Ladies and gentleman, the article author is making a strawman argument. By transforming the "Linus' Law" into a badly written syllogism, and pointing out examples where _his invented syllogism_ fails, he's implying that closed source is _better_. Unfortunately, the vulnerabilities of closed source are often worse, by comparison and from experience.
Classic absolutist fallacy (Score:3, Insightful)
Re:more shallow than Windows (Score:3, Insightful)
So, given that Microsoft gave the source code to the Chinese government, and that there are a lot of Chinese... perhaps Microsoft products are also subject to the "more eyes" rule....
Just saying.... ;-p
Yes, but thanks to proprietary software, none of those bugs will be fixed, only found and exploited.
Re:Bugs are an error in the... (Score:5, Insightful)
Re:Bugs are an error in the... (Score:3, Insightful)
Did anyone ever believe it in the first place? (Score:2, Insightful)
I'm all for open source software. I could give you a dozen reasons why it's a great thing.
But does anyone REALLY believe it's bug-free because there are lots of eyeballs on it?
From the first time I heard that argument I thought it was laughable and not backed by any solid evidence.
He's attacking that argument for a simple reason: Because he can. It's a stupid argument.
And he's getting people all worked up and distracted over it.
Meanwhile, in the next room, Microsoft salespeople are convincing your boss they need to switch all your licensing to a yearly subscription model, and that there's no reason why you should actually OWN the software that you're paying all this money for.
Re:Choose freedom, not some $attribute (Score:3, Insightful)
Exactly.
Microsoft is a business that exists to make money. (Obscene amounts of it, if you want my opinion.)
People who code free software generally do so to make better software.
I know which one I trust.
SB
Open Source allows the right eyes to see (Score:3, Insightful)
Re:Code fixes (Score:4, Insightful)
I'm not a "core" developer for any public projects. I've never submitted a bug fix to someone like Microsoft (but have sent bug complaints that went unanswered). I have sent quite a few bug fixes for open source applications, most of which were used in future release. I'm just another guy, or as indicated, another pair of eyes.
Well, in my experience what's annoying about closed source software is that you can't solve your own problems. I've reported quite a few defects and gotten quite a few of them fixed, but when you're working with a large vendor just getting through the support organization, down to development and back out through the normal release process means the implementation project is normally over before you get it. There's also a hotfix process but that creates its own headaches both in getting it, running other support cases on the same module and getting rid of it when it's rolled into a normal release.
Sometimes I really wish you could just patch it and roll your own build to solve your own problems. Right now, reporting bugs is more of a chore in the project and really more of a long term investment in not getting as many headaches in the future. I honestly admit there's been times where I've thought "man, am I glad I reported that six months ago" but other times I've cursed that I "wasted" time on support rather than just accept that it'll never work and get what works working and just do damage control on the rest. Ah well, nothing like a little undeserved flak for the consultant.
NEWS! (Score:5, Insightful)
Re:Bugs are an error in the... (Score:1, Insightful)
Mr Microsoft Man: "Eyeballs alone won't make a kernel secure."
Mr FOSS Man: "Writing unfree software is immoral!"
Let me try this on for a couple of other common criticisms of some FOSS projects:
Mr Web Man: "Safari is way faster than Firefox on OS X and uses less resources."
Mr FOSS Man: "Writing unfree software is immoral!"
Mr Netbook Man: "The Gnome desktop is still kinda clunky, even after all these years."
Mr FOSS Man: "Writing unfree software is immoral!"
Mr Graphic Designer Man: "Linux still doesn't do proper color management."
Mr FOSS Man: "Writing unfree software is immoral!"
Mr Gamer Man: "There aren't any decent games for Linux."
Mr FOSS Man: "Writing unfree software is immoral!"
Who's derailing the conversation here, again?
Re:Bugs are an error in the... (Score:2, Insightful)
Freedom is your primary concern. There are certain ethical quandries that people just don't care about. For example, most people know that the low, low prices at large department stores are directly due to shabby treatment of worker in China and India, but they still shop there. Most people know that the meat, eggs and dairy that most fast food places use come from animals who live in tiny cages for all of their short lives, but people are still ordering sausage-and-egg-McMuffins. In this case, most people don't care (or even know) that the software isn't "free", all they care about is that it works the way they want it to. If you want to support free software (as I do) on ethical grounds, that's well and good. But be aware that you're digging yourself in - alienating those who don't care whether or not software is "free" by telling them that quality and security are lower priority (and if there's one thing F/OSS needs, it's more users, because users => market leverage).
So instead of brashly saying "security and quality" are low priority, why not attack the flawed argument? A F/OSS project will always have more eyes running over the code than a closed source project of equal magnitude. And to those who suggest that the closed source coders are just better, remember that open source needs less LoC (because we can use each others' code, licence and political issues notwithstanding), and as every good coder knows, every line of code is a potential bug, no matter how good the coder. F/OSS gains twice from this - firstly, we have half as many lines, and secondly, our LoCs are read twice (once by the original coder, and once by the guy re-using it). So it's not even a question of whether or not the bug is shallow - it's more that the pool is half as deep.
Re:PEBCEK is the issue... (Score:4, Insightful)
The fact is, you can only do so much. the more idiot proof you think you have made it, eventually a big enough idiot with break it.
FUD (Score:4, Insightful)
One big piece of FUD here is the notion that Microsoft programmers are paid, while open source programmers are not. The open source projects I know of advance mostly because of paid programmers, and I suspect that that is the case in general. That gives them the usual capitalist incentives for finding and removing bugs.
Re:Bugs are an error in the... (Score:5, Insightful)
In product after product, Microsoft continues to ship fewer vulnerabilities than our competitors.
I wish he had cited some. It does not seem to be anyone's experience, and the only study I have ever seen that said that Windows was more secure than Linux did so by counting each Linux vulnerability several times (once per distro), and comparing just Windows against entire Linux repositories.
He also looks only at whether more eyeballs are good, neglecting the disadvantage of the uniformity of the WIndows monoculture, etc.
He also argues that the Coverity scan was not an example of many eyeballs because it was government funded. So, the government paid for it - but it still happened.
He does cite some stuff including, hilariously, a study carried out in 2002 that concluded that Linux was close to becoming unmaintainable. Eight years later I am pretty sure it is being maintained.
I am also wondering about the advantages of there beinga lot of code that is shared by multiple projects. I remember a BSD code review catching an X Windows bug. In that particular case it was not fixed upstream because the XFree86 people were being awkward, but I wonder how many cases there are of stuff getting fixed.
It is also easier to report open source bugs. I have never reported a bug in a proprietary app, but I have reported lots of Linux bugs (mostly distro level, or fixable at distro level) because I can follow what it happening, and I know what the (usually good) reaction to my individual report is.
Re:Bugs are an error in the... (Score:1, Insightful)
As for proprietary networking, my Windows box uses TCP/IP. What does yours use?
And I didn't really understand #1, #2, or #3. You need to give more details to justify your claims, and preferably to show how they are any different from Linux/OpenSource bugs.
Re:Bugs are an error in the... (Score:1, Insightful)
Let's see:
Mr War Man: "Peace alone won't make our country rich"
Mr Peace Man: "Waging war is immoral!"
Let me try this on for a couple of other common criticisms of some conflicts:
Mr Warman: "War is a faster way to increase the economical wealth in a society"
Mr Peace Man: "But it is immoral!"
Mr Car Man: "Gasoline cars are way faster than walking or bicycling"
Mr Peace Man: "But it is immoral!"
etc.
Re:Bugs are an error in the... (Score:2, Insightful)
"shitty" code does not equal buggy code.
Your aesthetics, my aesthetics, or any other programmers' aesthetics are just personal opinions, don't need to be justified, and really have no particular value. On the contrary... you need to justify 100% a violation of some sort before code can be considered objectively bad, instead of just "Not how [you] would have gone about writing that, if you had been the person to write it".
As long as the code does exactly what it's supposed to do, and nothing more, and follows standard programming structure defined by the language and basic stylistic conventions (such as indentation), then the code is not shitty, no matter what my (or your) opinion is about its aesthetics.
Re:Bugs are an error in the... (Score:4, Insightful)
Well I don't see people joining PETA and saying "Hey you know what, our views are a little extreme, lets try be a little more level headed".
I don't see people joining Greenpeace and saying "Hey now, Genetic Engineering's alright y'all". And lets not get started on Sea Shepard.
You also don't see hippies and vegans going to MacDonald's or Wallmart and working there in the hope to make it more ethical.
The point I am trying to make is that GNU started as the environment for people who cared about those Freedoms. Linux became part of that and is Licensed under the GPL. It is part of the Ecosystem that cares about those Freedoms. To turn around and say, well maybe those Freedoms aren't important, maybe we should become more mainstream so we can cater to the masses who like MacDonalds and Wallmart and don't care about Hens in cages or sweatshops, is kind of besides the point.
We all have our own reasons for using Linux but it would not exist without those freedoms... If you have a different view on freedoms you can also use *BSD, Solaris or something like Haiku (Etc. etc.). If you don't care, there is NOTHING that is stopping you from using Windows or OSX.
I certainly know that if I emigrated to a country and started saying people should follow my political views I certainly wouldn't be well received, it's no different with the F/OSS sphere. It is what it is. It is what it is because of what it is and really, most of us have bigger mouths than we should.
The Developers are free to do what ever they want and their projects can go in what ever directions they want them to. Users like me can be thankful for what they give us. Yes some are more rabid in proclaiming the Freedoms, but then again if a single project isn't free enough, a half-assed effort of replacing it is at least made.
Long post after a tired and long day tl;dr: Freedoms could be only a concern for a minority, but a large part of what exists is because of them. Even if they aren't the most important thing doesn't mean they aren't important.
Re:Bugs are an error in the... (Score:2, Insightful)
Take a look at the comment below yours, unfortunately there are still plenty of nutjobs in the free software community who equate producing closed source software with killing people.
Re:Bugs are an error in the... (Score:3, Insightful)
I think a better point for him to make might be that good software development in practice requires you pay people to do it. Who does the paying probably matters to some degree, but unpaid people are probably more inclined to solve problems interesting to them than problems which are boring but ought to be fixed.
He's arguing, probably correctly, that open source software is not necessarily secure because you can put and infinite number of eyes on it. There are not, in practice infinite number of developers available, and of the people who could be classed as developers that are available only a small percentage have meaningful skills to apply to the problem. Fair enough. I'm getting a PhD in comp sci, so on paper I'm a potential developer for linux. In practice I've never contributed anything to the linux codebase, nor have I attempted to invest the time in doing so, and I suspect I'm not alone.
I think the most important point is that lots of businesses contribute developer time to various open source projects, as do governments. But they're mostly in the business of monetizing services, on an individual basis they, like me, have no obligation to keep paying people to develop the software they service. That's a problem, since if enough of them fall on hard times the projects themselves are going to suffer, and it risks being a nasty downward spiral. For all of the things wrong with MS, if you get an operating system from them you're paying for an operating system, or a word processor or whatever, and the market for those products determines their viability, and how much developer time can be applied to them. Newspapers sell advertising space, to pay for journalism. If the market for journalism remains unchanged but the market for advertising space tanks your journalists are looking for work. If the market for whatever products the main contributors to linux sell erode away (ironically, like the car business, by making an easier to use more reliable product) there's no one actually paying for the thing which costs money to make. A sufficiently secure, stable etc. piece of software requires the minimum of support, but doesn't stay current without investment. Windows may not be the most 'current' OS in the world, but when you buy a new version M$ isn't out anything by making it more secure, more stable etc.
Re:Bugs are an error in the... (Score:2, Insightful)
Re:Bugs are an error in the... (Score:2, Insightful)
* File Locked rather than writeable by administrator for upgrade purposes.
Firstly, what do you mean ? Secondly, how is this a security issue ?
* Ring 1 or higher code being able to write to Ring 0 locations.
More details, please.
* Administrative users necessary to run most things (MS software or otherwise).
An application issue. Has nothing to do with the kernel at all, let alone its design.
* Proprietary networking.
TCP/IP is proprietary ?
* Lack of regression testing (LAND should just never have happened).
A process problem, nothing to do with design.
Re:Code fixes (Score:2, Insightful)
I agree whole-heartedly and this is the primary advantage of open-source software. The "many eyes" are not necessarily developers, but users who aren't afraid to get their hands dirty. There have been a number of bugs I have encountered that would have been considered minor or inconsequential by most others, but were important for me. I then figure out what is wrong and send a patch to the developer. Now, everyone can enjoy a slightly more "hassle-free" software.
The same bugs in closed-source software would often be ignored and I would be stuck without a solution.
Re:Choose freedom, not some $attribute (Score:2, Insightful)
More companies do choose freedom, by staying away from the GPL, which is one of the more limiting licenses around. GPL is kind of like the paparazzi following you around saying "you're free to do anything you want, just as long as you don't mind that I share it with everybody". Hmmm, actually it's like if the paparazzi would force you to take your own pictures and publish them. Anyway, that's not the kind of freedom most people want.
That's how a developer would look at it. From a user's POV, "free as in speech" is meaningless. Free like beer is something users love, but many would prefer stealing a well programmed commercial program than getting one that's already free. I'm not a big Microsoft fan (though I use Windows and develop on it), and tended to stay away from its office suite for my personal needs, but whenever I needed to do something complex at work, Microsoft Office always worked a lot more smoothly than Open Office or alternatives (which I do always try). So I don't know what you're talking about with "their software disrespects you as a user and keeps pushing the limits in dividing and taking power away from their user base". From my experience if you're looking to be productive, a well established commercial product is a good way to go, if you can afford it (or don't mind getting it illegally).
Re:never mentions design or economics (Score:2, Insightful)
The funny thing about this article is that he essentially never mentions (a) design flaws or (b) perverse economic incentives to sell defective software. IMO these are probably the two biggest reason why MS has such a terrible reputation on security.
If you actually knew what you're talking about, you'd know that MS has a VERY GOOD reputation on security. It used to be awful, but they completely cleaned up their act these past few years and now when you talk to security consultants(IO Active, Leviathan, iSec partners, ...) and ask them who's doing a great job, the first name they pronounce is ... Microsoft
In the security world, your reputation is based on real things: the # of issues your code has, how hard you make it for people to exploit your code, whether your system is secure by default, ... not by the number of times you show up in the news, because that last one is purely driven by your market share, not by the quality of your code.
Take a look at SQL Server, compare its security record to any other database with a decent market share on the market.
Re:Choose freedom, not some $attribute (Score:2, Insightful)
I know which one I trust.
I know what you mean. I only drive cars that have been hand-assembled by individuals working out of their backyards. Similarly, I wouldn't dream of visiting a doctor who didn't make all his own tools or who sent me to an apothecarist who wasn't personally assembling all his medicine from locally-sourced ingredients.
Re:Bugs are an error in the... (Score:4, Insightful)
Absolutely right. The author seems to be making the argument a lack of pay implies a lack of skill.
From the article:
According to Cowan, who is now a Security Program Manager for Windows, “the scientific conclusion of Sardonix is that auditing is both demanding of high skill and tedious, and so karma/reputation/good will is not enough to motivate people to do it. You must pay them to do it, precisely as Microsoft does.
The author is right that the "many eyeballs" scheme needs skilled eyeballs to work, but assumes that the only way to get good people on a project is by paying them. It seems odd that an article that tries so hard to provide a compelling argument makes such a poorly backed assumption. It's certainly true that good people need to be payed, but they can be paid to work on free software or write free software in their spare time; both cases have many examples.
Re:Bugs are an error in the... (Score:1, Insightful)
Re:Bugs are an error in the... (Score:3, Insightful)
Let me be ... (Score:5, Insightful)
I feel the need to explicitly call this guy a shill, rather than imply it. IF he honestly believes what he wrote, he's merely an idiot.
Shawn Hernan has deliberately misconstrued what Raymond wrote. Raymond explicitly said that the phrase "Given enough eyeballs, all bugs are shallow" was an informal phrasing of the lesson, in the very first sentence of the lesson. The actual phrasing was given as "Given a large enough beta-tester and co-developer base, almost every problem will be characterized quickly and the fix obvious to someone." There's not even one sentence separating the two.
Trying to rip apart an informal phrasing, and ascribing hidden syllogisms to it, tells me this man is either an ideologue or an idiot. Given his position, he's a dangerous ideologue or idiot.
Comment removed (Score:3, Insightful)
Experience says otherwise (Score:3, Insightful)
Reality unfortunately insists otherwise. We can't blame Microsoft for it but it is still the rule rather than the exception. There are plenty of idiot developers out there that still have the single user MSDOS mindset where security is not seen as a problem because from their viewpoint the user only has a computer so that they can run that developers application and nothing else. "Security" dongles are a major offender and other bits of crapware that insist on running services instead of just running like a normal application. You could run things like that as normal users but developers have admin so they write it so it MUST run admin.
That is more of the cause of the malware plague than Direct-X, old versions of IE and MS Outlook.
Oh yes, remember that a "power user" is an Administrator that just hasn't given themselves full permissions yet but they or the malware they bring in can do that without help.
Re:Bugs are an error in the... (Score:5, Insightful)
Some of my points (IMHO, my 2 cents, works for me, etc.):
Mr Web Man: "Safari is way faster than Firefox on OS X and uses less resources."
Me: "Safari doesn't run at all on GNU/Linux or Solaris or FreeBSD. Besides, Firefox has a LOT of features that I like"
Mr Netbook Man: "The Gnome desktop is still kinda clunky, even after all these years."
Me: "I don't know what you mean by Clunky, but I prefer the functionality of Gnome over Windows or OSX any day of the week. Anyway, I like KDE and XFCE more than I like Gnome."
Mr Graphic Designer Man: "Linux still doesn't do proper color management."
Me: "I don't know what that means. You may be right."
Mr Gamer Man: "There aren't any decent games for Linux."
Me: "There are actually some decent games for GNU/Linux, but I agree that the selection could be greater. I hope the situation improves, but gaming is far from my primary concern"
You'll notice that I don't have to mention software freedom.
Re:Choose freedom, not some $attribute (Score:3, Insightful)
The great software writer Benjamin Franklin already wrote:
They who can give up essential freedom to obtain a little temporary security, deserve neither freedom nor security.
And if the poor man knew how often that line would be quoted (badly or not) in a context that has absolutely nothing to do with what he meant, he'd be spinning in his grave fast enough to provide the entire planet with energy and knock us out of orbit at the same time.
Re:Bugs are an error in the... (Score:2, Insightful)
BTW, is there any secure kernel out there?
OpenBSD is the best you will get in the unix world. Developed mostly by people doing it as a hobby with some company support.
Wang unix was also highly thought of but wasn't used too much. That was developed by a company with little outside help.
VMS is also secure, again developed by one company with little outside help.
My point - Anti-Microsoft isn't always anti-closed source. Sometime it's anti low quality.
Re:Bugs are an error in the... (Score:3, Insightful)
I know that was a flippant remark, but step back and look at it.
The statement is an accurate, yet deeply depressing indictment of the modern world. We should be focused on making thing better, not accepting things the way they are.
Re:Bugs are an error in the... (Score:3, Insightful)
It is also easier to report open source bugs. I have never reported a bug in a proprietary app, but I have reported lots of Linux bugs (mostly distro level, or fixable at distro level) because I can follow what it happening, and I know what the (usually good) reaction to my individual report is.
Report a closed source bug and you get fobbed off by first line support who know less than you. You have little change of ever talking to someone who understands the problem.
Report a open source bug and you get told why you are wrong, or why they can't be bothered to fix it, or how unreasonable you are for demanding they fix your problems. But if you provide a patch you have a chance of being taken seriously.
It's not exactly easy either way around.
Comment removed (Score:2, Insightful)
Re:Choose freedom, not some $attribute (Score:3, Insightful)
Don't be so hasty. Software is something that can be made for love of the art. Cars require significant capital investment in fabrication equipment and materials, capital most people do not have.
While not denying they can make good money, many in the caring professions do count the benefit they bring to others as a significant factor in their motivations, and I would indeed prefer it if my doctor had my best interest in mind rather than getting through his "caseload". I don't see why you put forward examples about making one's own tools or medicines by way of ridicule as this was not the GP's thrust. Free Software developers are well known for sharing code which implies using others, they call it "libraries", fucknuts, and the idea is to avoid as much DIY as possible.
Re:Bugs Exist Because We Use the Wrong Software Mo (Score:3, Insightful)
I defend the hypothesis that the two major crises that afflict the computer industry (unreliability and low productivity) are due to our having adopted the Turing Machine as the de facto computing model in the last century
You're hypothesis fails by being based on false assumptions. The Von Neumann architecture has been the de facto computing model, not the Turing Machine. Turing Machines suck at IO.
Furthermore you don't seem to understand that the reason computer programs are, as you call them, unreliable and low productivity, is mainly because programming is hard, and most of the time this has nothing to do with threads. Have you ever spent hours trying to get elements to line up perfectly on a web page in three different browsers? It is a problem that makes you want to pull your hair out, and yet it doesn't matter whether you are running with threads or with double-buffers, the problem will still be there. Programming is hard because controlling a computer is hard.
The boomers were wildly successful but this is a new age, the age of massive parallelism and super complex programs. The boomers need to retire and pass the baton to a new generation of computists. Sorry but that's the way I see it.
What the hell? When did this become a generational war?
Re:Bugs are an error in the... (Score:2, Insightful)
An unpaid developer works on stuff that is interesting to him. A paid developer works on stuff that is interesting to his manager.
If I'm working for MS and I notice a certain feature is a bit buggy, I might want to take a look and fix those bugs. But there is a deadline and the marketing department want a certain feature added so they can put another checkbox on their next ad. So the bugs don't get fixed.
But if I'm working on an open source project and I notice a feature is a bit buggy I can go ahead and fix it because my manager isn't breathing down my neck to add some other feature.
I'm working for a company that uses MS products. My manager notices a feature is buggy. I report it to MS and.... nothing happens. So I find work arounds and show the other people at my company how to make the feature work despite the bugginess.
I'm working at a company that uses open source products. My manager notices a feature is buggy. I report it, and if the manager is still breathing down my neck, I find the bad code, fix it, send a patch to the project maintainers.
MS's priority is to add features to make their software more marketable. Open source software's priorities are whatever is important to each developer working on it. That may mean adding more features (like MS) or making the features more robust (unlike MS).
Re:Bugs are an error in the... (Score:3, Insightful)
we must point out that freedom is our primary concern
It might be yours, but when it comes to choosing software getting the job done cost effectively is mine. If the closed source commercial software will do the job and the FOSS won't then I'll choose the closed source commercial, thanks. It's not an automatic choice. Some FOSS is better than the closed source commercial, but some is complete rubbish, and in the latter case I couldn't give a monkeys about the "freedom" it gives me.
Bugs are errors in code as well - Duh! (Score:3, Insightful)
Bugs are an error in the process, not the code. If you find a bug, you need to find the process error that allowed that bug to occur.
Not in the code?
Of course bugs are errors in the code. Duh! And sure, bugs may be errors in the process as well.
But why the false antithesis?
-wb-
My kingdom for mod points (Score:3, Insightful)
You get it exactly and word it perfectly.
Linux IS its freedom, without it, it wouldn't be the same and might not even exist.
One of the most beautiful things I find about GNU/Linux is that I can get a working development AND/OR server environment all from a single package manager. That is because all the software is free, no endless license agreements to click through or setup programs that try to install all kinds of crap or require me to register. Just apt-get/pacman/emerge.
To me windows is the OS that never fails to have a major hickup. Silly stuff like suddenly deciding I got duplicate ethernet cards or freezing completely on a copy and don't even get me started on the long work of visiting every website for all the various apps that I use, downloading them manually, then installing them, clicking through all the decisions, organising them efficiently (why does everything go in the main menu?).
OSX is little better although its setup is easier you still got to go hunting yourself. And don't even get me started on when you want to configure basic things like the END and HOME key to behave as you would expect them. And neither OS has focus under mouse, a basic feature that linux/unix gui's have gotten right for decades.
But all of that exists, because of the vision of a free set of tools Stallman had. Same as there are still whales swimming thanks to the "extreme" views of Greenpeace. Sure sure, you might to want to wear fur, but then you can't have whales.
I think it is sad that having principles is today considered extreme. People who say opensource freedom don't matter say that because they don't vote, democracy does not matter. You might be right, if you ever been in a place like China (and there are far worse places to be as a westerner) then you might have a hard time figuring out why dictatorship is so bad, everything works and crime is low.
A paradise surely? Yup, right up to the point that it is YOU they are coming after.
We recently have had two stories about software products being bought and their future being in doubt. MySQL now being owned by Oracle, and its future is fairly safe because GPL is hard to kill off. But what about FAST search now owned by MS? Oops its unix/linux support is gone just like that and screw anyone who depends on it, no way out for them.
Freedom, it doesn't matter until you no longer have it.
Re:Competently done it'd just be propaganda (Score:2, Insightful)
Given that a few projects use Coverity I assume that also means that those projects must be Coverity clean.
What this means is that no MS product is released in which the relevant static analysis tool is reporting problems, which is a very good thing.
It is absolutely true to say the "Hope is not a security strategy". That much is undeniable, and any project that is relying on Linus' Law is doing just that. The examples you give are clearly NOT relying solely on "many eyeballs", which is why they are secure. If anything it strengthens his point because those projects, while they are FOSS, also have major corporate backing and professional core developers and testers.
You say KDE has 90 static test failures. Well thanks to the SDL all of Windows (with whatever unimaginable number of lines of code that has) should have none (although, obviously we can't be certain of that, but that's what their process requires)
Re:Choose freedom, not some $attribute (Score:1, Insightful)
Of course there are limits to what one person can accomplish. Linus Torvalds didn't write the entire Linux kernel by himself either, there are contributions from thousands of people as well as companies. If you had the choice between a doctor who's there just to get paid, and a doctor who loves his job and works on medical research, new treatments, and new tools on his spare time, which one would you choose? If you had the choice between buying a car from a guy who is just doing his job, or a guy who tinkers with cars around the clock, which one would you choose? Of course in the latter case you have to be careful that the tinkerer also has safety in mind and not just race performance...
UAC (Score:2, Insightful)
UAC was created to fix a problem that was there before by a design problem. If there was no problem UAC would not have been needed.
Re:Bugs are an error in the... (Score:4, Insightful)
I think the matter that people get paid, nor that most of those working on the same area are from the same company will help in making Linus's Law 'more true'.
Yes, in general, the more people look at an issue, the more likely it is that someone will spot a bug, if there is one.
But - I give you the following caveats to this:
* people working closely together might reduce design flaws, but not necessarily implementation flaws - knowing specifically what a piece of code is doing CAN stand in your way of spotting subtle bugs in it (because the code more or less reads like what you expect). So, it helps to have more 'independent' pairs of eyeballs looking at the code.
* people not knowing the subject matter inside out are not on par with people who do. People who know how buffer overruns come about may figure out potential buffer overruns more likely than others. On the other hand, if, say, these people were to look at encryption code, they may see a potential for a buffer overrun, but not necessarily, whether the implementation of the encryption routines has a (not totally obvious) security flaw in the way it handles its keys; or whether any s-boxes may be good or not.
So, the more 'subject-matter-aware' eyeballs, which work independently of each other, look at a given code, the more likely you are getting a better review of the code.
I don't think I'm a bad C developer, but I don't think I could spot the majority of the linux kernel flaws because I do not know enough of the design of the kernel and potential interaction of areas of code.
Re:Choose freedom, not some $attribute (Score:5, Insightful)
Is your argument supposed to mean that *we* should trust is the pin-striped suit wearing Dr. Fred MBogo [retrologic.com] with the 100 million dollar home, because he makes a lot of money?
Because in my interpretation of your metaphor the only thing that I can think that corresponds to Microsoft's track record would be Dr. Fred MBogo [retrologic.com].
I think a more accurate metaphor would be that Open Source corresponds to the FDA where all tests, procedures, and results are publicly reviewable, and that proprietary software like Microsoft's corresponds to superb marketers advertising the latest cancer curing snake oil that must be good because it costs so much and since the manufacturers live in dream mansions they must be legitimate.
Or to put it simply: open source chemistry, proprietary software alchemy. Here's my evidence: from wikipedia, some portions of the definition of the scientific method [wikipedia.org]:
Scientific method refers to a body of techniques for investigating phenomena, acquiring new knowledge, or correcting and integrating previous knowledge. To be termed scientific, a method of inquiry must be based on gathering observable, empirical and measurable evidence subject to specific principles of reasoning. A scientific method consists of the collection of data through observation and experimentation, and the formulation and testing of hypotheses.
....
Another basic expectation is to document, archive and share all data and methodology so they are available for careful scrutiny by other scientists, thereby allowing other researchers the opportunity to verify results by attempting to reproduce them. This practice, called full disclosure, also allows statistical measures of the reliability of these data to be established.
Re:NEWS! (Score:3, Insightful)
The quotation is not meant like an immutable law. There's a really good, important point there, but it's still just a meaningful aphorism. Let me help you with this -- when you see "given enough eyeballs, all bugs are shallow", read it as "given enough eyeballs, [almost all] bugs are shallow".
But that's not true, and the original version is correct. Given enough viewers - where "enough" might possibly be more than the number of people alive - every error will be obvious to at least one person.
Re:Bugs are an error in the... (Score:3, Insightful)
Microsoft has 90% of the market because of what they did in the late 80s and though the 90s that resulted in them becoming a convicted criminal monopolist. Please read up on that era and watch how those things play into how software development is so complex that once you commit to one you will almost never put the resources into any other, even though they may be viable. Software today is not a democracy. It is a dictatorship. OSS is the only free choice you have. That's not an extreme view, that's the reality of developers, developers, developers.
Re:Bugs are an error in the... (Score:3, Insightful)
Why do you think that MSFT has 90%+ of the market?
They don't. There's a whole world of computing out there beyond laptops and desktops. When it comes to embedded and server devices, Linux is kicking ass.
The majority of the population want pretty pictures controlling their computers, there's no doubting that. Aside from basic office apps, the PS3 could probably handle most of their needs (web browser, movies, pictures).
But when you want power, a GUI can't cut it. Sometimes you need to see the guts. And that's when Linux shines. It's not for 90% of the population. It's the perfect tool for devs and admins.
If some company wanted to put forth the effort, they could probably put together a decent Linux UI that was easy to use for your average consumer. And they have. People use Linux more often than they know - in their cameras and cell phones and assorted other gadgets. The UI is so prominent that without special tools it's *impossible* to "open up bash and type...".
Re:Bugs are an error in the... (Score:3, Insightful)
Note to self: Microsoft evangelists no jack-shit about Linux.
I have had few problems installing the latest versions of Ubuntu on my rather annoyingly difficult HP notebook with its goofy Broadcom drivers. By the same token, I have spent the better part of an hour trying to find appropriate drivers for similar notebooks (and don't get me started on when HP's universal print driver goes kersplonk).
This idea that somehow Windows is this insanely excellent platform, and that all the software for it is easy to use is just a load of crap. What I notice about most Windows-only admins is that they frankly don't know jack-shit about computers beyond this very limited ecosystem. They have no malleability, no adaptability, no capacity to ignore the boot up logo and deal with problems and come up with reasonable solutions.
I'm not any kind of zealot. I'm a guy who has worked with everything from old DOS 3.3 systems running LANTastic and Xenix servers to Server 2008 and VMWare, and the one thing I like to think is that I can learn new systems with relative ease, and can offer my boss or my customers solutions that fit their needs and their budgets. If they have the budget for Microsoft servers and CALs then that's fine, but these days I'm getting people asking me questions like "How can we get away from large licensing budgets".
I charge $50 an hour for my time, minimum. I guess that's what the extra $25 gets you, someone who isn't just a Microsoft drone who can't even use dpkg to install a driver.