Experimenting with PC-BSD 10.1



PC-BSD is an operating system that uses FreeBSD as a base. The latest release of PC-BSD, version 10.1, was launched in November and carries a number of interesting features. The new version of PC-BSD features support for ZFS as the root file system, hard drive encryption, booting from UEFI and an updated version of the Lumina desktop environment. PC-BSD 10.1 also ships with an updated version of the pkg-ng package manager. This new version of PC-BSD is available in a variety of flavours, including a 3.3 GB edition that enables users to install either the desktop or server variant of the operating system. Alternatively there is a 615 MB server-only edition. Various downloadable images are available for running PC-BSD in virtual machines too. Each edition of PC-BSD is available exclusively in a 64-bit x86 build.



I decided to download the desktop edition of PC-BSD. Booting from the project's media brings up a menu asking if we would like to launch the operating system's graphical installer, run the installer in a safe graphics mode or if we would like to run a text-based installer. I took the default option, which is to run the graphical installer. The first screen of the installer asks us to select our preferred language. We are then asked if we would like to set up PC-BSD with a desktop environment or we can install the project as a server with a command line interface. This screen also gives us the option of restoring our operating system from a saved snapshot. Once I selected the Desktop option I was offered the chance to customize the installation.



By default, PC-BSD installs with the KDE desktop and a few other packages. However, we can select other desktop environments, including MATE, Xfce, Lumina and LXDE. Fans of lightweight window managers also have many options from which to choose. There are additional packages we can install such as NVIDIA video card drivers, the LibreOffice productivity suite, VirtualBox and VirtualBox guest add-ons. The installer lets us select an IRC client, remote desktop software, VPN software and we have the choice of running the Firefox or Chromium web browsers. Once we have made our software selections we are asked where we should install PC-BSD. The PC-BSD operating system uses the ZFS advanced file system and we have the opportunity to tweak the ZFS settings. For instance, we can enable or remove data compression and adjust the size of our swap space. From there the installer copies its files to our hard drive and then asks us to reboot the machine.



There are a few things I like about PC-BSD's installer. One is that most options are hidden away. We could, if we wanted, pretty much click "Next" a few times and let PC-BSD take over our entire computer with reasonable defaults. We access most features by clicking a "Customize" or "Advanced" button on each screen. This gives the user a good degree of flexibility without cluttering the interface. I also like that there are buttons placed at the bottom of each page of the installer. These buttons bring up extra features. One button lets us change our keyboard's layout, another opens a wizard to configure our network settings and a third opens a command line terminal. Other buttons let us check our hardware for compatibility issues, bring up a virtual keyboard and display helpful tips about the options displayed on our screen. I especially appreciate the hardware compatibility tool as it shows us a list of our hardware devices along with an indication of whether PC-BSD can work with the hardware.







PC-BSD 10.1 - documentation provided by the PC-BSD handbook

(full image size: 744kB, screen resolution 1280x1024 pixels)



The first time we boot into PC-BSD we are greeted by a configuration tool which allows us to change our video driver and, optionally, our screen resolution. Once we select a new screen resolution we are shown what our settings will look like and given the opportunity to go back and select new settings. We are then asked to confirm our time zone, create a password for the administrator account and create a user account for ourselves. With these steps completed we are brought to a graphical login screen. I had selected the Lumina desktop as my preferred graphical interface during the installation process and this meant I could login to either Lumina or the Fluxbox window manager.



The first time we login to PC-BSD a welcome window greets us. This window displays a series of tips on how to connect to wireless networks, how to launch the project's package manager to find additional software and how to access settings through the Control Panel. We are also shown where to find the Life Preserver backup utility and how to check for software updates. The last screen of the greeter displays links to the project's website and on-line documentation. Lumina, by default, places the application menu, task switcher and system tray at the top of the screen. Opening the application menu shows us an unusual arrangement. The menu shows us favourite applications on the first screen and there are tabs to browse through a complete list of applications, directories and files.



We can also access our desktop settings through this menu. Each application and directory shown to us has a star placed next to it and clicking this star adds the item to our favourites list for easy access. By default, our favourites list includes the project's Handbook, a link to the AppCafe package manager and the operating system's Control Panel. In the system tray, over in the upper-right corner, we see icons for launching the Life Preserver backup tool and an icon indicating software updates are available. One item I recommend looking at right away is the project's Handbook. The manual is over 300 pages long and presented to us as a PDF document. The document provides detailed documentation on how to install and use PC-BSD, it covers the operating system's features and includes screen shots with its explanations.



Shortly after I logged into PC-BSD the update notification icon in the system tray indicated there were software updates available in the project's repositories. Clicking on the notification icon brings up the project's Update Manager. The Update Manager downloads a list of available upgrades and displays them. Hovering the mouse over an upgrade provides us with a list of files that the upgrade will install on our system. We can mark which items we want to install and click a button to download the waiting upgrades. The Update Manager then creates a snapshot of our operating system in case something goes wrong, downloads and installs the waiting items. I found Update Manager worked slowly during my trial, it took several minutes just to display a list of waiting items and installing updates took a few minutes more than I had expected. However, in the end, all waiting updates were applied cleanly. Plus it was nice to have a snapshot of the file system created automatically during the update process so we can easily revert any unwanted changes. During my week with PC-BSD I downloaded a total of eight updates which came to approximately 110MB in size.







PC-BSD 10.1 - the AppCafe package manager and the Life Preserver backup utility

(full image size: 610kB, screen resolution 1280x1024 pixels)



Another utility for interacting with software packages is AppCafe. The AppCafe program acts as a graphical front-end to the pkg command line package manager. Using AppCafe we can search for software by name and filter items based on the type of software we are looking for. For example, we can search for desktop software or all available packages. Clicking on a package brings up a detailed summary of the software with a screen shot and user supplied rating. We can install the software with the click of a button. One thing I like about AppCafe is that it's easy to use, the interface is fairly streamlined, but it also gives us a good deal of flexibility if we want to search through the menu for extra features. As an example, we can install packages directly into a FreeBSD jail or lock packages at a specific version to prevent them being upgraded. There is also a button we can click to show us recent security notifications.



A second tab in the AppCafe shows us a list of installed items and we can use this screen to remove software or add a program's icon to our favourites list. AppCafe gives us access to approximately 23,000 packages, which reflects the growing FreeBSD ports collection. Some items AppCafe provides for us result in larger downloads than we might expect to see on a Linux distribution. As an example, the Firefox package is 83 MB in size rather than 20 MB, the Chromium web browser package is 151 MB and the GNU Image Manipulation Program (GIMP) is 64 MB. There is a second GIMP package that includes documentation and extra features that is a full 600 MB in size.



The desktop software we have access to out if the box can vary depending on which desktop environment and features we select during the installation process. I started out with a fairly bare bones install of the Lumina desktop. In my application menu I found the Firefox web browser, a remote desktop viewer, the SMplayer video player and the LibreOffice productivity suite. The operating system ships with codecs for playing popular audio and video formats. The VirtualBox virtual machine client was installed along with the Midnight Commander file manager and the Insight file manager. Both the Emacs and Vim text editors were installed and, in the background, I found the FreeBSD kernel (version 10.1) and the FreeBSD userland tools. Looking through PC-BSD's running services I found Fail2Ban, the proactive security software installed and enabled, though no remote login services such as OpenSSH were running. PC-BSD also comes with a firewall enabled by default, protecting us in case a network service is activated.



I tried running PC-BSD on a physical desktop machine and inside a VirtualBox virtual machine. PC-BSD refused to boot on my desktop computer. I found this odd as PC-BSD 10.0.3 ran well on this hardware earlier in the year and, since I did not get as far as a boot menu, I suspect the new UEFI support may be a factor in this problem. (FreeBSD 10.1 offers separate installation media for machines with or without UEFI support. The FreeBSD 10.1 ISO with UEFI support does not boot on my test machine, but the ISO without UEFI support boots normally. This seems backwards to what we might expect to see as my test computer is equipped with UEFI.) When running inside VirtualBox the operating system performed well. PC-BSD integrates nicely into VirtualBox and performs quickly. I did find PC-BSD uses a large amount of the host computer's CPU when running inside VirtualBox, especially when accessing the network. However, despite the guest operating system using much of my computer's CPU, PC-BSD ran smoothly. I found the operating system required approximately 300MB of RAM to login to the Lumina desktop.



One of the central features of PC-BSD is the operating system's support for ZFS, an advanced file system that makes working with multiple devices and file system snapshots quick and easy. ZFS is a key component of PC-BSD, enabling us to take snapshots of the operating system prior to running software upgrades. ZFS is also an important part of the Life Preserver backup utility. Using Life Preserver we can schedule snapshots of our home directories and, optionally, schedule backups of our data to remote computers. We can also create traditional archives of the files in our home directory. Life Preserver enables the user to browse through snapshots of files, using a slider bar to move through time and a regular file manager interface to navigate directories. We can then restore files and folders by clicking a button. If we try to restore a folder from an archive that already exists on the system a new directory is created with the suffix "-revision" to avoid overwriting the existing directory.







PC-BSD 10.1 - running Debian GNU/Linux using Warden and checking for updates

(full image size: 485kB, screen resolution 1280x1024 pixels)



The Warden is another interesting feature of PC-BSD. FreeBSD has a lightweight container technology, called jails, that allows the administrator to run services or other software that should not come in contact with the rest of the operating system. Essentially it is a way to isolate processes without using a full featured virtual machine. PC-BSD expands on FreeBSD jails by making the process of creating jails, updating them and configuring them a simple point-n-click experience. Users can create minimal FreeBSD jails or Linux jails (based on Debian Wheezy). I found jails to be quite helpful when I wanted to experiment with software or compile a program in an environment that could be cleaned up (destroyed) afterwards. Like the rest of the PC-BSD operating system, jails created with the Warden utility can be saved as snapshots. This means if an update breaks our jail's environment or a running service, we can simply rollback the jail to an earlier state. This makes jails even more appealing when we want to experiment with software and configuration changes.



Another tool which stands out is the boot environment manager. This utility allows us to browse, create and remove operating system snapshots. When we rename or create a boot environment PC-BSD updates our boot loader so we can select our preferred operating system snapshot at boot time. In essence this means if our operating system ceases to function properly, we can simply reboot the computer and select a different version of the operating system to boot.



PC-BSD's Control Panel is a central location for configuring the underlying operating system. Through Control Panel we can launch utilities such as the AppCafe, the Update Manager, the boot manager and the operating system's hardware compatibility checker. There is also a services manager, a firewall configuration application and a user account manager. There are tools for setting up printers, a module for launching the Warden and a network configuration utility. I also found a bug reporting tool and a remote desktop server module. These tools typically worked beautifully for me and I appreciate the power and flexibility PC-BSD's configuration modules provide. The one module which did not work was the remote desktop server module. Launching this module did not appear to do anything. The rest of the configuration modules worked well for me and I found them easy to navigate.







PC-BSD 10.1 - configuring the operating system from Control Panel

(full image size: 672kB, screen resolution 1280x1024 pixels)



One final feature I wish to touch on is the Lumina desktop environment. Over in the BSD communities there has been some concern that porting desktops to work on FreeBSD, OpenBSD and PC-BSD may become more work, especially with technologies like Wayland and systemd on the horizon. Lumina is a cross-platform desktop environment that is primarily developed on (and for) PC-BSD. It is fairly lightweight and I found it to be flexible in its layout. Lumina is still in the beta stages, but it was stable for me and worked well. The desktop is responsive and typically works well with the underlying Fluxbox window manager. I did run into a few instances where applications would launch without window controls or title bar, but this was rare. I'm not sure if the problem with window controls lies with Lumina itself or Fluxbox. At times it took me a little adjusting to get used to the way the Lumina menu is presented, but I do like the way the interface handles favourite applications and the Lumina configuration modules worked well for me.



Conclusions



I feel the PC-BSD project does a very good job of taking the FreeBSD operating system (typically considered a server oriented platform) and turning it into a user friendly desktop system. The installer is quite easy to use, there are lots of useful (and friendly) configuration tools and the operating system is very flexible with regards to what software we install and which desktop environments we can use. The way the operating system integrates ZFS and its many advanced features is also appealing as it makes backing up data and recovering from broken upgrades quick and easy. The operating system ships with a great deal of documentation, lots of system administration utilities and a friendly package manager that gives us access to a huge collection of open source software.



The one concern I had with PC-BSD is hardware support. FreeBSD, and projects derived from it, tend to lag a little behind Linux when it comes to hardware support. For instance, while NVIDIA and Intel video cards are well supported, ATI cards are less likely to work with PC-BSD. I had trouble booting PC-BSD at all on my desktop machine and I've been told by various people in the PC-BSD/FreeBSD community that suspend and resume does not always work well. However, if you do have hardware that is compatible with PC-BSD then I highly recommend giving it a try. The project makes a lot of tasks easy and the operating system performs well.



* * * * * Hardware used in this review



My physical test equipment for this review was a desktop HP Pavilon p6 Series with the following specifications: Processor: Dual-core 2.8 GHz AMD A4-3420 APU

Storage: 500 GB Hitachi hard drive

Memory: 6 GB of RAM

Networking: Realtek RTL8111 wired network card

Display: AMD Radeon HD 6410D video card