10.6 The Price of Total Freedom

Free For All. Go to the Table of Contents. Vist the Gifcom.


The debate between BSD-style freedom and GNU-style freedom is one of the greatest in the free programming world and is bound to continue for a long time as programmers join sides and experiment.
John Gilmore is one programmer who has worked with software developed under both types of licenses. He was employee number five at Sun Microsystems, a cofounder of the software development tool company Cygnus Solutions, and one of the board members of the Electronic Frontier Foundation. His early work at Sun gave him the wealth to pursue many independent projects, and he has spent the last 10 years devoting himself to making it easy for people around the world to use encryption software. He feels that privacy is a fundamental right and an important crime deterrent, and he has funded a number of different projects to advance this right.


Gilmore also runs the cypherpunks mailing list on a computer in his house named Toad Hall near Haight Street in San Francisco. The mailing list is devoted to exploring how to create strong encryption tools that will protect people's privacy and is well known for the strong libertarian tone of the deliberations. Practically the whole list believes (and frequently reiterates) that people need the right to protect their privacy against both the government and private eavesdropping. Wired magazine featured Gilmore on the cover, along with fellow travelers Eric Hughes and Tim May.


One of his recent tasks was creating a package of free encryption utilities that worked at the lowest level of the network operating system. These tools, known as Free/SWAN, would allow two computers that meet on the Internet to automatically begin encoding the data they swap with some of the best and most secure codes available. He imagines that banks, scientific laboratories, and home workers everywhere will want to use the toolkit. In fact, AT&T is currently examining how to incorporate the toolkit into products it is building to sell more highspeed services to workers staying at home to avoid the commute.


Gilmore decided to use the GNU license to protect the Free/SWAN software, in part because he has had bad experiences in the past with totally free software. He once wrote a little program called PDTar that was an improvement over the standard version of Tar used on the Internet to bundle together a group of files into one big, easy-tomanage bag of bits often known affectionately as "tarballs." He decided he wasn't going to mess around with Stallman's GNU license or impose any restrictions on the source code at all. He was just going to release it into the public domain and give everyone total freedom.


This good deed did not go unpunished, although the punishment was relatively minor. He recalls, "I never made PDTar work for DOS, but six or eight people did. For years after the release, I would get mail saying, 'I've got this binary for the DOS release and it doesn't work.' They often didn't even have the sources that went with the version so I couldn't help them if I tried." Total freedom, it turned out, brought a certain amount of anarchy that made it difficult for him to manage the project. While the total freedom may have encouraged others to build their own versions of PDTar, it didn't force them to release the source code that went with their versions so others could learn from or fix their mistakes Hugh Daniel, one of the testers for the Free/SWAN project, says that he thinks the GNU General Public License will help keep some coherency to the project. "There's also a magic thing with GPL code that open source doesn't have," Daniel said. "For some reason, projects don't bifurcate in GPL space. People don't grab a copy of the code and call it their own. For some reason there's a sense of community in GPL code. There seems to be one version. There's one GPL kernel and there's umpty-ump BSD branches."


Daniel is basically correct. The BSD code has evolved, or forked, into many different versions with names like FreeBSD, OpenBSD, and NetBSD while the Linux UNIX kernel released under Stallman's GPL is limited to one fairly coherent package. Still, there is plenty of crosspollination between the different versions of BSD UNIX. Both NetBSD 1.0 and FreeBSD 2.0, for instance, borrowed code from 4.4 BSD-Lite. Also, many versions of Linux come with tools and utilities that came from the BSD project.


But Daniel's point is also clouded with semantics. There are dozens if not hundreds of different Linux distributions available from different vendors. Many differ in subtle points, but some are markedly different. While these differences are often as great as the ones between the various flavors of BSD, the groups do not consider them psychologically separate. They haven't forked politically even though they've split off their code.


While different versions may be good for some projects, it may be a problem for packages like Free/SWAN that depend upon interoperability. If competing versions of Free/SWAN emerge, then all begin to suffer because the product was designed to let people communicate with each other. If the software can't negotiate secure codes because of differences, then it begins to fail.


But it's not clear that the extra freedom is responsible for the fragmentation. In reality, the different BSD groups emerged because they had different needs. The NetBSD group, for instance, wanted to emphasize multiplatform support and interoperability. Their website brags that the NetBSD release works well on 21 different hardware platforms and also points out that some of these hardware platforms themselves are quite diverse. There are 93 different versions of the Macintosh running on Motorola's 68k chips, including the very first Mac. Eighty-nine of them run some part of NetBSD and 37 of them run all of it. That's why they say their motto is "Of course it runs NetBSD."


The OpenBSD group, on the other hand, is emphasizing security without compromising portability and interoperability. They want to fix all security bugs immediately and be the most secure OS on the marketplace.


There are also deep personal differences in the way Theo de Raadt, the founder of OpenBSD, started the project after the NetBSD group kicked him out of their core group.


For all of these reasons, it may be hard to argue that the freedoms provided by the BSD-style license were largely responsible for the splintering. The GNU software users are just as free to make new versions as long as they kick back the source code into free circulation. In fact, it may be possible to argue that the Macintosh versions of some of the GNU code comprise a splinter group because it occurred despite the ill will Stallman felt for the Mac.