© Amit Singh. All Rights Reserved.
Written in Mid 2003
Other than Bell Laboratories and AT&T UNIX development groups, the University of California at Berkeley had the most influential Unix development group. The best exposition of BSD's history can be found in the first chapter of The Design and Implementation of the 4.4BSD Operating System by McKusick et al. The chapter also shows the dizzying BSD family tree. I have always found BSD to be more pedantic (in a formalistic or precisionistic sense) than say, Linux.
Moreover, my interest in Mac OS X has strengthened my interest in FreeBSD as well.
I encountered my first *BSD, 386BSD, in 1994. Thereafter, I have worked on various BSD flavors, with FreeBSD being the platform on which I did most of my initial professional work. My work involved design and implementation of hierarchical fair share CPU, network and disk schedulers, extensions to the TCP/IP stack and QoS extensions for protocols like NFS, FTP and HTTP. The FreeBSD kernel is an excellent study in operating system design, and I have always found it particularly helpful to have a reasonably current FreeBSD system handy for research and experimentation.
FreeBSD 5 installs and runs seamlessly on VPC 6. Networking (including DHCP) and XFree86 can be configured and run without much ado. These are very exciting times for those following/involved in FreeBSD development. The 5.1 "new technology release" has a very impressive list of additions and improvements. Some of these include: a single boot loader file (!),
DIRECTIO (read operations can bypass the buffer cache), IPv6 support under Linux emulation, mandatory devfs, better support for FireWire and Bluetooth, an in-kernel cryptographic framework, a more powerful "jail" environment, TrustedBSD MAC, file system ACLs (the last few were introduced in 5.0) and many more.
Several years ago, even though I had 386BSD, FreeBSD, NetBSD and OpenBSD all installed on my "home" machine, I primarily used FreeBSD for most "BSD purposes". I turned towards NetBSD with a lot more sincerity later on when I had the need to use a BSD on SPARC and MIPS. Indeed, the portability of NetBSD is phenomenal, with the supported platform list containing close to 60 platforms as of 2003! A few years later, I played with NetBSD on a Sega Dreamcast.
NetBSD is a nice reference system for studying kernel code portability across platforms. Version 1.6.1 installs and runs normally under Virtual PC. Networking, including DHCP, works as expected.
OpenBSD is usually considered as the "secure" BSD. The OpenBSD people even claim that their goal is to be "NUMBER ONE" in the industry for security (if they are not already there)! Well, they have a security auditing team that proactively searches for new security holes. Moreover, since the project is based in Canada, it is possible for the OpenBSD team to integrated cryptography in the system (it was the first system to ship with an IPSEC stack). I first used OpenBSD in 1998, and have used it as a reference operating system for comparing FreeBSD's TCP/IP code.
OpenBSD 3.4 installs under Virtual PC without much effort, although their installation procedure is a bit primitive as compared to FreeBSD - not that this is a problem.