Talk:Hybrid kernel

From Wikipedia, the free encyclopedia

Contents

[edit] 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.

Cyberroach —Preceding comment was added at 05:55, 2 April 2008 (UTC)

[edit] Hybrid definition

[edit] 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.)

http://www.realworldtech.com/forums/index.cfm?action=detail&id=66630&threadid=66595&roomid=11

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

[edit] corrected

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)


[edit] Neutrality

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. 82.10.97.111 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)

[edit] Broadening article

More details on other kernels needed to broaden perspective.Widefox 12:13, 12 September 2006 (UTC)

[edit] 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[citation needed]."

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"

URL: http://research.microsoft.com/ur/asia/curriculum/download/BeijingPresentation.ppt

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)

[edit] 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)

[edit] Diagram improvement

See comments on related diagrams at Talk:Monolithic kernel and Talk:Microkernel. -- Beland 21:35, 21 March 2007 (UTC)

[edit] 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.