Date création : 27-03-2008 20:23:44
 Vous êtes dans : GNU/Linux Astuces / Pages man [Section2 - Appels système]
SYSCALLS
Index
- NOM
- SYNOPSIS
- DESCRIPTION
- TRADUCTION
NOM
syscalls - liste des appels système
SYNOPSIS
Les appels système de Linux 2.4.
DESCRIPTION
L'appel système est l'interface fondamentale entre une application et le
noyau Linux. Avec Linux 2.4.17, il existe 1100 appels système indiqués dans
/usr/src/linux/include/asm-*/unistd.h. Cette page de manuel liste ceux
communs à la plupart des plate-formes.
_llseek(2), _newselect(2), _sysctl(2), accept(2), access(2), acct(2),
adjtimex(2), afs_syscall, alarm(2), bdflush(2), bind(2), break, brk(2),
cacheflush(2), capget(2), capset(2), chdir(2), chmod(2), chown(2), chown32,
chroot(2), clone(2), close(2), connect(2), creat(2), create_module(2),
delete_module(2), dup(2), dup2(2), execve(2), exit(2), fchdir(2), fchmod(2),
fchown(2), fchown32, fcntl(2), fcntl64, fdatasync(2), flock(2), fork(2),
fstat(2), fstat64, fstatfs(2), fsync(2), ftime, ftruncate(2), ftruncate64,
get_kernel_syms(2), getcwd(2), getdents(2), getdents64,
getegid(2), getegid32, geteuid(2), geteuid32, getgid(2),
getgid32, getgroups(2), getgroups32, getitimer(2), getpagesize(2),
getpeername(2), getpmsg, getpgid(2), getpgrp(2), getpid(2),
getppid(2), getpriority(2), getresgid(2), getresgid32,
getresuid(2), getresuid32, getrlimit(2), getrusage(2), getsid(2),
getsockname(2), getsockopt(2), gettid, gettimeofday(2), getuid(2),
getuid32, gtty, idle, init_module(2), ioctl(2), ioperm(2), iopl(2),
ipc(2), kill(2), lchown(2), lchown32, link(2), listen(2), lock, lseek(2),
lstat(2), lstat64, madvise(2), mincore(2), mkdir(2), mknod(2), mlock(2),
mlockall(2), mmap(2), modify_ldt(2), mount(2), mprotect(2), mpx, mremap(2),
msync(2), munlock(2), munlockall(2), munmap(2), nanosleep(2), nfsservctl(2),
nice(2), oldfstat, oldlstat, oldolduname, oldstat, oldumount, olduname,
open(2), pause(2), personality(2), phys, pipe(2), pivot_root(2), poll(2),
prctl(2), pread(2), prof, profil, ptrace(2), putpmsg, pwrite(2),
query_module(2), quotactl(2), read(2), readahead, readdir(2), readlink(2),
readv(2), reboot(2), recv(2), recvfrom(2), recvmsg(2), rename(2), rmdir(2),
rt_sigaction, rt_sigpending, rt_sigprocmask, rt_sigqueueinfo, rt_sigreturn,
rt_sigsuspend, rt_sigtimedwait, sched_get_priority_max(2),
sched_get_priority_min(2), sched_getparam(2),
sched_getscheduler(2), sched_rr_get_interval(2),
sched_setparam(2), sched_setscheduler(2), sched_yield(2),
security, select(2), sendfile(2), send(2), sendmsg(2), sendto(2),
setdomainname(2), setfsgid(2), setfsgid32, setfsuid(2),
setfsuid32, setgid(2), setgid32, setgroups(2), setgroups32,
sethostname(2), setitimer(2), setpgid(2), setpriority(2),
setregid(2), setregid32, setresgid(2), setresgid32, setresuid(2),
setresuid32, setreuid(2), setreuid32, setrlimit(2), setsid(2),
setsockopt(2), settimeofday(2), setuid(2), setuid32, setup(2),
sgetmask(2), shutdown(2), sigaction(2), sigaltstack(2), signal(2),
sigpending(2), sigprocmask(2), sigreturn(2), sigsuspend(2), socket(2),
socketcall(2), socketpair(2), ssetmask(2), stat(2), stat64, statfs(2),
stime(2), stty, swapoff(2), swapon(2), symlink(2), sync(2), sysfs(2),
sysinfo(2), syslog(2), time(2), times(2), truncate(2), truncate64, ulimit,
umask(2), umount(2), uname(2), unlink(2), uselib(2), ustat(2), utime(2),
vfork(2), vhangup(2), vm86(2), vm86old, wait4(2), waitpid(2), write(2),
writev(2).
Sur l'ensemble de ces appels système, 9 d'entre eux sont obsolètes,
getrlimit, oldfstat, oldlstat, oldolduname, oldstat, olduname readdir,
select et vm86old (voir obsolete(2)), et 15 ne sont pas implémentés,
afs_syscall, break, ftime, getpmsg, gtty, idle, lock, mpx, phys, prof,
profil, putpmsg, security, stty and ulimit (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
est utilisée pour umount depuis le 2.1.116, phys ne sera jamais
implémenté. Les appels getpmsg et putpmsg sont pour les noyaux modifiés qui
supportent les streams, et ne seront peut-être jamais dans le noyau
standard. L'appel security servira dans le futur.
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 noyau. (La table de distribution pour la version i386 se
trouve dans /usr/src/linux/arch/i386/kernel/entry.S.) 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 parisc, sparc, sparc64 et alpha, il existe de nombreux appels
supplémentaires ; mips64 contient aussi un jeu complet d'appels système
32-bits. Voici des détails en vigueur pour Linux 2.4.17.
Les définitions __NR_oldstat et __NR_stat concernent les routines sys_stat()
et sys_newstat(), et similairement fstat et lstat. De même, les
définitions __NR_oldolduname, __NR_olduname et __NR_uname concernent les
routines sys_olduname(), sys_uname() et sys_newuname(). Quoiqu'il en soit,
__NR_stat et __NR_uname se sont toujours rapportés à la dernière version de
l'appel système, et les versions plus anciennes ne sont conservées que pour
assurer une compatibilité ascendante.
Les choses diffèrent avec select et mmap. Ces appels nécessitent 5
paramètres ou plus, ce qui a posé des problèmes avec les méthodes classiques
de passage de paramètres sur i386. Ainsi, alors que les autres architectures
disposent de sys_select() et sys_mmap() correspondant à __NR_select et
__NR_mmap, on trouve sur les i386 old_select() et old_mmap() à leur
place. Ce sont des routines utilisant un pointeur sur un bloc de
paramètres. De nos jours, passer 5 paramètres n'est plus un problème, et il
existe donc un __NR__newselect (utilisé par la libc 6) correspondant
directement à sys_select() ; il en est de même pour __NR_mmap2.
Deux autres numéros d'appels systèmes, __NR__llseek et __NR__sysctl
possèdent un underscore supplémentaire absent dans sys_llseek() et
sys_sysctl().
Également, il existe un __NR_readdir correspondant à old_readdir(), qui lira
au plus une entrée de répertoire à la fois, et qui est remplacé par
sys_getdents().
Sur de nombreuses plates-formes, y compris les i386, les appels des sockets
sont multiplexés à travers socketcall() et les IPC Système V via ipc().
Sur les plates-formes récentes qui n'ont que des accès aux fichiers 64-bits
et des UID 32-bits (ex. alpha, ia64, s390x) il n'y a pas d'appel *64 ou
*32. Quand les appels *64 et *32 existent, les autres versions sont
obsolètes.
Les appels chown et lchown ont été échangés dans le 2.1.81. Les appels *64
et *32 ont été ajoutés dans le noyau 2.4, comme les nouvelles versions de
getrlimit et mmap, et les nouveaux appels pivot_root, mincore, madvise,
security, gettid et readahead.
TRADUCTION
Cette page de manuel a été traduite et mise à jour par
Christophe Blaess <http://www.blaess.fr/christophe/> entre 1996 et 2003,
puis par Alain Portal <aportal AT univ-montp2 DOT fr> jusqu'en 2006.
La traduction de cette page de manuel est basée sur les traductions
disponibles sur http://manpagesfr.free.fr/,
mais est gérée par l'équipe francophone de traduction de Debian
au travers de la liste de discussion debian-l10n-french.
Veuillez signaler toute erreur de traduction par un rapport de bogue sur
le paquet manpages-fr.
Vous pouvez toujours avoir accès à la version anglaise de ce document en
utilisant la commande
« man -L C <section> <page_de_man> ».
|