I downloaded a copy of FreeBSD 4.7 many years ago intending to try it out, but never did for lack of spare hardware. Along with its siblings (NetBSD and OpenBSD) to be the closest descendant of the early BSD systems made through out the 80’s and late seventies. I won’t go into details about the history, as I’ll be terribly inaccurate, and there are a lot of documents around the web already detailing the history of Unix and BSD. Here are a couple of links.
The Wikipedia page
The Open Group: Unix History and Time line
Recently I installed NetBSD to run on my old sparc, which re-sparked my interest in the BSD platforms. This week I installed FreeBSD 9.0 on my virtual machine I have on my Macbook Pro as a matter of experimentation to find out what it was like.
Installation
Installation was relatively simple and performed via a text mode using simple keyboard commands. There wasn’t much to configure, but also not many options for the base system, which I think is because of the nature of how slim the initial install is. Most of the installation is dealing with setting up the disks and partitions, and which basic services are enabled. I did note that there was no option to install the X windows portion off the disk. Like NetBSD it is important to know your Unix stuff before jumping in, you should be able to use a shell and preferably also know the basics about building software. The amount of disk space you need will depend on the software you intend to install. The base system once installed is quite slim requiring very little in the way of disk space and other resources to run quite well.
Adding More Software
The main package management system for FreeBSD is called ports, it is one of the older package distribution systems and as such has more packages available for it than the other BSD systems, and more than many of the Linux distributions with some notable exceptions. You have two options for installing packages, one is installing binaries provided to you by either CDROM, or download. I wanted to try out the ports system for automatic download and building of packages and I wasn’t disappointed. First I installed bash and nano as the base system didn’t have either of these two there by default. The build process was pretty simple, you just located the directory of the port you want to install, and then type make install. During the build process you are asked about the options you want to use when building the software. This is better than pkgsrc as it required you to edit some files to change what options you wish to use. I went on to build X and attempted to build Gnome 2. I must have changed an option that gnome didn’t like as I couldn’t get it to build completely, but I am sure this was my mistake, I just couldn’t work out how to fix it within the limited time frame. I had a bit of trouble getting gdm to work as well, but that was solved after a bit of reading on the FreeBSD website, but other software such as xdm and FVWM were very simple to get up and running. Xfce built, installed and ran quite well, and to me looks like the best option for user interfaces as it is lighter than both Gnome and KDE, but has many of the features that most users want out of a modern operating system. If you’re after a minimalist user interface, FVWM is a good choice and has one of the later versions in ports as compared to pretty much all the other systems out there. In doing all this I found that it can be a very lengthy process to build the larger bits of software from source, the upside being when it is done, it’s optimized by the compiler for your hardware, and you get the latest version if you keep your ports collection up to date. Otherwise you should pick the binary install option as this will save you alot of time.
Advantages
FreeBSD is better supported than its cousins NetBSD and OpenBSD, and as such has more in the way of packages that are updated more frequently. FreeBSD and it’s siblings have the advantage over Linux in that they seem to have a more mature and stable code base. For instance, in the time that I’ve been using Linux, the kernel and supporting utilities have changed dramatically, making some older software completely un-buildable now, where as the BSD systems seem to move slower and are keeping compatibility for older software alive. I think this contributes to them being more mature than Linux as the software has time to have the bugs worked out. I’d say this methodology also affects how the design and user interface is built. Configuration via configuration files seems to be easier than Linux, as all the files were generated by humans and as such are easier to read. For instance setting up gdm to start with the system required only adding two lines to the rc.config file.
Disadvantages
It seems that some software creators for various reasons are dropping support for BSD and various other Unixes in favour of only supporting Linux. I think some of it is ideological, which I disagree with. Some of it is because of the problems supporting multiple platforms, this particularly applies to projects that are supposed to be libraries or system utilities for other programs. This has a ripple effect making software further down the line also incompatible with non-Linux systems. What is the point in using a library or package that interfaces with the kernel for you if it doesn’t support many kernels/operating systems? You might as well write it yourself! You may have heard that Gnome is officially only going to support Linux in its future releases. I’m not sure how true this is, but it could be quite an inconvenience for a good many BSD users as well as people on Solaris and commercial Unixes that use Gnome. It seems the root cause is that the automounter package used by gnome and a few others (Xfce for example) have decided to drop support for the other operating systems. I hope I’m wrong, as I’d hate to see the community of free software developers divided.
BSD versus Linux
There seems to be a difference in how both the communities view what an operating system should be. The bigger Linux distributions take the view that everything is part of the operating system, which is very evident in something like Ubuntu. There also seems to be a move towards hiding the traditional Unix portions of the operating system from users, which can be a good thing when not over done. BSD seems to see the operating system in a minimalist kinda sense, where the base system is small, stable and mature. Everything else including the user interface is up to the end-user to customise. It’s also not afraid of being a traditional Unix system.
There are also some differences in licenses, but that’s not really something I’ve ever really cared about. I only want to know that the system is free, and the source is available and can be modified.
Conclusion
FreeBSD is a good place to go if you’ve been curious about BSD systems and have some experience with the command line on something like Linux. You’ll find there are more packages, that are updated more often than its siblings NetBSD and OpenBSD. However it’s not as well suited as NetBSD is for using on exotic hardware such as the sparc platform, so you will want to run it on a PC or PC compatible. There is very little in the way of cruft in the base system which means there are few points of entry for hackers, so it would actually be a better option for running a server than many other systems. But you do have to set up all the components yourself, which does give you more control, but also takes more time to do. To use it as a desktop system workstation again needs a lot of time to set it up initially, but you’ll have exactly what you want.
Recent Comments