syscalls(2) | System Calls Manual | syscalls(2) |
syscalls - Linux-Systemaufrufe
Linux-Systemaufrufe.
Der Systemaufruf ist eine fundamentale Schnittstelle zwischen Anwendungen und dem Linux-Kernel.
Systemaufrufe werden im Allgemeinen nicht direkt aufgerufen, sondern mittels Wrapper-Funktionen in Glibc (oder möglicherweise einer anderen Bibliothek). Zu Details des direkten Aufrufs eines Systemaufrufs siehe intro(2). Oft, aber nicht immer, ist der Name der Wrapper-Funktion identisch zu dem Namen des Systemaufrufs, den sie aufruft. Beispielsweise enthält Glibc eine Funktion chdir(), die den zugrundeliegenden Systemaufruf »chdir« aufruft.
Oft ist die Glibc-Wrapper-Funktion recht dünn und sie macht kaum mehr, als die Argumente in die richtigen Register zu kopieren, bevor sie den Systemaufruf aufruft, und anschließend errno entsprechend zu setzen, nachdem der Systemaufruf zurückkehrte. (Dies sind die gleichen Schritte, die auch syscall(2) durchführt, welches dazu verwandt werden kann, Systemaufrufe aufzurufen, für die keine Wrapper-Funktion bereitgestellt wird.) Hinweis: Systemaufrufe zeigen einen Fehlschlag an, indem sie eine negative Fehlernummer an den Aufrufenden auf Architekturen zurückliefern, die kein getrenntes Fehlerregister/-schalter bereitstellen. Darauf wird in syscall(2) hingewiesen. Wenn dies passiert negiert die Wrapper-Funktion die zurückgelieferte Fehlernummer (damit sie positiv wird), kopiert sie nach errno und liefert -1 an den Aufrufenden des Wrappers zurück.
Manchmal erledigt die Wrapper-Funktion vor dem Aufruf des Systemaufrufs zusätzliche Aufgaben. Beispielsweise gibt es heutzutage (aus weiter unten beschriebenen Gründen) zwei zusammenhängende Systemaufrufe truncate(2) und truncate64(2) und die Glibc-Wrapper-Funktion truncate() prüft, welche dieser Systemaufrufe vom Kernel bereitgestellt wird und bestimmt, welcher eingesetzt werden soll.
Nachfolgend ist eine Liste der Linux-Systemaufrufe. In der Liste zeigt die Spalte Kernel die Kernelversion für solche Systemaufrufe an, die in Linux 2.2 neu waren oder seitdem in dieser Kernelversion erschienen sind. Beachten Sie die folgenden Punkte:
Die Liste der Systemaufrufe, die in Linux 5.14 verfügbar sind (oder in einigen wenigen Fällen nur in älteren Kerneln) ist wie folgt:
Systemaufruf | Kernel | Hinweise |
_llseek(2) | 1.2 | |
_newselect(2) | 2.0 | |
_sysctl(2) | 2.0 | Entfernt in 5.5 |
accept(2) | 2.0 | Siehe Hinweise zu 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 | Entfernt in 2.5.44 |
arc_gettls(2) | 3.9 | Nur ARC |
arc_settls(2) | 3.9 | Nur ARC |
arc_usr_cmpxchg(2) | 4.9 | Nur ARC |
arch_prctl(2) | 2.6 | X86_64, X86 seit 4.12 |
atomic_barrier(2) | 2.6.34 | Nur M68k |
atomic_cmpxchg_32(2) | 2.6.34 | Nur M68k |
bdflush(2) | 1.2 | Veraltet (bewirkt nichts) seit 2.6 |
bind(2) | 2.0 | Siehe Hinweise zu socketcall(2) |
bpf(2) | 3.18 | |
brk(2) | 1.0 | |
breakpoint(2) | 2.2 | Nur ARM OABI, definiert mit Präfix __ARM_NR |
cacheflush(2) | 1.2 | Nicht auf X86 |
capget(2) | 2.2 | |
capset(2) | 2.2 | |
chdir(2) | 1.0 | |
chmod(2) | 1.0 | |
chown(2) | 2.2 | Siehe chown(2) für Versionsdetails |
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 | Nur IA-64 |
clone(2) | 1.0 | |
clone3(2) | 5.3 | |
close(2) | 1.0 | |
close_range(2) | 5.9 | |
connect(2) | 2.0 | Siehe Hinweise zu socketcall(2) |
copy_file_range(2) | 4.5 | |
creat(2) | 1.0 | |
create_module(2) | 1.0 | Entfernt in 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_create1(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 | Nur SPARC/SPARC64, zur Kompatibilität mit 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(2) | 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 | Entfernt in 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 | Entfernt in 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 | Nur ARM OABI, hat Präfix __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; verfügbar als osf_getdomainname(2) auf Alpha seit Linux 2.0 |
getdtablesize(2) | 2.0 | SPARC (entfernt in 2.6.26), verfügbar auf Alpha als 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, war auf SPARC bis Linux 2.6.26 verfügbar |
getitimer(2) | 1.0 | |
getpeername(2) | 2.0 | Siehe Hinweise zu socketcall(2) |
getpagesize(2) | 2.0 | Nicht auf 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 | Siehe Hinweise zu socketcall(2) |
getsockopt(2) | 2.0 | Siehe Hinweise zu socketcall(2) |
gettid(2) | 2.4.11 | |
gettimeofday(2) | 1.0 | |
getuid(2) | 1.0 | |
getuid32(2) | 2.4 | |
getunwind(2) | 2.4.8 | Nur IA-64; veraltet |
getxattr(2) | 2.6; 2.4.18 | |
getxgid(2) | 2.0 | Nur Alpha; siehe HINWEISE |
getxpid(2) | 2.0 | Nur Alpha; siehe HINWEISE |
getxuid(2) | 2.0 | Nur Alpha; siehe HINWEISE |
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 | Nur SPARC64 |
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 | Siehe chown(2) für Versionsdetails |
lchown32(2) | 2.4 | |
lgetxattr(2) | 2.6; 2.4.18 | |
link(2) | 1.0 | |
linkat(2) | 2.6.16 | |
listen(2) | 2.0 | Siehe Hinweise zu 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 | Nur SPARC64 |
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 | Siehe Hinweise zu ipc(2) |
msgget(2) | 2.0 | Siehe Hinweise zu ipc(2) |
msgrcv(2) | 2.0 | Siehe Hinweise zu ipc(2) |
msgsnd(2) | 2.0 | Siehe Hinweise zu 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 | Siehe stat(2) |
nfsservctl(2) | 2.2 | Entfernt in 3.1 |
nice(2) | 1.0 | |
old_adjtimex(2) | 2.0 | Nur Alpha; siehe HINWEISE |
old_getrlimit(2) | 2.4 | Ältere Variante von getrlimit(2) die einen anderen Wert für RLIM_INFINITY verwandte |
oldfstat(2) | 1.0 | |
oldlstat(2) | 1.0 | |
oldolduname(2) | 1.0 | |
oldstat(2) | 1.0 | |
oldumount(2) | 2.4.116 | Name des alten Systemaufrufs umount(2) auf 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 | Nur OpenRISC 1000 |
pause(2) | 1.0 | |
pciconfig_iobase(2) | 2.2.15; 2.4 | Nicht auf X86 |
pciconfig_read(2) | 2.0.26; 2.2 | Nicht auf X86 |
pciconfig_write(2) | 2.0.26; 2.2 | Nicht auf X86 |
perf_event_open(2) | 2.6.31 | War perf_counter_open() in 2.6.31; umbenannt in 2.6.32 |
personality(2) | 1.2 | |
perfctr(2) | 2.2 | Nur SPARC; entfernt in 2.6.34 |
perfmonctl(2) | 2.4 | Nur IA-64; entfernt in 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) | Als »pread« in 2.2 hinzugefügt; in »pread64« in 2.6 umbenannt | |
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) | Als »pwrite« in 2.2. hinzugefügt; in »pwrite64« in 2.6 umbenannt | |
pwritev(2) | 2.6.30 | |
pwritev2(2) | 4.6 | |
query_module(2) | 2.2 | Entfernt in 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 | Siehe Hinweise zu socketcall(2) |
recvfrom(2) | 2.0 | Siehe Hinweise zu socketcall(2) |
recvmsg(2) | 2.0 | Siehe Hinweise zu socketcall(2) |
recvmmsg(2) | 2.6.33 | |
remap_file_pages(2) | 2.6 | Veraltet seit 3.16 |
removexattr(2) | 2.6; 2.4.18 | |
rename(2) | 1.0 | |
renameat(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 | Nur RISC-V |
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 | Nur PowerPC/PowerPC64 |
s390_runtime_instr(2) | 3.7 | Nur S390 |
s390_pci_mmio_read(2) | 3.19 | Nur S390 |
s390_pci_mmio_write(2) | 3.19 | Nur S390 |
s390_sthyi(2) | 4.15 | Nur S390 |
s390_guarded_storage(2) | 4.12 | Nur S390 |
sched_get_affinity(2) | 2.6 | Name von sched_getaffinity(2) auf SPARC und 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 | Name von sched_setaffinity(2) auf SPARC und 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 | Siehe Hinweise zu ipc(2) |
semget(2) | 2.0 | Siehe Hinweise zu ipc(2) |
semop(2) | 2.0 | Siehe Hinweise zu ipc(2) |
semtimedop(2) | 2.6; 2.4.22 | |
send(2) | 2.0 | Siehe Hinweise zu socketcall(2) |
sendfile(2) | 2.2 | |
sendfile64(2) | 2.6; 2.4.19 | |
sendmmsg(2) | 3.0 | |
sendmsg(2) | 2.0 | Siehe Hinweise zu socketcall(2) |
sendto(2) | 2.0 | Siehe Hinweise zu 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 | Nur ARM OABI/EABI (Konstante hat Präfix __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 | Nur Alpha; siehe HINWEISE |
sethostname(2) | 1.0 | |
setitimer(2) | 1.0 | |
setns(2) | 3.0 | |
setpgid(2) | 1.0 | |
setpgrp(2) | 2.0 | Alternativer Name für setpgid(2) auf 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 | Siehe Hinweise zu socketcall(2) |
settimeofday(2) | 1.0 | |
setuid(2) | 1.0 | |
setuid32(2) | 2.4 | |
setup(2) | 1.0 | Entfernt in 2.2 |
setxattr(2) | 2.6; 2.4.18 | |
sgetmask(2) | 1.0 | |
shmat(2) | 2.0 | Siehe Hinweise zu ipc(2) |
shmctl(2) | 2.0 | Siehe Hinweise zu ipc(2) |
shmdt(2) | 2.0 | Siehe Hinweise zu ipc(2) |
shmget(2) | 2.0 | Siehe Hinweise zu ipc(2) |
shutdown(2) | 2.0 | Siehe Hinweise zu 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 | Siehe Hinweise zu socketcall(2) |
socketcall(2) | 1.0 | |
socketpair(2) | 2.0 | Siehe Hinweise zu socketcall(2) |
spill(2) | 2.6.13 | Nur Xtensa |
splice(2) | 2.6.17 | |
spu_create(2) | 2.6.16 | Nur PowerPC/PowerPC64 |
spu_run(2) | 2.6.16 | Nur PowerPC/PowerPC64 |
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 | Nur PowerPC/PowerPC64 |
swapcontext(2) | 2.6.3 | Nur PowerPC/PowerPC64 |
switch_endian(2) | 4.1 | Nur PowerPC64 |
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 | Nur PowerPC |
syscall(2) | 1.0 | Im ARM OABI und MIPS O32 ABI immer noch verfügbar |
sysfs(2) | 1.2 | |
sysinfo(2) | 1.0 | |
syslog(2) | 1.0 | |
sysmips(2) | 2.6.0 | Nur MIPS |
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 | |
timerfd_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 | Nur ARM OABI |
usr32(2) | 2.4.8.1 | Nur ARM OABI |
utime(2) | 1.0 | |
utimensat(2) | 2.6.22 | |
utimes(2) | 2.2 | |
utrap_install(2) | 2.2 | Nur SPARC64 |
vfork(2) | 2.2 | |
vhangup(2) | 1.0 | |
vm86old(2) | 1.0 | War »vm86«; wurde in 2.0.28/2.2 umbenannt |
vm86(2) | 2.0.28; 2.2 | |
vmsplice(2) | 2.6.17 | |
wait4(2) | 1.0 | |
waitid(2) | 2.6.10 | |
waitpid(2) | 1.0 | |
write(2) | 1.0 | |
writev(2) | 2.0 | |
xtensa(2) | 2.6.13 | Nur Xtensa |
Auf vielen Plattformen, einschließlich X86-32, werden Socket-Aufrufe (mittels der Glibc-Wrapper-Funktionen) über socketcall(2) im Multiplex-Verfahren behandelt und ebenso werden System-V-IPC-Aufrufe mittels ipc(2) im Multiplex-Verfahren behandelt.
Obwohl für sie in der Systemaufruftabelle Plätze reserviert sind, sind die folgenden Systemaufrufe im Standard-Kernel nicht implementiert: 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) und vserver(2) (siehe auch unimplemented(2)). Allerdings existieren ftime(3), profil(3) und ulimit(3) als Bibliotheksroutinen. Der Platz für phys(2) wird seit Linux 2.1.116 für umount(2) verwandt; phys(2) wird niemals implementiert. Die Aufrufe getpmsg(2) und putpmsg(2) sind für Kernel, die auf die Unterstützung von Streams angepasst wurden, reserviert und könnten niemals im Standard-Kernel auftauchen.
Für einen kurzen Zeitraum gab es set_zone_reclaim(2), hinzugefügt in Linux 2.6.13 und entfernt in Linux 2.6.16. Dieser Systemaufruf stand dem Anwendungsraum niemals zur Verfügung.
Einige Systemaufrufe existierten ausschließlich auf Linux-Architekturen, die seitdem aus dem Kernel entfernt wurden:
Grob gesagt kann der Code, der zu dem Systemaufruf mit der in /usr/include/asm/unistd.h definierten Nummer __NR_xxx gehört in den Linux-Kernelquellen in der Routine sys_xxx() gefunden werden. Allerdings gibt es viele Ausnahmen, da hauptsächlich ältere Systemaufrufe durch neuere ersetzt wurden und dabei nicht immer systematisch vorgegangen wurde. Auf Plattformen mit proprietären Betriebssystem-Emulationen, wie Sparc, Sparc64 und Alpha, gibt es viele zusätzliche Systemaufrufe; Mips64 enthält auch einen kompletten Satz an 32-bit-Systemaufrufen.
Im Laufe der Zeit wurden Änderungen an einigen Schnittstellen der Systemaufrufe notwendig. Ein Grund für solche Änderungen war die Notwendigkeit, die Größe von Strukturen oder skalaren Werten, die an den Systemaufruf übergeben werden, zu erhöhen. Aufgrund dieser Änderungen haben jetzt bestimmte Architekturen (insbesondere die langexistierenden 32-bit-Architekturen wie I386) verschiedene Gruppen von zusammengehörigen Systemaufrufen (z.B. truncate(2) und truncate64(2)), die ähnliche Aufgaben erledigen, aber sich in Details wie der Größe ihrer Argumente unterscheiden. (Wie weiter oben angemerkt, bekommen das Anwendungen im Allgemeinen nicht mit: Die Glibc-Wrapperfunktion haben Vorkehrungen um sicherzustellen, dass der richtige Systemaufruf aufgerufen wird und dass die ABI-Kompatibilität für ältere Programme gewährt wird). Folgende Systemaufrufe sind Beispiele, die in verschiedenen Versionen existieren:
ausyscall(1), intro(2), syscall(2), unimplemented(2), errno(3), libc(7), vdso(7)
Die deutsche Übersetzung dieser Handbuchseite wurde von Helge Kreutzmann <debian@helgefjell.de> erstellt.
Diese Übersetzung ist Freie Dokumentation; lesen Sie die GNU General Public License Version 3 oder neuer bezüglich der Copyright-Bedingungen. Es wird KEINE HAFTUNG übernommen.
Wenn Sie Fehler in der Übersetzung dieser Handbuchseite finden, schicken Sie bitte eine E-Mail an die Mailingliste der Übersetzer.
5. Februar 2023 | Linux man-pages 6.03 |