Menu:

Thursday, September 18, 2003

The Joy of Minix

In the words of the author, Andrew Tanenbaum,

“MINIX is a free UNIX clone that is available with all the source code. Due to its small size, microkernel-based design, and ample documentation, it is well suited to people who want to run a UNIX-like system on their personal computer and learn about how such systems work inside. It is quite feasible for a person unfamiliar with operating system internals to understand nearly the entire system with a few months of use and study.”

To phrase it differently, Minix will fit into a single student’s head. This article is a look back on my Minix experience.

Contemporary Unix systems included 4.3 BSD, System V Revision 4, and SunOS 4. While all of these are relatively lean distributions by modern standards, Minix was intentionally designed as a functional clone of the even more austere Unix Version 7 - by many considered to be the best Unix version ever. Due to licensing encumberment, Unix source code itself wasn’t readily available for classroom study. Even if it had been, the code base wasn’t designed as a teaching tool. For all of these reasons, Minix was designed from scratch as an easily accessible Unix clone for educational use. It is rather ironic that the original source code license was restrictive enough to have a certain Linus Torvalds reject Minix and prompt the development of a completely free Unix clone. The rest is history…

Minix was developed for the PC (XT!) and was soon ported to the Atari ST and Apple MacIntosh. It was thus available for the Intel 8086 and Motorola 68000 architectures. The last released versions of Minix support 32-bit protected mode on the i386 architecture, something that couldn’t be done on the ST (and the earlier Macs) owing to the lack of a memory management unit.

I used to be very active in the development of Minix for the ST. For its time, the ST was a very powerful computer at an extremely competitive price. I remember spending countless hours adding as many SunOS features to Minix as I could. While I only have a vague recollection what I specifically did while mucking in the kernel, I distinctly remember a profound displeasure with process management and signal handling.

At the time, I managed to salvage a number of 68010-based systems from a lab, about four Universe computers built by Charles River Data Systems. These systems sported a segmented MMU, which would have made it possible to implement a rough equivalent of Intel’s protected mode on a Motorola system. Sadly, I never found the time to actually finish this project. I have recently noticed the ARAnyM emulator, which supports emulation of the Motorola 68040 CPU including the internal MMU, which would make it possible to revisit this project on a much more convenient development platform.

However, the best bet to experiment with Minix these days is to run it within bochs, a PC emulator. Minix 2.0.3 appears to run just fine in full 32-bit protected mode; the only grain of salt is that the emulation of the NE2000 network card appears to be non-functional due to timing issues.

Addenum: Since writing this article, it has come to my attention that the much more modern and capable Minix 3 is available as an open-source product.

Posted by markus in • Retrocomputing
(0) CommentsPermalink

Next entry: 4.3BSD-Quasijarus on simh/Vax

Previous entry: Porting swup to Redhat 7.3

Comments


Add a comment

Name:

Email:

Location:

URL:

Smileys

Remember my personal information

Notify me of follow-up comments?

Submit the word you see below: