[okl4-developer] Questions about the current state of Wombat/Iguana

Abi Nourai anourai at ok-labs.com
Mon Jan 28 16:30:10 EST 2008


Hi there,

That's a good bunch of questions there.  Hope my answers are helpful.

On 28/01/2008, at 2:15 PM, Subcommander l0r3zz wrote:

> After reading  various papers on the OK Labs and NICTA sites, I have  
> some questions about the current state of Wombat....
>
>
> 1) Does a Wombat process run in a EAS? Or does it share address  
> space with Iguana in any way?

OK Linux (Wombat) user processes are all created in an external  
address space.  They don't share an address space with Iguana.  This  
is required to preserve compatibility with normal Linux  - most  
importantly to preserve fork() semantics (which would be challenging  
in the iguana address space - being SAS)


>
> 2) Obviously busybox  is a Wombat process, if I execute something  
> like :
>
>        vi foo &
>
>    does this fork a new Wombat process (PD)  with a separate AS or a  
> thread in the same AS?

so the shell will execute fork() which will lead to the OK Linux  
syscall thread making a call to iguana server to create a new thread  
in a new, separate & external address space.

>
> 3) If I load another program into the root image, like say, emacs,   
> but not link it into the busybox glob, will this execute in the same  
> AS as the busybox process that spawned it or is it a separate L4  
> (Wombat) process (PD) ?

Also separate.

>
> 4) Is there network support for ethernet devices other than pcnet32?

Good question.  Really what's lacking is support for DMA in OK Linux -  
something that has a very prominent place on our product roadmap and  
in fact is actively being worked on.

>
> 5) I've heard that there isn't support for DMA devices in Wombat, it  
> that is true, how does the hd driver work?

The HD driver works but without DMA - so it's very slow :)

>
> 6) Can Wombat  userland programs execute L4/Iguana calls?  
> specifically, can I send IPC to a service that is not in my AS?


Because OK Linux user processes run in a separate, external address  
space from the Iguana SAS, their interaction with Iguana server is  
very limited (there's probably some things they can do that don't  
require being part of the SAS but certainly not most).

Note that OK Linux user processes can technically invoke OKL4 kernel  
system calls directly.  However this might break assumptions that OK  
Linux (i.e. the para-virtualized Linux kernel) is making and lead to  
havoc.

Feel free to discuss a specific use case if you have one in mind -  
we'll recommend the best model/architecture for getting what you  
want.  One model that we've used in the past is:

OK Linux user process (eg. busybox) <---------> OK Linux kernel  
(Wombat) <-------> External service

The advantage of this is that the OK Linux kernel (Wombat) can  
abstract a communication channel to the external service in a manner  
where the endpoint at the OK Linux user process end looks just like a  
pipe/fifo/socket/standard linux construct.  Then the OK Linux user  
process doesn't really need to be made aware of anything OKL4  
specific, which is good.  And because OK Linux (Wombat) is an iguana  
app, he can interact with other Iguana apps (i.e. processes running on  
top of Iguana).

>
> 7) I'm told that I can write a Wombat driver that can communicate  
> with an L4/Iguana service, this implies that the code in arch/l4 can  
> execute L4 IPC, no?

Sure ... Wombat is an Iguana app and is able to interact freely with  
other Iguana (OKL4) apps.

>
> 8) Is there DMA and/or network support in Iguana?

In iguana server ?  Not at all ... that stuff would be built on top of  
iguana using our driver framework.

>
> 9) Is there support for multi cores in Iguana?

OK, intermission.   By Iguana do you mean Iguana server ?  Or do you  
mean the Iguana environment?  If you mean the latter, let's call it  
the OKL4 environment (or even OKL4 OS).

Iguana server itself is single threaded.  The publicly-available OKL4  
microkernel running underneath (most likely) only supports a single  
processor ... however multi-processing capabilities are one of the  
most important things to OK and we certainly hope to release versions  
of OKL4 for x86 that take advantage of multiple hwthreads, cores,  
processors at some point.


>
> 10) Does any of this run on 64 bit architectures  (ia64 ) ?

Older versions of L4 used to support Itanium (ia64).  Internally, the  
OK team has had much success in porting OKL4 to x86-64, and we hope to  
make that available in accordance with our product roadmap.  You can  
expect the x86-64 kernel to be able to run 32-bit and 64-bit L4  
threads side by side (which eg. means you can run 32-bit and 64-bit  
guest operating systems side by side).


Regards
Abi



More information about the Developer mailing list