0

The Berkeley Software Distribution

 7 months ago
source link: https://www.abortretry.fail/p/the-berkley-software-distribution
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.
neoserver,ios ssh client

The Berkeley Software Distribution

UNIX is always litigious

Feb 5, 2024

The first public presentation of UNIX was made at the Symposium on Operating Systems Principles at the IBM Research Center in Yorktown Heights in October of 1973. Dennis Ritchie is quoted as saying it was beautiful day, and Ken Thompson layered his own memories with a thick coating of modesty:

The audience was several hundred. I was pretty nervous. The response was the normal, polite applause. I don't recall any questions.

https://d1bqvdqmynqyrb.cloudfront.net/_next/image?url=https%3A%2F%2Fresearch-website-prod-cms-uploads.s3.us.cloud-object-storage.appdomain.cloud%2FYKT_Andydrone_0055_b02e15eac1.jpg&w=1200&q=75
The IBM Research Center in Yorktown Heights, image from IBM

In contrast to Thompson stating that he didn’t recall any questions… the two were immediately asked for copies of the operating system, and this wasn’t a simple matter for AT&T. The American Telephone and Telegraph company had been established as a legal, nation-wide monopoly in the USA via the Kingsbury Commitment in late 1913. This position was further cemented during World War I when the United States’ federal government nationalized the phone system. Following the end of the war, the phone system went back into the hands of AT&T and the company achieved some rather remarkable regulatory capture with the Willis Graham Act of 1921 and the Communications Act of 1934. This complicated legal history presented a very serious question to AT&T’s legal department when people began asking for UNIX: were computer operating systems part of the common carrier services of the phone company and therefore required to be distributed? If they were not, then the company needn’t distribute UNIX at all, but if they were indeed, then it was only a matter of time before the FCC would force AT&T to distribute UNIX. In the end, the decision was made to distribute UNIX to universities and research centers at the cost of the media plus shipping. Somehow, quite magically, this resulted in a nice round number of $150.00 (or around $927 in 2024) for Katholieke Universiteit in Nijmegen, The Netherlands in December of 1974. There are some rather important points within the license that Katholieke was granted. Licensees were granted source code for the operating system as computer systems of the day weren’t standardized in any meaningful way. The license then granted free use and modification within the university, but disallowed any spread outside. Specifically, the license mentioned that employees and students had access.

https%3A%2F%2Fsubstack.com%2Fimg%2Fattachment_icon.svg
UNIX license from Western Electric to Katholieke
438KB ∙ PDF file
Download
UNIX license from Western Electric to Katholieke

At this point in the computer industry, user groups were somewhat common. IBM had SHARE, and that had inspired similar groups around DEC, Burroughs, Rand, and so on. It was therefore somewhat natural that a group would form around UNIX. Thus, Mel Ferentz and Lou Katz organized a meeting of UNIX users in New York on the 15th of May in 1974. Around twenty people were in attendance, and by this time there were just over thirty UNIX installations outside of AT&T and its subsidiaries. This user group grew to become USENIX over time. Following the user group’s formation, a mailing list started. From the first list on the 30th of July in 1975, we have the following organizations listed as installation/user sites: AT&T, Brooklyn College, Carleton College, Case Western Reserve University, The Children's Museum, City University of New York, Columbia University, Duke Medical Center, East Brunswick High School, Harvard University, Hebrew University of Jerusalem, Heriot-Watt University, Johns Hopkins University, Knox College, Naval Postgraduate School, Oregon Museum of Science, Polytechnic University of NY, Princeton University, Rand Corporation, St. Olaf College, Stanford University, The Spence School, University Catholique de Louvain, University of Alberta, University of California (Berkeley), University of Manitoba, University of North Carolina, University of Saskatchewan, University of Texas (Dallas), University of Toronto, University of Utah, University of Waterloo, and the University of Wisconsin. As we know from the license granted to Katholieke, there were more UNIX user sites than this, but they weren’t members of the user group (or at least not at first).

https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F3926f41f-c121-450b-8e10-e46ccc1c5448_652x522.jpeg
Dennis Ritchie (standing), Ken Thompson at the teletype, PDP-11 1972

In this early time period, UNIX only ran on the PDP-11, but that changed at Princeton where UNIX was ported to the IBM 360 in 1976. The next target was the Interdata 8/32 in 1977 which was undertaken by Ritchie and Steve Johnson (author of yacc, lint, pcc). But, porting efforts took off only after John Lions at the University of New South Whales wrote a commentary on the UNIX sources and distributed them as a book, Code and Commentary, for teaching students about operating systems. Western Electric tried to stop dissemination, but this was apparently impossible. Likewise, modifications of UNIX began circulating following the release of Lions’ book, and a culture we would recognize today as “open source” began to develop helped in no small part by AT&T’s policies regarding UNIX that essentially stated UNIX would have no advertising, no support, no bug fixes, and payment in advance. To color the time period more thoroughly, Bob Kahn and Vint Cerf published the first description of TCP/IP in 1974 and by January of 1976 there were sixty three hosts on ARPAnet, and UNIX while being used globally would run only on hardware that cost over $9000 (around $48000 in 2024).

Professor Robert (Bob) Fabry was at the Symposium on Operating Systems Principles where UNIX had first been announced and he was very excited. Returning to UC Berkeley where he was then employed, he assembled a group to purchase a PDP-11/45. As this was a large purchase, he coordinated the departments of computer science, math, and statistics. With the machine purchased, Fabry then ordered a tape of UNIX from Thompson. The actual installation of UNIX was first undertaken by Keith Standiford in January of 1974. In 1973/1974, it was somewhat routine for Thompson himself to be involved in nearly every UNIX installation for a licensee. The folks at Berkeley seemed to be interested in doing everything themselves, but things didn’t go well. Eventually, Standiford reached out to Thompson, and Thompson would connect to the University’s 11/45 over a three hundred baud acoustic coupler to remotely debug crash dumps from New Jersey. I personally like to imagine that it was a Novation CAT 300, but I haven’t been able to find a model number of the modem, and I haven’t found any reference to what system Thompson was actually using. Plus, the Novation CAT 300 wouldn’t be released for several years.

Following the purchase of the PDP-11/45, the departments involved began having issues with scheduling time on the machine. Berkeley bought several more computers. One of these was a PDP-11/70, and its arrival coincided with the arrival of Thompson as a visiting professor. Thompson, Bob Kridle, and Jeff Schriebman then setup V7 UNIX on the 11/70. Shortly after the installation was completed, two graduate students, Chuck Haley and William Nelson (Bill) Joy, arrived on campus. They were intrigued by the computer system, and they began hacking on Thompson’s Pascal compiler. Within a few weeks (from what I have been able to find), the teletypes attached to the 11/70 were replaced with ADM-3 screen terminals.

undefined
ADM-3, image by Chris Jacobs, CC BY-SA 3.0

For Bill Joy, using ed or em on a screen terminal wasn’t really sufficient. He took a detour from hacking on Pascal, and he created the ex editor. Together with Pascal, the V7 UNIX at Berkeley was notably better than other UNIX systems of the time. In early 1978, Bill Joy began offering the Berkely Software Distribution. The first copy we know to make it out of Berkeley was to Tom Ferrin at UCSF on the 9th of March in 1978. The license was signed on the 13th, the media was an 800 bpi tape, and on the tape was the “Unix Pascal system” and the “Ex text editor.” Credits were made to W.N. Joy, S.L. Graham, C.B. Haley, K. Thompson for Pascal, and to W.N. Joy for Ex.

Bill Joy, Silicon Valley Visionary, on the Future of Batteries ...
Bill Joy

BSD (now referred to as 1BSD) shipped around thirty copies in the first half of 1978. Somewhere around June, Pascal had been further improved, the C shell had been written, vi had been written (by Joy), and termcap had been written (by Joy). These new tools comprised the bulk of the Second Berkely Software Distribution or 2BSD. Joy was the man running the show, and he’d answer the phone, create the tapes, incorporate feedback, package, and mail the software. Seventy five copies of 2BSD were sent out.

The DEC VAX was first introduced in 1977. It was a 32 bit ISA with virtual memory. In the first half of 1978, Professor Richard Fateman at Berkeley was looking for a machine with a lot of memory for a project of his. The VAX-11/780 met his requirements and his budget, and he got some folks together to purchase it with a bit of help from the National Science Foundation. The VAX did have one disadvantage in the minds of those at UC Berkeley; the VAX ran VMS. Luckily, UNIX had already been ported to VAX as UNIX/32V (V7 UNIX variant) by John Reiser and Tom London at Bell Labs. This port, however, didn’t take advantage of the main VAX feature, virtual memory, which limited the available memory to 1MB.

This had to be fixed. For Fateman, virtual memory was a requirement, and UNIX was a requirement. He then contacted Professor Domenico Ferrari about getting virtual memory support in UNIX. One of the graduate students working with Ferrari, Özalp Babaoğlu, then set about this task. Along the way, Babaoğlu reached out to Joy for assistance. Joy helped integrate Babaoğlu’s memory system into 32V and helped him debug the resulting UNIX variant.

The new version of UNIX was good. Joy knew that the 32 bit VAX running UNIX would render the 16 bit PDP-11 obsolete, and he started porting 2BSD to 32V. Peter Kessler and Marshall Kirk McKusick worked on porting Pascal, while Joy handled ex, vi, C shell, and many other BSD utilities. The group had completed their work by the end of 1979, and Joy shipped 3BSD in December.

At this point, it’s important to delineate the family tree. 1BSD and 2BSD were improvements to UNIX version 6 while 3BSD was an improvement to 32V which was itself of a port and modification of UNIX version 7. During the creation of 3BSD, 2BSD had continued to see additions, fixes, and releases. One important distinction to be made is that the filename for the kernel in 3BSD became vmunix for virtual memory UNIX.

Computer hardware and software were highly varied in 1979 and most often nothing was compatible with anything else. For the Defense Advanced Research Projects Agency, this was an issue. They felt that the best they could hope for was unity at the operating system level for the growing network of networks, ARPAnet, and to this end they chose to standardize on UNIX due to its proven portability resulting from having been written in C. This same system would also be used by DARPA for work in the VLSI Project. In the autumn of 1979, Fabry reached out to DARPA offering 3BSD as the solution to their problem. Initially, this wasn’t well received, but the success of 3BSD that December changed opinions. Fabry secured an eighteen month contract with DARPA that began in April of 1980. This contract stipulated that Berkeley’s new Computer Systems Research Group would add the features to 3BSD needed by DARPA which was left rather open. In a technical report on the matter, the government doesn’t actually list anything too specific.

https%3A%2F%2Fsubstack.com%2Fimg%2Fattachment_icon.svg
ARPA Standard UNIX Report
182KB ∙ PDF file
Download
ARPA Standard UNIX Report

Fabry hired Laura Tong to be the project administrator, and Fabry then set about finding a tech lead. On an evening in early March, Joy rang Fabry at his home and expressed his desire to lead UNIX development, and Fabry agreed. Unlike earlier BSD releases (and on-going releases of 2BSD) a more robust system of distribution needed to be in place to handle a higher number of orders. Tong setup just such a system, and had Fabry coordinate with Bob Guffy at AT&T as well as the university’s lawyers to find license terms that would satisfy all parties. The system that Joy and the software team would create was 4BSD which was available in October of 1980. This release brought job control to the C shell initially developed by Jim Kulp and integrated by Joy, delivermail (predecessor of sendmail), job control signals that worked more reliably (so if you sent SIGHUP the job would actually hangup), the curses library, the control-z suspend/resume functionality we know today, a filesystem that supported block sizes up to 1K, and greater hardware support. Notably, 4BSD supported the VAX-11/750. Like prior BSD releases, 4BSD included the Pascal compiler and that saw still more improvements, and it included the Franz Lisp system by Richard Fateman. 4BSD saw nine months as the system de jour, and about one hundred fifty copies were shipped. Licenses were per institution and not per machine, and estimates are that the distribution was running on about five hundred computers.

4BSD drew criticism from David Kashtan at Stanford Research Institute. He’d run some benchmarks on VMS and BSD and he claimed that VMS was the clear winner. This didn’t sit well with Joy. He went and made a series of performance improvements to BSD (mostly in vmunix), and a few weeks later released a paper rebutting Kashtan’s claims and showing that BSD was every bit the match to VMS. The improved kernel was coupled with Kevin Robert Elz’s auto-configuration and a system featuring them was released as 4.1BSD in June of 1981, and 4.1BSD for VAX became 2.8BSD for the PDP-11.. This version was current for two years and shipped four hundred copies. This version was good enough to win CSRG another two years of funding from DARPA, and the CS department at Berkeley also saw funding.

Interestingly, the reason for a point release was political. The CSRG had wanted to call this release 5BSD, but AT&T blocked that name. AT&T were releasing System V UNIX at the time, and they felt that a Berkeley release also named “five” would confuse customers. Point releases of 4.?BSD were then the agreed upon solution.

The new funding round came with some more concrete goals. Specifically, DARPA wanted a better filesystem with higher throughput, support for multi-gigabyte adress spaces, better IPC, and integrated networking. Marshall Kirk McKusick outlines how these decisions were made:

To assist in defining the new system, Duane Adams, Berkeley's contract monitor at DARPA, formed a group known as the "steering committee" to help guide the design work and ensure that the research community's needs were addressed. This committee met twice a year between April 1981 and June 1983. It included Bob Fabry, Bill Joy, and Sam Leffler of the University of California at Berkeley; Alan Nemeth and Rob Gurwitz of Bolt, Beranek, and Newman; Dennis Ritchie of Bell Laboratories; Keith Lantz of Stanford University; Rick Rashid of Carnegie-Mellon University; Bert Halstead of the Massachusetts Institute of Technology; Dan Lynch of The Information Sciences Institute; Duane Adams and Bob Baker of DARPA; and Jerry Popek of the University of California at Los Angeles. Beginning in 1984, these meetings were supplanted by workshops that were expanded to include many more people.

What was developed largely by McKusick, Joy, Sam Leffler, and Rob Gurwitz is astounding. These developments were iterated in releases 4.1a, 4.1b, and 4.1c but ultimately culminated in 4.2 which was released in August of 1983. The two largest innovations were the Berkeley Sockets API and the Berkeley Fast File System. The sockets interface allowed multiple different network protocols to be used at any time and exposed them as files. The Berkeley FFS allowed blocksizes from 128 bytes to larger than 4096 bytes if needed. Thus, with Berkeley’s FFS, a system operator could optimize either for disk use or for disk performance. 4.2BSD included a full TCP/IP stack and NFS support as well. Starting in the early iterated releases, small tools like rcp, rsh, rlogin, and rwho appeared to demonstrate capabilities. These were intended to be short lived, but those familiar with UNIX will certainly recognize them. 4.2BSD also brought disk quota facilities, a better install process, better documentation, and some new filesystem related system calls.

Events less visible to users also occurred between 1982 and 1983. Joy left the project in late spring of 1982 for Sun Microsystems, but still spent a little time that summer working on IPC and reorganizing the UNIX kernel sources to isolate machine dependent code. Once at Sun, contributions to BSD continued with Sun sending their modifications for running BSD on the Motorola 68000 back to Berkeley. Leffler then took over Joy’s previous duties. Joy’s work, however, would make BSD the single most easily ported operating system for about the next twenty years. Pauline Schwartz was hired to take over distribution duties in April of 1983. In June of 1983, Fabry went on sabbatical and Ferrari and Susan Graham took over running the CSRG. In 1984, Leffler went to work for Lucasfilm and Mike Karels took over as the UNIX dev lead. He’d previously worked on the 2.?BSD series for the PDP-11. Later that year McKusick joined CSRG full-time.

4.2BSD gained over a thousand site licenses in a year and a half, and most UNIX system vendors actually shipped 4.2BSD (or a system based on it) rather than AT&T’s System V UNIX. Likewise, many varieties of corporate UNIX would be based upon 4.1c or 4.2BSD such as SunOS and DEC Ultrix. An important point at this time is that BSD’s codebase was largely divergent from that of AT&T while still mostly maintaining compatibility. Additionally, AT&T had started shipping UNIX without source, and those customers who bought AT&T’s commercial UNIX would often then separately obtain BSD sources if they wanted to modify some aspect of the system. For those using microcomputers, Microsoft’s (and SCO’s) XENIX was the standard.

Over on the PDP-11, a mixture of 4.1a and 4.1c formed 2.9BSD, but 4.2BSD never showed up.

In 1976, comic artist Phil Foglio drew the first versions of Beastie as T-shirt art for Mike O’Brien as payment for unlocking a safe.

\begin{pic}{foglio.ps}{foglio}{Phil Foglio's 1976 artwork} \end{pic}
T-shirt art of BSD by Phil Foglio

Much of this is largely a pun on services being called daemons, and UNIX making heavy use of pipes, with /dev/null being a bit bucket. The daemon, Beastie, gained lasting association with BSD via a drawing by John Lasseter of Lucasfilm being used on the cover of the Unix System Manger’s Manual that was published in 1984 by USENIX for 4.2BSD.

https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F0cfe4090-7d76-4d07-acfd-0eadab7936cd_640x905.png
Cover of the manual, image from jacobelder.com

While 4.2BSD was successful and mostly well received, it did get some complaints. The majority of the complaints were centered on performance. The team then spent two years improving performance, refining the networking stack, and they felt that they were ready to announce an impending release at USENIX in June of 1985. This didn’t go well. The fine folks of Bolt, Beranek, and Newman (part of the steering commitee) noted that 4.2BSD had shipped without the final version of the their networking code, and was instead using a heavily modified version of their initial prototype. After some bickering back and forth, DARPA provided both network stacks to Mike Muuss (author of ping) of the Ballistics Research Laboratory for testing. Berkeley’s code was better. 4.3BSD was released in June of 1986.

Keith Bostic joined CSRG in 1986 with the condition that he be allowed to continue and to complete a prior project. He was working to port 4.3BSD to the PDP-11. This meant that a 250K minimal system on VAX would be made to fit in the 64K address space of the PDP-11… no one thought this would work. No one. The man was clearly mad, but despite what madness may have lurked within him, Bostic made it work using a set of overlays and auxiliary processor states, and this formed the 2.10BSD release. He also began attending USENIX and he’d announce the progress of the removal of all AT&T code from BSD which started in 1986 at thirty five percent AT&T license free, and the announcement was met with widespread cheers and applause. This became important due to price increases from AT&T. As of the 24th of February in 1984, the price for a commercial license of UNIX System V Release 2 with source for a single CPU stood at $43000 (about $126000 in 2024), and each additional CPU was a further $16000 (nearly $47000 in 2024). For educational institutions, the price was lower at $800 (or $2300 in 2024) and an additional $400 for each CPU.

https%3A%2F%2Fsubstack.com%2Fimg%2Fattachment_icon.svg
AT&T UNIX prices 1984
186KB ∙ PDF file
Download
AT&T UNIX prices 1984

Getting well into the 1980s, it became rather obvious to CSRG members that VAX wouldn’t go on forever. Computer Consoles Inc had opened a development center in Irvine and there they developed a proprietary minicomputer called the Power 6/32 code named Tahoe. This new platform was aimed to compete directly with VAX. In need of an operating system, CCI turned to CSRG. CCI provided the team several machines and the team set about porting 4.3BSD to the 6/32. This became 4.3BSD-Tahoe in June of 1988. Importantly, they were able to push forward Joy’s work of separating machine dependent code from the rest of the system, and 4.3BSD-Tahoe introduced an OSI network protocol stack, improved the kernel’s virtual memory system, and introduced more efficient TCP/IP support. Unfortunately, 4.3BSD-Tahoe was short lived as CCI changed their company’s focus, and Sperry and Burroughs released rebranded minicomputers based on the Power 6/32 platform. Where this effort did live on, however, was in a merger of 4.3BSD-Tahoe and 2.10BSD into 2.11BSD for the PDP-11. The Tahoe effort also meant that much of the BSD codebase had been rewritten furthering the aim of removing AT&T licensed code.

BSD was released in source format only. Any prospective user would be required to compile his or her system from source entirely. Given this, any user would first need to acquire an AT&T source license before he/she would be able to make use of BSD. As noted previously, UNIX license fees were ridiculous. Yet, the TCP/IP stack in 4.3BSD was unique to Berkeley. Several software developers requested that BSD’s networking code be offered separately from UNIX, and this was done in June of 1989 as Networking Release 1. Pricing for a tape from Berkeley was $400 (around $983 in 2024), but the license terms allowed for free modification, free redistribution, and free application to any use case provided that the copyright notices on Berkeley’s code remain in place, and that products incorporating the code mention in documentation that code from the University of California and its contributors was included. It was also available via anonymous FTP shortly following the initial release. This newsgroup post was made on the 7th of December in 1988, but other documentation states public availability was November:

Path: utzoo!utgpu!watmath!clyde!att!osu-cis!tut.cis.ohio-state.edu!mailrus!
ames!pasteur!ucbvax!OKEEFFE.BERKELEY.EDU!bostic
From: [email protected] (Keith Bostic)
Newsgroups: comp.bugs.4bsd.ucb-fixes
Subject: V1.73 (BSD Networking Software, Release #1)
Message-ID: <[email protected]>
Date: 7 Dec 88 01:54:54 GMT
Sender: [email protected]
Organization: University of California at Berkeley
Lines: 374
Approved: [email protected]

We are happy to announce the availability of the first release of the BSD networking software. It consists of the standard user level applications, (along with their manual pages and some related documentation) and some kernel and C library support. It should be noted that this software has only been tested for compilation and operation on 4.3BSD and 4.3BSD-tahoe. A complete list of files is attached to this message.

The TCP and IP code is approximately the same as that recently made
available via the ARPANET and Usenet. Several new algorithms are used in TCP, in particular Van Jacobson's slow start and dynamic window size
selection algorithms and Phil Karn's modification to the roundtrip timing algorithm. These changes increase throughput and reduce congestion and retransmission. Several fixes were made in the handling of IP options and other gateway support.

This software suite is copyright The Regents of the University of California and may be freely redistributed. No previous license, either AT&T or Berkeley is required. The release costs $400.00 US. To request an order form, please contact our distribution office by phone at 415-642-7780, or by email at [email protected] or uunet!ucbarpa!bsd-dist, or by U.S. Mail at:

	CSRG, Computer Science Division
	University of California
	Berkeley, CA  94720

Mike Karels
Kirk McKusick

Rather than including the file list, I will simply note that this release was very complete. It included arp, ftp clients and servers (yes, plural on both), route, telnet, dns tools, ifconfig, inetd, pieces of the BSD libc, sendmail, syslog, ping, and uucp.

While the networking release was being made, 4.3BSD development continued. A new virtual memory system was implemented from MACH at Carnegie-Melon with the porting and merging work done by Mike Hibler. The interface for that VM system was, however, a purely Berkeley design adhering to the architecture descriptions found in 4.2BSD. The NFS system was upgraded to be Sun-compatible via the use of Rick Macklem’s work at the University of Geulph. This became 4.3BSD-Reno.

The original BSD license included in parts of Tahoe and Reno, and in all of NET/1 and NET/2 read:

Copyright (c) <year> <copyright holder>. All rights reserved.

Redistribution and use in source and binary forms are permitted provided that the above copyright notice and this paragraph are duplicated in all such forms and that any documentation, advertising materials, and other materials related to such distribution and use acknowledge that the software was developed by the <copyright holder>. The name of the <copyright holder> may not be used to endorse or promote products derived from this software without specific prior written permission. THIS SOFTWARE IS PROVIDED `'AS IS″ AND WITHOUT ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, WITHOUT LIMITATION, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.

Keith Bostic was still as avid as ever to rid BSD of AT&T code and free it from the heavy costs that came with that code. At a meeting of CSRG, he mentioned the popularity of the networking release and he proposed an expanded release that would include more than networking. Discussion went on for a while, but eventually McKusick and Karels took up the kernel work with Bostic handling the utilities and C library. Obviously, this would be a seriously large undertaking for a single individual, and Bostic figured that others would be willing to help. Bostic then encouraged people to coordinate over the budding Internet with people across the globe submitting contributions. He also encouraged people to contribute at USENIX. In a little over a year, most of the utilities and libraries had been rewritten with major contributions coming from Bill Jolitz, Donn Seeley, Trent Hein, Vadim Antonov, Mike Karels, Igor Belchinsky, Pace Willisson, Jeff Polk, and Tony Sanders. Karels and McKusick hadn’t actually expected Bostic to succeed, but with the work completed, Bostic walked into their office with his head held high and inquired as to their progress on the kernel. The two then went off to work on it file by file, removing everything originally included in the 32V release, but they were short by six files. Rather than getting a new license and name created by the university’s lawyers, the group reused what they had and this became Network Release 2 announced on the 3rd of July in 1991.

Path: gmdzi!unido!fauern!ira.uka.de!sol.ctr.columbia.edu!spool.mu.edu!
caen!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!ucbvax!OKEEFFE.BERKELEY.EDU!bostic
From: [email protected] (Keith Bostic)
Newsgroups: comp.bugs.4bsd.ucb-fixes
Subject: V1.95 (BSD Networking Software, Release #2)
Message-ID: <[email protected]>
Date: 3 Jul 91 23:14:59 GMT
Sender: [email protected]
Organization: University of California at Berkeley
Lines: 36
Approved: [email protected]

We are happy to announce the availability of the second release of the
BSD networking software. The distribution includes approximately 75% of
the utilities distributed as part of 4.3BSD-Reno and the C library  (along with manual pages and some related documentation), and much of the kernel. We wish to *strongly* emphasize, however, that significant portions of the kernel are missing and that no binary support is supplied for any architecture. Please note also that this software has only been tested for compilation and operation on 4.3BSD-Reno.

This release is intended for system developers and others who wish to
preview or experiment with the most recent Berkeley system. It may also
be useful as an update to earlier BSD or BSD-derived systems, although
substantial work will be required to integrate portions of this release
into older systems. This distribution is *not* intended to be used on
production systems, nor is it intended for sites without the expertise
to find and fix problems that are encountered.

This software suite is Copyright (C) 1991 The Regents of the University
of California and may be freely redistributed without further charge.  No previous license, either from AT&T or Berkeley is required.  The release costs $850.00 US on 6250 BPI 9-track magnetic tape or 8mm Exabyte cassette or $950.00 US on 1600 BPI 9-track magnetic tape. The distribution is approximately 90Mb in size. To request an order form, please contact our distribution office by phone at 415-642-7780, or by sending email to [email protected] or uunet!ucbarpa!bsd-dist, or by U.S. Mail at:

	CSRG, Computer Science Division
	University of California
	Berkeley, CA  94720

Mike Karels
Kirk McKusick
Keith Bostic
Keith Sklower
Marc Teitelbaum

Less than a year later, Bill Jolitz replaced the missing kernel pieces and compiled everything for the PC-compatible Intel 80386 platform, and he released this new distribution as 386/BSD. Only a few short months later, a group of 386/BSD users formed NetBSD to continue enhancements and releases of Jolitz’s system. This occurred because Jolitz still had a full-time job, and the number of bug fixes, enhancements, and additions coming into his project were beyond his capabilities to manage alone. NetBSD has and continues to emphasize porting NetBSD to absolutely everything, including but not limited to ARM, MIPS, i386, AMD64, SPARC, PowerPC, Motorola 68K, SH3, HPPA, Itanium, RISC-V, and VAX. If your toaster has a chip in it, NetBSD will probably run on it. NetBSD has also engaged in some research and experimentation that has led to many security and system hardening technologies, an amazing package management system, kernel level hardware virtualization, and some surprising levels of backward compatibility. As is the BSD tradition, NetBSD has also merged in changes from systems like Solaris with ZFS.

https%3A%2F%2Fsubstack-post-media.s3.amazonaws.com%2Fpublic%2Fimages%2F9930c00b-0270-4a9d-ae51-bfa22c05721d_499x374.jpeg
A toaster at the Linux World Expo in 2005, running NetBSD

While NET2 was being worked on and released, the last version of 2.11BSD was also being prepared and released, but this time by USENIX. On the 14th of March in 1991, Steven M. Schultz posted the following to comp.sys.dec.micro:

      Second Distribution of Berkeley PDP-11 Software for UNIX
                             Release 2.11
                        (Revised January 1991)

The USENIX Association is pleased to announce the distribution of a new release of the "Second Berkeley Software Distribution" (2.11BSD).

This release will be handled by USENIX, and is available to all V7,  System III, System V, and 2.9BSD licensees. The Association will continue to maintain the non-profit price of $200. The release will consist of two 2400 ft. 1600 bpi tapes or one TK50 tape cartridge
(approximately 80M) and approximately 100 pages of documentation.

If you have questions about the distribution of the release, or require  800 bpi tapes, please contact USENIX. USENIX's address and phone number is as follows:

     2.11BSD
     USENIX Association
     2560 Ninth St. Suite 215
     Berkeley, CA  94710
     +1-415-528-8649

USENIX may also be contacted by electronic mail at:

     {ucbvax,decvax}!usenix!office

If you have technical questions about the release, please contact Steven M. Schultz at:

     [email protected]
     wlbr!wlv!sms

This release is in celebration of the 20th anniversary of the PDP-11!  Work has been ongoing since the release of 2.10.1BSD in January 1989.  This release incorporates all fixes and changes posted to the USENET newsgroup comp.bugs.2bsd since 2.10.1BSD was released.

Present in this release are several more missing pieces from the 4.3BSD distribution:

1) the kernel logger (/dev/klog)
2) the namei cache and argument encapsulation calling sequence
3) readv(2)/writev(2) as system calls rather thane mulation/compatibility routines
4) shadow password file implementation (the May 1989 4.3BSD update)
5) a TMSCP (TK50/TU81) driver with standalone support (boot-block and standalone driver)
6) Pronet and LH/DH IMP networking support
7) the portable ascii archive file format (ar, ranlib)
8) the Unibus Mapping Register (UMR) handling of the network was rewritten to avoid allocating excessive UMRs.
9) the necessary mods to the IP portion of the networking were made to allow traceroute (which is present in 2.11BSD) to run
10) long filenames in the file system

This last addition is the reason a coldstart kit is necessary. The 4.3BSD on-disk directory structure has been ported (along with the
utilities that know about on-disk directories via the raw filesystem: fsck, ncheck, icheck, dcheck, etc.) and is not compatible with previous versions of UNIX for the PDP-11.

A limited amount of filesystem backward compatibility with earlier  versions of 2BSD (2.9BSD, 2.10BSD and 2.10.1BSD) is present in a version of dump(8) which can read old filesystems. The disk partition sizes have not changed from 2.10.1BSD (the urge to standardize the haphazard partition sizes was suppressed in the interest of backwards compatibility). The restor(8) utility automatically converts old dump 
tapes to the new format on input.

The constant MAXNAMLEN is now 63 instead of 14. While it is possible the limit could be higher, with MAXPATHLEN at 256 a MAXNAMLEN of 63 was  judged sufficient.

MANY other fixes and changes have also been made, see the "Changes To The Kernel" document which describes the changes made to both the kernel and the application programs.

Steven M. Schultz
Contel Federal Systems
31717 La Tienda Drive
Westlake Village CA 91359
[email protected]
wlbr!wlv!sms

A few months after the NetBSD group formed, the FreeBSD group formed. They chose to target the PC architecture specifically and to make their system a bit easier to use. In contrast to NetBSD which was solely a product offered over the internet, the FreeBSD group offered their product on CD-ROM. FreeBSD did expand to ARM, PowerPC, and MIPS, and like NetBSD they did continue the CSRG spirit of research and experimentation with things like bhyve virtualization and jails. Additionally, they have continued the legacy of borrowing the best bits of other systems like dtrace, and ZFS, but also via their immense collection of software in ports.

Richard L. Adams Jr (Rick) was the founder of one of the earliest internet service providers (if not the first), UUNET, after first creating SLIP (TCP/IP over serial). He also maintained the most popular usenet transport in the early 1980s, B News. After the release of 386/BSD, he got together with Keith Bostic, Marshall Kirk McKusick, Mike Karels, and Bill Jolitz and the group founded Berkeley Software Design, Inc otherwise known as BSDi. Their first product was BSD/386 based off of Networking Release 2 and it first released in January of 1992. Their system retailed for $995 (about $2160 in 2024). The target market for BSDi was the nascent internet infrastructure market. In their advertising they touted their “99% discount over System V” and advised interested parties to contact 1-800-its-unix.

Of course, this didn’t sit well with Unix System Labs (AT&T subsidiary). Shortly after BSDi began sales, they received a cease and desist from USL with a particular request to stop using the phone number that included “it’s UNIX,” as the ownership of the UNIX trademark was firmly in USL’s hands. BSDi complied changing their advertisements, the number, and explaining that BSD wasn’t precisely UNIX. This, however, wasn’t quite enough. USL brought a lawsuit against BSDi seeking an injunction against the sale of BSD/386. As part of the suit, USL claimed that BSDi’s product contained USL code and trade secrets, and that further sales of BSDi’s product would irreparably harm USL. BSDi then claimed that they shouldn’t be held liable for any code contained in Berkeley’s original source offerings, but that they were completely willing to discuss the six added, BSDi-original files. BSDi’s argument won and USL was required to restate their complaint or have the case dismissed. USL then filed suit against both BSDi and the University of California with roughly the same complaints but this time seeking an injunction against the sale and distribution of both Networking Release 2 and BSD/386. The employees of both CSRG and BSDi were deposed.

In December of 1992, US District Judge Debevoise in New Jersey took the arguments for injunction under advisement. Six weeks later, he dismissed all but two of the complaints and suggested that the matter should be taken to a state court before being heard in a federal court. The University listened and filed a lawsuit against USL the following Monday in California. The suit by the University of California claimed that USL had failed to provide credit to the University for BSD code contained within System V as required by their prior licensing agreement. The University of California wasn’t asking for financial compensation but rather that USL reprint all of their System V documentation with proper credit and attribution for BSD code, that USL notify licensees of their mistake, and that USL run advertisements in print news publications informing the public of USL’s mistake.

On the 21st of December in 1992, Novell announced that it would be acquiring Unix System Laboratories including the UNIX copyright, trademarks, and licensing contracts. The LA Times stated that this transaction was completed with an exchange of stock wherein all of the shares of USL would be traded for twelve million three hundred thousand shares of Novell, and after which USL would be a wholly owned subsidiary of Novell. Discussions around a settlement of legal proceedings began in the summer of 1993, but were not resolved until January of 1994. The result was that three files were removed from Networking Release 2, minor changes were made to a few other files, and USL copyrights were added to about seventy files though the license of those files would continue to be the BSD license. On the part of USL, they agreed that with those terms met, the company would not bring litigation against any company, group, or user who used or distributed the resulting open source BSD system.

That resulting system was 4.4BSD-Lite and 4.4BSD-Encumbered in March of 1994. 4.4BSD-Encumbered included the prior USL code and required a USL UNIX license. 4.4BSD-Lite was fully free and open source software. This version was merged into FreeBSD 2.0, NetBSD 1.0, and a newly named BSD/OS which was previously BSD/386. For CSRG, the revenue received from 4.4BSD allowed the group to continue as a part-time effort integrating bug fixes and enhancements made locally and from the BSD community. As focus shifted into the other distributions like BSD/OS, NetBSD, and FreeBSD the rate of submissions to Berkeley slowed. The final release from the University was 4.4BSD-Lite Release 2 in June of 1995. This version was merged into FreeBSD 3.0, Rhapsody (and later Darwin), NetBSD 1.3, OpenBSD 2.3, and BSD/OS 3.0.

By 1995, BSDi’s BSD/OS was the most common operating system used in the datacenters of the early internet. This is a market that BSDi had intentionally targeted, and this would prove to be a sword of Damocles. The strand of hair holding the sword broke as the Dot Com Bubble began bursting and BSDi merged with Walnut Creek which itself was later sold to Wind River Systems.

Today, BSD is among the most common operating systems on Earth despite people not recognizing it as such. Modern macOS descends from 4.4BSD, as do NetBSD, OpenBSD, FreeBSD, Dragonfly BSD, and a few others. In the past, various versions of BSD formed the basis of SunOS, DYNIX, NeXTSTEP, Ultrix, and Tru64. Various editions of BSD were merged into AT&T UNIX, and this means that modern commercial UNIX systems like AIX and HP-UX are also running some BSD code. BSD has been used in many commercial products owning to its permissive licensing, and some of the most notable of those are the Sony Playstation 3, 4, and Vita, the Netflix Open Connect Appliance, Juniper routers, Isilon IQ clustered storage systems, Dell Compellent storage systems, and the Weather Channel’s IntelliStar forecast computer.

I now have readers from many of the companies whose history I cover, and many of you were present for time periods I cover. A few of you are mentioned by name in my articles. All corrections to the record are welcome; feel free to leave a comment.


About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK