syscalls(2) | System Calls Manual | syscalls(2) |
syscalls - Appels système de Linux
Appels système de Linux.
L'appel système est l'interface fondamentale entre une application et le noyau Linux.
Les appels système ne sont en général pas appelés directement, mais à partir de fonctions enveloppe de la glibc (ou d'une autre bibliothèque). Pour avoir des détails pour l'appel direct d'un appel système, consultez intro(2). Souvent, mais pas toujours, le nom de la fonction enveloppe est le même que celui de l'appel système à invoquer. Par exemple, la glibc contient une fonction chdir() qui invoque l'appel système « chdir » sous-jacent.
Souvent, la fonction enveloppe de la glibc est très petite, ne faisant que très peu en plus de placer les paramètres dans les bons registres avant d'appeler l'appel système puis de positionner errno comme il faut une fois que l'appel système a rendu la main. (Ce sont les mêmes étapes qui sont effectuées par syscall(2), qui peut être utilisé pour les appels système pour lesquels il n'y a pas de fonction enveloppe de fournies.) Note : les appels système indiquent un échec en renvoyant un numéro d'erreur négatif à l'appelant sur les architectures n'ayant pas de registre ou d'attribut d'erreur séparé comme noté dans syscall(2) ; quand cela arrive, la fonction enveloppe prend l'opposé du numéro d'erreur (pour le rendre positif), le copie dans errno et renvoie -1 à l'appelant de la fonction enveloppe.
Des fois, cependant, la fonction réalise certaines opérations avant d'invoquer l'appel système. Par exemple, de nos jour il y a deux appels système truncate(2) et truncate64(2) (pour les raisons données ci-dessous) et la fonction truncate() de la glibc vérifie quels appels système sont fournis par le noyau et détermine lequel doit être utilisé.
Voici une liste des appels système Linux. Dans cette liste, la colonne Noyau indique la version du noyau dans laquelle ils sont apparus, s'ils sont apparu dans la version 2.2 de Linux ou après. Remarquez les points suivants :
La liste des appels système qui sont disponibles dans la version 5.14 (ou dans certains cas, uniquement pour certains noyaux plus anciens) est la suivante :
Appel système | Noyau | Notes |
_llseek(2) | 1.2 | |
_newselect(2) | 2.0 | |
_sysctl(2) | 2.0 | Retiré dans 5.5 |
accept(2) | 2.0 | Voir les notes de socketcall(2) |
accept4(2) | 2.6.28 | |
access(2) | 1.0 | |
acct(2) | 1.0 | |
add_key(2) | 2.6.10 | |
adjtimex(2) | 1.0 | |
alarm(2) | 1.0 | |
alloc_hugepages(2) | 2.5.36 | Retiré dans 2.5.44 |
arc_gettls(2) | 3.9 | ARC uniquement |
arc_settls(2) | 3.9 | ARC uniquement |
arc_usr_cmpxchg(2) | 4.9 | ARC uniquement |
arch_prctl(2) | 2.6 | x86_64, x86 depuis 4.12 |
atomic_barrier(2) | 2.6.34 | m68k uniquement |
atomic_cmpxchg_32(2) | 2.6.34 | m68k uniquement |
bdflush(2) | 1.2 | Obsolète (ne fait rien) depuis 2.6 |
bind(2) | 2.0 | Voir les notes de socketcall(2) |
bpf(2) | 3.18 | |
brk(2) | 1.0 | |
breakpoint(2) | 2.2 | OABI ARM uniquement, défini par le préfixe __ARM_NR |
cacheflush(2) | 1.2 | Pas dans x86 |
capget(2) | 2.2 | |
capset(2) | 2.2 | |
chdir(2) | 1.0 | |
chmod(2) | 1.0 | |
chown(2) | 2.2 | Consulter chown(2) pour le détail des versions |
chown32(2) | 2.4 | |
chroot(2) | 1.0 | |
clock_adjtime(2) | 2.6.39 | |
clock_getres(2) | 2.6 | |
clock_gettime(2) | 2.6 | |
clock_nanosleep(2) | 2.6 | |
clock_settime(2) | 2.6 | |
clone2(2) | 2.4 | IA-64 uniquement |
clone(2) | 1.0 | |
clone3(2) | 5.3 | |
close(2) | 1.0 | |
close_range(2) | 5.9 | |
connect(2) | 2.0 | Voir les notes de socketcall(2) |
copy_file_range(2) | 4.5 | |
creat(2) | 1.0 | |
create_module(2) | 1.0 | Retiré dans 2.6 |
delete_module(2) | 1.0 | |
dup(2) | 1.0 | |
dup2(2) | 1.0 | |
dup3(2) | 2.6.27 | |
epoll_create(2) | 2.6 | |
epoll_create(2) | 2.6.27 | |
epoll_ctl(2) | 2.6 | |
epoll_pwait(2) | 2.6.19 | |
epoll_pwait2(2) | 5.11 | |
epoll_wait(2) | 2.6 | |
eventfd(2) | 2.6.22 | |
eventfd2(2) | 2.6.27 | |
execv(2) | 2.0 | SPARC/SPARC64 uniquement, pour compatibilité avec SunOS |
execve(2) | 1.0 | |
execveat(2) | 3.19 | |
exit(2) | 1.0 | |
exit_group(2) | 2.6 | |
faccessat(2) | 2.6.16 | |
faccessat2(2) | 5.8 | |
fadvise64(2) | 2.6 | |
fadvise64_64(2) | 2.6 | |
fallocate(2) | 2.6.23 | |
fanotify_init(2) | 2.6.37 | |
fanotify_mark(2) | 2.6.37 | |
fchdir(3) | 1.0 | |
fchmod(2) | 1.0 | |
fchmodat(2) | 2.6.16 | |
fchown(2) | 1.0 | |
fchown32(2) | 2.4 | |
fchownat(2) | 2.6.16 | |
fcntl(2) | 1.0 | |
fcntl64(2) | 2.4 | |
fdatasync(2) | 2.0 | |
fgetxattr(2) | 2.6 ; 2.4.18 | |
finit_module(2) | 3.8 | |
flistxattr(2) | 2.6 ; 2.4.18 | |
flock(2) | 2.0 | |
fork(2) | 1.0 | |
free_hugepages(2) | 2.5.36 | Retiré dans 2.5.44 |
fremovexattr(2) | 2.6 ; 2.4.18 | |
fsconfig(2) | 5.2 | |
fsetxattr(2) | 2.6 ; 2.4.18 | |
fsmount(2) | 5.2 | |
fsopen(2) | 5.2 | |
fspick(2) | 5.2 | |
fstat(2) | 1.0 | |
fstat64(2) | 2.4 | |
fstatat64(2) | 2.6.16 | |
fstatfs(2) | 1.0 | |
fstatfs64(2) | 2.6 | |
fsync(2) | 1.0 | |
ftruncate(2) | 1.0 | |
ftruncate64(2) | 2.4 | |
futex(2) | 2.6 | |
futimesat(2) | 2.6.16 | |
get_kernel_syms(2) | 1.0 | Retiré dans 2.6 |
get_mempolicy(2) | 2.6.6 | |
get_robust_list(2) | 2.6.17 | |
get_thread_area(2) | 2.6 | |
get_tls(2) | 4.15 | OABI ARM uniquement, a le préfixe __ARM_NR |
getcpu(2) | 2.6.19 | |
getcwd(2) | 2.2 | |
getdents(2) | 2.0 | |
getdents64(2) | 2.4 | |
getdomainname(2) | 2.2 | SPARC, SPARC64 ; disponible sous le nom osf_getdomainname(2) sur Alpha depuis Linux 2.0 |
getdtablesize(2) | 2.0 | SPARC (retiré dans 2.6.26), disponible sur Alpha sous le nom osf_getdtablesize(2) |
getegid(2) | 1.0 | |
getegid32(2) | 2.4 | |
geteuid(2) | 1.0 | |
geteuid32(2) | 2.4 | |
getgid(2) | 1.0 | |
getgid32(2) | 2.4 | |
getgroups(2) | 1.0 | |
getgroups32(2) | 2.4 | |
gethostname(2) | 2.0 | Alpha, disponible sur SPARC jusqu'à Linux 2.6.26 |
getitimer(2) | 1.0 | |
getpeername(2) | 2.0 | Voir les notes de socketcall(2) |
getpagesize(2) | 2.0 | Pas dans x86 |
getpgid(2) | 1.0 | |
getpgrp(2) | 1.0 | |
getpid(2) | 1.0 | |
getppid(2) | 1.0 | |
getpriority(2) | 1.0 | |
getrandom(2) | 3.17 | |
getresgid(2) | 2.2 | |
getresgid32(2) | 2.4 | |
getresuid(2) | 2.2 | |
getresuid32(2) | 2.4 | |
getrlimit(2) | 1.0 | |
getrusage(2) | 1.0 | |
getsid(2) | 2.0 | |
getsockname(2) | 2.0 | Voir les notes de socketcall(2) |
getsockopt(2) | 2.0 | Voir les notes de socketcall(2) |
gettid(2) | 2.4.11 | |
gettimeofday(2) | 1.0 | |
getuid(2) | 1.0 | |
getuid32(2) | 2.4 | |
getunwind(2) | 2.4.8 | IA-64 uniquement ; obsolète |
getxattr(2) | 2.6 ; 2.4.18 | |
getxgid(2) | 2.0 | Alpha uniquement ; voir NOTES |
getxpid(2) | 2.0 | Alpha uniquement ; voir NOTES |
getxuid(2) | 2.0 | Alpha uniquement ; voir NOTES |
init_module(2) | 1.0 | |
inotify_add_watch(2) | 2.6.13 | |
inotify_init(2) | 2.6.13 | |
inotify_init1(2) | 2.6.27 | |
inotify_rm_watch(2) | 2.6.13 | |
io_cancel(2) | 2.6 | |
io_destroy(2) | 2.6 | |
io_getevents(2) | 2.6 | |
io_pgetevents(2) | 4.18 | |
io_setup(2) | 2.6 | |
io_submit(2) | 2.6 | |
io_uring_enter(2) | 5.1 | |
io_uring_register(2) | 5.1 | |
io_uring_setup(2) | 5.1 | |
ioctl(2) | 1.0 | |
ioperm(2) | 1.0 | |
iopl(2) | 1.0 | |
ioprio_get(2) | 2.6.13 | |
ioprio_set(2) | 2.6.13 | |
ipc(2) | 1.0 | |
kcmp(2) | 3.5 | |
kern_features(2) | 3.7 | SPARC64 uniquement |
kexec_file_load(2) | 3.17 | |
kexec_load(2) | 2.6.13 | |
keyctl(2) | 2.6.10 | |
kill(2) | 1.0 | |
landlock_add_rule(2) | 5.13 | |
landlock_create_ruleset(2) | 5.13 | |
landlock_restrict_self(2 | 5.13 | |
lchown(2) | 1.0 | Consulter chown(2) pour le détail des versions |
lchown32(2) | 2.4 | |
lgetxattr(2) | 2.6 ; 2.4.18 | |
link(2) | 1.0 | |
linkat(2) | 2.6.16 | |
listen(2) | 2.0 | Voir les notes de socketcall(2) |
listxattr(2) | 2.6 ; 2.4.18 | |
llistxattr(2) | 2.6 ; 2.4.18 | |
lookup_dcookie(2) | 2.6 | |
lremovexattr(2) | 2.6 ; 2.4.18 | |
lseek(2) | 1.0 | |
lsetxattr(2) | 2.6 ; 2.4.18 | |
lstat(2) | 1.0 | |
lstat64(2) | 2.4 | |
madvise(2) | 2.4 | |
mbind(2) | 2.6.6 | |
memory_ordering(2) | 2.2 | SPARC64 uniquement |
membarrier(2) | 3.17 | |
memfd_create(2) | 3.17 | |
memfd_secret(2) | 5.14 | |
migrate_pages(2) | 2.6.16 | |
mincore(2) | 2.4 | |
mkdir(2) | 1.0 | |
mkdirat(2) | 2.6.16 | |
mknod(2) | 1.0 | |
mknodat(2) | 2.6.16 | |
mlock(2) | 2.0 | |
mlock2(2) | 4.4 | |
mlockall(2) | 2.0 | |
mmap(2) | 1.0 | |
mmap2(2) | 2.4 | |
modify_ldt(2) | 1.0 | |
mount(2) | 1.0 | |
move_mount(2) | 5.2 | |
move_pages(2) | 2.6.18 | |
mprotect(2) | 1.0 | |
mq_getsetattr(2) | 2.6.6 | |
mq_notify(2) | 2.6.6 | |
mq_open(2) | 2.6.6 | |
mq_timedreceive(2) | 2.6.6 | |
mq_timedsend(2) | 2.6.6 | |
mq_unlink(2) | 2.6.6 | |
mremap(2) | 2.0 | |
msgctl(2) | 2.0 | Voir notes de ipc(2) |
msgget(2) | 2.0 | Voir notes de ipc(2) |
msgrcv(2) | 2.0 | Voir notes de ipc(2) |
msgsnd(2) | 2.0 | Voir notes de ipc(2) |
msync(2) | 2.0 | |
munlock(2) | 2.0 | |
munlockall(2) | 2.0 | |
munmap(2) | 1.0 | |
name_to_handle_at(2) | 2.6.39 | |
nanosleep(2) | 2.0 | |
newfstatat(2) | 2.6.16 | Voir stat(2) |
nfsservctl(2) | 2.2 | Retiré dans 3.1 |
nice(2) | 1.0 | |
old_adjtimex(2) | 2.0 | Alpha uniquement ; voir NOTES |
old_getrlimit(2) | 2.4 | Variante ancienne de getrlimit(2) qui utilisait une valeur différente pour RLIM_INFINITY |
oldfstat(2) | 1.0 | |
oldlstat(2) | 1.0 | |
oldolduname(2) | 1.0 | |
oldstat(2) | 1.0 | |
oldumount(2) | 2.4.116 | Nom de l'ancien appel système umount(2) sur Alpha |
olduname(2) | 1.0 | |
open(2) | 1.0 | |
open_by_handle_at(2) | 2.6.39 | |
open_tree(2) | 5.2 | |
openat(2) | 2.6.16 | |
openat2(2) | 5.6 | |
or1k_atomic(2) | 3.1 | OpenRISC 1000 uniquement |
pause(2) | 1.0 | |
pciconfig_iobase(2) | 2.2.15 ; 2.4 | Pas dans x86 |
pciconfig_read(2) | 2.0.26 ; 2.2 | Pas dans x86 |
pciconfig_write(2) | 2.0.26 ; 2.2 | Pas dans x86 |
perf_event_open(2) | 2.6.31 | Ancien perf_counter_open() dans 2.6.31 ; renommé dans 2.6.32 |
personality(2) | 1.2 | |
perfctr(2) | 2.2 | SPARC uniquement ; retiré depuis 2.6.34 |
perfmonctl(2) | 2.4 | IA-64 uniquement ; retiré depuis 5.10 |
pidfd_getfd(2) | 5.6 | |
pidfd_send_signal(2) | 5.1 | |
pidfd_open(2) | 5.3 | |
pipe(2) | 1.0 | |
pipe2(2) | 2.6.27 | |
pivot_root(2) | 2.4 | |
pkey_alloc(2) | 4.8 | |
pkey_free(2) | 4.8 | |
pkey_mprotect(2) | 4.8 | |
poll(2) | 2.0.36 ; 2.2 | |
ppoll(2) | 2.6.16 | |
prctl(2) | 2.2 | |
pread64(2) | Ajouté comme « pread » dans 2.2 ; renommé « pread64 » depuis 2.6 | |
preadv(2) | 2.6.30 | |
preadv2(2) | 4.6 | |
prlimit64(2) | 2.6.36 | |
process_madvise(2) | 5.10 | |
process_vm_readv(2) | 3.2 | |
process_vm_writev(2) | 3.2 | |
pselect6(2) | 2.6.16 | |
ptrace(2) | 1.0 | |
pwrite64(2) | Ajouté comme « pwrite » dans 2.2 ; renommé « pwrite64 » depuis 2.6 | |
pwritev(2) | 2.6.30 | |
pwritev2(2) | 4.6 | |
query_module(2) | 2.2 | Retiré dans 2.6 |
quotactl(2) | 1.0 | |
quotactl_fd(2) | 5.14 | |
read(2) | 1.0 | |
readahead(2) | 2.4.13 | |
readdir(2) | 1.0 | |
readlink(2) | 1.0 | |
readlinkat(2) | 2.6.16 | |
readv(2) | 2.0 | |
reboot(2) | 1.0 | |
recv(2) | 2.0 | Voir les notes de socketcall(2) |
recvfrom(2) | 2.0 | Voir les notes de socketcall(2) |
recvmsg(2) | 2.0 | Voir les notes de socketcall(2) |
recvmmsg(2) | 2.6.33 | |
remap_file_pages(2) | 2.6 | Obsolète depuis 3.16 |
removexattr(2) | 2.6 ; 2.4.18 | |
rename(2) | 1.0 | |
renameat2(2) | 2.6.16 | |
renameat2(2) | 3.15 | |
request_key(2) | 2.6.10 | |
restart_syscall(2) | 2.6 | |
riscv_flush_icache(2) | 4.15 | RISC-V uniquement |
rmdir(2) | 1.0 | |
rseq(2) | 4.18 | |
rt_sigaction(2) | 2.2 | |
rt_sigpending(2) | 2.2 | |
rt_sigprocmask(2) | 2.2 | |
rt_sigqueueinfo(2) | 2.2 | |
rt_sigreturn(2) | 2.2 | |
rt_sigsuspend(2) | 2.2 | |
rt_sigtimedwait(2) | 2.2 | |
rt_tgsigqueueinfo(2) | 2.6.31 | |
rtas(2) | 2.6.2 | PowerPC/PowerPC64 uniquement |
s390_runtime_instr(2) | 3.7 | s390 uniquement |
s390_pci_mmio_read(2) | 3.19 | s390 uniquement |
s390_pci_mmio_write(2) | 3.19 | s390 uniquement |
s390_sthyi(2) | 4.15 | s390 uniquement |
s390_guarded_storage(2) | 4.12 | s390 uniquement |
sched_get_affinity(2) | 2.6 | Nom de sched_getaffinity(2) sur SPARC et SPARC64 |
sched_get_priority_max(2) | 2.0 | |
sched_get_priority_min(2) | 2.0 | |
sched_getaffinity(2) | 2.6 | |
sched_getattr(2) | 3.14 | |
sched_getparam(2) | 2.0 | |
sched_getscheduler(2) | 2.0 | |
sched_rr_get_interval(2) | 2.0 | |
sched_set_affinity(2) | 2.6 | Nom de sched_setaffinity(2) sur SPARC et SPARC64 |
sched_setaffinity(2) | 2.6 | |
sched_setattr(2) | 3.14 | |
sched_setparam(2) | 2.0 | |
sched_setscheduler(2) | 2.0 | |
sched_yield(2) | 2.0 | |
seccomp(2) | 3.17 | |
select(2) | 1.0 | |
semctl(2) | 2.0 | Voir notes de ipc(2) |
semget(2) | 2.0 | Voir notes de ipc(2) |
semop(2) | 2.0 | Voir notes de ipc(2) |
semtimedop(2) | 2.6 ; 2.4.22 | |
send(2) | 2.0 | Voir les notes de socketcall(2) |
sendfile(2) | 2.2 | |
sendfile64(2) | 2.6 ; 2.4.19 | |
sendmmsg(2) | 3.0 | |
sendmsg(2) | 2.0 | Voir les notes de socketcall(2) |
sendto(2) | 2.0 | Voir les notes de socketcall(2) |
set_mempolicy(2) | 2.6.6 | |
set_robust_list(2) | 2.6.17 | |
set_thread_area(2) | 2.6 | |
set_tid_address(2) | 2.6 | |
set_tls(2) | 2.6.11 | OABI/EABI ARM uniquement (la constante a le préfixe __ARM_NR) |
setdomainname(2) | 1.0 | |
setfsgid(2) | 1.2 | |
setfsgid32(2) | 2.4 | |
setfsuid(2) | 1.2 | |
setfsuid32(2) | 2.4 | |
setgid(2) | 1.0 | |
setgid32(2) | 2.4 | |
setgroups(2) | 1.0 | |
setgroups32(2) | 2.4 | |
sethae(2) | 2.0 | Alpha uniquement ; voir NOTES |
sethostname(2) | 1.0 | |
setitimer(2) | 1.0 | |
setns(2) | 3.0 | |
setpgid(2) | 1.0 | |
getpgrp(2) | 2.0 | Nom alternatif pour setpgid(2) sur Alpha |
setpriority(2) | 1.0 | |
setregid(2) | 1.0 | |
setregid32(2) | 2.4 | |
setresgid(2) | 2.2 | |
setresgid32(2) | 2.4 | |
setresuid(2) | 2.2 | |
setresuid32(2) | 2.4 | |
setreuid(2) | 1.0 | |
setreuid32(2) | 2.4 | |
setrlimit(2) | 1.0 | |
setsid(2) | 1.0 | |
setsockopt(2) | 2.0 | Voir les notes de socketcall(2) |
settimeofday(2) | 1.0 | |
setuid(2) | 1.0 | |
setuid32(2) | 2.4 | |
setup(2) | 1.0 | Retiré dans 2.2 |
setxattr(2) | 2.6 ; 2.4.18 | |
sgetmask(2) | 1.0 | |
shmat(2) | 2.0 | Voir notes de ipc(2) |
shmctl(2) | 2.0 | Voir notes de ipc(2) |
shmdt(2) | 2.0 | Voir notes de ipc(2) |
shmget(2) | 2.0 | Voir notes de ipc(2) |
shutdown(2) | 2.0 | Voir les notes de socketcall(2) |
sigaction(2) | 1.0 | |
sigaltstack(2) | 2.2 | |
signal(2) | 1.0 | |
signalfd(2) | 2.6.22 | |
signalfd4(2) | 2.6.27 | |
sigpending(2) | 1.0 | |
sigprocmask(2) | 1.0 | |
sigreturn(2) | 1.0 | |
sigsuspend(2) | 1.0 | |
socket(2) | 2.0 | Voir les notes de socketcall(2) |
socketcall(2) | 1.0 | |
socketpair(2) | 2.0 | Voir les notes de socketcall(2) |
spill(2) | 2.6.13 | Xtensa uniquement |
splice(2) | 2.6.17 | |
spu_create(2) | 2.6.16 | PowerPC/PowerPC64 uniquement |
spu_run(2) | 2.6.16 | PowerPC/PowerPC64 uniquement |
ssetmask(2) | 1.0 | |
stat(2) | 1.0 | |
stat64(2) | 2.4 | |
statfs(2) | 1.0 | |
statfs64(2) | 2.6 | |
statx(2) | 4.11 | |
stime(2) | 1.0 | |
subpage_prot(2) | 2.6.25 | PowerPC/PowerPC64 uniquement |
swapcontext(2) | 2.6.3 | PowerPC/PowerPC64 uniquement |
switch_endian(2) | 4.1 | PowerPC64 uniquement |
swapoff(2) | 1.0 | |
swapon(2) | 1.0 | |
symlink(2) | 1.0 | |
symlinkat(2) | 2.6.16 | |
sync(2) | 1.0 | |
sync_file_range(2) | 2.6.17 | |
sync_file_range2(2) | 2.6.22 | |
syncfs(2) | 2.6.39 | |
sys_debug_setcontext(2) | 2.6.11 | PowerPC uniquement |
syscall(2) | 1.0 | Encore disponible sur OABI ARM et O32 ABI MIPS |
sysfs(2) | 1.2 | |
sysinfo(2) | 1.0 | |
syslog(2) | 1.0 | |
sysmips(2) | 2.6.0 | MIPS uniquement |
tee(2) | 2.6.17 | |
tgkill(2) | 2.6 | |
time(2) | 1.0 | |
timer_create(2) | 2.6 | |
timer_delete(2) | 2.6 | |
timer_getoverrun(2) | 2.6 | |
timer_gettime(2) | 2.6 | |
timer_settime(2) | 2.6 | |
timerfd_create(2) | 2.6.25 | |
timerfd_gettime(2) | 2.6.25 | |
timerfr_settime(2) | 2.6.25 | |
times(2) | 1.0 | |
tkill(2) | 2.6 ; 2.4.22 | |
truncate(2) | 1.0 | |
truncate64(2) | 2.4 | |
ugetrlimit(2) | 2.4 | |
umask(2) | 1.0 | |
umount(2) | 1.0 | |
umount2(2) | 2.2 | |
uname(2) | 1.0 | |
unlink(2) | 1.0 | |
unlinkat(2) | 2.6.16 | |
unshare(2) | 2.6.16 | |
uselib(2) | 1.0 | |
ustat(2) | 1.0 | |
userfaultfd(2) | 4.3 | |
usr26(2) | 2.4.8.1 | OABI ARM uniquement |
usr32(2) | 2.4.8.1 | OABI ARM uniquement |
utime(2) | 1.0 | |
utimensat(2) | 2.6.22 | |
utimes(2) | 2.2 | |
utrap_install(2) | 2.2 | SPARC64 uniquement |
vfork(2) | 2.2 | |
vhangup(2) | 1.0 | |
vm86old(2) | 1.0 | Précédemment « vm86 », renommé dans 2.0.28/2.2 |
vm86(2) | 2.0.28 ; 2.2 | |
vmsplice(2) | 2.6.17 | |
wait4(2) | 1.0 | |
waitpid(2) | 2.6.10 | |
waitpid(2) | 1.0 | |
write(2) | 1.0 | |
writev(2) | 2.0 | |
xtensa(2) | 2.6.13 | Xtensa uniquement |
Sur de nombreuses plates-formes, y compris les x86-32, les appels de socket sont multiplexés (par des fonctions de la glibc) à travers socketcall(2) et de même les IPC System V à l’aide d’ipc(2).
Même si des entrées ont été réservées dans la table des appels système, les appels système suivants ne sont pas implémentés dans le noyaux standard : afs_syscall(2), break(2), ftime(2), getpmsg(2), gtty(2), idle(2), lock(2), madvise1(2), mpx(2), phys(2), prof(2), profil(2), putpmsg(2), security(2), stty(2), tuxcall(2), ulimit(2) et vserver(2) (voir aussi unimplemented(2)). Toutefois, ftime(3), profil(3) et ulimit(3) sont disponibles sous forme de fonctions de bibliothèque. L'entrée pour phys(2) est utilisée pour umount(2) depuis Linux 2.1.116, phys(2) ne sera jamais implémenté. Les appels getpmsg(2) et putpmsg(2) sont pour les noyaux modifiés qui supportent les FLUX et ne seront peut-être jamais dans le noyau standard.
set_zone_reclaim(2) a existé brièvement : ajouté dans Linux 2.6.13, et retiré dans Linux 2.6.16. Cet appel système n'a jamais été disponible dans l'espace utilisateur.
Certains appels système ont existé uniquement dans des architectures Linux qui ont été depuis supprimées du noyau :
En général, le code implémentant l'appel système ayant le numéro __NR_xxx dans le fichier /usr/include/asm/unistd.h se trouve dans la routine sys_xxx() du source du noyau Linux. Il y a néanmoins plusieurs exceptions, principalement lorsque d'anciens appels système ont été remplacés par des nouveaux. Ces cas n'ont pas été traités de manière homogène. Sur les plate-formes avec une émulation de système propriétaire, comme sparc, sparc64 et alpha, il existe de nombreux appels supplémentaires ;mips64 contient aussi un jeu complet d'appels système 32 bits.
Avec le temps, des changements dans les interfaces de certains appels système ont été nécessaires. Une raison pour ces changements a été le besoin d'augmenter la taille des structures ou des valeurs scalaires passées aux appels système. À cause de ces changements, certaines architectures (particulièrement des vieilles architectures 32 bits comme i386) ont maintenant divers groupes d'appels système apparentés (par exemple truncate(2) et truncate64(2)) qui remplissent des tâches similaires mais qui varient sur des détails comme la taille de leurs paramètres. (Comme noté précédemment, les applications ne sont généralement pas conscientes de cela : les fonctions enveloppe de la glibc remplissent certaines tâches pour s'assurer que c'est le bon appel système qui est appelé et la compatibilité de l'ABI est préservée avec les vieux binaires.) Voici des exemples d'appels système qui existent dans plusieurs versions :
ausyscall(1), intro(2), syscall(2), unimplemented(2), errno(3), libc(7), vdso(7)
La traduction française de cette page de manuel a été créée par Christophe Blaess <https://www.blaess.fr/christophe/>, Stéphan Rafin <stephan.rafin@laposte.net>, Thierry Vignaud <tvignaud@mandriva.com>, François Micaux, Alain Portal <aportal@univ-montp2.fr>, Jean-Philippe Guérard <fevrier@tigreraye.org>, Jean-Luc Coulon (f5ibh) <jean-luc.coulon@wanadoo.fr>, Julien Cristau <jcristau@debian.org>, Thomas Huriaux <thomas.huriaux@gmail.com>, Nicolas François <nicolas.francois@centraliens.net>, Florentin Duneau <fduneau@gmail.com>, Simon Paillard <simon.paillard@resel.enst-bretagne.fr>, Denis Barbier <barbier@debian.org>, David Prévot <david@tilapin.org> et Jean-Pierre Giraud <jean-pierregiraud@neuf.fr>
Cette traduction est une documentation libre ; veuillez vous reporter à la GNU General Public License version 3 concernant les conditions de copie et de distribution. Il n'y a aucune RESPONSABILITÉ LÉGALE.
Si vous découvrez un bogue dans la traduction de cette page de manuel, veuillez envoyer un message à debian-l10n-french@lists.debian.org.
5 février 2023 | Pages du manuel de Linux 6.03 |