Props to Andrew Tanenbaum, Al Woodhull, and Thom Holwerda. Andrew Tanenbaum for Minix, Al Woodhull for the Minix on Bochs on Windows How-to, and Thom Holwerda for introducing me to PearPC.
My interest in Minix has been rekindled in recent days by a combination of events. Thom Holwerda wrote an article on May 18, 2004 about running OSX Panther on a PC. I dusted off the Panther CDs and 5 hours later, Mac on a PC, will wonders never cease. Needless to say, I was raring to emulate every OS I could find, thus I needed Bochs. After about 10 hours of fairly painful downloading and tweaking, I got these OSes working in Bochs, to some extent:
I archived off the work and forgot about it for a few days. What threw me over the edge and got me to exploring Minix on Bochs was the article that OSNews linked to at CNET News, by Stephen Shankland - Is Torvalds really the father of Linux This article reported on the Alexis de Tocqueville Institution report, which suggested that more credit should be given to Minix. Intrigued, I followed a link to a response by Andrew Tanenbaum, Minix's creative father, and a few days later the followup.
Andrew Tanenbaum's concise history of Linux come Unix is quite interesting, if unconventional. I followed a series of links from there and wound up at Al Woodhull's helpful Minix site. Al Woodhull co-authored the Second Edition of Operating Systems: Design and Implementation and is quite an authority on all things Minix. Long story short, I learned in the space of a couple of days, that Minix was worthy of further study.
Minix is a Free, Open Source, Unix-like Operating System. Originally created by Andrew Tanenbaum to compensate for ATT's prohibition against teaching Unix internals and to provide him with a tool for teaching Operating System design and internals to his students. Minix predates Linux as the first free, unencumbered, Unix clone. The Minix source code was included in the book, Operating Systems: Design and Implementation, by Andrew Tanenbaum, a classic of modern technical literature, for free. Minix is Unix-like and therefore Linux-like, and yet, it differs considerably in it's architecture. The biggest difference being that Minix is a micro-kernel. The Minix system source code comprises a whopping, 4.5 megs uncompressed. The Linux kernel archive is 176 megs uncompressed. Another striking difference is comments - the Minix source is incredibly well documented and suitable for study.
I decided to compare a couple of comparably sized files from the Linux kernel archive and Minix source at random to get a feel for the comment levels of the two OSes and the results were astonishing:Linux: compat.c, 533 lines, 8 comments, 26 lines
Minix: keyboard.c 505 lines, 142 comments, (too many to bother counting).
To be sure, Joe Hacker could probably tell by the context, of every line of code in compat.c, what each line does and would likely claim that the comments were superfluous - that compat.c contains nothing but self documenting code, but for us normal, non superhuman types, comments are a necessity for understanding. I realize that my method of random selection is not very scientific. However, having browsed both sets of code, quite extensively, it is my opinion that this is a representative sample.
This tutorial assumes that you are familiar with Windows and Unix. You do not have to be a guru or even a power user, but a good understanding of the usage of both of these operating environments is required. Unix, in this context, refers to Linux, Minix, BSD, SCO, Solaris, etc. Windows, in this context, refers to the Windows NT branch of Windows - Windows NT 3.5, 4.0, Windows 2000 and Windows XP. Windows 95 and its descendants might suffice, but I would not be able to say, one way or the other.
If you are going to be playing around with OS emulation, you are going to need Cygwin, to keep your sanity. In order to complete this tutorial you will at least need the dd utility. All of the command-line commands in this tutorial will be Cygwin commands - translation to the XP command prompt equivalents are left as an exercise for the reader.
Here is what the cygwin command prompt looks like:
Cygwin can be downloaded from the Internet here.
The current version of Bochs is 2.1.1. Bochs is an IA-32 Emulator and it is Open Source. It is how we are able to run Minix in Windows XP. It can be downloaded here/.
The files that you will need from the Minix site are:
i386/ROOT - Installation root floppy image
i386/USR - Installation /usr floppy image
i386/USR.TAZ - Binary /usr files (386 executables)
SRC/SYS.TAZ - if you want man pages