OS Structure Flashcards
UNIX
- OS for servers, desktops and Laptops
3 parts:
Programs
Kernel - allocates time and memory to program
Shell - interface between user and kernel
- Directory structure (files arranged in hierarchy tree structure)
- difficult security as users need rights access to the system and what they can do with the file, process etc must be determined
MAC OS X
- 10th developed version
- graphical OS developed by Apple
- layered structure
- maximum security (touch/Face ID)
- user biometrics secured and private
- regular maintenance (timely updates to prevent downgrade attacks)
MAC OS X Layered Structure
4 parts:
Darwin Core:
Based on UNIX structure, Mach is the main part and performs operations like memory use
Graphics Subsystem:
Quarts manages 2D graphics
Open GL supports 3D graphics
QuickTime for digital media
Application:
Provides classic environment to run applications like Carbon
Aqua:
User interface - provides good visual features
Simple structure
Ms dos
- 1888
- not well designed as it was the first
- bass hardware can be accessed by all layers which causes a big problem e.g. if the application layer fails so will the whole system because it’s not well protected
simple security, all user applications have access to all user files and can manipulate other user applications but anti-exploitation mechanisms have been put in place like guard pages
Monolithic structure
- everything below the system call interface and above the hardware is the kernel
- the kernel pack all functionalities into one such as file system and virtual memory making maintenance and implementing difficult, to change one functionality you have to touch the entire kernel
Layered structure
- divides into many layers that handle different functionalities. It is easy to implement and maintain because you can go straight to the problem without having to disturb the other layers
- design is very important as the layer can only communicate with the one below e.g. the back storage has to be bellow the memory management because it uses its services
- if a layer needs to use a different layer it must pass through all the layers
Microkernels
- instead of having a big kernel with many functionalities this approach removes the non essential components and implements them as systems and user level programs
- provides communication between client program and other services using message passing
- most functions are executed in user mode meaning if a layer crashed the whole system won’t unless in kernel mode. But it can suffer with performance decline due to high system overhead
Modules
- best approach
- it has a core kernel containing the most important functionalities, the others are present in the form of modules that are loaded into the core kernel when needed at run time or boot time
- each layer has a defined protected interface protecting them from accessing things they shouldn’t but they can communicate directly