Remember MacOS 9, or Classic as Apple named it once Mac OS X was released? On PowerPC Macintosh machines, you can install a Classic environment which launches a virtualised instance of MacOS 9 whenever you launch a Classic application. This environment has been dropped from Intel releases of Mac OS X, but thanks to SheepShaver, you can still set it up yourself on Mac OS X, Linux, Windows, and even BeOS if you want to. I decided to try SheepShaver on my Ubuntu machine, and discovered just how easy it really is.
SheepShaver is basically a PowerPC emulator that fakes an entire PowerPC-based Macintosh in software so that you can run MacOS 7.5.2 through 9.0.4 on Windows, Mac OS X, Linux, and BeOS. As of late, development has been focussed on Windows and Mac OS X, but pre-built Debian packages have appeared for 64bit and 32bit Ubuntu installations too. I grabbed one of these, and got going. Even though SheepShaver can run earlier versions, I’m focussing on MacOS 9.0.4.
You’ll need a few things before you can get going. Obviously, you’ll need SheepShaver. You can build it yourself, or grab a binary; binaries for Windows and Mac OS X are easy to get, but for Ubuntu, you’ll have to try a little harder. I used the 64bit build found here, and it works fine on Ubuntu Lucid Lynx.
Of course, you’ll also need a copy of MacOS 9.0.4. Since I have two Macs capable of running classic versions, that was no problem for me. Believe it or not, genuine and new copies of MacOS 9 can still be found in online stores today, but even if you can’t find one online, your local Apple retailer might still have a few copies lying around (at least, that’s how I got two free copies). Of course, there’s always the option of going the way of the pirate, but this is most likely illegal in your country of residence.
The third thing you’ll need is a little trickier to come by: you’re going to need the ROM image of a new world Mac, like a PowerMac G4. Again, I’m lucky in that I have two of these, so I didn’t have to jump through a lot of hoops. You can find these ROMs online too, but again, that is most likely illegal.
Once you have all these, it’s pretty darn easy to get going. Before we start, on my machine, SheepShaver had to be run as root, or else I’d get a “Cannot map Low Memory Globals: Operation not permitted” error. In other words, be careful, and don’t run it on a production machine – your SheepShaver environment has root access.
I’m sure there’s a more clever way to work around this problem, but I haven’t really looked into this yet.
Update: Thanks to OSNews reader nalf38, there’s a solution. Edit your
/etc/sysctl.conf, and add
vm.mmap_min_addr = 0. Then execute
service procps start. Now you can run SheepShaver without root privileges.
After launching SheepShaver (I simply use a terminal to execute
sudo SheepShaver), you’ll be confronted with the settings window which also happens to act as the launcher for your MacOS 9 environment. The steps to set up this environment will look remarkably familiar to anyone with experience in running virtual machines.
First, we need to create an image file to act as a hard drive for MacOS 9. I know from experience that this operating system requires very little hard drive space, so I went with 2GB. You obviously need to tell SheepShaver where to store this file; I stored mine on my free-for-all Data partition, and called it MacOS.
Now it’s time to correctly set everything up. Since you first need to install MacOS 9, insert your MacOS 9.0.4 disk, enable the CD-ROM driver, and set the “Boot from” drop-down to “CD-ROM”. It is important to set the “UNIX root” field to a safe directory, like your home directory or a specially created share directory. This directory will be mounted as a drive inside the virtual environment, and since SheepShaver runs as root, it will have full read/write access to this directory and all subdirectories. Note that if you used the solution detailed in the update above, you can discard this warning.
You can play with the graphics/sound tab to find the settings that fit you – I have MacOS 9 running in a 1024×768 window. I didn’t change anything in the keyboard/mouse tab, since it all seems to work just fine with the default settings. In the serial/network tabs, be sure to set the Ethernet interface drop-down to slirp (we’ll set up networking within MacOS 9 later), and I guess memory/misc is pretty much self-explanatory. I allocated 256MB of RAM to the virtual machine, which is more than enough for MacOS 9. You might want to set this value a little lower if you have less RAM to play with (I have 4GB). I didn’t touch the JIT compiler tab at all.
Now you can press “Start” to launch the virtual machine, and if all goes correctly, you’ll be asked to initialise the hard drive image you made. Once this is done, you’ll be running MacOS 9 as a live CD; you can proceed to install from there. The installation routine is fairly straightforward. Once complete, shut the live CD down, and change the appropriate settings in the SheepShaver window so you’ll boot from the hard drive image (I disabled the CD-ROM driver altogether). You now have your own working MacOS 9 environment.
To set up networking, you have to go to the TCP/IP preferences panel, and set the values exactly as pointed out below in the screenshot. Note, however, that the browsers which ship with MacOS 9 (Internet Explorer, Netscape) will crash your virtual machine, so you’ll have to either use Classilla or iCab. I was really looking forward to trying out the new Classilla browser, but sadly, I get a very weird memory error when trying to launch it, so it was back to iCab for me. iCab is a decent enough browser though, but it won’t blow your socks off or anything on MacOS 9.
I’ve made a short video showing SheepShaver in action (4.7MB, Ogg Theora).
Now you can play around with MacOS 9. While this guide was written for Ubuntu, the same settings will probably work just fine on other operating systems. It won’t give you the full experience, but it’s a nice and fun way to get to know an older operating system that has been pretty much obsoleted. While MacOS 9 is absolutely terrible from a technical point of view, Platinum still kicks everybody else’s bum when it comes to consistency and nice usability touches.