Provided by: manpages-pl-dev_4.27.0-1_all bug

NAZWA

       syscalls - linuksowe wywołania systemowe

SKŁADNIA

       Linuksowe wywołania systemowe.

OPIS

       Wywołanie systemowe jest podstawowym interfejsem pomiędzy aplikacją a jądrem Linux.

   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 intro(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ę chdir() przywołującą
       wywołanie systemowe „chdir”.

       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 errno po
       powrocie wywołania systemowego (te same kroki są  wykonywane  przez  syscall(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  syscall(2);  gdy  tak  się  stanie,  funkcja
       opakowująca  zmienia znak zwracanego numeru błędu (staje się on dodatni), kopiuje go do errno i zwraca -1
       do wywołującego funkcję opakowującą.

       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: truncate(2)
       i truncate64(2), a funkcja opakowująca glibc truncate() sprawdza, które  z  nich  jest  zapewnione  przez
       jądro i określa, którego należy użyć.

   Lista wywołań systemowych
       Poniżej  przedstawiono  listę  linuksowych  wywołań  systemowych.  Kolumna  Jądro wskazuje wersję jądra w
       przypadku wywołań, które pojawiły się w Linuksie 2.2 lub później. Proszę odnotować, że:

       •  Jeśli nie wskazano wersji jądra, wywołanie systemowe pojawiło się w Linuksie 1.0 lub wcześniej.

       •  Jeśli wywołanie systemowe oznaczono wersją „1.2” 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).

       •  Jeśli wywołanie systemowe oznaczono wersją „2.0” 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).

       •  Jeśli wywołanie systemowe oznaczono wersją „2.2” 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).

       •  Jeśli wywołanie systemowe oznaczono wersją „2.4” 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).

       •  Jeśli wywołanie systemowe oznaczono wersją „2.6” 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).

       •  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.

       •  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.

       Lista  wywołań  systemowych  dostępnych  w Linuksie 5.14 (w kilku przypadkach tylko na starszych jądrach)
       jest następująca:

       Wywołanie systemowe         Jądro         Uwagi
       ───────────────────────────────────────────────────────────────────────
       _llseek(2)                  1.2
       _newselect(2)               2.0
       _sysctl(2)                  2.0           Usunięte w 5.5
       accept(2)                   2.0           Zob. uwagi w 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        Usunięte w 2.5.44
       arc_gettls(2)               3.9           Tylko ARC
       arc_settls(2)               3.9           Tylko ARC
       arc_usr_cmpxchg(2)          4.9           Tylko ARC
       arch_prctl(2)               2.6           x86_64, x86 od 4.12
       atomic_barrier(2)           2.6.34        Tylko m68k
       atomic_cmpxchg_32(2)        2.6.34        Tylko m68k
       bdflush(2)                  1.2           Przestarzałe (nieaktywne) od
                                                 2.6
       bind(2)                     2.0           Zob. uwagi w socketcall(2)
       bpf(2)                      3.18
       brk(2)                      1.0
       breakpoint(2)               2.2           Tylko OABI ARM, zdefiniowane
                                                 z przedrostkiem __ARM_NR
       cacheflush(2)               1.2           Nie na x86
       capget(2)                   2.2
       capset(2)                   2.2
       chdir(2)                    1.0
       chmod(2)                    1.0
       chown(2)                    2.2           Wersje opisano  szczegół.  w
                                                 chown(2)
       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           Tylko IA-64
       clone(2)                    1.0
       clone3(2)                   5.3
       close(2)                    1.0
       close_range(2)              5.9
       connect(2)                  2.0           Zob. uwagi w socketcall(2)
       copy_file_range(2)          4.5
       creat(2)                    1.0
       create_module(2)            1.0           Usunięte w 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           Tylko    SPARC/SPARC64,   ze
                                                 wzgl. na kompat. z 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        Usunięte w 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           Usunięte w 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          Tylko    OABI     ARM,     z
                                                 przedrostkiem __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;  dost. jako
                                                 osf_getdomainname(2)      na
                                                 Alpha od Linuksa 2.0
       getdtablesize(2)            2.0           SPARC  (usunięte  w 2.6.26),
                                                 dostępne   na   Alpha   jako
                                                 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,  było  dost. na SPARC
                                                 do Linuksa 2.6.26
       getitimer(2)                1.0
       getpeername(2)              2.0           Zob. uwagi w socketcall(2)
       getpagesize(2)              2.0           Tylko Alpha, SPARC/SPARC64
       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           Zob. uwagi w socketcall(2)
       getsockopt(2)               2.0           Zob. uwagi w socketcall(2)
       gettid(2)                   2.4.11
       gettimeofday(2)             1.0
       getuid(2)                   1.0
       getuid32(2)                 2.4
       getunwind(2)                2.4.8         Tylko IA-64; przestarzałe
       getxattr(2)                 2.6; 2.4.18
       getxgid(2)                  2.0           Tylko Alpha; zob. UWAGI
       getxpid(2)                  2.0           Tylko Alpha; zob. UWAGI
       getxuid(2)                  2.0           Tylko Alpha; zob. UWAGI
       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           Tylko 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           Wersje opisano  szczegół.  w
                                                 chown(2)
       lchown32(2)                 2.4
       lgetxattr(2)                2.6; 2.4.18
       link(2)                     1.0
       linkat(2)                   2.6.16
       listen(2)                   2.0           Zob. uwagi w 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           Tylko 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           Zob. uwagi w ipc(2)
       msgget(2)                   2.0           Zob. uwagi w ipc(2)
       msgrcv(2)                   2.0           Zob. uwagi w ipc(2)
       msgsnd(2)                   2.0           Zob. uwagi w 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        Zob. stat(2)
       nfsservctl(2)               2.2           Usunięte w 3.1
       nice(2)                     1.0
       old_adjtimex(2)             2.0           Tylko Alpha; zob. UWAGI
       old_getrlimit(2)            2.4           Stary  wariant  getrlimit(2)
                                                 używający   innej   wartości
                                                 RLIM_INFINITY
       oldfstat(2)                 1.0
       oldlstat(2)                 1.0
       oldolduname(2)              1.0
       oldstat(2)                  1.0
       oldumount(2)                2.4.116       Nazwa    starego   umount(2)
                                                 wywołania syst. na 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           Tylko OpenRISC 1000
       pause(2)                    1.0
       pciconfig_iobase(2)         2.2.15; 2.4   Nie na x86
       pciconfig_read(2)           2.0.26; 2.2   Nie na x86
       pciconfig_write(2)          2.0.26; 2.2   Nie na x86
       perf_event_open(2)          2.6.31        Wcześniej
                                                 perf_counter_open()        w
                                                 2.6.31; nowa nazwa w 2.6.32
       personality(2)              1.2
       perfctr(2)                  2.2           Tylko   SPARC;   usunięte  w
                                                 2.6.34
       perfmonctl(2)               2.4           Tylko IA-64; usunięte w 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)                                Dodane  jako  „pread”   2.2;
                                                 nowa nazwa „pread64” w 2.6
       preadv(2)                   2.6.30
       preadv2(2)                  4.6
       prlimit64(2)                2.6.36
       process_madvise(2)          5.10
       process_vm_readv(2)         3.2
       process_vm_writev(2)        3.2
       pselect6(2)                 2.6.16
       ptrace(2)                   1.0
       pwrite64(2)                               Dodane  jako „pwrite” w 2.2;
                                                 nowa nazwa „pwrite64” w 2.6
       pwritev(2)                  2.6.30
       pwritev2(2)                 4.6
       query_module(2)             2.2           Usunięte w 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           Zob. uwagi w socketcall(2)
       recvfrom(2)                 2.0           Zob. uwagi w socketcall(2)
       recvmsg(2)                  2.0           Zob. uwagi w socketcall(2)
       recvmmsg(2)                 2.6.33
       remap_file_pages(2)         2.6           Przestarzałe od 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          Tylko 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         Tylko PowerPC/PowerPC64
       s390_runtime_instr(2)       3.7           Tylko s390
       s390_pci_mmio_read(2)       3.19          Tylko s390
       s390_pci_mmio_write(2)      3.19          Tylko s390
       s390_sthyi(2)               4.15          Tylko s390
       s390_guarded_storage(2)     4.12          Tylko s390
       sched_get_affinity(2)       2.6           Nazwa   sched_getaffinity(2)
                                                 na SPARC i 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           Nazwa   sched_setaffinity(2)
                                                 na SPARC i 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           Zob. uwagi w ipc(2)
       semget(2)                   2.0           Zob. uwagi w ipc(2)
       semop(2)                    2.0           Zob. uwagi w ipc(2)
       semtimedop(2)               2.6; 2.4.22
       send(2)                     2.0           Zob. uwagi w socketcall(2)
       sendfile(2)                 2.2
       sendfile64(2)               2.6; 2.4.19
       sendmmsg(2)                 3.0
       sendmsg(2)                  2.0           Zob. uwagi w socketcall(2)
       sendto(2)                   2.0           Zob. uwagi w 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        Tylko OABI/EABI  ARM  (stała
                                                 ma przedrostek __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           Tylko Alpha; zob. UWAGI
       sethostname(2)              1.0
       setitimer(2)                1.0
       setns(2)                    3.0
       setpgid(2)                  1.0
       setpgrp(2)                  2.0           Inna   nazwa  setpgid(2)  na
                                                 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           Zob. uwagi w socketcall(2)
       settimeofday(2)             1.0
       setuid(2)                   1.0
       setuid32(2)                 2.4
       setup(2)                    1.0           Usunięte w 2.2
       setxattr(2)                 2.6; 2.4.18
       sgetmask(2)                 1.0
       shmat(2)                    2.0           Zob. uwagi w ipc(2)
       shmctl(2)                   2.0           Zob. uwagi w ipc(2)
       shmdt(2)                    2.0           Zob. uwagi w ipc(2)
       shmget(2)                   2.0           Zob. uwagi w ipc(2)
       shutdown(2)                 2.0           Zob. uwagi w 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           Zob. uwagi w socketcall(2)
       socketcall(2)               1.0
       socketpair(2)               2.0           Zob. uwagi w socketcall(2)
       spill(2)                    2.6.13        Tylko Xtensa
       splice(2)                   2.6.17
       spu_create(2)               2.6.16        Tylko PowerPC/PowerPC64
       spu_run(2)                  2.6.16        Tylko 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        Tylko PowerPC/PowerPC64
       swapcontext(2)              2.6.3         Tylko PowerPC/PowerPC64
       switch_endian(2)            4.1           Tylko 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        Tylko PowerPC
       syscall(2)                  1.0           Wciąż dostępne na OABI ARM i
                                                 ABI O32 MIPS
       sysfs(2)                    1.2
       sysinfo(2)                  1.0
       syslog(2)                   1.0
       sysmips(2)                  2.6.0         Tylko 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       Tylko OABI ARM
       usr32(2)                    2.4.8.1       Tylko OABI ARM
       utime(2)                    1.0
       utimensat(2)                2.6.22
       utimes(2)                   2.2
       utrap_install(2)            2.2           Tylko SPARC64
       vfork(2)                    2.2
       vhangup(2)                  1.0
       vm86old(2)                  1.0           Wcześniej „vm86”; nowa nazwa
                                                 w 2.0.28/2.2
       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        Tylko Xtensa

       Na wielu platformach, w tym x86-32, wywołania gniazd są zwielokrotniane (za pomocą funkcji  opakowujących
       glibc) poprzez socketcall(2) i analogicznie wywołania IPC Systemu V są zwielokrotniane poprzez ipc(2).

       Dla  następujących wywołań systemowych zarezerwowano miejsca w systemowej tablicy wywołań, ale nie są one
       zaimplementowane w standardowym jądrze: 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)  i vserver(2) (zob. też unimplemented(2)). Jednak ftime(3), profil(3) i ulimit(3) istnieją jako
       funkcje biblioteczne. Miejsce dla phys(2) od Linuksa 2.1.116 jest używane przez umount(2); phys(2)  nigdy
       nie zostanie zaimplementowane. Wywołania getpmsg(2) i putpmsg(2) są przeznaczone do jąder zmodyfikowanych
       do obsługi struktury STREAMS i mogą nigdy nie trafić do standardowego jądra.

       Istniało  przez  chwilę  set_zone_reclaim(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.

   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:

       AVR32 (port usunięty w Linuksie 4.12)
              •  pread(2)
              •  pwrite(2)

       Blackfin (port usunięty w Linuksie 4.17)
              •  bfin_spinlock(2) (dodane w Linuksie 2.6.22)
              •  dma_memcpy(2) (dodane w Linuksie 2.6.22)
              •  pread(2) (dodane w Linuksie 2.6.22)
              •  pwrite(2) (dodane w Linuksie 2.6.22)
              •  sram_alloc(2) (dodane w Linuksie 2.6.22)
              •  sram_free(2) (dodane w Linuksie 2.6.22)

       Metag (port usunięty w Linuksie 4.17)
              •  metag_get_tls(2)  (dodane w Linuksie 3.9)
              •  metag_set_fpu_flags(2) (dodane w Linuksie 3.9)
              •  metag_set_tls(2) (dodane w Linuksie 3.9)
              •  metag_setglobalbit(2) (dodane w Linuksie 3.9)

       Tile (port usunięty w Linuksie 4.17)
              •  cmpxchg_badaddr(2) (dodane w Linuksie 2.6.36)

UWAGI

       Najczęściej    kod   należący   do   wywołania   systemowego   o   numerze   __NR_xxx   zdefiniowanym   w
       /usr/include/asm/unistd.h można znaleźć w źródłach jądra Linux w funkcji sys_xxx(). 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.

       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.  truncate(2) i truncate64(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:

       •  Obecnie występują trzy różne wersje stat(2): sys_stat() (miejsce __NR_oldstat), sys_newstat() (miejsce
          __NR_stat)  i  sys_stat64() (miejsce __NR_stat64), z których ostatnia jest najnowsza. Podobna sytuacja
          występuje w przypadku lstat(2) i fstat(2).

       •  Podobnie,  definicje  __NR_oldolduname,  __NR_olduname   i   __NR_uname   odnoszą   się   do   funkcji
          sys_olduname(), sys_uname() i sys_newuname().

       •  W  Linuksie  2.0,  pojawiła  się  nowa wersja vm86(2), przy czym stara i nowa funkcja otrzymała nazwę,
          odpowiednio, sys_vm86old() i sys_vm86().

       •  W Linuksie 2.4, pojawiła się nowa wersja getrlimit(2), przy czym stara i nowa funkcja otrzymała nazwę,
          odpowiednio, sys_old_getrlimit() (miejsce __NR_getrlimit) i sys_getrlimit() (miejsce __NR_ugetrlimit).

       •  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.   chown32(2),   getuid32(2),   getgroups32(2),
          setresuid32(2)), zastępujących wcześniejsze wywołania o tej samej nazwie, bez przyrostka „32”.

       •  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: fcntl64(2), getdents64(2), stat64(2),  statfs64(2),  truncate64(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ń „stat”,  miały  te  same
          nazwy, jedynie bez przyrostka „64”.

          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.

       •  Wywołania rt_sig* dodano w Linuksie 2.2 w celu obsługi sygnałów czasu rzeczywistego (zob.  signal(7)).
          Te wywołania systemowe zastąpiły starsze wywołania o tej samej nazwie, jedynie bez przedrostka „rt_”.

       •  Wywołania  systemowe select(2) i mmap(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ą sys_select() i sys_mmap() odpowiadające  __NR_select  i  __NR_mmap,  ma  i386  można
          znaleźć  w  tym  miejscu  old_select()  i  old_mmap()  (funkcje  korzystające  z  wskaźnika  do  bloku
          argumentów). Obecnie przekazywanie  pięciu  argumentów  nie  jest  już  problemem,  dlatego  występuje
          __NR__newselect,  które  odpowiada  bezpośrednio sys_select() i podobnie __NR_mmap2. s390x jest jedyną
          architekturą 64-bitową, która posiada old_mmap().

   Szczegóły typowe dla architektury: Alpha
       getxgid(2)
              zwraca parę: identyfikator grupy i efektywny identyfikator grupy za pomocą  rejestrów  r0  i  r20;
              zapewnione w zamian za getgid(2) i getegid(2).

       getxpid(2)
              zwraca parę: identyfikator procesu i efektywny identyfikator procesu za pomocą rejestrów r0 i r20;
              zapewnione w zamian za getpid(2) i getppid(2).

       old_adjtimex(2)
              jest wariantem adjtimex(2) używającym struct timeval32, ze względu na kompatybilność z OSF/1.

       getxuid(2)
              zwraca  parę:  identyfikator użytkownika i efektywny identyfikator użytkownika za pomocą rejestrów
              r0 i r20; zapewnione w zamian za getuid(2) i geteuid(2).

       sethae(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.

ZOBACZ TAKŻE

       ausyscall(1), intro(2), syscall(2), unimplemented(2), errno(3), libc(7), vdso(7)

TŁUMACZENIE

       Tłumaczenie niniejszej strony podręcznika: Michał Kułach <michal.kulach@gmail.com>

       Niniejsze  tłumaczenie  jest  wolną  dokumentacją.  Bliższe informacje o warunkach licencji można uzyskać
       zapoznając  się  z  GNU General Public License w wersji 3  lub  nowszej.   Nie   przyjmuje   się   ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy  w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej manpages-pl-
       list@lists.sourceforge.net.

Linux man-pages 6.9.1                            2 maja 2024 r.                                      syscalls(2)