Skip to content
Snippets Groups Projects
README 2.54 KiB
Newer Older
Thomas Schwinge's avatar
Thomas Schwinge committed
This is GNU Mach, the GNU distribution of the Mach microkernel,
<http://www.gnu.org/software/hurd/microkernel/mach/gnumach.html>.  Welcome.
Thomas Bushnell's avatar
Thomas Bushnell committed

Thomas Schwinge's avatar
Thomas Schwinge committed
GNU Mach is the microkernel upon which a GNU Hurd system is based.  It
provides an Inter Process Communication (IPC) mechanism that the Hurd
uses to define interfaces for implementing in a distributed multi-server
fashion the services a traditional operating system kernel provides.

GNU Mach runs on 32-bit x86 machines.  A version running on 64-bit x86
(x86_64) machines is in progress.  Volunteers interested in ports to
other architectures are sought; please contact us (see below) if you'd
like to help.
Thomas Bushnell's avatar
Thomas Bushnell committed

libmach, bootloaders, default pagers, and the like are not part of
Thomas Schwinge's avatar
Thomas Schwinge committed
this distribution.  For libraries, we refer you to the GNU C Library,
Thomas Bushnell's avatar
Thomas Bushnell committed
which has Mach support.  For bootloaders, we refer you to GRUB.  (This
kernel can be loaded by any bootloader that uses the multiboot
standard.)  For default pagers, we refer you to your particular system
that you will run on top of Mach.
Thomas Bushnell's avatar
Thomas Bushnell committed

Thomas Schwinge's avatar
Thomas Schwinge committed
The Mach Interface Generator (MIG) is no longer part of this distribution, and
instead is packaged separately: GNU MIG.
Thomas Bushnell's avatar
Thomas Bushnell committed

Generic installation instructions may be found in the file INSTALL.

Samuel Thibault's avatar
Samuel Thibault committed
By default, most drivers for network boards are included, as well as
drivers for IDE, SCSI and AHCI disks.
Thomas Bushnell's avatar
Thomas Bushnell committed

If you want the in-kernel debugger compiled in, specify --enable-kdb
to configure.  This is only useful if you actually anticipate
debugging the kernel, of course.  We don't turn it on by default
because it adds considerably to the unpageable memory footprint of the
kernel.

GNU Mach can be cross-built.  No specific options need to be given when
building on a 32-bit x86 ELF userland such as GNU/Linux.  Manually switch the
compiler to 32-bit mode when using a 64-bit x86 (x86_64) ELF toolchain:
Thomas Bushnell's avatar
Thomas Bushnell committed

    $ [...]/configure --host=i686-gnu CC='gcc -m32' LD='ld -melf_i386'
Samuel Thibault's avatar
Samuel Thibault committed

or point to a 32-bit ELF toolchain:

    $ [...]/configure --host=i686-gnu CC=i686-linux-gnu-gcc LD=i686-linux-gnu-ld

Also, GNU MIG needs to be a 32bit version to properly compile the interfaces,
you can specify for instance

    $ [...]/configure --host=i686-gnu CC=i686-linux-gnu-gcc LD=i686-linux-gnu-ld MIG=i686-linux-gnu-mig

Samuel Thibault's avatar
Samuel Thibault committed

Thomas Schwinge's avatar
Thomas Schwinge committed
Please read the FAQ at <http://www.gnu.org/software/hurd/faq.html>.
Bug reports should be sent to <bug-hurd@gnu.org> or filed on
<http://savannah.gnu.org/bugs/?group=hurd>.  Requests for assistance
should be sent to <help-hurd@gnu.org> or filed on
<http://savannah.gnu.org/support/?group=hurd>.  You can also find us on
the Freenode IRC network in the #hurd channel.