summaryrefslogtreecommitdiff
path: root/README
blob: 108452a28bb0cec8a1597ce826ff5613a50b7353 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
This is GNU Mach, the GNU distribution of the Mach microkernel,
<http://www.gnu.org/software/hurd/microkernel/mach/gnumach.html>.  Welcome.

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.

libmach, bootloaders, default pagers, and the like are not part of
this distribution.  For libraries, we refer you to the GNU C Library,
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.

The Mach Interface Generator (MIG) is no longer part of this distribution, and
instead is packaged separately: GNU MIG.

Generic installation instructions may be found in the file INSTALL.

By default, most drivers for network boards are included, as well as
drivers for IDE, SCSI and AHCI disks.

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:

    $ [...]/configure --host=i686-gnu CC='gcc -m32' LD='ld -melf_i386'

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


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.