First impressions of PC-BSD 10.0.3



The PC-BSD project releases quarterly updates to their operating system, the latest of which is version 10.0.3. This new release of PC-BSD is based on FreeBSD 10.0 and offers several new and attractive features. New to PC-BSD 10.0.3 are version 2.2.14 of the Cinnamon desktop environment, a beta release of the Lumina desktop, bulk jail creation using the Warden utility and support for full disk encryption. This release also provides a CD-sized ISO image for people who want to install the server branch of PC-BSD without a graphical user interface. Looking through the release announcement we also find the AppCafe package manager has received some updates.



The ISO for the full version of PC-BSD is 3.3 GB in size. This ISO contains all of the project's Desktop software and can also be used to install the Server edition of the operating system. Booting from the installation media we are given the chance to choose between running a graphical system installer or the project's text installer. I opted to try the graphical interface. The installer first asks us to select our preferred language from a list. At the bottom of the installer's screen we see a line of icons which add optional functionality to the installer. One icon brings up a hardware compatibility screen where we can see which of our devices are supported. Clicking another icon brings up a screen that lets us change our keyboard's layout. A third icon offers helpful tips on each screen of the installer. Another icon brings up a virtual terminal where we can run commands and check system status. One icon brings up a network configuration utility and the last icon displays an on-screen keyboard. I especially like the hardware compatibly screen as it makes it easy to confirm whether our hardware will work with PC-BSD without any trial and error.



The second screen of the system installer asks if we would like to install PC-BSD in a desktop or server role. This screen also allows us to restore a system from a backup previously created by the Life Preserver utility. If we wish to, we can customize which software packages are installed. The installer allows us to choose which desktop environment we want to use, which third-party hardware drivers to use, what web browsers to install and whether to install development tools. We can also optionally install virtualization and compatibility software such as VirtualBox and WINE. I decided to set up a fairly bare PC-BSD desktop installation with the new Lumina desktop environment.



The installer then moves on to disk partitioning. PC-BSD uses ZFS as its file system and provides three ways for us to customize our disk partitions. There is a beginner option which only gets us to confirm the most basic of settings. An Advanced option gives us a guided path through tweaking ZFS pools, mount point options and the ability to enable more advanced configurations such as mirrored disks. The third option is a command line interface for experts and offers the most flexibility (and danger). I ended up taking the Advanced wizard and found I was able to simply click the "Next" button through most screens to end up with a suitable configuration. From there the installer begins copying files to our hard drive and, when it is finished, we are asked to reboot the computer.







PC-BSD 10.0.3 - the welcome screen

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



The first time we boot into PC-BSD we are asked to confirm the operating system has correctly detected our video card and screen resolution. We can change the video driver to be used and alter the display resolution from this screen. Each time we change settings we are given the chance to preview what our screen will look like with the new settings before we proceed. Once our video settings have been set and confirmed we are asked to confirm we want to continue using the language we selected at install time. We are then asked to select our time zone from a list, set a password on our root account and create a user account for ourselves. The account creation screen gives us the chance to encrypt the files in our user's home directory. With this configuration step completed we are brought to a graphical login screen. Here I found that I had the chance to login to either the Fluxbox window manager or the Lumina desktop environment.



When we first login to Lumina we are greeted by a window that welcomes us and offers to share some tips to help us use PC-BSD. We are briefly shown how to connect to a wireless network, how to launch the AppCafe package manager to find additional software, where to go to change system settings and where to find the Life Preserver backup utility. We are also told about the notification icon we can watch for that tells us when new software updates are available. The final screen of the welcome wizard provides links to the PC-BSD website, support forum and documentation wiki.







PC-BSD 10.0.3 - the Lumina menu and software update utility

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



The Lumina desktop places the application menu, task switcher and system tray at the top of the screen, though I later found it is quite easy to change the location of the desktop's panel. The background contains a fiery red design and the workspace is devoid of icons. Lumina loads quickly and the interface is quite responsive. Lumina runs atop the Fluxbox window manager, providing users with good performance and flexibility.



Shortly after I logged in an icon appeared on the top panel indicating software updates were available. Clicking this icon brought up the project's update manager. This application shows us a list of available updates and we can select which items we wish to download and install. Moving the mouse pointer so that it hovers over the name of an update causes a list of all files included in the update to appear on the screen. The first day I used PC-BSD only one update was available. Once I confirmed I wished to download this update the update manager indicated it would automatically create a new boot environment (snapshot) for me prior to installing the update. This means that, should the update break our operating system in some way, we can easily rollback the changes simply by choosing to boot from the snapshot created by the update manager.



The next time we boot PC-BSD we can select which boot environment we wish to run from the boot loader. I found I could not only boot into older environments from the boot loader, but selecting an alternative snapshot would bring up a second menu, asking if I would like to boot the old snapshot normally or in single user mode or in an alternative graphics mode. This makes recovering the PC-BSD operating system quite easy in cases where an update (or user error) causes the system to stop booting properly.







PC-BSD 10.0.3 - the AppCafe package manager

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



I tried running PC-BSD in two environments, on a physical desktop machine and in a VirtualBox virtual machine. When running on the desktop's hardware I found most aspects of the operating system worked well. Networking and audio worked automatically and the system was fairly responsive. Boot times were a little slower than what I typically experience with Linux distributions. The one problem I had with PC-BSD running on the desktop computer was that the operating system would not work with the default video card driver. I had to run PC-BSD in fail safe video mode which uses the VESA video driver. This makes for less than optimal graphics performance.



PC-BSD ran smoothly in the virtual environment and I experienced no problems while running PC-BSD in VirtualBox. I did find the PC-BSD virtual machine tended to use more of my host computer's CPU than would be usual for a Linux distribution. My host's CPU was often pegged at 100% and would stay that way while the PC-BSD guest downloaded software, checked for updates or performed administrative tasks. When left alone the PC-BSD virtual machine would scale back and use virtually none of my host's CPU cycles. In either test environment PC-BSD used approximately 300MB of memory when logged into the Lumina desktop environment.



The software PC-BSD ships with can vary a great deal depending on the selections we make at install time. I opted to start with a small selection of software I could add to later. Along with the Lumina desktop I found PC-BSD provided me with the Firefox web browser (with Flash plugin), the X11VNC remote desktop software and the GNU Image Manipulation Program. I was provided with the MPlayer and UMplayer media players and a full range of multimedia codecs for playing popular file formats. The new Insight file manager is available, along with a few text editors and the Clang compiler. The userland tools, documentation and kernel are provided by the project's FreeBSD 10.0 base.



The PC-BSD Control Panel is, perhaps, the central focus of the operating system. From this configuration panel we can manipulate virtually every aspect of the operating system from printers to background services, to software packages and backups, to boot environments, firewalls and jails. There are a few items in the Control Panel I believe deserve attention. The first is the Boot Environments feature I mentioned earlier. There is a tool in the Control Panel that shows us a list of existing boot environments, snapshots that we can load at boot time. Using the Boot Environments utility we can create new snapshots at any time, remove stale snapshots and select which snapshot will load by default when the computer boots.







PC-BSD 10.0.3 - the control panel and boot manager

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



Another handy tool is Life Preserver. This utility helps us create backups of our data and it is quite flexible. Life Preserver will create traditional backups of our home directories if we wish. However, Life Preserver's power comes from its use of ZFS snapshots. We can have Life Preserver create ZFS snapshots of our data at regular intervals and automatically clean out old snapshots on a regular basis. We can also have our data automatically backed up to a remote machine on the network via a secure connection. Additionally, Life Preserver allows us to browse through existing ZFS snapshots, locate files contained in these snapshots and restore old copies of files with the click of a button. This makes recovering from data corruption or accidental deletion virtually painless.







PC-BSD 10.0.3 - the Life Preserver backup utility

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



The AppCafe is PC-BSD's package manager and it has a nice, modern interface. Using AppCafe we can browse through categories of available packages and install new items with the click of a button. Clicking on the name of a package will show us a detailed description of the software, the size of the item and related packages for comparison. AppCafe provides a unified way to deal with packages from various sources, such as PBIs and raw packages managed by pkg. The AppCafe utility also lets us switch between PC-BSD's stable Production software repository and the project's fast paced development repository, called Edge. This allows users to effectively switch, at will, between a fixed quarterly release cycle and a rolling release package model.



Finally, one powerful tool offered by PC-BSD is the Warden. The Warden is a front end manager for FreeBSD jails. Using Warden we can create jails, take file system snapshots of existing jails and manage jails. The syntax for working with jails directly can be complex and Warden does a nice job of presenting all the jail features in a nice, tidy graphical interface. I also like that AppCafe integrates with jails and we can use AppCafe to install new software directly into a jail. This makes it easy to install services inside jails from the comfort of the graphical package manager. Using Warden we can create a couple of different styles of jails, including minimal PC-BSD jails and Linux-based jails. For example, we can create a jail which runs Debian Squeeze and install services from Debian's software repositories inside our jail running on PC-BSD. Running Debian in a jail nicely combines PC-BSD's lightweight container technology and file system snapshots for data recovery with Debian's fantastic package manager and dependency resolution.







PC-BSD 10.0.3 - managing jails with Warden

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



Conclusions



One thing that always stands out in my mind when I experiment with PC-BSD is how much functionality the operating system offers, how much power is available straight away. On the surface, PC-BSD looks and acts like most mainstream Linux distributions. PC-BSD runs the same desktop environments, we can run the same productivity software, the same web browsers and the controls are mostly the same. Under the hood, PC-BSD may take a slightly different approach to package management, but the AppCafe should be familiar to anyone who has used Ubuntu, Fedora, Mageia or openSUSE. Where the power of PC-BSD really shows up is in the administration tools which, despite the name, are not just for system administrators, but for regular home users too.



PC-BSD comes with the same tools we can expect to find in Linux distributions -- a firewall configuration app, utilities to change the look & feel of the desktop, a services manager and so on. Unlike most Linux distributions, PC-BSD also ships with a powerful file system (ZFS) and integrates this file system with its other utilities. This means we can make frequent (and time saving) snapshots of the files in our home directory, we can almost immediately recovery from damaging software updates and we can synchronize our data to remote machines almost effortlessly. Using ZFS we can also set up RAID configurations and mirrored disks, something that is usually awkward to do in Linux distributions. Finally, there is the Warden utility. While some leading Linux distributions are just starting to support and encourage the use of Docker as a way to contain and transfer software, PC-BSD offers a great GUI front end to managing lightweight containers. Using Warden we can take snapshots of jails, transfer jails between computers and even run instances of Debian if we wish to. To top it off, PC-BSD operates as either a rolling release or a fixed release operating system, appealing to people who either want to live on the cutting edge or to those who are more conservative.



The PC-BSD operating system does have a few drawbacks compared to mainstream Linux distributions. There are several programs, open source or proprietary, which run on Linux, but not on PC-BSD. The Chrome web browser and Steam gaming portal come to mind, along with a few other smaller utilities. Most of the time PC-BSD's software repositories are close to being on par with Linux distributions, but there are some corner cases where I found I was missing certain packages. I also found PC-BSD did not play well with my desktop computer's video card. PC-BSD typically works well with NVIDIA or Intel cards, but my Radeon card did not play well with the FreeBSD-based operating system. I think it's also worth mentioning PC-BSD runs on the 64-bit x86 architecture exclusively. For most people this will not be a problem, but some quite old machines may not work with PC-BSD.



All in all, I am impressed with what the PC-BSD team has managed to deliver with their 10.0.3 release. The project has taken on additional polish with the last few releases. The graphical front ends look nicer, some bugs I spotted in previous releases (especially with Life Preserver) have been fixed and the way ZFS integrates with the other PC-BSD tools was very useful to me. There are a lot of great features in this release I would love to see ported to Linux and there were no serious problems during my trial, beyond the video driver issue I was able to work around. I definitely recommend giving PC-BSD a try, it offers a great deal of power in an attractive package.



* * * * * 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