OS Structure Overview
Summary
- OS Structure
- Goals of OS
- Commercial OS
- Monolithic Structure
- DOS-like Structure
- Microkernel
- Features of various OSes
OS Structure
OS Structure := the way the OS software is organized wrt applications that it servces and the underlying hardware that it manages.
Goals of OS
- Protection
- Within and across users and the OS itself
- Performance
- Time taken to perform the services
- Flexibility
- Extensibility
- Not one size fits all
- Scalability
- performance goes up if hardware resources go up
- Agility
- Adapting to changes in application needs and/or resources ability
- Responsiveness
- How quickly OS reacts to external events
Commercial OS
- Linux
- MacOS
- Windows
Monolithic Structure
Each app has its own hardware address space
OS in its own hardware address space
Malfuntioning of an app shouldn’t affect integrity of OS nor other apps
DOS-like Structure
Monolithic structure where there is no protection between the apps and the OS
- Application code can make syscalls directly, like they would any other library
This was in a time where multitasking didn’t really exists and PCs were meant for single users
Loss of protection
Loss of protection is unacceptable for modern OS
Monolithic structures recoup performance losses by consolidating syscalls
- but loses ability to customize for specific apps
Microkernel
Microkernels were designed to focus around customization for a specific application
The microkernel itself handles simple abstractions like address space, IPC, etc.
Downside to Microkernel
- Potential for performance loss
- Multiple syscalls/IPC calls
Why Performance Loss?
border crossing lead to a change in locality
Features of various OSes
Feature | Monolithic | DOS-like | Microkernel |
---|---|---|---|
Extensibility | false | true | true |
Protection | true | false | true |
Performance | true | true | false |