No subject
Mon Jul 23 17:50:42 EST 2007
intercepting these corresponding Linux syscalls and translating into
calls on K42 memory objects seems pretty straightforward.
But I'm wondering what a native K42 process would offer to users that
is different than the traditional unix syscall interface? Are we
allowed protected procedure call operations on the same kernel memory
objects that the kernel uses internally?
One thing I have specifically noticed along these lines in the K42
code is the PageAllocatorUser object that is available in the user's
process space. But I confess some confusion here as to the purpose of
this.
If I want more heap space in Linux for example, I just call brk() to
reset the length of my brk region, and then new pages in the region
are allocated one at a time as needed (whenever a page fault happens).
So really, all allocations/deallocations from a user standpoint are
just operations on the length of certain virtual regions, and not
really requests to, say, "give me X number of pages at this address".
Which is what the PageAllocatorUser object seems to be doing.
Another curiosity: in Linux, when you exceed the boundary of your
stack virtual region, a page fault occurs and the kernel checks for
this being the case of the stack (a GROWS_DOWNWARD flag in the region,
I believe) and simply grows the region downward. It all happens
automatically from a user standpoint and there is no need to
specifically request stack growth. I haven't yet figured out what the
analogue would be for a pure K42 process...
Thanks,
Brandon Hall
Dept. of Computer Sciences
University of Texas at Austin
--
Your palindrome for today: Drat Saddam, a mad dastard.
More information about the K42-discussion
mailing list