Hello all,
this may be a stupid question, but...
It seems to me that address spaces and activities (to avoid the words "task" and "thread") are othogal concepts. What is the reason for L4 to not keep them seperate in it's API ? (i.e. there is task_new to create an activity _and_ an address space and there is lthread_ex_regs to create an activity in an already existing address space). It would seem a lot "cleaner" to me if there was one system call to create an address space (without any activity in it) and another one to create an activity, specifying as a parameter the address space in which it will execute. Is there a reason (perhaps security ?) why it wasn't done like that in L4 ?
Thanks for any insights.
Rob
---------------------------------------------------------------- Robert Kaiser email: rkaiser@sysgo.de SYSGO RTS GmbH Am Pfaffenstein 14 D-55270 Klein-Winternheim / Germany fax: (49) 6136 9948-10
[Robert Kaiser]
Hello all,
this may be a stupid question, but...
It seems to me that address spaces and activities (to avoid the words "task" and "thread") are othogal concepts. What is the reason for L4 to not keep them seperate in it's API ? (i.e. there is task_new to create an activity _and_ an address space and there is lthread_ex_regs to create an activity in an already existing address space). It would seem a lot "cleaner" to me if there was one system call to create an address space (without any activity in it) and another one to create an activity, specifying as a parameter the address space in which it will execute. Is there a reason (perhaps security ?) why it wasn't done like that in L4 ?
Thanks for any insights.
You're right. The concepts are orthogonal and the upcoming version of the L4 API (v4) does indeed seperate these concepts at the API level. Why Jochen specified the v2 API exactly as it currently stands I do not know (maybe someone else can shed some light on that). My guess is that it was convenient to integrate "remote thread activation" into the already existing task_new syscall---remember that lthread_ex_regs only works on local threads and can as such not be used to start the initial thread in another address space.
eSk
l4-hackers@os.inf.tu-dresden.de