You Batter-y Beware

no comments

Seriously?

Malware stuffed into a USB battery charger?

This is just as bad as a trojan on a key fob and… smart phone? . Actually, this is worse because people don’t expect utility to run.

Is nothing sacred?

I’d just like to point out, being a big Mac-fan, that it would have been trivial to write an exploit Macs with this as well. Though it can be frustrated by enabling the Firewall. But face it, nobody (translate to not many) does but me.

Lessons lessons

What’s the lesson here? Don’t trust a battery company software? Don’t use autorun? I’m sure Microsoft thought that it sounded like a great idea way back in the day.

You auto-be-running

Apparently, autorun has been renamed to autoplay (<sarcasm>Where the heck have I been, what a change!</sarcasm>).

According to KB967715 they had it disabled in XP prior to SP2. Now it’s enabled for XP SP2+, Vista, and 7. However, for Vista and 7 users, it asks you if you want to auto-run it first.

Trust

Again, it’s about trust. Do you trust Energizer to make you software? Apparently not any more. Even if you have auto-run disabled, it appears as though you can still be compromised because you trusted the application to run. So, a Mac is just as vulnerable in this respect.

So the next time a peripheral decides to offer you friendly software: just say no!

Left unsaid

I’m sure there’s tons of room for comments such as: “It’s the manufacturers overseas!” and, while that MIGHT be true, it would be much better if we didn’t trust all these random devices and gadgets we have.

OSX Library ACLs

no comments

Background

I have a couple of Mac workstations at the office. One is used extensively for photo editing (CS4). At any rate, I’m trying to set up a new e-mail account.

The Symptoms

Even though I entered the new password correctly SEVERAL times, it never worked when “Remember password in keychain” was selected. I thought it was a fluke.

I tried setting it up again today. However, I spent almost an hour tracking this one down. I noticed that, after editing the account settings that a dialog window would appear and claim that it was not possible to save the settings. It claimed that the permissions on ~/Library/Preferences were not correct. I heeded it’s warning well.

The Investigation

I popped open my swiss army knife: AppleKey + Space “Terminal” [return]. There, I looked at the file permissions for

ls lah
Everything looked fine. The owner was the user, the group was the domain administrator. No anomalies-or so I thought.

The seemingly coincidental success with not using the “Remember my password in keychain” got me thinking; I tried to add a new item to the keychain. The login keychain. I was dumbfounded when greeted with the following message: “An error has occured. Unable to add an item to the current keychain… [Unix Permissions]”. What the heck was wrong? The owner is right, group is irrelevant, and the permissions mask was 600.

The Discovery

On a hunch, I did: “ls -leh” on a suspect directory. And there it was:

drwx------+

The + at the end of the permissions mask isn’t just for show. It’s not a sticky bit either. It’s the extended attribute for ACLs. Yes. Macs use ACLs. There’s almost no information about this online. You can get more information by using the man pages:

man chmod

And I saw it:

  0 group:everyone deny delete

There was one other ACL for domain administrators. But this one was it. Macs, Unix, and Linux machines in particular typically use the write to temporary and copy-back method of writing files. It helps reduce corruption and in this case, probably enabled the system to run as long as it did without major incident. Sadly, with this technique, the final copy, which is actually a move, never completes successfully. The result is that preferences for “well behaved” applications fail to save. Keychain wouldn’t update either due to the same principle.

The Solution

You have to eliminate that one particular ACL in the ~/Library folder. Doing so enables you to write again. Denies always over-rule the allows.

chmod -R -a "everyone deny delete" ~/Library

Remember, I’m not responsible for what happens if you use that. Do your research and be sure yourself.

The Aftermath

Keychain now accepts new items. Mail now accepts new passwords. Preferences save without incident.

This entire episode was the result of ACL’s being improperly applied. I’m not sure how it happened but I do have a guess.

The Possible Reason

About a month back, we tried a tablet. It was a WaCom Bamboo tablet. The software was designed for CS3. We tried it with CS4. That was a mistake. To be fair, it never said it worked with CS4. It said CS3 and then stopped at that platform. I goofed.

CS4 became extremely unstable. Photoshop crashed many more times each day than normal. InDesign refused to open at all. Uninstalling the suite using the uninstaller and Adobe’s secret clean-up script (which told me that it took no action) did not fix it. I had to remove all the preferences that bore the mark of Adobe (anything with “adobe” in the name of the .plist file or folder). I reinstalled it and it worked as though it were brand new again (after updates).

However, this was not before I performed a “Disk Permissions Repair” as suggested by forums. This utility is located in your Applications > Utilities > Disk Utility under your Mac drive. I believe that doing this action resulted in the mis-placed ACL’s.

I hope this helps someone who is or has suffered this problem before.

"Gentoo" DomU in XenServer

7 comments

Overview of Xen

If you’re here, odds are you’ve heard of virtualization and, specifically, xen. Xen is an amazing piece of technology. So amazing that a company named Citrix has created a product sourced from it: XenServer.

As an additional bit of background, I love the Linux distro: Gentoo. Gentoo is distinguished because of it’s package system: portage. Wouldn’t it be nice if one could combine the amazing Xen with the amazing Gentoo? Turns out, it’s really hard.

One of the primary draws to Xen is the ability to do what’s called a migration. And to boot, the ability to do a live migration, that is, moving a virtual machine from one physical host, to another without powering the virtual machine down. This has enormous consequences for maintenance of physical hardware. Why schedule downtime when you can avoid it all together?

So Xen, the hypervisor, provides drivers to the guest instance (also known as the domU (for unprivileged domain, or domain… unprivileged)). While Xen can host just about any operating system, in order to take advantage of the special features of XenServer, such as memory usage statistics and, of course, migrations (including live migrations), you need to have a paravirtualized operating system (PV).

With a paravirtualized operating system, the hypervisor (that’s Xen remember), boots the guest operating system and installs a special device and a place to put hypervisor information as follows:

  • /proc/xen
  • /sys/hypervisor

Goal

So the goal should be clear by now: make Gentoo Linux a paravirtualized guest domU in Citrix XenServer5.5.

How to do it

Warning

Remember, it’s not easy. You should know how to handle Gentoo and XenServer.

Also: this is based on my notes of my experience. I am not responsible for any damages frustration or any other liabilities incurred by using the steps in this article. I am not responsible for how this information is used (or not used).

This “guide” is extremely raw. Only the major steps are covered and some details have been left out. This is not a step-by-step, testedly proven guide. It’s assumed you know how to edit files and navigate your way through a kernel compilation and installation, most of which you can get from the Gentoo Handbook, though.

The good news, I have created working paravirtualized instances of Gentoo. If that’s your goal, you might pick something up.

Requirements

You’ll need to have working before you start with the remainder of this guide:

  • XenServer5.5 installed on 2 physical servers
  • XenServer5.5 configured with shared storage, such as CIFS (yuck), NFS, or, even more special, iSCSI
  • XenCenter with the above XenServer’s in a server pool (Yes, sadly, this one requires a Windows operating system)

The Overview

  1. Setup your shared storage
  2. Install XenServers
  3. Install XenCenter (but you’ve done this already)
  4. Install all networking as per your requirements ;-)
  5. Get a Gentoo install CD (I guess any install CD will do)
  6. Create your VM
  7. Install Gentoo
  8. Get the Xen linux kernel
  9. Compile your kernel
  10. Install the bootloader
  11. Configure /etc/fstab
  12. Install Citrix Xen Tools
  13. Configure the VM in Xen

Setup our shared storage, XenServers and XenCenter

I’m not covering this. Citrix has plenty of documentation and, frankly, I didn’t read most of it. Just install it and read the docs when you have questions about options. This is by far, the easiest part.

Get a Gentoo install CD

Now, you don’t NEED a Gentoo-branded install CD. I used it as I followed the directions at the Gentoo site. You can find a Gentoo install CD here:

http://www.gentoo.org/main/en/where.xml

Keep your arch in mind. Mine was EM64T (aka: Intel64, AKA: amd64) 1, which means I had to download the amd64 architecture version. If you don’t pick this, you’ll have to cross compile and that’s just ugly.

So. Go ahead and download it from a mirror near you. No need to burn it to a CD/DVD. XenCenter can mount ISO’s directly via the ISO Library shared storage. If you don’t want to set that up (but WHY? It’s so useful!), then go ahead and burn your precious CD and then pop it into the server.

Provision the Virtual Machine

From within XenCenter, provision a new virtual machine from the “Other” template. Create a 10GB virtual disk. Believe me, 10GB is pretty much the minimum.

Mount the Gentoo install CD as the CD drive in the new virtual machine.

Fire up your virtual machine

Now, follow the directions to install Gentoo until you reach the Kernel part. Remember, pick the install guide for your architecture. The guides are mostly the same (with a few differences) anyway. Remember, install everything as described in the manual until you get to the “Configuring the Kernel” part.

Get the Xen kernel

Now, when I said I wanted Gentoo, I really want Gentoo’s package manager. In order to create a PV (paravirtualized, remember) kernel, you need the Xen drivers. OOOOOK. So you need to go get those. But the only way to do that is to use a Xen-enabled Kernel. Bottom line, you can’t use the gentoo-sources kernel. I tried, but I couldn’t get it to recognize the paravirtualized devices.

So, let’s download the Xen-kernel from xen.org. Download it into your chrooted Gentoo install. You can find the kernel at http://xen.org/download/ Snag the “Linux 2.6.18 with Xen 3.4.x support source tarball” or later version if available. I highly recommend wget.

cd /usr/src/
wget "http://bits.xensource.com/oss-xen/release/3.4.0/linux-2.6.18-xen-3.4.0.tar.gz"
gzip -d linux-2.6.18-xen-3.4.0.tar.gz
tar -xf linux-2.6.18-xen-3.4.0.tar
rm linux-2.6.18-xen-3.4.0.tar
ln -s linux-2.6.18-xen-3.4.0 linux
cd linux

Now it’s time to configure your kernel. I’m not sure why, but there are TONS of extraneous options. You really only need the Xen options. Just do a search for Xen and make sure they all say “y.” However, since we’re building a domU instance, you don’t need any that say: “backend.” You must configure your processor options, however. Pick your architecture type, configure your SMP options. You really don’t need the Kernel Hacks. I said no to them all. Be sure to configure your file-system drivers. If you used the Gentoo instructions (as you should have thus far), you’ll need to include ext3 support. You do not need ext2 support, but I recommend it (at least as a module) as you’ll need to edit your boot partition if anything is wrong. Once you’re done with that, go ahead and compile your kernel.

make && make modules_install

You may now resume the Gentoo install instruction until you reach the part about bootloaders.

Install the Bootloader

Now that you’re here for bootloaders, I’ll tell you right off that it’s pretty much the same as the Gentoo installation instructions. There’s a few caveats with the kernel command. Follow the instructions from the Gentoo installation, but use the following for the kernel line in /boot/grub/grub.conf (aka: menu.lst):

kernel /boot/YOURKERNELFILE root=/dev/xvda3 xencons=tty console=tty0

So that says that you installed your kernel at /boot/YOURKERNELFILE (from the Gentoo kernel installation instructions, you should have copied your compiled kernel from arch/x86_64/boot/vmlinuz to /boot/YOURKERNELFILE. Of course, you probably didn’t name it YOURKERNELFILE and named it after what it is, like: xen3.4.0-linux2.6.18.

The root= should point to the file system where your root “/” directory is stored. You have to use the device path: “/dev/xvda3” and not /dev/hda or /dev/sda (first, they won’t exist and if they do, will cause your file systems to corrupt). Consequently, “/etc” needs to be readable. Xencons and console is required to tell XenServer how to talk with the PV guest2.

Go ahead and finish the Gentoo install. Before you reboot, see the next step in this article

Configure /etc/fstab

Your disks will appear as /dev/xvdAN where A is the letter of the “disk” which is really your shared storage as provided by XenServer. N is the partition number. You should have 3 partitions if you followed the Gentoo instructions. Make sure you edit your /etc/fstab to use those devices rather than /dev/hdAN, and if you use /dev/sdAN, you’ll cause your disks to encounter errors when doing lots of writing. Believe me. You’ll notice that your disks will re-mount as read-only. If you see this, STOP using /dev/sda! /dev/hda works, but again, to fully paravirtualize, use /dev/xvda.

Go ahead and finish the Gentoo installation. Go all the way until you have to reboot. Don’t reboot yet.

Install Citrix Xen Tools

First, download the xen source from xen.org: http://bits.xensource.com/oss-xen/release/3.4.1/xen-3.4.1.tar.gz

Download that file by:

cd /usr/local/src
wget "http://bits.xensource.com/oss-xen/release/3.4.1/xen-3.4.1.tar.gz"
gzip -d xen-3.4.1.tar.gz
tar -xf xen-3.4.1.tar
rm xen-3.4.1.tar
cd xen-3.4.1
make tools

You’ll see errors about firmware. Ignore them. You only care about tools/xenstore. And by the time you see the firmware errors, it will be built (or should be at the time of this writing).

Copy the xenstore executable to /usr/sbin
Copy all the libxenstore.so.* files to /usr/lib

cd tools/xenstore
cp xenstore /usr/sbin
cp libenstore.so* /usr/lib

Now, mount the XenTools ISO provided by XenServer (it’s a “CD” provided by XenServer. Access it via the VM configuration the XenCenter console).

Before we begin, you must emerge the RPM utility. Yes, this Red Hat’s package management, but Citrix does not yet provide an ebuild. There is a Gentoo port for RPM though, so we’ll use that:

emerge rpm

Once that finishes, navigate the XenTools CD to the Linux directory. There you’ll see the utilities. Unpack the one in the Linux folder:

rpm -i --nodeps xe-guest-utilities-5.5.0-458.x86_64.rpm

—nodeps is required as we have all the dependencies, but we don’t want the RPM system to manage our software.

When the package is unpacked, you’ll see a new script in /etc/init.d/xe-linux-distribution

rc-update add xe-linux-distribution default

to run this at boot, but first, we need to fix it.

You’ll have 3 more script files in /usr/sbin:

  • xe-daemon
  • xe-linux-distribution
  • xe-update-guest-attrs

Edit xe-linux-distribution. Add the following function below the identify_lsb() function (don’t put it IN the function, put it BELOW the function).

identify_gentoo()
{
	gentoo_release="$1"
	if [ ! -e "${gentoo_release}" ] ; then
		return 1
	fi
	distro="gentoo"
	eval $(cat ${gentoo_release} | awk '{ print "release=" $5 }' )
	if [ -z "${release}" ] ; then
		return 1
	fi
	eval $(echo $release | awk -F. -- '{ print "major=" $1 ; print "minor=" $2 }' )
	if [ -z "${major}" -o -z "$minor" ] ; then
		return 1
	fi
	write_to_output "${distro}" "${major}" "${minor}" "${distro}"
}

(Editor’s note: Line 12 edited, added a space after “—”)

Next, you should add the following line

identify_gentoo "/etc/gentoo-release" && exit 0

put it just below the following line:

identify_debian /etc/debian_version && exit 0

That’s it. It should work. The /etc/gentoo-release file has the details about the Gentoo kernel you’re using. All this script does is read that file and print out the details in a format other Citrix tools use. Shutdown the Gentoo VM and move the next step in this article.

/etc/init.d/shutdown

Configure the VM

Make sure the Gentoo VM is powered down. Go to a XenServer console (accessible from XenCenter). This is different from a VM console. You access this by selecting a server and then the console tab. Any server will do. The XenVM database is shared in XenCenter (if you have shared storage that is, which you need for this article).

You’ll have to get the uuid of the Gentoo VM first. You can see a list by doing:

xe vm-list

Record the uuid for future reference. Next, you need to set the VM boot-up options. This let’s Xen boot your kernel. Exciting right!?

xe vm-param-set uuid=UUID PV-kernel=/boot/kernel PV-bootloader=pygrub PV-args=xencons=tty HVM-boot-policy=""

(Editor’s Note: uuid is not a flag, but an argument)

The above sets the kernel for the bootloader, sets the xen bootloader for the domU kernel (gentoo) and clears the HVM-boot-policy (allows for ordering the disks before boot, we don’t want this as this prevents Xen from booting your machine paravirtually).

Now, make the disk created for this VM bootable.

xe vm-disk-list vm=NAMEOFVIRTUALMACHINE | less

You’ll see a list of disks. The disk type will be a VDI. Record the uuid for future reference. Hit “q” to exit less Now, make the disk bootable:

xe vbd-param-set bootable=true uuid=UUIDOFPREVIOUSSTEP

You may now boot the machine as a PV and it should start without issue. If you need to troubleshoot, create a second VM (using the “other” template) and boot from the Gentoo CD. Detach the storage from the server you’re configuring (that doesn’t work) and attach it to the new “Rescue” VM. You can mount the drives and chroot to configure the operating system environment, if necessary. YOu can even re-build the kernel. However, you cannot yet migrate the VM, that is until you install Citrix’s tools.

You should now be able to see memory usage, network interfaces, migrate the machine, and suspend the machine, once you start it that is.

Conclusion

That’s about it. Your Gentoo domU guest should not only be restartable, but migratable! I reconstructed these instructions based on what I did to get one guest instance built. I may have missed a few things.

Disclaimer

Citrix is the Trade Mark of Citrix Systems, Inc. I am not affiliated with Citrix Systems, Inc. in any way.

Remember, I’m not responsible for your use or misuse of the information in this article.

Lack of documentation

When trying to do this myself, I was and still am stymied by the lack of documentation about paravirtualization kernels. Even Xen.org is pretty useless when it comes to documentation. They cover how to make a dom0 (which is important, I admit), but fail to cover how to construct that kernels for the ultimate goal of Xen: running virtual machines.

There is nothing from Citrix about xenbus or xenstore. This entire guide was created from trial and error. Believe me, the bootloader errors are not fun to deal.

1 Yeah, confusing. Ain’t it?

2 If you see a on Gentoo domU boot about the Kernel Freeing Unused Memory and then seemingly stalling, odds are, you forgot to tell Xen about the console. Your OS is running, you just can’t speak with it, which makes it useless.

The Switch

no comments

Thanks to my parents over the holidays, I am now a proud owner of an Apple Product: a MacBook. Anyone who has read other articles on my blog knows I’ve been around the operating system block (I’ve used many different operating systems). I am very impressed with the initial start up process. It was up and running in minutes. I am physically unable to express my happiness about not having to re-install Windows to get rid of all the pre-loaded bloat that accompanies just about any other computer you buy from someone. That’s not a problem with Windows, but rather the vendors. Never-the-less nothing is perfect.

Learning Curve

They keys do different things. No big deal. There is a small learning curve about when the Apple key is used and when the control is used.

The application layout also takes some getting used to. I’m familiar with the Windows policy of C:/Program Files and the battle of installing things to D:/Program Files (they really should stop partitioning things and then not changing the default location). I am also familiar with the Linux/Unix policy of /usr/local/bin and /usr/bin. However, Mac, in what may be quite possibly the world’s greatest move ever (though I may speak prematurely here) has created a very very organized way of arranging applications. Each application is stored as a folder with the executable, resources, and configuration files contained in it. It makes getting applications off the ‘net very easy. It’s strange thinking of an application this way. I also thought that many things would be command-line driven. There are many command line counter-parts to most of the utilities (Mac is based on FreeBSD after all), but most things are GUI-based.

Good Stuff

There’s a dashboard application that dims the screen and runs widgets that can do just about everything I care to do with a computer. I really like the sticky notes. They let you put up written notes anywhere on the dashboard.

It’s nice to have a good default music player. Windows Media player is just aweful. It takes me a long time to figure out how to add songs into it when I don’t do it for a few months at a time. I found how to do it in iTunes (without reading a help file) in less than 20 seconds. 2.4GB of music transferred later, I was listening to my songs from my old computer.

The Apple Remote is neat too. No longer must I get up to change the options of a currently playing movie. And using the web camera to pick up the IR, genius. It has a few, but powerful set of buttons: Menu, Fast Forward, Rewind, Volume control, Play and Pause. I was really getting sick of using the XBox for DVD’s. I can actually hear the audio now without the roar of the XBox’s cooling fans. Not having to wait for the wireless controllers to boot is a plus as well. After 10 minutes, they shut down automatically to conserve power. I usually pull the batteries when I’m done starting a movie, however.

I really like that the keyboard lights up. I’ve wanted an illuminated keyboard for a while. Just to prove they’re green, it uses two light detectors embedded in the speaker grill to determine the amount of ambient light. So it shuts off the lights when you can see them, but illuminates when you can’t. The only problem: when you’re logging in, they keyboard will not light up until you’ve actually logged into the computer. Makes it hard to see your keys when you’re entering your password. The screen also dims itself according to the ambient light, so you don’t go blind working in the dark.

I was also impressed that ruby and rails comes with the operating system right out of the box. Good move!

The saga will continue…

UPE (Zeta) Freshman Unix Talk

no comments

UPE wanted to hold a Freshman Unix Talk to introduce new students to USC’s shared computing resources. It is to help them understand the system so they can program their assignments with it and not pull out their hair in the process. Naturally, I jumped at the opportunity to give the talk.

It is an overview of Unix as an operating system from the user’s perspective. So I’ve included some charts of commonly used programs.

I gave this talk a few months back and had forgotten to post it here.

You’re free to use it so long as I remain credited and you don’t make any money from it.

Freshman Unix Talk

My History with FreeBSD

no comments

I’m writing about my transition from Windows to FreeBSD with the hopes that you will enjoy my journey or attempt to enter the larger world of operating systems yourself. I understand if you are busy or can’t endure a switch (due to work or school). I made my switch over a Winter break, I encourage you to take your time if you decide to try. In the meanwhile, enjoy.

The Road at my Back

I was like you once. I had used Windows 3.1, 98, 98SE (____ it), ME (see 98SE), and XP all my life (well, since I was 6-7 and as they appeared). Unix was some big mainframe server running the Internet and was attended to by vampiric, cave-dwelling programmers, Linux was a cult of Unix wannabes who landed slightly above the Unix folk on the afraid-of-people scale. It’s not nice to stereotype! At least those were my notions until my friend told me OSX (Darwin) was essentially a modified FreeBSD distribution (AKA: Unix). Today I use all three genres of operating systems as they suit me. If you’re thinking of moving away from your current operating system to something else, fear not; it’s not that hard.

I’ve been using FreeBSD for quite a few years now (since 2004/2005) as an operating system for my laptop (a Sony Vaio). I dual boot to Windows when need be (various sites require IE, sadly). This was my first foray into the world of non-Windows operating systems. Starting with 5.3, 5.4, 6.1 and finally 6.2, FreeBSD has served dutifully as a stable, reliable, intuitive, and transparent operating system. I am especially fond of that last part. There is no “magic” to this operating system. Everything runs like clock-work and all the components are available to an interested mind.

You can complain about the lack of support iTunes and video and DVD programs, because I never use that stuff anyway (FreeBSD is primarily designed to be a server, not a workstation or recreation station).

Sounds Good

If you need music, use XMMS. It’s the best mp3 player I’ve ever used (I’ve used Windows Media players since version 7, Real Player, and Quicktime). There’s nothing frilly about it. I plays music, PERIOD. Sure you can add more features. Stay away from XMMS2 though. I think it’s a step in the wrong direction for a personal player.

But there is no spyware (and if it is, it’s not obnoxious, but honestly I have not looked at even one line of its source code). You know what I’m talking about, Windows Media player is annoying. I’m confounded every time I want to create a playlist with music on my hard drive. Real player is annoying, but has a better playlist feature than Windows Media player. The reporting and pop-ups and use of IE really annoys me though. Quicktime is less annoying than the previous two, but still annoying. So if you want music for FreeBSD, XMMS is not the only choice, but it’s my choice. They also have some command-line players which work well if you’re a purist. If the developers at XMMS had bungled the interface as badly as Windows Media Player, I would be using that now. But I like XMMS’ UI.

A Window Manager even I Could Love

Speaking of UI’s, the primary reason I wanted to move away from Windows concerned usability. I’m very demanding when it comes to how I get things done. I just don’t like that layout and behavior that the Windows window manager uses (it slows me down and stops me when I don’t care to be stopped); unfortunately for Windows users, you have little flexibility with the behavior. I fell in love with FreeBSD (well, Unix and Linux in general) because, for the first time, I had a choice how I wanted my windows to behave.

Have you ever launched a program, and were then repeatedly assaulted with pop-up windows asking for your input? If you’re like me, you launch a few programs that you’ll need all at once and wait for them to load. So if I needed to browse files, edit the HTML, and view my work, I’d hit control-E, control-R, type notepad, then double-click the Firefox icon. Most of the time, Firefox will take approximately 45 seconds to load. At which time, I would be editing my HTML, only to be interrupted as Firefox steals the focus. You know what happens next, Firefox has what you intended to type into the HTML. Very annoying.

My favorite window manager is XFCE4. It’s light-weight compared to other managers and does a good job of getting out of your way when you really need to work. You can even set it to spawn without them stealing focus. I’d like it to spawn windows UNDER the old windows, but I’ll take a partial victory. The newer versions are starting to get complicated again. They made their own file browser (Explorer in Windows) called Thunar which I couldn’t stand for more than 5 minutes. I’d rather use the terminal (but I’ve never liked graphical directory browsers, I’m just strange). I like being able to issue commands or execute programs while I’m looking at the files. Call me old fashioned… Here’s the great part: you don’t need, nor are you mandated to install Thunar! Just go about your business. This is the common strength of Unix/Linux: if you don’t like something, don’t use it. The default software is adequate for performing every task. It might not be pretty or the most efficient, but you can get the job done with little hassle.

What’s this Do!?

Ports: the programs of FreeBSD. The folks nice enough to write programs for FreeBSD, for free, are also kind enough to make them easy to install and manage with ports. Don’t let the name fool or scare you. They are just programs wrapped up in an installer. For some reason, they are called “ports,” probably because the software was written for other operating systems and “ported” over to FreeBSD or vice versa. FreeBSD lists all the ports and heaping spoonfuls of information at their site. Want to find a program? Look no further! Odds are, anything you need is already in that list. The best part is, they’re all free to use! I don’t know where they find the time to make them, but I sure am glad they do.

Not all Good

I’ve had my share of problems: internal WiFi card causes a kernel panic (despite custom drivers), rare (once every 6-8 months) inability to launch XFCE4 without hitting a black screen of death (system is unresponsive), the inability to access a Flash player (even with Linux emulation, see the next reason)-, and finally the inability to use the 3D accelerator (OpenGL) on the laptop’s graphics card.- As of 2007/09/09 I fixed OpenGL, turned out to be a configuration error. FreeBSD just got better! That is my conclusive list of peeves. Mind that this is a laptop and it has lots of custom hardware to be “energy efficient” and “compact.” I suspect (but have not verified), that the desktop support for hardware is more accomodating.

Hope: There is Help

While the package management is no where near as brain dead as that of Gentoo (2.6.19), it’s still very usable, if you have the time to read and understand what you need to do. Of course, the FreeBSD Handbook offers loads of useful and reliable information for anyone that needs to have key concepts explained (trust me, I used it quite a bit). If you’re new to Unix, that’s a great place to start; however, the best way is to get your hands dirty. Find an old box (256MB of memory is generous for FreeBSD, you can do much with very little with FreeBSD) and start playing.

While I’ve never made use of the various chatrooms, I’ve seen references to various IRC channels concerning Unix and Linux enthusiasts. You can probably ask questions there, though the FAQ’s and Handbooks are more likely to answer your questions faster.

Not the End

As I said, I’ve been using FreeBSD for years now and I do not plan to retire it any time soon. As a matter of fact, I can’t wait for 7, which has native serial support (so I can plug my microelectronics into the ports directly and configure them, if you were curious).

If you decide to take the plunge, try FreeBSD. It has a steep learning curve, but the results are spectacular. If you are satisfied with your current operating system, I encourage you to try it any way. Maybe you will discover something you never thought possible? My real hope is that you discover how you can task more effectively. Fear not the command line, it is your friend (well, it’s mine).