Courting the Daemon, Part 1
it’s flashback time! This article is strongly based on one I posted on DeviantArt.Com, on April 14, 2008.
Allow me to introduce you all to a good friend of mine, Beesdie.
For those of you who don’t recognize it, this is the mascot for the open source operating system FreeBSD. Just as Linux has Tux the penguin, FreeBSD has Beesdie (or Beastie) the Daemon.
Some years back I went through a phase of constantly tinkering with computers. I used just about every major operating system in the world of x86 computing, to varying degrees of success. Those of you who know me personally know that this has simultaneously been a source of joy and frustration. I also liked tinkering with different pieces of hardware, and I’ve had some pretty interesting setups as a result. I used to get a major charge out taking a computer and getting it to do new and wonderful things. But somewhere along the line, probably shortly after my daughter was born, that changed. One night, after wrestling with my system and getting an elaborate program to work, I came away thinking “OK, fine and good, but that was more trouble than it was worth.”
I became less interested in tinkering and more interested in function. I also decided that I would rather spend more time with my wife and family than fighting with a computer. When I use my computer, I want it to run applications on it, and get things done, rather than constantly have to reconfigure the damn thing just so things would work. Some tinkering and configuration is necessary, but I no longer wanted it to be the main event.
It was during the early years of Windows XP that I realized that I was sick and tired of Windows. With it’s bug-ridden registry, bloated applications, flaky interface, and constant need for troubleshooting, I had seen my fill of dirty windows. For a time, I seriously considered switching to a Macintosh. The Macintosh has a clean interface and a good performance record, despite the often snooty attitude of its user base. However, Macintosh computers tend to more expensive that their x86-based counterparts. At one time the price difference was formidable. In recent years they have become more competitive, but they still tend to have a higher sticker price. At the time, the magic apple was simply beyond the reach of my checkbook. So, I had to stick with traditional x86, PC based architecture.
The Windows series was, and an many areas still is, the dominant operating system for the world of PCs, but there were alternatives. I tried a few of the commercial underdogs (BeOS and OS/2), as well as several shell enhancements. These helped, but Windows remained flaky, even when pumped up.
I suspect many of you are wondering why I didn’t switch to Linux. After all, Linux should have been the answer for someone like me who needed to stick with PC-based architecture, wanted a strong operating system, but didn’t want to fork out a lot of the money. Actually, I did try Linux. Over a three year period I tried several variations of it. Many of them had great features and they performed like a champ.
Until I actually tried to get productive.
Here’s the thing. As tired as I had grown of Windows, I was equally – if not more – tired of Linux. With it’s fussy configuration files, arcane module dependencies, lack of consistent support, and compatibility issues, there were many times I wanted to eat rotisserie-style penguin for dinner. All that constant re-configuring I mentioned? That was largely in Linux, not Windows. In getting away from Window’s buggy program registry, I encountered Linux’s Byzantine file dependency system. It wasn’t worth it. One night my wife, in a fit of exasperation, said that I should stick with Windows simply because it works. “It may not work well,” she said, “but it does work. Linux doesn’t!”
In a moment of despair, I realized that she was right. For me, Linux was not and never would be an option. I know I’m going to tick off every Linux user in the universe for saying this, but for me, Linux is just too cranky. I’m not saying that Linux doesn’t work, only that it didn’t work for me. Still, I wanted an operating system that was reliable, had at least some level of decent support, and could work on modern hardware. That ruled out most of the minor players. I was still using Windows XP, but I had had too many breaks to ever totally trust it. And I wasn’t going to go back to Linux.
There was still one option that I hadn’t tried. Throughout all of my tinkering, there was one operating system that I, for no apparent reason, had never tried: FreeBSD. Tux’s lesser-known half-brother. The little red daemon from Berkeley.
So, one evening in early 2008, I prepared an instillation disc for PC-BSD 1.4.1. I’ll talk about PC-BSD in detail another time, but it’s essentially FreeBSD with a user-friendly front end. I prepared my computer for a mutli-boot option, and took the plunge. I had some problems getting PC-BSD to launch and install, but many of those were the result of my computers BIOS rather than anything related to FreeBSD or even Windows XP. My earlier experience with Linux had taught me how to correct or work around problems of this type, but any newbie would have been thrown out of the game. I say that to point out that despite what advocates say, FreeBSD is still best left to users with some experience and/or a lot of guile. This isn’t a process for the timid.
Anyway, after some manipulation of my boot manager, PC-BSD started running. I wasn’t expecting much. Actually I was expecting another confusing mess like Linux. It took a little while to get the GUI looking and working the way I wanted it to, but the experience was comparable to customizing Windows XP. In this case, that was a good thing, because configuring a Linux instillation, especially the GUI, was often a nightmare. But FreeBSD let me get down to business in a relatively short time.
I was even able to get a few programs up and running fairly quickly. I found the process comparable to Windows XP’s installation scripts. By contrast, I found the Linux *rpm or *deb instillation packages a constant guessing game. Half the time I would get dependency errors, with very little information about how to resolve them. By contrast, BSD let me know exactly what I needed, what needed to be updated, and offered to get all the components for me. If only I could get such service in the local restaurants.
Which brings me to the port tree. FreeBSD users often wax poetic about the ports tree. It is is essentially a database of instillation scripts for around 23,000 programs, packages, and drivers. I’ll go into it in more detail another time, but the first time I approached it I didn’t know what to expect. PC-BSD offers the ports tree as an optional component during install. Knowing that other FreeBSD users spoke highly of the ports system, I opted to try it. Back in my Linux days there was a particular graphical file manager that I really liked, so I was pleased to see that it had been included in the port tree. Using an administrator terminal, I told my system to install the beast, half expecting it not to work. For roughly 20 minutes that terminal window was full of rapidly scrolling gibberish, which told me that at least it was trying. (I found out later that this was the text output from the compilation process, and very much the norm.) When the scrolling finally ended, I held my breath, and tried to call up the program. I was presented with two quick questions confirming some configuration options, and then the program launched perfectly. I was amazed! In Linux, I had to tweak and fiddle for almost an hour just to get the thing to compile! But here it was, running clean and strong after minimal effort. I was rapidly approaching Nirvana.
Another interesting happened to me while using the ports. Just for fun, I tried to install a very high-end graphical system navigator, the X-Cruiser. If you’ve seen the original Jurassic Park, the computer savvy tween used a variation of X-Cruiser to traverse the park’s mainframe. Anyway, my system went through the ports scripts as usual, but I received several warnings. When I tried to launch it, it crashed in a most spectacular fashion. A terminal window was displaying several messages of what the system was trying to do, and with the help of some on-line documentation I was able to decipher them, and one in particular: “incompatible firmware.” The core issue was my video card: it just didn’t have the necessary firmware, and the program wasn’t going to work. Ever. FreeBSD had essentially said “sorry boss, I can’t handle this one.”
Strange as this may sound, I found that oddly refreshing. The system told me, flat out, that this program wasn’t going to work no matter what I tried to do. Linux would have crashed the program with a set of cryptic error messages that I would have been compelled to decipher, and would have left me guessing. FreeBSD spared me that frustration. I shrugged, removed the dead weight program, and went on my way.
To sum up, my first experience with FreeBSD was a very positive one, and I have used it to some degree ever since. It’s fast, feature rich, and very reliable. In terms of usability, it is comparable to Windows or Macintosh (once you get past the first few hurdles), and leaves Linux completely in the dust. In just a few sessions, I got my PC-BSD instillation to work exactly the way I wanted it to, and I could change things with minimal effort should the need arise. I never achieved that level of satisfaction with Linux, even after months of using it.
Since then I have considered Beesdie to be a trusted companion. I am root. Hear me roar!