Comparison between Windows NT and Linux kernels

Discussions on more advanced topics such as monolithic vs micro-kernels, transactional memory models, and paging vs segmentation should go here. Use this forum to expand and improve the wiki!
User avatar
narke
Member
Member
Posts: 119
Joined: Wed Dec 26, 2007 3:37 am
Location: France

Comparison between Windows NT and Linux kernels

Post by narke »

No troll intended.

Comparison between Windows NT and Linux kernels by Russinovich and Solomon (2006)

https://docs.google.com/viewer?a=v&q=ca ... dTQw&pli=1
OS for PowerPC Macs: https://github.com/narke/Einherjar
Operating system: colorForth computing environment for x86.: https://github.com/narke/Roentgenium
OSwhatever
Member
Member
Posts: 595
Joined: Mon Jul 05, 2010 4:15 pm

Re: Comparison between Windows NT and Linux kernels

Post by OSwhatever »

Yes, so what are we supposed to discuss?
User avatar
dozniak
Member
Member
Posts: 723
Joined: Thu Jul 12, 2012 7:29 am
Location: Tallinn, Estonia

Re: Comparison between Windows NT and Linux kernels

Post by dozniak »

It's probably a bit outdated by now.
Learn to read.
Mikemk
Member
Member
Posts: 409
Joined: Sat Oct 22, 2011 12:27 pm

Re: Comparison between Windows NT and Linux kernels

Post by Mikemk »

?
Why do I care?
Programming is 80% Math, 20% Grammar, and 10% Creativity <--- Do not make fun of my joke!
If you're new, check this out.
User avatar
Kazinsal
Member
Member
Posts: 559
Joined: Wed Jul 13, 2011 7:38 pm
Libera.chat IRC: Kazinsal
Location: Vancouver
Contact:

Re: Comparison between Windows NT and Linux kernels

Post by Kazinsal »

Interesting look at some of the things about requirements, seeing as Windows' memory requirements are eight times what they used to be, and the Linux kernel still only needs a handful of megabytes...
User avatar
gravaera
Member
Member
Posts: 737
Joined: Tue Jun 02, 2009 4:35 pm
Location: Supporting the cause: Use \tabs to indent code. NOT \x20 spaces.

Re: Comparison between Windows NT and Linux kernels

Post by gravaera »

Yo,

@OP: Thanks, that was a very interesting set of comparison slides. I enjoyed reading it.

--Peace out,
gravaera
17:56 < sortie> Paging is called paging because you need to draw it on pages in your notebook to succeed at it.
linguofreak
Member
Member
Posts: 510
Joined: Wed Mar 09, 2011 3:55 am

Re: Comparison between Windows NT and Linux kernels

Post by linguofreak »

Blacklight wrote:Interesting look at some of the things about requirements, seeing as Windows' memory requirements are eight times what they used to be, and the Linux kernel still only needs a handful of megabytes...
As much as I like to brag on Linux, I'll note that the requirements listed for Windows there are for a whole XP install, whereas for Linux it's just the kernel.

For an example of a 2006-era distribution, Ubuntu Edgy needed 32 megs of RAM for a minimal install or 128 for a full install.

Ubuntu Quantal wants 768 megs. (A debootstrapped Precise install with MATE for a DE will fit in around 256 though).
cybek
Posts: 11
Joined: Tue Dec 27, 2011 4:41 pm

Re: Comparison between Windows NT and Linux kernels

Post by cybek »

Nice presentation, thanks.
But is windows's kernel really monolithic? Sometime I read that kernel is "micro kernel". What is true definition of windows's kernel?
User avatar
Brendan
Member
Member
Posts: 8561
Joined: Sat Jan 15, 2005 12:00 am
Location: At his keyboard!
Contact:

Re: Comparison between Windows NT and Linux kernels

Post by Brendan »

Hi,
cybek wrote:Nice presentation, thanks.
But is windows's kernel really monolithic? Sometime I read that kernel is "micro kernel". What is true definition of windows's kernel?
It's monolithic. The NT kernel consists of a HAL, kernel mode drivers, and a "kernel core". Marketing fools try to pretend that the "kernel core" is a micro-kernel, but it's just part of the monolithic kernel. ;)


Cheers,

Brendan
For all things; perfection is, and will always remain, impossible to achieve in practice. However; by striving for perfection we create things that are as perfect as practically possible. Let the pursuit of perfection be our guide.
halofreak1990
Member
Member
Posts: 41
Joined: Thu Aug 09, 2012 5:10 am

Re: Comparison between Windows NT and Linux kernels

Post by halofreak1990 »

Brendan wrote:It's monolithic. The NT kernel consists of a HAL, kernel mode drivers, and a "kernel core". Marketing fools try to pretend that the "kernel core" is a micro-kernel, but it's just part of the monolithic kernel. ;)
I've always read the NT kernel as being a 'hybrid' kernel, whatever that's supposed to mean.
<PixelToast> but i cant mouse

Porting is good if you want to port, not if you want maximum quality. -- sortie
CWood
Member
Member
Posts: 127
Joined: Sun Jun 20, 2010 1:21 pm

Re: Comparison between Windows NT and Linux kernels

Post by CWood »

Chances are, 'hybrid kernel' is supposed to mean, "I don't know what this is, or even if it makes sense, but if I put it on the box, we might get more sales." It's a marketing buzz word, a kernel is either monolithic, or micro. There isn't really any in between.
User avatar
gravaera
Member
Member
Posts: 737
Joined: Tue Jun 02, 2009 4:35 pm
Location: Supporting the cause: Use \tabs to indent code. NOT \x20 spaces.

Re: Comparison between Windows NT and Linux kernels

Post by gravaera »

Yo:

You can define a hybrid kernel as the sensible compromise between microkernel and monolithic kernel design -- essentially a design approach that prefers practicality and functional efficiency wherever possible.

For example, a pure microkernel may offload memory management to a separate address space, and have scheduling in a separate address space, and even process execution in a separate address space. It would naturally also have less critical subsystems such as networking and storage in separate address spaces.

A monolithic kernel would have all of these subsystems in-kernel.

A hybrid kernel would keep whichever subsystems are considered "performance critical" in-kernel, and offload the rest, preferring performance to aesthetics. I would even go so far as to say that the hybrid approach is "correct", in that it refuses to sacrifice the performance of the most performance-critical piece of software on a machine for the satisfaction of a perfectly elaborated design. If I were to define the principle behind hybrid kernels, I would say that they are the natural produce of a microkernel designer who has come to take the real world (and real hardware) into consideration.

--Peace out
gravaera
17:56 < sortie> Paging is called paging because you need to draw it on pages in your notebook to succeed at it.
User avatar
Combuster
Member
Member
Posts: 9301
Joined: Wed Oct 18, 2006 3:45 am
Libera.chat IRC: [com]buster
Location: On the balcony, where I can actually keep 1½m distance
Contact:

Re: Comparison between Windows NT and Linux kernels

Post by Combuster »

CWood wrote:a kernel is either monolithic, or micro. There isn't really any in between.
By their simple definitions, Mono means all drivers are run in the kernel, micro means no drivers run in the kernel. Therefore it is suddenly impossible to have some drivers in the kernel?

In practice, running "most" drivers with the privileges of (...) is considered acceptable criterium for both a monolithic or microkernel. As far as where the grey area actually starts and where "hybrid kernel" applies, is somewhat up to debate. For instance, can you point out where your "RAM driver" is?.

And yes, gravaera just ninja'd me to the point that insisting on academic purity is more often than not a bad thing. However, an impure microkernel doesn't IMO lose rights to it's title.
"Certainly avoid yourself. He is a newbie and might not realize it. You'll hate his code deeply a few years down the road." - Sortie
[ My OS ] [ VDisk/SFS ]
OSwhatever
Member
Member
Posts: 595
Joined: Mon Jul 05, 2010 4:15 pm

Re: Comparison between Windows NT and Linux kernels

Post by OSwhatever »

Combuster wrote:By their simple definitions, Mono means all drivers are run in the kernel, micro means no drivers run in the kernel. Therefore it is suddenly impossible to have some drivers in the kernel?

In practice, running "most" drivers with the privileges of (...) is considered acceptable criterium for both a monolithic or microkernel. As far as where the grey area actually starts and where "hybrid kernel" applies, is somewhat up to debate. For instance, can you point out where your "RAM driver" is?.

And yes, gravaera just ninja'd me to the point that insisting on academic purity is more often than not a bad thing. However, an impure microkernel doesn't IMO lose rights to it's title.
QNX must have interrupt, timer and network driver in kernel, still it is considered a microkernel. If QNX isn't a microkernel, what is?
rickbrown
Posts: 1
Joined: Mon May 13, 2013 4:07 am

Re: Comparison between Windows NT and Linux kernels

Post by rickbrown »

The big structural difference is that linux is a monolithic kernel and the NT kernel has a hydrid structure. It separates out a Hardware abraction layer at the base in a seperate memory space. In addition the win32 API is separated out into it's own memory space as well.

Linux runs a lot more hardware tarchitectures than NT. It also manages drivers in-tree so that it is a lot more practical to make changes to fix security flaws or update driver structures. Whereas windows NT does not, so it has to maintain the old ABI's when adding new ones.

As far as just the kernel goes Linux is really better in about every way. However side considerations mean that each has it's place and use.
Post Reply