The BSD family

If you’re a regular reader of this blog, chances are that you have at least heard of Linux, even if you don’t use it directly on a daily basis. However, you might not be aware of the fact that there is a similar – but subtly different in parts – family of systems based around the Berkeley Software Distribution (BSD). These have similar commands to Linux distributions, and most software will run with minimal changes (or under a compatibility mode), but there are a few places where the various BSD distributions differ.

The main difference – which drives some of the other changes – is the licence used for the BSD kernels. Linux uses the GNU General Public Licence (GPLv2), which states that if you distribute a modified kernel, you must also make the source code these modifications available (technically only ‘on request’, but preferred practice is to place the code on a public website or repository). BSD kernels on the other hand use one of the BSD licences, which do not require the release of source code for modifications – although developers are still encouraged to do so. As a result, BSD distributions are sometimes preferred in certain situations where the release of source code may not be desirable or permitted.

Other differences include the default shell (tcsh in FreeBSD and ksh in OpenBSD for example), which may cause some confusion the first time you boot up – although switching to bash is fairly easy.

There are three main BSD distributions: FreeBSD, OpenBSD and NetBSD, each with their own strengths (I’m deliberately skipping over niche or derivative distributions such as DragonFly BSD and PC-BSD).

FreeBSD

Due to its relatively generic nature, FreeBSD is probably closer to most Linux distributions than OpenBSD or NetBSD. It can be used either on desktops or servers, although desktop users may prefer to use a derivative specifically aimed at them. My impression is that FreeBSD is the mostly widely used distribution, although as with all open source projects, obtaining accurate installation and user numbers is difficult.

OpenBSD

OpenBSD is primarily aimed at specialised networking cases, such as VPNs, firewalls and routers – though it is possible to run it on desktops. Strict code and licensing audits are a key part of the project. Some OpenBSD subsystems have found their way into other BSD and Linux distributions, including OpenSSH.

NetBSD

NetBSD aims for portability above all else, and runs on over 50 platforms covering a wide range of processor architectures. Not only that, but its cross-compiling build system allows building a NetBSD system for an architecture other than the one it is built on. This portability and cross-compilation support makes it a popular choice for embedded systems.

Comments

No comments yet. Why don’t you start the discussion?

Leave a Reply

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.