|WikiProject Computing||(Rated C-class, Low-importance)|
- 1 Proponents vs Oponents
- 2 Hybrid definition
- 3 Neutrality
- 4 Broadening article
- 5 Erroneous (and unsourced) claim
- 6 Various quotes are out of place in an encyclopaedia article
- 7 Diagram improvement
- 8 Definitely not NPOV
- 9 Proponents versus Opponents section removed
- 10 Plan 9 kernel is not hybrid
- 11 Definition of terms.
- 12 Linux as hybrid kernel
Proponents vs Oponents
I do not understand the structure of this section. While the Oponents-part lists two notable examples (Linus and Sonny) the Proponents section lists Microsoft - only to continue that Microsoft calls them "microkernel" etc. So how does this make Microsoft a "proponent" in the controversy stated in the intro paragraph under the Controversy-header?!
"That leads to the controversy - does having a microkernel-like structure in a monolithic kernel make such a distinct difference that another category of kernels is needed?"
To me it looks like Microsoft is not a proponent of the "hybrid kernel"-category. They should be removed from the Proponent section.
What Was Wrong
I don't want to edit the page yet, but I have some strong disagreement with what is says. There is nothing "microkernelish" in NT's kernel design. Please, people, do not confuse loadable drivers and standard ABI with a microkernel. This is absurd, not to mention clearly wrong and misleading. All NT subsystems are implemented in kernel space (filesystems, networking, even GDI), they most definitely do not communicate using LPC. The paragraph about "not confusing a "Hybrid kernel" with monolithic kernels that can load modules" doesn't make any sense at all. Message passing is a feature of a "microkernel" only if it facilitates separation of address space and protection, which is NOT the case with NT kernel IRPs and has nothing to do with user level LPCs, which are simply an ordinary method of user-level interprocess communication.
<snip> - already in article.
(A Slashdot article from the 10.05.06 led me to this quote, unfortunately the source site is down at the moment, there is lot's of interesting info there concerning this.)
The article is fundamentally wrong. See the detailed discussion on RWT for more. I have attempted to fix some of the more egregious errors. easilyforgotten
- Windows NT use the microkernel. At least Microsoft shows Windows NT5 in such manner and has shown on earlier NT versions. That is just pure fact that NT is microkernel structured operating system and marketed as hybrid kernel because of it's small binary level changes. Unless you can call Microsoft does not know their own operating system..? —Preceding unsigned comment added by 18.104.22.168 (talk) 08:39, 27 April 2009 (UTC)
The reasoning behind my changes to the definition of hybrid kernel comes from two distinct sources:
1. "monolithic-microkernel hybrid" where a hybrid between monolithic and microkernel, i.e. an architecture lying somewhere in the spectrum between 100% kernel space (monolithic), to least possible kernel space (microkernel). The motivation for such a kernel would no doubt be to attain some of the speed of monolithic kernels together with some of the desirable attributes of microkernels.
2. "NT kernel marketing term" hybrid "microkernel"/"macrokernel"/"modified microkernel" are used to describe the NT kernel (see ref 1 in article), where, in fact the NT kernel is 100% kernel space with user space OS APIs, so is predominantly monolithic. This can therefore be seen as a marketing term in order for the NT kernel to be perceived as having some benefits of the microkernel architecture over a monolithic kernel. In fact, NT 4.0 and on even has the GDI (GDI+) in kernel space for performance reasons, so is even more monolithic than kernels normally described as monolithic.
I agree with the Catstail comments above. I have rewritten the article today, correcting the definition, and putting both for and against arguments.
The image is also misleading, depending on whether the white boxes indicate user space, as how I interpret it.
I would say that the article needs more input in terms examples of non-NT kernels, in order to find a common or better definition of the term, with examples. Also, I think it is important to include the evolution and motivation behind these hybrid kernels which is probably central to their existence.
--Widefox 18:04, 23 July 2006 (UTC)
corrected Microsoft wording, and put tentative conclusion on controversy. --Widefox 15:25, 26 July 2006 (UTC)
The conclusion section needs to be removed or re-written. How can an article that is written from a neutral POV draw a conclusion as to which name is correct? This an encyclopedia, not an essay on the pros and cons whether MS use a hybrid kernel or not. 22.214.171.124 23:46, 20 August 2006 (UTC)
- Totally agree. Removed conclusion. That is only relevant for the NT kernel example, so moved there and rewritten. hybrid kernel is a controversial classification. This is not clear-cut topic, especially as modern general use kernels (NT, Linux, Solaris, BSD) are converging somewhat. More input on this discussion welcome. Widefox 15:00, 21 August 2006 (UTC)
- Probably a section on why the other OSes have been classified as hybrids will help. Otherwise, I totally agree that this is just another Microsoft-sucks-but-Linux-rocks article. RasterBlaster 05:10, 10 September 2006 (UTC)
- New section on the Plan 9 kernel added. This is a technical article about computer internals, kindly keep talk of OS wars out of here. Also, lack of non-mainstream kernel examples isn't a POV issue, but more an article broadening one...Widefox 12:13, 12 September 2006 (UTC)
More details on other kernels needed to broaden perspective.Widefox 12:13, 12 September 2006 (UTC)
Erroneous (and unsourced) claim
The following unsourced claim is incorrect:
"It is also worth noting that the OS/2 and POSIX APIs are built upon the Win32 API, and not the Native API."
Two examples point to this claim being incorrect. Firstly, the Unix subsystem on Windows is case-sensitive for file operations, whereas the Windows subsystem is case-insensitive (but does preserve case), and it's impossible to build a case-sensitive API on top of a case-insensitive one. Secondly, the Unix subsystem supports forking of processes, whereas the Windows subsystem does not, and cannot (efficiently) do so, since it provides no interface to the relevant kernel features (ie the Unix subsystem has interfaces to the memory-manager features used to implement forking, whereas the Windows subsystem does not).
The above examples are just off the top of my head, but I found a slideshow created by Windows kernel architect Dave Probert, which contains the following quotes:
"NT is not a microkernel, but does support user-mode OS personalities (i.e. for posix, OS/2, Win32)"
"Win32 and other subsystems built on native NT APIs"
If there are no objections, I'll correct the article at some point (unless someone else wishes to first). Shalineth 13:26, 23 February 2007 (UTC)
I've corrected the above error, and added greater detail to the explanation of why NT is a hybrid kernel. The article is still extremely poor by any academic standard, with dubious citations from non-scientific sources and irrelevant rants, and thus still needs a lot of work. I may work on it further when I have time. Shalineth 00:04, 2 March 2007 (UTC)
Various quotes are out of place in an encyclopaedia article
The quotes (or, less generously, rants) in the "Opponents" section are, in my view, out of place in an encylopaedia article. Moreover, the quote from Tzvetan Mikov isn't even accurate (and the notion that a forum post by a random individual should be considered authoritative strikes me as rather bizarre). Windows does support user-mode drivers in some cases, eg for USB devices, via the User-Mode Driver Framework: http://www.microsoft.com/whdc/driver/wdf/UMDF_FAQ.mspx
Linus Torvalds' quote strikes me as rather ill-informed as well. If you look at the actual design principles of Mach (eg http://www.wiley.com/college/silberschatz6e/0471417432/pdf/mach.pdf), the archetypal microkernel system, many of them were clearly adopted by the designers of the NT system (see "Inside Windows NT", by Helen Custer (1992), for a discussion of the design goals of NT).
The official position of Microsoft, at least in the days of NT 4.0, is explained here: http://www.microsoft.com/technet/archive/ntwrkstn/evaluate/featfunc/kernelwp.mspx?mfr=true
Obviously the use of user-mode servers is much more limited in Windows than in Mach, which is why Windows isn't a microkernel system. Nevertheless, the defining characteristic of a hybrid kernel is the separation of the kernel from the operating system servers (user-mode subsystems in Windows terminology) which provide system services to applications. To claim this is just "marketing" shows a gross level of ignorance regarding the design of such systems (see the link in the previous paragraph, and Custer (1992) for further details). That isn't to say hybrid kernels are better or worse, or make any sort of value judgement on the design, but there is clearly a technical difference from traditional kernels, and one that was quite obviously inspired by Mach.
I haven't time to correct this article at the moment, but in my view, wasting space with dubious rants about the validity of the term "hybrid kernel", rather than actually discussing the technical characteristics of such kernels, reflects poorly on Wikipedia. The microkernel design of Mach had a very clear influence on subsequent designs like NT, and whether they're called "hybrid", "macrokernels" or what have you is fairly immaterial. The reality is they are different from pre-microkernel designs, and many of the differences found in their designs are a direct result of the microkernel research carried out at CMU. Shalineth 13:25, 23 February 2007 (UTC)
Definitely not NPOV
This article needs some serious work. I'm tagging it as non-NPOV. It needs to be rewritten. Also, I think there is a lot of misinformation on both sides of this "hybrid kernel" thing. Since I'm somewhat biased on these topics, I'll avoid editing it directly.
Also, the POSIX layer isn't new (NOT from 2007). It has actually been around since NT 4.0 (personal experience), and probably even since NT 3.1 or NT 3.5. NT had a POSIX system from the start, if I recall correctly; if I'm not mistaken, it was to satisfy a government contract.
Retagged .... somewhere along the line it got removed. The main article itself is fine, but the Proponents versus Opponents section was not NPOV at all. I tried to clean it up a bit but IMHO the section should be removed entirely. Billyoneal (talk) 04:28, 29 June 2009 (UTC)
Proponents versus Opponents section removed
Plan 9 kernel is not hybrid
I do not want to edit the main page without any consensus, but the Plan 9 kernel is not hybrid. It is 100% monolithic. Plan 9 file servers are based on a network protocol, 9P. 9P is a network file protocol based on a set of RPCs that map file manipulation system calls (such as open, read, write, close, and so on). Any 9P-based external server can be accessed from the kernel using the mount driver (#M) . Therefore, any external device can be accessed by the the kernel, including user-level processes talking 9P and remote servers. Most user level services are designed as synthetic file systems. Nevertheless, common OS services are within the kernel. The only exception is the (disk) file system, which is outside by global design: Plan 9 terminals are supposed to be diskless and data files are served by file-servers. IMHO, this fact does not make Plan 9 a (hybrid) microkernel.
Plan 9 authors:
Microkernel is the way to go: False unless your only goal is to get papers published. Plan 9's kernel is a fraction of the size of any microkernel we know and offers more functionality and comparable or often better performance
See Plan 9: A Distributed System by Dave Presotto, Rob Pike, Ken Thompson and Howard Trickey CiteSeerX: 10
- 9P isn't a network protocol so much as it's a protocol that just *happens* to be able to go over the wire. But that chances are equally good -- better, in fact -- that the underlying transport is a plain pipe. 9P2000.s is the only variant I've seen that has anything IP-specific in it. — Preceding unsigned comment added by 126.96.36.199 (talk) 18:06, 10 January 2014 (UTC)
Definition of terms.
The phrase 'operating system personality'/'OS personality' is used several times in the description section without any references to what it means. I have been unable to find any reference to its meaning. Can someone/anyone provide a link or explanation?
Linux as hybrid kernel
Please update the article to include the classification of Linux as a hybrid kernel.
The Linux kernel has:
- modular design with most of the kernel divided into distinct modules
- threads and the same IPC mechanisms as other OS kernels
- user space USB drivers - libusb
- user space scanner drivers - sane
- user space printer drivers - cups
- user space 3D GPU drivers - mesa
- user space device management - udev, systemd
- user space file systems - fuse
- user space networking - LibOS
The fact that drivers for 3D graphics, printers, scanners, device enumeration, USB, and other essential system services etc. run in user space means that, under the definition of a hybrid kernel used in this article, Linux is a hybrid kernel. 188.8.131.52 (talk) 16:52, 25 March 2015 (UTC)