La machine réelle comporte principalement : un ou plusieurs processeurs, de la mémoire, un bus, et des périphériques (clavier, souris, écran, disque(s), imprimante, carte(s) réseau).
Machine virtuelle = machine réelle + système d'exploitation ; seule utilisable.
Chaque tâche a l'illusion de disposer:
Le système d'exploitation gère principalement :
D'autres fonctions importantes sont ou non considérées comme faisant partie du système d'exploitation :
Une évolution en présentant les caractéristiques et les défauts majeurs.
Le noyau du système d'exploitation intervient par déroutement (trap) :
Exécution schématique d'un déroutement :
Le passage du processeur en mode superviseur modifie le fonctionnement de la MMU, et permet donc l'accès à une partie de la mémoire invisible depuis un programme utilisateur: protection contre les erreurs de programmation ou les virus.
Certains processeurs possèdent plusieurs modes privilégiés : anneaux concentriques, points d'entrée contrôlés (gateways).
Ne pas confondre les bibliothèques de fonctions (procédures) système, qui facilitent la vie (exemple : printf), et la liste (courte) des appels-systèmes.
Le noyau est l'ensemble des procédures qui, en mode superviseur, traitent les déroutements ; il assure les fonctions de base : gestion des processus, de la mémoire, et des E/S de bas niveau. Les autres parties du système d'exploitation peuvent être réalisées sous formes de serveurs (exemples : NFS, X-Window). Unix a un gros noyau, on préfère aujourd'hui un micro-noyau (qui gère aussi les messages) et des serveurs. Solution bien adaptée aux réseaux.