summaryrefslogtreecommitdiff
path: root/Mach/OskitMach.mdwn
blob: 24c467fe32154c54c409a22c572968bef45de17f (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
## <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:_**