Vous êtes sur la page 1sur 2

Appel système

En informatique, un appel système (c'est-à-dire appel


1
au système [d'exploitation] ) (en anglais, system call,
abrégé en syscall) désigne le moment où un
programme s'interrompt pour demander au système
d'exploitation d'accomplir pour lui une certaine tâche.
L'expression désigne donc aussi la fonction primitive
elle-même fournie par le noyau d'un système
d'exploitation. Sont ainsi contrôlées et uniformisées les
applications de l'espace utilisateur ; certains droits
d'accès peuvent de plus être réservés au noyau. Le
noyau lui-même utilise ces fonctions, qui deviennent la
seule porte entre un programme et le « monde Tous les appels système se font par la System
extérieur ». Call Interface, l'interface de programmation du
noyau de système d'exploitation.
Le rôle du noyau est de gérer les ressources matérielles
(il contient des pilotes de périphériques) et de fournir
aux programmes une interface uniforme pour l'accès à ces ressources. Dans cette configuration, par
exemple, toutes les instructions de lecture ou d'écriture sur un média externe doivent passer par le noyau,
qui les passe au pilote, lequel les passe au média. L'exigence de modularité est ainsi satisfaite.

Quelques appels système classiques :

open, read, write et close qui permettent les manipulations sur les systèmes de fichiers ;
brk, sbrk, utilisés par malloc et free pour allouer et libérer de la mémoire.
Sur la majorité des systèmes d'exploitation, les appels système peuvent être utilisés comme de simples
fonctions écrites en C.

Sur la plupart des noyaux (notamment les noyaux monolithiques comme le noyau Linux) les appels système
sont implémentés par une instruction machine (interrupt, supervisor call…) qui fait basculer le processeur
dans le noyau en mode superviseur (en ayant convenablement passé les paramètres de l'appel système, par
exemple dans les registres). À cet égard, l'appel système est distinct d'un appel de fonction : la fonction est
contenue dans le programme lui-même, et est modifiable. Ce n'est pas le cas de l'appel au système : du point
de vue du programme applicatif, un appel système est atomique.

Un système d'exploitation comme Linux a plus de 380 appels système distincts (dont certains se recoupent
ou offrent des fonctionnalités similaires : read, pread, voire mmap et recv).

Appels système principaux d'UNIX


UNIX comportait à l'origine 80 appels système. La section 2 des pages de manuel est consacrée aux appels
système (man 2 read), pour éviter toute ambiguïté avec des fonctions de bibliothèques ou de shell
homonyme, on utilise souvent le suffixe (2) ou () après le nom d'un appel système.
2
En voici les principaux :

Système de fichiers
3
create, open, close, read, write, lseek , dup, link, unlink, stat, fstat, access, chmod, chown,
umask, ioctl

Contrôle des processus

execve, fork, wait, _exit, getuid, geteuid, getgid, getegid, getpid, getppid, signal, kill, alarm,
chdir

Communication inter-processus
4 5
pipe , msgget, msgsnd, msgrcv, msgctl, semget, semop, shmget, shmat, shmdt

Notes et références
1. Parfois appelé « superviseur » comme sur les IBM 360 et 370.
2. UNIX System Calls (http://www.di.uevora.pt/~lmr/syscalls.html)
3. « manpages.ubuntu.com/manpages/h… (https://manpages.ubuntu.com/manpages/hirsute/fr/
man2/lseek.2.html) »(Archive.org (https://web.archive.org/web/*/https://manpages.ubuntu.com/manpages/hirsute/fr/
man2/lseek.2.html) • Wikiwix (https://archive.wikiwix.com/cache/?url=https://manpages.ubuntu.com/manpages/hirsute/fr/m
an2/lseek.2.html) • Archive.is (https://archive.is/https://manpages.ubuntu.com/manpages/hirsute/fr/man2/lseek.2.html) •
Google (https://webcache.googleusercontent.com/search?hl=fr&q=cache:https://manpages.ubuntu.com/manpages/hirsut
e/fr/man2/lseek.2.html) • Que faire ?).

4. http://purargane.de/cours/linux/cours4.pdf.
5. http://www-perso.unilim.fr/tayed.ould-braham/C_parall_pdf/TTD_parall3.pdf.

Voir aussi
POSIX

Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Appel_système&oldid=204606359 ».

Vous aimerez peut-être aussi