decoration decoration
Stories

GROKLAW
When you want to know more...
decoration
For layout only
Home
Archives
Site Map
Search
About Groklaw
Awards
Legal Research
Timelines
ApplevSamsung
ApplevSamsung p.2
ArchiveExplorer
Autozone
Bilski
Cases
Cast: Lawyers
Comes v. MS
Contracts/Documents
Courts
DRM
Gordon v MS
GPL
Grokdoc
HTML How To
IPI v RH
IV v. Google
Legal Docs
Lodsys
MS Litigations
MSvB&N
News Picks
Novell v. MS
Novell-MS Deal
ODF/OOXML
OOXML Appeals
OraclevGoogle
Patents
ProjectMonterey
Psystar
Quote Database
Red Hat v SCO
Salus Book
SCEA v Hotz
SCO Appeals
SCO Bankruptcy
SCO Financials
SCO Overview
SCO v IBM
SCO v Novell
SCO:Soup2Nuts
SCOsource
Sean Daly
Software Patents
Switch to Linux
Transcripts
Unix Books

Gear

Groklaw Gear

Click here to send an email to the editor of this weblog.


You won't find me on Facebook


Donate

Donate Paypal


No Legal Advice

The information on Groklaw is not intended to constitute legal advice. While Mark is a lawyer and he has asked other lawyers and law students to contribute articles, all of these articles are offered to help educate, not to provide specific legal advice. They are not your lawyers.

Here's Groklaw's comments policy.


What's New

STORIES
No new stories

COMMENTS last 48 hrs
No new comments


Sponsors

Hosting:
hosted by ibiblio

On servers donated to ibiblio by AMD.

Webmaster
Monolithic, Micro, or Hybrid Kernel - and still call it Windows (throwing chair to make a point) | 221 comments | Create New Account
Comments belong to whoever posts them. Please notify us of inappropriate comments.
I have a two syllable word for you
Authored by: Anonymous on Thursday, September 06 2012 @ 09:53 PM EDT
Looooooonghorn

[ Reply to This | Parent | # ]

True to form
Authored by: Anonymous on Thursday, September 06 2012 @ 10:27 PM EDT
It's the usual MO at Microsoft.

01 Whisper loudly of all the features they aim to include in New Windows
02 Leave most of these features at the roadside as the coders get down to
business and schedules start slipping
03 Delay the scheduled launch at least twice
04 Launch the New Windows 8 months late with sound and fury
05 Get to work on SP1 and SP2 - the last of which will finally make the New
Windows work as well as the Old Windows.
06 GOTO 01

[ Reply to This | Parent | # ]

Corrections
Authored by: Tufty on Thursday, September 06 2012 @ 10:34 PM EDT
Software => vapourware

---
Linux powered squirrel.

[ Reply to This | Parent | # ]

  • Corrections - Authored by: Anonymous on Friday, September 07 2012 @ 05:56 AM EDT
MS is clearly struggling
Authored by: stegu on Friday, September 07 2012 @ 06:11 AM EDT
MS is struggling to stay relevant and attract
talent, and they are not doing well right now.
The switch to an NT kernel for WP8 and the
fundamental changes to some APIs would have
been major efforts for any company, and MS
is quite obviously short on experienced,
skilled system programmers.
They try to make up for it with a small
army of "people having ordinary skill in
the art", but that is not enough to take
on a major architecture overhaul like this
one without messing up and creating delays.

[ Reply to This | Parent | # ]

Monolithic, Micro, or Hybrid Kernel - and still call it Windows (throwing chair to make a point)
Authored by: Anonymous on Friday, September 07 2012 @ 08:25 AM EDT
Who would have made the switch to the NT Kernel...?

It is hybrid-Microkernel insanity (duh, the type that top management shows when it does not know how their product is inferior, yet still goes with it due to the marketing mantra). Can you hear anyone at the top of Microsoft yelling Windows, Windows, Windows, we are Windows, so we will do Windows, no matter what, we love Windows...?

If I were MS, I would have pulled a BSD Kernel, or their own UNIX, (meaning, a ...stable monolithic kernel) out of the hat, and run legacy apps via a virtual machine environment.

NT Kernel???? As a typical hybrid-Microkernel, it is just a big mess (kinda like a huge ball of string that everyone just patches by putting on more string), hard to make it work on all devices the same (and save battery power at the same time). Any who knows what mess some patch fixed 5 years ago, that will pop up and create problems if you try to patch on again, without the STAFF around who did the patching before???

See: http://en.wikipedia.org/wiki/Kernel_(computing)

http://en .wikipedia.org/wiki/Kernel_(computing)#Monolithic_k ernels_vs._microkernels

"Monolithic kernels vs. microkernels

As the computer kernel grows, a number of problems become evident. One of the most obvious is that the memory footprint increases. This is mitigated to some degree by perfecting the virtual memory system, but not all computer architectures have virtual memory support.[32] To reduce the kernel's footprint, extensive editing has to be performed to carefully remove unneeded code, which can be very difficult with non-obvious interdependencies between parts of a kernel with millions of lines of code.

By the early 1990s, due to the various shortcomings of monolithic kernels versus microkernels, monolithic kernels were considered obsolete by virtually all operating system researchers. As a result, the design of Linux as a monolithic kernel rather than a microkernel was the topic of a famous debate between Linus Torvalds and Andrew Tanenbaum. [33] There is merit on both sides of the argument presented in the Tanenbaum–Torvalds debate.

[edit]Performances
Monolithic kernels are designed to have all of their code in the same address space (kernel space), which some developers argue is necessary to increase the performance of the system.[34] Some developers also maintain that monolithic systems are extremely efficient if well-written.[34] The monolithic model tends to be more efficient[citation needed] through the use of shared kernel memory, rather than the slower IPC system of microkernel designs, which is typically based on message passing.[citation needed]

The performance of microkernels constructed in the 1980s the year in which it started and early 1990s was poor.[35][36] Studies that empirically measured the performance of these microkernels did not analyze the reasons of such inefficiency.[35] The explanations of this data were left to "folklore", with the assumption that they were due to the increased frequency of switches from "kernel-mode" to "user- mode",[35] to the increased frequency of inter-process communication[35] and to the increased frequency of context switches.[35]

In fact, as guessed in 1995, the reasons for the poor performance of microkernels might as well have been:
-(1) an actual inefficiency of the whole microkernel approach,
-(2) the particular concepts implemented in those microkernels, and
-(3) the particular implementation of those concepts.[35]

Therefore it remained to be studied if the solution to build an efficient microkernel was, unlike previous attempts, to apply the correct construction techniques.[35] On the other end, the hierarchical protection domains architecture that leads to the design of a monolithic kernel[30] has a significant performance drawback each time there's an interaction between different levels of protection (i.e. when a process has to manipulate a data structure both in 'user mode' and 'supervisor mode'), since this requires message copying by value.[37]

By the mid-1990s, most researchers had abandoned the belief that careful tuning could reduce this overhead dramatically, [citation needed] but recently, newer microkernels, optimized for performance, such as L4[38] and K42 have addressed these problems.[verification needed]

Hybrid (or) Modular kernels

Main article: Hybrid kernel
Hybrid kernels are used in most commercial operating systems such as Microsoft Windows NT, 2000, XP, Vista, and 7. Apple Inc's own Mac OS X uses a hybrid kernel called XNU which is based upon code from Carnegie Mellon's Mach kernel and FreeBSD's monolithic kernel. They are similar to micro kernels, except they include some additional code in kernel- space to increase performance. These kernels represent a compromise that was implemented by some developers before it was demonstrated that pure micro kernels can provide high performance. These types of kernels are extensions of micro kernels with some properties of monolithic kernels. Unlike monolithic kernels, these types of kernels are unable to load modules at runtime on their own. Hybrid kernels are micro kernels that have some "non-essential" code in kernel- space in order for the code to run more quickly than it would were it to be in user-space. Hybrid kernels are a compromise between the monolithic and microkernel designs. This implies running some services (such as the network stack or the filesystem) in kernel space to reduce the performance overhead of a traditional microkernel, but still running kernel code (such as device drivers) as servers in user space.

Many traditionally monolithic kernels are now at least adding (if not actively exploiting) the module capability. The most well known of these kernels is the Linux kernel. The modular kernel essentially can have parts of it that are built into the core kernel binary or binaries that load into memory on demand. It is important to note that a code tainted module has the potential to destabilize a running kernel. Many people become confused on this point when discussing micro kernels. It is possible to write a driver for a microkernel in a completely separate memory space and test it before "going" live. When a kernel module is loaded, it accesses the monolithic portion's memory space by adding to it what it needs, therefore, opening the doorway to possible pollution.

A few advantages to the modular (or) Hybrid kernel are:

-Faster development time for drivers that can operate from within modules.
-No reboot required for testing (provided the kernel is not destabilized).
-On demand capability versus spending time recompiling a whole kernel for things like new drivers or subsystems.
-Faster integration of third party technology (related to development but pertinent unto itself nonetheless).
-Modules, generally, communicate with the kernel using a module interface of some sort.
-The interface is generalized (although particular to a given operating system) so it is not always possible to use modules.
-Often the device drivers may need more flexibility than the module interface affords.

Essentially, it is two system calls and often the safety checks that only have to be done once in the monolithic kernel now may be done twice.

Some of the disadvantages of the modular approach are:

-- With more interfaces to pass through, the possibility of increased bugs exists (which implies more security holes) .
-- Maintaining modules can be confusing for some administrators when dealing with problems like symbol differences".

Hmmm, maybe the delay is that they are doing a monolithic kernel, after giving up on NT, but the marketing folks can still call it Windows?

[ Reply to This | Parent | # ]

Groklaw © Copyright 2003-2013 Pamela Jones.
All trademarks and copyrights on this page are owned by their respective owners.
Comments are owned by the individual posters.

PJ's articles are licensed under a Creative Commons License. ( Details )