Cointime

Download App
iOS & Android

Berkeley’s Digital Legacy: The Evolution of BSD and Its Influence

Picking up where we left off last week, our story now brings us to Berkeley Software Distribution (BSD). Unix first came to the University of California, Berkeley in 1975. Ken Thompson took at sabbatical to come help set up Unix version 6 on their PDP-11. Initially, BSD was just an enhanced Unix, sporting an extra layer of patches that provided additional functions. This layered approach was partly a result of budget constraints which had the PDP-11/45 split between various departments, limiting Unix to run just a third of the day.

However, fortunes changed with the acquisition of the beefier PDP-11/70, accelerating the development of Ken’s Pascal implementation of Unix. Ken worked on this version with graduate students Chuck Haley and Bill Joy, who helped improve the code, and enriched it further by adding additional software, notably the text editor, ex. By 1977, other institutions became interested in using Berkeley’s version of Unix. So, Bill Joy compiled what would become the first Berkeley Software Distribution (1BSD), which he released on March 9, 1978.

This was very popular, and in 1979 version 2 of BSD (2BSD) was released. It included the venerable programs Vi and Cshell, both created by Bill Joy, and which are still used today. But 3BSD, also birthed in 1979, was the milestone where BSD began its distinct evolution from Unix. Following on the heels of the first successful port of Unix to a non PDP system, the Interdata 7/32, 3BSD was released on the 32Bit VAX-11/780 computer.

In the paper, by Özalp Babaoglu and Bill Joy that followed, they describe… “modifications made to the UNIX operating system for the VAX-11/780 to convert it from a swap-based segmented system to a paging-based virtual memory system.” this allowed the operating system to make use of primary physical memory (E.G RAM) and secondary storage (like a hard disk) to simulate a large contiguous block of addressable memory space. This required many changes in the kernel as well as the operating system. The large virtual memory space was necessary to aid in the development of complex lisp programs using Berkeley’s Franz Lisp. Because BSD was ported to work with the VAX computers it also became the defacto operating system on that platform. This continued all the way up until 1983 with the release of the commercial version of Unix named System V.

3BSD caught the eye of the Defense Advanced Research Projects Agency (DARPA), and convinced them to fund the Berkeley team to develop what would later become the 4BSD system. One of 4BSD’s primary objectives was to integrate the DARPA Internet protocols (TCP/IP). It was realized that the networking implementation was general enough to communicate across a diverse network of facilities, such as local networks and long distance networks like the ARPANET. So they got to work.

Up until this point BSD had been released with Proprietary AT&T code, and thus required an AT&T software license. This was expensive at the time, and institutions expressed interest in a version of BSD that did not contain the proprietary AT&T code, and instead just contained the networking code developed for the DARPA project. This led to the creation of Networking release 1 (Net/1 or v4.1 of BSD) in 1989, which also happened to be the first BSD under the BSD license. After Net/1 BSD was a success, the team at Berkeley decided that all future code would be licensed under the BSD license. They also decided to reimplement many of the Unix programs so that all software on the OS fell under one license. It took a couple of years to complete, but in 1991 this effort was done and coincided with the Net/2 (v4.2) release of BSD.

Net/2 became the foundation for two distinct BSD ports to the Intel 80386 architecture. One port became the free as in gratis 386BSD by Lynne Jolitz and William Jolitz, and the other became the proprietary BSD/386 AKA BSD/OS. This landed BSD in hot water. UNIX System Laboratories (USL), a subsidiary of AT&T who were the maintainers of System V, a commercial port of Unix, thought that BSD was infringing on their copyright by selling BSD/OS. The lawsuit titled, UNIX System Laboratories, Inc. v. Berkeley Software Design, Inc (USL vs BSDi), was filed in 1992.

USL argued that a significant portion of the BSD operating system was using proprietary AT&T code. This turned out to be false, and only portions of six files in the BSD operating system were found to be infringing. The judge threw out the preliminary injunction, and the University then counter sued USL for using BSD code in their System V operating system. The legal battle took 2 years to resolve, but after much back and forth, eventually a settlement was reached in February of 1994.

While the BSD/OS version of BSD was locked in a legal battle, the free version of BSD, 386BSD was short lived. Soon after its first release it was forked due to differences of opinion over the direction of future releases between the Jolitzes and the community members. Community members had been collecting bug fixes and enhancements, releasing them as an unofficial patch. But the timing around when those patches would be integrated back into the main OS if ever, could not be resolved between the two parties. This caused two separate groups within the community to create their own BSD versions.

FreeBSD was the brainchild of Nate Williams, Rod Grimes and Jordan Hubbard, three of the unofficial patch kit maintainers. They consulted with the 368BSD’s users to come up with the initial goals for the project. One of the main ones early on was to improve the distribution channels for FreeBSD. This lead to a fortunate partnership with Walnut Creek, a company that specialized in distribution of software through discs. Taking a chance on the unknown project, they not only published FreeBSD, they distributed it through their FTP channels, and even employed Jordan Hubbard. This gave FreeBSD the traction it needed to continue growing.

The first version of FreeBSD was released in 1993. It was based off of the Net/2 release of BSD. This was unfortunate as the lawsuit between USL and Berkeley would be settled soon after. Under the terms of the settlement 3 of the 18,000 files in Net/2 were considered encumbered and the intellectual property of USL and needed to be removed. These terms also affected FreeBSD and they were required to make the changes to their version of BSD to remove the files but were allowed one more release using the old Net/2 code. The terms of the deal also said that the next release of BSD, 4.4BSD-Lite would be blessed by USL and they would seek no further legal action against the operating system.

Unfortunately while only 3 files had to be removed, version 4.4 of BSD was very different from the previous versions (and 368BSD), so it ended up being a lot of work to get FreeBSD to be based off the new release. It took over a year and a half of concerted effort, but in December of 1994 FreeBSD 2.0 was released into the world. Since then FreeBSD has seen 11 more major releases and is up to version 13.2 at the time of this post.

But FreeBSD was not the only BSD that was born in 1993. NetBSD, also started its life then as well. The 4 founders of NetBSD were Chris Demetriou, Theo de Raadt, Adam Glass, and Charles Hannum. Their goals for the project were to create a well designed operating system that was extremely portable, which are still the driving forces behind this project today. NetBSD actually has a fantastic timeline of BSD on their webpage that covers what we’ve talked about so far. I’ve reproduced part of it here.

The UNIX system family tree: Research and BSD
---------------------------------------------

First Edition (V1)
     |
Second Edition (V2)
     |
Third Edition (V3)
     |
Fourth Edition (V4)
     |
Fifth Edition (V5)
     |
Sixth Edition (V6) -----*
       \                |
        \               |
         \              |
Seventh Edition (V7)    |
            \           |
             \        1BSD
             32V        |
               \      2BSD---------------*
                \    /                   |
                 \  /                    |
                  \/                     |
                 3BSD                    |
                  |                      |
               4.0BSD                2.79BSD
                  |                      |
               4.1BSD --------------> 2.8BSD
                  |                      |
              4.1aBSD -----------\       |
                  |                \     |
              4.1bBSD                \   |
                  |                    \ |
      *------ 4.1cBSD --------------> 2.9BSD
     /            |                      |
Eighth Edition    |                   2.9BSD-Seismo
     |            |                      |
     +----<--- 4.2BSD               2.9.1BSD
     |            |                      |
     +----<--- 4.3BSD -------------> 2.10BSD
     |            |               /      |
Ninth Edition     |              / 2.10.1BSD
     |         4.3BSD Tahoe-----+        |
     |            |              \       |
     |            |                \     |
     v            |                  2.11BSD
Tenth Edition     |                      |
                  |                  2.11BSD rev #430
               4.3BSD NET/1              |
                  |                      v
               4.3BSD Reno
                  |
   *---------- 4.3BSD NET/2 -------------------+-------------*
   |                    |                      |             |
386BSD 0.0              |                      |           BSD/386 ALPHA
   |                    |                      |             |
386BSD 0.1 ------------>+                      |           BSD/386 0.3.[13]
   |     \              |                  4.4BSD Alpha      |
   |     386BSD 1.0     |                      |           BSD/386 0.9.[34]
   |                    |                  4.4BSD            |
   |                    |                    / |             |
   |                    |   4.4BSD-Encumbered  |             |
   |                -NetBSD 0.8                |           BSD/386 1.0
   |               /    |                      |             |
FreeBSD 1.0 <-----'     *--NetBSD 0.9          |           BSD/386 1.1

NetBSD has seen 9 major releases in its lifetime since its inception. It has done many interesting things including being the first implementation of a Rump Kernel, a type of kernel that can compile drivers to run either directly in the Kernel (like most drivers are made today) or run in user space. This opens up the possibility of portable drivers to other operating systems, and is a topic I’m very interested in.

NetBSD and FreeBSD are not the only BSDs around today, many other operating systems can trace their lineages to both of them including OpenBSD, DragonFlyBSD, macOS, and others. They are all descendants of Unix, and share as many similarities as they do differences. But while the landscape today is dominated by computers that can trace there origin all the way back to an operating system created by accident back in 1969, not all operating systems heritage go back to Unix. The next topic of our story, Plan 9, will be a drastic departure from what we have seen before. But that will have to wait another day :)

Call To Action 📣

If you made it this far thanks for reading! If you are new welcome! I like to talk about technology, niche programming languages, AI, and low-level coding. I’ve recently started a Twitter and would love for you to check it out. I also have a Mastodon if that is more your jam. If you liked the article, consider liking and subscribing. And if you haven’t why not check out another article of mine! Thank you for your valuable time.

Share

Subscribe now

Share Deus In Machina

Comments

All Comments

Recommended for you

  • Over $476 Million Liquidated in the Last Hour, Primarily Long Positions

    Data shows that in the past hour, a total of $476 million was liquidated across the network, with long positions accounting for $457 million and short positions for $19.7945 million, primarily affecting long positions. Among these, $200 million in ETH and $116 million in BTC were liquidated.

  • ETH Falls Below $2400

    Market data shows that ETH has fallen below $2400, currently priced at $2395.62, with a 24-hour decline of 4.47%. The market is experiencing significant volatility, so please ensure proper risk management.

  • BTC Drops Below $81,000

    Market data shows that BTC has fallen below $81,000, currently priced at $80,989.9, with a 24-hour decline of 2.87%. The market is experiencing significant volatility, so please ensure proper risk management.

  • US Considers Easing Sanctions on Shadow Fleet to Lower Shipping Rates

    On October 15, a US official stated on Wednesday that the Trump administration is considering easing sanctions on vessels known as the 'shadow fleet.' These ships have previously transported oil and petroleum products from countries such as Russia, Iran, and Venezuela. This move aims to reduce the currently historically high global shipping rates. Shortly before this, President Trump had temporarily lifted sanctions on Russian diesel, a decision that drew strong criticism from Ukrainian President Zelensky, several European governments, and some Republican senators. The US official revealed that current discussions focus on whether the US will allow previously sanctioned vessels to transport 'legitimate oil.' Here, 'legitimate oil' refers to crude oil or petroleum products not subject to US sanctions, rather than oil from Russia and Iran that is under sanctions. The official stated that this move aims to facilitate the export of more refined products and crude oil from the Gulf region.

  • Dollar Index Erases All Gains Since CPI Report Release

    On October 15, the Dollar Index (DXY) slowly declined in the Asian session, completely erasing all gains since the release of the U.S. September CPI data yesterday (which had peaked with a cumulative increase of about 70 points), now reported at 102.16. The British Pound against the U.S. Dollar (GBP/USD) and the Euro against the U.S. Dollar (EUR/USD) both rose about 0.3%, currently reported at 1.3231 and 1.1197, respectively. (Jin10)

  • South Korean Stock Index Opens Down Over 5%

    On October 15, the South Korean KOSPI index fell below 6000 points, dropping 5.59% during the day. SK Hynix fell over 7%, while Samsung Electronics dropped over 6%. (Jinshi)

  • Fed's Daly: Rate Hikes May Be Necessary, But Not Urgent

    On October 15, Mary Daly, President of the San Francisco Federal Reserve, stated on Wednesday that the Fed may need to further raise short-term interest rates to curb excessive inflation. However, she also pointed out that there is no need to take such action at the Fed's meeting on October 27-28. "It is very likely that we will need to make further adjustments, but regarding the timing of those adjustments, I think we are still deliberating," Daly said. "I don’t feel there is a need to rush into a decision with limited information. I believe we have enough time."

  • BTC Falls Below $82,000

    Market data shows that BTC has fallen below $82,000, currently priced at $81,984.48, with a 24-hour decline of 2.01%. The market is experiencing significant volatility, so please ensure proper risk management.

  • BTC Drops Below $83,000

    Market data shows that BTC has fallen below $83,000, currently priced at $83,015.81, with a 24-hour decline of 0.46%. The market is experiencing significant volatility, so please ensure proper risk management.

  • ETH Surpasses $2500

    Market data shows that ETH has surpassed $2500, currently priced at $2500.4, with a 24-hour decline of 0.23%. The market is experiencing significant volatility, so please ensure proper risk management.