On Tue, Apr 17, 2012 at 8:45 AM, David Jeske <[email protected]> wrote:
> On Mon, Apr 16, 2012 at 10:56 AM, Jonathan S. Shapiro <[email protected]>
> wrote:
>>
>> Count either instructions or unit numbers. I'm not sure about IOS devices,
>> but every other mobile device is running a capability microkernel under
>> those OS's. Most of those qualify as "end user systems".
>
>
> There is no reason to debate facts, and this is quite a large tangent from
> where we started, but I'm curious about what facts lead to our differing
> view of this situation.
>
> My definition of Microkernel is "hardware drivers live in
> hardware-protected-spaces and communicate via IPC", such as pure Mach 3.0,
> (some parts of) NT 3.51, QNX, QNX Neutrino, and more recently
> hardware-enforced applications of L4.
>
> AFAIK...
>
> ...NT 4.0+ and Nextstep/openstep/macOS-darwin admitted defeat to drivers
> outside ring0 and pulled them into the macrokernel for performance.

NT4 ONLY pulled the Video driver in,  windows device drivers can still
run in ring 3 or ring 0 today and that was partly because NT4 had to
compete with Windows 3.1 and  Windows 95 DOS games which had little
OS overhead and managed the SVGA video card and banks them self via
the DOS int 10 and 16 calls.    Most of these OS were based on Mach3
, the L4 techniques , papers  and analysis to remove the performance
penalties were published after they were designed however the Mach3 /
GNU Herd  stench stayed.   eg the 20 fold improvement in L4 over Mach3
http://os.ibds.kit.edu/65_1059.php ...

Kind of makes me wonder about the original designers -we are going to
do a lot of IPC so lets make it an inefficient API ( ok call it secure
and extensible)  , well they got the results ....  The monolithic call
traps had been optimized for decades ( and even accelerated in the HW)
.

Very few drivers even benefit from ring 0 performance these days ,
CPUs and memory are just so fast  and  micro kernels can use big
buffers of shared memory data to stop large amounts of copying .
Futexes  have probably solved one of the biggest issues , the main
ones now  are the key services such as the  scheduler and memory
manager.  Some Micro Kernels still put the scheduler in the kernel.

Ben

_______________________________________________
bitc-dev mailing list
[email protected]
http://www.coyotos.org/mailman/listinfo/bitc-dev

Reply via email to