Appel système

Définition, exemples et bonnes pratiques

À 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

syscall appel au noyau primitive système

Antonymes

appel de fonction locale routine utilisateur

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.