.\" -*- coding: UTF-8 -*- '\" t .\" Copyright 1998, Andries E. Brouwer .\" Copyright 2002, Ian Redfern .\" Copyright 2007, Michael Kerrisk .\" Copyright, the authors of the Linux man-pages project .\" .\" SPDX-License-Identifier: Linux-man-pages-copyleft .\" .\"******************************************************************* .\" .\" This file was generated with po4a. Translate the source file. .\" .\"******************************************************************* .TH syscalls 2 "8 lutego 2026 r." "Linux man\-pages 6.18" .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 Lw(26n)2 L Lx. Wywołanie systemowe Jądro Uwagi _ \f[B]_llseek\fR(2) 1.2 \f[B]_newselect\fR(2) 2.0 \f[B]_sysctl\fR(2) 2.0 Usunięte w 5.5 T{ \fBaccept\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]socketcall\fR(2) T} \f[B]accept4\fR(2) 2.6.28 \f[B]access\fR(2) 1.0 \f[B]acct\fR(2) 1.0 \f[B]add_key\fR(2) 2.6.10 \f[B]adjtimex\fR(2) 1.0 \f[B]alarm\fR(2) 1.0 \f[B]alloc_hugepages\fR(2) 2.5.36 Usunięte w 2.5.44 .\" 4adeefe161a74369e44cc8e663f240ece0470dc3 \f[B]arc_gettls\fR(2) 3.9 Tylko ARC \f[B]arc_settls\fR(2) 3.9 Tylko ARC .\" 91e040a79df73d371f70792f30380d4e44805250 \f[B]arc_usr_cmpxchg\fR(2) 4.9 Tylko ARC .\" x86: 79170fda313ed5be2394f87aa2a00d597f8ed4a1 T{ \fBarch_prctl\fP(2) T} 2.6 T{ x86_64, x86 od 4.12 T} .\" 9674cdc74d63f346870943ef966a034f8c71ee57 \f[B]atomic_barrier\fR(2) 2.6.34 Tylko m68k \f[B]atomic_cmpxchg_32\fR(2) 2.6.34 Tylko m68k T{ \fBbdflush\fP(2) T} 1.2 T{ Przestarzałe (nieaktywne) od 2.6, usunięte w 5.15 T} T{ \fBbind\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]socketcall\fR(2) T} \f[B]bpf\fR(2) 3.18 \f[B]brk\fR(2) 1.0 T{ \fBbreakpoint\fP(2) T} 2.2 T{ Tylko OABI ARM, zdefiniowane z przedrostkiem \f[B]__ARM_NR\fR T} \f[B]cacheflush\fR(2) 1.2 Nie na x86 \f[B]capget\fR(2) 2.2 \f[B]capset\fR(2) 2.2 \f[B]chdir\fR(2) 1.0 \f[B]chmod\fR(2) 1.0 T{ \fBchown\fP(2) T} 2.2 T{ Wersje opisano szczegół. w \fBchown\fP(2) T} \f[B]chown32\fR(2) 2.4 \f[B]chroot\fR(2) 1.0 \f[B]clock_adjtime\fR(2) 2.6.39 \f[B]clock_getres\fR(2) 2.6 \f[B]clock_gettime\fR(2) 2.6 \f[B]clock_nanosleep\fR(2) 2.6 \f[B]clock_settime\fR(2) 2.6 \f[B]clone2\fR(2) 2.4 Tylko IA\-64 \f[B]clone\fR(2) 1.0 \f[B]clone3\fR(2) 5.3 \f[B]close\fR(2) 1.0 \f[B]close_range\fR(2) 5.9 .\" .\" dcef1f634657dabe7905af3ccda12cf7f0b6fcc1 .\" .\" cc20d42986d5807cbe4f5c7c8e3dab2e59ea0db3 .\" .\" db695c0509d6ec9046ee5e4c520a19fa17d9fce2 .\" \f[B]cmpxchg\f[](2) 2.6.12 T{ .\" ARM, syscall constant never was .\" exposed to user space, in-kernel .\" definition had \f[B]__ARM_NR\f[] prefix, .\" removed in 4.4 .\" T} .\" 867e359b97c970a60626d5d76bbe2a8fadbf38fb .\" bb9d812643d8a121df7d614a2b9c60193a92deb0 T{ \fBconnect\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]socketcall\fR(2) T} \f[B]copy_file_range\fR(2) 4.5 \f[B]creat\fR(2) 1.0 \f[B]create_module\fR(2) 1.0 Usunięte w 2.6 \f[B]delete_module\fR(2) 1.0 .\" 1394f03221790a988afc3e4b3cb79f2e477246a9 .\" 4ba66a9760722ccbb691b8f7116cad2f791cca7b \f[B]dup\fR(2) 1.0 \f[B]dup2\fR(2) 1.0 \f[B]dup3\fR(2) 2.6.27 \f[B]epoll_create\fR(2) 2.6 \f[B]epoll_create1\fR(2) 2.6.27 \f[B]epoll_ctl\fR(2) 2.6 \f[B]epoll_pwait\fR(2) 2.6.19 \f[B]epoll_pwait2\fR(2) 5.11 \f[B]epoll_wait\fR(2) 2.6 \f[B]eventfd\fR(2) 2.6.22 \f[B]eventfd2\fR(2) 2.6.27 T{ \fBexecv\fP(2) T} 2.0 T{ Tylko SPARC/SPARC64, ze wzgl. na kompat. z SunOS T} \f[B]execve\fR(2) 1.0 \f[B]execveat\fR(2) 3.19 \f[B]exit\fR(2) 1.0 \f[B]exit_group\fR(2) 2.6 \f[B]faccessat\fR(2) 2.6.16 \f[B]faccessat2\fR(2) 5.8 \f[B]fadvise64\fR(2) 2.6 .\" Implements \f[B]posix_fadvise\f[](2) \f[B]fadvise64_64\fR(2) 2.6 \f[B]fallocate\fR(2) 2.6.23 \f[B]fanotify_init\fR(2) 2.6.37 \f[B]fanotify_mark\fR(2) 2.6.37 .\" The fanotify calls were added in Linux 2.6.36, .\" but disabled while the API was finalized. \f[B]fchdir\fR(2) 1.0 \f[B]fchmod\fR(2) 1.0 \f[B]fchmodat\fR(2) 2.6.16 \f[B]fchown\fR(2) 1.0 \f[B]fchown32\fR(2) 2.4 \f[B]fchownat\fR(2) 2.6.16 \f[B]fcntl\fR(2) 1.0 \f[B]fcntl64\fR(2) 2.4 \f[B]fdatasync\fR(2) 2.0 \f[B]fgetxattr\fR(2) 2.6; 2.4.18 \f[B]finit_module\fR(2) 3.8 \f[B]flistxattr\fR(2) 2.6; 2.4.18 \f[B]flock\fR(2) 2.0 \f[B]fork\fR(2) 1.0 \f[B]free_hugepages\fR(2) 2.5.36 Usunięte w 2.5.44 \f[B]fremovexattr\fR(2) 2.6; 2.4.18 \f[B]fsconfig\fR(2) 5.2 \f[B]fsetxattr\fR(2) 2.6; 2.4.18 \f[B]fsmount\fR(2) 5.2 \f[B]fsopen\fR(2) 5.2 \f[B]fspick\fR(2) 5.2 \f[B]fstat\fR(2) 1.0 \f[B]fstat64\fR(2) 2.4 \f[B]fstatat64\fR(2) 2.6.16 \f[B]fstatfs\fR(2) 1.0 \f[B]fstatfs64\fR(2) 2.6 \f[B]fsync\fR(2) 1.0 \f[B]ftruncate\fR(2) 1.0 \f[B]ftruncate64\fR(2) 2.4 \f[B]futex\fR(2) 2.6 \f[B]futimesat\fR(2) 2.6.16 \f[B]get_kernel_syms\fR(2) 1.0 Usunięte w 2.6 \f[B]get_mempolicy\fR(2) 2.6.6 \f[B]get_robust_list\fR(2) 2.6.17 \f[B]get_thread_area\fR(2) 2.6 .\" 8fcd6c45f5a65621ec809b7866a3623e9a01d4ed T{ \fBget_tls\fP(2) T} 4.15 T{ Tylko OABI ARM, z przedrostkiem \f[B]__ARM_NR\fR T} \f[B]getcpu\fR(2) 2.6.19 \f[B]getcwd\fR(2) 2.2 \f[B]getdents\fR(2) 2.0 \f[B]getdents64\fR(2) 2.4 .\" parisc: 863722e856e64dae0e252b6bb546737c6c5626ce T{ \fBgetdomainname\fP(2) T} 2.2 T{ SPARC, SPARC64; dost. jako \f[B]osf_getdomainname\fR(2) na Alpha od Linuksa 2.0 T} .\" ec98c6b9b47df6df1c1fa6cf3d427414f8c2cf16 T{ \fBgetdtablesize\fP(2) T} 2.0 T{ SPARC (usunięte w 2.6.26), dostępne na Alpha jako \f[B]osf_getdtablesize\fR(2) T} \f[B]getegid\fR(2) 1.0 \f[B]getegid32\fR(2) 2.4 \f[B]geteuid\fR(2) 1.0 \f[B]geteuid32\fR(2) 2.4 \f[B]getgid\fR(2) 1.0 \f[B]getgid32\fR(2) 2.4 \f[B]getgroups\fR(2) 1.0 \f[B]getgroups32\fR(2) 2.4 .\" SPARC removal: ec98c6b9b47df6df1c1fa6cf3d427414f8c2cf16 T{ \fBgethostname\fP(2) T} 2.0 T{ Alpha, było dost. na SPARC do Linuksa 2.6.26 T} \f[B]getitimer\fR(2) 1.0 T{ \fBgetpeername\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]socketcall\fR(2) T} T{ \fBgetpagesize\fP(2) T} 2.0 T{ Tylko Alpha, SPARC/SPARC64 T} \f[B]getpgid\fR(2) 1.0 \f[B]getpgrp\fR(2) 1.0 \f[B]getpid\fR(2) 1.0 \f[B]getppid\fR(2) 1.0 \f[B]getpriority\fR(2) 1.0 \f[B]getrandom\fR(2) 3.17 \f[B]getresgid\fR(2) 2.2 \f[B]getresgid32\fR(2) 2.4 \f[B]getresuid\fR(2) 2.2 \f[B]getresuid32\fR(2) 2.4 \f[B]getrlimit\fR(2) 1.0 \f[B]getrusage\fR(2) 1.0 \f[B]getsid\fR(2) 2.0 T{ \fBgetsockname\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]socketcall\fR(2) T} T{ \fBgetsockopt\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]socketcall\fR(2) T} \f[B]gettid\fR(2) 2.4.11 \f[B]gettimeofday\fR(2) 1.0 \f[B]getuid\fR(2) 1.0 \f[B]getuid32\fR(2) 2.4 T{ \fBgetunwind\fP(2) T} 2.4.8 T{ Tylko IA\-64; przestarzałe T} \f[B]getxattr\fR(2) 2.6; 2.4.18 T{ \fBgetxgid\fP(2) T} 2.0 T{ Tylko Alpha; zob. UWAGI T} T{ \fBgetxpid\fP(2) T} 2.0 T{ Tylko Alpha; zob. UWAGI T} T{ \fBgetxuid\fP(2) T} 2.0 T{ Tylko Alpha; zob. UWAGI T} \f[B]init_module\fR(2) 1.0 \f[B]inotify_add_watch\fR(2) 2.6.13 \f[B]inotify_init\fR(2) 2.6.13 \f[B]inotify_init1\fR(2) 2.6.27 \f[B]inotify_rm_watch\fR(2) 2.6.13 \f[B]io_cancel\fR(2) 2.6 \f[B]io_destroy\fR(2) 2.6 \f[B]io_getevents\fR(2) 2.6 \f[B]io_pgetevents\fR(2) 4.18 \f[B]io_setup\fR(2) 2.6 \f[B]io_submit\fR(2) 2.6 \f[B]io_uring_enter\fR(2) 5.1 \f[B]io_uring_register\fR(2) 5.1 \f[B]io_uring_setup\fR(2) 5.1 \f[B]ioctl\fR(2) 1.0 \f[B]ioperm\fR(2) 1.0 \f[B]iopl\fR(2) 1.0 \f[B]ioprio_get\fR(2) 2.6.13 \f[B]ioprio_set\fR(2) 2.6.13 \f[B]ipc\fR(2) 1.0 .\" Implements System V IPC calls \f[B]kcmp\fR(2) 3.5 \f[B]kern_features\fR(2) 3.7 Tylko SPARC64 .\" FIXME . document kern_features(): .\" commit 517ffce4e1a03aea979fe3a18a3dd1761a24fafb \f[B]kexec_file_load\fR(2) 3.17 \f[B]kexec_load\fR(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 \f[B]keyctl\fR(2) 2.6.10 \f[B]kill\fR(2) 1.0 \f[B]landlock_add_rule\fR(2) 5.13 \f[B]landlock_create_ruleset\fR(2) 5.13 \f[B]landlock_restrict_self\fR(2) 5.13 T{ \fBlchown\fP(2) T} 1.0 T{ Wersje opisano szczegół. w \fBchown\fP(2) T} \f[B]lchown32\fR(2) 2.4 \f[B]lgetxattr\fR(2) 2.6; 2.4.18 \f[B]link\fR(2) 1.0 \f[B]linkat\fR(2) 2.6.16 T{ \fBlisten\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]socketcall\fR(2) T} \f[B]listxattr\fR(2) 2.6; 2.4.18 \f[B]llistxattr\fR(2) 2.6; 2.4.18 \f[B]lookup_dcookie\fR(2) 2.6 \f[B]lremovexattr\fR(2) 2.6; 2.4.18 \f[B]lseek\fR(2) 1.0 \f[B]lsetxattr\fR(2) 2.6; 2.4.18 \f[B]lstat\fR(2) 1.0 \f[B]lstat64\fR(2) 2.4 \f[B]madvise\fR(2) 2.4 \f[B]mbind\fR(2) 2.6.6 \f[B]memory_ordering\fR(2) 2.2 Tylko SPARC64 .\" 26025bbfbba33a9425be1b89eccb4664ea4c17b6 .\" bb6fb6dfcc17cddac11ac295861f7608194447a7 \f[B]membarrier\fR(2) 3.17 \f[B]memfd_create\fR(2) 3.17 \f[B]memfd_secret\fR(2) 5.14 \f[B]migrate_pages\fR(2) 2.6.16 \f[B]mincore\fR(2) 2.4 \f[B]mkdir\fR(2) 1.0 \f[B]mkdirat\fR(2) 2.6.16 \f[B]mknod\fR(2) 1.0 \f[B]mknodat\fR(2) 2.6.16 \f[B]mlock\fR(2) 2.0 \f[B]mlock2\fR(2) 4.4 \f[B]mlockall\fR(2) 2.0 \f[B]mmap\fR(2) 1.0 \f[B]mmap2\fR(2) 2.4 \f[B]modify_ldt\fR(2) 1.0 \f[B]mount\fR(2) 1.0 \f[B]move_mount\fR(2) 5.2 \f[B]move_pages\fR(2) 2.6.18 \f[B]mprotect\fR(2) 1.0 \f[B]mq_getsetattr\fR(2) 2.6.6 .\" Implements \f[B]mq_getattr\f[](3) and \f[B]mq_setattr\f[](3) \f[B]mq_notify\fR(2) 2.6.6 \f[B]mq_open\fR(2) 2.6.6 \f[B]mq_timedreceive\fR(2) 2.6.6 \f[B]mq_timedsend\fR(2) 2.6.6 \f[B]mq_unlink\fR(2) 2.6.6 \f[B]mremap\fR(2) 2.0 T{ \fBmsgctl\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]ipc\fR(2) T} T{ \fBmsgget\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]ipc\fR(2) T} T{ \fBmsgrcv\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]ipc\fR(2) T} T{ \fBmsgsnd\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]ipc\fR(2) T} \f[B]msync\fR(2) 2.0 .\" \f[B]multiplexer\f[](2) ?? __NR_multiplexer reserved on .\" PowerPC, but unimplemented? \f[B]munlock\fR(2) 2.0 \f[B]munlockall\fR(2) 2.0 \f[B]munmap\fR(2) 1.0 \f[B]name_to_handle_at\fR(2) 2.6.39 \f[B]nanosleep\fR(2) 2.0 .\" 5590ff0d5528b60153c0b4e7b771472b5a95e297 T{ \fBnewfstatat\fP(2) T} 2.6.16 T{ Zob. \f[B]stat\fR(2) T} \f[B]nfsservctl\fR(2) 2.2 Usunięte w 3.1 \f[B]nice\fR(2) 1.0 T{ \fBold_adjtimex\fP(2) T} 2.0 T{ Tylko Alpha; zob. UWAGI T} T{ \fBold_getrlimit\fP(2) T} 2.4 T{ Stary wariant \f[B]getrlimit\fR(2) używający innej wartości \f[B]RLIM_INFINITY\fR T} \f[B]oldfstat\fR(2) 1.0 \f[B]oldlstat\fR(2) 1.0 \f[B]oldolduname\fR(2) 1.0 \f[B]oldstat\fR(2) 1.0 T{ \fBoldumount\fP(2) T} 2.4.116 T{ Nazwa starego \f[B]umount\fR(2) wywołania syst. na Alpha T} \f[B]olduname\fR(2) 1.0 \f[B]open\fR(2) 1.0 \f[B]open_by_handle_at\fR(2) 2.6.39 \f[B]open_tree\fR(2) 5.2 \f[B]openat\fR(2) 2.6.16 \f[B]openat2\fR(2) 5.6 .\" 9d02a4283e9ce4e9ca11ff00615bdacdb0515a1a T{ \fBor1k_atomic\fP(2) T} 3.1 T{ Tylko OpenRISC 1000 T} \f[B]pause\fR(2) 1.0 \f[B]pciconfig_iobase\fR(2) 2.2.15; 2.4 Nie na x86 .\" Alpha, PowerPC, ARM; not x86 \f[B]pciconfig_read\fR(2) 2.0.26; 2.2 Nie na x86 .\" , PowerPC, ARM; not x86 \f[B]pciconfig_write\fR(2) 2.0.26; 2.2 Nie na x86 .\" , PowerPC, ARM; not x86 T{ \fBperf_event_open\fP(2) T} 2.6.31 T{ Wcześniej perf_counter_open() w 2.6.31; nowa nazwa w 2.6.32 T} \f[B]personality\fR(2) 1.2 T{ \fBperfctr\fP(2) T} 2.2 T{ Tylko SPARC; usunięte w 2.6.34 T} .\" commit c7d5a0050773e98d1094eaa9f2a1a793fafac300 removed perfctr() \f[B]perfmonctl\fR(2) 2.4 Tylko IA\-64; usunięte w 5.10 \f[B]pidfd_getfd\fR(2) 5.6 \f[B]pidfd_send_signal\fR(2) 5.1 \f[B]pidfd_open\fR(2) 5.3 \f[B]pipe\fR(2) 1.0 \f[B]pipe2\fR(2) 2.6.27 \f[B]pivot_root\fR(2) 2.4 \f[B]pkey_alloc\fR(2) 4.8 \f[B]pkey_free\fR(2) 4.8 \f[B]pkey_mprotect\fR(2) 4.8 \f[B]poll\fR(2) 2.0.36; 2.2 \f[B]ppoll\fR(2) 2.6.16 \f[B]prctl\fR(2) 2.2 T{ \fBpread64\fP(2) T} T{ Dodane jako \[Bq]pread\[rq] 2.2; nowa nazwa \[Bq]pread64\[rq] w 2.6 T} \f[B]preadv\fR(2) 2.6.30 \f[B]preadv2\fR(2) 4.6 \f[B]prlimit64\fR(2) 2.6.36 \f[B]process_madvise\fR(2) 5.10 \f[B]process_vm_readv\fR(2) 3.2 \f[B]process_vm_writev\fR(2) 3.2 \f[B]pselect6\fR(2) 2.6.16 .\" Implements \f[B]pselect\f[](2) \f[B]ptrace\fR(2) 1.0 T{ \fBpwrite64\fP(2) T} T{ Dodane jako \[Bq]pwrite\[rq] w 2.2; nowa nazwa \[Bq]pwrite64\[rq] w 2.6 T} \f[B]pwritev\fR(2) 2.6.30 \f[B]pwritev2\fR(2) 4.6 \f[B]query_module\fR(2) 2.2 Usunięte w 2.6 \f[B]quotactl\fR(2) 1.0 \f[B]quotactl_fd\fR(2) 5.14 \f[B]read\fR(2) 1.0 \f[B]readahead\fR(2) 2.4.13 \f[B]readdir\fR(2) 1.0 .\" Supersedes \f[B]getdents\f[](2) \f[B]readlink\fR(2) 1.0 \f[B]readlinkat\fR(2) 2.6.16 \f[B]readv\fR(2) 2.0 \f[B]reboot\fR(2) 1.0 T{ \fBrecv\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]socketcall\fR(2) T} T{ \fBrecvfrom\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]socketcall\fR(2) T} T{ \fBrecvmsg\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]socketcall\fR(2) T} \f[B]recvmmsg\fR(2) 2.6.33 T{ \fBremap_file_pages\fP(2) T} 2.6 T{ Przestarzałe od 3.16 T} \f[B]removexattr\fR(2) 2.6; 2.4.18 \f[B]rename\fR(2) 1.0 \f[B]renameat\fR(2) 2.6.16 \f[B]renameat2\fR(2) 3.15 \f[B]request_key\fR(2) 2.6.10 \f[B]restart_syscall\fR(2) 2.6 .\" 921ebd8f2c081b3cf6c3b29ef4103eef3ff26054 \f[B]riscv_flush_icache\fR(2) 4.15 Tylko RISC\-V \f[B]rmdir\fR(2) 1.0 \f[B]rseq\fR(2) 4.18 \f[B]rt_sigaction\fR(2) 2.2 \f[B]rt_sigpending\fR(2) 2.2 \f[B]rt_sigprocmask\fR(2) 2.2 \f[B]rt_sigqueueinfo\fR(2) 2.2 \f[B]rt_sigreturn\fR(2) 2.2 \f[B]rt_sigsuspend\fR(2) 2.2 \f[B]rt_sigtimedwait\fR(2) 2.2 \f[B]rt_tgsigqueueinfo\fR(2) 2.6.31 T{ \fBrtas\fP(2) T} 2.6.2 T{ Tylko PowerPC/PowerPC64 T} \f[B]s390_runtime_instr\fR(2) 3.7 Tylko s390 \f[B]s390_pci_mmio_read\fR(2) 3.19 Tylko s390 \f[B]s390_pci_mmio_write\fR(2) 3.19 Tylko s390 \f[B]s390_sthyi\fR(2) 4.15 Tylko s390 \f[B]s390_guarded_storage\fR(2) 4.12 Tylko s390 T{ \fBsched_get_affinity\fP(2) T} 2.6 T{ Nazwa \fB\%sched_getaffinity\fP(2) na SPARC i SPARC64 T} \f[B]sched_get_priority_max\fR(2) 2.0 \f[B]sched_get_priority_min\fR(2) 2.0 \f[B]sched_getaffinity\fR(2) 2.6 \f[B]sched_getattr\fR(2) 3.14 \f[B]sched_getparam\fR(2) 2.0 \f[B]sched_getscheduler\fR(2) 2.0 \f[B]sched_rr_get_interval\fR(2) 2.0 T{ \fBsched_set_affinity\fP(2) T} 2.6 T{ Nazwa \fB\%sched_setaffinity\fP(2) na SPARC i SPARC64 T} \f[B]sched_setaffinity\fR(2) 2.6 \f[B]sched_setattr\fR(2) 3.14 \f[B]sched_setparam\fR(2) 2.0 \f[B]sched_setscheduler\fR(2) 2.0 \f[B]sched_yield\fR(2) 2.0 \f[B]seccomp\fR(2) 3.17 \f[B]select\fR(2) 1.0 T{ \fBsemctl\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]ipc\fR(2) T} T{ \fBsemget\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]ipc\fR(2) T} T{ \fBsemop\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]ipc\fR(2) T} \f[B]semtimedop\fR(2) 2.6; 2.4.22 T{ \fBsend\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]socketcall\fR(2) T} \f[B]sendfile\fR(2) 2.2 \f[B]sendfile64\fR(2) 2.6; 2.4.19 \f[B]sendmmsg\fR(2) 3.0 T{ \fBsendmsg\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]socketcall\fR(2) T} T{ \fBsendto\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]socketcall\fR(2) T} \f[B]set_mempolicy\fR(2) 2.6.6 \f[B]set_robust_list\fR(2) 2.6.17 \f[B]set_thread_area\fR(2) 2.6 \f[B]set_tid_address\fR(2) 2.6 T{ \fBset_tls\fP(2) T} 2.6.11 T{ Tylko OABI/EABI ARM (stała ma przedrostek \f[B]__ARM_NR\fR) T} .\" \f[B]setaltroot\f[](2) 2.6.10 T{ .\" Removed in 2.6.11, exposed one .\" of implementation details of .\" \f[B]personality\f[](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()" \f[B]setdomainname\fR(2) 1.0 \f[B]setfsgid\fR(2) 1.2 \f[B]setfsgid32\fR(2) 2.4 \f[B]setfsuid\fR(2) 1.2 \f[B]setfsuid32\fR(2) 2.4 \f[B]setgid\fR(2) 1.0 \f[B]setgid32\fR(2) 2.4 \f[B]setgroups\fR(2) 1.0 \f[B]setgroups32\fR(2) 2.4 .\" arch/alpha/include/asm/core_lca.h T{ \fBsethae\fP(2) T} 2.0 T{ Tylko Alpha; zob. UWAGI T} \f[B]sethostname\fR(2) 1.0 \f[B]setitimer\fR(2) 1.0 \f[B]setns\fR(2) 3.0 \f[B]setpgid\fR(2) 1.0 T{ \fBsetpgrp\fP(2) T} 2.0 T{ Inna nazwa \fBsetpgid\fP(2) na Alpha T} \f[B]setpriority\fR(2) 1.0 \f[B]setregid\fR(2) 1.0 \f[B]setregid32\fR(2) 2.4 \f[B]setresgid\fR(2) 2.2 \f[B]setresgid32\fR(2) 2.4 \f[B]setresuid\fR(2) 2.2 \f[B]setresuid32\fR(2) 2.4 \f[B]setreuid\fR(2) 1.0 \f[B]setreuid32\fR(2) 2.4 \f[B]setrlimit\fR(2) 1.0 \f[B]setsid\fR(2) 1.0 T{ \fBsetsockopt\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]socketcall\fR(2) T} \f[B]settimeofday\fR(2) 1.0 \f[B]setuid\fR(2) 1.0 \f[B]setuid32\fR(2) 2.4 \f[B]setup\fR(2) 1.0 Usunięte w 2.2 \f[B]setxattr\fR(2) 2.6; 2.4.18 \f[B]sgetmask\fR(2) 1.0 T{ \fBshmat\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]ipc\fR(2) T} T{ \fBshmctl\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]ipc\fR(2) T} T{ \fBshmdt\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]ipc\fR(2) T} T{ \fBshmget\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]ipc\fR(2) T} T{ \fBshutdown\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]socketcall\fR(2) T} \f[B]sigaction\fR(2) 1.0 \f[B]sigaltstack\fR(2) 2.2 \f[B]signal\fR(2) 1.0 \f[B]signalfd\fR(2) 2.6.22 \f[B]signalfd4\fR(2) 2.6.27 \f[B]sigpending\fR(2) 1.0 \f[B]sigprocmask\fR(2) 1.0 \f[B]sigreturn\fR(2) 1.0 \f[B]sigsuspend\fR(2) 1.0 T{ \fBsocket\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]socketcall\fR(2) T} \f[B]socketcall\fR(2) 1.0 .\" Implements BSD socket calls T{ \fBsocketpair\fP(2) T} 2.0 T{ Zob. uwagi w \f[B]socketcall\fR(2) T} .\" 5a0015d62668e64c8b6e02e360fbbea121bfd5e6 \f[B]spill\fR(2) 2.6.13 Tylko Xtensa \f[B]splice\fR(2) 2.6.17 T{ \fBspu_create\fP(2) T} 2.6.16 T{ Tylko PowerPC/PowerPC64 T} T{ \fBspu_run\fP(2) T} 2.6.16 T{ Tylko PowerPC/PowerPC64 T} \f[B]ssetmask\fR(2) 1.0 \f[B]stat\fR(2) 1.0 \f[B]stat64\fR(2) 2.4 \f[B]statfs\fR(2) 1.0 \f[B]statfs64\fR(2) 2.6 \f[B]statx\fR(2) 4.11 \f[B]stime\fR(2) 1.0 T{ \fBsubpage_prot\fP(2) T} 2.6.25 T{ Tylko PowerPC/PowerPC64 T} T{ \fBswapcontext\fP(2) T} 2.6.3 T{ Tylko PowerPC/PowerPC64 T} .\" 529d235a0e190ded1d21ccc80a73e625ebcad09b \f[B]switch_endian\fR(2) 4.1 Tylko PowerPC64 \f[B]swapoff\fR(2) 1.0 \f[B]swapon\fR(2) 1.0 \f[B]symlink\fR(2) 1.0 \f[B]symlinkat\fR(2) 2.6.16 \f[B]sync\fR(2) 1.0 \f[B]sync_file_range\fR(2) 2.6.17 \f[B]sync_file_range2\fR(2) 2.6.22 .\" PowerPC, ARM, tile .\" First appeared on ARM, as arm_sync_file_range(), but later renamed .\" \f[B]sys_debug_setcontext\f[](2) ??? PowerPC if CONFIG_PPC32 \f[B]syncfs\fR(2) 2.6.39 \f[B]sys_debug_setcontext\fR(2) 2.6.11 Tylko PowerPC T{ \fBsyscall\fP(2) T} 1.0 T{ Wciąż dostępne na OABI ARM i ABI O32 MIPS T} \f[B]sysfs\fR(2) 1.2 \f[B]sysinfo\fR(2) 1.0 \f[B]syslog\fR(2) 1.0 .\" glibc interface is \f[B]klogctl\f[](3) \f[B]sysmips\fR(2) 2.6.0 Tylko MIPS \f[B]tee\fR(2) 2.6.17 \f[B]tgkill\fR(2) 2.6 \f[B]time\fR(2) 1.0 \f[B]timer_create\fR(2) 2.6 \f[B]timer_delete\fR(2) 2.6 \f[B]timer_getoverrun\fR(2) 2.6 \f[B]timer_gettime\fR(2) 2.6 \f[B]timer_settime\fR(2) 2.6 .\" .\" b215e283992899650c4271e7385c79e26fb9a88e .\" .\" 4d672e7ac79b5ec5cdc90e450823441e20464691 .\" \f[B]timerfd\f[](2) 2.6.22 T{ .\" Old timerfd interface, .\" removed in 2.6.25 .\" T} \f[B]timerfd_create\fR(2) 2.6.25 \f[B]timerfd_gettime\fR(2) 2.6.25 \f[B]timerfd_settime\fR(2) 2.6.25 \f[B]times\fR(2) 1.0 \f[B]tkill\fR(2) 2.6; 2.4.22 \f[B]truncate\fR(2) 1.0 \f[B]truncate64\fR(2) 2.4 \f[B]ugetrlimit\fR(2) 2.4 \f[B]umask\fR(2) 1.0 \f[B]umount\fR(2) 1.0 .\" sys_oldumount() -- __NR_umount \f[B]umount2\fR(2) 2.2 .\" sys_umount() -- __NR_umount2 \f[B]uname\fR(2) 1.0 \f[B]unlink\fR(2) 1.0 \f[B]unlinkat\fR(2) 2.6.16 \f[B]unshare\fR(2) 2.6.16 \f[B]uselib\fR(2) 1.0 \f[B]ustat\fR(2) 1.0 \f[B]userfaultfd\fR(2) 4.3 \f[B]usr26\fR(2) 2.4.8.1 Tylko OABI ARM \f[B]usr32\fR(2) 2.4.8.1 Tylko OABI ARM \f[B]utime\fR(2) 1.0 \f[B]utimensat\fR(2) 2.6.22 \f[B]utimes\fR(2) 2.2 \f[B]utrap_install\fR(2) 2.2 Tylko SPARC64 .\" FIXME . document utrap_install() .\" There's a man page for Solaris 5.11 \f[B]vfork\fR(2) 2.2 \f[B]vhangup\fR(2) 1.0 T{ \fBvm86old\fP(2) T} 1.0 T{ Wcześniej \[Bq]vm86\[rq]; nowa nazwa w 2.0.28/2.2 T} \f[B]vm86\fR(2) 2.0.28; 2.2 \f[B]vmsplice\fR(2) 2.6.17 \f[B]wait4\fR(2) 1.0 \f[B]waitid\fR(2) 2.6.10 \f[B]waitpid\fR(2) 1.0 \f[B]write\fR(2) 1.0 \f[B]writev\fR(2) 2.0 .\" 5a0015d62668e64c8b6e02e360fbbea121bfd5e6 \f[B]xtensa\fR(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 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] \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 grupy i efektywny identyfikator grupy 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" \fBintro\fP(2), \fBsyscall\fP(2), \fBunimplemented\fP(2), \fBerrno\fP(3), \fBlibc\fP(7), \fBvdso\fP(7), \fBausyscall\fP(8) .PP .SH TŁUMACZENIE Tłumaczenie niniejszej strony podręcznika: Michał Kułach . .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 .