Overview
- Developed in 1972 to create Unix utilities
- Unix kernel was re-implemented in C
- Most current operating system kernels are written in C (Linux, BSD,
Windows, MacOS, iOS)
Why C?
- Low-level, portable language
Low-level
- Allows direct access to memory
- Allows assembly to be embedded
Portable
- Assembly targets a specific ISA
- C can be compiled for different architectures
- OS kernels can be run on x86 and ARM without as much
modification
Simplicity
- C has a relatively small number of primitives
- Compilers can be small