summaryrefslogtreecommitdiffstats
path: root/po/ru/man2/vfork.2.po
diff options
context:
space:
mode:
Diffstat (limited to 'po/ru/man2/vfork.2.po')
-rw-r--r--po/ru/man2/vfork.2.po700
1 files changed, 700 insertions, 0 deletions
diff --git a/po/ru/man2/vfork.2.po b/po/ru/man2/vfork.2.po
new file mode 100644
index 00000000..38adfaca
--- /dev/null
+++ b/po/ru/man2/vfork.2.po
@@ -0,0 +1,700 @@
+# Russian translation of manpages
+# This file is distributed under the same license as the manpages-l10n package.
+# Copyright © of this file:
+# Azamat Hackimov <azamat.hackimov@gmail.com>, 2016.
+# Dmitriy Ovchinnikov <dmitriyxt5@gmail.com>, 2012.
+# Dmitry Bolkhovskikh <d20052005@yandex.ru>, 2017.
+# Katrin Kutepova <blackkatelv@gmail.com>, 2018.
+# Yuri Kozlov <yuray@komyakino.ru>, 2012-2019.
+# Иван Павлов <pavia00@gmail.com>, 2019.
+msgid ""
+msgstr ""
+"Project-Id-Version: manpages-l10n\n"
+"POT-Creation-Date: 2024-03-09 15:51+0100\n"
+"PO-Revision-Date: 2019-10-15 19:00+0300\n"
+"Last-Translator: Yuri Kozlov <yuray@komyakino.ru>\n"
+"Language-Team: Russian <man-pages-ru-talks@lists.sourceforge.net>\n"
+"Language: ru\n"
+"MIME-Version: 1.0\n"
+"Content-Type: text/plain; charset=UTF-8\n"
+"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=4; plural=(n%10==1 && n%100!=11 ? 0 : n%10>=2 && "
+"n%10<=4 && (n%100<12 || n%100>14) ? 1 : n%10==0 || (n%10>=5 && n%10<=9) || "
+"(n%100>=11 && n%100<=14)? 2 : 3);\n"
+"X-Generator: Lokalize 2.0\n"
+
+#. type: TH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "vfork"
+msgstr "vfork"
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "2023-10-31"
+msgstr "31 октября 2023 г."
+
+#. type: TH
+#: archlinux fedora-40 fedora-rawhide mageia-cauldron
+#, no-wrap
+msgid "Linux man-pages 6.06"
+msgstr "Linux man-pages 6.06"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "NAME"
+msgstr "ИМЯ"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "vfork - create a child process and block parent"
+msgstr "vfork - создаёт дочерний процесс и блокирует родительский"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "LIBRARY"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "Standard C library (I<libc>, I<-lc>)"
+msgstr ""
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SYNOPSIS"
+msgstr "СИНТАКСИС"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<#include E<lt>unistd.hE<gt>>\n"
+msgstr "B<#include E<lt>unistd.hE<gt>>\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "B<pid_t vfork(void);>\n"
+msgstr "B<pid_t vfork(void);>\n"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Feature Test Macro Requirements for glibc (see B<feature_test_macros>(7)):"
+msgstr ""
+"Требования макроса тестирования свойств для glibc (см. "
+"B<feature_test_macros>(7)):"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid "B<vfork>():"
+msgstr "B<vfork>():"
+
+#. || _XOPEN_SOURCE && _XOPEN_SOURCE_EXTENDED
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy, no-wrap
+#| msgid ""
+#| "(_XOPEN_SOURCE\\ E<gt>=\\ 500) && ! (_POSIX_C_SOURCE\\ E<gt>=\\ 200809L)\n"
+#| " || /* Since glibc 2.19: */ _DEFAULT_SOURCE\n"
+#| " || /* Glibc versions E<lt>= 2.19: */ _BSD_SOURCE\n"
+msgid ""
+" Since glibc 2.12:\n"
+" (_XOPEN_SOURCE E<gt>= 500) && ! (_POSIX_C_SOURCE E<gt>= 200809L)\n"
+" || /* Since glibc 2.19: */ _DEFAULT_SOURCE\n"
+" || /* glibc E<lt>= 2.19: */ _BSD_SOURCE\n"
+" Before glibc 2.12:\n"
+" _BSD_SOURCE || _XOPEN_SOURCE E<gt>= 500\n"
+msgstr ""
+"(_XOPEN_SOURCE\\ E<gt>=\\ 500) && ! (_POSIX_C_SOURCE\\ E<gt>=\\ 200809L)\n"
+" || /* начиная с glibc 2.19: */ _DEFAULT_SOURCE\n"
+" || /* в версиях glibc E<lt>= 2.19: */ _BSD_SOURCE\n"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "DESCRIPTION"
+msgstr "ОПИСАНИЕ"
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Standard description"
+msgstr "Описание в стандарте"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"(From POSIX.1) The B<vfork>() function has the same effect as B<fork>(2), "
+"except that the behavior is undefined if the process created by B<vfork>() "
+"either modifies any data other than a variable of type I<pid_t> used to "
+"store the return value from B<vfork>(), or returns from the function in "
+"which B<vfork>() was called, or calls any other function before "
+"successfully calling B<_exit>(2) or one of the B<exec>(3) family of "
+"functions."
+msgstr ""
+"(Из POSIX) Функция B<vfork>() аналогична B<fork>(2) за тем исключением, что "
+"поведение не определено, если процесс, созданный B<vfork>(), изменяет любые "
+"данные, кроме переменной типа I<pid_t>, используемой в качестве значения, "
+"возвращаемого B<vfork>(), или возвращается из функции, из которой была "
+"вызвана функция B<vfork>(), или вызывает любую функцию до удачного "
+"исполнения B<_exit>(2) или одной из функций семейства B<exec>(3)."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Linux description"
+msgstr "Описание в Linux"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<vfork>(), just like B<fork>(2), creates a child process of the calling "
+"process. For details and return value and errors, see B<fork>(2)."
+msgstr ""
+"B<vfork>(), так же как и B<fork>(2), создаёт дочерний процесс для "
+"вызывающего процесса. Подробности, возвращаемые значения и ошибки смотрите "
+"в B<fork>(2)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<vfork>() is a special case of B<clone>(2). It is used to create new "
+"processes without copying the page tables of the parent process. It may be "
+"useful in performance-sensitive applications where a child is created which "
+"then immediately issues an B<execve>(2)."
+msgstr ""
+"B<vfork>() \\(em это специальный вариант B<clone>(2). Он используется для "
+"создания новых процессов без копирования таблиц страниц родительского "
+"процесса. Это может использоваться в приложениях, критичных к "
+"производительности, для создания дочерних процессов, сразу же запускающих "
+"B<execve>(2)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<vfork>() differs from B<fork>(2) in that the calling thread is suspended "
+"until the child terminates (either normally, by calling B<_exit>(2), or "
+"abnormally, after delivery of a fatal signal), or it makes a call to "
+"B<execve>(2). Until that point, the child shares all memory with its "
+"parent, including the stack. The child must not return from the current "
+"function or call B<exit>(3) (which would have the effect of calling exit "
+"handlers established by the parent process and flushing the parent's "
+"B<stdio>(3) buffers), but may call B<_exit>(2)."
+msgstr ""
+"Вызов B<vfork>() отличается от B<fork>(2) тем, что вызывающая нить "
+"блокируется до тех пор, пока не завершится потомок (обычно, вызовом "
+"B<_exit>(2) или, что ненормально, из-за принятого необработанного сигнала) "
+"или не выполнит B<execve>(2). До этих пор потомок имеет общую память с "
+"родителем, включая стек. Потомок не должен выходить из текущей функции или "
+"вызывать B<exit>(3) (что приводит к вызовы обработчиков выхода, настроенных "
+"родительским процессом и сбрасывает буферы B<stdio>(3) родителя), но может "
+"вызвать B<_exit>(2)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"As with B<fork>(2), the child process created by B<vfork>() inherits copies "
+"of various of the caller's process attributes (e.g., file descriptors, "
+"signal dispositions, and current working directory); the B<vfork>() call "
+"differs only in the treatment of the virtual address space, as described "
+"above."
+msgstr ""
+"Как и у B<fork>(2), дочерний процесс, созданный B<vfork>(), наследует копии "
+"различных атрибутов вызвавшего процесса (например, дескрипторы файлов, "
+"обработчики сигналов и текущий рабочий каталог); вызов B<vfork>() отличается "
+"только в применении виртуального адресного пространства (как описывалось "
+"выше)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Signals sent to the parent arrive after the child releases the parent's "
+"memory (i.e., after the child terminates or calls B<execve>(2))."
+msgstr ""
+"Сигналы передаются родителю после того, как потомок разблокирует его память "
+"(т.е. после того, как потомок завершится или вызовет B<execve>(2))."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Historic description"
+msgstr "Историческое описание"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Under Linux, B<fork>(2) is implemented using copy-on-write pages, so the "
+"only penalty incurred by B<fork>(2) is the time and memory required to "
+"duplicate the parent's page tables, and to create a unique task structure "
+"for the child. However, in the bad old days a B<fork>(2) would require "
+"making a complete copy of the caller's data space, often needlessly, since "
+"usually immediately afterward an B<exec>(3) is done. Thus, for greater "
+"efficiency, BSD introduced the B<vfork>() system call, which did not fully "
+"copy the address space of the parent process, but borrowed the parent's "
+"memory and thread of control until a call to B<execve>(2) or an exit "
+"occurred. The parent process was suspended while the child was using its "
+"resources. The use of B<vfork>() was tricky: for example, not modifying "
+"data in the parent process depended on knowing which variables were held in "
+"a register."
+msgstr ""
+"В Linux вызов B<fork>(2) реализован при помощи страниц, «копируемых при "
+"записи» (copy-on-write), поэтому единственная задержка, возникающая при "
+"вызове B<fork>(2) \\(em это время, необходимое для создания копии таблиц "
+"страниц родительского процесса и уникальной структуры описания задачи "
+"дочернего процесса. Однако, в прошлом для B<fork>(2) могло требоваться "
+"создание полной копии пространства данных вызывающего процесса, что часто "
+"было ненужно, так как в потомке сразу следовал запуск функции B<exec>(3). "
+"Поэтому для большей эффективности в BSD был предложен системный вызов "
+"B<vfork>(), который не копировал адресное пространство процесса, а "
+"использовал то же самое пространство и управления нитью, блокируя "
+"родительский процесс до вызова B<execve>(2) или до прекращения работы "
+"потомка. Родительский процесс останавливался до тех пор, пока потомок "
+"использовал его ресурсы. Использование B<vfork>() было ненадёжно: например, "
+"сохранность данных родительского процесса зависела от того, хранились ли на "
+"тот момент переменные в регистрах."
+
+#. type: SH
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "VERSIONS"
+msgstr "ВЕРСИИ"
+
+#. In AIXv3.1 vfork is equivalent to fork.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The requirements put on B<vfork>() by the standards are weaker than those "
+"put on B<fork>(2), so an implementation where the two are synonymous is "
+"compliant. In particular, the programmer cannot rely on the parent "
+"remaining blocked until the child either terminates or calls B<execve>(2), "
+"and cannot rely on any specific behavior with respect to shared memory."
+msgstr ""
+"Требования, предъявляемые стандартами к B<vfork>(), не такие жёсткие как те, "
+"которые предъявляются к B<fork>(2), поэтому в реализации достаточно просто "
+"сделать их синонимами. В частности, программист не может полагаться на "
+"блокировку родителя до завершения потомка или до вызова им B<execve>(2), и "
+"не может полагаться на специфическое поведение возникновения общей памяти."
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "Some consider the semantics of B<vfork>() to be an architectural "
+#| "blemish, and the 4.2BSD man page stated: \"This system call will be "
+#| "eliminated when proper system sharing mechanisms are implemented. Users "
+#| "should not depend on the memory sharing semantics of B<vfork>() as it "
+#| "will, in that case, be made synonymous to B<fork>(2).\" However, even "
+#| "though modern memory management hardware has decreased the performance "
+#| "difference between B<fork>(2) and B<vfork>(), there are various reasons "
+#| "why Linux and other systems have retained B<vfork>():"
+msgid ""
+"Some consider the semantics of B<vfork>() to be an architectural blemish, "
+"and the 4.2BSD man page stated: \\[lq]This system call will be eliminated "
+"when proper system sharing mechanisms are implemented. Users should not "
+"depend on the memory sharing semantics of I<vfork> as it will, in that case, "
+"be made synonymous to I<fork>.\\[rq] However, even though modern memory "
+"management hardware has decreased the performance difference between "
+"B<fork>(2) and B<vfork>(), there are various reasons why Linux and other "
+"systems have retained B<vfork>():"
+msgstr ""
+"Некоторые считают, что в семантике B<vfork>() есть архитектурный недостаток, "
+"а в справочной странице BSD написано следующее: «Данный системный вызов "
+"будет удалён после того, как будут правильно реализованы соответствующие "
+"механизмы разделения ресурсов системы. Пользователи не должны опираться на "
+"существующую семантику общей памяти B<vfork>(), то есть программа должна "
+"быть аналогична программе с B<fork>(2)». Однако, даже при том, что "
+"современные аппаратные средства управления памятью уменьшили разницу в "
+"производительности между B<fork>(2) и B<vfork>(), есть другие причины почему "
+"в Linux и других операционных системах B<vfork>() ещё существует:"
+
+#. type: IP
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "\\[bu]"
+msgstr "\\[bu]"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Some performance-critical applications require the small performance "
+"advantage conferred by B<vfork>()."
+msgstr ""
+"Для некоторых критичных к производительности приложений очень важна та "
+"маленькая прибавка к производительности, предоставляемая B<vfork>()."
+
+#. http://stackoverflow.com/questions/4259629/what-is-the-difference-between-fork-and-vfork
+#. http://developers.sun.com/solaris/articles/subprocess/subprocess.html
+#. http://mailman.uclinux.org/pipermail/uclinux-dev/2009-April/000684.html
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "B<vfork>() can be implemented on systems that lack a memory-management "
+#| "unit (MMU), but B<fork>(2) can't be implemented on such systems. "
+#| "(POSIX.1-2008 removed B<vfork>() from the standard; the POSIX rationale "
+#| "for the B<posix_spawn>(3) function notes that that function, which "
+#| "provides functionality equivalent to B<fork>(2)+B<exec>(3), is designed "
+#| "to be implementable on systems that lack an MMU.)"
+msgid ""
+"B<vfork>() can be implemented on systems that lack a memory-management unit "
+"(MMU), but B<fork>(2) can't be implemented on such systems. (POSIX.1-2008 "
+"removed B<vfork>() from the standard; the POSIX rationale for the "
+"B<posix_spawn>(3) function notes that that function, which provides "
+"functionality equivalent to B<fork>(2)+ B<exec>(3), is designed to be "
+"implementable on systems that lack an MMU.)"
+msgstr ""
+"Вызов B<vfork>() может быть реализован в системах, у которых нет блока "
+"управления памятью (MMU), а B<fork>(2) невозможно реализовать на таких "
+"системах (из POSIX.1-2008 вызов B<vfork>() удалён; для реализации "
+"эквивалента B<fork>(2)+B<exec>(3) в системах без MMU в POSIX предлагается "
+"использовать функцию B<posix_spawn>(3))."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"On systems where memory is constrained, B<vfork>() avoids the need to "
+"temporarily commit memory (see the description of I</proc/sys/vm/"
+"overcommit_memory> in B<proc>(5)) in order to execute a new program. (This "
+"can be especially beneficial where a large parent process wishes to execute "
+"a small helper program in a child process.) By contrast, using B<fork>(2) "
+"in this scenario requires either committing an amount of memory equal to the "
+"size of the parent process (if strict overcommitting is in force) or "
+"overcommitting memory with the risk that a process is terminated by the out-"
+"of-memory (OOM) killer."
+msgstr ""
+"В системах с малым количеством памяти B<vfork>() при запуске новой программы "
+"не выполняет временное выделение памяти (смотрите описание I</proc/sys/vm/"
+"overcommit_memory> в B<proc>(5)) (это особенно полезно, если огромный "
+"родительский процесс хочет выполнить маленькую вспомогательную программу в "
+"дочернем процессе). Вызов B<fork>(2) в этом случае или потребуется выделения "
+"количества памяти как у родительского процесса (если включён жёсткий учёт "
+"обязательств) или перерасходует память с риском завершения процесса "
+"посредством сторожа расходования памяти ядра (OOM)."
+
+#. type: SS
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "Linux notes"
+msgstr "Замечания, касающиеся Linux"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Fork handlers established using B<pthread_atfork>(3) are not called when a "
+"multithreaded program employing the NPTL threading library calls "
+"B<vfork>(). Fork handlers are called in this case in a program using the "
+"LinuxThreads threading library. (See B<pthreads>(7) for a description of "
+"Linux threading libraries.)"
+msgstr ""
+"Обработчики fork, установленные с помощью B<pthread_atfork>(3), не "
+"вызываются когда многонитиевая программа использует вызовы библиотеки нитей "
+"NPTL B<vfork>(). Обработчики fork вызываются в этом случае в программе, в "
+"которой используется библиотека нитей LinuxThreads. (См. в B<pthreads>(7) "
+"описание библиотек нитей Linux.)"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"A call to B<vfork>() is equivalent to calling B<clone>(2) with I<flags> "
+"specified as:"
+msgstr ""
+"Вызов B<vfork>() эквивалентен вызову B<clone>(2) со следующим значением "
+"I<flags>:"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid " CLONE_VM | CLONE_VFORK | SIGCHLD\n"
+msgstr " CLONE_VM | CLONE_VFORK | SIGCHLD\n"
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "STANDARDS"
+msgstr "СТАНДАРТЫ"
+
+#. type: Plain text
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid "None"
+msgid "None."
+msgstr "None"
+
+#. type: SH
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "HISTORY"
+msgstr "ИСТОРИЯ"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"4.3BSD; POSIX.1-2001 (but marked OBSOLETE). POSIX.1-2008 removes the "
+"specification of B<vfork>()."
+msgstr ""
+"4.3BSD; POSIX.1-2001 (помечен как УСТАРЕВШИЙ). Из POSIX.1-2008 описание "
+"B<vfork>() было удалено."
+
+#. In the release notes for 4.2BSD Sam Leffler wrote: `vfork: Is still
+#. present, but definitely on its way out'.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, fuzzy
+#| msgid ""
+#| "The B<vfork>() system call appeared in 3.0BSD. In 4.4BSD it was made "
+#| "synonymous to B<fork>(2) but NetBSD introduced it again; see E<.UR "
+#| "http://www.netbsd.org\\:/Documentation\\:/kernel\\:/vfork.html> E<.UE .> "
+#| "In Linux, it has been equivalent to B<fork>(2) until 2.2.0-pre6 or so. "
+#| "Since 2.2.0-pre9 (on i386, somewhat later on other architectures) it is "
+#| "an independent system call. Support was added in glibc 2.0.112."
+msgid ""
+"The B<vfork>() system call appeared in 3.0BSD. In 4.4BSD it was made "
+"synonymous to B<fork>(2) but NetBSD introduced it again; see E<.UR http://"
+"www.netbsd.org\\:/Documentation\\:/kernel\\:/vfork.html> E<.UE .> In Linux, "
+"it has been equivalent to B<fork>(2) until Linux 2.2.0-pre6 or so. Since "
+"Linux 2.2.0-pre9 (on i386, somewhat later on other architectures) it is an "
+"independent system call. Support was added in glibc 2.0.112."
+msgstr ""
+"Системный вызов B<vfork>() впервые появился в 30BSD. В 4.4BSD он стал "
+"синонимом B<fork>(2), но в NetBSD он был введён снова; смотрите E<.UR http://"
+"www.netbsd.org\\:/Documentation\\:/kernel\\:/vfork.html> E<.UE .> В Linux "
+"этот системный вызов был эквивалентом B<fork>(2), примерно, до ядра 2.2.0-"
+"pre6. Начиная с 2.2.0-pre9 (на i386 и немного позже на других архитектурах), "
+"он стал независимым системным вызовом. Его поддержка была добавлена в glibc "
+"2.0.112."
+
+#. type: SH
+#: archlinux debian-unstable fedora-40 fedora-rawhide mageia-cauldron
+#: opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "CAVEATS"
+msgstr ""
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"The child process should take care not to modify the memory in unintended "
+"ways, since such changes will be seen by the parent process once the child "
+"terminates or executes another program. In this regard, signal handlers can "
+"be especially problematic: if a signal handler that is invoked in the child "
+"of B<vfork>() changes memory, those changes may result in an inconsistent "
+"process state from the perspective of the parent process (e.g., memory "
+"changes would be visible in the parent, but changes to the state of open "
+"file descriptors would not be visible)."
+msgstr ""
+"Потомок не должен изменять память не ожидаемым образом, так как такие "
+"изменения будут видны родительскому процессу после завершения потомка или "
+"выполнении другой программы. При таком отношении особенно остро стоит "
+"проблема в обработчиках сигналов: если обработчик сигналов, вызванный в "
+"потомке (созданном B<vfork>()), изменяет память, то эти изменения могут "
+"привести к нарушению целостности состояния процесса с точки зрения родителя "
+"(например, изменения памяти были бы видны родителю, а изменения состояния "
+"открытых файловых дескрипторов не видны)."
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"When B<vfork>() is called in a multithreaded process, only the calling "
+"thread is suspended until the child terminates or executes a new program. "
+"This means that the child is sharing an address space with other running "
+"code. This can be dangerous if another thread in the parent process changes "
+"credentials (using B<setuid>(2) or similar), since there are now two "
+"processes with different privilege levels running in the same address "
+"space. As an example of the dangers, suppose that a multithreaded program "
+"running as root creates a child using B<vfork>(). After the B<vfork>(), a "
+"thread in the parent process drops the process to an unprivileged user in "
+"order to run some untrusted code (e.g., perhaps via plug-in opened with "
+"B<dlopen>(3)). In this case, attacks are possible where the parent process "
+"uses B<mmap>(2) to map in code that will be executed by the privileged "
+"child process."
+msgstr ""
+"Если B<vfork>() вызывается многонитиевом процессе, то в ожидании завершения "
+"процесса или запуска новой программы приостанавливается только вызывающая "
+"нить. Это означает, что потомок совместно использует адресное пространство "
+"другим выполняющимся кодом. Это может быть опасно, если другая нить в "
+"родительском процессе изменяет полномочия (с помощью B<setuid>(2) и "
+"подобных), так как теперь есть два процесса с разным уровнем прав, "
+"выполняемых в одном адресном пространстве. Как пример представим, что "
+"многонитиевая программа, работающая с правами суперпользователя, создаёт "
+"потомка с помощью B<vfork>(). После B<vfork>() нить в родительском процессе "
+"понижает права процесса до непривилегированных, чтобы выполнить некий "
+"недоверенный код (например, модуль, открытый через B<dlopen>(3)). В этом "
+"случае появляется уязвимость, если родительский процесс использует "
+"B<mmap>(2) для отображения кода, то он будет выполнен в привилегированном "
+"дочернем процессе."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "BUGS"
+msgstr "ДЕФЕКТЫ"
+
+#. As far as I can tell, the following is not true in Linux 2.6.19:
+#. Currently (Linux 2.3.25),
+#. .BR strace (1)
+#. cannot follow
+#. .BR vfork ()
+#. and requires a kernel patch.
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"Details of the signal handling are obscure and differ between systems. The "
+"BSD man page states: \"To avoid a possible deadlock situation, processes "
+"that are children in the middle of a B<vfork>() are never sent B<SIGTTOU> "
+"or B<SIGTTIN> signals; rather, output or I<ioctl>s are allowed and input "
+"attempts result in an end-of-file indication.\""
+msgstr ""
+"Обработка сигналов ещё более запутана и различается от системы к системе. В "
+"справочной странице BSD написано следующее: «Для исключения возможности "
+"взаимных блокировок процессы, находящиеся в середине исполнения B<vfork>(), "
+"никогда не получат сигналов B<SIGTTOU> или B<SIGTTIN>, хотя вывод или "
+"I<ioctl> всегда разрешены, а попытки ввода приводят к ситуации появления "
+"конца файла»."
+
+#. type: SH
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+#, no-wrap
+msgid "SEE ALSO"
+msgstr "СМ. ТАКЖЕ"
+
+#. type: Plain text
+#: archlinux debian-bookworm debian-unstable fedora-40 fedora-rawhide
+#: mageia-cauldron opensuse-leap-15-6 opensuse-tumbleweed
+msgid ""
+"B<clone>(2), B<execve>(2), B<_exit>(2), B<fork>(2), B<unshare>(2), B<wait>(2)"
+msgstr ""
+"B<clone>(2), B<execve>(2), B<_exit>(2), B<fork>(2), B<unshare>(2), B<wait>(2)"
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "2023-02-05"
+msgstr "5 февраля 2023 г."
+
+#. type: TH
+#: debian-bookworm
+#, no-wrap
+msgid "Linux man-pages 6.03"
+msgstr "Linux man-pages 6.03"
+
+#. type: SH
+#: debian-bookworm
+#, no-wrap
+msgid "NOTES"
+msgstr "ЗАМЕЧАНИЯ"
+
+#. type: Plain text
+#: debian-bookworm opensuse-leap-15-6
+#, fuzzy
+#| msgid ""
+#| "Some consider the semantics of B<vfork>() to be an architectural "
+#| "blemish, and the 4.2BSD man page stated: \"This system call will be "
+#| "eliminated when proper system sharing mechanisms are implemented. Users "
+#| "should not depend on the memory sharing semantics of B<vfork>() as it "
+#| "will, in that case, be made synonymous to B<fork>(2).\" However, even "
+#| "though modern memory management hardware has decreased the performance "
+#| "difference between B<fork>(2) and B<vfork>(), there are various reasons "
+#| "why Linux and other systems have retained B<vfork>():"
+msgid ""
+"Some consider the semantics of B<vfork>() to be an architectural blemish, "
+"and the 4.2BSD man page stated: \"This system call will be eliminated when "
+"proper system sharing mechanisms are implemented. Users should not depend "
+"on the memory sharing semantics of B<vfork>() as it will, in that case, be "
+"made synonymous to B<fork>(2). \" However, even though modern memory "
+"management hardware has decreased the performance difference between "
+"B<fork>(2) and B<vfork>(), there are various reasons why Linux and other "
+"systems have retained B<vfork>():"
+msgstr ""
+"Некоторые считают, что в семантике B<vfork>() есть архитектурный недостаток, "
+"а в справочной странице BSD написано следующее: «Данный системный вызов "
+"будет удалён после того, как будут правильно реализованы соответствующие "
+"механизмы разделения ресурсов системы. Пользователи не должны опираться на "
+"существующую семантику общей памяти B<vfork>(), то есть программа должна "
+"быть аналогична программе с B<fork>(2)». Однако, даже при том, что "
+"современные аппаратные средства управления памятью уменьшили разницу в "
+"производительности между B<fork>(2) и B<vfork>(), есть другие причины почему "
+"в Linux и других операционных системах B<vfork>() ещё существует:"
+
+#. type: SS
+#: debian-bookworm
+#, no-wrap
+msgid "Caveats"
+msgstr "Предостережения"
+
+#. type: SS
+#: debian-bookworm
+#, no-wrap
+msgid "History"
+msgstr "История"
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "2023-07-28"
+msgstr "28 июля 2023 г."
+
+#. type: TH
+#: debian-unstable opensuse-tumbleweed
+#, no-wrap
+msgid "Linux man-pages 6.05.01"
+msgstr "Linux man-pages 6.05.01"
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "2023-03-30"
+msgstr "30 марта 2023 г."
+
+#. type: TH
+#: opensuse-leap-15-6
+#, no-wrap
+msgid "Linux man-pages 6.04"
+msgstr "Linux man-pages 6.04"