[Prev][Next][Index][Thread]

Re: Oskit and Drivers




> 	We're making a mKernel-OS, so we have developed the 'protected
> mode' layer. So far we have dealt with Task-Switching, Interrupt's,
> Call-Gates, ... at this point we need some drivers, so we are thinking if
> it's possible to use the Oskit for this purpose or is better to make the
> drivers by ourselves.

Yes, that's exactly what the OSKit is designed for.  I know of at
least three such full-blown protected kernels using the OSKit for
drivers, and there are probably more:
    our "Fluke/Flask" kernel          http://www.cs.utah.edu/flux/fluke/
    TU-Dresden's "Fiasco" kernel      http://os.inf.tu-dresden.de/fiasco/
    and the exokernel (MIT, some CMU) http://www.pdos.lcs.mit.edu/exo/

> If this is possible, which modifications have to be made in the Oskit?

Hopefully, none!  But it's not entirely magic-- you have to write the
glue code layer to map your kernel execution environment into what the
OSKit drivers (and other components, such as networking) need.  Do
that once, and you get all the other components for free.

There is lots of documentation and a paper or two on our site.  The
core Fluke kernel code is all out there for ftp, but it doesn't yet
include the driver part (soon! soon!).  I don't believe the exo site
includes the new OSKit code, but mailing ganger@ece.cmu.edu would
probably get it.  All of Fiasco's code is there.  A forthcoming thesis
by Utah's Kevin Van Maren talks about how he did user-mode device
drivers on Fluke, which presented a particularly challenging execution
environment.  It shouldn't be hard at all for a "normal" kernel.


NEWS FLASH: available soon, OSKit components upgraded to Linux 2.2.12.
We have done all the drivers and filesystems, and they seem to work,
although we haven't tested things too much.  The pleasing and somewhat
surprising thing is how short a time it took, considering we were back
at 2.0.29.