I want to start by saying that I think what you are doing is really good, interesting and exciting. The existence of a managed OS is something I have been looking forward to and doing my own independant research on for some time.
I have noticed that you have an interrupt type class and in my undestanding, one could use this as the basis for a system driver model. But honestly, a driver/device stack would need to incorporated into the kernel by instantiating it at runtime, or
at least adding to it and being able to query that list from within the kernel. The implementation would then need to query storage type devices when attempting to open files by path from the perspective of the system.io namespace.
Another thing to keep in mind is that some devices are rooted on system buses which are individual irq's in their own right. So there would need to be some form of parenting for devices that existed on a particular bus.
I guess what I want to know is, what are your design goals in general and more specifically in this area?