I have an old PC that I bought in 1999 just before entering college. It came with Windows NT 4.0 and after my first semester I ended up installing FreeBSD in a separate disk partition and dual-booting (of course these days one would just use a VM). My university taught FreeBSD rather than Linux in the computer science courses, and we were running FreeBSD 3.x. At the time there was little support for my nVidia Riva TNT graphics card, so I mostly used FreeBSD for school work and learning UNIX.
After finishing school I did not take the machine with me overseas, so it mostly sat in storage. I’ve been using laptops at home since then, and I hadn’t really given the machine much though. However, thirteen years later, this machine is still solid. All of the original parts work, minus the CD-RW drive. I had to replace one in 2002, and the replacement drive is no longer working well. The Iomega Zip drive still works perfectly (no click of death yet!), and with 256 MB of RAM and a that old graphics card it runs Windows 2000 like a champ. I can even get 1900×1200 on my LCD monitor.
The problem is I don’t have much of use for Windows. I only use ModelSim, which is overkill on this old machine, so I usually run Windows in VirtualBox on my MacBook. So what to do with this old PC then? I have wanted to get into Linux kernel mode programming, so I thought I would install Linux on the machine. My workstation at my job runs Ubuntu 11 which I quite enjoy. So what not start there?
Ubuntu 11.04 – easy config and setup, but you need memory
I downloaded the Ubuntu CD ISO and tried to install it on the old PC. The installer would fail after booting the live CD, and after searching on the Internet, I found that 256 MB of RAM was not enough to run the graphical installer. I downloaded the text-code Ubuntu CD and then proceeded to install it. The install went smoothly and everything seemed well. Everything was installed and I was able to connect to my wireless network with ease. However, when I tried to launch the terminal, it took nearly 20 seconds for the terminal to appear. I tried opening Firefox, and it took nearly a minute to load. Clearly I still did not have enough memory to run Ubuntu. I really like the debian package management system though, I hate battling ‘yum’, ‘zypper’, and the rpm management tools on the servers at work. So perhaps I’ll just try Debian?
Debian 6 – Lightweight, but be prepared to spend days getting it to work
I have never tried Debian before. In the past at least, it had a reputation for being difficult to configure and use. To my surprise though, the install process was quite smooth. Perhaps I just know what is going on now that I’ve been working with UNIX for a few years at work? I logged into the gnome on my newly installed Debian box only to find that there was no way to setup wireless networking. I only had disk 1, and the geniuses at Debian decided that disk 4 would have network-manager, disk 5 would have gnome-network-manager, and disk 2 would have many of the dependencies for both of those packages. I eventually installed all of the packages manually with dpkg, and even when I had the gnome-network-manager installed and usable, I still could not connect to my wireless network. I put that aside and tried to install nVidia’s legacy driver for my graphics card.
No go. On this minimalist Debian system, even binutils were not installed by the Debian installer! Luckily binutils were on disk 1, but even after installing them, the nVidia installer would not run. I became fed up and gave up on Debian. Debian was light-weight enough to run on this machine, but with packages spread over 30+ CDs and no connection to my wireless network, I decided to try to move on. Well, there’s always Fedora Core, right?
Fedora Core – memory, memory, memory
I considered Fedora Core as it was the distro that I had used in the past quite a bit. A quick look at the Fedora webpage and I had already given up–I needed at least 768 MB of RAM, three times what i had in this machine.
Longing for Solaris and SPARC
At this point I was longing for my Sun Blade 150 that I owned while living in Tokyo. It was an old machine too, and Ultrasparc III with just 512 MB of RAM and a DVD-ROM drive. However, that machine was slick. Installing Solaris 10 was a breeze, and everything just worked out of the box. As with Apple products, when the hardware and software are controlled by one company, things just work…at a price though! I thought briefly about the idea of Solaris x86, but quickly decided that was not a good idea.
Back to FreeBSD
So it was back to FreeBSD after many years away from it. I downloaded the single CD for the install, and though slightly simplified, the install screen looks just as it did back in the year 2000 when I first installed FreeBSD on this same machine. Back in 2000, the machine had a powered by Windows NT sticker which I covered up with a FreeBSD sticker. How ironic that this same machine was running FreeBSD again. I installed the kernel developer base, and running have a very learn machine with no GUI yet, but wireless networking, vim 7, and gcc 4.6, all installed over the wire. FreeBSD just works.
I really just need to buy a modern PC. I still want to muck around with the Linux kernel, but I don’t want to spend days configuring the machine with no network connection. I have built embedded computer systems, bringing up these systems from nothing, writing the firmware for the processors and FPGAs, and making them fully functional products. Yet I have never built my own PC from parts…perhaps it is time for me to give that a try? Somehow that seems more daunting to me than building systems with microcontrollers and FPGAs. It shouldn’t be though, I just have to carefully select the parts. So the Linux kernel stuff can wait until I have figured my PC build.
With this old PC, I will let it run FreeBSD happily. I’ve never custom complied my own FreeBSD kernel, and that is one of the projects I have planned. Perhaps I can try to run my own DNS server so that I can connect to my MacBook by CNAME rather than IP address? I’m sure more ideas will come out over the coming days.