3 ms·
The success of Linux deserves serious consideration, but breathless marvel at Linux and its development practices is entirely misplaced. All the major patches
by tolenka 17y ago
The success of Linux deserves serious consideration, but breathless marvel at Linux and its development practices is entirely misplaced.
All the major patches are done by one expert, and many of them are fairly innovative. Ingo Molnar did CFS. Ted Ts'o does a lot of really high profile work on filesystems. There are many more examples.
Linux is full of examples of poorly designed systems being slipshod replaced for slightly better designed systems that are well behind the state of the art.
In the same time Linux has gone through multiple schedulers (and scheduler flamewars), FreeBSD developers have designed, implemented, tested, and iterated on ULE, and then ULE2, finally (after much review, testing, and careful consideration) merged it and made ULE2 the default scheduler.
The scheduler wasn't adopted until it was investigated from all angles over years, and found to not introduce any significant performance regressions.
The kicker? The previous scheduler was on par with Linux, ULE2 seems to perform considerably better for many workloads (eg, MySQL) on many-core machines.
Innovation isn't magic -- it involves a lot of hard work and careful design by a lot of people.
The Linux development process is lightyears ahead of the typical industrial development process. Git, which was created by and for Linux kernel hackers, has been instrumental in helping Linux get ahead.
Really? I'm not sure what innovations you're thinking of here.
- Solaris' ZFS vs (incomplete) btrfs
- *BSD's kqueue vs. epoll/inotify/dnotify/
- Solaris' zones vs ?
- FreeBSD vimage (network stack virtualization) vs ?
This isn't intended to be a Linux-tirade -- but I wanted to illustrate that Linux is not "lightyears ahead of the typical industrial development process" when compared against other existing kernel projects.
- sandGorgon 17y agoOK I'm confused now.. I think what the commenter meant was the cathedral vs the bazaar model of development. Would'nt FreeBSD, NetBSD, etc all be in the same boat as Linux? Granted that Linux has a benevolent-dictator-aka-linus, but that does not make it deviate too much from the bazaar model. For all its flaws, git (and github) are becoming the preferred choice of hackers everywhere - I'm not staunchly one of them yet, but I can see the charm. Git only enhances the distributed development model that all *nixes are built upon. If any, Solaris is the only counter-example to Linux - not FreeBSD.
- tolenka 17y agoI think what the commenter meant was the cathedral vs the bazaar model of development. Would'nt FreeBSD, NetBSD, etc all be in the same boat as Linux? Granted that Linux has a benevolent-dictator-aka-linus, but that does not make it deviate too much from the bazaar model. Most other kernel development teams operate with a considerably more conservative approach ("the cathedral") than is engendered by Linux and specifically enabled by dvcs/git ("the bazaar"). In Eric Raymond's essay, he contrasted the two development models as such (quoting wikipedia): The Cathedral model, in which source code is available with each software release, but code developed between releases is restricted to an exclusive group of software developers. GNU Emacs and GCC are presented as examples. The Bazaar model, in which the code is developed over the Internet in view of the public. Raymond credits Linus Torvalds, leader of the Linux kernel project, as the inventor of this process. Raymond also provides anecdotal accounts of his own implementation of this model for the Fetchmail project. http://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar http://en.wikipedia.org/wiki/The_Cathedral_and_the_Bazaar I'd say just about every other kernel available today is developed in "the cathedral", although even then I think that Raymond's comparison (and judgments) are a vast oversimplification. For all its flaws, git (and github) are becoming the preferred choice of hackers everywhere Some very vocal people, but not what I'd say "hackers everywhere". As a regularly user of hg and git, I'm not particularly convinced that dvcs provides significantly compelling advantages outside of Linux's development model. If any, Solaris is the only counter-example to Linux - not FreeBSD. I'm not sure why you'd say that is.
- sandGorgon 17y agoIf any, Solaris is the only counter-example to Linux - not FreeBSD. >I'm not sure why you'd say that is. That was my attempt at classifying the corporate umbrella of Solaris to be THE cathedral vs the bazaar of Linux ... and, as you say, the middle ground of FreeBSD. I dont have context here, but it was very surprising to read your comment about FreeBSD being closer to the cathedral model. I was aware of GCC and Emacs being unapologetically so, but I thought BSD had a more open development model - the myriad flavors of BSD being a proof of that.
- javert 17y agoI agree with what sandGorgon said. I'm not defending the Linux kernel in comparison to other FOSS projects, especially really excellent ones like FreeBSD and possibly Solaris. Linux and FreeBSD have different comparative advantages over each other. My point is that both are way ahead of your typical Java shop, and way ahead of Windows, and that FOSS and Linux do not deserve the beating given to them by the author of the blog post. AFAIK CFS is considered >= ULE2 by most people, and I'm not aware of significant regressions introduced by CFS, so the high degree of conservatism you pointed out in the FreeBSD project wouldn't have been warranted in this case. I don't have the background to argue the finer points of this issue, but it's off topic for this thread, anyway. Also, you quote me talking about Git, and then say, "I'm not sure what innovations you're thinking of here." I'm thinking about git and the large-scale distributed development model that was pioneered by the Linux community.
- tolenka 17y agoMy point is that both are way ahead of your typical Java shop, and way ahead of Windows, and that FOSS and Linux do not deserve the beating given to them by the author of the blog post. I think that's a bit unfair to Java shops. =) AFAIK CFS is considered >= ULE2 by most people, and I'm not aware of significant regressions introduced by CFS, so the high degree of conservatism you pointed out in the FreeBSD project wouldn't have been warranted in this case. I don't have the background to argue the finer points of this issue, but it's off topic for this thread, anyway. CFS is based on knowledge gleaned from years of work on earlier schedulers by Con Kolivas and Ingo Molnar. In the meantime, the scheduler was replaced several times in the "stable" tree while they "figured it out". It took just as long, made a bigger mess, and ultimately cost more to produce (not to mention all the flamewars and bad blood engendered in the process). Whether CFS >= ULE2 is a very nuanced question, but it's fair to say that the schedulers are much closer.
- luckydude 17y agoUm, the distributed development model was pioneered by BitKeeper, not Linux. MySQL ought to get more credit, they were in BitKeeper long before Linux was.
- JulianMorrison 17y agoIt's true that the FreeBSD process is far more likely to result in an ideal design, but Linux's approach of "build it fast, replace it fast" might average as a win in terms of total number of tolerably performing features per development time, and volume of the search space explored.