From Unix to Linux: Key Trends in the Evolution of Operating Systems (Part 4)

At a conference in the late 1980s, I got to hear a talk by one of the celebrated developers of Unix, Rob Pike. An audience member asked him whether he thought Unix was getting long in the tooth and whether it might be time for a new operating system. As I remember, Pike answered that operating system research was pretty mature and that Unix was perfectly suitable for the foreseeable future. I'm not sure Pike totally subscribed to that view, because he also talked about an experimental research operating system he had invented, Plan 9 from Bell Labs. But there's no doubt that the computer field by that time had bet its future on Unix (with the exception of Microsoft, whose development of Windows NT was described in the previous article).

It turns out that free and open source developers were also happy with Unix. As the first installment of this series explained, Unix set the stage for free and open source operating systems, even though the lawsuit against BSD showed that the owners of Unix could be rather nasty about protecting their perceived rights. In this final article of the series, I'll look at how the legacy of Unix was ultimately pushed forward by free and open source movements. (Feel free to consult the timeline at the end of part 1 while reading the articles.) 

The GNU Project Creates a Free Unix

We saw earlier in this series that BSD appealed to many users because they didn't have to pay the stiff fees that AT&T charged for Unix. Richard Stallman, hacker extraordinaire, saw an even greater opportunity in the mid-1980s. With a characteristic flourish, he announced a Unix clone not with a press release, but with a manifesto. In addition to listing his technical roadmap in some detail, this manifesto issues a head-on challenge to the notion of intellectual property (a term Stallman later identified as harmful in itself) and hinted at a new way to release software, which Stallman eventually codified in the historic GNU General Public License, also called "copyleft."

Stallman had been making creative contributions to computing for a long time. At the point when he started his GNU project, the technical achievement for which he was best known was Emacs, a text editor that ran on a huge range of systems and had been ported to Unix. Although Bill Joy's vi editor has always been more popular among Unix and GNU/Linux users, a vociferous defense of Emacs rings out across mailing lists. People on both sides get quite emotional. At a recent conference I attended, the Code of Conduct explicitly prohibited harassment based on race, gender, nationality, sexual preference, disability, or choice of text editor.

But why would Stallman choose Unix as the model for his new operating system? As his manifesto candidly asserts, "Unix is not my ideal system, but it is not too bad." The key lay in the many thousands of users who had pledged allegiance to Unix. Therefore, "a system compatible with Unix would be convenient for many other people to adopt."

As mentioned in the first article of this series, Unix dates back to about 1970. Already, in the succeeding 15 years, computing had changed tremendously. The GNU project had lots of good ideas to take advantage of the new environment.

For instance, many Unix utilities dealt with limited memory by imposing arbitrary limits on all kinds of things, such as the number of tokens that a program could use (limited by the yacc compiler) or the number of arguments allowed on a command line (leading to a special utility called xargs). By imposing limits, Unix developers could just allocate one memory buffer of fixed size and avoid the overhead of expanding the buffer during the program run. The GNU project didn't stand for this laziness. Its coding standards said, "Avoid arbitrary limits."

Blessedly, GNU also relaxed Unix's uncomfortably restrictive single-character convention. Thus, if you want a grep search to be case-insensitive, you don't have to specify -i, but can use the double-hyphen version --ignore-case. This makes scripts more self-documenting.

GNU really made an impression on the computer field, which took a cavalier attitude toward free software at that time, through the release of the GNU C compiler and C libraries in the late 1980s. These were so much better than other C compilers—producing very efficient output—that developers throughout the proprietary industry were kind of stunned. Free software clearly had a future.

But the kernel—literally speaking—of GNU was missing. It turned out to demand a totally different level of complexity from the utilities and libraries Stallman and his colleagues were racing to develop. They called their kernel project Hurd, and decided to use the microkernel concept that we saw in Mach (discussed in part 2 of this series). Whether because of this design decision or some other weakness (in commenting on this article, tech journalist Don Marti suggested that they just tried to shovel too much in), Hurd lagged woefully behind the rest of GNU. Thus, GNU was like a bicycle with a fine frame, handlebars, brakes, and gear shift, but no wheels. Its users had to depend on proprietary vendors for the most critical part of the operating system.

The gap, of course, was filled in 1991 with the preliminary release of Linux. I won't bother to go over the oft-told story of how Linus Torvalds, ensconced at the University of Helsinki while earning his bachelor's and master's degrees, invented the operating system that took over much of the world. Torvalds is quite vocally opposed to microkernels and implemented Linux with a fairly conventional architecture. Apparently he, like Stallman, thought that Unix was "not too bad," because he chose to emulate it.

What's more important for this narrative is that Torvalds relied heavily on the GNU project. He used the GNU compiler to build his code, linked it against the GNU libraries, and ported the GNU shell Bash as one of his first applications. The GCC compiler still evolves in tandem with Linux, such as in security improvements.

The GNU project has urged people for the past couple decades to use the term GNU/Linux for the complete operating system, hoping to get some of the attention (and funding) they deserve for this major computing advance. They've made hardly any headway, but I try to honor the request in this series.

Open Culture

Now we can turn to the reason Linux has made great strides (and avoided forking of the kernel) while BSD failed in both areas. Torvalds's 1991 release was timed to take advantage of the well-known features provided by the Internet to facilitate collaboration. People from around the world now collaborate in real time. On top of this, you can add modern version control, testing with continuous integration/continuous development (CI/CD), and bug tracking.

The success of open culture has attracted plenty of research, such as Yochai Benkler's 2007 book The Wealth of Networks and Gabriella Coleman's 2012 anthropological coverage of free software, Coding Freedom. Such research efforts helped free and open source software developers better understand their community and present their efforts more effectively to the larger world. The research made them a part of history and gave them a boost in the popular media. Eventually,  business took note.

Just as BSD's initial appeal rested largely on cost-free licensing, Linux was noticed by the growing data centers of the 21st century as a great operating system to deploy en masse. Proprietary systems were burdened not only by their cost, but by the sheer bureaucratic overhead of licensing and of policing the licenses. Google would not have gotten far without a free operating system like Linux. When Amazon birthed the modern cloud era with Amazon Web Services in 2006, it ran Linux on both the hosts and the guests.

By the late 1990s, all the companies who had offered slightly different versions of Unix realized—those who survived—that any applications and services they hoped to offer in the future would have to run on GNU/Linux. Offering an operating system that anyone could install for free had to become central to their business strategies. For instance, IBM officially made the move to GNU/Linux in 2000. In 2019, they bought the leading commercial supplier of GNU/Linux, Red Hat. Even Oracle, known for databases rather than operating systems (despite its purchase of Sun Microsystems), licenses a version of GNU/Linux.

The academic and business acceptance of free and open source software demonstrates how much the movement has changed since the heyday of BSD. The Linux kernel community is by no means ideal. In fact, Torvalds himself admitted his own contributions to a negative atmosphere when stepping down from leadership in 2018. But the community is overall successful. Not only has it gracefully incorporated the work of thousands, including many first-time contributors, but it manages to avoid forking and fragmentation even when users such as Google make enormous changes.

I’ll end this series with some comments about Linux and the morale of the free software community. Richard Stallman pulled together the free software movement on ethical grounds with the GNU project. Open source advocates became more self-conscious at an open source summit held by O'Reilly in 1998, the same year that a major free software conference called LinuxWorld started. (Various free software professionals also cite 1998 as a turning point for free software.)

Fans of free and open source software fended off lazy defamations of the software, forming themselves into a community. But one external threat really plunged this community into the crucible that forged it: the SCO copyright lawsuit against Linux.

This lawsuit, which ran from 2003 to 2016 and drew in numerous participants, had no substance to rest on. Normally, it would be just another instance of malicious and unethical parties sitting on a pot of money and using it to cause legal mischief. But the lawsuit was important because it galvanized the free and open source communities. Although they could do nothing to bend the tedious legal machinations taking place in the courts, they could speak up publicly as cheerleaders for Linux in particular and free software in general.

The community huddled especially around an unlikely setting: a now defunct site called Groklaw set up by an obscure paralegal named Pamela Jones. On some days, thousands of messages would be posted to Groklaw about the SCO suit. The participants took on other issues in open source and the law as well. Jones suffered from the onslaught of cyberviolence that many women have experienced online, and at one point feared for her physical safety. But her initiative helped to cement an open source consciousness.

Unix in the Field Today

Millions of people pick up cell phones and tablets every hour of the day. If they have Android devices, they are running apps on a version of Linux heavily altered by Google. Apple devices, in turn, run a version of BSD adapted by Apple and released as the open source Darwin operating system. Whatever these users do with their devices, they probably interact somewhere in the cloud with servers running GNU/Linux. So the legacy of Unix is everywhere. We can understand our computers better by understanding how they got to be the way they are.

See also:

Comments