The FreeBSD Diary
Providing practical examples since 1998If you buy from Amazon USA, please support us by using this link.
Why is Linux Successful? - An Opinion. 3 May 1999
This article was first published for UniForum NZ 99 held at Rotorua 13-17 April 1999.
It is published with the permission of the author who retains all rights.
Why is Linux Successful?
Wellington, New Zealand
20 March 1999
Is Linux successful?
Why can I say that?
In 1999 Linux 'wins', all indicators go ballistic. Corel ports WordPerfect to Linux. Informix and Oracle port their database products to Linux. DB2 is shipped for Linux. IBM announces 7 x 24 support for Linux systems. Corel announces it will port all its desktop applications to Linux. HP and SGI announce that Linux is one of their 'core' operating systems. HP is porting Linux to PA-Risc and announces that it will port Linux to Merced. Datapro surveys have Linux on the top of the reliability and functionality list in mid-range operating systems comparison. Datapro also show Linux growth at 212%, the only server OS other than NT to have positive growth numbers. Gartner say Linux won't be a serious contender until 2000 and only if an industry heavyweight, such as IBM, provides commercial support. Gartner has to reissue it's view when IBM offers commercial support in March 1999. Also in March, Dell state they will offer Linux as an operating system option for workstations.
In the weekly IT press Linux column inches are up there with the Microsoft column inches, only the Linux ones aren't about being dragged through court. There are now a large number of on-line linux news-papers, more than I can keep up with. The Linux world has more happening in it than a single person can keep up with. I try to keep up with <http://www.slashdot.org>, <http://www.freshmeat.net>, <http://www.linuxworld.com>, and <http://www.lwn.net>. The events above are listed on those web pages. The really amazing thing is that all four pages are updated daily, and have probably no more than 25% overlap.
I can write a paper on Linux without an obligatory introduction explaining what Linux is. All this on top of the fact that Linux has been a reliable Unix work-alike for me since 1993. So, yes, I can say that Linux is successful.
What is the 'competition'?
The HURD is the kernel for the GNU (Gnu Not Unix) operating system. The HURD has had a version released in 1998, but it's not yet of production quality. Richard Stallman has been heard to say that they underestimated the amount of effort it would take by about 10 years. However, in that time, of course, the GNU project has built a substantial portion of an operating system and Linux is a kernel that allows for the free operating system to be shipped. The HURD has never really been a competitor, as it wasn't available in the early 1990s when Linux was coming to life.
386BSD is the first full OS made out of the BSD software release that was called Net/2. NetBSD was created when the 386BSD initiator lost interest. OpenBSD is a recent version of the NetBSD tree with a slightly different focus. 386BSD and NetBSD were the two most likely to succeed when Linux was starting.
FreeBSD comes from the same lineage as the other *BSDs. It differs in that it is a split motivated in part by the Linux successes. It focused on be an excellent 386 based OS, whereas the other BSDs all have multiple ports. It also made ease of installation a focus. This was the most direct competitor to Linux, up to Linux being ported to multiple platforms.
The commercial variants. Coherent has gone out of business, possibly because the principals in the firm couldn't see the importance of networking. No source, but the best Unix manual ever written. Interestingly, of the other variants, SCO and Solaris now provide free binary licenses for home and educational use. Solaris started talking in March 1999 of making the source code of Solaris available. When Linux was being created the cost of a commercial Unix license was prohibitively expensive for an individual.
They sell a lot.
I believe the primary reasons that Linux has gained a greater mindshare than the other options boil down to:
There are a few other reasons which I go through below, however I believe it is those three that have made the critical difference at the right time. I'll now discuss those and some other factors.
Time and place - 386 hardware hits affordable, Internet hits available.
Timing is everything, and Linux has been the lucky one. Linux had a university student with drive and programming talent at the time when 80386 machines had become just affordable by university students. Usenet was carried by non-USA universities giving the developers a forum to discuss there issues, and ftp gave Linus a distribution method. A year earlier and 386s would have been out of reach for most university students. A year earlier and access to the Internet may not have hit the right critical mass.
Cheap hardware - MFM/IDE vs SCSI
Linux has always had a pragmatic view of hardware, whist the BSDs carried a purist view. When I got my first 386 I had MFM style disk drives. At that the BSDs only supported SCSI. Now SCSI is undoubtedly the correct choice, however it did not match the common hardware profile out in the market. Linux had the advantage for the first three years that I ran it of supporting a more diverse range of hardware than the BSDs. The BSDs assumed you had purchased a machine to run a Unix-style OS on, while Linux assumed you had a machine and wanted to try Unix. Linux was much friendlier to someone just wanting to dip their toes in the water. In this respect Linux did something that the BSDs were unable to do to any great degree - grow the Unix user base.
GNU/X Code leverage
Linux is just the kernel of an Operating System. Linus built a kernel that made it easy to port existing POSIX/BSD/Unix code to it. He also utilized the GNU compiler GCC on Minix to bootstrap up his first kernels. From a start in December 1991 (when the first Linux code was released to the public) it took less than two years to get to a usable system which was entering a code-freeze at level 0.99 patch level 15 in preparation for release 1.0 . It had editors, compilers, shells, an X-base GUI, networking and even some games. It managed to get that far that fast by leveraging off the work done by the Free Software Foundation in its' GNU (GNU's Not Unix) project. The GNU project provided the compilers, versions of most of the standard Unix toolset such as gawk, grep etc, BASH - the Bourne Again shell and emacs. If the GNU and X projects had not existed it is unlikely that Linux would have been a full featured functional operating system at that speed, and the BSDs were waiting in the wings for Linux to falter.
Public development - Newsgroups vs Mailing lists
Remember that early 1990s was before the Web took off. Usenet newsgroups and mailing lists were the pre-eminent forms of many-to-many communication. In the BSD world all communications took place on mailing lists. High signal-to-noise ratio. The free BSDs didn't have their own newsgroups, they shared with the commercial BSD. In terms of volume that didn't matter as there was little activity there, and all the developers were hidden away on mailing lists. Linux on the other hand had a few very high volume newsgroups. Surprisingly reasonable signal-to-noise ratio, which improved a bit more when the newsgroup re-organisation included an advocacy group for flamefests and useless my-whatever-is-better-than-your arguments. It also created an announce group and an answers group both moderated, as well as the usual suite of other subgroups. Rather than splitting the activity into multiple lower volume groups what happened was that the volume in each increased, so there were now many high volume groups. Knowledgeable users and developers still frequented the groups so the chances of getting your question answered or your problem solved were still very good. For the experimenter looking to try one of the free Unixs, it appeared that there was nothing happening in the BSD camp, while the Linux joint was jumpin'. The experimenter could find out about Linux, see what was happening, ask questions and it supported his low-end hardware. The FreeBSD team realised that being seen was important and started frequenting the BSD newsgroups more, however by then Linux had won the mindshare space in Usenet. Again, this had the effect of growing the Unix user population. For many high-school and university students over the last 5 years Linux is not only the only Unix they have ever been in
contact with - it's quite likely to be the only non-MS-Windows operating system they have been exposed to.
Net/2 vs USL issue - *BSDs hit a snag, a new network stack and a breathing space.
The AT&T spin-off responsible for the Unix product, Unix Systems Labs (USL), claimed the Net/2 code base that 386BSD, NetBSD, FreeBSD plus the commercial startup BSDI were based on included AT&T copyright code. It began legal proceedings against both BSDI and the Regeants of the University of California. At this time Berkeley was putting together the final release of BSD Unix, BSD4.4, which was held up by the litigation. In response to the proceedings brought against them by USL the Regeants brought suit against USL for use of Berkeley code without proper attribution. The purchase of USL and the Unix trademark by Novell saw the resolution of the problems with the agreement to stop shipping Net/2 based systems, BSD released 4.4 and the unencumbered code release called 4.4lite. As part of the resolution the 4.4lite code base was given a clean bill of health by Novell. Both NetBSD and FreeBSD moved to being based entirely on the 4.4lite code base, NetBSD with version 1.0 and version 2.0 for FreeBSD (by then 386BSD was a dead system, OpenBSD split well after this).
This litigation caused Linux to go its' own way with their networking. At the time the networking was being developed the USL/BSDI/UCB lawsuit unpleasantness was at full noise. The networking developers didn't wish to be embroiled in all the litigation so rather than leverage off the 'standard' and robust BSD networking code they choose to roll their own.
A far more important effect insofar as this paper is concerned is the uncertainty the lawsuit cast over the BSDs at a critical time in the Linux development. The BSDs came from a rich existing source code base. Particularly in the networking area they were far more robust and mature than Linux. Users who may have been attracted away from Linux were wary of committing to one of the BSDs when it looked as though they might lose the ability to develop free versions should the lawsuit go USLs way. This gave Linux sufficient time to get up to speed in respect of it's networking code and help halt movement of people from Linux to *BSD.
Development model - Controlled Anarchy vs Core Team
The BSDs Development
The BSDs tend to have 'core' teams looking after the source trees for the respective systems. Changes to the kernel which a developer who is not on the core team wishes to have folded into the base source tree are submitted to the team who will vet the patches and merge it into the current source. The BSD systems distribute a full system source tree, in that they maintain a large proportion of a full system so when you do a build you make a large proportion of your unix system.
This model seems do have directly arisen from Bill Jolitz, the original 386BSD developer, losing interest. Patches to 386BSD were made available both to Bill Jolitz and to other users of the system. Jolitz had declared his intention of a new version of 386BSD however it didn't seem forthcoming, and Bill became withdrawn from the 386BSD user community. Given his apparent reluctance to work with others to improve 386BSD, a group of developers banded together to provide a cohesive point of reference and co-ordination for the ongoing development of the 386BSD system. This group itself soon splintered into two groups, NetBSD and FreeBSD, and subsequently also OpenBSD, due to personality clashes and differing opinions on the direction of the development.
Benevolent Dictator - Linus for President
The Linux Development Model
The BSDs whole system model is in stark contrast to the linux world. The kernel source tree and releases are managed by Linus, developers submit code they wish to have folded into the standard kernel source to Linus. Linus also decides when to code-freeze the kernel prior to the release of a production version.
Linux differs from the BSDs in that the person responsible for the kernel takes no responsibility for the overall system. In this respect there are various distributions based on the linux kernel plus the rest of the programs needed for Unix style system packaged up with the kernel. RedHat, Debian, S.U.S.e and Caldera are examples of distributions.
This model allows Linux to maintain a facade of unity and oneness while actually having far more diversity that in the *BSD world. However when compared to the commercial Unix world, Linux manages to be far less diverse in having a common kernel, common libraries and much of the userworld being common - mostly GNU. This seems to give Linux the best of both worlds - a less fragmented market place for those who wish to market things such as Oracle, or WordPerfect, yet with a lot of flexibility for people to create their value-added version of the system.
It has also given the illusion of a kernel and OS more open to the individual developer. The BSD variants have all come about from splits out of one or the other 'core' teams. Linus take patch submissions from anyone - within his vision of where the kernel should go. To date no-one has had sufficient problem with this that they have started a kernel development fork of their own. The kernel is only a part of the system, of course, and the Linux model seems to encourage individuals to develop new distributions. So what is seen as a negative in the BSD world is seen as business as usual in the Linux world. Overall Linux seems to have a more relaxed and accepting development model for someone wanting to start out.
Additionally having a figurehead makes it far easier for the press to deal with the Linux phenomena, and probably helps build that mindshare.
So in my opinion, the reasons that it's Linux making all the waves rather than the BSDs or the commercial Unixs comes down to low-cost of entry due to the pragmatically promiscuous hardware support and high visibility from conducting a large amount of business publicly in Usenet newsgroups (and now on the web as well) and apparent easy accessibility into the development.