[Top][All Lists]

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

Re: Task startup

From: Johan Rydberg
Subject: Re: Task startup
Date: Wed, 21 Jan 2004 23:09:40 +0100

address@hidden (Niels Möller) wrote:

: The current wortel sends each module a thread start message with an
: initial instruction pointer and a zero stack pointer. 

This is the L4 protocol to start a thread.  You can also use the
exchange registers syscall (which is used in libpthread as of now.)

:   reference to creator task (task server thread id, local id) 
:   other capabilities        (thread id, local id)
:   arguments                 (argv/argc/argz)

As I have stated before, I would like to use the same startup protocol
for the initial tasks as for normal tasks when the system is up and

: I write this to (i) explain how it's got to work, and (ii) try to
: confirm that I haven't missed anything important. 

If you want to use the same startup protocol as for normal tasks,
you have to take things like fork() into account.  How should the
freshly created task know which pages it already has (as COW), in
what container they live?  All this information has to be passed
on the stack.  

:   1. Implement some embryonic form of the startup protocol in wortel,
:      physmem and task.
:   2. Write a hello world module, and get wortel to start it by talking
:      to the task server. The hello world module can be extended to
:      test features in task and physmem as they are developed.
:   3. Work on the capability library. As a side effect, we'll find out
:      if and how the task server protocols are broken.
:   4. Work on the physmem server, to get at least some embryonic form
:      of containers.

: Note that 1 and 2 are much simpler than 3 or 4, but I think they're
: also fairly important for progress.
: As a practical matter, I think it would help to create a small library
: and a corresponding include file for wortel and related early modules.
: It would contain definitions of the message labels and other magic
: constant, client stubs for talking to wortel, and module startup code.

Under the asumption that wortel/physmem/task will use an internal 
protocol to bootstrap themselves, yes.

Johan Rydberg, Free Software Developer, Sweden
http://rtmk.sf.net | http://www.nongnu.org/guss/

Playing A-Skills and Krafty Kuts - Tricka Technology

reply via email to

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