I've been thinking about a chat I had with Alex Ionescu about the
"userspace driver framework" that MS has put in Windows Vista for a
couple of days now. Mostly I was trying to think of how they could
create a secure system where the drivers could live outside the
kernel and still manage to do the job of providing clean access to
the hardware.
I was doing this because I am just starting to take a look at the
ReactOS code with an eye towards helping on the project. That being
the case I decided to see if I could find a spot where I could fit my
skills into the project. While I'm more geared towards fixing bugs or
filling out places marked "TODO" the thought of userspace drivers -
or rather, just the thought that such a system would allow for
drivers that could die and not take the system with them - has caught
my interest.
At the current time the only way I can see this being done is by using
the HAL to abstract all hardware and providing an API that, via the
HAL, will allow for _AUTHENTICATED_ programs (aka drivers) to
register themselves with the kernel and provide access to said
devices. The access itself would best be handled by the drivers
registering an interface that programs can use to call directly into
the driver.
This just leaves me with a simple problem to solve - should the
interface be a COM/COM+ interface (or it's primitive, since I don't
think anyone wants the lag having COM/COM+ in the kernel would cause)
or should it be something simpler, like a UFS path ?
DRH
(if the PGP signature looks bad, the list probably modified the mail)