Operating-System Services
Chapter 2
Objectives
Operating System Services
Operating System Services (Cont.)
Operating System Services (Cont.)
A View of Operating System Services
Command Line interpreter (CLI)
Advantages and Disadvantages of CLI
Advantages
Disadvantages
Bourne Shell Command Interpreter
Windows CLI
User Operating System Interface - GUI
Touchscreen Interfaces
The Mac OS X GUI
System Calls
Example of System Calls
Example of Standard API
System Call Implementation
System Call Implementation
System Call Parameter Passing
Parameter Passing via Table
Types of System Calls
Types of System Calls (Cont.)
Types of System Calls (Cont.)
Types of System Calls (Cont.)
Examples of Windows and Unix System Calls
Standard C Library Example
Example: Arduino
Example: FreeBSD
System Services
System Services (Cont.)
System Services (Cont.)
System Services (Cont.)
System Services (Cont.)
Linkers and Loaders
The Role of the Linker and Loader
Why Applications are Operating System Specific
Design and Implementation
Policy and Mechanism
Implementation
Operating System Structure
Monolithic Kernel
A Monolithic Kernel is a type of operating system kernel design where almost all OS services run in the same kernel space (the highest privilege level). This means core functions like device drivers, memory management,process management, file systems,networking stack, and system calls are all part of one large program running inside the kernel.
A Monolithic Kernel is an operating system architecture where all major OS services run in kernel space as a single large program, allowing fast communication but reducing fault isolation.
Examples of Operating Systems Using Monolithic Kernels
Many modern kernels like the Linux kernel are modular monolithic kernels, meaning modules (like drivers) can be loaded/unloaded dynamically.
Monolithic Structure – Original UNIX
Traditional UNIX System Structure
Advantages and Disadvantages
Disd
Linux System Structure
Layered Approach
Microkernels
Microkernel System Structure
Modules
Hybrid Systems
macOS and iOS Structure
Darwin
iOS
Android
Android Architecture
Building and Booting an Operating System
Building and Booting Linux
System Boot
Operating-System Debugging
Kernighan’s Law: “Debugging is twice as hard as writing the code in the first place. Therefore, if you write the code as cleverly as possible, you are, by definition, not smart enough to debug it.”
Performance Tuning
Tracing
BCC
The End!