From: Rogelio M. S. Jr. <ro...@ev...> - 2000-03-15 23:38:31
|
How do we protect blocks? By using a totally unpriviledged server which is more like a security monitor? exporting a low level interface with minimal abstractions? All it would do is manage capabilities to blocks. Nothing more. Then processes can do a pct to this server and carry out the request. This server would own all the io ports to the ide controller. But would this work for other kinds of hard disk? I could also think of programming the kernel. I would prefer this because it is more exo-ish than the first suggestion. This would require the kernel to compile handlers or device drivers given by a process requesting secure binding to the block device. This would allow the requesting process to access the block device controller the way it sees fit. The problem is security. I think one way we can do this, is for the kernel to examine the handler code and if it passes criteria, the io perm map of the requesting process could then be updated to allow access to block device controller and the handler code and relevant data mapped read-only in the process address space.This would all be a part of capability processing. This seems more complex because we have to use a compiler or interpreter and we have to design an interface for the driver code. I do not know how we can port existing drivers to this framework. How does the buffer cache mechanism on the MIT exokernel work? |