Page 1 of 1

Exokernels: Multiplexing the Disk

Posted: Tue Oct 30, 2007 6:04 pm
by Fear
This is just a thought, as I'm just working on a bootloader right now (been very busy).

When I was reading about exokernels, I was wondering how you could fully secure storage devices such as hard drives. Enforcing the idea of a file is a large abstraction and doesn't allow full access to the hardware. However, not enforcing this abstraction makes it difficult for applications and users to find their information. Also, without this abstraction how can you prevent applications from over-writing disk blocks that another application thinks they own.

Now, I'm not going to say any of this really makes sense. I'm by no means an expert, and for all I know I could just be spewing nonsense, but it seemed like a pretty valid idea: how do you properly multiplex storage devices?

Posted: Tue Oct 30, 2007 7:12 pm
by quartsize
It is a rather difficult problem. You can find one solution in Section 4 of Application Performance and Flexibility on Exokernel Systems. It describes a stable storage multiplexing system called XN, which was used in Xok. It also mentions some other ideas for how to do it, and why they weren't used for Xok.

Posted: Wed Oct 31, 2007 10:04 am
by Pype.Clicker
Clicker isn't an exokernel rather a sort of microkernel, but at some point i thought of doing some disk I.O multiplexing by letting the "filesystem server" resolve your filenames and check your access right and then give the microkernel a list of "sector stripes" that the process is granted to read/write the way it wants.

maybe it could be a starting point here too.

Posted: Wed Oct 31, 2007 5:59 pm
by Avarok
Yeah, capabilities on disk ought to be done by granting regions of sectors, preferably with the ability to get it all in one piece as that *is* highly relevant with disk I/O. In fact, I would argue that any program's disk regions should be strongly encouraged to be a single linear block.