Provided by: manpages-ru-dev_4.21.0-2_all bug

ИМЯ

       syscalls - системные вызовы Linux

СИНТАКСИС

       Системные вызовы Linux.

ОПИСАНИЕ

       Системный вызов — это основной интерфейс между приложением и ядром Linux.

   Системные вызовы и обёрточные библиотечные функции
       Обычно,  системные вызовы не вызываются напрямую, это делается через обёрточную функцию из
       glibc (или другой библиотеки). Подробней  о  непосредственном  вызове  системного  вызова,
       смотрите  intro(2).  Часто,  но  не  всегда,  имя  обёрточной  функции  совпадает с именем
       системного вызова, который она вызывает. Например, в glibc есть функция  chdir(),  которая
       вызывает делающий всё работу системный вызов «chdir».

       Часто,  обёрточная  функция  glibc очень маленькая, она просто копирует аргументы в нужные
       регистры перед запуском системного вызова, а затем присваивает переменной errno  значение,
       которое  было возвращено системным вызовом. (Эти те же шаги выполняет syscall(2), её можно
       использовать для осуществления системных вызовов, для  которых  нет  обёрточных  функций.)
       Замечание:  системные вызовы указывают, что произошла ошибка возвращая отрицательное целое
       число вызывающей  стороне  (если  в  архитектуре  нет  отдельного  регистра/флага  ошибки,
       смотрите syscall(2)); когда это происходит, обёрточная функция меняет знак у возвращённого
       значения (на положительный), копирует его  в  errno  и  возвращает  -1  вызвавшей  обёртку
       функции.

       Иногда,  однако,  обёрточная  функция  производит  дополнительную  работу до осуществления
       системного вызова. Например, в настоящее время существует (по причинам,  описанным  далее)
       два  похожих  системных  вызова  —  truncate(2)  и truncate64(2); обёрточная функция glibc
       truncate() проверяет какой из системных вызовов предоставляет ядро и  решает  какой  нужно
       задействовать.

   Список системных вызовов
       Далее  приведён  список список системных вызовов Linux. В колонке Ядро указана версия ядра
       для системных вызовов, которые появились в Linux 2.2,  и  с  какой  именно  версии.  Также
       заметим следующее:

       •  Where no kernel version is indicated, the system call appeared in Linux 1.0 or earlier.

       •  Where  a  system call is marked "1.2" this means the system call probably appeared in a
          Linux  1.1.x  kernel  version,  and  first  appeared  in  a  stable  kernel  with  1.2.
          (Development  of  the  1.2  kernel  was initiated from a branch of kernel 1.0.6 via the
          1.1.x unstable kernel series.)

       •  Where a system call is marked "2.0" this means the system call probably appeared  in  a
          Linux  1.3.x  kernel  version,  and  first  appeared in a stable kernel with Linux 2.0.
          (Development of the Linux 2.0 kernel was  initiated  from  a  branch  of  Linux  1.2.x,
          somewhere around Linux 1.2.10, via the Linux 1.3.x unstable kernel series.)

       •  Where  a  system call is marked "2.2" this means the system call probably appeared in a
          Linux 2.1.x kernel version, and first appeared in a stable  kernel  with  Linux  2.2.0.
          (Development of the Linux 2.2 kernel was initiated from a branch of kernel Linux 2.0.21
          via the Linux 2.1.x unstable kernel series.)

       •  Where a system call is marked "2.4" this means the system call probably appeared  in  a
          Linux  2.3.x  kernel  version,  and first appeared in a stable kernel with Linux 2.4.0.
          (Development of the Linux 2.4 kernel was initiated from a branch of Linux 2.2.8 via the
          Linux 2.3.x unstable kernel series.)

       •  Where  a  system call is marked "2.6" this means the system call probably appeared in a
          Linux 2.5.x kernel version, and first appeared in a stable  kernel  with  Linux  2.6.0.
          (Development  of  Linux  2.6  was initiated from a branch of Linux 2.4.15 via the Linux
          2.5.x unstable kernel series.)

       •  Starting with Linux 2.6.0, the development model changed,  and  new  system  calls  may
          appear  in  each Linux 2.6.x release.  In this case, the exact version number where the
          system call appeared is shown.  This convention continues with  the  Linux  3.x  kernel
          series,  which  followed  on  from Linux 2.6.39; and the Linux 4.x kernel series, which
          followed on from Linux 3.19; and the Linux 5.x kernel series, which  followed  on  from
          Linux 4.20.

       •  In some cases, a system call was added to a stable kernel series after it branched from
          the previous stable kernel series, and then backported into the earlier  stable  kernel
          series.   For  example  some  system  calls  that  appeared  in  Linux  2.6.x were also
          backported into a Linux 2.4.x release after Linux 2.4.15.  When this is so, the version
          where the system call appeared in both of the major kernel series is listed.

       The  list  of  system calls that are available as at Linux 5.14 (or in a few cases only on
       older kernels) is as follows:

       System call                 Kernel        Notes
       ──────────────────────────────────────────────────────────────────────

       _llseek(2)                  1.2
       _newselect(2)               2.0
       _sysctl(2)                  2.0           удалён из Linux 5.5
       accept(2)                   2.0           смотрите замечания по
                                                 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        удалён из Linux 2.5.44
       arc_gettls(2)               3.9           только на ARC
       arc_settls(2)               3.9           только на ARC
       arc_usr_cmpxchg(2)          4.9           только на ARC
       arch_prctl(2)               2.6           x86_64, x86 начиная с 4.12
       atomic_barrier(2)           2.6.34        только на m68k
       atomic_cmpxchg_32(2)        2.6.34        только на m68k
       bdflush(2)                  1.2           Deprecated (does nothing)
                                                 since 2.6
       bind(2)                     2.0           смотрите замечания по
                                                 socketcall(2)
       bpf(2)                      3.18
       brk(2)                      1.0
       breakpoint(2)               2.2           только в ARM OABI,
                                                 определён с префиксом
                                                 __ARM_NR
       cacheflush(2)               1.2           не для x86
       capget(2)                   2.2
       capset(2)                   2.2
       chdir(2)                    1.0
       chmod(2)                    1.0
       chown(2)                    2.2           See chown(2) for version
                                                 details
       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           только на IA-64
       clone(2)                    1.0
       clone3(2)                   5.3

       close(2)                    1.0
       close_range(2)              5.9
       connect(2)                  2.0           смотрите замечания по
                                                 socketcall(2)
       copy_file_range(2)          4.5
       creat(2)                    1.0
       create_module(2)            1.0           удалён из Linux 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           SPARC/SPARC64 only, for
                                                 compatibility with 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        удалён из Linux 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           удалён из Linux 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          ARM OABI only, has __ARM_NR
                                                 prefix
       getcpu(2)                   2.6.19
       getcwd(2)                   2.2
       getdents(2)                 2.0
       getdents64(2)               2.4
       getdomainname(2)            2.2           SPARC, SPARC64; available
                                                 as osf_getdomainname(2) on
                                                 Alpha since Linux 2.0
       getdtablesize(2)            2.0           SPARC (removed in 2.6.26),
                                                 available on Alpha as
                                                 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, was available on
                                                 SPARC up to Linux 2.6.26
       getitimer(2)                1.0
       getpeername(2)              2.0           смотрите замечания по
                                                 socketcall(2)
       getpagesize(2)              2.0           не для x86
       getpgid(2)                  1.0
       getpgrp(2)                  1.0
       getpid(2)                   1.0
       getppid(2)                  1.0
       getpriority(2)              1.0
       getrandom(2)                3.17
       getresgid(2)                2.2
       getresgid32(2)              2.4
       getresuid(2)                2.2
       getresuid32(2)              2.4
       getrlimit(2)                1.0
       getrusage(2)                1.0
       getsid(2)                   2.0
       getsockname(2)              2.0           смотрите замечания по
                                                 socketcall(2)
       getsockopt(2)               2.0           смотрите замечания по
                                                 socketcall(2)
       gettid(2)                   2.4.11
       gettimeofday(2)             1.0
       getuid(2)                   1.0
       getuid32(2)                 2.4
       getunwind(2)                2.4.8         только IA-64; устарел
       getxattr(2)                 2.6; 2.4.18
       getxgid(2)                  2.0           только на Alpha; смотрите
                                                 ЗАМЕЧАНИЯ
       getxpid(2)                  2.0           только на Alpha; смотрите
                                                 ЗАМЕЧАНИЯ
       getxuid(2)                  2.0           только на Alpha; смотрите
                                                 ЗАМЕЧАНИЯ
       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           только на 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           See chown(2) for version
                                                 details
       lchown32(2)                 2.4
       lgetxattr(2)                2.6; 2.4.18
       link(2)                     1.0
       linkat(2)                   2.6.16
       listen(2)                   2.0           смотрите замечания по
                                                 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           только на 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           смотрите замечания по
                                                 ipc(2)
       msgget(2)                   2.0           смотрите замечания по
                                                 ipc(2)
       msgrcv(2)                   2.0           смотрите замечания по
                                                 ipc(2)
       msgsnd(2)                   2.0           смотрите замечания по
                                                 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        смотрите stat(2)
       nfsservctl(2)               2.2           удалён из Linux 3.1
       nice(2)                     1.0
       old_adjtimex(2)             2.0           только на Alpha; смотрите
                                                 ЗАМЕЧАНИЯ
       old_getrlimit(2)            2.4           Old variant of getrlimit(2)
                                                 that used a different value
                                                 for RLIM_INFINITY
       oldfstat(2)                 1.0
       oldlstat(2)                 1.0
       oldolduname(2)              1.0
       oldstat(2)                  1.0
       oldumount(2)                2.4.116       Name of the old umount(2)
                                                 syscall on 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           только на OpenRISC 1000
       pause(2)                    1.0
       pciconfig_iobase(2)         2.2.15; 2.4   не для x86
       pciconfig_read(2)           2.0.26; 2.2   не для x86
       pciconfig_write(2)          2.0.26; 2.2   не для x86
       perf_event_open(2)          2.6.31        Was perf_counter_open() in
                                                 2.6.31; renamed in 2.6.32
       personality(2)              1.2
       perfctr(2)                  2.2           только на SPARC; удалён в
                                                 2.6.34
       perfmonctl(2)               2.4           IA-64 only; removed in 5.10
       pidfd_getfd(2)              5.6
       pidfd_send_signal(2)        5.1
       pidfd_open(2)               5.3
       pipe(2)                     1.0
       pipe2(2)                    2.6.27
       pivot_root(2)               2.4
       pkey_alloc(2)               4.8
       pkey_free(2)                4.8
       pkey_mprotect(2)            4.8
       poll(2)                     2.0.36; 2.2
       ppoll(2)                    2.6.16
       prctl(2)                    2.2
       pread64(2)                                Added as "pread" in 2.2;
                                                 renamed "pread64" in 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)                               Added as "pwrite" in 2.2;
                                                 renamed "pwrite64" in 2.6
       pwritev(2)                  2.6.30
       pwritev2(2)                 4.6
       query_module(2)             2.2           удалён из Linux 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           смотрите замечания по
                                                 socketcall(2)
       recvfrom(2)                 2.0           смотрите замечания по
                                                 socketcall(2)
       recvmsg(2)                  2.0           смотрите замечания по
                                                 socketcall(2)
       recvmmsg(2)                 2.6.33
       remap_file_pages(2)         2.6           устарел начиная с 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          только на 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         только на PowerPC/PowerPC64
       s390_runtime_instr(2)       3.7           только для s390
       s390_pci_mmio_read(2)       3.19          только для s390
       s390_pci_mmio_write(2)      3.19          только для s390
       s390_sthyi(2)               4.15          только для s390
       s390_guarded_storage(2)     4.12          только для s390
       sched_get_affinity(2)       2.6           Name of
                                                 sched_getaffinity(2) on
                                                 SPARC and SPARC64
       sched_get_priority_max(2)   2.0
       sched_get_priority_min(2)   2.0
       sched_getaffinity(2)        2.6
       sched_getattr(2)            3.14
       sched_getparam(2)           2.0
       sched_getscheduler(2)       2.0
       sched_rr_get_interval(2)    2.0
       sched_set_affinity(2)       2.6           Name of
                                                 sched_setaffinity(2) on
                                                 SPARC and 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           смотрите замечания по
                                                 ipc(2)
       semget(2)                   2.0           смотрите замечания по
                                                 ipc(2)
       semop(2)                    2.0           смотрите замечания по
                                                 ipc(2)
       semtimedop(2)               2.6; 2.4.22
       send(2)                     2.0           смотрите замечания по
                                                 socketcall(2)
       sendfile(2)                 2.2
       sendfile64(2)               2.6; 2.4.19
       sendmmsg(2)                 3.0
       sendmsg(2)                  2.0           смотрите замечания по
                                                 socketcall(2)
       sendto(2)                   2.0           смотрите замечания по
                                                 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        ARM OABI/EABI only
                                                 (constant has __ARM_NR
                                                 prefix)
       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           только на Alpha; смотрите
                                                 ЗАМЕЧАНИЯ
       sethostname(2)              1.0
       setitimer(2)                1.0
       setns(2)                    3.0
       setpgid(2)                  1.0
       setpgrp(2)                  2.0           Alternative name for
                                                 setpgid(2) on 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           смотрите замечания по
                                                 socketcall(2)
       settimeofday(2)             1.0
       setuid(2)                   1.0
       setuid32(2)                 2.4
       setup(2)                    1.0           удалён в 2.2
       setxattr(2)                 2.6; 2.4.18
       sgetmask(2)                 1.0
       shmat(2)                    2.0           смотрите замечания по
                                                 ipc(2)

       shmctl(2)                   2.0           смотрите замечания по
                                                 ipc(2)
       shmdt(2)                    2.0           смотрите замечания по
                                                 ipc(2)
       shmget(2)                   2.0           смотрите замечания по
                                                 ipc(2)
       shutdown(2)                 2.0           смотрите замечания по
                                                 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           смотрите замечания по
                                                 socketcall(2)
       socketcall(2)               1.0
       socketpair(2)               2.0           смотрите замечания по
                                                 socketcall(2)
       spill(2)                    2.6.13        только на Xtensa
       splice(2)                   2.6.17
       spu_create(2)               2.6.16        только на PowerPC/PowerPC64
       spu_run(2)                  2.6.16        только на 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        только на PowerPC/PowerPC64
       swapcontext(2)              2.6.3         только на PowerPC/PowerPC64
       switch_endian(2)            4.1           только для 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        только для PowerPC
       syscall(2)                  1.0           Still available on ARM OABI
                                                 and MIPS O32 ABI
       sysfs(2)                    1.2
       sysinfo(2)                  1.0
       syslog(2)                   1.0
       sysmips(2)                  2.6.0         только на 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       только в ARM OABI
       usr32(2)                    2.4.8.1       только в ARM OABI
       utime(2)                    1.0
       utimensat(2)                2.6.22
       utimes(2)                   2.2
       utrap_install(2)            2.2           только на SPARC64
       vfork(2)                    2.2
       vhangup(2)                  1.0
       vm86old(2)                  1.0           ранее «vm86»; переименован
                                                 в 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        только на Xtensa

       Для  многих  платформ,  включая  x86-32, все сокетные вызовы мультиплексируются (с помощью
       обёрточных  функций  glibc)  через  socketcall(2),  а   подобные   IPC   вызовы   System V
       мультиплексируются через ipc(2).

       Although  slots are reserved for them in the system call table, the following system calls
       are  not  implemented  in  the  standard  kernel:  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),  and  vserver(2)   (see  also
       unimplemented(2)).    However,  ftime(3),  profil(3),  and  ulimit(3)   exist  as  library
       routines.  The slot for phys(2)  is in use since  Linux  2.1.116  for  umount(2);  phys(2)
       will  never be implemented.  The getpmsg(2)  and putpmsg(2)  calls are for kernels patched
       to support STREAMS, and may never be in the standard kernel.

       There was briefly set_zone_reclaim(2), added in Linux 2.6.13, and removed in Linux 2.6.16;
       this system call was never available to user space.

   System calls on removed ports
       Some  system  calls  only ever existed on Linux architectures that have since been removed
       from the kernel:

       AVR32 (port removed in Linux 4.12)
              •  pread(2)
              •  pwrite(2)

       Blackfin (port removed in Linux 4.17)
              •  bfin_spinlock(2)  (added in Linux 2.6.22)
              •  dma_memcpy(2)  (added in Linux 2.6.22)
              •  pread(2)  (added in Linux 2.6.22)
              •  pwrite(2)  (added in Linux 2.6.22)
              •  sram_alloc(2)  (added in Linux 2.6.22)
              •  sram_free(2)  (added in Linux 2.6.22)

       Metag (port removed in Linux 4.17)
              •  metag_get_tls(2)  (add in Linux 3.9)
              •  metag_set_fpu_flags(2)  (add in Linux 3.9)
              •  metag_set_tls(2)  (add in Linux 3.9)
              •  metag_setglobalbit(2)  (add in Linux 3.9)

       Tile (port removed in Linux 4.17)
              •  cmpxchg_badaddr(2)  (added in Linux 2.6.36)

ЗАМЕЧАНИЯ

       Чаще   всего,   код   системного   вызова   с   номером    __NR_xxx,    определённого    в
       /usr/include/asm/unistdh, можно найти в исходном коде ядра Linux в функции sys_xxx(). Есть
       много исключений из этого правила, в основном из-за того, что большинство старых системных
       вызовов  заменена  на  новые,  при  чём  без  всякой  системы.  На  платформах с эмуляцией
       собственнических ОС, таких как sparc, sparc64 и  alpha,  существует  много  дополнительных
       системных вызовов; для mips64 также есть полный набор 32-битных системных вызовов.

       С  течением  времени  при  необходимости  происходили  изменения  в  интерфейсе  некоторых
       системных вызовов. Одной из причин таких изменений была необходимость  увеличения  размера
       структур  или  скалярных  значений передаваемых системному вызову. Из-за этих изменений на
       некоторых архитектурах (а именно на старых  32-битных  i386)  появились  различные  группы
       похожих  системных  вызовов  (например,  truncate(2)  и  truncate64(2)), которые выполняют
       одинаковые задачи, но отличаются  размером  своих  аргументов.  (Как  уже  отмечалось,  на
       приложения это не влияет: обёрточные функции glibc выполняют некоторые действия по запуску
       правильного системного вызова, и это обеспечивает совместимость по ABI для старых двоичных
       файлов.)  Примеры системных вызовов, у которых есть несколько версий:

       •  В  настоящее  время есть три различные версии stat(2): sys_stat() (место __NR_oldstat),
          sys_newstat()  (место  __NR_stat)  и  sys_stat64()   (место   __NR_stat64),   последняя
          используется в в данный момент. Похожая ситуация с lstat(2) и fstat(2).

       •  Похожим  образом  определены  __NR_oldolduname,  __NR_olduname и __NR_uname для вызовов
          sys_olduname(), sys_uname() и sys_newuname().

       •  В Linux 2.0 появилась новая версия vm86(2), новая  и  старая  версии  ядерных  процедур
          называются sys_vm86old() и sys_vm86().

       •  В  Linux 2.4 появилась новая версия getrlimit(2) новая и старая версии ядерных процедур
          называются  sys_old_getrlimit()  (место  __NR_getrlimit)   и   sys_getrlimit()   (место
          __NR_ugetrlimit).

       •  В  Linux  2.4  увеличено  размер  поля  ID  пользователей  и  групп с 16 до 32 бит. Для
          поддержки этого изменения добавлено несколько системных вызовов (например,  chown32(2),
          getuid32(2),  getgroups32(2),  setresuid32(2)),  упраздняющих  ранние  вызовы с теми же
          именами, но без суффикса "32".

       •  В Linux 2.4 добавлена поддержка доступа к большим файлам (у которых размеры и  смещения
          не   умещаются   в  32  бита)  в  приложениях  на  32-битных  архитектурах.  Для  этого
          потребовалось внести изменения в системные вызовы, работающие с размерами и  смещениями
          по  файлам.  Были  добавлены  следующие  системные  вызовы:  fcntl64(2), getdents64(2),
          stat64(2), statfs64(2), truncate64(2)  и  их  аналоги,  которые  обрабатывают  файловые
          дескрипторы  или  символьные  ссылки.  Эти системные вызовы упраздняют старые системные
          вызовы, которые, за исключением вызовов «stat», называются также, но не имеют  суффикса
          «64».

          На  новых  платформах,  имеющих  только  64-битный  доступ к файлам и 32-битные UID/GID
          (например, alpha, ia64, s390x, x86-64), есть только одна версия системных  вызовов  для
          UID/GID и файлового доступа. На платформах (обычно это 32-битные платформы) где имеются
          *64 и *32 вызовы, другие версии устарели.

       •  The rt_sig* calls were added in Linux 2.2 to support the addition of real-time  signals
          (see  signal(7)).  These system calls supersede the older system calls of the same name
          without the "rt_" prefix.

       •  В системных вызовах select(2) и mmap(2) используется пять  или  более  аргументов,  что
          вызывало проблемы определения способа передачи аргументов на i386(). В следствии этого,
          тогда как  на  других  архитектурах  вызовы  sys_select()  и  sys_mmap()  соответствуют
          __NR_select   и   __NR_mmap,  на  i386  они  соответствуют  old_select()  и  old_mmap()
          (процедуры, использующие указатель на блок аргументов). В настоящее  время  больше  нет
          проблемы   с   передачей   более   пяти  аргументов  и  есть  __NR__newselect,  который
          соответствует именно sys_select() и тоже самое с __NR_mmap2. На s390x только  64-битная
          архитектура имеет old_mmap.

   Специфика некоторых архитектур: Alpha
       getxgid(2)
              returns  a  pair  of GID and effective GID via registers r0 and r20; it is provided
              instead of getgid(2) and getegid(2).

       getxpid(2)
              returns a pair of PID and parent PID via registers  r0  and  r20;  it  is  provided
              instead of getpid(2) and getppid(2).

       old_adjtimex(2)
              is  a  variant  of  adjtimex(2)  that uses struct timeval32, for compatibility with
              OSF/1.

       getxuid(2)
              returns a pair of GID and effective GID via registers r0 and r20;  it  is  provided
              instead of getuid(2) and geteuid(2).

       sethae(2)
              is  used  for configuring the Host Address Extension register on low-cost Alphas in
              order to access address space beyond first 27 bits.

СМ. ТАКЖЕ

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

ПЕРЕВОД

       Русский   перевод   этой   страницы   руководства    был    сделан    Alexander    Golubev
       <fatzer2@gmail.com>,   Azamat   Hackimov  <azamat.hackimov@gmail.com>,  Hotellook,  Nikita
       <zxcvbnm3230@mail.ru>,       Spiros       Georgaras       <sng@hellug.gr>,       Vladislav
       <ivladislavefimov@gmail.com>,    Yuri    Kozlov   <yuray@komyakino.ru>   и   Иван   Павлов
       <pavia00@gmail.com>

       Этот  перевод  является  бесплатной  документацией;  прочитайте  Стандартную  общественную
       лицензию GNU версии 3 ⟨https://www.gnu.org/licenses/gpl-3.0.html⟩ или более позднюю, чтобы
       узнать об условиях авторского права. Мы не несем НИКАКОЙ ОТВЕТСТВЕННОСТИ.

       Если вы обнаружите ошибки в переводе  этой  страницы  руководства,  пожалуйста,  отправьте
       электронное письмо на ⟨man-pages-ru-talks@lists.sourceforge.net⟩.