Directories: oskit/unix
Target: liboskit_unix.a
Documentation: Only the READMEs and source in this dir and in examples/unix.
Original Code Source: Flux Research Group, University of Utah
Description:  

This directory contains files providing the necessary support to debug
and run certain OS Kit components in user-mode on unix.  In
particular, we can run the networking stack on a separate interface,
and run the Linux file system code on a regular Unix file.  Timers are
also supported.

By default, programs are compiled and linked against the oskit
headers, and linked against the oskit C library (rather than the
system headers in /usr/include and system libraries in /usr/lib).
This allows more complete oskit kernels to be run in user mode.  This
requires an additional library that contains the syscall stubs,
renamed to avoid name collision.  

Support is provided for Linux with glibc and ELF, along with FreeBSD
2.x a.out and 3.x a.out or ELF.  A number of example programs that use
this code can be built in the examples/unix directory.

To run on Linux it's recommended that you use a 2.2.x kernel.  The
2.0.x kernels don't support sigaltstack or the SO_SNDLOWAT,
SO_RECVLOWAT, SO_SNDTIMEO or SO_RCVTIMEO socket options which are
needed for general oskit support.  If you do run on a 2.0.x kernel,
make sure you disable the STACKGUARD code in the pthreads library
(currently the only thing that uses sigaltstack) and make sure that
your oskit program can tolerate those socket options being undefined.

One difference that affects all Linux systems is that the above socket
options cannot be set, they can only be queried.  This may be a
problem since the oskit supports setting these options on sockets.
None of the example programs should rely on this behavior however.