6. Interfaces, bibliothèques et appels système
6.1 Interfaces destinées aux humains et aux programmes
Une interface graphique emploie fenêtres, icônes, menus et pointeur. Elle facilite l'interaction humaine, mais elle n'est pas le système d'exploitation à elle seule.
Une interface de ligne de commande reçoit des commandes textuelles. Une commande peut être intégrée au shell ou désigner un programme externe. Les pipes permettent d'enchaîner des outils; les scripts automatisent des séquences. La CLI est particulièrement utile pour l'administration, la reproductibilité et la composition de petits programmes.
L'interface fondamentale destinée aux logiciels est l'ensemble des appels système.
6.2 De l'API au noyau
Une application appelle rarement directement une primitive brute du noyau. Elle utilise généralement une API ou une bibliothèque : Win32, POSIX ou bibliothèque standard d'un langage.
Le chemin conceptuel est :
- l'application appelle une fonction de bibliothèque;
- la fonction prépare le numéro de l'appel et les paramètres;
- une instruction contrôlée transfère l'exécution vers le noyau;
- le noyau identifie l'appel dans une table, valide la demande et exécute le service;
- une valeur de retour ou un code d'erreur revient à l'application.
Le programme connaît le contrat de l'interface, pas nécessairement son implémentation interne.
6.3 Exemple printf et write
printf() est une fonction de la bibliothèque standard C. Elle formate le texte en espace utilisateur, puis peut utiliser l'appel système write() pour transmettre les octets à la sortie. Une fonction de bibliothèque n'est donc pas automatiquement un appel système, même lorsqu'elle en déclenche un.
Sous Linux, des appels comme open, read, write, close, fork, execve et exit servent d'entrées contrôlées vers des ressources protégées.
6.4 Catégories d'appels système
| Catégorie | Opérations typiques |
|---|---|
| Contrôle de processus | Créer, terminer, charger, exécuter, attendre, allouer de la mémoire |
| Gestion des fichiers | Créer, supprimer, ouvrir, fermer, lire, écrire, modifier les attributs |
| Gestion des périphériques | Demander ou libérer un périphérique, lire, écrire, consulter les attributs |
| Communication | Établir une connexion, envoyer ou recevoir des messages, partager de la mémoire |
| Protection | Consulter ou modifier les permissions, contrôler l'accès |
6.5 Programmes système
Les programmes système rendent les services du noyau utilisables au quotidien. Ils comprennent :
- les outils de fichiers comme
mkdiretcp; - les outils d'information sur la date, la mémoire, le disque, les utilisateurs et les performances;
- les éditeurs et filtres comme
vim,nanoetgrep; - les services d'arrière-plan lancés au démarrage ou maintenus pendant toute la session.
Une commande peut envelopper quelques appels système ou contenir une logique élaborée. Les services d'arrière-plan peuvent initialiser la machine, gérer l'impression, surveiller un système ou effectuer des tâches récurrentes.
Pour un service protégé, l’application passe généralement par une bibliothèque/API en espace utilisateur. Une instruction contrôlée franchit l’interface d’appels système. Le noyau identifie la demande, valide paramètres et droits, puis utilise les pilotes pour servir l’accès au matériel. Valeur de retour ou erreur revient vers l’application. Les flèches descendent dans l’ordre de la demande; le retour suit le chemin inverse. Toute fonction de bibliothèque ne fait pas un appel système : printf peut tamponner et différer write. Une transition de mode n’implique pas nécessairement un changement de processus. Les pilotes sont représentés du côté privilégié dans ce modèle conceptuel; leur placement dépend de l’architecture (§7).
Source : 01-02 - Introduction/SOMMAIRE_MAITRE_SEMAINE_01.md · §3.4; §6.1–6.3; §7.2–7.3; §8.3–8.4. Schéma original du portail, relu le 15 octobre 2026; aucune source manquante reconstruite.