MINIX 3 is a free, open-source, operating system designed to be highly reliable, flexible, and secure. It is based on a tiny microkernel running in kernel mode with the rest of the operating system running as a number of isolated, protected, processes in user mode. It runs on x86 and ARM CPUs, is compatible with NetBSD, and runs thousands of NetBSD packages.
Before attempting to cross-compile MINIX, you need a working C toolchain, Git and some additional software on your host platform.
For Debian-based operating systems, run the following command as super-user:
Note: Also on Ubuntu, if you get an error stating that “'/lib/cpp' fails sanity check”, you need to install the GNU C++ compiler:
Note: On FreeBSD and Minix (compiling for ARM on x86, e.g.), if you get a message along the lines of “Skipping image creation: missing tool 'mcopy'”, please install the emulators/mtools package.
Getting the sources
Once the required tools are installed, the next step is to obtain the sources. Run the following commands in a terminal:
NOTE: The releasetools script will generate object files and put them outside the source directory; i.e., if you've cloned to ~/minix/src/ and build from there, things will start showing up in ~/minix/ as an artifact of the build process.
Cross-building for x86
It's time to build MINIX itself. There are some wrapper scripts that will build ready-to-boot images from scratch (i.e. just the minix source tree) for either x86 or ARM. These scripts produce a lot of output and will take a while to complete the first time - a cross-toolchain based on LLVM is built from scratch.
A command line for running the result in a KVM virtual machine is printed at the end of the process.
To install quemu run:
To boot this image on kvm using the bootloader: