adplus-dvertising

Introduction aux appels système

Introduction aux appels système

Les appels système fournissent une interface aux services mis à disposition par un système d'exploitation. Ces appels sont généralement disponibles sous forme de fonctions écrites en C et C++, bien que certaines tâches de bas niveau (par exemple, les tâches où le matériel doit être accessible directement) puissent être écrites à l'aide d'instructions en langage assembleur.

Un appel système est une méthode permettant à un programme informatique de demander un service au noyau du système d'exploitation sur lequel il s'exécute.

Les systèmes exécutent des milliers d'appels système par seconde. Cependant, la plupart des programmeurs ne voient jamais ce niveau de détail. En règle générale, les développeurs d'applications conçoivent des programmes selon une interface de programmation d'application (API). L'API spécifie un ensemble de fonctions disponibles pour un programmeur d'application, y compris les paramètres transmis à chaque fonction et les valeurs de retour auxquelles le programmeur peut s'attendre. Trois des API les plus courantes disponibles pour les programmeurs d'applications sont l'API Windows pour les systèmes Windows, l'API POSIX pour les systèmes basés sur POSIX (qui incluent pratiquement toutes les versions d'UNIX, Linux et macOS) et l'API Java pour les programmes qui s'exécutent sur la machine virtuelle Java. Un programmeur accède à une API via une bibliothèque de code fournie par le système d'exploitation. Dans le cas d'UNIX et de Linux pour les programmes écrits en langage C, la bibliothèque s'appelle libc.

Dans les coulisses, les fonctions qui composent une API invoquent généralement les appels système réels au nom du programmeur d'application. Par exemple, la fonction Windows CreateProcess() (qui, sans surprise, est utilisée pour créer un nouveau processus) invoque en fait l'appel système NTCreateProcess() dans le noyau Windows.

Un facteur important dans la gestion des appels système est l'environnement d'exécution (RTE) - la suite complète de logiciels nécessaires pour exécuter des applications écrites dans un langage de programmation donné, y compris ses compilateurs ou interpréteurs ainsi que d'autres logiciels, tels que des bibliothèques et des chargeurs (loaders). Le RTE fournit une interface d'appel système qui sert de lien vers les appels système mis à disposition par le système d'exploitation. L'interface d'appel système intercepte les appels de fonction dans l'API et invoque les appels système nécessaires dans le système d'exploitation.

Typiquement, un numéro est associé à chaque appel système, et l'interface d'appel système maintient une table indexée selon ces numéros. L'interface d'appel système invoque ensuite l'appel système prévu dans le noyau du système d'exploitation et renvoie l'état de l'appel système.

L'appelant n'a besoin de rien savoir de la façon dont l'appel système est implémenté ou de ce qu'il fait pendant l'exécution. Au lieu de cela, l'appelant n'a qu'à obéir à l'API et à comprendre ce que le système d'exploitation fera à la suite de l'exécution de cet appel système.

Les appels système se produisent de différentes manières, selon l'ordinateur utilisé. Souvent, plus d'informations sont nécessaires que simplement l'identité de l'appel système souhaité. Trois méthodes générales sont utilisées pour transmettre des paramètres au système d'exploitation. L'approche la plus simple consiste à passer les paramètres dans des registres. Dans certains cas, cependant, il peut y avoir plus de paramètres que de registres. Dans ces cas, les paramètres sont généralement stockés dans un bloc, ou table, en mémoire, et l'adresse du bloc est passée en paramètre dans un registre.

Linux utilise une combinaison de ces approches. S'il y a cinq paramètres ou moins, des registres sont utilisés. S'il y a plus de cinq paramètres, la méthode des blocs est utilisée. Les paramètres peuvent également être placés ou poussés sur une pile par le programme et retirés de la pile par le système d'exploitation. Certains systèmes d'exploitation préfèrent la méthode du bloc ou de la pile car ces approches ne limitent pas le nombre ou la longueur des paramètres transmis.

Les appels système peuvent être regroupés grosso modo en six catégories principales :

  •  Contrôle de processus,
  •  Gestion de fichiers,
  •  Gestion de périphériques,
  •  Maintenance des informations,
  •  Communications et
  •  Protection.
Partager ce cours avec tes amis :
Rédigé par ESSADDOUKI Mostafa
ESSADDOUKI
The education of the 21st century opens up opportunities to not merely teach, but to coach, mentor, nurture and inspire.