Published on (
 See this if you're having trouble printing code examples

Inside PC-BSD 1.3

by Dru Lavigne

PC-BSD 1.3 was released on New Year's Eve. Dru Lavigne interviewed three members of the PC-BSD release engineering team regarding the new release and their involvement within the PC-BSD community.

Dru Lavigne: Give us a short bio about yourself, your background in IT, and how you became involved with the PC-BSD project.

Kris Moore: I am currently living in the United States, more specifically, the town of Battle Ground in Washington State. I am 26 years old, married and have 2 boys, ages 3 years and 5 months. I'm pretty much your all around techie, I love playing with anything electronic and writing any code I can.

I've been involved professionally with UNIX/Linux for the past six years, writing some applications in shell and C++ using QT. I had experimented with various Linux distributions in the past for a functional desktop, but always came away frustrated. Often a particular piece of software wouldn't be available in the package database and I would be stuck trying to find the right binary package, or compiling from source. This was simply too time-consuming, and I began to formulate an idea of something similar to a .exe file on *nix. Because of my experience with BSD, I came up with the idea for PC-BSD, which would allow casual users to simply double-click to install, without worrying about dependencies, and also still let power users use the ports or packages subsystems if they so desire.

Andrei Kolu: I was born in Russia and live in Estonia, in the city of Pyssi. I am 30 years old and got involved with computers in 1991, right after Estonia gained independence from the Soviet Union. First computer I touched in school was "Juku"--a local clone of an Intel 8080 processor-based system with 640KB ram and two 5.25-inch floppy drives, 360KB each.

My first Unix contact happened in 1994 in Virumaa College, where I also worked part-time as system administrator in computer class. SCO Open Desktop (I know, I know...) intrigued me enough to start using Red Hat Linux in 1996; I still have those original made in U.S.A. 6 cd-s that I bought at Estonia's largest computer show. Unfortunately, Red Hat lost me to FreeBSD after they released infamous Red Hat 7.0 with broken GCC compiler. FreeBSD became my primary choice on servers in 2001. I started with PC-BSD project in July 2005 when I searched for an operating system for a terminal-server project for one of Estonia's oldest computer companies. The original terminal-server base operating system I tested was Red Hat, but I dumped it because of a broken Matrox video card driver. Working as a one-man army is frustrating, and after releasing a localized, highly modified, DVD version of PC-BSD for the company I worked for, I left them and concentrated fully on PC-BSD project as a volunteer.

Charles Landemaine: I live in Brazil, I'm 27 years old, I own Auriance, a web hosting company, and Interaction, a free live chat service. I discovered PC-BSD when it was first featured on OSNews, and I immediately trusted the project as it aims at removing hurdles that have prevented the common user from embracing the free Unix desktop.

I firmly believe in the PBI concept as being the best suited way of installing applications on your desktop if you're not a computer-savvy person. I use both the PBI as well as ports and packages. I think installing a package by typing a single line of code is the fastest way, but I'm more familiar with the Windows way of installing software. I think most computer users that aren't power users also feel more familiar with an install wizard. The most important thing is that, besides the fact that PC-BSD may load libraries more than once into RAM, you don't feel any speed issue. We will have to investigate further how duplication of libraries is handled by the FreeBSD kernel, but it's good news. For new users that have no background with Linux/FreeBSD, it can be daunting to have to learn and remember the name of a package sometimes. For instance, package names always change. Also, packages are often listed several times with different names that are not always obvious to differentiate if you're not familiar with FreeBSD or Linux. The PBI system is aimed at this audience. To sum up, I think the PBI system is what led me to join the project.

Dru: Please describe some of the duties you perform for the project.

Kris: Right now my official title is "Director of PC-BSD," which means I'm doing a lot of the release work, getting ISOs made, fixing reported bugs, developing, and answering emails. My typical day varies, depending on what's going on in the release schedule, but over the last few weeks I've been working hard on the 1.3 release, getting bugs fixed, and making ISO's for Andrei and our other devs to test.

Andrei: My official title is "PC-BSD Quality Manager" and this is the easiest job I ever had...just kidding :) It's not easy to be a perfectionist and I think sometimes other developers don't understand why I am bitching about some feature--it works for them. But I think the big picture is made from small pieces and if most pieces don't work as expected, then Average Joe may get an awry feeling of operating system and never go back to test out new features.

I start my day by reading news sites like,,,,,, and some more, and then concentrate on the PC-BSD forums and answer the questions I know best. Sometimes I edit posts to correct misspellings, typos, and formatting. This may sound strange, but English speaking users sometimes make obvious spelling mistakes. English is my third language after Estonian and Russian, but I started with English by learning written language first, then moved to speaking part of it--the exact opposite order to native speakers.

Of course I read various mailing lists too, especially FreeBSD hosted like geom@, stable@, usb@, emulation@, pf@, and others. The FreeBSD documentation project comes in handy when dealing with various problems in PC-BSD, but sometimes an inconsistency is found and I send an email to their documentation team for clarification.

I have experience in designing networks for ISPs and knowledge in networking, which helped me to bring PF firewall into PC-BSD installer. Know-how from terminal-server project gave me information about what system administrators need for their multiuser computing systems and I hope we can make the admin's life much easier by hardening PC-BSD and preconfiguring many not-so-important features by default.

Charles: I coordinate translations, search for new translators, fix translation problems such as XML syntax errors, and follow up on tasks. I'm also learning how to use Pootle, a web-based translation tool that Josh kindly set up for us. Also, I learned how to use Trac, a pretty neat web-based collaborative tool. I help Andrei gather bugs and file bug reports. I also test PC-BSD prereleases when needed. Several times a day, I check out the forum to see if someone needs help, or to see if there's something new and important. Also, I do some web design and graphic design, although my skill is limited in this area. I create and maintain some essential PBIs such as, Opera, the codecs, the Flash plugin, the Microsoft fonts, lighttpd, and some scripts to generate some PBIs automatically from a port, which greatly reduces the amount of development time.

I write tutorials for the PBI Tutorials section of the knowledge database. I also help Gerard write documentation; I wrote a great deal of the Quick Guide. I do some research on how we can enhance the PC-BSD GUI (mainly KDE) according to our users' tastes. Also, I usually open some polls on our forum to see what people prefer before we implement new features or before changing something that may trigger religious reactions! I manage a fair amount of the site, putting some of the news online, updating stuff such as the forum and the FAQ engines. One important thing also is testing PBIs and managing the PBI directory. I also make sure the mirrors are synced before adding new applications and that there's no older version already added in the directory.

Also, I try to fix some i18n issues and font problems. For instance, new users who miss the Microsoft fonts that the Windows desktop offers can use the same fonts exactly the way they look in Windows because PC-BSD includes a set of XML files that I developed, which includes tons of rules that display Microsoft fonts. I also try to find solutions to some bugs that aren't too complicated and add some fixes to bug reports. A fair amount of time that I dedicate to PC-BSD is spent doing research, learning stuff like shell scripting, and discovering new stuff. I like to learn.

Dru: PC-BSD strives to provide an easy desktop computing experience on top of the rock-solid stability of FreeBSD. The 1.3 release includes a revamp of the already user-friendly installer as well as many other feature enhancements. Please walk us through some of these features.

Kris: The biggest portion of our coding went into the new system installer. Our old installer was the original one I wrote back for 0.3 beta and was really showing its age. This new installer has been written from scratch in C++/QT, and offers many new features over the previous version. One of the features is the ability to setup all your preferences before the actual install takes place. This includes setting up multiple users, firewall settings, network settings, and more. The new installer also has the ability to search for previous PC-BSD installations and upgrade them to 1.3. We also now have an option to install a "Desktop" or "Server" version of PC-BSD. Essentially, the installed packages are the same, but the server version defaults to running the Fluxbox WM, for the more advanced users who may wish to run a high-performance PC-BSD/FreeBSD server.

Another big feature that most users may not notice at first is that the installer CD now runs directly from RAM, which lets the user swap CD's during the install process. This comes in very handy, especially when the user is installing with a language other than English. The installer will now prompt for CD #2 during the install process instead of waiting for the system to reboot and requiring the user to finish the install procedure then. This will also allow us to begin work on some of our new features for 1.4, such as backup and restore options or system "cloning."

Andrei: I worked on 1.3 release so long that I start losing track what we made for this release already. As far as I remember we put the BSDstats script enabling option by default into LiveCD Installer. I proposed a similar statistical system for PC-BSD long before BSDstats, but my motto is: "Why invent yet another wheel!" The same goes for DesktopBSD Tools, which is already incorporated into PC-BSD starting from 1.2 release.

We moved language, keyboard, and time zone selection into first Installer page. Later I found out that Vista has a similar layout--this is purely coincidence, not a rip-off :) Adding multiple users and even the ability to change every username or password after they are already added to list is neat but not a major feature. Some paranoid computer users would like to encrypt their swap space and swap-space-backed /tmp, RAM-based filesystem for speeding up various file operations. It's small things that makes operating system usable.

Charles: A fair amount of the tasks you perform on modern desktops can be accomplished with PC-BSD, such as managing users, managing running services, managing network interface cards, and managing software in a familiar way. But there's more to come. Hopefully, this year users of PC-BSD will be able to manage PF using a GUI, and they won't have to learn how to use PF's syntax. You will be able to add/remove exceptions using TCP or UDP easily, just like you do on other modern desktops. A group or Samba share manager was also discussed to share directories/files easily with groups or single users using a GUI. For instance, you'll be able to share a "billing" directory with a "billing" group that you create, and you'll be able to add users of your network to this group--something that is invaluable in the enterprise.

Another cool tool that is also in our plans is a PPPoE Setup Wizard. People love wizards; they don't like to have to think. One of the flagship features of PC-BSD is really the PBI concept. I mean it's very easy to type as root pkg_add -r firefox, but ease-of-use is relative. The bulk of computer users are more familiar using a wizard à la Windows/Mac OS X. With PC-BSD you have the choice, power users and new comers should be both happy, as each one uses what he's more comfortable with. Long-term FreeBSD users shouldn't worry about not having ports anymore; we have a fully functioning FreeBSD system under the hood!

Dru: Kris, please describe the new HAL back-end support. What is it and why would I want to use it?

Kris: Well, the HAL support was really a last-minute addition to the default PC-BSD base. When KDE 3.5.5 was ported over to FreeBSD, it fixed the issues 3.5.4 had with printing not working, which made it essential for us to include. Along with that fix, 3.5.5 switched over to the HAL back end for mounting and device access.

Essentially, what the HAL back end does is monitor the system hardware for device notifications and then provide a framework for KDE to mount or access the device. On my various test systems here, it seems to work fine, even providing extra details about the media that I am mounting. (For example, when I insert a 1GB USB flash drive, it correctly identifies it as a 1GB drive and mounts it.) HAL support works independently from the /etc/fstab file, which can make it easier for end users who don't know how to modify the fstab file manually to add a device.

That all said, HAL support on BSD is still relatively new, and may not work properly with all hardware setups. We are hoping that these issues will be resolved quickly and will issue online updates as soon as the port gets fixed. Anticipating this, I added an option to the PC-BSD "Services" tool, which lets you disable HAL from loading at boot-up, which may help the stability of systems where HAL isn't working with the hardware yet.

Dru: The PC-BSD 1.3 installer includes a GUI front end to create PF firewall rules. Which features of PF are currently supported and what are the PF plans for future releases?

Andrei: The hardest parts in the creation of an automated PF firewall generator are compatibility with local area networks behind NAT and direct internet connections. I think the current implementation is not as good as it is supposed to be, but at least it works. This is currently a work in progress and the overall concept of firewall in PC-BSD may change, but I hope OpenBSD Packet Filter is the right tool for this work and it stays here.

Standard features like scrubbing and keeping state are implemented, and for future releases, we plan to automatically detect what kind of connection is used on computer. Then we can block SMB shares and others not suitable for wider audience ports for direct internet connection. Maybe even spamd and QoS (ALTQ) enabled in firewall; right now we have ALTQ support enabled in kernel by default in case someone needs it right now without recompiling kernel. Features are not set in stone, so everyone who have good knowledge of firewalling in FreeBSD may give us fresh ideas and we'll try to make them available to our users.

Dru: Many PC-BSD users are migrating from Windows. Is there any type of support available for new users?

Kris: On the free side, we have a very active PC-BSD community on our forums, and most questions can probably be answered by some of the knowledgeable folks on there. We also have a FAQ database and Documentation project that helps users with common problems or questions, and is designed for the user who is migrating to PC-BSD for the first time.

Andrei: I think that most loyal PC-BSD users come with a Linux background, and good documentation is expected from users migrating from both Linux and Windows. Many new users just don't know where to look for documentation. Linux users are familiar with loads of how-to pages and don't know that the FreeBSD Handbook may help them out in 90 percent of cases. This is where the PC-BSD forums and users with excellent knowledge of subject can point newbies to proper documentation and help with advice if they find something not documented yet.

Commercial support is another story: companies want some stability and expect the operating system they migrate to is not going to /dev/null in near future. Of course, Open source-based systems can't just vanish, and if they have commercial backup support, like PC-BSD from iXsystems, then I think both parties can trust each other and help create PC-BSD even better.

Charles: Yes, there's our Quick Guide. There's also our community that besides kidding around a lot in the forum lounge is very helpful and professional when it comes to assisting newcomers. We always try to have an upbeat attitude. PC-BSD is driven by the will to offer a decent system to nontechnical users. Granted, the bulk of our community is power users, but nontechnical users, representing 90 percent of computer users, remain our main target. PC-BSD is still rough around the edges, but I'm confident that by 2.0, it'll be really good to the point that people will start spreading the word. It is currently well positioned at the BSDStats website.

You shouldn't spend half an hour (or more) tailoring your system to your taste. You shouldn't have to search on forums and on your favorite search engine to use your computer. I would go even further: you shouldn't have to read any documentation to use your computer. This might sound wrong to some power users, but I think common users will not change their system if they have to read documentation. Obviously, this is a whole different story for power users who want to use a vanilla version of FreeBSD to use it as a clustered web server where you need to read documentation. But in 2007, we have plans with the PBI developers, whom I congratulate for their hard work, to create a whole set of server PBIs that will just work. You will be able to install Apache/lighttpd with PHP/mod_python/RoR and MySQL/PostgreSQL. It'll work seamlessly without having to tweak configuration files.

As an example, you can download and install lighttpd, which I ported with Gonzalo from FreeBSD to PC-BSD. During installation, it asks a few questions, such as if you want to be the only one or if you want lighttpd to be used by other users, and it also asks if you want to start the service when PC-BSD starts. The installation wizard does the hard job of generating the configuration file for you. Once lighttpd is installed, you just have to open your favorite browser and access http://localhost/. Again, such details may not seem important for you and for me, but a user that has little experience with computers will find it handy and invaluable.

Dru: It takes the efforts of many people to bring about an operating system release. Who else was involved in this release?

Kris: One of the risks I run in naming folks is that I will leave somebody out :) That being said, we owe a lot to our PC-BSD Core Team, Charles-Andre Landemaine, Andrei Kolu, Tim McCormick, and Gerard van Essen. This list doesn't include the myriad of other folks who have been helping us with bug testing, PBI creation, documentation, and more. They all played a very important role in the latest release of PC-BSD. A special thanks is also due to the folks down at iXsystems, for giving me the opportunity to work full-time on this project and providing the resources and contacts to get important things done.

Andrei: We'll never forget the guys from FreeSBIE--Italian FreeBSD distribution guys with their original PF firewall script--and Angelescu Ovidiu from RoFreeSBIE LiveCD distribution, from whom we got video and sound card detection scripts. And, of course, the FreeBSD, KDE, and KDE FreeBSD teams for their hard work.

Charles: Lots of people, and thanks a lot to them. Some people that we know, PBI developers, some active forum members, translators, and some people that download the ISO image secretly in order to report bugs to help the project because they believe deeply in PC-BSD.

Dru: The PC-BSD website is currently holding a web design contest. Any other plans in 2007 for improvements to the site or forums?

Kris: I would probably have to defer some of this to the other team members, such as Charles, who maintains much of the site. I know we plan on an actual site revamp, but as for the forums specifically, we will have to wait until later to say for sure.

Andrei: Easier to navigate site is primary goal and I hope we have it for 1.4 release. We already got rid of the pbidir forums and now there is a much faster and easier way of reporting bugs or deprecated PBI packages on the main forums. phpBB search engine is not the brightest at the moment and I hope we can start using some more-advanced engine like Google or something.

Charles: The revamp of the website is already a lot of work, especially because it's going to use Joomla, a new engine that we'll have to learn how to use. And then we will have to adapt the new look & feel to other subdomains. Lots of nights tweaking code ahead! :)

Dru: Can you give us a sneak peek of what is coming in 1.4?

Kris: We still have to get our core members to sit down and hash out a final roadmap for 1.4, but as of right now there are some things I'm planning on having included. A Backup/Restore Manager and a Firewall Manager are two of the big things that come to mind at the moment.

Andrei: Firewall GUI, PPPoE connection manager, Terminal-server tools with TCR (Terminal Client Release)--my pet project. Backup/Restore Manager would be based on Ghost 4 Unix scripts and incorporated into PC-BSD Installer Livecd; this can be a major enhancement for users who are scared by possible destruction of their files or just want to test out PC-BSD and restore previous system, if something goes awry.

Major change in development would be moving everything to the Trac Source Code Management system. I hope this would bring more developers to our project and make overall development more centralized and transparent.

If we look even further, then I'd like to have GEOM journaling and ZFS filesystems (thanks for your hard work Pawel Jakub Dawidek from FreeBSD project) in PC-BSD in near future. MAC (Mandatory Access Control) that is already in fully working condition in FreeBSD and Quota support for server release are in our to do list also.

Charles: We will continue the creation of PBI automation scripts to spend less time creating PBIs. 1.4 will, above all, be a less cutting-edge release with more enhancements, more small features. But there will also be a firewall GUI and a PPPoE wizard. Hopefully, some i18n aspects such as keyboard, fonts, right-to-left languages, will be revamped also. PC-BSD is an international operating system built by and for people from around the world, no matter his language. Anybody is welcome to contribute with his own language or his way; we have available volunteer positions where our community has the possibility to influence greatly on the future of PC-BSD, unlike some canned systems. Anyone who wants to contribute and to give his opinion is most welcome.

Dru Lavigne is a network and systems administrator, IT instructor, author and international speaker. She has over a decade of experience administering and teaching Netware, Microsoft, Cisco, Checkpoint, SCO, Solaris, Linux, and BSD systems. A prolific author, she pens the popular FreeBSD Basics column for O'Reilly and is author of BSD Hacks and The Best of FreeBSD Basics.

Return to BSD DevCenter.

Copyright © 2009 O'Reilly Media, Inc.