Saturday, May 11, 2013

PC-BSD 9.1 Isotope Edition





I would like to begin the new year by talking about a project which I had the chance to play with in the final weeks of 2012. This project is PC-BSD, an effort sponsored by iXsystems which places a polished desktop layer on top of the FreeBSD operating system. Though at first glance it might appear as though PC-BSD 9.1 is a simple point release over last year's 9.0 release, the project's blog paints a very different picture. Some of the key features to PC-BSD's 9.1 release include the introduction of TrueOS, a server edition of PC-BSD. Basically, TrueOS is FreeBSD with a nice graphical installer, PBI tools and various modern conveniences which we will get to later. The new release of PC-BSD includes support for ZFS pools that include swap space, this allows users to create installs that are exclusively ZFS based and we will also touch on the benefits of this later.

PC-BSD 9.1 expands on its Warden feature. The Warden is a graphical (and command line) solution for managing FreeBSD jails. This release of PC-BSD adds a feature which will let the Warden create a variety of useful jails, including Linux jails. Also in this version we find the EasyPBI utility, a graphical program which makes it easy to create PBI modules from the FreeBSD ports tree. This lowers the bar for contributing new software to PC-BSD's PBI collection. This version introduces boot environment administration (beadm), a feature which allows administrators to create snapshots of their operating system prior to applying upgrades and allows the admin to then roll back to previous OS versions if something breaks. We also see improved wireless support in this release and updates to various features and to the documentation.


Installation and first impressions

The current version of PC-BSD comes in a number of different builds. There is a large installation DVD (3.5 GB), a large USB install option (3.4 GB), a live USB image (1 GB to download, 4 GB once expanded), a light USB image (1 GB) and there are VirtualBox and VMware images. Each download option is offered in 32-bit and 64-bit builds. The live CD option from previous releases has been removed in favour of the larger live USB option. I decided to download the 32-bit build of the DVD edition.

PC-BSD

PC-BSD 9.1 - adjusting system settings and reading the documentation
(full image size: 193kB, screen resolution 1024x768 pixels)


Booting from the DVD brings up a graphical environment and automatically launches the PC-BSD graphical installer. The first thing the installer asks for is our preferred language. We can then choose what sort of installation we would like to perform and there are quite a few options. The default choice in my case was to install PC-BSD with KDE. Other options included the PC-BSD base with our choice of GNOME, Xfce or LXDE. There is another option called TrueOS which is essentially FreeBSD with the addition of some nice command line tools developed by the PC-BSD team. There is also an option to install plain FreeBSD, useful for people who want to try FreeBSD, but who wish the convenience of a graphical installer.

What I like about this selection screen is each bundle comes with a description explaining why we might want to go with that option. For instance, we're told KDE is full featured and will require more RAM. The LXDE environment is recommended for lower end machines such as netbooks. Opting to take one default bundle over another is not an exclusive choice. There is a "Customize" button on the page which allows us to declare which packages and graphical environments we want. We can use this easy to navigate tree of software to add or remove specific parts of an environment, for example I can remove the Games section of KDE. We can also add additional drivers, development tools and (officially) unsupported graphical environments such as IceWM, Openbox and Enlightenment.

The next screen of the installer covers disk partitioning. By default I found the installer would try to take over available free space on the drive and it suggested reasonable partition layouts. On lower end machines the installer will recommend we use UFS for our file system and, on machines with more RAM, the installer recommends ZFS. Should we wish to customize our partition layout we can take one of three options: beginner, intermediate or advanced. The beginner option is very simple, the installer just asks which disk partition we want to use and whether our data should be encrypted. The middle option lets us set more options including whether to use UFS or ZFS, disk encryption and RAID options. The advanced partitioning option will let us dig around the system using FreeBSD's command line partitioning utilities. I decided to go with the defaults and set up a plain ZFS-based system without encryption.

At this point we are pretty much done for a while and we can sit back, watching the progress bars as the installer copies its files to the hard drive. Something I'd like to add here is that each screen of the installer has four buttons along the bottom. One of these brings up a window which shows which hardware devices PC-BSD is able to recognize and which devices it cannot match with drivers. This allows us to check our hardware compatibility before we commit to an install. Another button brings up an on-screen keyboard and the third brings up an option to change our default keyboard map. The forth button will provide documentation for the current screen of the installer. The documentation provides helpful hints as to how to get through each step. I suspect most people won't need the documentation as many people can get through the installer by just clicking the "Next" button a few times. The "Customize" button for advanced options is on each screen, but we can ignore it and just sail through with the defaults if we like.

Once the installer finishes copying files to the hard drive we reboot the machine and are brought to another graphical screen where we are asked some configuration questions. First we are asked to test and confirm our display settings, then a quick full screen video plays letting us know whether the video and sound settings work. We're asked to confirm the system is using the correct language and then we can confirm our time zone. The last two steps in the process are setting a root password and creating a regular user account. From there we are brought to a graphical login screen.

The first time we login to PC-BSD a welcome wizard pops up and shows us how to get on-line (if we are not already) and how to find the package manager and Control Panel. The welcome wizard also provides tips for setting up backup jobs, acquiring software updates and where we can get further help. Specifically, the welcome screen mentions the PC-BSD website, Wiki and community forum as places where we can get assistance. Once we dismiss the welcome screen we find ourselves presented with a traditional desktop layout with an application menu in the lower-left corner of the screen and icons on the desktop. These icons can be used to launch PC-BSD's package manager (called AppCafe), open the Control Panel or open a PDF version of the project's Handbook. I feel the Handbook deserves special mention. It contains over 300 pages of detailed information on how to use PC-BSD and it features numerous screen shots, step-by-step instructions and, perhaps most importantly, a table of contents. I found it a very useful resource.

During my trial with PC-BSD I tended to swap between two desktop environments, namely KDE and LXDE. I hoped this would give me a general feel for what the two environments had in common and what would be presented differently. While both desktops have their unique styles, I found the overall presentation is pretty much the same. Both environments present us with convenient desktop icons, both place the application menu and task switcher at the bottom of the screen and both have similar themes and wallpaper. The KDE environment is heavier and a bit slower, at least with the default settings. I found once desktop file indexing was turned off, KDE responded smoothly. The LXDE desktop is quite light and very responsive. Since each desktop environment comes with its own bundle of applications and since the user can customize their software selection during the install process, there doesn't seem to be any reason to talk about the many possible combinations of default software. Instead I would like to cover the utilities which exist commonly across environments. What is it that comes with PC-BSD, regardless of our graphical environment?

PC-BSD

PC-BSD 9.1 - applying software updates and the default desktop
(full image size: 190kB, screen resolution 1024x768 pixels)



Software selection

The first piece of software I'd like to look at is Life Preserver, the PC-BSD backup utility. This program sits idle in the system tray. Clicking on its icon brings up a graphical wizard which walks us through providing a hostname, username and password for another computer. I suppose it could be a machine anywhere on the Internet, but I chose to use a machine on my local area network. We can specify any remote machine so long as it runs an OpenSSH server and we have an account on that machine. Once we have filled in all the fields Life Preserver synchronizes our home directory with a folder on the remote machine. Should we wish to we can specify how often our local files are copied to the remote computer and we can tell Life Preserver how many of these snapshots to keep on the remote machine.

What I really like about Life Preserver's approach is it will perform its backups on a set schedule and automatically clean out older backups once it has hit its maximum number of snapshots. All of these snapshots are stored on the remote machine in a folder called "life-preserver", separating our backup data from the rest of our account on the remote machine. It's really quite straight forward and we can click on the Life Preserver icon at any time to discover when the last backup ran and whether it completed successfully. The only concern I had with using this tool arose when it came time to restore files. If we use the Life Preserver GUI we need to be able to provide the exact path name of the file to be restored. Alternatively we can login to the remote machine using any OpenSSH client, such as Filezilla, to browse for and restore our file if we do not know the file's full path name.

Package management is handled by a program called AppCafe. This application provides users with a web-like interface for browsing through applications. We can locate software either by browsing through categories of packages or by searching for software by name. Clicking on a package brings up a screen with the software's name, license, size and a brief description. We can queue a package for installation by pressing a button. Once we have selected a package to install AppCafe begins downloading the software in the background while we continue to use the package manager. AppCafe organizes software a little differently than most Linux package managers.

Where on Linux we typically use filters to see what software is installed, what is available and what can be upgraded, AppCafe is effectively split into two parts or tabs. The first tab lets us find and install software. The second tab displays software which has already been installed and, next to each package, is a status indicator letting us know if the package can be upgraded. I found this separation of packages in the repositories vs. software on the local machine to be fairly intuitive. One feature I especially like is once a package has been installed we can opt to set that package to automatically update in the future. For instance, if we always want to have the latest version of Firefox, but we want to manually update all other packages, it is possible to set Firefox to update on its own whenever a newer version enters the repository.

Speaking of updates, whenever the system detects newer versions of software in the repositories, an icon in our system tray lets us know updates are waiting. Clicking on the notification icon opens the AppCafe and displays the packages currently installed, with notices next to the packages we can upgrade. Here we can choose to update any (or all) available packages. One feature I was happy to see included in this release of PC-BSD is delta updates. The PBI packages PC-BSD uses tend to be larger than their Linux counterparts and having delta updates greatly reduces the amount of bandwidth required to install new versions. For instance, installing Firefox the first time required a download of approximately 100MB, however the following update for Firefox took a mere 2 MB.

PC-BSD

PC-BSD 9.1 - package management and backups
(full image size: 142kB, screen resolution 1024x768 pixels)



Software management and system configuration

Software management on PC-BSD is a bit different than on most other operating systems so I'd like to talk a bit about what goes on behind the scenes. There are, in effect, three categories of software PC-BSD users can access. The first group is system software, those are packages which are part of the base FreeBSD operating system or which PC-BSD comes with out of the box. This collection of software is generally handled for us behind the scenes and requires little to no effort on our part. The second group is made up of PBI packages which are handled by AppCafe. We just talked about how to access these. A PBI package is special in that it carries its dependencies with it. This allows us to run multiple versions of software and install third-party software without concern for missing dependencies or running into conflicts where package A needs one version of a library, but package B needs another version. These built in dependencies make PBI packages bigger, but it also means they are fairly atomic. The third collection of software available to us is the FreeBSD Ports Collection. This optional group of software can be added to PC-BSD using the FreeBSD package handling tools and may be convenient for users seeking greater flexibility or special configurations.

The Control Panel deserves a quick mention. Regardless of which desktop environment we install, the PC-BSD control centre is always available to us. This control centre looks quite a bit like KDE's System Settings panel and, in some ways, there is a functionality overlap. The PC-BSD Control Panel gives us the ability to configure most aspects of the operating system. From this panel we can launch the AppCafe, manage the firewall, adjust the display settings, create new PBI packages, launch the Warden (more on the Warden in a moment), change Adobe Flash settings and get information on the system's hardware. In addition we can gain access to the Life Preserver backup tool, set up printers and scanners, and set default applications. I like this unified approach which works across desktops as it makes getting help on forums and through the documentation more straight forward.

One more feature I want to touch on as I feel it brings a lot of convenience to PC-BSD users is the Warden. On FreeBSD (and derived systems) system administrators can make use of jails, a sort of virtual environment roped off from the rest of the operating system. While jails have always been powerful, they have also been a bit cumbersome to use. The Warden is a management system for jails and it makes creating and manipulating jails a simple experience. The Warden has two interfaces, the command line for server systems and a graphical interface which can be accessed through the PC-BSD Control Panel. There are three types of jails the Warden can manage, traditional jails for system and network services, ports jails which allows us to install third-party software safely while still giving those installed packages access to the desktop environment and, finally, Linux jails.

Using the Warden we can create a jail which will bootstrap either a Gentoo or a Debian environment, handy if we want to run software that has been ported to Linux, but not to BSD. I tried setting up a Debian jail and found the required packages downloaded and installed in about ten minutes, making the jail set up faster than if I had downloaded and installed Debian GNU/Linux myself. Aside from the security and convenience of being able to run these isolated systems, the Warden will allow administrators running ZFS to make regular snapshots of jails. Let's say we installed Debian and added a LAMP service. We could take a snapshot of this jail as soon as the set up was completed and create regular snapshots in the future. This would let us roll back to a previous point in time that was known to be good in the event of the jail becoming corrupted or infected. All of this is handled by a very simple graphical interface where creating or destroying a jail happens with a few mouse clicks.

PC-BSD

PC-BSD 9.1 - jail management using the Warden
(full image size: 157kB, screen resolution 1024x768 pixels)



Hardware support

I tried out PC-BSD on two physical machines, my desktop and a laptop, as well as in a VirtualBox virtual machine. Things went pretty well on the laptop (dual-core 2 GHz CPU, 4 GB of RAM, Intel video card, Intel wireless card). My display was set up properly and audio worked out of the box. I did have a few moments of trial and error getting my wireless card working, but it eventually all came together. I had slightly less luck with my desktop box (dual-core 2.8 GHz CPU, 6 GB of RAM, Radeon video card and Realtek network card). Again, sound worked and I had no trouble getting on-line, but PC-BSD had trouble working with my Radeon card. I found the only way I could get the operating system to boot was to force the system to use the fallback VESA graphics driver. This worked fairly well, but it meant I could not make use of my screen's maximum resolution and video performance was a bit lacking.

When running in the virtual environment PC-BSD worked quite well. I did find that, again, video resolution wasn't optimal, but otherwise I encountered no problems. Memory wise I found PC-BSD to be a touch heavier than its Linux counterparts. When I was running KDE the system's active memory usage was approximately 330MB and when running the lighter LXDE interface the operating system used about 200MB of memory. The boot times I experienced with PC-BSD were noticeably slower than with most Linux distributions, but the performance once the system completed booting was very good. The desktop environments were always responsive and tasks completed quickly even when I was juggling several items at once.


Conclusions

After a couple of weeks of running PC-BSD I have to say I am impressed. In part because of the number of new features the developers have managed to stuff into this point release, but mostly because these features are so polished. People in the BSD community tend to emphasize the point that FreeBSD is a complete operating system, developed in unity, whereas Linux distributions are better described as a collection of separate parts assembled by the distributor. I believe we are seeing the benefit of centralized development in PC-BSD. Most of the tools, the package manager, the Warden, the ZFS support, the backup solutions, etc, all of these are put together by a unified team for a single platform. This gives the developers a chance at making a smooth, integrated experience. It's nice to be able to read the documentation and know that the instructions for adjusting a setting are the same for a person running KDE as they are for a person running LXDE. Having recently spent time reviewing Linux Mint, where there are multiple spins based on multiple bases it is nice to know that if I ask for help on the PC-BSD forum I don't first have to specify which platform and spin I'm using, with PC-BSD the base is always FreeBSD and the controls are all the same across spins.

Another important aspect of PC-BSD which stood out was the way it makes many administrative tasks simple and streamlined. Backups are a prime example. To set up a regularly scheduled backup of my account took all of about ten seconds, accomplished simply by providing the hostname and login credentials of another computer to which I had access. From there PC-BSD will continue to perform regular backups and rotate out stale backups from the remote machine. Package management is likewise straight forward, allowing users to find and install software with just a few clicks and software queued for installation gets processed in the background, out of the way. Having ZFS as an integrated file system option is a nice addition. In the past PC-BSD could use ZFS, but it wasn't as smooth an experience as setting up UFS partitions. Now creating ZFS pools is almost entirely automated and users will be able to quickly set up regular snapshots of the entire file system quite easily. Having ZFS as a front-and-centre option also means users will be able to quickly add new storage space to their operating systems simply by plugging in a new hard drive and adding the device to their existing ZFS pool. There are nice little touches with boot environment administration too. For example, if we create a boot snapshot, perform an upgrade and then, a week later, decide we want to roll back to a previous snapshot, beadm will let us to that. The beadm tool also knows not to roll back our data files or settings to last week's state, the rollback only affects the operating system itself.

Lastly, I want to touch on the Warden. Being able to set up FreeBSD jails with just a few clicks and make regular snapshots of them via an elegant GUI is a really great feature. It makes managing and migrating FreeBSD jails straight forward. I particularly love that I could get a Debian jail up and running in about the same amount of time as it would take to download the Debian net-install ISO. This is a welcome feature and I suspect it will be especially useful for cross-platform development.

Nothing is perfect and PC-BSD does have an Achilles' heel, specifically hardware compatibility. As much as I enjoyed the polish and the features and the wonderful ease of use, I suspect hardware support will be the make or break issue for most people. On my desktop machine I could get PC-BSD working, but only with reduced resolution and video performance. On my laptop things basically worked well, but it took a little tinkering to get my wireless card up and running. When running the operating system in a virtual machine I installed the VirtualBox guest additions, but couldn't get PC-BSD to display its desktop at full resolution. Luckily hardware support with PC-BSD is not a trial and error process, the hardware compatibility tool takes the surprises out of testing the distribution, even when running from the plain installation media.

I definitely recommend trying PC-BSD. This new release has really taken a step forward in usability and features compared to where the project was even a year ago. I would say 9.1 brings to the table a level of ease of use and trouble-free administration only found in a few of the top ranking Linux distributions. It is well worth the time to test drive this latest release.

3 comments :

Anonymous said...

Hi friends, nice article and nice urging commented here, I am actually enjoying by these.


Feel free to visit my weblog; コーチ

Anonymous said...

I’d like to visit your weblog more usually however lately it seems to be taking without end to
come up. I go to from work, and our connection there is
pretty good. Do you think the issue could be on your finish?



Stop by my webpage - having trouble getting pregnant with second baby

Anonymous said...

With havin so much content do you ever run into any issues of plagorism or copyright violation?
My website has a lot of unique content I've either written myself or outsourced but it seems a lot of it is popping it up all over the web without my authorization. Do you know any methods to help reduce content from being stolen? I'd definitely appreciate it.


Review my page :: Pirater Un Compte Facebook