Hello,
just a quick question: Kevin, you said you've already planned the use
of a different address space in the monitor; I was wondering how you
intend to perform the actual PDBR switch.
AFAIK there's only two ways to do it: either by placing the code that
performs the switch into a page mapped to the same linear address in
both spaces, or else using a task switch that reloads the PDBR.
The first method is ugly as we need to force a particular linear address
inside the Linux address space, but the second method is somewhat ugly
as well as we need to load the GDT *before* the task switch, so that
the TSS descriptor is available, but then after the task switch, the
linear base address of the GDT will have changed :-/
What do you think?
Bye,
Ulrich
--
Ulrich Weigand,
IMMD 1, Universitaet Erlangen-Nuernberg,
Martensstr. 3, D-91058 Erlangen, Phone: +49 9131 85-7688