FreeBSD and the GPL

Linus Torvalds has said Linux wouldn't have happened if 386BSD had been around when he started up. We trace the history of FreeBSD and how it's affected the open source world.

The first free Unix-like operating system available on the IBM PC was 386BSD, of which Linus Torvalds said in 1993: "If 386BSD had been available when I started on Linux, Linux would probably never have happened."

386BSD was a direct descendant of Bill Joy's Berkeley Software Distribution, which was the core of SunOS and other proprietary Unix distributions. 386BSD and the patchkit for the port to the Intel chip formed the basis for FreeBSD, NetBSD and OpenBSD, which have carried the torch for BSD and open source Unix to this day.

Lars Wirzenius, a student friend of Linus Torvalds, recalled: "FreeBSD didn't exist then. 386BSD did, but it wouldn't have worked on my computer, since it required a 387 co-processor. I used SCO Xenix from fall 1991 to spring or summer of 1992, until Linux matured enough to be a usable environment for writing code."

Alan Cox tells a similar story. When he saw the 386BSD announce he thought "Woah! - finally there is something worth running on a PC."

The trouble was that 386BSD needed floating point hardware, and Linux didn't. "I hadn't got the floating point chip, which was 70 quid at the time, so I installed Linux," he said.

386BSD was a long time coming. The first public release (Version 0.0) was on St. Patrick's Day, 1991, and was barely functional. Most users had to wait until Bastille Day, 1992 for the first functional release (Version 0.1).

A year or two earlier, a couple of small fixes, and Linux may never have seen the light of day.

What ifs

The most popular of the BSDs is FreeBSD. FreeBSD, like the other BSDs, had a 15 year start on Linux, based as it was on BSD Unix, which had played a large part in defining the standards for operating systems and networking that have held good to the present day. For much of its early history, FreeBSD was technically superior to Linux and still retains an enviable reputation for reliability.

So it is interesting to speculate why Linux, and not FreeBSD, became the flag bearer, not only for free software, but for Unix-like operating systems.

BSD had been around for a long time, and Linux grew from small beginnings. Most of the early contributors to Linux and the projects that sprang from the early success of Linux, were hobbyists and students with no great history in computing, yet GNU/Linux, not FreeBSD, was adopted by the traditional Unix companies to become the universal operating system that Unix had promised to be.

Could have been a contender

FreeBSD didn't stagnate, or lose, and is probably healthier that it ever was, big on networking devices, friendly with web hosting companies and big with Apple, but hasn't had the impact of Linux on the rest of the computing industry, despite an enviable record for technical excellence.

Any number of reasons can be given for this. During the period 1992-1994, when GNU/Linux was beginning to emerge as a viable option for Intel servers, the BSDs were the subject of a copyright dispute between USL and BSDi, which was indisputably a setback to uptake and development, but the BSDs bounced back from this setback and were the favoured solution for many web and ftp servers during the dotcom boom.

In 1999, "Walnut Creek CD-ROM set the world record for most bytes of network traffic processed in 24 hours by a single host: One single-processor PII box (a then-famous FreeBSD ftp server) handled 1.39 terabytes. (This burst of traffic was, ironically, occasioned by the release on that machine of Slackware 4.0.)"

Freedom is as freedom does

The persistent argument between Linux and BSD users surrounds the meaning of, and the parameters around, the word 'freedom', and how this is reflected in the licensing of the software.

The BSD licence is permissive, in that the code can be repackaged in any form, re-labelled and absorbed into proprietary formats, as long as attribution is given. Changes to the code can be passed on in a closed format.

The GPL also allows third parties to take the code, repackage it, and pass it on in any form they wish, but ensures reciprocity by obliging those who distribute the code to pass on any changes under the same licence, thus preventing forks and preserving the free and open source nature of the code.

BSD users have always argued that a permissive licence is more friendly to business, protects 'IP' and offers real freedom to the end user who is able to do as he or she wishes with the software. Advocates of Free Software argue that the GPL not only guarantees the freedom of the code, but also helps to build recopricity and community, and ensures open standards and the continuity of the code which are vital if people are going to interoperate in a networked world.

After the war

The Unix companies had their fingers burnt with the fracturing of Unix and open standards during the eighties and nineties. If they had learned anything from the "Unix wars", it was that proprietary operating systems, even if they are your own, cost money and create hurdles for other parts of your business - unless you have a monopoly on the operating system, as Microsoft does, or in its own corner of the market, as Apple does.

Solaris, which was developed by Sun Microsystems, wasn't quite like Irix (SGI), which wasn't quite like HPUX (HP), which wasn't quite like AIX (IBM), which wasn't quite like Tru64 (DEC). And none of them necessarily played well together, which complicated the market for ISVs and inhibited the development of common interfaces and utilities.

Unix had been touted as the universal operating system, and each of these companies was pouring huge resources into developing proprietary versions of the same operating system at the expense of the hardware, services and userland software that were their core business.

Liberating the OS

The arrival of GNU/Linux opened up new possibilities. Once more than one hardware company had formed a commitment to Linux it became obvious that there was a mutual advantage in contributing back to the project, and they did. The framework that made this possible was the GPL.

The release of core chunks of corporate code accelerated the development of Linux and ensured its success in the enterprise, enhanced by its portability across a wide range of hardware.

Adoption of FreeBSD was equally plausible on a technical level but, assuming that the BSDs were ever considered for a similar role the BSD licence made it easier to fork the code, which retracted the advantages of being "open source" - which were commonality, interoperability, and the shared benefits of collaboration with your competitors.

GNU/Linux also had the political advantage of being an independent implementation of the POSIX specification, based on Unix Sys V R4, which was the basis for commonality among the proprietary versions of Unix.

The GPL encourages commoditisation, and at the system level, commoditisation reduces costs and benefits everybody.

Commoditisation of the operating system ensures commonality of standards. This makes it easier to port software between different machines and architectures, and makes it easier to design hardware itself, which increasingly operates within very slim margins.

Dozens of companies contribute to the Linux kernel, and get the benefits of the contributions of all the others. They do not contribute out of generosity, but because this effect has made it possible to port anything to anything at a vastly reduced cost, because the costs are shared.

This effect may or may not have been a factor in the original adoption of GNU/Linux, but has worked to the long term advantage of its many participants.

Very few companies are in the pure operating system business. The operating system is a facilitator, not the business. Companies don't use GNU/Linux because of sentimental attachment to Linux, or the GPL, or "open source". They use GNU/Linux and free software because it makes business sense. And the GPL, which gives assurance of the continued freedom and commonality of the code, is the driver behind it.

Changing the world

If FreeBSD had been licensed under the GPL things might have been different. But then again, probably not.

The BSD hackers have an aphorism that speaks some truths, which says "BSD is what you get when a bunch of Unix hackers sit down to try to port a Unix system to the PC. Linux is what you get when a bunch of PC hackers sit down and try to write a Unix system for the PC."

This aphorism speaks of a difference in the cultures that is greater than the words contained within it.

Free software was a world changing idea that the Linux community managed to both capture and encapsulate, and the atmosphere of do-it-yourself - anyone can do that - I can do this - you can do that - which surrounded GNU/Linux made it possible for everyone and anyone to become involved - and they did, and ported GNU/Linux to everything and anything, and if it didn't work, there was every chance that it might later.

The model that grew around Linux gave everybody the chance to take part and make a difference. You could do anything with GNU/Linux. If you couldn't write code you could write documentation, host web sites, make friends or sell T-Shirts. The GPL worked well for the long term interests of the Unix companies, but the motive for adopting GNU/Linux over FreeBSD almost certainly had more to do with its growing ecosphere and popularity among a new breed of developers who brought something different to the mix.

Part of this effect was that there was a project to port Linux to the IBM mainframe, which was taken up by a skunkworks project inside IBM - from which other things followed. Linux was already available for IBM hardware, and had become scalable from the wristwatch to the mainframe, because those who worked on it, and those who used it, said it would.

The disco years

The reverberations from the Balkanisation of Unix in the eighties, the legal and political furore that engulfed the BSDs in the early nineties, and the excitement around Linux worked against the adoption of BSD - but the BSD developers didn't care for the hubbub that Linux attracted anyway.

Jordan Hubbard, one of the founders of the FreeBSD project put his feelings into words. "If FreeBSD were a respected musical entertainer, I would want her to be the one who stuck to doing the kind of music she liked and always did it well", he wrote, "rather than horrifying us during the disco years by suddenly putting on spandex pants and lip-syncing to formulaic, song-factory material, or shrieking out heavy-metal lyrics in heavy makeup with Axel Rose 10 years later."

The Unix companies took notice of Linux, partly because of its burgeoning popularity and the developer communities that came with it, partly because of its modularity, which made it adaptable and portable, and partly because the licence worked in its favour. If IBM lost by contributing code and features to the Linux kernel, it gained from the contributions of HP and Intel and SGI...

The BSD licence puts its faith in the better side of human nature, and BSD users have always argued that a permissive license is more friendly to business, protects 'IP' and offers real freedom to the end user who is able to do as he or she wishes with the software.

This assumption has worked for Apple and those device manufacturers with a pressing 'need' to guard their "IP", but the GPL has proved its greater value as a collaborative tool - because community, commonality, interoperability and continuity of the software are useful side effects of the licence - and the software remains free.