10. Appels système et protection du noyau
10.1 API, bibliothèque et noyau
Une application utilise généralement une fonction d'API ou de bibliothèque. Certaines fonctions s'exécutent entièrement en espace utilisateur; d'autres encapsulent un appel système. Par exemple, une bibliothèque peut préparer les paramètres de read, déclencher l'entrée protégée, puis traduire le résultat ou l'erreur.
Il ne faut pas confondre :
- la fonction visible du programmeur;
- le mécanisme matériel d'entrée;
- le répartiteur du noyau;
- la routine interne qui réalise le service.
10.2 Mécanique générale
- le programme appelle une interface;
- la bibliothèque place numéro et paramètres selon l'ABI;
- une instruction spéciale transfère l'exécution au noyau;
- le répartiteur identifie le service;
- le noyau valide pointeurs, descripteurs, tailles et permissions;
- il exécute l'opération;
- une valeur ou une erreur revient au programme.
Le numéro permet à un point d'entrée commun de servir plusieurs opérations. Parmi les exemples du cours : exit, waitpid, read, write, fork, kill et time.
10.3 Exemple historique Linux x86
Le diaporama montre l'interruption logicielle INT 0x80 et un répartiteur system_call() dirigeant vers des routines sys_xxx. Ce modèle explique bien le principe, mais il est historique et lié à l'ABI i386. Les architectures modernes utilisent souvent d'autres instructions, registres et numéros.
Le navigateur Bootlin fourni vise Linux 2.6.32; il sert à suivre une organisation de code précise, pas à décrire automatiquement un noyau actuel. L'aide-mémoire i386 doit être utilisé avec la même prudence. Les pages de manuel, la documentation de l'architecture et les sources correspondant à la version exécutée restent les références techniques.
10.4 Références complémentaires
- La liste historique des appels Linux sert d'index, mais est ancienne et n'était plus récupérable automatiquement.
- Bootlin permet de parcourir les sources Linux 2.6.32.
- L'aide-mémoire Linux décrit notamment
int 0x80et la convention i386. - La documentation Microsoft montre les paramètres et responsabilités de
CreateProcess. - Les références sur l'IDT et les interruptions complètent les schémas du cours, sans remplacer les manuels d'architecture.