Ok, here is the thing... Here are 2 versions of linux libc tls and notls. (Current linux distries just ship with the tls version i think, but here may be exceptions) TLS is a libpthread thing that is heavily wired together with libc on linux. (just do an ldd on something like ls) TLS uses the two free segment registers %FS and %GS as a way for a thread to access its thread local storage area. (the parent allocates some memory and sets up an segment descriptor that points/translates to this memory (it makes set_thread_area() syscall todo this) to implement this syscall, i needed a way to change entries in the global descriptor table in the kernel. here is some experimental driver (/dev/tls) but i'm not sure if its correct. also it buys you not very mutch to have it yet, because the new pthread library also needs a futex implementation to be usefull. the old notls libc works without that syscall and doesnt need any modification to the plan9 kernel. but... i think in the near future TLS support is important and for that i need some kernel support to change segment descriptors on a process basis. If i understand vx correctly, it also needs a way to change segment descriptors and even needs to be able to change its %DS, %CS, %SS registers to it. cinap