Foreword Since the beginning of time, humanity has strived to record its deeds onto paper. Then came computers and we needed to record how to work them, build them, and so on. This has been a laborious process since the programs we write for them always need to be updated. In a perfect world, we could count on computers to document themselves, but it's sadly not that way. Netbsd, FreeBSD, openbsd and dragonflybsd are all systems that are comparable in some manner. They can all use similar programs despite having a different codebase. Nevertheless, many problems remain in some areas of the documentation. In some cases there's no documentation altogether for certain use cases, as they are left to rot on some website, without ever being updated. The purpose of this book is to identify and potentially fix those problems. This book will be continually updated to document any changes in the handbooks, manuals, wikis and websites for those systems. Chapter 1 Whenever people cite a BSD system, they usually comment on how much it's different from Linux. The truth is that while they're indeed different, they're more same than not. How about when it comes to differences between the distributions themselves? In that regard, they're radically different. Each system prides itself on a specific area. Let's examine them. FreeBSD: What is FreeBSD’s specialty? Simply put, acting as a internet server for various services. It excels at that. The fact is also that it has more packages than any other BSD system is a particular point too. This means that it's software support isn't something to laugh at. It also has several key features that the other distributions are only now gaining, such as virtual machines. I wouldn't hesitate to say that FreeBSD is the king of the pack. NetBSD: This distribution is known for running on everything from archaic hardware to toasters to satellite equipment. The legacy it has is astounding. The 1main feature of NetBSD is that it can run on anything almost, the small size of the system and Pkgsrc. Pkgsrc is a package system that allows you to install thousands of software packages onto your computer. What makes Pkgsrc different is that supports so many different systems, so it's cross-platform. NetBSD is your system if say, you're running a SPARC. OpenBSD: The internet is known for being a hostile place. Spamming, phishing, brute-forcing and so on. OpenBSD has all the tools to stop and protect yourself against that. What sets OpenBSD apart from the rest is that it focuses on security. Besides the security aspect, it's also set its sights on being easy to operate through its excellent manuals. You should use OpenBSD if you're into security and simplicity. DragonflyBSD: Diverging from FreeBSD, Dragonfly strives to be a general purpose operating system. Its main features are the hammer2 file system, virtual kernels, light-weight kernel threads and more. It's very cutting edge. If you have a need for a fast and resilient system, Dragonfly is for you. Now you're probably wondering if there's anything that makes them alike. There are several, which I'll go into here. Firewalls: The PF firewall is shared between a number of BSD systems. Specifically FreeBSD, OpenBSD and NetBSD. The documentation is neglected in the case of FreeBSD and NetBSD, but OpenBSD always has good documentation for their subsystems. Virtualization: Each of the BSDs have their own virtualization methods, but they generally work the same. Usually that involves creating a virtual hard drive, using an iso image to install onto the drive and logging in via a serial connection or ssh. NetBSD, FreeBSD and OpenBSD all have full system virtualization, whereas dragonfly only can do kernel virtualization. File systems: The ZFS file system is quickly becoming the cross platform file system of choice. NetBSD and FreeBSD both support it well. OpenBSD still relies on the FFS file system and Dragonfly uses hammerfs, which is an advanced system similar to ZFS. Additionally, most of the BSDs have support for the Fuse virtual file system, which allows you to interact with things like ssh transparently over your file system. As you can see, the BSDs share quite a bit of their subsystems. However, there are still significant differences in other areas. Let's go over them. Security: The systems each BSD employs for security is often radically different, such as FreeBSD using ACLs, PAM, HardenedBSD integration and more and OpenBSD using only the traditional model of Unix security. NetBSD also uses ACLs, MAC and hardening techniques such as PAX.(I don't know Dragonfl- yBSD's security(0)) Root Shells: For OpenBSD, they use the ksh shell. FreeBSD uses tcsh, NetBSD uses sh and DragonflyBSD uses(Have to find out(1)). Main Documentation: For this, FreeBSD users are mostly told to refer to the Handbook, OpenBSD users the FAQ and Man Pages, NetBSD users the Tutorials/ Handbook and DragonflyBSD users the Wiki. Custom Kernels: As far compiling your kernel goes, in FreeBSD it's usually not needed but is easily doable. OpenBSD, it's not recommended in the guide. NetBSD usually has no qualms with it and DragonflyBSD(I don't know what they recommend(2)). Third Party Software: Regarding software that doesn't come with the base, FreeBSD uses the pkg program, which is very similar to apt nowadays. OpenBSD uses pkg_add, which is very minimalistic but gets the job done faily quickly. NetBSD uses pkgsrc, which can be used with building source packages or just fetching binary packages, and also can be used on a wide variety of systems besides just NetBSD. DragonflyBSD uses DPorts, which is similar to FreeBSD's pkg. Unicode Support: FreeBSD has good Unicode support, OpenBSD is still working on it.(Don't know the status of DragonflyBSD and NetBSD Unicode support(3))