C Language

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)

Features

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