BSD, one of the two original variants of Unix, has been reborn without proprietary code into a basketball team of Unix operating systems. Like Linux, BSD follows the Unix philosophy for OS and environment. Unlike Linux, each version has significant differences from the others, following different paths of specialization. The BSD OSs also cover different ranges of processor architectures - from 3 for FreeBSD to more than 30 for NetBSD.
For anyone looking at or using Linux, one of the BSD versions may suit you better. This column gives an overview of the different versions with links for more information. In some cases it may be reasonable to move from a commercial Unix to one of the BSD versions for applications, lower costs or support. And for anyone interested in the state of operating systems, it's worth knowing where BSD fits in.
The various BSDs, unlike Linux, have different kernels, source code sets, implementations, and support groups. However, the BSDs stem from a common original source (4.4 BSD-Lite) that predates Linux and have many similar components. But the BSDs are clearly distinct from Linux, which is apparent as soon as you begin working with them.
BSD originated as the Berkeley Software Distribution from the University of California. BSD was one of the two main Unix versions, the other being ATT's System V. These first Unix versions shared the basic concept of multiple users sharing a system with many small, powerful tools that could be strung together to perform complex tasks.
These two early Unix versions had significantly different interfaces and implementations. Those incompatibilites, and hardware differences, would be the early Unix Achilles heel. The resulting wide variations in hardware and software made porting applications to different versions of Unix difficult and expensive. This problem multiplied as new vendors created other versions of Unix, preventing the appearance of a mass Unix market and economies of scale. As a result, early Unix systems were expensive, complex and required experienced administrators.
In the last decade, powerful tools, inexpensive hardware, and freely distributed versions of Unix have changed that picture. Convergence of Unix architectures and new porting techniques have reduced the barriers to application availablity. Porting is an approach that relies on a small group of people to make the changes to Linux and other software code, and make it available as source or binaries for other OS.
FreeBSD is the best known version, but OpenBSD, NetBSD, BSDi, picoBSD,and 4.4BSD-Lite all have BSD cores with widely varying specialization. When you visit a BSD site, those smiling red beings you see on BSD logos are daemons, not demons. Note the spelling - these are the good guys working hard inside your computer. One BSD version not accessable at the time of writing is picoBSD. Although it is shown as a link, there is a DNS problem preventing access.
FreeBSD and its siblings are an outgrowth of the original BSD Unix created and supported by the University of California. When support was finally terminated for the original BSD by UC, several programmers stripped out the proprietary parts of BSD, creating 4.4 BSD-Lite. Further development and enhancement with open source has created a number of OS versions which run many Internet and intranet sites. Some BSD versions will run binaries from other OS, such as FreeBSD which runs Linux, SystemV R4, and SCO binaries.
The phrase 'BSD is a mature OS' makes frequent appearance in discussions and writing about them. What makes a 'Mature' OS? The answer is Time and Experience. BSD goes back to the early 1980s, as a UC supported development. The source code has been exposed to critical analysis from thousands of programmers for almost twenty years, and the best TCP/IP stacks have come from BSD developments.
What makes 'Mature' important is that a new OS is a lot like a baby - it often makes messes and behaves unpredictably. A new OS needs time to grow and be exposed to the real world, which is often harsh. Making an OS both robust and powerful requires time to eradicate bugs, refine designs, remove bottlenecks, support a broad hardware and applications set, and generally become reliable and useful.
After almost ten years of development, Linux is still considered by some to fall short of the reliability and efficiency of the BSD brigade. However, cross fertilization between Linux and BSD has increased recently, and this will lead to improvements on both sides.
Each version of BSD has a specialization that aims its support at a specific area. Being all BSD based, they share a number of characteristics that make the BSD brigade a powerful set of operating systems, challenging the best commercial UNIX systems in almost every technical area except clustering.
Here is a brief overview on each version of the BSD OS Brigade. The paragraphs in italics are edited abstracts from the indicated sites.
The source code (45 MB) for the free parts of the original BSD. This is for those who want to look at the source, or want to roll their own for some special purpose. It is the base of the other BSD versions which were developed later.
BSDi delivers Internet infrastructure-grade systems, software and solutions backed by world-renowned professional services and support. BSDi-based systems power the Internet. BSDi is used in the Internet's highest-traffic Web sites, and high-volume Internet services.
BSDi is the commercial BSD version, with professional support. If you want to run a critical company operation on BSD, getting the one with support is the most expensive up front, but cheaper than trying to find someone to fix the system while you're company is idle because of a problem or misconfiguration. As always, developing in-house resources may seem ideal, until that resource leaves for another job. Even if you do have local support, professional backup from BSDi is a great option to have.
FreeBSD is an advanced BSD Unix operating system for the Intel compatible (x86), DEC Alpha, and PC-98 architectures. FreeBSD makes an ideal Internet or Intranet server. It provides robust network services, even under the heaviest of loads, and uses memory efficiently to maintain good response times for hundreds, or even thousands, of simultaneous user processes.
FreeBSD is the generalist OS of the BSD brigade. It can be used as server, router, workstation, and more than one of these at a time. While other BSD versions can do this, FreeBSD comes up the winner in the application arena. Nearly 4,000 applications will run natively on FreeBSD, some in precompiled packages, many by an automatic installation technology called 'Ports'.
A set of port directories in FreeBSD enables the user to go into the extensive ports collection, index to the right class of software and type 'make sfwname'. The port files do all the rest of the work, including testing for prerequisites and downloading and installing them automatically. It's almost magic, and one of the really powerful features of FreeBSD. Check it out here:
NetBSD is a free, highly portable Unix-like operating system available for many platforms, from 64-bit AlphaServers to hand-held devices. Its clean design and advanced features make it excellent in both production and research environments, and it is user-supported with complete source. Many applications are easily available.
NetBSD is the most broadly available OS of the BSD group. On the main web page, they list no less than 33 processor architectures that are supported. Along with the supported systems, there is a separate page listing about a dozen more architectures currently being looked at or under development. It should be no surprise that with the 'Net' in NetBSD, networking is their forte. NetBSD has considerable support for IPv6, the next generation Internet standard. If you want to experiment on any network issue, grab a random bunch of hardware, install NetBSD and hack away.
NetBSD doesn't overlook applications either. their applications page lists more than 1500 packages, ranging from archivers to X11. The databases entry, always one I check, has 34 entries including the recent Postgresql 7.0.2, with a Python interface to its Postgresql as well.
The OpenBSD project produces a FREE, multi-platform 4.4BSD-based Unix-like operating system. OpenBSD's efforts emphasize portability, standardization, correctness, proactive security and integrated cryptography. OpenBSD supports binary emulation of most programs from SVR4 (Solaris), FreeBSD, Linux, BSD/OS, SunOS and HP-UX. OpenSSH is included in OpenBSD.
OpenBSD is the secure OS specialist. They have bragging rights - see this quote from their website:
In order to reach this level of security, the entire source tree was reviewed in detail. OpenBSD supporters have been auditing since the summer of 1996. The process they follow to improve security is simply a comprehensive file-by-file analysis of every critical software component, looking for security holes and basic software bugs. OpenBSD is proactive in anticipating possible problems and fixing them before they can be exploited.
Probably their best action was to ship OpenBSD in 'Secure by default' mode. The basic install is secure, and in the process of enabling daemons to support specific capabilities, the user will learn how to keep the system secure. OpenBSD is on my list to upgrade my firewall. Read the full details on what OpenBSD does here:
Why does Linux get so much press when the older free BSD systems have been around longer? Two reasons stand out. First, Linux has one person at its focus - Linus Torvold. Originally a single person's creation, Linux has continued to be held to a single path by its creator. This makes for a great human interest story, and the technology issues aren't as important to a lot of people. It's easy for the end users to understand and talk about Linux because of this focus.
Second, Linux and the Open Source concept matured at the same time, each boosting the other because for a while they were synonymous to many people. Linux also interested a lot of young people in OS development, just when it seemed that Microsoft had taken all of the adventure and interest out of OS development. This interest led to stealth installations of Linux that supplemented or replaced NT systems, and ran better. This was another big human interest story - lone inventor tops worlds largest software company. It didn't hurt to have the Linux David versus the Goliath monopoly either.
The BSD brigade however, was a small offshoot of a major OS initially. There wasn't much progress to be seen until the 4.4 BSD-Lite core was released from copyright and licensing restrictions. The versions of BSD were developed by several groups in different directions, scattering the attention that it did get. And probably most limiting, there was no one person as center or spokesperson for the BSD group of operating systems.
Despite this slower start, BSD is in many ways best described as 'Linux's bigger brother'. The initial weakness of diversity of direction has, over time, matured into strength. I have tried to describe the BSD wealth of diversity in this column, but this is a but a tiny sample of the possibilities. BSD in one version or another, is at the base of many of the Internet's biggest sites. Companies with the money to put any OS they wanted into place chose a free OS that most people hadn't heard of. That choice speaks volumes about the BSD reliability and performance.
BSD requires a certain level of technical knowledge. The FreeBSD install is not for the clueless - you need to know your hardware and be able to select out the controllers that do not exist in your configuration to avoid conflicts. Some of the Linux distributions (Caldera is one) have installation programs that can detect and install without any manual selection involved.
Allocating FreeBSD disk partitions is a two step process, not one. Fortunately, selecting the software is straightforward, and if you have room, just select all of the packages, all of the crypto sets, and the full ports collection. On my 4.0 installation, it totalled 651 MB without any of the extra packages on CDs 2 thru 4.
In the longer run, it may be that Linux will have the press, and the BSD brigade will do the heavy lifting.
Where there's smoke, there's fire. And where the smoke goes can affect health and safety. Lawrence Livermore National Labs (LLNL) has developed a technology over more than 20 years that can accurately predict where smoke or other particulate plumes will travel. The Atmospheric Release Advisory Capability (ARAC) has forecast plumes for a tire fire in Tracey, CA., a Cesium-137 release in Spain, the Mount Pinatubo eruption plume in the Philippines, and the radioactive plume from Chernobyl.
The actual process of prediction is complex. Using supercomputer capability, it starts with a grid topographic map built from a geographical database. This creates a representation of the land and water surface in the area of the plume. Next, meteorological observations from the upper air and surface are combined into a gridded model of the winds in the volume from ground level to over 100,000 feet altitude.
This mesoscale prognostic model is combined with the topographic information to model the wind flow over the actual surface. Then a Langrangian particle-dispersion model is applied to the wind flow to determine the pattern of dispersion. Finally, the deposition and concentration plots are derived from the dispersion pattern. This whole process is illustrated about half way down the ARAC web page referenced above.
The ARAC system has expanded from a preliminary system built in the 1960s, under project Plowshare, to predict radioactive dispersion from peaceful uses of nuclear explosives. The current ARAC system was funded a decade later and has grown over time as its value has become evident. Currently, 160 events have been analyzed, some as hypothetical, others as real as the Mount Pinatubo eruption.
During that explosion, Clark Air Force base and Subic Naval Base had to evacuate military personnel and dependents. But the ash plume from the volcano is deadly to aircraft engines as it is extremely abrasive. The services turned to ARAC to predict the direction of the plume in advance so that planes could avoid the dangerous ash plume. ARAC made predictions up to two days in advance that enabled a massive evacuation to be carried out without flight problems.
Although the genesis of this project was part of a nuclear explosives project, the actual use of ARAC has been for people's health and safety. Being able to predict the future path of hazardous particles has turned out to have many beneficial uses. This super application is just one of the many offshoots from research done in the advanced labs.
Finally, while not one of the super applications, the TRACE sun observer has given us a new look into the star that is the source of most of the energy available on earth. This is available at Laurence Livermore National Labs (LLNL). The multi-layer reflector coatings used on TRACE mirrors is an interesting technology, and may be a significant contribution to chip fabrication for the next generation of smaller and faster processors.
I think you will find the picture of the sun's plasma and magnetic fields both stunning visually and interesting in their complexity. Learning more about the star that keeps us alive is certainly on my list of worthwhile research projects.