Linked by Thom Holwerda on Tue 22nd Sep 2009 15:34 UTC, submitted by google_ninja
Linux During the roundtable discussion at LinuxCon this year, Linus Torvalds made some pretty harsh remarks about the current state of the Linux kernel, calling it "huge and bloated", and that there is no plan in sight to solve the problem. At the same time, he also explained that he is very happy with the current development process of the kernel, and that his job has become much easier.
Permalink for comment 385638
To read all comments associated with this story, please click here.
Member since:

But is now a huge chunk of code that all runs in the same memory address space. And that is what micro vs monolithic is about: What code shares memory address space, and code does not.

It is not matter of same/shared address space or call space. You do not even have only two address-space on microkernel or monolithic OS's. You have multiple ones. Every process is on own address-space, but they can work on needed spaces.

The definition is about structure. Is the kernel alone, all other operating system parts dispatched from it to own processes. That is always a microkernel. Monolithic is _neve_ a "hybrid". That is just so pure marketing propaganda what hits people. [/q]

The current Windows kernels are monolithic. Calling them even "hybrid" is a stretch, really. In the same sort of way that calling Linux a hybrid kernel, because it uses dynamically loadable modules, is.

Not even Microsoft use hybrid term anymore. They speak about pure microkernel structured NT operating system. Why? Because it was just trial to get marketed "new" OS structure to academic world, and it failed totally.

Even Microsoft next research operating system called Singularity, has pure microkernel structure. Even that they do not have more than one address space.

And they are both that way (monolithic) because when the engineers got down to the nuts and bolts... that's what made sense. It's the difference between beautiful theory and real world practice.

That is just twisting technology for marketing uses. "We have best sides of all operating systems, this is flawless and best what you can get".

Ivory towers are nice. And academically speaking, tenured professors like Tannenbaum can afford to live in them. The rest of us settle for nice practical houses, apartments, and condos.

Theory is always theory, but even you implent the theory and you tweak it littlebit to get it work in reality, does not change the technology how it was designed and how it is implented. This far none of "hybrid kernels" does not have anything so different from server-client arcitechture that they could not be called as server-client arcitechture. They can not be called as monolithic as well, because their modularity is on binary and arcitechture level.

Even Linux has modules, but that is not on arcitechture level, but on binary level. When you load the module in Linux, it works just like it would be compiled inside it, not as module. The module is attached same way, it is just loadable to save some memory and gain some stability.

Now you are just saying that the arcitechture differences does not override right away the binary differences.

You can move how much you like, drivers or other parts of operating system between address spaces, to be existing with the microkernel on the kernel space or among other processes on userland, but they do not anyway, get joined to microkernel. How much you would like them to be so. The microkernel is even then, only a microkernel and it does not change to be including device drivers, memory or process management what are own modules. You are almost speaking like kernel space is same thing as kernel. What it is not.

As to the whole ‘hybrid kernel’ thing — it’s just marketing. It’s ‘oh, those microkernels had good PR, how can we try to get good PR for our working kernel? Oh, I know, let’s use a cool name and try to imply that it has all the PR advantages that that other system has’ - Linus Torvalds, Real World Technologies Discussion Forum

It’s wrong... I think this talk... was born from some kind of half-assed marketing game to try and make XXX kernel seem ‘more advanced.’ ‘Micro’ and ‘hybrid’ are always better, more advanced than ‘Monolithic’ right??"-Sonny Rao, Real World Technologies Discussion Forum[q/]

Many people makes mistakes just with the different address spaces. Like they are what rules over the architecture. The microkernel's server-client architecture idea was that all not needed Operating System features are removed from kernel itself. It does not matter are those sliced parts in kernel space or user space. Those parts do not belong to the microkernel itself. You can keep always the microkernel, and switch all other parts of the OS. To build up different OS's, still using always same kernel. You can always move the OS servers between kernel space and user space, never changing the architecture or even binary structure, only their position.

On monolithic operating systems you can not do that. You do not get any operating system parts outside of the kernel space. You can change the binary structure, but all modules are still on architecture level same way as without the separation on binary level.


Can you find the microkernel being separated from other parts of OS, or are process management, memory management, drivers and so on, part of it? Why does Microsoft even call NT as microkernel-based operating system? Why they say that NT use a microkernel? Because they can not hide that fact, it has a microkernel. When we talk about microkernel, we talk only about the kernel. Not about the servers/modules.

It is just funny, because when not even Microsoft call NT as hybrid kernel, but microkernel-based, many wants there to be somekind "better" and undefinable operating system model than server-client. Just like somehow it would make them better. And just for mentioning, the server-client architecture what even Minix use, allows the servers/modules be moved between address space, nothing special there.

Reply Parent Score: 1