summaryrefslogtreecommitdiff
path: root/unsorted/OskitMach.mdwn
blob: c28f2d89bdb3bbb98ce6081c35ac41b6d1af61cb (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
57
58
59
60
61
62
63
64
[[toc ]]

* [[OskitMachStatusList]]: Status and TODO list (<a href="http://packages.debian.org/gnumach" target="_top">deb status</a>) </li>
* [[OskitMachPatches]]: Bleeding edge patches </li>
* [[OskitPatches]]: Useful patches for the OSKit </li>
* [[BuildingOskitMach]]: How to build your own GNUmach kernel </li>
* [[RemoteDebugOskitMach]]: How to use gdb to remote debug the GNUmach kernel </li>


## <a name="About"> About </a>

OSKit-Mach began as a branch of the GNUMach 1.2 kernel, but since the release of GNU Mach 1.3, OSKit-Mach has been merged as the new GNUMach 2.x mainline. The [[history]] 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 provided 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. However, OSKit isn't maintained anymore.

## <a name="Status"> Status </a>

The OSKit-Mach version of GNUmach is today (2005) more or less defunct.  Nobody
is working on it.  Few people ever got it running, and by now there are also
problems building with recent toolchains.  Instead, the Hurd developers now
concentrate on completely different microkernels (Coyotos being the current
favourite), as well as on improving the original GNU Mach 1.x codebase.  (See
also [[microkernel/mach/gnumach/projects]].)

The [[mailing_lists]], or the [[IRC]] is, like always, the best source of more
current information.

There also exist other efforts:

* [OSKit and OSKit-Mach PPC Port](http://es.gnu.org/~jemarch/ppc-oskit/) - Maintained by [Jos� Marchesi](mailto:jemarch AT gnu DOT org)

* [OSKit-Mach Alpha Port](http://savannah.gnu.org/projects/gnumach-alpha/). - This work has been integrated into the actual OSkit cvs tree at utah.

## <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                             \
              --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]].