[Top][All Lists]

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

Re: Writing device drivers for L4 (was Re: Hurd/Mach on L4)

From: Michael Hohmuth
Subject: Re: Writing device drivers for L4 (was Re: Hurd/Mach on L4)
Date: 14 Oct 2001 18:20:36 +0200
User-agent: Gnus/5.0807 (Gnus v5.8.7) XEmacs/21.1 (Channel Islands)

Farid Hajji <address@hidden> writes:

> > Currently, some of my colleagues are working on a framework that
> > allows you to (more or less) drop a Linux driver in a preconfigured
> > source tree and get a working driver that runs on the x86 L4 kernels
> > (L4/x86, Fiasco, L4KA).  This framework, which will work with the
> > L4Env environment we're developing, is not quite ready yet, but it
> > might be worth the wait.
> Will the drivers run in userland on top of a vanilla L4 kernel?

Yes, they will.

> I'm wondering wether it would be possible to use (RPC?) the driver
> tasks directly from OS personalities like L4Linux, (L4BSD if someone
> wants to repeat the Lites experience on L4 ;-)) or the Hurd, possibly
> even simultaneously?

Yes.  We have been working on stub drivers for L4Linux that use
external user-level drivers concurrently with (non-Linux) tasks.  I'm
not sure right now which stub drivers we currently provide, but I
believe we already support console drivers and block-device drivers.

> > As an alternative, consider using the OSKit.  We have developed a
> > compatibility library that allows you to run applications using the
> > OSKit (including the OSKit's device drivers) on top of L4.  This work
> > is a bit unpolished and the drivers are slow, but it's quite easy to
> Good point. However, wouldn't it be necessary to link the driver
> libs to the Kernel? This is exactly what we want to avoid in the
> OSKit-Mach case sometime in the future (*Sigh*).

No, the drivers run completely on user level.  

The OSKit has well-defined interfaces for low-level OS services such
as IRQ allocation and delivery.  Reimplementing these interfaces for a
target system such as L4 (in particular parts of liboskit_dev and
liboskit_kern) makes it possible to port OSKit drivers to the target
system.  OSKit drivers do not care whether they run on user level or
in kernel mode if all services they expect from liboskit_dev and
liboskit_kern are available.

address@hidden, address@hidden

reply via email to

[Prev in Thread] Current Thread [Next in Thread]