Industry Publications Index ... Click Here




BSD Derivatives - SunOS and BSD/OS

Originally published  May, 1996
by Carlo Kopp
1996, 2005 Carlo Kopp

The BSD derivatives of Unix were without doubt the mainstream product in the booming eighties workstation and server industry. While the commercial market has since embraced SVR4 ostensibly for reasons of portability, BSD derivatives are still widely in use, and will continue to be for some time yet. Indeed, the BSD/OS system is an essentially new product and has found a strong following in its own market niche.

BSD Unix

The early genealogy of BSD Unix was discussed in some detail in February 1996 OSR. To pick up from that point, DARPA had specified that BSD become the standard networked operating system for defence contracting and research sites.

The early to mid eighties were the period during which the Unix workstation emerged as a product and took the previous minicomputer marketplace by storm, much to the chagrin of established proprietary minicomputer vendors. Many have not recovered from the assault, and essentially remain entrenched in commercial niche markets.

The principal vehicle of the Unix assault on the proprietary vendors was 4BSD, and its most visible proponent Sun's SunOS, which we will further discuss. Sun however were not the only party selling 4BSD based product at the time. Virtually all of the mainstream vendors ported 4BSD to their workstation and minicomputer products, and those who stuck to proprietary systems, such as Apollo, suffered the ultimate penalty as a result.

The decline of BSD Unix as a mainstream commercial product began in the late eighties and early nineties, and it is reasonable to say that Sun's defection from the BSD camp to the AT&T SVR4 camp was the decisive move which ultimately dried out the R&D funding for Berkeley's CSRG lab. With the dissolution of CSRG in the early nineties the focal point for the development of the standard reference version of the 4BSD collapsed. For fans for BSD Unix, this was a sad time.

The members of the CSRG development team scattered across the industry, with the highest concentration ending up with the Colorado based BSDI, who have continued the development of the final CSRG 4.4BSD release. At this time BSDI have in effect supplanted CSRG as the core development group for BSD based commercial product.

4BSD is still in very wide use primarily due the established base of older SunOS systems, particularly in academia. Because 4BSD was designed to squeeze every ounce of CPU performance out of its host platform, it performs better than SVR4 on the same machine (and vendors who may dispute this do not have a case). Owners of large numbers of older Sun machines have often been reluctant to move over to Solaris 2/SVR4 as this would cost them both in performance on older machines, and in the loss of the bundled development tools. The C compiler is usually unbundled in SVR4 systems (a pleasure for salespeople and a displeasure for users).

The future of 4BSD lies in BSDI's commercial 4.4 Lite product (DEC's OSF/1 owing its origins as much to Mach 2.5), and the ever growing FreeBSD community. The 4BSD operating system still provides much better networking performance than SVR4 and hosted on the humble PC, has found a niche market in the Internet Service Provider community.

Sun Microsystems SunOS

The SunOS operating system was the most commonly used 4BSD derivative during the eighties and nineties, and much of its early success derived from its philosophy of providing a relatively standard 4BSD product at the programming interface, with a generous provision of tools for "do it yourself" support. Not only was the C compiler bundled in, but so were debuggers, disk formatting tools and a fairly comprehensive suite of user level hardware diagnostics (sundiag).

What this meant is that third party peripherals could be very easily integrated with the manufacturer's basic product, indeed the boom in the third party integrator's industry had much to do with this kind of support.

The final mainstream release of SunOS was 4.1.3, which has recently been followed by 4.1.4 which is essentially the 4.1.3 kernel with an accumulation of various bug fixes added in. This includes the motherboard serial port driver rewrite.

Beneath the system call interface SunOS is essentially a unique animal, with a large number of Sun specific features against the CSRG 4.2 and later 4.3 releases. The most notable difference lies in the device driver interface, which is essentially proprietary to Sun.

The history behind the device driver interface is quite interesting, and can be traced back to the original SPARCstation 1 machine, which was Sun's first RISC workstation. Until then, the SunOS 3 operating system used the standard Berkeley driver model, where the kernel executed a probe call to find a physical device such as an I/O board or a disk drive, and once it had found the device, it would then execute an attach call to make the device visible to the operating system.

The radicals in Sun's software development group thought that this could be improved upon, and proposed what they intended to become a new industry standard in device driver interfaces. This was to become the Open Boot PROM (OBP). The central idea behind OBP was to provide an intelligent boot-PROM on the machine, which would do all of the probing instead of the operating system. This meant that most of the platform specific code, particularly in workstations, would migrate from the operating system into the by default platform specific boot-PROM. Instead of having the kernel call probe, it called a new program, identify, which read a table in memory which contained all of the device information. The table was generated at boot time by the OBP code.

The OBP contained a number of other clever features primarily aimed at supporting hardware development. One was a Forth language command interpreter, which is the user interface at the boot prompt (the ok prompt). This interpreter is supplemented by a toolkit, which allows manual manipulation of hardware at the register level, as well as the loading of the OS and insertion of breakpoints into the OS. Moreover, Sbus I/O cards contained their own boot-PROMs, with embedded tokenised binary Forth code which was used to provide card specific initialisation and where applicable, support for booting. It is not unfair to say that the OBP is technically more sophisticated, powerful and elegant than the MS-DOS operating system.

The OBP was shunned by other vendors, and ended up becoming a feature specific to the Sun marketplace. It is used by Sun and by manufacturers of Sbus I/O cards specific to Sun machines. The now defunct Solbourne, a Colorado based manufacturer of compatible machines, did not use the OBP in their Sbus based machine, and this did indeed create much pain for parties intending to fit these machines with third party I/O cards. The rise and fall of Solbourne is a story within itself.

In most other areas, such as the filesystem, virtual memory system, networking code and other kernel internals Sun provided the BSD standard interface, but very often reworked the internals. An example would be the X server implementation, which employed many bits and pieces from the NEWS windowing scheme. Sun's early and proprietary windowing tools were retained concurrently with the X based OpenWindows suite.

Other additions to the operating system, such as the RPC/XDR/NFS suite, memory mapping of files, and the vnode mechanism, were home grown and of sufficient importance that they became industry standards and eventually merged into AT&T SVR4.

The SunOS system will continue to be supported on older Sun machines, but it is well and truly past its prime as the trail-blazer of technology in the commercial Unix marketplace.

BSD/OS

BSDI's BSD/OS, formerly known as BSD/386, is the current incarnation of commercial 4BSD Unix. Of all the commercial Unix derivatives available, it is the most open by virtue of being available with a full source tree at an accessible cost in 3 figure numbers (unlike the AT&T product which used to be available to interested parties for a 6 figure amount).

Historically BSD/OS shares its early origins with FreeBSD and NetBSD, but unlike the latter which are maintained by enthusiasts in the public domain, BSD/OS was further developed commercially by BSDI, using a team of programmers many of whom previously worked for CSRG.

The first release of BSD/386 hit the market early in 1992, but its penetration was slowed by the then ongoing litigation by USL. With the release of the wholly USL free 4.4BSD Lite (the term a distinct Americanism derived from "Miller's Lite" beer marketing), BSDI produced the 2.X release of the system which is now the current product.

BSD/OS is a fully featured 4.4BSD Lite system, with a number of additions merged in from the earlier 4.3/4.4BSD Release 1 product. The system provides fully compliant POSIX 1003.1 system calls, both TCP/IP and OSI stack networking support, an implementation of NFS, X11, troff and TeX, and a bundled C and C++ compiler. The system includes a bundled commercial Xinside X11 server binary release, but will also support the public domain XFree86 server.

BSDI have added in a considerable number of enhancements to the basic 4.4 Lite tree. These include:

  • Shared libraries

  • PCI bus support

  • improved TCP/IP security against the 4.4BSD baseline

  • ATAPI and FDDI support

  • Token Ring support

  • Drivers for a wide range of multi-port serial cards

  • VOXWare compatible sound support

  • Virtual memory fixes against the baseline 4.4BSD

  • Emulation of the System V dlopen() dynamic linker interface

  • User classes (per class resource limits and authentication methods)

  • Support for hardware authentication tokens

  • Synchronous serial card support for US T1 (56kbps) standard

  • SCO binary compatibility (with shared memory support through mmap emulation)

  • A wide range of additional tools (ie MH, gated, apache, INN, emacs)

  • Remote kernel debugging facilities

  • A wide range of ISA and EISA drivers

People will have an inevitable tendency to compare BSD/OS with FreeBSD, since they are the only widely available 4.4BSD ports. Whilst both share the same origins, BSD/OS is a more mature commercially supported product, with an arguably much larger set of enhancements. BSDI have concentrated on the Intel platform, and focussed on the ISP marketplace. Given the superior networking performance of the BSD design and low cost of PC hardware, this yields a very good return in "bang for buck". The availability of cheap source code has provided BSDI with a considerable advantage in the technical customer base, and the company has held its ground very well against the rush of major vendors to get a slice of the ISP market. Moreover since BSDI are only concerned with the operating system, unlike the major vendors whose agenda by definition must include hardware sales, they can concentrate on system issues to the exclusion of hardware.

It will be interesting to see BSDI's progress in the longer term, in what is an inherently volatile and fickle marketplace. If past experience is any indication, they will be here to stay.




$Revision: 1.1 $
Last Updated: Sun Apr 24 11:22:45 GMT 2005
Artwork and text 2005 Carlo Kopp


Industry Publications Index ... Click Here