l4-hurd
[Top][All Lists]
Advanced

[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.

Attachment: task-server-0.0.tar.gz
Description: Binary data

Happy hacking,
/Niels

reply via email to

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