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.)
Cheers,
Benno