Fw: Re: Question about the OS Group
benjl at cse.unsw.edu.au
Tue Sep 14 23:43:15 CEST 2004
On Tue Sep 14, 2004 at 08:44:30 -0700, R. Tyler Ballance wrote:
>Anyways, minor question regarding the L4-Linux (or Fiasco for that matter)
>First off, I have some decent Compaq Pentium 1 desktops back home I could
>easily commandeer for hacking on. (I'm in college, so home is a 5 hour trip away)
>Will it run fine? I know system builds will suck, but it should work fine right?
>Secondly, I understand fully how a microkernel works, i've seen the
>schematics, flow charts, etc, but I'm confused at how a driver, for
>example, would be coded. Is it something that one hacks into userland? (Is it
>portable across L4 Operating Systems? (L4Linux, Fiasco, etc)
Well, I wouldn't say "hacks" into user land, but they certainly do reside
at userlevel. In short device drivers need a few things:
1/ Access to device registers
2/ Able to receive interrupts
3/ Abillity to perform DMA
4/ A way of ocmmunicating with the rest of the system
1/ is provided by mapping reigsters into your virtual address space.
2/ is provided by sending IPC mesages to a thread
3/ depends on your system setup, but basically requires a memory server
that will provide memory pinning and v->p transalation
4/ is also highly system dependant, but you want access to network stack
or filesystem etc.
I've written at length about this in a thesis on device drivers in Mungi,
a L4 based OS. (There is link on http://www.benno.id.au).
As to portability, it depends. With the use of the right libraries and tools
there is no reason why your driver can't be portable. At unsw we currently
have drivers that are portable across arcitectures and run in L4, L4Linux,
Mungi and as device drivers in the Linux kernel, and Linux user-level.
(The code and docs fo this isn't released yet, but should be RSN. If you
want more info please contact me off-list.)
More information about the l4-hackers