After getting home from church and lunch at my Mom's place today, my day, and evening, has been spent fiddling around with Ubuntu, learning how Linux is different from BSD and installing packages that I would like to have but weren't part of the Ubuntu base system. Almost the first package I installed (after Firefox and Thunderbird) was the 686-class kernel for SMP capabilities. The default 386-class kernel ran rather sluggishly and (obviously) only used one of the P3-450s. The difference after rebooting was immediately noticeable! I've also decided that I like Gnome (which comes default with Ubuntu) better than KDE for my X11 window manager.
The only major problem I have had so far was with network setup, specifically the file /etc/network/interfaces and the loopback device. I was trying to get the SSH daemon to accept IPv6 connections, since everything on my home LAN is almost all IPv6. Suddenly, after a reboot, I was getting the X login screen supplied by gdm, but after typing in my userid and password the screen would go blank with just a mouse cursor. Nor were any of the character terminals present — just a blinking cursor in the upper right corner in all Ctrl+Alt+F? screens.
The thing is, in *BSD, the loopback interface is called “lo0”, consistent with all other devices — a few letters identifying the hardware and the a number for the Nth device of that type. In Linux, however, it's just called “lo”. If you accidentally turn lo into lo0, like I did, or just remove the setup lines for the loopback device from the interfaces file, the loopback device never gets configure and the entire network subsystem is FUBARed, which in turn FUBARs the entire operating system. In OpenBSD, the loopback device is always there if you have networking compiled into your kernel. Not having a /etc/hostname.lo0 file won't prevent the loopback device from being configured and it won't bring your operating system to it's knees. Indeed, even if you delete all your /etc/hostname.* files, all your server daemons will still start unless you've specifically configured them to bind to a specific address or fail. Technically, your system still works and you don't have to go into single user “safe” mode to fix things because you can't login in normal mode.
Now part if this was my own fault for mixing up what I thought the loopback device's name was. However, I cannot believe that Linux has such a potentially major problem creator in it's network configuration method. I did find a webpage that describes a fail-over and load-balancing network architecture using something called Ultramonkey where you configure additional loopback interfaces with non-127.0.0.0/8 addresses, but I think that OpenBSD's carp is the more elegant situation. No futzing around with carp will prevent your computer from booting properly.
At any rate, we'll just have to see what the future holds and how strongly I maintain my pro-BSD bias as I become more familiar with Linux.