“Tim Roberts” wrote in message news:xxxxx@ntdev…
>
> Having drivers run in ring 1 would be a very sensible architecture. The
> only thing in ring 0 would be some small and trusted kernel core, with
> drivers in a somewhat protected world around it. There’s some small
> additional performance cost for calling across rings, but there are ways
> to handle that.
>
Tim,
Having done OS work on a ring architecture (DG Eclipse/MV) I can tell
you the “small additional performance cost” can be quite large. DG had
assumed the same thing, an it was a fiasco, in the end the OS lived in
Ring0 with all the drivers, services lived in Ring1 and app’s in Ring3.
Because even though at the time, the ring call overhead was low, by the
time you put a driver in a different ring, performance stunk. Perhaps with
today overabundance of CPU cycles you could do it, but we still have things
like graphics drivers trying to squeeze every ounce of performance
possible.
–
Don Burn (MVP, Windows DDK)
Windows 2k/XP/2k3 Filesystem and Driver Consulting
Website: http://www.windrvr.com
Blog: http://msmvps.com/blogs/WinDrvr
Remove StopSpam to reply