[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: