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
