By: Tzvetan Mikov (tmikov.delete@this.gmail.com), May 8, 2006 7:21 pm
Room: Moderated Discussions
Bill Todd () on 5/8/06 wrote:
---------------------------
>Understanding NT's characterization as micro-kernel-related probably requires knowing
>something about how it evolved. In the beginning, it had (at least) three distinct
>personalities: Windows, POSIX, and OS/2 (IIRC). Each personality (and much of
>the graphics system as well) was implemented as a user-space service which applications
>needing it accessed via message passing (IRPs are kernel constructs which have nothing
>to do with the message-passing facilities being referred to).
>
>Graphics support got inhaled into the kernel proper after performance became an
>issue. POSIX and OS/2 support withered and the Windows 'personality' became little
>more than a set of user-mode library stub interfaces rather than a separate protected user-mode server.
>
>Even in the beginning NT's kernel contained considerably more than a classic micro
>kernel, but it at least had *some* resemblance to one.
>
Although you are factually correct, I disagree with your interpretation. The resemblance you are refering to is not in important aspects of the design - it is like saying that a car resembles a train because they both have windows.
In my understanding, the personalities (Win32,OS/2,POSIX) are mostly user-mode libraries mapping the calls to the kernel API possibly with the support of some daemons to maintain state. Conceptually they are not different from Wine (or even glibc), including the message passing which you are referring to (LPC).
Same for running the GDI in user mode - how is it different from running a X server ?
Both of these are related to implementing user mode APIs and seem orthogonal to the whole microkernel issue. Why would they imply a microkernel-like design in one case and not in the other ?
Networking, storage, filesystems, usb, audio and everything else is in the same kernel address space, sharing data structures, etc, and has always been since the very inception of NT. That's how it was designed and AFAIK there was never any intent to implement any of that in user mode.
(This is not terribly relevant, but until a couple of years ago all Microsoft provided drivers were built as part of the kernel build instead of using the DDK).
I guess we could call it a hybrid if it was designed to support user-mode drivers, at least optionally, e.g. for USB, filesystems, and it offered at least some guarantees that a crash in such a user-mode driver would not bring down the system, but it isn't.
---------------------------
>Understanding NT's characterization as micro-kernel-related probably requires knowing
>something about how it evolved. In the beginning, it had (at least) three distinct
>personalities: Windows, POSIX, and OS/2 (IIRC). Each personality (and much of
>the graphics system as well) was implemented as a user-space service which applications
>needing it accessed via message passing (IRPs are kernel constructs which have nothing
>to do with the message-passing facilities being referred to).
>
>Graphics support got inhaled into the kernel proper after performance became an
>issue. POSIX and OS/2 support withered and the Windows 'personality' became little
>more than a set of user-mode library stub interfaces rather than a separate protected user-mode server.
>
>Even in the beginning NT's kernel contained considerably more than a classic micro
>kernel, but it at least had *some* resemblance to one.
>
Although you are factually correct, I disagree with your interpretation. The resemblance you are refering to is not in important aspects of the design - it is like saying that a car resembles a train because they both have windows.
In my understanding, the personalities (Win32,OS/2,POSIX) are mostly user-mode libraries mapping the calls to the kernel API possibly with the support of some daemons to maintain state. Conceptually they are not different from Wine (or even glibc), including the message passing which you are referring to (LPC).
Same for running the GDI in user mode - how is it different from running a X server ?
Both of these are related to implementing user mode APIs and seem orthogonal to the whole microkernel issue. Why would they imply a microkernel-like design in one case and not in the other ?
Networking, storage, filesystems, usb, audio and everything else is in the same kernel address space, sharing data structures, etc, and has always been since the very inception of NT. That's how it was designed and AFAIK there was never any intent to implement any of that in user mode.
(This is not terribly relevant, but until a couple of years ago all Microsoft provided drivers were built as part of the kernel build instead of using the DDK).
I guess we could call it a hybrid if it was designed to support user-mode drivers, at least optionally, e.g. for USB, filesystems, and it offered at least some guarantees that a crash in such a user-mode driver would not bring down the system, but it isn't.
Topic | Posted By | Date |
---|---|---|
Hybrid (micro)kernels | Tzvetan Mikov | 2006/05/08 04:41 PM |
Hybrid (micro)kernels | S. Rao | 2006/05/08 06:14 PM |
Hybrid (micro)kernels | Bill Todd | 2006/05/08 06:16 PM |
Hybrid (micro)kernels | Tzvetan Mikov | 2006/05/08 07:21 PM |
Hybrid (micro)kernels | nick | 2006/05/08 07:50 PM |
Hybrid (micro)kernels | Bill Todd | 2006/05/09 01:26 AM |
There aren't enough words... | Rob Thorpe | 2006/05/09 02:39 AM |
There aren't enough words... | Tzvetan Mikov | 2006/05/09 03:10 PM |
There aren't enough words... | Rob Thorpe | 2006/05/15 12:25 AM |
Hybrid (micro)kernels | Tzvetan Mikov | 2006/05/09 11:17 AM |
Hybrid (micro)kernels | Bill Todd | 2006/05/09 04:05 PM |
Hybrid (micro)kernels | rwessel | 2006/05/08 11:23 PM |
Hybrid kernel, not NT | Richard Urich | 2006/05/09 06:03 AM |
Hybrid kernel, not NT | _Arthur | 2006/05/09 07:06 AM |
Hybrid kernel, not NT | Rob Thorpe | 2006/05/09 07:40 AM |
Hybrid kernel, not NT | _Arthur | 2006/05/09 08:30 AM |
Hybrid kernel, not NT | Rob Thorpe | 2006/05/09 09:07 AM |
Hybrid kernel, not NT | _Arthur | 2006/05/09 09:36 AM |
Linux vs MacOSX peformance, debunked | _Arthur | 2006/05/18 07:30 AM |
Linux vs MacOSX peformance, debunked | Rob Thorpe | 2006/05/18 08:19 AM |
Linux vs MacOSX peformance, debunked | Anonymous | 2006/05/18 12:31 PM |
Hybrid kernel, not NT | Linus Torvalds | 2006/05/09 08:16 AM |
Hybrid kernel, not NT | Andi Kleen | 2006/05/09 02:32 PM |
Hybrid kernel, not NT | myself | 2006/05/09 03:24 PM |
Hybrid kernel, not NT | myself | 2006/05/09 03:41 PM |
Hybrid kernel, not NT | Brendan | 2006/05/09 05:26 PM |
Hybrid kernel, not NT | Linus Torvalds | 2006/05/09 08:06 PM |
Hybrid kernel, not NT | Brendan | 2006/05/13 01:35 AM |
Hybrid kernel, not NT | nick | 2006/05/13 04:40 AM |
Hybrid kernel, not NT | Brendan | 2006/05/13 09:48 AM |
Hybrid kernel, not NT | nick | 2006/05/13 07:41 PM |
Hybrid kernel, not NT | Brendan | 2006/05/13 09:51 PM |
Hybrid kernel, not NT | nick | 2006/05/14 05:57 PM |
Hybrid kernel, not NT | Brendan | 2006/05/14 10:40 PM |
Hybrid kernel, not NT | nick | 2006/05/14 11:46 PM |
Hybrid kernel, not NT | Brendan | 2006/05/15 04:00 AM |
Hybrid kernel, not NT | rwessel | 2006/05/15 07:21 AM |
Hybrid kernel, not NT | Brendan | 2006/05/15 08:55 AM |
Hybrid kernel, not NT | Linus Torvalds | 2006/05/15 09:49 AM |
Hybrid kernel, not NT | nick | 2006/05/15 04:41 PM |
Hybrid kernel, not NT | tony roth | 2008/01/31 02:20 PM |
Hybrid kernel, not NT | nick | 2006/05/15 06:33 PM |
Hybrid kernel, not NT | Brendan | 2006/05/16 01:39 AM |
Hybrid kernel, not NT | nick | 2006/05/16 02:53 AM |
Hybrid kernel, not NT | Brendan | 2006/05/16 05:37 AM |
Hybrid kernel, not NT | Anonymous | 2008/05/01 10:31 PM |
Following the structure of the tree | Michael S | 2008/05/02 04:19 AM |
Following the structure of the tree | Dean Kent | 2008/05/02 05:31 AM |
Following the structure of the tree | Michael S | 2008/05/02 06:02 AM |
Following the structure of the tree | David W. Hess | 2008/05/02 06:48 AM |
Following the structure of the tree | Dean Kent | 2008/05/02 09:14 AM |
Following the structure of the tree | David W. Hess | 2008/05/02 10:05 AM |
LOL! | Dean Kent | 2008/05/02 10:33 AM |
Following the structure of the tree | anonymous | 2008/05/02 03:04 PM |
Following the structure of the tree | Dean Kent | 2008/05/02 07:52 PM |
Following the structure of the tree | Foo_ | 2008/05/03 02:01 AM |
Following the structure of the tree | David W. Hess | 2008/05/03 06:54 AM |
Following the structure of the tree | Dean Kent | 2008/05/03 10:06 AM |
Following the structure of the tree | Foo_ | 2008/05/04 01:06 AM |
Following the structure of the tree | Michael S | 2008/05/04 01:22 AM |
Hybrid kernel, not NT | Linus Torvalds | 2006/05/09 05:19 PM |
Microkernel Vs Monolithic Kernel | Kernel_Protector | 2006/05/09 09:41 PM |
Microkernel Vs Monolithic Kernel | David Kanter | 2006/05/09 10:30 PM |
Sigh, Stand back, its slashdotting time. (NT) | Anonymous | 2006/05/09 10:44 PM |
Microkernel Vs Monolithic Kernel | blah | 2006/05/12 08:58 PM |
Microkernel Vs Monolithic Kernel | Rob Thorpe | 2006/05/15 01:41 AM |
Hybrid kernel, not NT | AnalGuy | 2006/05/16 03:10 AM |
Theory versus practice | David Kanter | 2006/05/16 12:55 PM |
Distributed algorithms | Rob Thorpe | 2006/05/17 12:53 AM |
Theory versus practice | Howard Chu | 2006/05/17 02:54 AM |
Theory versus practice | JS | 2006/05/17 04:29 AM |
Play online poker, blackjack !!! | Gamezonex | 2007/08/16 01:49 PM |
Hybrid kernel, not NT (NT) | atle rene mossik | 2020/12/12 09:31 AM |
Hybrid (micro)kernels | philt | 2006/05/14 09:15 PM |
Hybrid (micro)kernels | Linus Torvalds | 2006/05/15 08:20 AM |
Hybrid (micro)kernels | Linus Torvalds | 2006/05/15 11:56 AM |
Hybrid (micro)kernels | Rob Thorpe | 2006/05/16 01:22 AM |
Hybrid (micro)kernels | rwessel | 2006/05/16 11:23 AM |
Hybrid (micro)kernels | Rob Thorpe | 2006/05/17 12:43 AM |
Hybrid (micro)kernels | rwessel | 2006/05/17 01:33 AM |
Hybrid (micro)kernels | Rob Thorpe | 2006/05/19 07:51 AM |
Hybrid (micro)kernels | rwessel | 2006/05/19 12:27 PM |
Hybrid (micro)kernels | techIperson | 2006/05/15 01:25 PM |
Hybrid (micro)kernels | mas | 2006/05/15 05:17 PM |
Hybrid (micro)kernels | Linus Torvalds | 2006/05/15 05:39 PM |
Hybrid (micro)kernels | Colonel Kernel | 2006/05/15 09:17 PM |
Hybrid (micro)kernels | Wink Saville | 2006/05/15 10:31 PM |
Hybrid (micro)kernels | Linus Torvalds | 2006/05/16 10:08 AM |
Hybrid (micro)kernels | Wink Saville | 2006/05/16 09:55 PM |
Hybrid (micro)kernels | rwessel | 2006/05/16 11:31 AM |
Hybrid (micro)kernels | Linus Torvalds | 2006/05/16 12:00 PM |
Hybrid (micro)kernels | Brendan | 2006/05/16 01:36 AM |
Hybrid (micro)kernels | Paul Elliott | 2006/09/03 08:44 AM |
Hybrid (micro)kernels | Rob Thorpe | 2006/09/04 09:25 AM |
Hybrid (micro)kernels | philt | 2006/05/16 12:55 AM |
Hybrid (micro)kernels | pgerassi | 2007/08/16 07:41 PM |
Another questionable entry on Wikipedia? | Chung Leong | 2006/05/18 10:33 AM |
Hybrid (micro)kernels | israel | 2006/05/20 04:25 AM |
Hybrid (micro)kernels | Rob Thorpe | 2006/05/22 08:35 AM |