[Ilugc] Re: Doubt on Kernel Arch. ???

  • From: lug@xxxxxxxxxxxxxxxxxx (Chandrashekar Babu)
  • Date: Fri Sep 10 11:15:04 2004

chaitanya valluru writes:

The difference is

Monolithic : The basic Kernel part and the subsystems are compiled to form a 
single executable ,so
                that whenever system boots.....kernel along with the 
subsystems ...are loaded into
                memory...inspite of whether the subsystems are used or not.

MicroKernel: The basic Kernel is the only executable that loads up into 
memory when the system is
                 booted..... All other susbsystems....like the file systems, 
  IPC..Device Driver
                 subsystem...Network services .....are loaded into memory 
only when they are
                requested by the  basic  kernel

Modular : The basic Kernel code is compiled along with some other subsystems 
.....like
              Loader,..scheduler....etc.....which are needed for initial set 
up....to form the
             executable ..so that whenever the system is booted the basic 
kernel along with some
             subsystems are loaded into memory........Other susbsystems like 
.......File
             subsystem.....Network Services...Device driver 
subsystem.....etc......can be loaded into
             memory on demand

Linux is Modular...........Unix,Windows......Solaris etc are all 
Monolithic......GNU HURD has Micro Kernel Architecture


Going by your description, almost all modern OSes are either 'modular' or 
'microkernel'. Apparently, a 'modular' kernel can still be 
classified as a form of 'monolithic' kernel. Infact, Windows, Solaris, and 
even MS-DOS are modular kernels (if you vaguely remember, on 
MS-DOS - HIMEM.SYS, EMM386.EXE, and various other drivers/subsystems can be 
loaded using config.sys or dynamically using the devload utility). 

Speaking from a purist perspective, most OSes (atleast one's that are not 
too small) have been modular since the mid '80s. The entire kernel and all 
its subsystems within a single executable binary is a rare thing, these days 
[Of course, you can build a Linux or a FreeBSD kernel with all of its 
subsystems into a single binary, which makes it purely 'monolithic' by 
your description].

GNU/HURD, Chorus, Amoeba, Mach, L4 and Minix are good examples of 
microkernel OS. But there are commercial OSes based on microkernels too... 
like AIX, QNX, (now defunct) BeOS.

Windows NT infact, claims to be "partly" based on the microkernel 
architecture (Windows NT 3.51, AFAIK was a microkernel). Mac OSX is also 
"partly" based on microkernel architecture (most subsystems run in the user 
mode, while the I/O subsystem runs in the kernel mode, for performance 
sake).


Cheers,
Chandrashekar Babu.

Other related posts: