Hi there...
I'm wondering how the get_user/put_user macros work in UM linux... Does
the kernel share memory space with each of the "linux processes"? Here is
my understanding of how this works:
Each virtual linux process is actually a real linux cloned process that
runs under the host linux environment. When something interesting happens
(trap, fault, syscall, signal, etc...) the virtual linux kernel takes over
and fixes stuff.
Given this, it seems like UM Linux isn't using ptrace to actually do
memory reads and writes to the user process... so what could the memory
map of the mondo linux process look like? Are all linux processes sharing
a 3G process space of the UM-Linux kernel?
I'm trying to change this a bit to be more seperated and use ptrace to do
reads and writes... but it seems that the "get_user" macro (f.e.) is
allowed to read from either user or kernel space... and the address
determines what we are looking at. The problem, however, is that the "UM
User" processes and "UM Kernel" processes can have data mapped into the
same addresses... thus there seems to be no easy way to ge tthis to work?
-Chris
|