Re:a virtual machine for IPCs ?
Posted: Mon Jan 09, 2006 3:52 am
thanks for your feedbacks, dudes. i'll read all this a bit later ... was indeed busy building snowman (well, sort of. without snow) this week-end.
The Place to Start for Operating System Developers
http://f.osdev.org/
Make your kernel to be nice and he will be nice. It's your kernel so code it to do what you need, for instance unmaping regions.OK, we were talking about quite the same thing then. Just make sure you have a really _nice_ kernel, so that it reacts when you politely ask it to unmap the region.....
Well, I would like to visit north Africa, and enjoy the Paris-Dakar RallyI just don't see a necessity for a kind of virtual machine at that low level. Maybe we could elaborate on this later on,but take into consideration that I'm about to go to south africa for about two weeks, and then back to university for studying --- let's see what's going, eh?
Precisely. that's somehow what DataStreams were supposed to solve: rather than saying "find me some virtual addresses area in client process for me to map ...", the server 'sends' the physical pages (via microkernel call) over the data stream and the client (still via microkernel call) maps those pages in the 'reading window' of its own end of the datastream.think this is exactly where the problem lies: The server shouldn't be responsible for the client's virtual memory layout, therefore it can't just find a free address and map the data there.
Hmm, seems i indeed overcomplicated the whole thing, indeed. I guess it makes sense to have kernel-level code invoked at client side that will create the 'system resource slot' first (that's the closest entity from a file descriptor in Clicker) and _then_ contact the remote server.QNX has a solution -- make file descriptors equivalent to IPC channels. When a client "opens a file descriptor", under the hood it is really establishing a connection with the file system server. Does this help...?
will have to take time to think back at this.Transfer the memory objects as 'references' (the ipc subsystem in the kernel needs to support this then), then the receiver reads these objects' properties (the size, for ex.), allocates buffers, and then tells the kernel to copy them into its own address space, with no need to notify the sender by sending another message. This was just an idea that I wanted to provide in my system. Don't know if it fits in your stream-based-ipc though...