?toc
- OskitMachStatusList: Status and TODO list (deb status)
- OskitMachPatches: Bleeding edge patches
- OskitPatches: Useful patches for the OSKit
- BuildingOskitMach: How to build your own GNUmach kernel
- RemoteDebugOskitMach: How to use gdb to remote debug the GNUmach kernel
About
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 from the Flux Research Group. The OSKit provided a neat driver base where both ?FreeBSD and Linux (2.2.12) drivers are made available to Mach and thus the Hurd. However, OSKit isn't maintained anymore.
Status
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 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 - Maintained by [Jos� Marchesi](mailto:jemarch AT gnu DOT org)
OSKit-Mach Alpha Port. - This work has been integrated into the actual OSkit cvs tree at utah.
Building
First you need to get the latest OSKit release and, preferrably, the latest CVS version of GNUmach. Take a look at the following tutorial to get started. Or the locally kept version, BuildingOskitMach.
Starting
You start Oskit-Mach almost the same way as the old 1.x version of GNUmach. Using GRUB 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.
Bugs
We have bugs, just like any other software product. To get around the more nasty ones you can apply the unofficial patches found on
Debugging
See Igor Khavkine's, i_khavki@alcor.concordiaNOSPAM.ca, excellent help to remote debug oskit-mach over a serial line, or the local RemoteDebugOskitMach.