I was working on allowing applications to use segmentation in Pistachio as well. The modifications enabled apps to install segment descriptors in a per address space LDT (after sanity checking by the kernel of course). Modifying the GDT is not supported.
Is GDT modifying support planned in the future?
By setting a thread in a special mode the kernel will never modify the ES, FS, and GS of the thread. For optimization reasons the kernel still retains the right to modify DS and SS though, so in effect these can not be freely used by the app. Also, the kernel only allows data segments to be installed --- no code or other segment types.
It's been a while since I worked on this and got sidetracked by other stuff, so I didn't completely finish the implementation yet.
eSk
Is this documented somewhere? (It seems that it is not documented in L4 version X.2 API manual.) Maybe, it is in some source code documentation (Doxygen generated or alike)?
Thank you very much for your answer.
WBR, Valery
l4-hackers@os.inf.tu-dresden.de