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
|
## <a name="Table_of_Contents"> Table of Contents </a>
%TOC%
## <a name="About"> About </a>
OSKit-Mach began as a branch of the [[Mach/GnuMach]] 1.2 kernel, but since the release of GNU Mach 1.3, OSKit-Mach has been merged as the new [[Mach/GnuMach]] 2.x mainline. The [[Mach/MachHistory]] page tells a more interesting story including other operating systems who use Mach in their kernels.
GNU Mach 2.0 makes use of the drivers provided by [the OSKit](http://www.cs.utah.edu/flux/oskit/) from [the Flux Research Group](http://www.cs.utah.edu/flux/). The OSKit provides a neat driver base where both [[TWiki/FreeBSD]] and Linux (2.2.12) drivers are made available to [Mach](http://www-2.cs.cmu.edu/afs/cs/project/mach/public/www/mach.html) and thus the Hurd.
## <a name="Status"> Status </a>
The [[OskitMachStatusList]] tells what is required before GNUmach 2.0 (a.k.a. OSKit-Mach) goes mainstream. Status of the new console/term is on that page. The [[Main/MailLists]], or the [[Main/HurdIRC]] is, like always, the best source of more current information.
There also exist other efforts
* [OSKit-Mach Alpha Port](http://savannah.gnu.org/projects/gnumach-alpha/).
* [OSKit-Mach PowerPC port](http://huizen.dds.nl/~pjbruin/hurd/)
## <a name="Building"> Building </a>
First you need to get the latest OSKit release and, preferrably, the latest CVS version of GNUmach. Take a look at the following [tutorial](http://www.etherhogz.org/doc/oskit-mach.html) to get started. Or the locally kept version, [[BuildingOskitMach]].
## <a name="Starting"> Starting </a>
You start Oskit-Mach almost the same way as the old 1.x version of GNUmach. Using [[Hurd/GrubNotes]] an entry can look like this:
title GNUmach 1.90 (CVS)
root (hd0,1)
kernel /boot/oskit-mach.gz root=device:hd0s2 --
module /hurd/ext2fs.static --readonly \
--multiboot-command-line=${kernel-command-line} \
--host-priv-port=${host-port} \
--device-master-port=${device-port} \
--exec-server-task=${exec-task} \
-T typed ${root} $(task-create) $(task-resume)
module /lib/ld.so.1 /hurd/exec $(exec-task=task-create)
_Remember_ to ensure that there are no trailing spaces after the backslashes on the lines above if you copy-paste this into your menu.list file.
## <a name="Bugs"> Bugs </a>
We have bugs, just like any other software product. To get around the more nasty ones you can apply the unofficial patches found on
* [[OskitMachPatches]]
## <a name="Debugging"> Debugging </a>
See Igor Khavkine's, [i\_khavki@alcor.concordiaNOSPAM.ca](mailto:i_khavki@alcor.concordiaNOSPAM.ca), excellent help to [remote debug oskit-mach over a serial line](http://www.etherhogz.org/doc/oskit-boot.txt), or the local [[RemoteDebugOskitMach]].
You can also, to some extent, run a [Neighbor Hurd](http://www.gnu.org/software/hurd/howto/subhurd.html) (sub-hurd) to debug or replicate problems.
----
**_Comments:_**
|