[Top][All Lists]
[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
task-server hacking
From: |
Niels Möller |
Subject: |
task-server hacking |
Date: |
22 May 2003 11:28:25 +0200 |
User-agent: |
Gnus/5.09 (Gnus v5.9.0) Emacs/21.2 |
To try to get some feel for L4 programming, I started writing a
task-server. It's pretty low-level L4, as it uses Marcus gl4-0.0.5,
and no IDL-generated code. At the moment it implements two ipc calls,
task_create(pager, max_threads)
which creates a thread with the given pager, and a new address space
with max_threads utc-blocks.
task_master()
The first thread calling task_master() is considered privileged. It
should usually be a thread in proc. I'm not sure how bootstrapping
should work, but the thread calling thread_master should probably have
a task id allocated, and it's version field changed to reflect that
(otherwise, it can't be treated as a task).
I also need to sort out the thread id allocation some more, avoiding
version task id:s that are divisible by 64 (as they will be
interpreted as local id:s), and figuring out how Marcus' subsystem
bits apply to the task server.
As this is the first L4 code I've ever written, I really appreciate
comments on the code.
I haven't tested this at all, of course... How should the server be
started? It's no root server, but it is intended to run as a
privileged server, and naturally needs to use privileged L4 system
calls.
task-server-0.0.tar.gz
Description: Binary data
Happy hacking,
/Niels
- task-server hacking,
Niels Möller <=