À retenir
- C'est le pont entre les applications et le matériel de l'ordinateur.
- Il garantit la sécurité en empêchant les logiciels de faire n'importe quoi directement sur le processeur ou la mémoire.
- Chaque système d'exploitation (Windows, Linux, macOS) possède sa propre liste d'appels système.
Un appel système est le moyen par lequel un logiciel demande au cœur de l'ordinateur (le noyau) d'exécuter une tâche spécifique, comme lire un fichier ou se connecter à Internet. C'est une sorte de guichet sécurisé : l'application ne peut pas manipuler directement le matériel, elle doit passer par cette interface officielle pour que le système d'exploitation le fasse à sa place.
Étymologie
Vient du français « appel » (action de solliciter) et « système » (pour système d'exploitation). En anglais, on utilise le terme syscall. Historiquement, cela correspond au passage du « mode utilisateur » au « mode noyau » pour garantir la sécurité de la machine.
Exemples d'usage
open(): pour demander l'ouverture d'un fichier sur le disque dur.fork(): pour demander au système de créer un nouveau processus (lancer un nouveau programme).write(): pour envoyer des données vers l'écran ou un fichier.
Cas d'usage
Ce concept intervient dès qu'une application doit interagir avec le monde extérieur : enregistrer un document, afficher une image, envoyer un e-mail ou allouer de la mémoire vive pour stocker des données temporaires.
Bonnes pratiques
Pour un développeur, il est rare d'écrire des appels système directement. On utilise généralement des bibliothèques (comme la Standard C Library) qui sont plus simples à utiliser. Il est crucial de toujours vérifier le code de retour d'un appel système, car celui-ci peut échouer (par exemple, si le disque est plein ou si un fichier n'existe pas).
Synonymes
Antonymes
Conseil
Si vous débutez en programmation système (en C ou C++), apprenez à lire les pages de manuel (man pages) sous Linux ; elles décrivent précisément le comportement et les erreurs possibles de chaque appel système.
Questions fréquentes
Pourquoi un programme ne peut-il pas accéder directement au matériel ?
Pour des raisons de sécurité et de stabilité. Si chaque logiciel gérait le disque dur à sa façon, ils risqueraient d'effacer les données les uns des autres ou de faire planter l'ordinateur.
Un appel système est-il rapide ?
Non, c'est une opération relativement lourde car le processeur doit changer de mode de fonctionnement. Il faut donc éviter d'en faire des milliers par seconde inutilement.