Concepts
Processes
A program in execution
- Address Space
- All memory that a process can read or write.
- Thread
- One position of execution in a process. Does not have it’s own address space.
Virtual Memory
- Allows multiple programs to have the same view of having a completely ‘empty’ machine (memory starting at address 0).
- Provides protection – processes can not write to each other’s memory.
System Calls
- Often implemented via software interrupts.
- Actual code is in an area with the ‘system’ bit set, which makes it privileged.
Engineering
Monolithic
- The all-in-one approach, with one binary.
- Debugging and management can be a problem.
- Eg. Linux.
Microkernels
- Keep only the most necessary bits in kernel mode.
- Most kernel functionality in user mode, managed by the microkernel.