By: rwessel (robertwessel.delete@this.yahoo.com), May 8, 2006 11:23 pm
Room: Moderated Discussions
Tzvetan Mikov (tmikov@gmail.com) on 5/8/06 wrote:
---------------------------
>After todays mention of microkernels on Slashdot, I came across this explanation of "hybrid kernels" in Wikipedia: http://en.wikipedia.org/wiki/Hybrid_kernel
>
>This is the first time I see something on Wikipedia, which I think is blatantly
>wrong. (You can see my comments in the "talk" page associated with the article).
>
>Anyway, the article describes NT's kernel as a "hybrid kernel" sharing architectural
>concepts or mechanisms with microkernel designs such as "message passing" and "migration
>of "non-essential" code into user space". This strikes me as rubbish for two reasons:
>- In NT messages (IRPs) are used for implementing asynchronous execution, which
>is essentially an implementation detail and has nothing to do with microkernels.
>As a matter of fact IRPs are so fragile, that in a sense they achieve an effect opposite to a microkernel.
>- All essential subsystems in NT are implemented in the kernel - filesystems, usb,
>networking, etc. Of course there are components in user space which are considered
>part of the OS (what isn't in Windows?), but such components are implented in user space in all OS-es.
>
>The article goes to say that a hybrid kernel like NT's is not to be confused with
>a with monolithic kernels that can load modules like Linux. Again, this seems like
>nonsense to me - the stable driver ABI (and the closed source) has facilitated creating
>of many drivers outside of the NT kernel tree, but this is not a conceptual difference.
>The precise technique of loading a driver/module into the kernel doesn't really
>matter, if the driver shares the same address space and can have access to kernel structures.
>
>To me the difference between a microkernel and NT (or Linux) is much greater than
>the differences between NT and Linux, for example.
>
>So, I am not brave enough to edit a page no Wikipedia, but what do you guys thinks
>? Am I confused, or is wikipedia wrong ? If it is the latter, should we consider
>edting it ? (BTW, I am staying away of subjects like which is better, etc - I just want to clarify the definitions)
It's a marketing thing, just like "x86's are really RISC under the hood". There's a kernel of truth (there are some characteristic mechanisms being used, like message passing, loadable components), but enough exceptions to make the comparison suspect, to say the very least. Remember that microkernels were hot at the time.
Note the Novell claimed microkernel(-like) status for NetWare 3 around that time too - and they ran *user* processes in kernel mode!
As far as I'm concerned the defining characteristic of a microkernel is a severe level of isolation between the many components (basic system services, device drivers, etc.) that live in the traditional kernel address space. Message passing happens to be a convenient way to implement that.
---------------------------
>After todays mention of microkernels on Slashdot, I came across this explanation of "hybrid kernels" in Wikipedia: http://en.wikipedia.org/wiki/Hybrid_kernel
>
>This is the first time I see something on Wikipedia, which I think is blatantly
>wrong. (You can see my comments in the "talk" page associated with the article).
>
>Anyway, the article describes NT's kernel as a "hybrid kernel" sharing architectural
>concepts or mechanisms with microkernel designs such as "message passing" and "migration
>of "non-essential" code into user space". This strikes me as rubbish for two reasons:
>- In NT messages (IRPs) are used for implementing asynchronous execution, which
>is essentially an implementation detail and has nothing to do with microkernels.
>As a matter of fact IRPs are so fragile, that in a sense they achieve an effect opposite to a microkernel.
>- All essential subsystems in NT are implemented in the kernel - filesystems, usb,
>networking, etc. Of course there are components in user space which are considered
>part of the OS (what isn't in Windows?), but such components are implented in user space in all OS-es.
>
>The article goes to say that a hybrid kernel like NT's is not to be confused with
>a with monolithic kernels that can load modules like Linux. Again, this seems like
>nonsense to me - the stable driver ABI (and the closed source) has facilitated creating
>of many drivers outside of the NT kernel tree, but this is not a conceptual difference.
>The precise technique of loading a driver/module into the kernel doesn't really
>matter, if the driver shares the same address space and can have access to kernel structures.
>
>To me the difference between a microkernel and NT (or Linux) is much greater than
>the differences between NT and Linux, for example.
>
>So, I am not brave enough to edit a page no Wikipedia, but what do you guys thinks
>? Am I confused, or is wikipedia wrong ? If it is the latter, should we consider
>edting it ? (BTW, I am staying away of subjects like which is better, etc - I just want to clarify the definitions)
It's a marketing thing, just like "x86's are really RISC under the hood". There's a kernel of truth (there are some characteristic mechanisms being used, like message passing, loadable components), but enough exceptions to make the comparison suspect, to say the very least. Remember that microkernels were hot at the time.
Note the Novell claimed microkernel(-like) status for NetWare 3 around that time too - and they ran *user* processes in kernel mode!
As far as I'm concerned the defining characteristic of a microkernel is a severe level of isolation between the many components (basic system services, device drivers, etc.) that live in the traditional kernel address space. Message passing happens to be a convenient way to implement that.
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 |