Not that I need another UNIX, but I came across this fine thing googling around for some Mach based OS’s running on the 68000, and well here is MachTen. Â Perhaps the most notable thing about MachTen is that it is capable of running in usermode under MacOS. Â Without a MMU.
# cc -v hi.c -o hi gcc version 1.40 /usr/local/PMtools/cpp -v -undef -D__GNUC__ -Dunix -D__MACHTEN__ -DMACHTEN -DTENON -D__unix__ -D____MACHTEN____ -D__MACHTEN__ -D__TENON__ -Dmc68000 hi.c /var/tmp/cc000093.cpp GNU CPP version 1.40 /usr/local/PMtools/cc1 /var/tmp/cc000093.cpp -fno-builtin-alloca -fno-defer-pop -quiet -dumpbase hi.c -version -o /var/tmp/cc000093.s GNU C version 1.40 (68k, MIT syntax) compiled by GNU C version 2.3.3. default target switches: as -mc68000 -o hi.o /var/tmp/cc000093.s ld -o hi -x /usr/lib/crt0.o hi.o -lc # size hi text data bss dec hex 11220 400 1672 13292 33ec # ./hi hello!
And yes, it even supports TCP/IP with it’s own TCP/IP stack. Â It can even operate as a router of all things! Â From a users point of view it is a little sparse, but it’s 4.3BSD, and thankfully includes the C compiler, so unlike of UNIX of the era on ‘small hardware’ this one isn’t crippled.
TCP/IP is configured through the MacOS via the control panel. Â As you can see it can use AppleTalk, Ethernet and TokenRing interfaces. Â For my simplicity, I’m just using SLiRP on the Ethernet, so it’s the old 10.0.2.15/24 setup. Â I re-compiled my BasiliskIII to redirect a port into the VM so I can telnet into it.
To install System 7.0.1 you need to set Basilisk II / Cockatrice III as a IIci. I went ahead and used this ROM. Â The ROM however does expect there to be a FPU.
Running however, I’ve been able to set the CPU to 3 or 4 (68030/68040) and it’s fine, I think the major thing is the modelid. Â If I try this under System 8 which needs a 68040, then it’ll crash in spectacular ways. Â You don’t need MacTCP as again MachTen is a 4.3BSD kernel with Mach 2.5, so it has it’s own.
MachTen also includes support for NFS! Â This greatly eases getting data in & out of the system. Â To mount my Synology I just need the following command:
mount -t nfs -o timeo=1,retry=1,rsize=512,wsize=512,retrans=1 192.168.1.3:/volume1/Data /mnt/data
And I’m good to go!