Not many Linux-come-latelies know this, but Linux was actually the second open-source Unix-based operating system for personal computers to be distributed over the Internet. The first was 386BSD, which was put together by an extraordinary couple named Bill and Lynne Jolitz. In a 1993 interview with Meta magazine, Linus Torvalds himself name-checked their O.S. "If 386BSD had been available when I started on Linux," he said, "Linux would probably never have happened."
Linux obviously did happen. Why? Eric Raymond, the open-source evangelist, believes it came down to a question of personal style. In his A Brief History of Hackerdom he praises 386BSD at the expense of the "crude" versions of Linux that were around at the time.
The deciding factor, argues Raymond, was not technological but social. Torvalds, even while practicing rigorous quality control in determining what goes into the Linux kernel and what stays out, nevertheless welcomes contributions and is remarkably generous in sharing credit.
The Jolitzes had a very different style. Like Torvalds, they placed a premium on quality control, but unlike him, they seem to have tried to control quality by doing most of the work themselves. This inevitably made their release cycle slow, but it was also an implied snub to would-be collaborators -- who took their contributions elsewhere.
The Jolitzes' insight that the world needed an open-source Unix-like operating system running on Intel's x86 microprocessors has been triumphantly borne out by history. Yet outside the Unix community they remain virtually unknown. In trying to earn most of the credit for their insight, they lost nearly all of it.
Bill and Lynne Jolitz are charming and forthcoming. Their chemistry as a couple is evident; they interrupt each other fluidly and finish each other's sentences. Their pride in their achievements is equally evident. Lynne is heated in her defense of Bill's reputation. So is Bill.
In 1989 or 1990, Lynne remembers, the Berkeley distribution had gone from being available on the most relevant machines to being limited to what the Jolitzes saw as the most irrelevant. "There was an HP [Hewlett-Packard] port in progress and nothing else," she says. "Since we were looking for recreation, we offered to do one for the 386." "Completely as a lark," Bill adds.
Intel's now-ubiquitous chip design for personal computers, the x86, was then in its infancy. This daunted the Jolitzes not at all. "The choice of architecture was obvious to us then," Lynne says. "People said why not [Digital Equipment Corp.'s rival chip] Alpha? But it was clear that the x86 architecture was going to be the dominant player." "Some of the most promising people I knew at the time were hoping the 386 would die an early death," Bill observes. "It was a harbinger," says Lynne, "way ahead of its time."
"I had been talking to Intel engineers," Bill says. "Their plans were to double performance every 18 months, and they believed they could keep that up for close to a decade." (They did.) "The rate of improvement on a VAX was not nearly so competitive. The 386 was already faster than a DEC mainframe even without that happening. Yet a senior researcher at DEC asked me, 'When will you stop using Unix on these penny-ante machines?'"
"They figured it was a DOS chip, so it couldn't be anything interesting," says Lynne, witheringly. In fact, the Intel architecture was far from perfect. "Parts of the chip were visionary, parts were terrible," she recalls. "It was like a camel." Bill agrees: "We had a joke that one day we'd be working on the 1-billion-86, and they still wouldn't get segments [a method for storing memory] right." In spite of its problems, the Jolitzes believed in Intel's chip, and the Unix port went ahead.
The Jolitzes released Version 0.0 of 386BSD on St. Patrick's Day 1991. It was barely functional, but available to anyone with 30 floppy disks to spare. The system shipped under a BSD-style software license, permitting it to be freely distributed and modified as long as copyright attribution remained intact. But the Jolitzes knew even as they announced it that this release was not enough.
"As we were doing and documenting the port, we realized we'd eventually have to do a complete release," Lynne says. "This was a very arduous process. We had to throw away all the licensed portions. We started to do novel work. We realized that a lot of what we had thrown away were first cuts. It's ironic that people have spent so much time and money on stuff developers just threw in."
The Jolitzes believed that from its origins as a series of quick, if elegant, hacks, Unix had hardened into a series of unquestioned rituals for getting things done. Many of these rituals were fossils -- work-arounds for hardware that no longer existed. "It's amazing how much we were still tied to the past," Lynne says. "The physical machines had been hauled away, but elements of the operating systems are still being implemented in the same way." She believes today's Linux and BSD developers are carrying on that unhelpful tradition.
"It's like they're doing incantations," she says. "They're repeating what they've been taught, and they don't know what it means."
"There are all these artifacts of minicomputers still left in," Bill agrees. One example is the allocation of address space and garbage collection. Put simply, this is how the machine decides where to put numbers it needs to remember, and when to clean up numbers it no longer needs. Bill criticizes what he describes as the "linear" idea of address space enshrined in Unix: Memory is assigned to the next free block of appropriate size. "It's adequate for simple memory allocators but a massive problem for large allocations and clusters," he says. "You end up with lots of little pools of memory."
"There are ways to solve this. It's cut and dried," says Lynne. "You can ask anyone. Yet even trying to implement the changes necessary to improve the system results in incredible controversy, because you're removing something somebody knows. You have to have been there to know that a lot of these elements of the operating system were very rough first cuts."
"The Unix systems then offered eight or 10 different competing mechanisms to do basically the same thing," Bill says. "The question in 386BSD was, How many of those could we get rid of? We increased the capabilities and reduced the size by a factor of 35."
This slash-and-burn approach to the work on the new release spawned a series of articles in the respected journal Dr Dobbs. Those articles may have been even more influential than the code. A generation of O.S. developers -- including Torvalds, then a student in Finland -- studied and learned from them. On Aug. 25, 1991, Torvalds posted a fateful note to a Usenet news group devoted to the experimental operating system Minix: "Hello everybody out there using minix," he wrote. "I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. This has been brewing since April, and is starting to get ready."
If this blithe note represented a serious threat to their work, it didn't register with the Jolitzes. The articles in Dr Dobbs primed their audience for the release of 386BSD 0.1 on Bastille Day 1992. The tone of their announcement forms an illustrative contrast with that of Torvalds:
"We are pleased to announce the official release of 386BSD Release 0.1, the second edition of the 386BSD operating system created and developed by William and Lynne Jolitz and enhanced further with novel work and contributions from the dedicated 386BSD User Community. Like its predecessor, 386BSD Release 0.0, Release 0.1 comprises an entire and complete UNIX-like operating system for the 80386/80486-based AT Personal Computer."
There were 250,000 downloads of 386BSD 0.1, Lynne remembers. "We had people showing up on our doorstep," Bill says. "It was a fun time," Lynne agrees. "We thought there would be maybe a few hundred downloads. So much for the power of the press!" Work continued apace. The Jolitzes aimed high. "When you do a release, it takes months and months to shape it up to make it usable," says Lynne, demonstrating a distinctly different approach from the Linux mantra: Release early, release often.
Instead, in December 1993, there came 386BSD 1.0, a revised version with new internal interfaces, allowing the individual components of the operating system to talk to each other more cleanly and efficiently. But somehow, in the 18 months between 0.1 and 1.0, the project lost its momentum. Version 1.0 was widely criticized for being too little, too late.
"The idea behind what we were after was a system that always had network access, that could detect faults and repair itself on the fly," explains Bill, heaving a sigh. "Sometimes you get too far into the future," he remarks. "You have to stop and wait to see the future catch up."
By the time 1.0 was released, the x86BSD user community had fragmented. Some developers had moved to the more active and open NetBSD and FreeBSD teams. Others had jumped the fence to Linux. A lawsuit between Unix copyright holder AT&T and University of California at Berkeley was also partly to blame. But the Jolitzes, too, were criticized for their autocratic style. The strength of their convictions did not endear them to people who wanted to do things differently.
In return, they say their intellectual heirs have largely missed the point. "The xBSDs don't have any understanding of where we were heading," says Lynne. "They're looking to the past. We look to it as: Don't repeat the mistakes of history. When you haven't been involved, you don't know that Bill Joy threw something in late one night, or Dennis Ritchie wrote something up as an expedient. We take so much for granted, all the knowledge that we've accumulated, that we forget how much we worked for it. Someone writes it up very simple and they've solved it for us. We miss the rigor of solving it for ourselves."
"Yet we continually re-solve the same problems," Bill says. "Why something and why not another thing? It's a difficult discipline. Ninety-nine out of 100 things may work, but only one may be the ultimate. Striving for the ultimate best is part of the Berkeley experience."
Strive as they might, 386BSD lost its early lead over Linux, never to regain it. The Jolitzes ended as they began: voices crying in the wilderness. Their great insight into the software that came before them was the extent to which it was human and subjective and fallible, the partly accidental product of the conditions that brought it into being. Their great flaw, perhaps, was to fail to realize that the same principle applied equally to their own work.
Their code lives on in FreeBSD, NetBSD and OpenBSD, which many believe are technically superior to Linux. FreeBSD is often called the Net's best-kept secret. It keeps Yahoo up and running and is at the heart of Apple's Darwin operating system. The recent merger of Walnut Creek CD-ROM, the largest distributor of FreeBSD, with the commercial BSDi O.S., should infuse the operating system with fresh life.
If the glory of being Torvalds evaded them, the Jolitzes certainly helped prepare the way. With their most recent venture, InterProphet, the Jolitzes aim with typical hubris to eliminate the TCP/IP (Transmission Control Protocol/Internet Protocol) bottleneck and move bits around the Internet at light speed. Whether or not they succeed, they could hardly have chosen a more revealing name.