Introduction : Fonctions et caractéristiques d'un système d'exploitation, allocation et répartition des ressources, bref historique.
Virtualisation du CPU : Abstraction d'un processus, interface, états, structures de données, limited direct execution, appels système, context switches, préemption, algorithmes d'ordonnancement.
Virtualisation de la mémoire : Abstraction d'un espace d'adressage, relocalisation statique et dynamique, segmentation, pagination, translation lookaside buffer (TLB), stockage de la table des pages, gestion du swap.
Concurrence : Abstraction d'un thread, primitives de synchronisation (verrous, variables de condition, sémaphores), supports OS et hardware pour leur implémentation, problèmes de concurrence classiques (Producteurs/Consommateurs, Lecteurs/Éditeurs, Thread Throttling, Dîner des Philosophes), bugs de concurrence fréquents, discussion en détail des deadlocks.
Persistance : Périphériques d'entrée-sortie, disque (fonctionnement, ordonnancement, RAID), systèmes de fichiers (interface POSIX, implémentation, journalisation).

Tous les concepts sont illustrés dans le système d'exploitation minimal xv6.

UNIX : Manipulation des processus, du système de fichiers et du noyau à travers des programmes en C (interface POSIX) et des scripts shell.