[okl4-developer] Hello and first questions
Carl van Schaik
carl at ok-labs.com
Mon Mar 10 23:53:35 EST 2008
Hi Remy,
Welcome to the OKL4 community. Have you read the OKL4 Microkernel
programming manual? It should give you a background into the kernel and
its functionality. Unfortunately, there is not a lot of documentation on
the rest of the system available at the moment, so feel free to ask
questions as you go.
The kernel, being a microkernel, does not provide the same types of
services as a monolith kernel like Linux. It provides some basic
services like: Address spaces, threads. scheduling and IPC. On top of
the microkernel server applications can be written to provide more
traditional OS services like POSIX etc. Iguana is the main resource
control server in OKL4. It is NOT part of the microkernel, but is
considered part of the system. There may be other servers as well such
as timer servers, naming, filesystem etc.
The structure of the system:
pistachio directories contain OKL4 kernel code
pistachio/arch/xxx is architecture specific kernel code
iguana/server is the Iguana server
iguana/XXX are other servers/applications
libs/XXX are libraries. some are low level like libs/l4 and others may
provide higher level interfaces
I'll have to leave the details of the build system and how it generates
the images to someone else to explain, but basicly, the Scons build
system builds each individual application/server etc ELF binary. Then
the pyelf/elfweaver tool is used to combine these images, setup system
parameters and bootinfo and write out a final ELF image. The build
system generates an XML file description of the final system which
elfweaver reads. This allows elfweaver to operate standalone if required.
Magpie is the IDL compiler we use. It generates interfaces from
description files which applications can bind to. The most important use
is to generate the Iguana interface for applications and the Iguana
internal RPC handling code. The role of the IDL compiler is to generate
optimized TPC bindings and make applications less dependent on the
underlying communication channels.
Most of the magpie generated files are in the build/ directory and it
can take a bit of getting used to if trying to understand that code.
Remy Gottschalk wrote:
> Hello OKL4-dev,
>
> I am a french developer working for Linagora, i am working with OKL4 for
> about 1 week now. I achieved to compile it and run a simple system under
> qEmu. I am also done reading the available doc published on the wiki.
> I am now trying to understand how the whole thing work. Maybe i did not
> searched well but i have not found any documentation concerning the
> underlying mechanisms such as Interrupt handling, scheduling, resources
> maping...
>
> So first question (more will come :) ) : Did i miss some documentation's
> locations ?
>
> And also dealing with the documentation, i did not found how to create an
> account for the wiki. I plan to actively contribute to your project and i
> guess the first things i will be capable of is writing some of the missing
> documentation. So if you can tell me how to help i will be glad to do so.
>
Currently, I don't think the wiki is editable by anyone. Most community
activity is on the mailing list at the moment. We would like to improve
our developer site but things take time and we are pretty busy.
> Next, In my quest of understanding the project can you clarify a little
> the process involved in making the whole thing. For example i have
> understood that iguana_server_loop is the micro kernel's main loop (i
> know i'm leet ;) ). I have also understood that the final code for the
> function has been generated and that the process involve the use of idls
> and magpie but i don't get the whole process. So could you give me some
> hints concerning :
> - The structure of the project.
> - The process of generating the final binaries.
>
> Thanks in advance.
>
> My english is nowhere near perfect so if i need to clarify some question
> don't hesitate.
>
> And i almost forget, thank you for making such an exiting project open.
>
>
I hope this basic information can give you a slightly better
understanding of the system.
regards,
Carl
More information about the Developer
mailing list