Overview of Operating Systems
What’s the point of the syscall interface in a monolithic kernel, if a monolithic kernel is always in kernel mode i.e. users directly interact?
→ could be hole in understanding of what a “syscall” is; previous understanding is that a syscall has a transition between user and kernel mode because safety
Previous understanding from “When a user process requires a service from the kernel (e.g., reading from a file or writing to a file) it invokes a system call”
- MS-DOS is an old OS by Microsoft
Operating System Structures
Monolithic Kernels
Layered Approach
Advantages:
- Simplicity of construction
- Ease of debugging (and therefore safety)
- Clear interfaces between layers
- ease of use
Disadvantages:
- Defining layers (separation) is difficult
- Efficiency: adds a bit of overhead to go between the layers
Microkernels
Mach OS is one of the earliest examples of a microkernel.
As the name suggests:
- Removes all non-essential components from the kernel → smaller kernel
- contrasts against monolithic kernels, which are generally MASSIVE (do everything)
Advantages:
- Extending from the OS is easy
- We’ll see how you can use Loadable Kernel Modules
- Safe and reliable
Disadvantages:
- Performance overhead (syscall overhead)