Introduction to UNIX: basic concepts
 : UNIX design
 : the Kernel
Previous: UNIX design
Next: Virtual memory
  3.1. the Kernel
- Can be monolithic (Linux, BSD) or micro-kernel (OS X/Darwin)
- preemptive multitasking
- takes care of:
- I/O (disk, terminals, printers, tapes, ...)
- basic peripheral control (disk, serial, NICs...) 
- memory management (allocation, recovery, Virtual Memory / swap)
- timesharing / scheduling of processes
- networking (IP, etc...)
 
The kernel is always running.  It schedules running tasks one at a time
(context switching) so that they get an equal share of the CPU time.
 Scheduling of processes
Scheduling of processes
 
Introduction to UNIX: basic concepts
 : UNIX design
 : the Kernel
Previous: UNIX design
Next: Virtual memory