Apple A/UX was an early port of Unix to Apple’s 68k based Macintosh platform. It featured a full Unix system with a MacOS GUI and the ability to run classic MacOS applications. I have never heard of it until I have stumbled on it by accident on https://winworldpc.com/product/a-ux/3x
Since I have not seen any Linux specific instructions on how to get this up and running (apart from Neozeed’s excellent articles here https://virtuallyfun.com/wordpress/category/aux/ ) this is a short howto to get one going.
We will be running a so called ShoeBill – it is an all-new, BSD-licensed Macintosh II emulator designed from the ground up with the singular goal of running A/UX.
Prerequisites
- x86_64 Linux distribution (Im using Linux Mint 19.1 currently which is Ubuntu 18.04 based)
- A/UX package from https://winworldpc.com/product/a-ux/3x
- macii.rom from here https://github.com/nyteshade/mini-vmac-setup/blob/master/MacII.ROM
Lets prepare the environment first for the build (Either download the A/UX 3.0.0 or 3.0.1)
$ mkdir -p $HOME/AUX $ cd $HOME/AUX $ sudo su # apt-get install build-essential libsdl2-dev uuid-dev p7zip-full wget git # exit $ 7z e 'Apple AUX 3.0.1.7z' $ rm -rf 'Apple AUX 3.0.1' 'Apple AUX 3.0.1.7z' 'www.betaarchive.co.uk.info' $ mv AUX_3.0.1_Install.iso aux.img $ wget https://github.com/nyteshade/mini-vmac-setup/raw/master/MacII.ROM
So lets pull the ShoeBill sources now and build it
$ cd $HOME/AUX $ git clone https://github.com/pruten/shoebill.git $ cd shoebill/sdl-gui $ ./lin_build.sh gcc -O3 -ggdb -flto adb.post.c fpu.post.c mc68851.post.c mem.post.c via.post.c floppy.post.c core_api.post.c cpu.post.c dis.post.c ../core/SoftFloat/softfloat.c ../core/atrap_tab.c ../core/coff.c ../core/exception.c ../core/macii_symbols.c ../core/redblack.c ../core/scsi.c ../core/video.c ../core/filesystem.c ../core/alloc_pool.c ../core/toby_frame_buffer.c ../core/ethernet.c ../core/sound.c sdl.c -lpthread -lm -lSDL2 -lGL -o shoebill fpu.post.c: In function ‘_native_tentox’: fpu.post.c:821:9: warning: type of ‘a’ defaults to ‘int’ [-Wimplicit-int] double _native_tentox(a) { ^~~~~~~~~~~~~~ /tmp/cctaC1Cr.ltrans1.ltrans.o: In function `printf': /usr/include/x86_64-linux-gnu/bits/stdio2.h:104: warning: `sys_errlist' is deprecated; use `strerror' or `strerror_r' instead $ cp shoebill $HOME/AUX $ cd $HOME/AUX
Now we are ready to run ShoeBill on Linux (networking TUN/TAP support does not currently work)
$ cd $HOME/AUX $ ./shoebill rom=./Mac-II.ROM disk0=aux.img width=1024 height=768 ram=64
And ShoeBill should boot (to release the mouse cursor simply press the right mouse button)
Since networking is not working we can use the following way how to transfer files to and from the system (copy the aux.img to aux2.img)
$ cd $HOME/AUX $ cp aux.img aux2.img $ sudo su # apt-get install hfsutils
# mkdir -p /mnt/disk # losetup --find --show ./aux2.img /dev/loop1 # partprobe /dev/loop1 # mount -t hfs -o rw /dev/loop1p3 /mnt/disk This way we can delete some files on the /mnt/disk (free up about 10 MB space) And copy some files over once we unmount the drive, attach it to the emulator and re-execute ShoeBill # umount /mnt/disk # exit $ cd $HOME/AUX $ $ ./shoebill rom=./Mac-II.ROM disk0=aux.img disk1=aux2.img width=1024 height=768 ram=64
This is a dirty hack and Im not sure its really worth it :)