SlideShare a Scribd company logo
1 of 2
In a monolithic kernel,
all OS services run along with the main kernel thread, thus also
residing in the same memory area.
This approach provides rich and powerful hardware access.
it is "easier to implement a monolithic kernel” than microkernels.
The main disadvantages of monolithic kernels are the dependencies
between system components — a bug in a device driver might crash the
entire system — and the fact that large kernels can become very difficult
to maintain.
traditionally been used by Unix-like operating systems, contain all the
operating system core functions and the device drivers (small programs
that allow the operating system to interact with hardware devices, such
as disk drives, video cards and printers).
A monolithic kernel is one single program that contains all of the code
necessary to perform every kernel related task.
Every part which is to be accessed by most programs which cannot be
put in a library is in the kernel space: Device drivers, Scheduler,
Memory handling, File systems, Network stacks.
Many system calls are provided to applications, to allow them to access
all those services.
A monolithic kernel, while initially loaded with subsystems that may not
be needed can be tuned to a point where it is as fast as or faster than
the one that was specifically designed for the hardware, although more
in a general sense.
Modern monolithic kernels, such as those of Linux and FreeBSD, both
of which fall into the category of Unix-like operating systems, feature the
ability to load modules at runtime, thereby allowing easy extension of
the kernel's capabilities as required, while helping to minimize the
This design has several flaws and limitations:
 Coding in kernel space is hard, since you cannot use common
libraries (like a full-featured libc),
 debugging is harder (it's hard to use a source-level debugger like
gdb), rebooting the computer is often needed.
 Debugging is harder, and as difficulties become stronger, it
becomes more likely that code is "buggier".
 Bugs in one part of the kernel have strong side effects, since every
function in the kernel has all the privileges, a bug in one function can
corrupt data structure of another, totally unrelated part of the kernel,
or of any running program.
 Kernels often become very huge, and difficult to maintain.
 Even if the modules servicing these operations are separate from the
whole, the code integration is tight and difficult to do correctly.
 Since the modules run in the same address space, a bug can bring
down the entire system.
 The disadvantage cited for monolithic kernels is that they are not
portable; that is, they must be rewritten for each new architecture
that the operating system is to be used on.
Microsoft Windows NT, 2000 and XP. Dragonfly BSD etc. 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 "none 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.

More Related Content

What's hot

Operating system kernal
Operating system kernalOperating system kernal
Operating system kernalSumit Rajpal
 
KERNAL ARCHITECTURE
KERNAL ARCHITECTUREKERNAL ARCHITECTURE
KERNAL ARCHITECTURElakshmipanat
 
Exokernel operating systems
Exokernel operating systemsExokernel operating systems
Exokernel operating systemsGaurav Dalvi
 
What is a Kernel? : Introduction And Architecture
What is a Kernel? : Introduction And ArchitectureWhat is a Kernel? : Introduction And Architecture
What is a Kernel? : Introduction And Architecturepec2013
 
What is Kernel, basic idea of kernel
What is Kernel, basic idea of kernelWhat is Kernel, basic idea of kernel
What is Kernel, basic idea of kernelNeel Parikh
 
Application Performance and Flexibility on ExoKernel Systems
Application Performance and Flexibility on ExoKernel SystemsApplication Performance and Flexibility on ExoKernel Systems
Application Performance and Flexibility on ExoKernel SystemsWSO2
 
Operating Systems A-Z
Operating Systems A-ZOperating Systems A-Z
Operating Systems A-ZRavinJ
 
Operating system 15 micro kernel based os
Operating system 15 micro kernel based osOperating system 15 micro kernel based os
Operating system 15 micro kernel based osVaibhav Khanna
 
Architecture of operating system
Architecture of operating systemArchitecture of operating system
Architecture of operating systemSupriya Kumari
 

What's hot (19)

Microkernel
MicrokernelMicrokernel
Microkernel
 
Operating system kernal
Operating system kernalOperating system kernal
Operating system kernal
 
KERNAL ARCHITECTURE
KERNAL ARCHITECTUREKERNAL ARCHITECTURE
KERNAL ARCHITECTURE
 
Exokernel operating systems
Exokernel operating systemsExokernel operating systems
Exokernel operating systems
 
Kernel (computing)
Kernel (computing)Kernel (computing)
Kernel (computing)
 
What is a Kernel? : Introduction And Architecture
What is a Kernel? : Introduction And ArchitectureWhat is a Kernel? : Introduction And Architecture
What is a Kernel? : Introduction And Architecture
 
Microkernel
MicrokernelMicrokernel
Microkernel
 
Kernels and its types
Kernels and its typesKernels and its types
Kernels and its types
 
Linux kernel
Linux kernelLinux kernel
Linux kernel
 
Ch3
Ch3Ch3
Ch3
 
What is Kernel, basic idea of kernel
What is Kernel, basic idea of kernelWhat is Kernel, basic idea of kernel
What is Kernel, basic idea of kernel
 
Application Performance and Flexibility on ExoKernel Systems
Application Performance and Flexibility on ExoKernel SystemsApplication Performance and Flexibility on ExoKernel Systems
Application Performance and Flexibility on ExoKernel Systems
 
Operating Systems A-Z
Operating Systems A-ZOperating Systems A-Z
Operating Systems A-Z
 
Operating system 15 micro kernel based os
Operating system 15 micro kernel based osOperating system 15 micro kernel based os
Operating system 15 micro kernel based os
 
In a monolithic kerne1
In a monolithic kerne1In a monolithic kerne1
In a monolithic kerne1
 
Os Ds Arch
Os Ds ArchOs Ds Arch
Os Ds Arch
 
System structure
System structureSystem structure
System structure
 
Kernal
KernalKernal
Kernal
 
Architecture of operating system
Architecture of operating systemArchitecture of operating system
Architecture of operating system
 

Similar to In a monolithic kernel

Linux kernel Architecture and Properties
Linux kernel Architecture and PropertiesLinux kernel Architecture and Properties
Linux kernel Architecture and PropertiesSaadi Rahman
 
Operating system Definition Structures
Operating  system Definition  StructuresOperating  system Definition  Structures
Operating system Definition Structuresanair23
 
ITT Project Information Technology Basic
ITT Project Information Technology BasicITT Project Information Technology Basic
ITT Project Information Technology BasicMayank Garg
 
Kernel Computing
Kernel ComputingKernel Computing
Kernel ComputingSabiha M
 
Introduction to Linux
Introduction to LinuxIntroduction to Linux
Introduction to Linuxsureskal
 
unixlinux - kernelexplain yield in user spaceexplain yield in k.pdf
unixlinux - kernelexplain yield in user spaceexplain yield in k.pdfunixlinux - kernelexplain yield in user spaceexplain yield in k.pdf
unixlinux - kernelexplain yield in user spaceexplain yield in k.pdfPRATIKSINHA7304
 
Driver Programming Report
Driver Programming ReportDriver Programming Report
Driver Programming ReportShivek Khurana
 
SEC.3 Linux vs Unix Kernel.pptxnnnnnnnnnnnnnnnnnnnn
SEC.3 Linux vs Unix Kernel.pptxnnnnnnnnnnnnnnnnnnnnSEC.3 Linux vs Unix Kernel.pptxnnnnnnnnnnnnnnnnnnnn
SEC.3 Linux vs Unix Kernel.pptxnnnnnnnnnnnnnnnnnnnnabdulrahmaanwalid
 
exp_1_20bca1066 Internet.docx
exp_1_20bca1066 Internet.docxexp_1_20bca1066 Internet.docx
exp_1_20bca1066 Internet.docxApkaAmitbro
 
exp_1_20bca1108(kashish_dixit.docx
exp_1_20bca1108(kashish_dixit.docxexp_1_20bca1108(kashish_dixit.docx
exp_1_20bca1108(kashish_dixit.docxApkaAmitbro
 

Similar to In a monolithic kernel (20)

In a monolithic kerne1
In a monolithic kerne1In a monolithic kerne1
In a monolithic kerne1
 
Walking around linux kernel
Walking around linux kernelWalking around linux kernel
Walking around linux kernel
 
Kernel (computing)
Kernel (computing)Kernel (computing)
Kernel (computing)
 
Linux kernel Architecture and Properties
Linux kernel Architecture and PropertiesLinux kernel Architecture and Properties
Linux kernel Architecture and Properties
 
KERNEL.pptx
KERNEL.pptxKERNEL.pptx
KERNEL.pptx
 
Linux kernel
Linux kernelLinux kernel
Linux kernel
 
Studienarb linux kernel-dev
Studienarb linux kernel-devStudienarb linux kernel-dev
Studienarb linux kernel-dev
 
ppt
pptppt
ppt
 
Operating system Definition Structures
Operating  system Definition  StructuresOperating  system Definition  Structures
Operating system Definition Structures
 
ITT Project Information Technology Basic
ITT Project Information Technology BasicITT Project Information Technology Basic
ITT Project Information Technology Basic
 
Kernel Computing
Kernel ComputingKernel Computing
Kernel Computing
 
Introduction to Linux
Introduction to LinuxIntroduction to Linux
Introduction to Linux
 
unixlinux - kernelexplain yield in user spaceexplain yield in k.pdf
unixlinux - kernelexplain yield in user spaceexplain yield in k.pdfunixlinux - kernelexplain yield in user spaceexplain yield in k.pdf
unixlinux - kernelexplain yield in user spaceexplain yield in k.pdf
 
Driver Programming Report
Driver Programming ReportDriver Programming Report
Driver Programming Report
 
SEC.3 Linux vs Unix Kernel.pptxnnnnnnnnnnnnnnnnnnnn
SEC.3 Linux vs Unix Kernel.pptxnnnnnnnnnnnnnnnnnnnnSEC.3 Linux vs Unix Kernel.pptxnnnnnnnnnnnnnnnnnnnn
SEC.3 Linux vs Unix Kernel.pptxnnnnnnnnnnnnnnnnnnnn
 
System structure
System structureSystem structure
System structure
 
exp_1_20bca1066 Internet.docx
exp_1_20bca1066 Internet.docxexp_1_20bca1066 Internet.docx
exp_1_20bca1066 Internet.docx
 
Kernal assignment
Kernal assignmentKernal assignment
Kernal assignment
 
exp_1_20bca1108(kashish_dixit.docx
exp_1_20bca1108(kashish_dixit.docxexp_1_20bca1108(kashish_dixit.docx
exp_1_20bca1108(kashish_dixit.docx
 
Studies
StudiesStudies
Studies
 

More from Teja Bheemanapally (20)

Teradata
TeradataTeradata
Teradata
 
Teradata
TeradataTeradata
Teradata
 
Linux or unix interview questions
Linux or unix interview questionsLinux or unix interview questions
Linux or unix interview questions
 
Linux notes
Linux notesLinux notes
Linux notes
 
Linux crontab
Linux crontabLinux crontab
Linux crontab
 
Linux basic commands
Linux basic commandsLinux basic commands
Linux basic commands
 
Linux01122011
Linux01122011Linux01122011
Linux01122011
 
Installing red hat enterprise linux1
Installing red hat enterprise linux1Installing red hat enterprise linux1
Installing red hat enterprise linux1
 
Linux basic commands tutorial
Linux basic commands tutorialLinux basic commands tutorial
Linux basic commands tutorial
 
Common linuxcommandspocketguide07
Common linuxcommandspocketguide07Common linuxcommandspocketguide07
Common linuxcommandspocketguide07
 
50 most frequently used unix
50 most frequently used unix50 most frequently used unix
50 most frequently used unix
 
Basic commands
Basic commandsBasic commands
Basic commands
 
File system hierarchy standard
File system hierarchy standardFile system hierarchy standard
File system hierarchy standard
 
40 basic linux command
40 basic linux command40 basic linux command
40 basic linux command
 
15 practical grep command examples in linux
15 practical grep command examples in linux15 practical grep command examples in linux
15 practical grep command examples in linux
 
25 most frequently used linux ip tables rules examples
25 most frequently used linux ip tables rules examples25 most frequently used linux ip tables rules examples
25 most frequently used linux ip tables rules examples
 
Shell intro
Shell introShell intro
Shell intro
 
6 stages of linux boot process
6 stages of linux boot process6 stages of linux boot process
6 stages of linux boot process
 
Installing red hat enterprise linux1
Installing red hat enterprise linux1Installing red hat enterprise linux1
Installing red hat enterprise linux1
 
Ftp
FtpFtp
Ftp
 

In a monolithic kernel

  • 1. In a monolithic kernel, all OS services run along with the main kernel thread, thus also residing in the same memory area. This approach provides rich and powerful hardware access. it is "easier to implement a monolithic kernel” than microkernels. The main disadvantages of monolithic kernels are the dependencies between system components — a bug in a device driver might crash the entire system — and the fact that large kernels can become very difficult to maintain. traditionally been used by Unix-like operating systems, contain all the operating system core functions and the device drivers (small programs that allow the operating system to interact with hardware devices, such as disk drives, video cards and printers). A monolithic kernel is one single program that contains all of the code necessary to perform every kernel related task. Every part which is to be accessed by most programs which cannot be put in a library is in the kernel space: Device drivers, Scheduler, Memory handling, File systems, Network stacks. Many system calls are provided to applications, to allow them to access all those services. A monolithic kernel, while initially loaded with subsystems that may not be needed can be tuned to a point where it is as fast as or faster than the one that was specifically designed for the hardware, although more in a general sense. Modern monolithic kernels, such as those of Linux and FreeBSD, both of which fall into the category of Unix-like operating systems, feature the ability to load modules at runtime, thereby allowing easy extension of the kernel's capabilities as required, while helping to minimize the
  • 2. This design has several flaws and limitations:  Coding in kernel space is hard, since you cannot use common libraries (like a full-featured libc),  debugging is harder (it's hard to use a source-level debugger like gdb), rebooting the computer is often needed.  Debugging is harder, and as difficulties become stronger, it becomes more likely that code is "buggier".  Bugs in one part of the kernel have strong side effects, since every function in the kernel has all the privileges, a bug in one function can corrupt data structure of another, totally unrelated part of the kernel, or of any running program.  Kernels often become very huge, and difficult to maintain.  Even if the modules servicing these operations are separate from the whole, the code integration is tight and difficult to do correctly.  Since the modules run in the same address space, a bug can bring down the entire system.  The disadvantage cited for monolithic kernels is that they are not portable; that is, they must be rewritten for each new architecture that the operating system is to be used on. Microsoft Windows NT, 2000 and XP. Dragonfly BSD etc. 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 "none 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.