0% found this document useful (0 votes)
15 views16 pages

Lect 06 Kernel

The document discusses the structure and design of UNIX and Linux kernels. It describes how UNIX kernels function and compares monolithic and microkernel structures. It also covers modules, hybrid systems, and why applications are OS specific.

Uploaded by

usereddit6942
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
15 views16 pages

Lect 06 Kernel

The document discusses the structure and design of UNIX and Linux kernels. It describes how UNIX kernels function and compares monolithic and microkernel structures. It also covers modules, hybrid systems, and why applications are OS specific.

Uploaded by

usereddit6942
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 16

OPERATING SYSTEMS CS F372

BIJU K RAVEENDRAN & TEAM

LECT #06: KERNEL


UNIX
• UNIX – limited by hardware functionality, the original
UNIX operating system had limited structuring. The
UNIX OS consists of two separable parts
– Systems programs
– The kernel
• Consists of everything below the system-call
interface and above the physical hardware
• Provides the file system, CPU scheduling, memory
management, and other operating-system
functions; a large number of functions for one
level
January 22, 2024 Biju K Raveendran @ BITS Pilani Goa 2
UNIX System Structure

January 22, 2024 Biju K Raveendran @ BITS Pilani Goa 3


UNIX Kernel Space

January 22, 2024 Biju K Raveendran @ BITS Pilani Goa 4


Linux System Structure

Monolithic
with Modular
Design

January 22, 2024 Biju K Raveendran @ BITS Pilani Goa 5


Microkernel System Structure
• Moves as much from the kernel into “user” space
• Communication takes place between user modules using message
passing
• Kernel consist of only essential components
• The kernel will be very small
• Main function of the Micro kernel is to provide communication
facility (using Message passing)
• Benefits:
– Easier to extend a microkernel
– Easier to port the operating system to new architectures
– More reliable (less code is running in kernel mode)
– More secure
• Detriments:
– Performance overhead of user space to kernel space communication
January 22, 2024 Biju K Raveendran @ BITS Pilani Goa 6
Microkernel System Structure

January 22, 2024 Biju K Raveendran @ BITS Pilani Goa 7


Monolithic Vs Micro Kernel

January 22, 2024 Biju K Raveendran @ BITS Pilani Goa 8


Modules
• Most modern operating systems implement
kernel modules
– Uses object-oriented approach
– Each core component is separate
– Each talks to the others over known
interfaces
– Each is loadable as needed within the kernel
• Overall, similar to layers but with more flexible
– Linux, Solaris
January 22, 2024 Biju K Raveendran @ BITS Pilani Goa 9
Solaris Modular Approach

January 22, 2024 Biju K Raveendran @ BITS Pilani Goa 10


Hybrid Systems
• Most modern OSs are actually not one pure model
– Hybrid combines multiple approaches to address
performance, security, usability needs
– Linux and Solaris kernels in kernel address space
are monolithic and are modular for dynamic
loading of functionality
– Windows mostly monolithic, plus microkernel
for different subsystem personalities

January 22, 2024 Biju K Raveendran @ BITS Pilani Goa 11


Why Applications are OS Specific?
• Apps compiled on one system usually not executable on other OS
• Each OS provides its own unique system calls, file formats etc..
• Apps can be multi-operating system
– Written in interpreted language like Python, Ruby, and
interpreter available on multiple OSs
– App written in language that includes a VM containing the
running app (like Java)
– Use standard language (like C), compile separately on each OS
to run on each
• Application Binary Interface (ABI) is architecture equivalent of API,
defines how different components of binary code can interface for
a given operating system on a given architecture, CPU, etc .
January 22, 2024 Biju K Raveendran @ BITS Pilani Goa 12
System Design
• System Design Goals
– User goals – operating system should be convenient
to use, easy to learn, reliable, safe, and fast.
– System goals – operating system should be easy to
design, implement, and maintain, as well as flexible,
reliable, error-free, and efficient
• Mechanisms and Policies
– Mechanisms determine how to do something,
policies decide what will be done.
– The separation of policy from mechanism is a very
important principle, it allows maximum flexibility if
policy decisions are to be changed later.
January 22, 2024 Biju K Raveendran @ BITS Pilani Goa 13
System Implementation
• Traditionally written in assembly language,
operating systems can now be written in higher-
level languages.
• Code written in a high-level language:
– can be written faster.
– is more compact.
– is easier to understand and debug.
• An operating system is far easier to port (move
to some other hardware) if it is written in a
high-level language.
January 22, 2024 Biju K Raveendran @ BITS Pilani Goa 14
General System Architecture
• Why we need protection?
– In single task / programming environment
• To protect OS from incorrect program
– In multiprogramming / multitasking environment
• To protect OS and other programs from incorrect
program

• Given the I/O instructions are privileged, how does


the user program perform I/O?
January 22, 2024 Biju K Raveendran @ BITS Pilani Goa 15
Use of a System call to perform I/O

January 22, 2024 Biju K Raveendran @ BITS Pilani Goa 16

You might also like