.\" -*- coding: UTF-8 -*-
'\" t
.\" Copyright (C) 2007 Michael Kerrisk <mtk.manpages@gmail.com>
.\" with some input from Stepan Kasal <kasal@ucw.cz>
.\"
.\" Some content retained from an earlier version of this page:
.\" Copyright (C) 1998 Andries Brouwer (aeb@cwi.nl)
.\" Modifications for 2.2 and 2.4 Copyright (C) 2002 Ian Redfern
.\" <redferni@logica.com>
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\"*******************************************************************
.\"
.\" This file was generated with po4a. Translate the source file.
.\"
.\"*******************************************************************
.TH syscalls 2 "2 maja 2024 r." "Linux man\-pages 6.9.1" 
.SH NAZWA
syscalls \- linuksowe wywołania systemowe
.SH SKŁADNIA
.nf
Linuksowe wywołania systemowe.
.fi
.SH OPIS
Wywołanie systemowe jest podstawowym interfejsem pomiędzy aplikacją a jądrem
Linux.
.SS "Wywołania systemowe i biblioteczne funkcje opakowujące"
Wywołania systemowe nie są zwykle wywoływane bezpośrednio, lecz za
pośrednictwem funkcji opakowujących glibc (lub jakiejś innej
biblioteki). Szczegóły na temat bezpośredniego przywoływania wywołań
systemowych opisano w podręczniku \fBintro\fP(2). Często, lecz nie zawsze,
nazwa funkcji opakowującej jest taka sama, jak przywoływanego przez nią
wywołania systemowego. Przykładowo glibc zawiera funkcję \fBchdir\fP()
przywołującą wywołanie systemowe \[Bq]chdir\[rq].
.P
Funkcja opakowująca glibc jest często skromna, nie robiąc wiele poza
skopiowaniem argumentów do prawidłowych rejestrów przed wywołaniem wywołania
systemowego, a potem ustawiając odpowiednio \fIerrno\fP po powrocie wywołania
systemowego (te same kroki są wykonywane przez \fBsyscall\fP(2), które może
służyć do przywoływania wywołań systemowych, które nie posiadają funkcji
opakowujących). Uwaga: wywołanie systemowe zgłasza niepowodzenie, zwracając
ujemny numer błędu do wywołującego, na architekturach które nie posiadają
odrębnej flagi/rejestru błędów, jak to opisano w \fBsyscall\fP(2); gdy tak się
stanie, funkcja opakowująca zmienia znak zwracanego numeru błędu (staje się
on dodatni), kopiuje go do \fIerrno\fP i zwraca \-1 do wywołującego funkcję
opakowującą.
.P
Czasem jednak, funkcja opakowująca wykonuje dodatkową pracę przed
przywołaniem wywołania systemowego. Na przykład, istnieją obecnie (z powodów
opisanych niżej) dwa spokrewnione wywołania systemowe: \fBtruncate\fP(2) i
\fBtruncate64\fP(2), a funkcja opakowująca glibc \fBtruncate\fP() sprawdza, które
z nich jest zapewnione przez jądro i określa, którego należy użyć.
.SS "Lista wywołań systemowych"
Poniżej przedstawiono listę linuksowych wywołań systemowych. Kolumna
\fIJądro\fP wskazuje wersję jądra w przypadku wywołań, które pojawiły się w
Linuksie 2.2 lub później. Proszę odnotować, że:
.IP \[bu] 3
Jeśli nie wskazano wersji jądra, wywołanie systemowe pojawiło się w Linuksie
1.0 lub wcześniej.
.IP \[bu]
Jeśli wywołanie systemowe oznaczono wersją \[Bq]1.2\[rq] oznacza to, że
wywołanie systemowe prawdopodobnie pojawiło się w wersji jądra Linux 1.1.x,
czyli pierwszą wersją stabilną z danym wywołaniem była wersja 1.2 (rozwój
Linuksa 1.2 rozpoczął się od odgałęzienia od wersji 1.0.6 Linuksa i trwał w
ramach niestabilnej serii jąder Linux 1.1.x).
.IP \[bu]
.\" Was Linux 2.0 started from a branch of Linux 1.2.10?
.\" At least from the timestamps of the tarballs of
.\" of Linux 1.2.10 and Linux 1.3.0, that's how it looks, but in
.\" fact the diff doesn't seem very clear, the
.\" Linux 1.3.0 .tar.bz is much bigger (2.0 MB) than the
.\" Linux 1.2.10 .tar.bz2 (1.8 MB), and AEB points out the
.\" timestamps of some files in Linux 1.3.0 seem to be older
.\" than those in Linux 1.2.10.  All of this suggests
.\" that there might not have been a clean branch point.
Jeśli wywołanie systemowe oznaczono wersją \[Bq]2.0\[rq] oznacza to, że
wywołanie systemowe prawdopodobnie pojawiło się w wersji jądra Linux 1.3.x,
czyli pierwszą wersją stabilną z danym wywołaniem była wersja 2.0 (rozwój
Linuksa 2.0 rozpoczął się od odgałęzienia od wersji 1.2.x, gdzieś w
okolicach wersji 1.2.10 Linuksa, i trwał w ramach niestabilnej serii jąder
Linux 1.3.x).
.IP \[bu]
Jeśli wywołanie systemowe oznaczono wersją \[Bq]2.2\[rq] oznacza to, że
wywołanie systemowe prawdopodobnie pojawiło się w wersji jądra Linux 2.1.x,
czyli pierwszą wersją stabilną z danym wywołaniem była wersja 2.2.0 (rozwój
Linuksa 2.2 rozpoczął się od odgałęzienia od wersji 2.0.21 Linuksa i trwał w
ramach niestabilnej serii jąder Linux 2.1.x).
.IP \[bu]
Jeśli wywołanie systemowe oznaczono wersją \[Bq]2.4\[rq] oznacza to, że
wywołanie systemowe prawdopodobnie pojawiło się w wersji jądra Linux 2.3.x,
czyli pierwszą wersją stabilną z danym wywołaniem była wersja 2.4.0 (rozwój
Linuksa 2.4 rozpoczął się od odgałęzienia od wersji 2.2.8 Linuksa i trwał w
ramach niestabilnej serii jąder Linux 2.3.x).
.IP \[bu]
Jeśli wywołanie systemowe oznaczono wersją \[Bq]2.6\[rq] oznacza to, że
wywołanie systemowe prawdopodobnie pojawiło się w wersji jądra Linux 2.5.x,
czyli pierwszą wersją stabilną z danym wywołaniem była wersja 2.6.0 (rozwój
Linuksa 2.6 rozpoczął się od odgałęzienia od wersji 2.4.15 Linuksa i trwał w
ramach niestabilnej serii jąder Linux 2.5.x).
.IP \[bu]
Od wersji Linuksa 2.6.0, model rozwoju zmienił się, a nowe wywołania
systemowe mogą pojawiać się w każdym wydaniu Linuksa 2.6.x. W takim
przypadku podana jest dokładna wersja, w której pojawiło się dane wywołanie
systemowe. Tę konwencję stosuje się również: w serii jąder Linux 3.x, która
rozpoczęła się po Linuksie 2.6.39; w serii jąder Linux 4.x, która rozpoczęła
się po Linuksie 3.19; w serii jąder Linux 5.x, która rozpoczęła się po
Linuksie 4.20; w serii jąder Linux 6.x, która rozpoczęła się po Linuksie
5.19.
.IP \[bu]
W niektórych sytuacjach, wywołanie systemowe dodano do stabilnej serii jąder
po jej odgałęzieniu z poprzedniej stabilnej serii jąder, a następnie
przeportowano do wcześniejszej stabilnej serii jąder. Na przykład część
wywołań systemowych, które pojawiły się w Linuksie 2.6.x przeportowano
również do wydania Linux 2.4.x po Linuksie 2.4.15. W takim przypadku, podane
są wersje z obu głównych serii jąder, w których pojawiło się dane wywołanie.
.P
Lista wywołań systemowych dostępnych w Linuksie 5.14 (w kilku przypadkach
tylko na starszych jądrach) jest następująca:
.P
.\"
.\" Looking at scripts/checksyscalls.sh in the kernel source is
.\" instructive about x86 specifics.
.\"
.TS
Lb Lb Lb
L2 L  L.
Wywołanie systemowe	Jądro	Uwagi
_
\fB_llseek\fP(2)	1.2
\fB_newselect\fP(2)	2.0
\fB_sysctl\fP(2)	2.0	Usunięte w 5.5
\fBaccept\fP(2)	2.0	T{
Zob. uwagi w \fBsocketcall\fP(2)
T}
\fBaccept4\fP(2)	2.6.28
\fBaccess\fP(2)	1.0
\fBacct\fP(2)	1.0
\fBadd_key\fP(2)	2.6.10
\fBadjtimex\fP(2)	1.0
\fBalarm\fP(2)	1.0
\fBalloc_hugepages\fP(2)	2.5.36	Usunięte w 2.5.44
.\" 4adeefe161a74369e44cc8e663f240ece0470dc3
\fBarc_gettls\fP(2)	3.9	Tylko ARC
\fBarc_settls\fP(2)	3.9	Tylko ARC
.\" 91e040a79df73d371f70792f30380d4e44805250
\fBarc_usr_cmpxchg\fP(2)	4.9	Tylko ARC
.\" x86: 79170fda313ed5be2394f87aa2a00d597f8ed4a1
\fBarch_prctl\fP(2)	2.6	T{
x86_64, x86 od 4.12
T}
.\" 9674cdc74d63f346870943ef966a034f8c71ee57
\fBatomic_barrier\fP(2)	2.6.34	Tylko m68k
\fBatomic_cmpxchg_32\fP(2)	2.6.34	Tylko m68k
\fBbdflush\fP(2)	1.2	T{
Przestarzałe (nieaktywne) od 2.6
T}
\fBbind\fP(2)	2.0	T{
Zob. uwagi w \fBsocketcall\fP(2)
T}
\fBbpf\fP(2)	3.18
\fBbrk\fP(2)	1.0
\fBbreakpoint\fP(2)	2.2	T{
Tylko OABI ARM, zdefiniowane
z przedrostkiem \fB__ARM_NR\fP
T}
\fBcacheflush\fP(2)	1.2	Nie na x86
\fBcapget\fP(2)	2.2
\fBcapset\fP(2)	2.2
\fBchdir\fP(2)	1.0
\fBchmod\fP(2)	1.0
\fBchown\fP(2)	2.2	T{
Wersje opisano szczegół. w \fBchown\fP(2)
T}
\fBchown32\fP(2)	2.4
\fBchroot\fP(2)	1.0
\fBclock_adjtime\fP(2)	2.6.39
\fBclock_getres\fP(2)	2.6
\fBclock_gettime\fP(2)	2.6
\fBclock_nanosleep\fP(2)	2.6
\fBclock_settime\fP(2)	2.6
\fBclone2\fP(2)	2.4	Tylko IA\-64
\fBclone\fP(2)	1.0
\fBclone3\fP(2)	5.3
\fBclose\fP(2)	1.0
\fBclose_range\fP(2)	5.9
.\" .\" dcef1f634657dabe7905af3ccda12cf7f0b6fcc1
.\" .\" cc20d42986d5807cbe4f5c7c8e3dab2e59ea0db3
.\" .\" db695c0509d6ec9046ee5e4c520a19fa17d9fce2
.\" \fBcmpxchg\fP(2)	2.6.12	T{
.\" ARM, syscall constant never was
.\" exposed to user space, in-kernel
.\" definition had \fB__ARM_NR\fP prefix,
.\" removed in 4.4
.\" T}
.\" 867e359b97c970a60626d5d76bbe2a8fadbf38fb
.\" bb9d812643d8a121df7d614a2b9c60193a92deb0
\fBconnect\fP(2)	2.0	T{
Zob. uwagi w \fBsocketcall\fP(2)
T}
\fBcopy_file_range\fP(2)	4.5
\fBcreat\fP(2)	1.0
\fBcreate_module\fP(2)	1.0	Usunięte w 2.6
\fBdelete_module\fP(2)	1.0
.\" 1394f03221790a988afc3e4b3cb79f2e477246a9
.\" 4ba66a9760722ccbb691b8f7116cad2f791cca7b
\fBdup\fP(2)	1.0
\fBdup2\fP(2)	1.0
\fBdup3\fP(2)	2.6.27
\fBepoll_create\fP(2)	2.6
\fBepoll_create1\fP(2)	2.6.27
\fBepoll_ctl\fP(2)	2.6
\fBepoll_pwait\fP(2)	2.6.19
\fBepoll_pwait2\fP(2)	5.11
\fBepoll_wait\fP(2)	2.6
\fBeventfd\fP(2)	2.6.22
\fBeventfd2\fP(2)	2.6.27
\fBexecv\fP(2)	2.0	T{
Tylko SPARC/SPARC64,
ze wzgl. na kompat. z SunOS
T}
\fBexecve\fP(2)	1.0
\fBexecveat\fP(2)	3.19
\fBexit\fP(2)	1.0
\fBexit_group\fP(2)	2.6
\fBfaccessat\fP(2)	2.6.16
\fBfaccessat2\fP(2)	5.8
\fBfadvise64\fP(2)	2.6
.\" Implements \fBposix_fadvise\fP(2)
\fBfadvise64_64\fP(2)	2.6
\fBfallocate\fP(2)	2.6.23
\fBfanotify_init\fP(2)	2.6.37
\fBfanotify_mark\fP(2)	2.6.37
.\" The fanotify calls were added in Linux 2.6.36,
.\" but disabled while the API was finalized.
\fBfchdir\fP(2)	1.0
\fBfchmod\fP(2)	1.0
\fBfchmodat\fP(2)	2.6.16
\fBfchown\fP(2)	1.0
\fBfchown32\fP(2)	2.4
\fBfchownat\fP(2)	2.6.16
\fBfcntl\fP(2)	1.0
\fBfcntl64\fP(2)	2.4
\fBfdatasync\fP(2)	2.0
\fBfgetxattr\fP(2)	2.6; 2.4.18
\fBfinit_module\fP(2)	3.8
\fBflistxattr\fP(2)	2.6; 2.4.18
\fBflock\fP(2)	2.0
\fBfork\fP(2)	1.0
\fBfree_hugepages\fP(2)	2.5.36	Usunięte w 2.5.44
\fBfremovexattr\fP(2)	2.6; 2.4.18
\fBfsconfig\fP(2)	5.2
\fBfsetxattr\fP(2)	2.6; 2.4.18
\fBfsmount\fP(2)	5.2
\fBfsopen\fP(2)	5.2
\fBfspick\fP(2)	5.2
\fBfstat\fP(2)	1.0
\fBfstat64\fP(2)	2.4
\fBfstatat64\fP(2)	2.6.16
\fBfstatfs\fP(2)	1.0
\fBfstatfs64\fP(2)	2.6
\fBfsync\fP(2)	1.0
\fBftruncate\fP(2)	1.0
\fBftruncate64\fP(2)	2.4
\fBfutex\fP(2)	2.6
\fBfutimesat\fP(2)	2.6.16
\fBget_kernel_syms\fP(2)	1.0	Usunięte w 2.6
\fBget_mempolicy\fP(2)	2.6.6
\fBget_robust_list\fP(2)	2.6.17
\fBget_thread_area\fP(2)	2.6
.\" 8fcd6c45f5a65621ec809b7866a3623e9a01d4ed
\fBget_tls\fP(2)	4.15	T{
Tylko OABI ARM,
z przedrostkiem \fB__ARM_NR\fP
T}
\fBgetcpu\fP(2)	2.6.19
\fBgetcwd\fP(2)	2.2
\fBgetdents\fP(2)	2.0
\fBgetdents64\fP(2)	2.4
.\" parisc: 863722e856e64dae0e252b6bb546737c6c5626ce
\fBgetdomainname\fP(2)	2.2	T{
SPARC, SPARC64; dost. jako
\fBosf_getdomainname\fP(2)
na Alpha od Linuksa 2.0
T}
.\" ec98c6b9b47df6df1c1fa6cf3d427414f8c2cf16
\fBgetdtablesize\fP(2)	2.0	T{
SPARC (usunięte w 2.6.26),
dostępne na Alpha jako
\fBosf_getdtablesize\fP(2)
T}
\fBgetegid\fP(2)	1.0
\fBgetegid32\fP(2)	2.4
\fBgeteuid\fP(2)	1.0
\fBgeteuid32\fP(2)	2.4
\fBgetgid\fP(2)	1.0
\fBgetgid32\fP(2)	2.4
\fBgetgroups\fP(2)	1.0
\fBgetgroups32\fP(2)	2.4
.\" SPARC removal: ec98c6b9b47df6df1c1fa6cf3d427414f8c2cf16
\fBgethostname\fP(2)	2.0	T{
Alpha, było dost. na 
SPARC do Linuksa 2.6.26
T}
\fBgetitimer\fP(2)	1.0
\fBgetpeername\fP(2)	2.0	T{
Zob. uwagi w \fBsocketcall\fP(2)
T}
\fBgetpagesize\fP(2)	2.0	T{
Tylko Alpha, SPARC/SPARC64
T}
\fBgetpgid\fP(2)	1.0
\fBgetpgrp\fP(2)	1.0
\fBgetpid\fP(2)	1.0
\fBgetppid\fP(2)	1.0
\fBgetpriority\fP(2)	1.0
\fBgetrandom\fP(2)	3.17
\fBgetresgid\fP(2)	2.2
\fBgetresgid32\fP(2)	2.4
\fBgetresuid\fP(2)	2.2
\fBgetresuid32\fP(2)	2.4
\fBgetrlimit\fP(2)	1.0
\fBgetrusage\fP(2)	1.0
\fBgetsid\fP(2)	2.0
\fBgetsockname\fP(2)	2.0	T{
Zob. uwagi w \fBsocketcall\fP(2)
T}
\fBgetsockopt\fP(2)	2.0	T{
Zob. uwagi w \fBsocketcall\fP(2)
T}
\fBgettid\fP(2)	2.4.11
\fBgettimeofday\fP(2)	1.0
\fBgetuid\fP(2)	1.0
\fBgetuid32\fP(2)	2.4
\fBgetunwind\fP(2)	2.4.8	T{
Tylko IA\-64; przestarzałe
T}
\fBgetxattr\fP(2)	2.6; 2.4.18
\fBgetxgid\fP(2)	2.0	T{
Tylko Alpha; zob. UWAGI
T}
\fBgetxpid\fP(2)	2.0	T{
Tylko Alpha; zob. UWAGI
T}
\fBgetxuid\fP(2)	2.0	T{
Tylko Alpha; zob. UWAGI
T}
\fBinit_module\fP(2)	1.0
\fBinotify_add_watch\fP(2)	2.6.13
\fBinotify_init\fP(2)	2.6.13
\fBinotify_init1\fP(2)	2.6.27
\fBinotify_rm_watch\fP(2)	2.6.13
\fBio_cancel\fP(2)	2.6
\fBio_destroy\fP(2)	2.6
\fBio_getevents\fP(2)	2.6
\fBio_pgetevents\fP(2)	4.18
\fBio_setup\fP(2)	2.6
\fBio_submit\fP(2)	2.6
\fBio_uring_enter\fP(2)	5.1
\fBio_uring_register\fP(2)	5.1
\fBio_uring_setup\fP(2)	5.1
\fBioctl\fP(2)	1.0
\fBioperm\fP(2)	1.0
\fBiopl\fP(2)	1.0
\fBioprio_get\fP(2)	2.6.13
\fBioprio_set\fP(2)	2.6.13
\fBipc\fP(2)	1.0
.\" Implements System V IPC calls
\fBkcmp\fP(2)	3.5
\fBkern_features\fP(2)	3.7	Tylko SPARC64
.\" FIXME . document kern_features():
.\" commit 517ffce4e1a03aea979fe3a18a3dd1761a24fafb
\fBkexec_file_load\fP(2)	3.17
\fBkexec_load\fP(2)	2.6.13
.\" The entry in the syscall table was reserved starting in 2.6.7
.\" Was named sys_kexec_load() from 2.6.7 to 2.6.16
\fBkeyctl\fP(2)	2.6.10
\fBkill\fP(2)	1.0
\fBlandlock_add_rule\fP(2)	5.13
\fBlandlock_create_ruleset\fP(2)	5.13
\fBlandlock_restrict_self\fP(2)	5.13
\fBlchown\fP(2)	1.0	T{
Wersje opisano szczegół. w \fBchown\fP(2)
T}
\fBlchown32\fP(2)	2.4
\fBlgetxattr\fP(2)	2.6; 2.4.18
\fBlink\fP(2)	1.0
\fBlinkat\fP(2)	2.6.16
\fBlisten\fP(2)	2.0	T{
Zob. uwagi w \fBsocketcall\fP(2)
T}
\fBlistxattr\fP(2)	2.6; 2.4.18
\fBllistxattr\fP(2)	2.6; 2.4.18
\fBlookup_dcookie\fP(2)	2.6
\fBlremovexattr\fP(2)	2.6; 2.4.18
\fBlseek\fP(2)	1.0
\fBlsetxattr\fP(2)	2.6; 2.4.18
\fBlstat\fP(2)	1.0
\fBlstat64\fP(2)	2.4
\fBmadvise\fP(2)	2.4
\fBmbind\fP(2)	2.6.6
\fBmemory_ordering\fP(2)	2.2	Tylko SPARC64
.\" 26025bbfbba33a9425be1b89eccb4664ea4c17b6
.\" bb6fb6dfcc17cddac11ac295861f7608194447a7
\fBmembarrier\fP(2)	3.17
\fBmemfd_create\fP(2)	3.17
\fBmemfd_secret\fP(2)	5.14
\fBmigrate_pages\fP(2)	2.6.16
\fBmincore\fP(2)	2.4
\fBmkdir\fP(2)	1.0
\fBmkdirat\fP(2)	2.6.16
\fBmknod\fP(2)	1.0
\fBmknodat\fP(2)	2.6.16
\fBmlock\fP(2)	2.0
\fBmlock2\fP(2)	4.4
\fBmlockall\fP(2)	2.0
\fBmmap\fP(2)	1.0
\fBmmap2\fP(2)	2.4
\fBmodify_ldt\fP(2)	1.0
\fBmount\fP(2)	1.0
\fBmove_mount\fP(2)	5.2
\fBmove_pages\fP(2)	2.6.18
\fBmprotect\fP(2)	1.0
\fBmq_getsetattr\fP(2)	2.6.6
.\" Implements \fBmq_getattr\fP(3) and \fBmq_setattr\fP(3)
\fBmq_notify\fP(2)	2.6.6
\fBmq_open\fP(2)	2.6.6
\fBmq_timedreceive\fP(2)	2.6.6
\fBmq_timedsend\fP(2)	2.6.6
\fBmq_unlink\fP(2)	2.6.6
\fBmremap\fP(2)	2.0
\fBmsgctl\fP(2)	2.0	T{
Zob. uwagi w \fBipc\fP(2)
T}
\fBmsgget\fP(2)	2.0	T{
Zob. uwagi w \fBipc\fP(2)
T}
\fBmsgrcv\fP(2)	2.0	T{
Zob. uwagi w \fBipc\fP(2)
T}
\fBmsgsnd\fP(2)	2.0	T{
Zob. uwagi w \fBipc\fP(2)
T}
\fBmsync\fP(2)	2.0
.\" \fBmultiplexer\fP(2)	??	__NR_multiplexer reserved on
.\"		PowerPC, but unimplemented?
\fBmunlock\fP(2)	2.0
\fBmunlockall\fP(2)	2.0
\fBmunmap\fP(2)	1.0
\fBname_to_handle_at\fP(2)	2.6.39
\fBnanosleep\fP(2)	2.0
.\" 5590ff0d5528b60153c0b4e7b771472b5a95e297
\fBnewfstatat\fP(2)	2.6.16	T{
Zob. \fBstat\fP(2)
T}
\fBnfsservctl\fP(2)	2.2	Usunięte w 3.1
\fBnice\fP(2)	1.0
\fBold_adjtimex\fP(2)	2.0	T{
Tylko Alpha; zob. UWAGI
T}
\fBold_getrlimit\fP(2)	2.4	T{
Stary wariant \fBgetrlimit\fP(2)
używający innej wartości
\fBRLIM_INFINITY\fP
T}
\fBoldfstat\fP(2)	1.0
\fBoldlstat\fP(2)	1.0
\fBoldolduname\fP(2)	1.0
\fBoldstat\fP(2)	1.0
\fBoldumount\fP(2)	2.4.116	T{
Nazwa starego \fBumount\fP(2)
wywołania syst. na Alpha
T}
\fBolduname\fP(2)	1.0
\fBopen\fP(2)	1.0
\fBopen_by_handle_at\fP(2)	2.6.39
\fBopen_tree\fP(2)	5.2
\fBopenat\fP(2)	2.6.16
\fBopenat2\fP(2)	5.6
.\" 9d02a4283e9ce4e9ca11ff00615bdacdb0515a1a
\fBor1k_atomic\fP(2)	3.1	T{
Tylko OpenRISC 1000
T}
\fBpause\fP(2)	1.0
\fBpciconfig_iobase\fP(2)	2.2.15; 2.4	Nie na x86
.\" Alpha, PowerPC, ARM; not x86
\fBpciconfig_read\fP(2)	2.0.26; 2.2	Nie na x86
.\" , PowerPC, ARM; not x86
\fBpciconfig_write\fP(2)	2.0.26; 2.2	Nie na x86
.\" , PowerPC, ARM; not x86
\fBperf_event_open\fP(2)	2.6.31	T{
Wcześniej perf_counter_open()
w 2.6.31; nowa nazwa w 2.6.32
T}
\fBpersonality\fP(2)	1.2
\fBperfctr\fP(2)	2.2	T{
Tylko SPARC; usunięte w 2.6.34
T}
.\"	commit c7d5a0050773e98d1094eaa9f2a1a793fafac300 removed perfctr()
\fBperfmonctl\fP(2)	2.4	Tylko IA\-64; usunięte w 5.10
\fBpidfd_getfd\fP(2)	5.6
\fBpidfd_send_signal\fP(2)	5.1
\fBpidfd_open\fP(2)	5.3
\fBpipe\fP(2)	1.0
\fBpipe2\fP(2)	2.6.27
\fBpivot_root\fP(2)	2.4
\fBpkey_alloc\fP(2)	4.8
\fBpkey_free\fP(2)	4.8
\fBpkey_mprotect\fP(2)	4.8
\fBpoll\fP(2)	2.0.36; 2.2
\fBppoll\fP(2)	2.6.16
\fBprctl\fP(2)	2.2
\fBpread64\fP(2)		T{
Dodane jako \[Bq]pread\[rq] 2.2;
nowa nazwa \[Bq]pread64\[rq] w 2.6
T}
\fBpreadv\fP(2)	2.6.30
\fBpreadv2\fP(2)	4.6
\fBprlimit64\fP(2)	2.6.36
\fBprocess_madvise\fP(2)	5.10
\fBprocess_vm_readv\fP(2)	3.2
\fBprocess_vm_writev\fP(2)	3.2
\fBpselect6\fP(2)	2.6.16
.\" Implements \fBpselect\fP(2)
\fBptrace\fP(2)	1.0
\fBpwrite64\fP(2)		T{
Dodane jako \[Bq]pwrite\[rq] w 2.2;
nowa nazwa \[Bq]pwrite64\[rq] w 2.6
T}
\fBpwritev\fP(2)	2.6.30
\fBpwritev2\fP(2)	4.6
\fBquery_module\fP(2)	2.2	Usunięte w 2.6
\fBquotactl\fP(2)	1.0
\fBquotactl_fd\fP(2)	5.14
\fBread\fP(2)	1.0
\fBreadahead\fP(2)	2.4.13
\fBreaddir\fP(2)	1.0
.\" Supersedes \fBgetdents\fP(2)
\fBreadlink\fP(2)	1.0
\fBreadlinkat\fP(2)	2.6.16
\fBreadv\fP(2)	2.0
\fBreboot\fP(2)	1.0
\fBrecv\fP(2)	2.0	T{
Zob. uwagi w \fBsocketcall\fP(2)
T}
\fBrecvfrom\fP(2)	2.0	T{
Zob. uwagi w \fBsocketcall\fP(2)
T}
\fBrecvmsg\fP(2)	2.0	T{
Zob. uwagi w \fBsocketcall\fP(2)
T}
\fBrecvmmsg\fP(2)	2.6.33
\fBremap_file_pages\fP(2)	2.6	T{
Przestarzałe od 3.16
T}
\fBremovexattr\fP(2)	2.6; 2.4.18
\fBrename\fP(2)	1.0
\fBrenameat\fP(2)	2.6.16
\fBrenameat2\fP(2)	3.15
\fBrequest_key\fP(2)	2.6.10
\fBrestart_syscall\fP(2)	2.6
.\" 921ebd8f2c081b3cf6c3b29ef4103eef3ff26054
\fBriscv_flush_icache\fP(2)	4.15	Tylko RISC\-V
\fBrmdir\fP(2)	1.0
\fBrseq\fP(2)	4.18
\fBrt_sigaction\fP(2)	2.2
\fBrt_sigpending\fP(2)	2.2
\fBrt_sigprocmask\fP(2)	2.2
\fBrt_sigqueueinfo\fP(2)	2.2
\fBrt_sigreturn\fP(2)	2.2
\fBrt_sigsuspend\fP(2)	2.2
\fBrt_sigtimedwait\fP(2)	2.2
\fBrt_tgsigqueueinfo\fP(2)	2.6.31
\fBrtas\fP(2)	2.6.2	T{
Tylko PowerPC/PowerPC64
T}
\fBs390_runtime_instr\fP(2)	3.7	Tylko s390
\fBs390_pci_mmio_read\fP(2)	3.19	Tylko s390
\fBs390_pci_mmio_write\fP(2)	3.19	Tylko s390
\fBs390_sthyi\fP(2)	4.15	Tylko s390
\fBs390_guarded_storage\fP(2)	4.12	Tylko s390
\fBsched_get_affinity\fP(2)	2.6	T{
Nazwa
\fB\%sched_getaffinity\fP(2)
na SPARC i SPARC64
T}
\fBsched_get_priority_max\fP(2)	2.0
\fBsched_get_priority_min\fP(2)	2.0
\fBsched_getaffinity\fP(2)	2.6
\fBsched_getattr\fP(2)	3.14
\fBsched_getparam\fP(2)	2.0
\fBsched_getscheduler\fP(2)	2.0
\fBsched_rr_get_interval\fP(2)	2.0
\fBsched_set_affinity\fP(2)	2.6	T{
Nazwa
\fB\%sched_setaffinity\fP(2)
na SPARC i SPARC64
T}
\fBsched_setaffinity\fP(2)	2.6
\fBsched_setattr\fP(2)	3.14
\fBsched_setparam\fP(2)	2.0
\fBsched_setscheduler\fP(2)	2.0
\fBsched_yield\fP(2)	2.0
\fBseccomp\fP(2)	3.17
\fBselect\fP(2)	1.0
\fBsemctl\fP(2)	2.0	T{
Zob. uwagi w \fBipc\fP(2)
T}
\fBsemget\fP(2)	2.0	T{
Zob. uwagi w \fBipc\fP(2)
T}
\fBsemop\fP(2)	2.0	T{
Zob. uwagi w \fBipc\fP(2)
T}
\fBsemtimedop\fP(2)	2.6; 2.4.22
\fBsend\fP(2)	2.0	T{
Zob. uwagi w \fBsocketcall\fP(2)
T}
\fBsendfile\fP(2)	2.2
\fBsendfile64\fP(2)	2.6; 2.4.19
\fBsendmmsg\fP(2)	3.0
\fBsendmsg\fP(2)	2.0	T{
Zob. uwagi w \fBsocketcall\fP(2)
T}
\fBsendto\fP(2)	2.0	T{
Zob. uwagi w \fBsocketcall\fP(2)
T}
\fBset_mempolicy\fP(2)	2.6.6
\fBset_robust_list\fP(2)	2.6.17
\fBset_thread_area\fP(2)	2.6
\fBset_tid_address\fP(2)	2.6
\fBset_tls\fP(2)	2.6.11	T{
Tylko OABI/EABI ARM (stała
ma przedrostek \fB__ARM_NR\fP)
T}
.\" \fBsetaltroot\fP(2)	2.6.10	T{
.\" Removed in 2.6.11, exposed one
.\" of implementation details of
.\" \fBpersonality\fP(2) (creating an
.\" alternative root, precursor of
.\" mount namespaces) to user space.
.\" T}
.\" See http://lkml.org/lkml/2005/8/1/83
.\" "[PATCH] remove sys_set_zone_reclaim()"
\fBsetdomainname\fP(2)	1.0
\fBsetfsgid\fP(2)	1.2
\fBsetfsgid32\fP(2)	2.4
\fBsetfsuid\fP(2)	1.2
\fBsetfsuid32\fP(2)	2.4
\fBsetgid\fP(2)	1.0
\fBsetgid32\fP(2)	2.4
\fBsetgroups\fP(2)	1.0
\fBsetgroups32\fP(2)	2.4
.\" arch/alpha/include/asm/core_lca.h
\fBsethae\fP(2)	2.0	T{
Tylko Alpha; zob. UWAGI
T}
\fBsethostname\fP(2)	1.0
\fBsetitimer\fP(2)	1.0
\fBsetns\fP(2)	3.0
\fBsetpgid\fP(2)	1.0
\fBsetpgrp\fP(2)	2.0	T{
Inna nazwa \fBsetpgid\fP(2) na Alpha
T}
\fBsetpriority\fP(2)	1.0
\fBsetregid\fP(2)	1.0
\fBsetregid32\fP(2)	2.4
\fBsetresgid\fP(2)	2.2
\fBsetresgid32\fP(2)	2.4
\fBsetresuid\fP(2)	2.2
\fBsetresuid32\fP(2)	2.4
\fBsetreuid\fP(2)	1.0
\fBsetreuid32\fP(2)	2.4
\fBsetrlimit\fP(2)	1.0
\fBsetsid\fP(2)	1.0
\fBsetsockopt\fP(2)	2.0	T{
Zob. uwagi w \fBsocketcall\fP(2)
T}
\fBsettimeofday\fP(2)	1.0
\fBsetuid\fP(2)	1.0
\fBsetuid32\fP(2)	2.4
\fBsetup\fP(2)	1.0	Usunięte w 2.2
\fBsetxattr\fP(2)	2.6; 2.4.18
\fBsgetmask\fP(2)	1.0
\fBshmat\fP(2)	2.0	T{
Zob. uwagi w \fBipc\fP(2)
T}
\fBshmctl\fP(2)	2.0	T{
Zob. uwagi w \fBipc\fP(2)
T}
\fBshmdt\fP(2)	2.0	T{
Zob. uwagi w \fBipc\fP(2)
T}
\fBshmget\fP(2)	2.0	T{
Zob. uwagi w \fBipc\fP(2)
T}
\fBshutdown\fP(2)	2.0	T{
Zob. uwagi w \fBsocketcall\fP(2)
T}
\fBsigaction\fP(2)	1.0
\fBsigaltstack\fP(2)	2.2
\fBsignal\fP(2)	1.0
\fBsignalfd\fP(2)	2.6.22
\fBsignalfd4\fP(2)	2.6.27
\fBsigpending\fP(2)	1.0
\fBsigprocmask\fP(2)	1.0
\fBsigreturn\fP(2)	1.0
\fBsigsuspend\fP(2)	1.0
\fBsocket\fP(2)	2.0	T{
Zob. uwagi w \fBsocketcall\fP(2)
T}
\fBsocketcall\fP(2)	1.0
.\" Implements BSD socket calls
\fBsocketpair\fP(2)	2.0	T{
Zob. uwagi w \fBsocketcall\fP(2)
T}
.\" 5a0015d62668e64c8b6e02e360fbbea121bfd5e6
\fBspill\fP(2)	2.6.13	Tylko Xtensa
\fBsplice\fP(2)	2.6.17
\fBspu_create\fP(2)	2.6.16	T{
Tylko PowerPC/PowerPC64
T}
\fBspu_run\fP(2)	2.6.16	T{
Tylko PowerPC/PowerPC64
T}
\fBssetmask\fP(2)	1.0
\fBstat\fP(2)	1.0
\fBstat64\fP(2)	2.4
\fBstatfs\fP(2)	1.0
\fBstatfs64\fP(2)	2.6
\fBstatx\fP(2)	4.11
\fBstime\fP(2)	1.0
\fBsubpage_prot\fP(2)	2.6.25	T{
Tylko PowerPC/PowerPC64
T}
\fBswapcontext\fP(2)	2.6.3	T{
Tylko PowerPC/PowerPC64
T}
.\" 529d235a0e190ded1d21ccc80a73e625ebcad09b
\fBswitch_endian\fP(2)	4.1	Tylko PowerPC64
\fBswapoff\fP(2)	1.0
\fBswapon\fP(2)	1.0
\fBsymlink\fP(2)	1.0
\fBsymlinkat\fP(2)	2.6.16
\fBsync\fP(2)	1.0
\fBsync_file_range\fP(2)	2.6.17
\fBsync_file_range2\fP(2)	2.6.22
.\" PowerPC, ARM, tile
.\" First appeared on ARM, as arm_sync_file_range(), but later renamed
.\" \fBsys_debug_setcontext\fP(2)	???	PowerPC if CONFIG_PPC32
\fBsyncfs\fP(2)	2.6.39
\fBsys_debug_setcontext\fP(2)	2.6.11	Tylko PowerPC
\fBsyscall\fP(2)	1.0	T{
Wciąż dostępne na OABI ARM
i ABI O32 MIPS
T}
\fBsysfs\fP(2)	1.2
\fBsysinfo\fP(2)	1.0
\fBsyslog\fP(2)	1.0
.\" glibc interface is \fBklogctl\fP(3)
\fBsysmips\fP(2)	2.6.0	Tylko MIPS
\fBtee\fP(2)	2.6.17
\fBtgkill\fP(2)	2.6
\fBtime\fP(2)	1.0
\fBtimer_create\fP(2)	2.6
\fBtimer_delete\fP(2)	2.6
\fBtimer_getoverrun\fP(2)	2.6
\fBtimer_gettime\fP(2)	2.6
\fBtimer_settime\fP(2)	2.6
.\" .\" b215e283992899650c4271e7385c79e26fb9a88e
.\" .\" 4d672e7ac79b5ec5cdc90e450823441e20464691
.\" \fBtimerfd\fP(2)	2.6.22	T{
.\" Old timerfd interface,
.\" removed in 2.6.25
.\" T}
\fBtimerfd_create\fP(2)	2.6.25
\fBtimerfd_gettime\fP(2)	2.6.25
\fBtimerfd_settime\fP(2)	2.6.25
\fBtimes\fP(2)	1.0
\fBtkill\fP(2)	2.6; 2.4.22
\fBtruncate\fP(2)	1.0
\fBtruncate64\fP(2)	2.4
\fBugetrlimit\fP(2)	2.4
\fBumask\fP(2)	1.0
\fBumount\fP(2)	1.0
.\" sys_oldumount() -- __NR_umount
\fBumount2\fP(2)	2.2
.\" sys_umount() -- __NR_umount2
\fBuname\fP(2)	1.0
\fBunlink\fP(2)	1.0
\fBunlinkat\fP(2)	2.6.16
\fBunshare\fP(2)	2.6.16
\fBuselib\fP(2)	1.0
\fBustat\fP(2)	1.0
\fBuserfaultfd\fP(2)	4.3
\fBusr26\fP(2)	2.4.8.1	Tylko OABI ARM
\fBusr32\fP(2)	2.4.8.1	Tylko OABI ARM
\fButime\fP(2)	1.0
\fButimensat\fP(2)	2.6.22
\fButimes\fP(2)	2.2
\fButrap_install\fP(2)	2.2	Tylko SPARC64
.\" FIXME . document utrap_install()
.\" There's a man page for Solaris 5.11
\fBvfork\fP(2)	2.2
\fBvhangup\fP(2)	1.0
\fBvm86old\fP(2)	1.0	T{
Wcześniej \[Bq]vm86\[rq]; nowa nazwa
w 2.0.28/2.2
T}
\fBvm86\fP(2)	2.0.28; 2.2
\fBvmsplice\fP(2)	2.6.17
\fBwait4\fP(2)	1.0
\fBwaitid\fP(2)	2.6.10
\fBwaitpid\fP(2)	1.0
\fBwrite\fP(2)	1.0
\fBwritev\fP(2)	2.0
.\" 5a0015d62668e64c8b6e02e360fbbea121bfd5e6
\fBxtensa\fP(2)	2.6.13	Tylko Xtensa
.TE
.P
Na wielu platformach, w tym x86\-32, wywołania gniazd są zwielokrotniane (za
pomocą funkcji opakowujących glibc) poprzez \fBsocketcall\fP(2) i analogicznie
wywołania IPC Systemu\ V są zwielokrotniane poprzez \fBipc\fP(2).
.P
.\" __NR_afs_syscall is 53 on Linux 2.6.22/i386
.\" __NR_break is 17 on Linux 2.6.22/i386
.\" __NR_ftime is 35 on Linux 2.6.22/i386
.\" __NR_getpmsg is 188 on Linux 2.6.22/i386
.\" __NR_gtty is 32 on Linux 2.6.22/i386
.\" __NR_idle is 112 on Linux 2.6.22/i386
.\" __NR_lock is 53 on Linux 2.6.22/i386
.\" __NR_madvise1 is 219 on Linux 2.6.22/i386
.\" __NR_mpx is 66 on Linux 2.6.22/i386
.\" Slot has been reused
.\" __NR_prof is 44 on Linux 2.6.22/i386
.\" __NR_profil is 98 on Linux 2.6.22/i386
.\" __NR_putpmsg is 189 on Linux 2.6.22/i386
.\" __NR_security is 223 on Linux 2.4/i386
.\" __NR_security is 223 on Linux 2.4/i386; absent on 2.6/i386, present
.\" on a couple of 2.6 architectures
.\" __NR_stty is 31 on Linux 2.6.22/i386
.\" The security call is for future use.
.\" __NR_tuxcall is 184 on x86_64, also on PPC and alpha
.\" __NR_ulimit is 58 on Linux 2.6.22/i386
.\" __NR_vserver is 273 on Linux 2.6.22/i386
Dla następujących wywołań systemowych zarezerwowano miejsca w systemowej
tablicy wywołań, ale nie są one zaimplementowane w standardowym jądrze:
\fBafs_syscall\fP(2), \fBbreak\fP(2), \fBftime\fP(2), \fBgetpmsg\fP(2), \fBgtty\fP(2),
\fBidle\fP(2), \fBlock\fP(2), \fBmadvise1\fP(2), \fBmpx\fP(2), \fBphys\fP(2), \fBprof\fP(2),
\fBprofil\fP(2), \fBputpmsg\fP(2), \fBsecurity\fP(2), \fBstty\fP(2), \fBtuxcall\fP(2),
\fBulimit\fP(2) i \fBvserver\fP(2) (zob. też \fBunimplemented\fP(2)). Jednak
\fBftime\fP(3), \fBprofil\fP(3) i \fBulimit\fP(3) istnieją jako funkcje
biblioteczne. Miejsce dla \fBphys\fP(2) od Linuksa 2.1.116 jest używane przez
\fBumount\fP(2); \fBphys\fP(2) nigdy nie zostanie zaimplementowane. Wywołania
\fBgetpmsg\fP(2) i \fBputpmsg\fP(2) są przeznaczone do jąder zmodyfikowanych do
obsługi struktury STREAMS i mogą nigdy nie trafić do standardowego jądra.
.P
.\"
Istniało przez chwilę \fBset_zone_reclaim\fP(2), dodane w Linuksie 2.6.13 i
usunięte w Linuksie 2.6.16; to wywołanie systemowe nigdy nie było dostępne
dla przestrzeni użytkownika.
.SS "Wywołania systemowe na usuniętych portach"
Niektóre wywołania systemowe istniały tylko na architekturach Linuksa, które
zostały już usunięte z jądra:
.TP 
AVR32 (port usunięty w Linuksie 4.12)
.RS
.PD 0
.IP \[bu] 3
\fBpread\fP(2)
.IP \[bu]
\fBpwrite\fP(2)
.PD
.RE
.TP 
Blackfin (port usunięty w Linuksie 4.17)
.RS
.PD 0
.IP \[bu] 3
\fBbfin_spinlock\fP(2) (dodane w Linuksie 2.6.22)
.IP \[bu]
\fBdma_memcpy\fP(2) (dodane w Linuksie 2.6.22)
.IP \[bu]
\fBpread\fP(2) (dodane w Linuksie 2.6.22)
.IP \[bu]
\fBpwrite\fP(2) (dodane w Linuksie 2.6.22)
.IP \[bu]
\fBsram_alloc\fP(2) (dodane w Linuksie 2.6.22)
.IP \[bu]
\fBsram_free\fP(2) (dodane w Linuksie 2.6.22)
.PD
.RE
.TP 
Metag (port usunięty w Linuksie 4.17)
.RS
.PD 0
.IP \[bu] 3
\fBmetag_get_tls\fP(2)  (dodane w Linuksie 3.9)
.IP \[bu]
\fBmetag_set_fpu_flags\fP(2) (dodane w Linuksie 3.9)
.IP \[bu]
\fBmetag_set_tls\fP(2) (dodane w Linuksie 3.9)
.IP \[bu]
\fBmetag_setglobalbit\fP(2) (dodane w Linuksie 3.9)
.PD
.RE
.TP 
Tile (port usunięty w Linuksie 4.17)
.RS
.PD 0
.IP \[bu] 3
\fBcmpxchg_badaddr\fP(2) (dodane w Linuksie 2.6.36)
.PD
.RE
.SH UWAGI
Najczęściej kod należący do wywołania systemowego o numerze __NR_xxx
zdefiniowanym w  \fI/usr/include/asm/unistd.h\fP można znaleźć w źródłach jądra
Linux w funkcji \fIsys_xxx\fP(). Istnieje jednak wiele wyjątków, głównie z
powodu zastąpienia starszych wywołań systemowych nowszymi, co odbyło się w
nie do końca systematyczny sposób. Na platformach z zastrzeżoną emulacją
systemu operacyjnego, takich jak sparc, sparc64 i alpha, istnieje wiele
dodatkowych wywołań systemowych; mips64 zawiera również pełny zbiór
32\-bitowych wywołań systemowych.
.P
Z czasem, konieczna była zmiana interfejsów niektórych wywołań
systemowych. Jedną z przyczyn była konieczność zwiększenia struktur wartości
skalarnych przekazywanych do wywołań systemowych. Z powodów tych zmian,
niektóre architektury (między innymi długowieczne architektury 32\-bitowe,
takie jak i386) mają obecnie grupy powiązanych wywołań systemowych
(np. \fBtruncate\fP(2) i \fBtruncate64\fP(2)) realizujących podobne zadania, lecz
różniących się w szczegółach, takich jak rozmiar swoich argumentów (jak
zaznaczono wcześniej, aplikacje zwykle nie są tego świadome; funkcje
opakowujące glibc wykonują pewną pracę, aby przywołać odpowiednie wywołanie
systemowe oraz zapewnić kompatybilność ABI dla starszych plików
wykonywalnych). Oto przykłady wywołań systemowych, które istnieją w różnych
wersjach:
.IP \[bu] 3
.\" e.g., on 2.6.22/i386: __NR_oldstat 18, __NR_stat 106, __NR_stat64 195
.\" The stat system calls deal with three different data structures,
.\" defined in include/asm-i386/stat.h: __old_kernel_stat, stat, stat64
Obecnie występują trzy różne wersje \fBstat\fP(2): \fIsys_stat\fP() (miejsce
\fI__NR_oldstat\fP), \fIsys_newstat\fP() (miejsce \fI__NR_stat\fP) i \fIsys_stat64\fP()
(miejsce \fI__NR_stat64\fP), z których ostatnia jest najnowsza. Podobna
sytuacja występuje w przypadku \fBlstat\fP(2) i \fBfstat\fP(2).
.IP \[bu]
Podobnie, definicje \fI__NR_oldolduname\fP, \fI__NR_olduname\fP i \fI__NR_uname\fP
odnoszą się do funkcji \fIsys_olduname\fP(), \fIsys_uname\fP() i
\fIsys_newuname\fP().
.IP \[bu]
W Linuksie 2.0, pojawiła się nowa wersja \fBvm86\fP(2), przy czym stara i nowa
funkcja otrzymała nazwę, odpowiednio, \fIsys_vm86old\fP() i \fIsys_vm86\fP().
.IP \[bu]
W Linuksie 2.4, pojawiła się nowa wersja \fBgetrlimit\fP(2), przy czym stara i
nowa funkcja otrzymała nazwę, odpowiednio, \fIsys_old_getrlimit\fP() (miejsce
\fI__NR_getrlimit\fP) i \fIsys_getrlimit\fP() (miejsce \fI__NR_ugetrlimit\fP).
.IP \[bu]
.\" 64-bit off_t changes: ftruncate64, *stat64,
.\" fcntl64 (because of the flock structure), getdents64, *statfs64
Linux 2.4 zwiększył rozmiar identyfikatorów użytkownika i grupy z 16 do 32
bitów. Aby obsłużyć tę zmianę, dodano wiele wywołań systemowych
(np. \fBchown32\fP(2), \fBgetuid32\fP(2), \fBgetgroups32\fP(2), \fBsetresuid32\fP(2)),
zastępujących wcześniejsze wywołania o tej samej nazwie, bez przyrostka
\[Bq]32\[rq].
.IP \[bu]
Linux 2.4 dodał obsługę dostępu do dużych plików dla aplikacji 32\-bitowych
(tj. plików, których rozmiaru i przesunięcia pliku nie da się odwzorować w
32 bitach). Aby obsłużyć tę zmianę, konieczne było zastąpienie wywołań
systemowych, które działają na przesunięciach plików i ich rozmiarach. Z
tego względu dodano wywołania systemowe: \fBfcntl64\fP(2), \fBgetdents64\fP(2),
\fBstat64\fP(2), \fBstatfs64\fP(2), \fBtruncate64\fP(2) oraz ich odpowiedniki
działające na deskryptorach plików i dowiązaniach symbolicznych. Opisywane
wywołania zastąpiły starsze wywołania systemowe, które, z wyłączeniem
wywołań \[Bq]stat\[rq], miały te same nazwy, jedynie bez przyrostka
\[Bq]64\[rq].
.IP
Na nowszych platformach, które mają jedynie 64\-bitowy dostęp do plików i
32\-bitowe identyfikatory użytkownika i grupy (np. alpha, ia64, s390x,
x86\-64), istnieje jedynie pojedyncza wersja wywołań systemowych związanych z
UID\-ami, GID\-ami i dostępem do plików. Na platformach (zwykle 32\-bitowych),
gdzie istnieją wywołania *64 i *32, pozostałe wersje są przestarzałe.
.IP \[bu]
Wywołania \fIrt_sig*\fP dodano w Linuksie 2.2 w celu obsługi sygnałów czasu
rzeczywistego (zob. \fBsignal\fP(7)). Te wywołania systemowe zastąpiły starsze
wywołania o tej samej nazwie, jedynie bez przedrostka \[Bq]rt_\[rq].
.IP \[bu]
.\" (used by libc 6)
.\" .P
.\" Two system call numbers,
.\" .IR __NR__llseek
.\" and
.\" .IR __NR__sysctl
.\" have an additional underscore absent in
.\" .IR sys_llseek ()
.\" and
.\" .IR sys_sysctl ().
.\"
.\" In Linux 2.1.81,
.\" .BR lchown (2)
.\" and
.\" .BR chown (2)
.\" were swapped; that is,
.\" .BR lchown (2)
.\" was added with the semantics that were then current for
.\" .BR chown (2),
.\" and the semantics of the latter call were changed to what
.\" they are today.
.\"
.\"
Wywołania systemowe \fBselect\fP(2) i \fBmmap\fP(2) używają pięciu lub więcej
argumentów, co powodowało problemy, ze względu na sposób, w jaki
zorganizowano przekazywanie argumentów na i386. Z tego względu, choć inne
architektury mają \fIsys_select\fP() i \fIsys_mmap\fP() odpowiadające
\fI__NR_select\fP i \fI__NR_mmap\fP, ma i386 można znaleźć w tym miejscu
\fIold_select\fP() i \fIold_mmap\fP() (funkcje korzystające z wskaźnika do bloku
argumentów). Obecnie przekazywanie pięciu argumentów nie jest już problemem,
dlatego występuje \fI__NR__newselect\fP, które odpowiada bezpośrednio
\fIsys_select\fP() i podobnie \fI__NR_mmap2\fP. s390x jest jedyną architekturą
64\-bitową, która posiada \fIold_mmap\fP().
.SS "Szczegóły typowe dla architektury: Alpha"
.TP 
\fBgetxgid\fP(2)
zwraca parę: identyfikator grupy i efektywny identyfikator grupy za pomocą
rejestrów \fBr0\fP i \fBr20\fP; zapewnione w zamian za \fBgetgid\fP(2) i
\fBgetegid\fP(2).
.TP 
\fBgetxpid\fP(2)
zwraca parę: identyfikator procesu i efektywny identyfikator procesu za
pomocą rejestrów \fBr0\fP i \fBr20\fP; zapewnione w zamian za \fBgetpid\fP(2) i
\fBgetppid\fP(2).
.TP 
\fBold_adjtimex\fP(2)
jest wariantem \fBadjtimex\fP(2) używającym \fIstruct timeval32\fP, ze względu na
kompatybilność z OSF/1.
.TP 
\fBgetxuid\fP(2)
zwraca parę: identyfikator użytkownika i efektywny identyfikator użytkownika
za pomocą rejestrów \fBr0\fP i \fBr20\fP; zapewnione w zamian za \fBgetuid\fP(2) i
\fBgeteuid\fP(2).
.TP 
\fBsethae\fP(2)
służy do konfiguracji rejestru Host Address Extension na tanich komputerach
Alpha, w celu uzyskania dostępu do przestrzeni adresowej poza pierwszymi 27
bitami.
.SH "ZOBACZ TAKŻE"
\fBausyscall\fP(1), \fBintro\fP(2), \fBsyscall\fP(2), \fBunimplemented\fP(2),
\fBerrno\fP(3), \fBlibc\fP(7), \fBvdso\fP(7)
.PP
.SH TŁUMACZENIE
Tłumaczenie niniejszej strony podręcznika:
Michał Kułach <michal.kulach@gmail.com>
.
.PP
Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje o warunkach
licencji można uzyskać zapoznając się z
.UR https://www.gnu.org/licenses/gpl-3.0.html
GNU General Public License w wersji 3
.UE
lub nowszej. Nie przyjmuje się ŻADNEJ ODPOWIEDZIALNOŚCI.
.PP
Błędy w tłumaczeniu strony podręcznika prosimy zgłaszać na adres listy
dyskusyjnej
.MT manpages-pl-list@lists.sourceforge.net
.ME .
