Minix-ST

Contents

What is (or was) Minix-ST?

Minix-ST was the version of the Minix operating system for the Atari ST computers.

The Atari ST

The Atari ST was a Motorola M68000 based personal computer, introduced in 1985, quite affordable and for some reason especially popular in Germany, though it also was not unseen in certain circles here in the Netherlands.

The model that probably sold best was the Atari 1040 ST. It had an 8 MHz M68000 CPU and came with a full Mbyte of RAM, which was quite a lot in those days. And even better: you could actually address all that memory from your programs, in sharp contrast with the PC's of those days, where you had to live with 64 Kbyte segments. This and the fact that the M68000 CPU was so similar to what we used at work in our Unix boxes and workstations, made the Atari ST quite popular amongst technical and scientific users like me.

The Atari ST came with a graphical user interface called GEM, which was quite usable, although it was really a lot of work to write even moderately complex programs for it. What was really missing was a multi-tasking and tool-rich environment like Unix.

That environment became available with the introduction of Minix-ST in 1988, though we had to give up the GUI, since Minix completely replaced the native OS.

Minix

As you probably know, Minix was developed by Andy Tanenbaum for the IBM PC and compatibles and introduced in 1987. It was a Unix V7 look-alike intended for teaching OS classes and while certainly not free, it came with (almost) full source code and an accompanying text book was available that described the code in detail.

Minix-ST

The porting of Minix to the Atari ST was definitely not trivial. Since the ST only had a very primitive MMU, it offered no relocation and no protection. To counter the lack of relocation, especially noticeable when doing a fork(), a mechanism called shadowing was devised. It was not a very fast solution, but it worked well enough for many usage patterns. The lack of protection was something we just had to live with. The idea back then was that on a personal machine you could only hurt yourself. Of course, that was before networking became widespread on personal computers.

Minix-ST 1.1

The first version of Minix for the Atari ST as introduced in the fall of 1988 was 1.1 and as I remember it was equivalent to the Minix PC version 1.3. It was sold by Prentice-Hall and came on a set of diskettes accompanied by a booklet that explained the ST specific details.

Minix-ST 1.5

In 1990 an update, Minix 1.5, was released with versions for the PC (and compatibles) and the Atari ST, but also for the Commodore Amiga and the Apple MacIntosh. This release came with a binder containing a quite complete manual and 10 diskettes.

Minix 1.5 was the last release that was sold by Prentice Hall separately from the text book. It originally came with a quite restrictive license. Later versions of the text book contained a CD-ROM with the software and the license was changed to a BSD like license. The license was also changed retroactively for the older versions (see here for more details), so you may now download the install disks for the different versions of Minix 1.5 from several locations (e.g. here on the official Minix3 site.)

For the PC version the sources of the OS and the commands are also available as tar.gz files, without the need to decipher the installation images. As far as I know, the sources for Minix-ST 1.5 were never available in that form, but can now be downloaded here. This is the complete source code for the OS, libraries, commands and the Atari specific utilities, as distributed on the original diskettes.

Minix-ST 1.6.25

After the release of Minix 1.5, further development was done by distributing patches through Usenet, as far as I know only for the PC and the ST. In April 1993 Minix 1.6.25 appeared in this way, branded as an interim release, first only for the PC and in June also for the Atari ST and TT. The merging of the patches with the original sources appeared to be rather cumbersome. For the ST you first had to merge selected patches for the PC and only then those for the ST. And it also made a difference whether you only had the original K&R C compiler or already upgraded to the ANSI-C compiler that had become available as an add-on. I suspect that only a few people got Minix-ST 1.6.25 up and running completely and those that did probably used the ANSI-C compiler.

Use modern GCC as a cross-compiler for Minix-ST 1.6.25 ...

I finally attempted the upgrade years later, using far more advanced tools and I managed to get Minix 1.6.25 running on my old Atari 1040 ST, on a slightly adapted version of the STonC simulator and on a quite recently acquired (but very used) Atari TT. I am cross-compiling Minix on FreeBSD, using the GNU Compiler Collection (initially 2.7.2.3, later 4.6.x through 4.9.x and most recently 5.4.0, 6.3.0 and 7.1.0) for C, but also for C++ and Fortran. This required quite a few changes to the original Minix 1.6.25 source code and of course a port of the GNU toolchain (m68k-atari-minix.) I recently released the resulting toolkit (in source form) and it is available from my Cross Development page. The toolkit already works great for quite some time now!

... or use the original ACK based native ANSI-C compiler

As an alternative, you can download the original Minix-ST 1.6.25 source code distribution that I used as a baseline here. This is the result of the merge described above. A few crc's differ from the ones provided by the original author, but I think the discrepancies are not really relevant. Also, a lot of PC specific code is still present that can be removed. As an experiment I recently installed the native ACK ANSI-C compiler, a version of which can be downloaded here, and I was able to compile a Minix 1.6.25 OS image for my 1040 ST. The OS functions quite well, but is noticeably slower than when compiled with GCC.

Aftermath

After the release of 1.6.25 the development of Minix-ST (and with it Minix-68K in general) more or less came to an end. For the PC platform further releases (1.7.x) were no longer done as patches relative to 1.5, but as a complete tree, available through ftp. This culminated in Minix 2.0, the version that was also distributed on CD-ROM with the second edition of the textbook.

After it appeared, there occasionally were discussions on Usenet newsgroups about doing a port of Minix 2.0 to the Atari ST and the other M68K platforms, but not much came of it, although George Harvey managed to do an unofficial port of Minix 2.0.2 to a 68020 based workstation, including networking (see here, if unavailable see the archived copy.)

Only quite recently a discussion appeared at the Atari Forum, where a person nicknamed "tritonus" claimed to have Minix 2.0.2 and 2.0.4 running on the Atari ST, including networking. As a follow-up a complete disk image was posted here, including instructions how to use it with the Hatari 1.9 emulator. Since the Hatari 1.9 port did not even build on my FreeBSD system, I did not have the opportunity to try it and the source code is (sadly) not published separately. Nevertheless it looks quite interesting and I will certainly attempt to isolate the source code.

Other users?

I am very well aware that I am probably one of the very few leftover "users" of this platform. If there are still other users, I would be quite amused to hear about that, even if they use Minix on other M68K platforms (e.g. Amiga) or have aspirations to do so (I might even be able to help!). Also, if you have any questions, comments or other feedback concerning the software provided here, don't hesitate to contact me.

Contact

You can reach me (Hans Ottevanger) via email as hans@beastielabs.net.

Back to home

Copyright © 2012-2017 Hans Ottevanger. All rights reserved.