Hacker Newsnew | past | comments | ask | show | jobs | submitlogin

I think the comments here about the free software community, and particularly the Linux example, are really off base.

Consider Linux: the poster child of successful free software. It is a knockoff of a 1970s operating system well past its sell-by date.

What does that even mean? Linux (as a kernel) does an excellent job at what it is designed to do. I don't know what is meant by "innovation" here. If the author has a fundamentally different kernel design that is actually better, do tell.

On the other hand, at the subsystem level, there is lots of innovation in the Linux kernel. The Completely Fair Scheduler (CFS) is a good recent example.

This is because a herd simply cannot innovate, whether for fun or for profit. Every innovative work of mankind has been the product of one – sometimes two, rarely three – minds.

Linux development is not driven by a "herd". It's driven by a group of pretty elite programmers known as the subsystem maintainers.

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.

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.

Distributed version control is a fundamental innovation in software development, and Git is the most successful DVCS by far.

(Other than that, I think the author makes a great point, and I agree with him 100%. That's why I have so far avoided working for big software companies.)



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.


OK 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.


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.

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

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.


If 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.


I 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.


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.

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.


Um, the distributed development model was pioneered by BitKeeper, not Linux.

MySQL ought to get more credit, they were in BitKeeper long before Linux was.


It'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.


Distributed version control is a fundamental innovation in software development, and Git is the most successful DVCS by far.

Is this is the same git that Torvalds tossed together as a quick hack to replace the proprietary BitKeeper DVCS after the company stopped offering free licenses to Linux developers?


It started out that way, but as I said, Git is now by far the leading DVCS, and AFAIK, the Linux community was the first to do DVCS on a grand scale. Furthermore, Git is surely a tremendous improvement over BitKeeper.

That's innovation in software development process.


Why do you think it's a tremendous improvement over BitKeeper? Have you used it?


I suspect s/he thinks Git is better because it is open source.

I've used both a lot and Git is faster at some things but BitKeeper gets some things right that Git does not, such as renames, per file comments, digging around in the history.

I think the right answer is that we're all better off because of both. BitKeeper was the original DSCM and paved the way, Git is open source, they are both actively moving forward, hard not to like that.


Nah, I think it's the git that Torvalds wrote when he decided that Monotone had some pretty cool ideas (the whole distributed VCS thing) but was slow and written in icky C++.


Both statements are true- it was a hack to replace BitKeeper after the Tridgell disaster, and it was inspired by monotone, which he deemed irreparably slow.


Yeah. He caught monotone at a bad time. Graydon had just gone on sabbatical...

Also, 'disaster' is a bit...harsh. As I heard, he just telnet'd and asked for "help".


Well... it was a disaster in the sense that it caused a row and meant they had to switch versioning systems.




Consider applying for YC's Summer 2026 batch! Applications are open till May 4

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact

Search: