Dear Lazyweb,

In the interest of retrocomputing, can someone please point me at simple instructions to do any or all of the following:

  1. Emulate a Mac IIci or similar, with networking, on MacOS 10.14. (I have BasiliskII running but can't make it network)
  2. Emulate a Mac Plus or Mac II, with networking (I have several versions of Mini vMac, same)
  3. Emulate any approximately-1998-vintage Linux distro, with X11 and networking, on MacOS 10.14.
  4. Create an AWS instance running any 1998-vintage Linux distro.

If you are about to google it right now and say "some guy says this should work", please rest assured that I have already googled it, and am asking for a better answer than that.

Tags: , , , , ,

22 Responses:

  1. nightbird says:

    #3 intrigues me. Could you point me to an acceptable Linux installer that I could download?

  2. Its been a while/long time, but I ended up using SheepShaver instead of BasiliskII since at least when I wanted to do it, SheepShaver had better networking support:

  3. Billy says: has instructions on getting very basic X11 (16 colours, 640x480) with RedHat 5.2 in VirtualBox. I followed them and they worked, but my VirtualBox is in Windows, not Mac.

    No network so far though. Never thought I'd have to go looking for Donald Becker's web site again...

    • Billy says:

      Looks like VirtualBox's AMD PCnet PCI-II adapter works with RedHat 5.2's pcnet32 driver. ifconfig shows the correct MAC address, now I just have to remember how to get the rest of it going, and which address range to use (DHCP didn't seem to work).

      I'd expect this should work with Mac as well. I'll give it a shot on my wife's Mac at home tonight.

      • Mads says:

        DHCP almost worked out of the box for me (VirtualBox configured to use NAT), I just had to set a default route manually:
        route add default gw

    • Mads says:

      Networking works for me with RH 5.2 in VirtualBox 5.2 on MacOS X 10.14. RedHat is using the AMD pcnet32 driver, and VirtualBox is set up with PCnet-PCI II (Am79C970A)

  4. erlogan says:

    > 4. Create an AWS instance running any 1998-vintage Linux distro

    This one might be impossible depending on your standards for purity. AWS instances run in Xen (modulo some Amazon fuckery), which wasn't released until 2003, so out of the, er, box, a 1998-era distro won't have the right drivers/kmods available, because they won't have been written for at least five years.

    That said, one might be able to Frankenstein it by running a newer kernel inside the old distro (so old libc, etc., but that might need upgrading, too). How new I couldn't say (i.e., would a 2003 kernel work? I have no idea. Me, I'd go for broke and pick $LATEST, updating the smallest number of packages needed to get it to build and run).

    The process for exporting a VirtualBox image to an Amazon AMI is reasonably well-documented and left as an exercise for the reader.

  5. mernisse says:

    I don't have exactly #1 running, however I have a Docker container that runs on macOS 10.14.4 that happily runs a networked version of Basilisk II with Navigator 3.04 Gold. It emulates a Performa instead of an SE, however the trick to get it working was using the fork of Basilisk II from If you are interested the container is at;a=tree;f=netscape-3.04-gold;hb=HEAD and is what builds the emulator.

  6. Running an ancient Linux natively on AWS sounds harrowing, to say the least. #4 is doable with QEMU (and probably also suitable for #3, depending upon your sound/graphics needs)

    I cheated a bit and used Redhat 7.3, which is from 2002, and uses a 2.4 (optional 2.2?) kernel. My memory is fuzzy, but I recall this version being somewhat compatible with 5.x and 6.x (which are closer to 1998 vintage). 7.3 has the advantage of some hardware detection; you can get X and the network running without any real manual work. I also think I remember 7.3 being the last version with free RPM updates, so there are probably still some comparatively modern 3rd party RPMs floating around for people who didn't want to pay for 8.x or 9.x, the last before Fedora/Red Hat Enterprise Linux/Centos. If you really want a genuine 1998, RH 5.2 install, there's probably a bunch more steps needed for networking/X to work.

    I did all the local setup on Ubuntu 18, but iirc QEMU works just about the same on OS X.... not gonna question why you want to run a 20-year old OS in zee cloud.

    I tried posting my steps inline, but not sure if it disappeared or didn't get approved, but anyway: rh73-qemu.txt

    • jwz says:

      Well, running it on AWS is not really a goal in itself, but I thought it might be that #4 would be easier than #3 for some reason.

      • Hmm, OK. I doubt anything older than a 2.6.something kernel will run directly on AWS, since that is when they introduced Xen guest support. I'd venture to say that it might work out faster/cheaper/safer to emulate a 32-bit machine inside a newer 64-bit instance, anyway. It certainly requires less AWS-specific knowledge.

        I wonder if an AMI from today will still run in 20 years (for Y2K38 testing). More likely, the same QEMU tricks will still work.

        • ssl-3 says:

          Xen can run MS-DOS, and that certainly doesn't have any hypervisor or virtualization features. Why not Linux?

          • AWS strongly encouraged paravirtualized (PV) machines in the early days. Also, AWS didn't really have that much momentum until EBS was a thing. So the window where anybody cared about getting a pre-2.6 kernel running for production workloads was very short, and nobody bothered (and this would have been a significant backport).

            Now that hardware VM (HVM) is the norm, maybe it is possible to get something running. But stuff like network / disk drivers could also be a concern (e.g. you're not going to get it working on a c5 instance, with ENA support). Getting it to work on local Xen still ain't the same as AWS.

            Assuming that he wants to run a firewalled legacy app, or some old desktop app, let's say for Internet History reasons, the work required to build a working QEMU image is minimal compared to the occasional trial-and-error of building an AMI from scratch (imho anyway). And the QEMU version works locally and on AWS or anywhere else for that matter. Prove me wrong? or don't, really, no one really needs ancient Linux to run directly on EC2. But if for some reason my job description included running historic Linux distributions, I'd be much more comfortable emulating them, rather than running them in a modern hypervisor.

  7. J. Peterson says:

    For #1 & #2, "with networking" on Macs of that vintage implies the use of MacTCP. This control panel was spectacularly unreliable on the native hardware at the time. IIRC it used VBL interrupts to listen for incoming traffic. Combined with no protected memory, your Mac announced "you have new mail" by crashing into Macsbug.

    I suspect debugging this is beyond the attention span of emulator authors who aren't getting paid for it.

  8. aj. says:

    I have some ideas for #1 & #2 after having hacked features into minivmac and BasiliskII. I'll investigate after work.

  9. zeug says:

    I know you aren't a big debian fan but they appear to have some older releases here:

    1.3 = "Bo", June 1997
    2.0 = "Hamm", July 1998

    Wondering how long until it gets pwned ...or maybe it's more secure, considering what a steaming pile of manure everything is these days. Yay!

  10. Andrew says:

    The post at and accompanying wonderful blog gets you most of the way there with Slackware 3.5 from June 1998. Some things seem out of date, probably because of updates to qemu? And I could not get the mouse working at all in X :/

    But here’s what worked for me:

    1. brew install qemu

    2. wget

    3. Create a file to be your hard drive:

    qemu-img create -f raw -o size=2G slackware.img

    4. Boot the install CD.

    qemu-system-i386 -net nic,model=ne2k_isa -net user
    -drive file=slackware.img,format=raw -L pc-bios
    -drive file=slackware-3.5-install.iso,format=raw,media=cdrom

    On subsequent boots, just leave out the -drive ...iso...cdrom line.

    5. Run fdisk to partition the drive, then setup and step through the wizard. Normally you’d use DHCP here, but I didn’t see that as an option. Firing up a different VM that did have DHCP to see what the defaults were, I found that you should use as the gateway, with as the DNS server, and choose any free IP in that subnet for the slackware VM.

    6. Follow the instructions in the boot warning to uncomment the first

    /sbin/modprobe ne io=0x300 # NE2000 at 0x300

    line in /etc/rc.d/rc.modules, and reboot

    7. Yay, you have internet! No ssh or curl or anything, but you have ftp and telnet and gcc, and you can likely string together whatever other functionality you need with the included python1.5.

  11. I can't comment to wit on your specific requirements, but this paper describes general strategies that museums (including the Internet Archive) are using to emulate ancient platforms. I don't actually think that anyone is really trying to emulate anything other than non-networked hosts, so this could be quite the interesting problem!