Go to the first, previous, next, last section, table of contents.
Before you can use the Mach microkernel in your system you'll need to install it and all components you want to use with it, e.g. the rest of the operating system. You also need a bootloader to load the kernel from the storage medium and run it when the computer is started.
GNU Mach is only available for Intel i386-compatible architectures (such as the Pentium) currently. If you have a different architecture and want to run the GNU Mach microkernel, you will need to port the kernel and all other software of the system to your machine's architecture. Porting is an involved process which requires considerable programming skills, and it is not recommended for the faint-of-heart. If you have the talent and desire to do a port, contact bug-hurd@gnu.org in order to coordinate the effort.
By far the easiest and best way to install GNU Mach and the operating system is to obtain a GNU binary distribution. The GNU operating system consists of GNU Mach, the Hurd, the C library and many applications. Without the GNU operating system, you will only have a microkernel, which is not very useful by itself, without the other programs.
Building the whole operating system takes a huge effort, and you are well advised to not do it yourself, but to get a binary distribution of the GNU operating system. The distribution also includes a binary of the GNU Mach microkernel.
Information on how to obtain the GNU system can be found in the Hurd info manual.
If you already have a running GNU system, and only want to recompile the kernel, for example to select a different set of included hardware drivers, you can easily do this. You need the GNU C compiler and MiG, the Mach interface generator, which both come in their own packages.
Building and installing the kernel is as easy as with any other GNU software package. The configure script is used to configure the source and set the compile time options. The compilation is done by running:
make
To install the kernel and its header files, just enter the command:
make install
This will install the kernel into $(prefix)/boot/gnumach and the header files into $(prefix)/include. You can also only install the kernel or the header files. For this, the two targets install-kernel and install-headers are provided.
The following options can be passed to the configure script as command line arguments and control what components are built into the kernel, or where it is installed.
The default for an option is to be disabled, unless otherwise noted.
--prefix prefix
--enable-kdb
--enable-kmsg
--enable-lpr
--enable-floppy
--enable-ide
The following options enable drivers for various SCSI controller. SCSI devices are named sd%d (disks) or cd%d (CD ROMs).
--enable-advansys
--enable-buslogic
--disable-flashpoint
--enable-u1434f
--enable-ultrastor
--enable-aha152x
--enable-aha2825
--enable-aha1542
--enable-aha1740
--enable-aic7xxx
--enable-futuredomain
--enable-in2000
--enable-ncr5380
--enable-ncr53c400
--enable-ncr53c406a
--enable-pas16
--enable-seagate
--enable-t128
--enable-t128f
--enable-t228
--enable-ncr53c7xx
--enable-eatadma
--enable-eatapio
--enable-wd7000
--enable-eata
--enable-am53c974
--enable-am79c974
--enable-dtc3280
--enable-dtc3180
--enable-ncr53c8xx
--enable-dc390w
--enable-dc390u
--enable-dc390f
--enable-dc390t
--enable-dc390
--enable-ppa
--enable-qlogicfas
--enable-qlogicisp
--enable-gdth
The following options enable drivers for various ethernet cards. NIC device names are usually eth%d, except for the pocket adaptors.
GNU Mach does only autodetect one ethernet card. To enable any further cards, the source code has to be edited.
--enable-ne2000
--enable-ne1000
--enable-3c503
--enable-el2
--enable-3c509
--enable-3c579
--enable-el3
--enable-wd80x3
--enable-3c501
--enable-el1
--enable-ul
--enable-ul32
--enable-hplanplus
--enable-hplan
--enable-3c59x
--enable-3c90x
--enable-vortex
--enable-seeq8005
--enable-hp100
--enable-hpj2577
--enable-hpj2573
--enable-hp27248b
--enable-hp2585
--enable-ac3200
--enable-e2100
--enable-at1700
--enable-eth16i
--enable-eth32
--enable-znet
--enable-znote
--enable-eexpress
--enable-eexpresspro
--enable-eexpresspro100
--enable-depca
--enable-de100
--enable-de101
--enable-de200
--enable-de201
--enable-de202
--enable-de210
--enable-de422
--enable-ewrk3
--enable-de203
--enable-de204
--enable-de205
--enable-de4x5
--enable-de425
--enable-de434
--enable-435
--enable-de450
--enable-500
--enable-apricot
--enable-wavelan
--enable-3c507
--enable-el16
--enable-3c505
--enable-elplus
--enable-de600
--enable-de620
--enable-skg16
--enable-ni52
--enable-ni65
--enable-atp
--enable-lance
--enable-at1500
--enable-ne2100
--enable-elcp
--enable-tulip
--enable-fmv18x
--enable-3c515
--enable-pcnet32
--enable-ne2kpci
--enable-yellowfin
--enable-rtl8139
--enable-rtl8129
--enable-epic
--enable-epic100
--enable-tlan
--enable-viarhine
Another way to install the kernel is to use an existing operating system in order to compile the kernel binary. This is called cross-compiling, because it is done between two different platforms. If the pre-built kernels are not working for you, and you can't ask someone to compile a custom kernel for your machine, this is your last chance to get a kernel that boots on your hardware.
Luckily, the kernel does have light dependencies. You don't even need a cross compiler if your build machine has a compiler and is the same architecture as the system you want to run GNU Mach on.
You need a cross-mig, though.
Go to the first, previous, next, last section, table of contents.