CD-based MINIX



Table of Contents

  1. Background
  2. Goals
  3. Download
  4. Summary of the CD-ROM Contents
  5. Booting the Kernel from Floppy and Loading the Root Filesystem from CD-ROM - Detailed Explanation
  6. Booting MINIX Directly from CD-ROM - Detailed Explanation
  7. Known Issues
  8. Acknowledgements
  9. Links
  10. License
  11. Maintainers



Background

MINIX 2, from which this project is derived, is an operating system developed for educational purposes. For more information about MINIX and its authors, see the Links section.

Goals

The goal of this project is to develop a MINIX distribution that would comply with the following requirements:
  1. A student using the distribution in a classroom should be given the freedom to modify the internals of MINIX, whereas his or her workstation should be easily restorable to its initial state. In order to satisfy this requirement, this distribution loads the root filesystem into a RAM disk at start-up.
  2. The distribution should be easily portable to the personal computers belonging to the students. This implies that it should be unnecessary to install MINIX on the hard drive. In order to satisfy this requirement, this distribution loads the root filesystem entirely from CD-ROM. The boot process can be initiated either from floppy or directly from CD-ROM. (Initiating the boot process from CD-ROM, however, involves a problem, see Known Issues.)
  3. It should be possible to boot MINIX using a custom kernel with modifications made by a student. In order to satisfy this requirement, this distribution can be booted from a floppy disk with the custom kernel.

Download

The ISO image of the CD-based Distribution v. 0.8 of MINIX v. 2.0.3, compressed with gzip (28MB), is available from the following locations:

For basic information about this distribution, see the README.TXT file located in the root directory of the CD-ROM.


Summary of the CD-ROM Contents

  1. The original MINIX 2.0.3 interim release, located in the /MINIX directory.
  2. The source code patches developed in the course of this project. They are located in the /MINIX/ADDONS/BOOTCD directory, which also contains a README.TXT file that refers to the patches.
  3. General information about the distribution, located in the README.TXT file in the root directory of the CD-ROM.


Booting the Kernel from Floppy and Loading the Root Filesystem from CD-ROM - Detailed Explanation

  1. The BIOS loads the bootmonitor from the floppy disk. The bootmonitor uses BIOS commands to access the floppy disk and loads the kernel.
  2. The kernel uses the ATAPI driver to access the root filesystem's image, which is stored on the CD-ROM in accordance to the El Torito Bootable CD Specification. Next, the kernel copies the image into the RAM disk. The size of the image is 1.44MB but its file system is specifically tailored to have the maximum capacity of 32MB so that the additional space can be used in the RAM disk.
  3. The /etc/rc script reads the original MINIX archives from the CD-ROM using the isoread tool and decompresses them on the fly into the RAM disk.
  4. The /etc/rc script patches the MINIX sources with the patches developed in the course of this project.
  5. All IDE device nodes in the /dev directory, except the one pointing to the CD-ROM device, are removed, in order to minimize the risk of accidental damage to hard drives when the students experiment with shell commands or the kernel. If the device nodes are needed, they can be recreated at run-time with MAKEDEV (see the MAKEDEV.8 manual page for usage information).
It is then possible to make changes to the kernel's source code, compile the kernel and store it on a floppy disk with 'make fdboot' and boot the floppy. The boot parameters on the floppy disk are automatically set to have the filesystem loaded from CD-ROM.


Booting MINIX Directly from CD-ROM - Detailed Explanation

  1. The BIOS recognizes the CD-ROM as bootable and conforming to the El Torito Bootable CD Specification. The BIOS emulates a virtual A: drive pointing to the 1.44MB filesystem image stored on the CD.
  2. The BIOS loads the bootmonitor from the emulated drive. The bootmonitor uses BIOS commands to access the filesystem on the emulated drive and loads the kernel.
  3. Same as in the previous section, beginning at point 2.


Known Issues


Acknowledgements

The developers of MINIX for creating an operating system excellent for educational purposes.
All the contributors who have sent countless add-ons to MINIX.


Links


License

The MINIX operating system is Copyright © 1987, 1997 by Prentice Hall and released under a BSD-like license.
The CD-based MINIX distribution has been assembled in the course of the CD-based Environment for Teaching Operating Systems Project.
The source code patches developed for CD-based Environment for Teaching Operating Systems Project are Copyright © 2003 by Aleksander Korzynski and released under the BSD license.
The webpages and documentation written for the CD-based Environment for Teaching Operating Systems Project are Copyright © 2003, 2006 by the CD-based Environment for Teaching Operating Systems Project. See license terms.


Maintainers

Warsaw University of Technology in Warsaw, Poland
Aleksander Korzynski
Primary Maintainer
dr Tomasz J. Kruk
Project idea
Project's Homepage: http://studia.elka.pw.edu.pl/prog/minix/
E-mail: minix AT elka.pw.edu.pl



This website © 2006 The CD-based Environment for Teaching Operating Systems Project. See license terms.
Maintainer: Aleksander Korzynski
Last modified: October 6th, 2006