Exokernels: Multiplexing the Disk

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
Post Reply
Fear
Member
Member
Posts: 39
Joined: Wed May 24, 2006 11:00 pm

Exokernels: Multiplexing the Disk

Post 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?
quartsize
Posts: 8
Joined: Mon Sep 24, 2007 1:23 pm

Post 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.
User avatar
Pype.Clicker
Member
Member
Posts: 5964
Joined: Wed Oct 18, 2006 2:31 am
Location: In a galaxy, far, far away
Contact:

Post 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.
Avarok
Member
Member
Posts: 102
Joined: Thu Aug 30, 2007 9:09 pm

Post 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.
Post Reply