BSD

From DistroList
HomeAboutDonate
NetBSD FreeBSD
OpenBSD DragonFly BSD

BSD

See also: BSD operating systems History of BSD operating systems BSD OS's tree BSD OS's list

BSD ("Berkeley Software Distribution" or "Berkeley Standard Distribution") is a discontinued operating system based on Research Unix (from AT&T), derived from the contributions made to the system by the Computer Systems Research Group (CSRG) at the University of California, Berkeley.

In the early years of the Unix system, its creators, AT&T Bell Laboratories, authorized the University of California at Berkeley, Johns Hopkins University and the University of New South Wales (UNSW) to use the source code and adapt it to their needs.


  • The first version of BSD, 1BSD, was released on 09/03/1978 as an add-on to Unix version 6.
  • The penultimate version of BSD, 4.4BSD-Lite, was releaed on 03/1994, and since then, several variants based directly or indirectly on 4.4BSD-Lite (such as FreeBSD, NetBSD, OpenBSD and DragonFly BSD) have been maintained.
  • The last version of BSD, 4.4BSD-Lite Release 2, was released on June 1995.

No one person or corporation owns BSD.

It is created and distributed by a community of highly technical and committed contributors all over the world. Some of the components of BSD are Open Source projects in their own right and managed by different project maintainers.

BSD Contributions

BSD has also made major contributions in the field of operating systems in general, such as:

  • On-demand paged virtual memory management.
  • Job control.
  • Fast FileSystem.
  • The TCP/IP socket protocol that forms the basis of the Internet (almost all TCP implementations derive from 4.4 BSD-Lite).
What BSD includes in broad terms

The BSD operating system comprises:

  • The BSD kernel, which handles process scheduling, memory management, symmetric multi-processing (SMP), device drivers, etc.
  • The C library, the base API for the system.
  • The BSD C library is based on code from Berkeley, not the GNU project.
  • Utilities such as shells, file utilities, compilers and linkers.
  • Some of the utilities are derived from the GNU project, others are not.
  • The X Window system, which handles graphical display.
  • The X Window system used in most versions of BSD is maintained by the X.Org project.
  • Many other programs and utilities.
History of BSD
See also: History of BSD operating systems (derivatives)
1970s

During the 1970s and 1980s Berkeley used the system for its operating system research.

When AT&T withdrew the university's permission to use it for commercial reasons, the university promoted the creation of a Unix-inspired version of the system using the contributions they had made, allowing its distribution for academic purposes and eventually minimizing restrictions on copying, distribution or modification.

Initially BSD was called Berkeley Unix because it was based on the source code of the original Unix developed at Bell Labs, from AT&T.

1980s

In the 1980s, BSD was widely adopted by workstation vendors in the form of proprietary Unix variants such as DEC Ultrix and Sun Microsystems's SunOS, due to its permissive licensing and familiarity to many technology company founders and engineers.

Although these proprietary BSD derivatives were largely replaced in the 1990s by UNIX SVR4 and OSF/1.

1990s - present

Later releases of BSD provided the basis for several open source operating systems including FreeBSD, OpenBSD, NetBSD and DragonFly BSD.

These, in turn, have been used by proprietary operating systems, including Apple's macOS and iOS, which were derived from them, and Microsoft Windows, which used (at least) part of its TCP/IP code, which was legal.

FreeBSD code was also used to create the operating system for the PlayStations 5, 4, 3; PlayStation Vita; and Nintendo Switch.

A real UNIX

The BSD operating systems are not clones, but open source derivatives of AT&T’s Research UNIX operating system, which is also the ancestor of the modern UNIX System V.

AT&T UNIX is not open source, and in a copyright sense BSD is very definitely not UNIX, but on the other hand, AT&T has imported sources from other projects, noticeably the Computer Sciences Research Group (CSRG) of the University of California in Berkeley, CA.

Starting in 1976, the CSRG started releasing tapes of their software, calling them Berkeley Software Distribution or BSD.

Initial BSD releases consisted mainly of user programs, but that changed dramatically when the CSRG landed a contract with the Defense Advanced Research Projects Agency (DARPA) to upgrade the communications protocols on their network, ARPANET.

The first widely distributed implementation was part of 4.2BSD, in 1982.

In the course of the 1980s, a number of new workstation companies sprang up. Many preferred to license UNIX rather than developing operating systems for themselves.

  • In particular, Sun Microsystems licensed UNIX and implemented a version of 4.2BSD, which they called SunOS.

When AT&T themselves were allowed to sell UNIX commercially, they started with a somewhat bare-bones implementation called System III, to be quickly followed by System V.

The System V code base did not include networking, so all implementations included additional software from the BSD, including the TCP/IP software, but also utilities such as the csh shell and the vi editor. Collectively, these enhancements were known as the Berkeley Extensions.

The BSD tapes contained AT&T source code and thus required a UNIX source license.

By 1990, the CSRG’s funding was running out, and it faced closure. Some members of the group decided to release the BSD code, which was Open Source, without the AT&T proprietary code. This finally happened with the Networking Tape 2, usually known as Net/2. Net/2 was not a complete operating system: about 20% of the kernel code was missing. One of the CSRG members, William F. Jolitz, wrote the remaining code and released it in early 1992 as 386BSD. At the same time, another group of ex-CSRG members formed a commercial company called Berkeley Software Design Inc. and released a beta version of an operating system called BSD/386, which was based on the same sources. The name of the operating system was later changed to BSD/OS.

386BSD never became a stable operating system. Instead, two other projects split off from it in 1993: NetBSD and FreeBSD.

The two projects originally diverged due to differences in patience waiting for improvements to 386BSD: the NetBSD people started early in the year, and the first version of FreeBSD was not ready until the end of the year. In the meantime, the code base had diverged sufficiently to make it difficult to merge. In addition, the projects had different aims.

In 1996, OpenBSD split off from NetBSD, and in 2003, DragonFlyBSD split off from FreeBSD.

How is BSD developed and updated?

The BSD kernels are developed and updated following the Open Source development model. Each project maintains a publicly accessible source tree which contains all source files for the project, including documentation and other incidental files. Users can obtain a complete copy of any version.

A large number of developers worldwide contribute to improvements to BSD. They are divided into three kinds:

  1. Contributors write code or documentation. They are not permitted to commit (add code) directly to the source tree. For their code to be included in the system, it must be reviewed and checked in by a registered developer, known as a committer.
  2. Committers are developers with write access to the source tree. To become a committer, an individual must show ability in the area in which they are active. It is at the individual committer’s discretion whether they should obtain authority before committing changes to the source tree. In general, an experienced committer may make changes which are obviously correct without obtaining consensus. For example, a documentation project committer may correct typographical or grammatical errors without review. On the other hand, developers making far-reaching or complicated changes are expected to submit their changes for review before committing them. In extreme cases, a core team member with a function such as Principal Architect may order that changes be removed from the tree, a process known as backing out. All committers receive mail describing each individual commit, so it is not possible to commit secretly.
  3. The Core team. FreeBSD and NetBSD each have a core team which manages the project. The core teams developed in the course of the projects, and their role is not always well-defined. It is not necessary to be a developer to be a core team member, though it is normal. The rules for the core team vary from one project to the other, but in general they have more say in the direction of the project than non-core team members have.

This arrangement differs from Linux in a number of ways:

  • No one person controls the content of the system. In practice, this difference is overrated, since the Principal Architect can require that code be backed out, and even in the Linux project several people are permitted to make changes.
  • On the other hand, there is a central repository, a single place where you can find the entire operating system sources, including all older versions.

As a result of the formalized maintenance of a single Git source tree, BSD development is clear, and it is possible to access any version of the system by release number or by date. Git also allows incremental updates to the system: for example, the FreeBSD repository is updated about 100 times a day. Most of these changes are small.

Releases

There are three different "releases". As with GNU/Linux, releases are assigned a number such as 1.5.1 or 3.5. In addition, the version number has a suffix indicating its purpose:

  • The development version of the system is called CURRENT'.
FreeBSD assigns a number to CURRENT, for example FreeBSD 5.0-CURRENT.
NetBSD uses a slightly different naming scheme and appends a single-letter suffix which indicates changes in the internal interfaces, for example NetBSD 1.4.3G.
OpenBSD does not assign a number ("OpenBSD-current"). All new development on the system goes into this branch.
  • At regular intervals, between two and four times a year, the projects bring out a RELEASE version of the system, which is available on CD-ROM and for free download from FTP sites, for example OpenBSD 2.6-RELEASE or NetBSD 1.4-RELEASE.
The RELEASE version is intended for end users and is the normal version of the system. NetBSD also provides patch releases with a third digit, for example NetBSD 1.4.2.
  • As bugs are found in a RELEASE version, they are fixed, and the fixes are added to the Git tree.
In FreeBSD, the resultant version is called the STABLE version, while in NetBSD and OpenBSD it continues to be called the RELEASE version. Smaller new features can also be added to this branch after a period of test in the CURRENT branch. Security and other important bug fixes are also applied to all supported RELEASE versions.
BSD > BSD operating systems / BSD derivatives