By: Rob Thorpe (robert.thorpe.delete@this.antenova.com), May 15, 2006 12:25 am
Room: Moderated Discussions
Tzvetan Mikov (tmikov@gmail.com) on 5/9/06 wrote:
---------------------------
>Rob Thorpe () on 5/9/06 wrote:
>---------------------------
>>
>>The problem with this issue is that there aren't enough terms of description.
>>It is most realistic to speak about OS kernel by their complexity and their level
>>of coupling. Even speaking of "micro", "hybrid" and "monolithic" doesn't go far enough.
>>
>>Taking an OS to look like this:
>>
>>Hardware
>>|
>>Hardware interfaces (ie drivers) (layer D)
>>|
>>Allocation of hardware to software (layer K)
>>|
>>Interfaces to user software (layer I)
>>|
>>User software (layer S)
>>
>>In a classic microkernel hardware interfaces, drivers, layer D, live outside the
>>kernel. Only what I have labelled layer K truely lives in kernel. And then only
>>part of that, since layer K includes filesystems which live can live in userspace.
>>
>>This kind of perspective allows you to write down clearly how many systems work.
>(Using F to represent the filesystem)
>>
>>F.e.g.
>>
>>
>>I'm not too sure I've described the more obscure system accurately. My ranking
>>of OSX is probably controversial. But since the microkernel can't live without
>>the BSD service there is no real sense (speaking of reliability) in saying that the BSD parts live outside the kernel.
>>
>>Even this ignores loads of other things, SysV Unix for example had a monolithic
>>kernel like Linux. But it was only ~6000 lines long, Linux is nearly a thousand times longer.
>>
>>Anyway, it certainly isn't clear from the table above which deserve to be called hybrid.
>
>I'd say that Hurd looks like a hybrid from your diagram.
Yes, Hurd is hybrid from the filesystem end.
But does this weaken the definition of hybrid? Hurd has millions of lines of linux device drivers compiled directly into it's kernel.
This is what I mean about the definition being problematic.
You could also write a kernel the other way about, ie all of D in userspace, but F in kernel space. Is that also a hybrid?
>About the "I" (Interfaces to user software) - I don't think the distrinction is
>clearcut in any OS. It doesn't matter whether the kernel's "native" semantics map
>better to POSIX or Win32. If I run Java or Wine, the entire "I" is in user mode,
>isn't it ? If not, what exactly do you mean by "I" ?
By "I" I mean things the interface to user software. To Java or Wine apps all of "I" is in userspace. But from the point of view of the system the JVM and Wine are apps themselves, and as such they have a certain (sometimes small) level of untrustworthiness.
The difference between "I" in the kernel column and "I" in the user column is what it available to the user program. A linux program can directly syscall the kernel, although most calls pass through libc. A Windows NT program cannot, every user program access must be through a service.
This offers some small extra scope for protection.
>(I guess this may turn into a philosophical discussion, but so what ?)
Yes. There are a few systems that are very difficult to place in the above categories.
---------------------------
>Rob Thorpe () on 5/9/06 wrote:
>---------------------------
>>
>>The problem with this issue is that there aren't enough terms of description.
>>It is most realistic to speak about OS kernel by their complexity and their level
>>of coupling. Even speaking of "micro", "hybrid" and "monolithic" doesn't go far enough.
>>
>>Taking an OS to look like this:
>>
>>Hardware
>>|
>>Hardware interfaces (ie drivers) (layer D)
>>|
>>Allocation of hardware to software (layer K)
>>|
>>Interfaces to user software (layer I)
>>|
>>User software (layer S)
>>
>>In a classic microkernel hardware interfaces, drivers, layer D, live outside the
>>kernel. Only what I have labelled layer K truely lives in kernel. And then only
>>part of that, since layer K includes filesystems which live can live in userspace.
>>
>>This kind of perspective allows you to write down clearly how many systems work.
>(Using F to represent the filesystem)
>>
>>F.e.g.
>>
>>In kernel User
>>Linux D, K, F, some of I S, some of I
>>NT4< D, K, F S, I
>>NT4> D, K, F, some of I S, some of I
>>QNX K D, S, I, F
>>Hurd D, K, some of I S, F, some of I
>>OSX D, K, F, some of I S, some of I
>>
>>
>>I'm not too sure I've described the more obscure system accurately. My ranking
>>of OSX is probably controversial. But since the microkernel can't live without
>>the BSD service there is no real sense (speaking of reliability) in saying that the BSD parts live outside the kernel.
>>
>>Even this ignores loads of other things, SysV Unix for example had a monolithic
>>kernel like Linux. But it was only ~6000 lines long, Linux is nearly a thousand times longer.
>>
>>Anyway, it certainly isn't clear from the table above which deserve to be called hybrid.
>
>I'd say that Hurd looks like a hybrid from your diagram.
Yes, Hurd is hybrid from the filesystem end.
But does this weaken the definition of hybrid? Hurd has millions of lines of linux device drivers compiled directly into it's kernel.
This is what I mean about the definition being problematic.
You could also write a kernel the other way about, ie all of D in userspace, but F in kernel space. Is that also a hybrid?
>About the "I" (Interfaces to user software) - I don't think the distrinction is
>clearcut in any OS. It doesn't matter whether the kernel's "native" semantics map
>better to POSIX or Win32. If I run Java or Wine, the entire "I" is in user mode,
>isn't it ? If not, what exactly do you mean by "I" ?
By "I" I mean things the interface to user software. To Java or Wine apps all of "I" is in userspace. But from the point of view of the system the JVM and Wine are apps themselves, and as such they have a certain (sometimes small) level of untrustworthiness.
The difference between "I" in the kernel column and "I" in the user column is what it available to the user program. A linux program can directly syscall the kernel, although most calls pass through libc. A Windows NT program cannot, every user program access must be through a service.
This offers some small extra scope for protection.
>(I guess this may turn into a philosophical discussion, but so what ?)
Yes. There are a few systems that are very difficult to place in the above categories.
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 |