diff --git a/documentation/content/ru/books/developers-handbook/_index.adoc b/documentation/content/ru/books/developers-handbook/_index.adoc --- a/documentation/content/ru/books/developers-handbook/_index.adoc +++ b/documentation/content/ru/books/developers-handbook/_index.adoc @@ -52,6 +52,6 @@ Добро пожаловать в Руководство разработчика. Этот документ находится в _процессе разработки_ и создаётся усилиями многих людей. Многие разделы пока отсутствуют, а существующие нуждаются в обновлении. Если вы хотите помочь с этим проектом, отправьте письмо на {freebsd-doc}. -Последняя версия этого документа всегда доступна по ссылке link:https://www.FreeBSD.org[веб-сервер FreeBSD]. Его также можно загрузить в различных форматах и с разными вариантами сжатия с link:https://download.freebsd.org/doc/[сервера загрузки FreeBSD] или одного из многочисленных extref:{handbook}[зеркальных сайтов, mirrors]. +Последняя версия этого документа всегда доступна по ссылке link:https://www.FreeBSD.org[веб-сервер FreeBSD]. Его также можно загрузить в различных форматах и с разными вариантами сжатия с link:https://download.freebsd.org/doc/[сервера загрузки FreeBSD] или одного из многочисленных extref:{handbook}mirrors[зеркальных сайтов, mirrors]. ''' diff --git a/documentation/content/ru/books/developers-handbook/_index.po b/documentation/content/ru/books/developers-handbook/_index.po --- a/documentation/content/ru/books/developers-handbook/_index.po +++ b/documentation/content/ru/books/developers-handbook/_index.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" -"POT-Creation-Date: 2025-05-01 19:56-0300\n" -"PO-Revision-Date: 2025-07-05 04:45+0000\n" +"POT-Creation-Date: 2025-11-08 16:17+0000\n" +"PO-Revision-Date: 2025-11-09 04:45+0000\n" "Last-Translator: Vladlen Popolitov \n" "Language-Team: Russian \n" @@ -22,9 +22,7 @@ #: documentation/content/en/books/developers-handbook/_index.adoc:1 #, no-wrap msgid "For people who want to develop software for FreeBSD (and not just people who are developing FreeBSD itself)" -msgstr "" -"Для тех, кто хочет разрабатывать программное обеспечение для FreeBSD (а не " -"только для тех, кто разрабатывает саму FreeBSD)" +msgstr "Для тех, кто хочет разрабатывать программное обеспечение для FreeBSD (а не только для тех, кто разрабатывает саму FreeBSD)" #. type: Title = #: documentation/content/en/books/developers-handbook/_index.adoc:1 @@ -54,17 +52,17 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/_index.adoc:59 msgid "" -"The latest version of this document is always available from the " -"link:https://www.FreeBSD.org[FreeBSD World Wide Web server]. It may also be " -"downloaded in a variety of formats and compression options from the " -"link:https://download.freebsd.org/doc/[FreeBSD download server] or one of " -"the numerous extref:{handbook}[mirror sites, mirrors]." +"The latest version of this document is always available from the link:" +"https://www.FreeBSD.org[FreeBSD World Wide Web server]. It may also be " +"downloaded in a variety of formats and compression options from the link:" +"https://download.freebsd.org/doc/[FreeBSD download server] or one of the " +"numerous extref:{handbook}mirrors[mirror sites, mirrors]." msgstr "" "Последняя версия этого документа всегда доступна по ссылке link:https://www." "FreeBSD.org[веб-сервер FreeBSD]. Его также можно загрузить в различных " "форматах и с разными вариантами сжатия с link:https://download.freebsd.org/" "doc/[сервера загрузки FreeBSD] или одного из многочисленных " -"extref:{handbook}[зеркальных сайтов, mirrors]." +"extref:{handbook}mirrors[зеркальных сайтов, mirrors]." #. type: Plain text #: documentation/content/en/books/developers-handbook/_index.adoc:60 diff --git a/documentation/content/ru/books/developers-handbook/book.adoc b/documentation/content/ru/books/developers-handbook/book.adoc --- a/documentation/content/ru/books/developers-handbook/book.adoc +++ b/documentation/content/ru/books/developers-handbook/book.adoc @@ -50,7 +50,7 @@ Добро пожаловать в Руководство разработчика. Этот документ находится в _процессе разработки_ и создаётся усилиями многих людей. Многие разделы пока отсутствуют, а существующие нуждаются в обновлении. Если вы хотите помочь с этим проектом, отправьте письмо на {freebsd-doc}. -Последняя версия этого документа всегда доступна по ссылке link:https://www.FreeBSD.org[веб-сервер FreeBSD]. Его также можно загрузить в различных форматах и с разными вариантами сжатия с link:https://download.freebsd.org/doc/[сервера загрузки FreeBSD] или одного из многочисленных extref:{handbook}[зеркальных сайтов, mirrors]. +Последняя версия этого документа всегда доступна по ссылке link:https://www.FreeBSD.org[веб-сервер FreeBSD]. Его также можно загрузить в различных форматах и с разными вариантами сжатия с link:https://download.freebsd.org/doc/[сервера загрузки FreeBSD] или одного из многочисленных extref:{handbook}mirrors[зеркальных сайтов, mirrors]. ''' diff --git a/documentation/content/ru/books/developers-handbook/book.po b/documentation/content/ru/books/developers-handbook/book.po --- a/documentation/content/ru/books/developers-handbook/book.po +++ b/documentation/content/ru/books/developers-handbook/book.po @@ -5,7 +5,7 @@ msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" -"POT-Creation-Date: 2022-07-07 23:23-0300\n" +"POT-Creation-Date: 2025-11-12 21:00+0300\n" "PO-Revision-Date: 2025-07-05 04:45+0000\n" "Last-Translator: Vladlen Popolitov \n" "Language-Team: Russian \n" "Language-Team: Russian \n" @@ -137,12 +137,12 @@ #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:84 msgid "" "man:gif[4] interface implements IPv[46]-over-IPv[46] tunnel in a generic " -"way, and it covers \"configured tunnel\" described in the spec. See " -"crossref:ipv6[gif,23.5.1.5] in this document for details." +"way, and it covers \"configured tunnel\" described in the spec. See crossref:" +"ipv6[gif,Generic Tunnel Interface] in this document for details." msgstr "" "man:gif[4] интерфейс реализует IPv[46]-поверх-IPv[46] туннель в общем виде и " "включает \"настроенный туннель\", описанный в спецификации. Подробности см. " -"в crossref:ipv6[gif,23.5.1.5] этого документа." +"в crossref:ipv6[gif,Универсальный Туннельный Интерфейс] этого документа." #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:86 @@ -240,10 +240,11 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:118 msgid "" -"See crossref:ipv6[neighbor-discovery,23.5.1.2] in this document for details." +"See crossref:ipv6[neighbor-discovery,Neighbor Discovery] in this document " +"for details." msgstr "" -"См. crossref:ipv6[neighbor-discovery,23.5.1.2] в этом документе для " -"получения подробностей." +"См. раздел crossref:ipv6[neighbor-discovery,Функция \"Обнаружение соседей\"] " +"в этом документе для получения подробностей." #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:120 @@ -252,10 +253,10 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:122 -msgid "See crossref:ipv6[ipv6-pnp,23.5.1.4] in this document for details." +msgid "See crossref:ipv6[ipv6-pnp,Plug and Play] in this document for details." msgstr "" -"См. crossref:ipv6[ipv6-pnp,23.5.1.4] в этом документе для получения " -"подробностей." +"См. раздел crossref:ipv6[ipv6-pnp,Plug and Play (подключи и работай)] в этом " +"документе для получения подробностей." #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:124 @@ -264,10 +265,9 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:126 -msgid "See crossref:ipv6[icmpv6,23.5.1.9] in this document for details." +msgid "See crossref:ipv6[icmpv6,ICMPv6] in this document for details." msgstr "" -"См. crossref:ipv6[icmpv6,23.5.1.9] в этом документе для получения " -"подробностей." +"См. crossref:ipv6[icmpv6,ICMPv6] в этом документе для получения подробностей." #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:128 @@ -321,12 +321,13 @@ #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:142 msgid "" "IPv4 mapped address (3.7) and special behavior of IPv6 wildcard bind socket " -"(3.8) are supported. See crossref:ipv6[ipv6-wildcard-socket,23.5.1.12] in " -"this document for details." +"(3.8) are supported. See crossref:ipv6[ipv6-wildcard-socket,IPv4 Mapped " +"Address and IPv6 Wildcard Socket] in this document for details." msgstr "" "Отображаемый адрес IPv4 (3.7) и особое поведение сокета с привязкой по " -"шаблону IPv6 (3.8) поддерживаются. Подробности см. в разделе " -"crossref:ipv6[ipv6-wildcard-socket,23.5.1.12] этого документа." +"шаблону IPv6 (3.8) поддерживаются. Подробности см. в разделе этого документа " +"crossref:ipv6[ipv6-wildcard-socket,IPv4-отображённые адреса и IPv6-сокет с " +"подстановочным адресом]." #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:144 @@ -335,10 +336,11 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:146 -msgid "See crossref:ipv6[ipv6-jumbo,23.5.1.7] in this document for details." +msgid "" +"See crossref:ipv6[ipv6-jumbo,Jumbo Payload] in this document for details." msgstr "" -"См. crossref:ipv6[ipv6-jumbo,23.5.1.7] в этом документе для получения " -"подробностей." +"См. раздел crossref:ipv6[ipv6-jumbo,Джамбо-пакет (Jumbo Payload)] в этом " +"документе для получения подробностей." #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:148 @@ -405,10 +407,12 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:160 -msgid "See crossref:ipv6[ipv6-sas,23.5.1.6] in this document for details." +msgid "" +"See crossref:ipv6[ipv6-sas,Source Address Selection] in this document for " +"details." msgstr "" -"См. crossref:ipv6[ipv6-sas,23.5.1.6] в этом документе для более подробной " -"информации." +"См. раздел crossref:ipv6[ipv6-sas,Выбор исходящего адреса] в этом документе " +"для более подробной информации." #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:162 @@ -439,8 +443,8 @@ "дублирования адресов (DAD — Duplicated Address Detection) и обнаружение " "недоступности соседей (Neighbor Unreachability Detection). В ближайшем " "будущем мы добавим поддержку прокси-объявлений соседей (Proxy Neighbor " -"Advertisement) в ядро и команду передачи непрошенных объявлений соседей (" -"Unsolicited Neighbor Advertisement) в качестве инструмента администратора." +"Advertisement) в ядро и команду передачи непрошенных объявлений соседей " +"(Unsolicited Neighbor Advertisement) в качестве инструмента администратора." #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:174 @@ -451,11 +455,11 @@ "check for and recover from DAD failures. The behavior should be improved in " "the near future." msgstr "" -"Если DAD завершается неудачно, адрес будет помечен как \"дублированный\" " -"(duplicated), и сообщение будет записано в syslog (а также обычно выведено " -"на консоль). Метку \"дублированный\" можно проверить с помощью " -"man:ifconfig[8]. Обязанность администратора — проверять и устранять сбои " -"DAD. В ближайшем будущем поведение должно быть улучшено." +"Если DAD завершается неудачно, адрес будет помечен как \"дублированный" +"\" (duplicated), и сообщение будет записано в syslog (а также обычно " +"выведено на консоль). Метку \"дублированный\" можно проверить с помощью man:" +"ifconfig[8]. Обязанность администратора — проверять и устранять сбои DAD. В " +"ближайшем будущем поведение должно быть улучшено." #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:178 @@ -464,9 +468,9 @@ "instructed not to do so (especially in promiscuous mode). In such cases DAD " "may fail, because DAD engine sees inbound NS packet (actually from the node " "itself) and considers it as a sign of duplicate. You may want to look at " -"#if condition marked \"heuristics\" in sys/netinet6/" -"nd6_nbr.c:nd6_dad_timer() as workaround (note that the code fragment in " -"\"heuristics\" section is not spec conformant)." +"#if condition marked \"heuristics\" in sys/netinet6/nd6_nbr.c:" +"nd6_dad_timer() as workaround (note that the code fragment in \"heuristics\" " +"section is not spec conformant)." msgstr "" "Некоторые сетевые драйверы закольцовывают multicast-пакеты обратно на себя, " "даже если им указано так не делать (особенно в promiscuous mode). В таких " @@ -525,8 +529,8 @@ msgstr "" "Правило определения локальной IPv6 сети (RFC2461) значительно отличается от " "предположений в сетевом коде BSD. На данный момент не поддерживается правило " -"определения локальной сети при пустом списке маршрутизаторов по умолчанию (" -"RFC2461, раздел 5.2, последнее предложение во 2-м абзаце - обратите " +"определения локальной сети при пустом списке маршрутизаторов по умолчанию " +"(RFC2461, раздел 5.2, последнее предложение во 2-м абзаце - обратите " "внимание, что в спецификации некорректно используются слова \"host\" и \"node" "\" в нескольких местах раздела)." @@ -620,20 +624,19 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:223 msgid "" -"Routing daemons and configuration programs, like man:route6d[8] and " -"man:ifconfig[8], will need to manipulate the \"embedded\" scope index. " -"These programs use routing sockets and ioctls (like SIOCGIFADDR_IN6) and the " +"Routing daemons and configuration programs, like man:route6d[8] and man:" +"ifconfig[8], will need to manipulate the \"embedded\" scope index. These " +"programs use routing sockets and ioctls (like SIOCGIFADDR_IN6) and the " "kernel API will return IPv6 addresses with 2nd 16bit-word filled in. The " "APIs are for manipulating kernel internal structure. Programs that use " "these APIs have to be prepared about differences in kernels anyway." msgstr "" -"Демоны маршрутизации и программы настройки, такие как man:route6d[8] и " -"man:ifconfig[8], должны управлять \"встроенным\" индексом зоны. Эти " -"программы используют сокеты маршрутизации и ioctl (например, SIOCGIFADDR_IN6)" -", и API ядра будет возвращать IPv6-адреса с заполненным вторым 16-битным " -"словом. API предназначены для управления внутренними структурами ядра. " -"Программы, использующие эти API, в любом случае должны быть готовы к " -"различиям в ядрах." +"Демоны маршрутизации и программы настройки, такие как man:route6d[8] и man:" +"ifconfig[8], должны управлять \"встроенным\" индексом зоны. Эти программы " +"используют сокеты маршрутизации и ioctl (например, SIOCGIFADDR_IN6), и API " +"ядра будет возвращать IPv6-адреса с заполненным вторым 16-битным словом. API " +"предназначены для управления внутренними структурами ядра. Программы, " +"использующие эти API, в любом случае должны быть готовы к различиям в ядрах." #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:230 @@ -648,9 +651,9 @@ "situation. We believe that specifications need some improvements for this." msgstr "" "При указании адреса с ограниченной областью действия в командной строке " -"НИКОГДА не используйте встроенную форму (например, ff02:1::1 или " -"fe80:2::fedc). Это не должно работать. Всегда используйте стандартную форму, " -"такую как ff02::1 или fe80::fedc, с параметром командной строки для указания " +"НИКОГДА не используйте встроенную форму (например, ff02:1::1 или fe80:2::" +"fedc). Это не должно работать. Всегда используйте стандартную форму, такую " +"как ff02::1 или fe80::fedc, с параметром командной строки для указания " "интерфейса (например, `ping -6 -I ne0 ff02::1`). В общем, если команда не " "имеет параметра командной строки для указания исходящего интерфейса, эта " "команда не готова принимать адрес с областью действия. Это кажется " @@ -675,8 +678,8 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:237 msgid "" -"To use this extension in your program, you will need to use " -"man:getaddrinfo[3], and man:getnameinfo[3] with NI_WITHSCOPEID. The " +"To use this extension in your program, you will need to use man:" +"getaddrinfo[3], and man:getnameinfo[3] with NI_WITHSCOPEID. The " "implementation currently assumes 1-to-1 relationship between a link and an " "interface, which is stronger than what specs say." msgstr "" @@ -742,8 +745,7 @@ "fe80:2::%ep0/64 link#2 UC ep0\n" msgstr "" "Internet6:\n" -"Destination Gateway Flags Netif " -"Expire\n" +"Destination Gateway Flags Netif Expire\n" "fe80:1::%ed0/64 link#1 UC ed0\n" "fe80:2::%ep0/64 link#2 UC ep0\n" @@ -787,13 +789,13 @@ "table, and loopback interface joins node-local multicast group ff01::1." msgstr "" "Каждый интерфейс присоединяется к запрашиваемому широковещательному адресу и " -"линк-локальным широковещательным адресам всех узлов (например, fe80::1:ff01:" -"6317 и ff02::1 соответственно на соединении, к которому подключен интерфейс)" -". В дополнение к линк-локальному адресу, адрес обратной петли (::1 — " -"loopback) будет назначен интерфейсу обратной петли. Также, ::1/128 и ff01::/" -"32 автоматически добавляются в таблицу маршрутизации, а loopback-интерфейс (" -"интерфейс обратной петли) присоединяется к групповому адресу в пределах узла " -"ff01::1." +"линк-локальным широковещательным адресам всех узлов (например, fe80::1:" +"ff01:6317 и ff02::1 соответственно на соединении, к которому подключен " +"интерфейс). В дополнение к линк-локальному адресу, адрес обратной петли (::1 " +"— loopback) будет назначен интерфейсу обратной петли. Также, ::1/128 и " +"ff01::/32 автоматически добавляются в таблицу маршрутизации, а loopback-" +"интерфейс (интерфейс обратной петли) присоединяется к групповому адресу в " +"пределах узла ff01::1." #. type: Title ===== #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:273 @@ -841,19 +843,19 @@ "Маршрутизаторы периодически генерируют пакеты Router Advertisement. Чтобы " "запросить соседний маршрутизатор сгенерировать RA-пакет, хост может " "отправить Router Solicitation. Для генерации RS-пакета в любое время " -"используйте команду _rtsol_. Также доступен демон man:rtsold[8]. " -"man:rtsold[8] генерирует Router Solicitation по мере необходимости и отлично " +"используйте команду _rtsol_. Также доступен демон man:rtsold[8]. man:" +"rtsold[8] генерирует Router Solicitation по мере необходимости и отлично " "подходит для мобильного использования (ноутбуки/лэптопы). Если необходимо " -"игнорировать Router Advertisements, используйте sysctl для установки " -"net.inet6.ip6.accept_rtadv в 0." +"игнорировать Router Advertisements, используйте sysctl для установки net." +"inet6.ip6.accept_rtadv в 0." #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:288 msgid "" "To generate Router Advertisement from a router, use the man:rtadvd[8] daemon." msgstr "" -"Для генерации Router Advertisement от маршрутизатора используйте демон " -"man:rtadvd[8]." +"Для генерации Router Advertisement от маршрутизатора используйте демон man:" +"rtadvd[8]." #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:290 @@ -938,11 +940,11 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:319 msgid "" -"See crossref:ipv6[neighbor-discovery,23.5.1.2] in the document for " +"See crossref:ipv6[neighbor-discovery,Neighbor Discovery] in the document for " "relationship between DAD and autoconfiguration." msgstr "" -"См. crossref:ipv6[neighbor-discovery,23.5.1.2] в документе для информации о " -"взаимосвязи между DAD и автонастройкой." +"См. раздел crossref:ipv6[neighbor-discovery,Функция \"Обнаружение соседей\"] " +"в этом документе для информации о взаимосвязи между DAD и автонастройкой." #. type: Title ==== #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:321 @@ -998,13 +1000,13 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:338 msgid "" -"gif can be configured to be ECN-friendly. See crossref:ipv6[ipsec-" -"ecn,23.5.4.5] for ECN-friendliness of tunnels, and man:gif[4] for how to " -"configure." +"gif can be configured to be ECN-friendly. See crossref:ipv6[ipsec-ecn,ECN " +"Consideration on IPsec Tunnels] for ECN-friendliness of tunnels, and man:" +"gif[4] for how to configure." msgstr "" "gif можно настроить так, чтобы он был дружественным к ECN. Подробнее о " -"дружелюбности к ECN для туннелей см. crossref:ipv6[ipsec-ecn,23.5.4.5], а о " -"настройке — в man:gif[4]." +"дружелюбности к ECN для туннелей см. crossref:ipv6[ipsec-ecn,Учет ECN в " +"IPsec-туннелях], а о настройке — в man:gif[4]." #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:341 @@ -1095,7 +1097,7 @@ msgid "" "For instance, ::1 is selected for ff01::1, fe80:1::200:f8ff:fe01:6317 for " "fe80:1::2a0:24ff:feab:839b (note that embedded interface index - described " -"in crossref:ipv6[ipv6-scope-index,23.5.1.3] - helps us choose the right " +"in crossref:ipv6[ipv6-scope-index,Scope Index] - helps us choose the right " "source address. Those embedded indices will not be on the wire). If the " "outgoing interface has multiple address for the scope, a source is selected " "longest match basis (rule 3). Suppose 2001:0DB8:808:1:200:f8ff:fe01:6317 " @@ -1105,12 +1107,12 @@ msgstr "" "Например, ::1 выбирается для ff01::1, fe80:1::200:f8ff:fe01:6317 для " "fe80:1::2a0:24ff:feab:839b (обратите внимание, что встроенный индекс " -"интерфейса — описанный в crossref:ipv6[ipv6-scope-index,23.5.1.3] — помогает " -"нам выбрать правильный исходный адрес. Эти встроенные индексы не будут " -"передаваться по сети). Если исходящий интерфейс имеет несколько адресов для " -"данной зоны, исходный адрес выбирается на основе наибольшего соответствия (" -"правило 3). Предположим, что 2001:0DB8:808:1:200:f8ff:fe01:6317 и " -"2001:0DB8:9:124:200:f8ff:fe01:6317 назначены исходящему интерфейсу. " +"интерфейса — описанный в crossref:ipv6[ipv6-scope-index,Индекс зоны] — " +"помогает нам выбрать правильный исходный адрес. Эти встроенные индексы не " +"будут передаваться по сети). Если исходящий интерфейс имеет несколько " +"адресов для данной зоны, исходный адрес выбирается на основе наибольшего " +"соответствия (правило 3). Предположим, что 2001:0DB8:808:1:200:f8ff:fe01:" +"6317 и 2001:0DB8:9:124:200:f8ff:fe01:6317 назначены исходящему интерфейсу. " "2001:0DB8:808:1:200:f8ff:fe01:6317 выбирается в качестве исходящего адреса " "для адреса назначения 2001:0DB8:800::1." @@ -1130,8 +1132,8 @@ "реализации\". Существуют случаи, когда мы не используем это правило. Один из " "примеров — установленное TCP-соединение, где мы используем адрес, " "сохраненный в tcb, в качестве источника. Другой пример — исходящий адрес для " -"Объявления Соседа (Neighbor Advertisement). Согласно спецификации (RFC2461 7." -"2.2) источник NA должен быть целевым адресом соответствующего NS. В этом " +"Объявления Соседа (Neighbor Advertisement). Согласно спецификации (RFC2461 " +"7.2.2) источник NA должен быть целевым адресом соответствующего NS. В этом " "случае мы следуем спецификации, а не приведенному выше правилу наибольшего " "совпадения." @@ -1149,16 +1151,16 @@ "(NOTE: there is some debate underway in IETF ipngwg on how to use " "\"deprecated\" address)." msgstr "" -"Для новых соединений (когда правило 1 не применяется), устаревшие адреса (" -"адреса с предпочтительным временем жизни = 0) не будут выбираться в качестве " -"исходящего адреса, если доступны другие варианты. Если других вариантов нет, " -"устаревший адрес будет использован в качестве последнего средства. Если есть " -"несколько устаревших адресов, для выбора между ними будет применено " -"указанное выше правило области видимости. Если вы хотите запретить " -"использование устаревших адресов по какой-либо причине, установите параметр " -"net.inet6.ip6.use_deprecated в значение 0. Проблема, связанная с устаревшими " -"адресами, описана в RFC2462 5.5.4 (ПРИМЕЧАНИЕ: в IETF ipngwg ведутся дебаты " -"о том, как использовать \"устаревшие\" адреса)." +"Для новых соединений (когда правило 1 не применяется), устаревшие адреса " +"(адреса с предпочтительным временем жизни = 0) не будут выбираться в " +"качестве исходящего адреса, если доступны другие варианты. Если других " +"вариантов нет, устаревший адрес будет использован в качестве последнего " +"средства. Если есть несколько устаревших адресов, для выбора между ними " +"будет применено указанное выше правило области видимости. Если вы хотите " +"запретить использование устаревших адресов по какой-либо причине, установите " +"параметр net.inet6.ip6.use_deprecated в значение 0. Проблема, связанная с " +"устаревшими адресами, описана в RFC2462 5.5.4 (ПРИМЕЧАНИЕ: в IETF ipngwg " +"ведутся дебаты о том, как использовать \"устаревшие\" адреса)." #. type: Title ==== #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:376 @@ -1188,8 +1190,8 @@ "following to the kernel configuration file:" msgstr "" "Если вы хотите попробовать джамбо-пакеты, сначала необходимо " -"переконфигурировать ядро, чтобы MTU интерфейса loopback превышал 65 535 байт;" -" добавьте следующее в конфигурационный файл ядра:" +"переконфигурировать ядро, чтобы MTU интерфейса loopback превышал 65 535 " +"байт; добавьте следующее в конфигурационный файл ядра:" #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:384 @@ -1204,15 +1206,15 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:390 msgid "" -"Then you can test jumbo payloads by the man:ping[8] command with -6, -b and " -"-s options. The -b option must be specified to enlarge the size of the " +"Then you can test jumbo payloads by the man:ping[8] command with -6, -b and -" +"s options. The -b option must be specified to enlarge the size of the " "socket buffer and the -s option specifies the length of the packet, which " "should be more than 65,535. For example, type as follows:" msgstr "" -"Затем вы можете проверить работу с большими пакетами с помощью команды " -"man:ping[8] с опциями -6, -b и -s. Опция -b необходима для увеличения " -"размера буфера сокета, а опция -s задает длину пакета, которая должна быть " -"больше 65 535. Например, введите следующее:" +"Затем вы можете проверить работу с большими пакетами с помощью команды man:" +"ping[8] с опциями -6, -b и -s. Опция -b необходима для увеличения размера " +"буфера сокета, а опция -s задает длину пакета, которая должна быть больше 65 " +"535. Например, введите следующее:" #. type: delimited block . 4 #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:394 @@ -1325,8 +1327,8 @@ "содержать джамбограмму с длиной > 2G на 32-битных архитектурах CPU. Если мы " "хотим правильно поддерживать джамбограммы, это поле необходимо расширить, " "чтобы оно могло содержать 4G + заголовок IPv6 + заголовок канального уровня. " -"Следовательно, его необходимо расширить как минимум до `int64_t` (`u_int32_t`" -" НЕ достаточно)." +"Следовательно, его необходимо расширить как минимум до `int64_t` " +"(`u_int32_t` НЕ достаточно)." #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:430 @@ -1387,15 +1389,15 @@ "реализован код IPv4 в BSD, может произойти переполнение стека ядра из-за " "длинной цепочки вызовов функций. Код в sys/netinet6 тщательно спроектирован, " "чтобы избежать переполнения стека ядра, поэтому он определяет собственную " -"структуру переключения протоколов — \"struct ip6protosw\" (см. [.filename]#" -"netinet6/ip6protosw.h#). Для IPv4 части (sys/netinet) подобных обновлений не " -"было сделано для сохранения совместимости, но в прототип pr_input() внесено " -"небольшое изменение. Поэтому также определена \"struct ipprotosw\". В " -"результате, если получен пакет IPsec-over-IPv4 с большим количеством " -"заголовков IPsec, стек ядра может переполниться. С IPsec-over-IPv6 такой " -"проблемы нет. (Разумеется, чтобы все эти заголовки IPsec были обработаны, " -"каждый такой заголовок должен пройти все проверки IPsec. Поэтому анонимный " -"злоумышленник не сможет осуществить подобную атаку.)" +"структуру переключения протоколов — \"struct ip6protosw\" (см. [." +"filename]#netinet6/ip6protosw.h#). Для IPv4 части (sys/netinet) подобных " +"обновлений не было сделано для сохранения совместимости, но в прототип " +"pr_input() внесено небольшое изменение. Поэтому также определена \"struct " +"ipprotosw\". В результате, если получен пакет IPsec-over-IPv4 с большим " +"количеством заголовков IPsec, стек ядра может переполниться. С IPsec-over-" +"IPv6 такой проблемы нет. (Разумеется, чтобы все эти заголовки IPsec были " +"обработаны, каждый такой заголовок должен пройти все проверки IPsec. Поэтому " +"анонимный злоумышленник не сможет осуществить подобную атаку.)" #. type: Title ==== #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:446 @@ -1427,16 +1429,16 @@ "RFC2553, RFC2292 and upcoming Internet drafts." msgstr "" "Для программирования в пользовательском пространстве мы поддерживаем API " -"сокетов IPv6, как указано в RFC2553, RFC2292 и готовящихся " -"интернет-черновиках." +"сокетов IPv6, как указано в RFC2553, RFC2292 и готовящихся интернет-" +"черновиках." #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:459 msgid "" -"TCP/UDP over IPv6 is available and quite stable. You can enjoy " -"man:telnet[1], man:ftp[1], man:rlogin[1], man:rsh[1], man:ssh[1], etc. " -"These applications are protocol independent. That is, they automatically " -"chooses IPv4 or IPv6 according to DNS." +"TCP/UDP over IPv6 is available and quite stable. You can enjoy man:" +"telnet[1], man:ftp[1], man:rlogin[1], man:rsh[1], man:ssh[1], etc. These " +"applications are protocol independent. That is, they automatically chooses " +"IPv4 or IPv6 according to DNS." msgstr "" "TCP/UDP поверх IPv6 доступны и достаточно стабильны. Вы можете использовать " "man:telnet[1], man:ftp[1], man:rlogin[1], man:rsh[1], man:ssh[1] и т.д. Эти " @@ -1664,12 +1666,12 @@ "отказа и взаимосвязи между AF_INET/INET6 wildcard bind. Может быть " "несколько различных интерпретаций этого RFC, которые соответствуют ему, но " "ведут себя по-разному. Поэтому для создания переносимых приложений не " -"следует делать никаких предположений о поведении в ядре. Использование " -"man:getaddrinfo[3] является наиболее безопасным способом. Вопросы " -"пространства номеров портов и привязки к подстановочному адресу подробно " -"обсуждались в рассылке ipv6imp в середине марта 1999 года, и похоже, что " -"конкретного консенсуса нет (то есть, остается на усмотрение реализаторов). " -"Возможно, вам стоит проверить архивы рассылки." +"следует делать никаких предположений о поведении в ядре. Использование man:" +"getaddrinfo[3] является наиболее безопасным способом. Вопросы пространства " +"номеров портов и привязки к подстановочному адресу подробно обсуждались в " +"рассылке ipv6imp в середине марта 1999 года, и похоже, что конкретного " +"консенсуса нет (то есть, остается на усмотрение реализаторов). Возможно, " +"вам стоит проверить архивы рассылки." #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:534 @@ -1684,9 +1686,9 @@ #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:539 msgid "" "One is using AF_INET and AF_INET6 socket (you will need two sockets). Use " -"man:getaddrinfo[3] with AI_PASSIVE into ai_flags, and man:socket[2] and " -"man:bind[2] to all the addresses returned. By opening multiple sockets, you " -"can accept connections onto the socket with proper address family. IPv4 " +"man:getaddrinfo[3] with AI_PASSIVE into ai_flags, and man:socket[2] and man:" +"bind[2] to all the addresses returned. By opening multiple sockets, you can " +"accept connections onto the socket with proper address family. IPv4 " "connections will be accepted by AF_INET socket, and IPv6 connections will be " "accepted by AF_INET6 socket." msgstr "" @@ -1694,14 +1696,14 @@ "два сокета). Используйте man:getaddrinfo[3] с AI_PASSIVE в ai_flags, а также " "man:socket[2] и man:bind[2] для всех возвращённых адресов. Открыв несколько " "сокетов, вы можете принимать соединения сокетом соответствующей адресной " -"семьи. IPv4-соединения будут приниматься сокетом AF_INET, а IPv6-соединения —" -" сокетом AF_INET6." +"семьи. IPv4-соединения будут приниматься сокетом AF_INET, а IPv6-соединения " +"— сокетом AF_INET6." #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:545 msgid "" -"Another way is using one AF_INET6 wildcard bind socket. Use " -"man:getaddrinfo[3] with AI_PASSIVE into ai_flags and with AF_INET6 into " +"Another way is using one AF_INET6 wildcard bind socket. Use man:" +"getaddrinfo[3] with AI_PASSIVE into ai_flags and with AF_INET6 into " "ai_family, and set the 1st argument hostname to NULL. And man:socket[2] and " "man:bind[2] to the address returned. (should be IPv6 unspecified addr). " "You can accept either of IPv4 and IPv6 packet via this one socket." @@ -1731,8 +1733,8 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:551 msgid "" -"To resolve this issue more easily, there is system dependent " -"man:setsockopt[2] option, IPV6_BINDV6ONLY, used like below." +"To resolve this issue more easily, there is system dependent man:" +"setsockopt[2] option, IPV6_BINDV6ONLY, used like below." msgstr "" "Для более простого решения этой задачи существует зависящий от системы " "параметр man:setsockopt[2] под названием IPV6_BINDV6ONLY, используемый " @@ -1773,9 +1775,9 @@ "(which works on multiple IPv6 kernels), we believe that the following is the " "key to the success:" msgstr "" -"Совет разработчикам приложений: для создания переносимого IPv6-приложения (" -"которое работает на различных IPv6-ядрах), мы считаем, что следующие моменты " -"являются ключом к успеху:" +"Совет разработчикам приложений: для создания переносимого IPv6-приложения " +"(которое работает на различных IPv6-ядрах), мы считаем, что следующие " +"моменты являются ключом к успеху:" #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:567 @@ -1788,8 +1790,8 @@ "Use man:getaddrinfo[3] and man:getnameinfo[3] throughout the system. Never " "use gethostby*(), getaddrby*(), inet_*() or getipnodeby*(). (To update " "existing applications to be IPv6 aware easily, sometime getipnodeby*() will " -"be useful. But if possible, try to rewrite the code to use " -"man:getaddrinfo[3] and man:getnameinfo[3].)" +"be useful. But if possible, try to rewrite the code to use man:" +"getaddrinfo[3] and man:getnameinfo[3].)" msgstr "" "Используйте man:getaddrinfo[3] и man:getnameinfo[3] во всей системе. Никогда " "не используйте gethostby*(), getaddrby*(), inet_*() или getipnodeby*(). (Для " @@ -1812,8 +1814,8 @@ "Some of the IPv6 stack is shipped with buggy man:getaddrinfo[3]. Ship a " "minimal working version with your application and use that as last resort." msgstr "" -"Некоторые реализации стека IPv6 поставляются с некорректной " -"man:getaddrinfo[3]. Включите минимально рабочую версию в ваше приложение и " +"Некоторые реализации стека IPv6 поставляются с некорректной man:" +"getaddrinfo[3]. Включите минимально рабочую версию в ваше приложение и " "используйте её в крайнем случае." #. type: Plain text @@ -1907,8 +1909,8 @@ #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:598 msgid "" "Each socket can be configured to support special AF_INET6 wildcard bind " -"(enabled by default). You can disable it on each socket basis with " -"man:setsockopt[2] like below." +"(enabled by default). You can disable it on each socket basis with man:" +"setsockopt[2] like below." msgstr "" "Каждый сокет может быть настроен для поддержки специальной привязки к " "подстановочному адресу AF_INET6 (включено по умолчанию). Это можно отключить " @@ -1950,11 +1952,11 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:617 msgid "" -"FreeBSD 4.x supports outgoing connection to IPv4 mapped address " -"(::ffff:10.1.1.1), if the node is configured to support IPv4 mapped address." +"FreeBSD 4.x supports outgoing connection to IPv4 mapped address (::" +"ffff:10.1.1.1), if the node is configured to support IPv4 mapped address." msgstr "" -"FreeBSD 4.x поддерживает исходящее соединение с IPv4-отображённым адресом " -"(::ffff:10.1.1.1), если узел настроен на поддержку IPv4-отображённых адресов." +"FreeBSD 4.x поддерживает исходящее соединение с IPv4-отображённым адресом (::" +"ffff:10.1.1.1), если узел настроен на поддержку IPv4-отображённых адресов." #. type: Title ==== #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:618 @@ -2161,8 +2163,8 @@ "IPv4 host in the IPv4 ocean." msgstr "" "_Транслятор А_ --- Он используется на раннем этапе перехода, чтобы позволить " -"установить соединение с IPv6-хоста на IPv6-острове к IPv4-хосту в " -"IPv4-океане." +"установить соединение с IPv6-хоста на IPv6-острове к IPv4-хосту в IPv4-" +"океане." #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:683 @@ -2232,9 +2234,9 @@ msgid "" "The kernel implements experimental policy management code. There are two " "way to manage security policy. One is to configure per-socket policy using " -"man:setsockopt[2]. In this cases, policy configuration is described in " -"man:ipsec_set_policy[3]. The other is to configure kernel packet filter-" -"based policy using PF_KEY interface, via man:setkey[8]." +"man:setsockopt[2]. In this cases, policy configuration is described in man:" +"ipsec_set_policy[3]. The other is to configure kernel packet filter-based " +"policy using PF_KEY interface, via man:setkey[8]." msgstr "" "Ядро реализует экспериментальный код управления политикой безопасности. " "Существует два способа управления политикой безопасности. Первый — настройка " @@ -2327,7 +2329,7 @@ "to add some algorithm, add wrapper function in {esp,ah}_core.c, and add your " "crypto algorithm code into sys/crypto." msgstr "" -"Основные криптографические функции можно найти в директории `sys/crypto`. " +"Основные криптографические функции можно найти в каталоге `sys/crypto`. " "Преобразования ESP/AH перечислены в `{esp,ah}_core.c` с обёрточными " "функциями. Если вы хотите добавить какой-либо алгоритм, добавьте обёрточную " "функцию в `{esp,ah}_core.c` и поместите код вашего криптографического " @@ -2396,17 +2398,17 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:744 msgid "" -"\"new IPsec\" specification documented in [.filename]#rfc240[1-6].txt#, " -"[.filename]#rfc241[01].txt#, [.filename]#rfc2451.txt# and [.filename]#draft-" -"mcdonald-simple-ipsec-api-01.txt# (draft expired, but you can take from " -"link:ftp://ftp.kame.net/pub/internet-drafts/[ ftp://ftp.kame.net/pub/" -"internet-drafts/]). (NOTE: IKE specifications, [.filename]#rfc241[7-9].txt# " -"are implemented in userland, as \"racoon\" IKE daemon)" +"\"new IPsec\" specification documented in [.filename]#rfc240[1-6].txt#, [." +"filename]#rfc241[01].txt#, [.filename]#rfc2451.txt# and [.filename]#draft-" +"mcdonald-simple-ipsec-api-01.txt# (draft expired, but you can take from link:" +"ftp://ftp.kame.net/pub/internet-drafts/[ ftp://ftp.kame.net/pub/internet-" +"drafts/]). (NOTE: IKE specifications, [.filename]#rfc241[7-9].txt# are " +"implemented in userland, as \"racoon\" IKE daemon)" msgstr "" "Спецификация \"new IPsec\" описана в [.filename]#rfc240[1-6].txt#, [." "filename]#rfc241[01].txt#, [.filename]#rfc2451.txt# и [.filename]#draft-" "mcdonald-simple-ipsec-api-01.txt# (черновик устарел, но его можно взять по " -"ссылке: link:ftp://ftp.kame.net/pub/internet-drafts/[ ftp://ftp.kame.net/pub/" +"ссылке link:ftp://ftp.kame.net/pub/internet-drafts/[ ftp://ftp.kame.net/pub/" "internet-drafts/]). (ПРИМЕЧАНИЕ: Спецификации IKE, [.filename]#rfc241[7-9]." "txt#, реализованы в пользовательском пространстве в виде демона IKE \"racoon" "\")" @@ -2465,7 +2467,8 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:758 msgid "null encryption (no document, similar to [.filename]#rfc2410.txt#)" -msgstr "нулевое шифрование (нет документа, аналогично [.filename]#rfc2410.txt#)" +msgstr "" +"нулевое шифрование (нет документа, аналогично [.filename]#rfc2410.txt#)" #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:759 @@ -2518,8 +2521,8 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:772 msgid "" -"DES-CBC with derived IV ([.filename]#draft-ietf-ipsec-ciph-des-" -"derived-01.txt#, draft expired)" +"DES-CBC with derived IV ([.filename]#draft-ietf-ipsec-ciph-des-derived-01." +"txt#, draft expired)" msgstr "" "DES-CBC с производным IV ([.filename]#draft-ietf-ipsec-ciph-des-derived-01." "txt#, черновик истек)" @@ -2572,8 +2575,8 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:787 msgid "" -"HMAC MD5 with 128bit crypto checksum + 64bit replay prevention " -"([.filename]#rfc2085.txt#)" +"HMAC MD5 with 128bit crypto checksum + 64bit replay prevention ([." +"filename]#rfc2085.txt#)" msgstr "" "HMAC MD5 с 128-битной криптографической контрольной суммой + 64-битная " "защита от повторного воспроизведения ([.filename]#rfc2085.txt#)" @@ -2581,8 +2584,8 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:788 msgid "" -"keyed SHA1 with 160bit crypto checksum + 32bit padding " -"([.filename]#rfc1852.txt#)" +"keyed SHA1 with 160bit crypto checksum + 32bit padding ([.filename]#rfc1852." +"txt#)" msgstr "" "SHA1 с ключом и с 160-битной криптографической контрольной суммой + 32-" "битное дополнение ([.filename]#rfc1852.txt#)" @@ -2615,8 +2618,8 @@ "ECN-friendly IPsec tunnel is supported as described in [.filename]#draft-" "ipsec-ecn-00.txt#." msgstr "" -"Поддерживается ECN-совместимый IPsec-туннель, как описано в [.filename" -"]#draft-ipsec-ecn-00.txt#." +"Поддерживается ECN-совместимый IPsec-туннель, как описано в [." +"filename]#draft-ipsec-ecn-00.txt#." #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:801 @@ -2649,12 +2652,12 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:806 msgid "" -"IPsec tunnel implementation can give you three behaviors, by setting " -"net.inet.ipsec.ecn (or net.inet6.ipsec6.ecn) to some value:" +"IPsec tunnel implementation can give you three behaviors, by setting net." +"inet.ipsec.ecn (or net.inet6.ipsec6.ecn) to some value:" msgstr "" "Реализация туннеля IPsec может обеспечить три варианта поведения, в " -"зависимости от значения параметра `net.inet.ipsec.ecn` (или `net.inet6.ipsec6" -".ecn`):" +"зависимости от значения параметра `net.inet.ipsec.ecn` (или `net.inet6." +"ipsec6.ecn`):" #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:808 @@ -2724,10 +2727,8 @@ " inner to outer. is 1, enable ECN CE bit on\n" " set ECN CE bit to 0. the inner.\n" msgstr "" -"ECN allowed copy TOS bits except for ECN use inner TOS bits with " -"some\n" -" CE (masked with 0xfe) from change. if outer ECN CE " -"bit\n" +"ECN allowed copy TOS bits except for ECN use inner TOS bits with some\n" +" CE (masked with 0xfe) from change. if outer ECN CE bit\n" " inner to outer. is 1, enable ECN CE bit on\n" " set ECN CE bit to 0. the inner.\n" @@ -2751,8 +2752,8 @@ "if the other end is very strict about TOS bit, use \"RFC2401\" (sysctl value " "-1)." msgstr "" -"если другая сторона очень строга к биту TOS, используйте \"RFC2401\" (" -"значение sysctl -1)." +"если другая сторона очень строга к биту TOS, используйте " +"\"RFC2401\" (значение sysctl -1)." #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:837 @@ -2772,9 +2773,9 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/ipv6/_index.adoc:843 msgid "" -"http://www.aciri.org/floyd/papers/draft-ipsec-ecn-00.txt[ http://" -"www.aciri.org/floyd/papers/draft-ipsec-ecn-00.txt], RFC2481 (Explicit " -"Congestion Notification), src/sys/netinet6/{ah,esp}_input.c" +"http://www.aciri.org/floyd/papers/draft-ipsec-ecn-00.txt[ http://www.aciri." +"org/floyd/papers/draft-ipsec-ecn-00.txt], RFC2481 (Explicit Congestion " +"Notification), src/sys/netinet6/{ah,esp}_input.c" msgstr "" "http://www.aciri.org/floyd/papers/draft-ipsec-ecn-00.txt[ http://www.aciri." "org/floyd/papers/draft-ipsec-ecn-00.txt], RFC2481 (Явное Уведомление о " diff --git a/documentation/content/ru/books/developers-handbook/kernelbuild/_index.adoc b/documentation/content/ru/books/developers-handbook/kernelbuild/_index.adoc --- a/documentation/content/ru/books/developers-handbook/kernelbuild/_index.adoc +++ b/documentation/content/ru/books/developers-handbook/kernelbuild/_index.adoc @@ -59,7 +59,7 @@ ==== [[kernelbuild-traditional]] -== Построение более быстрым, но менее надежным способом +== Построение более быстрым, но менее надёжным способом Сборка ядра таким способом может быть полезной при работе с кодом ядра и может оказаться быстрее, чем описанная процедура, если в конфигурационном файле ядра были изменены только одна или две опции. С другой стороны, это может привести к неожиданным сбоям при сборке ядра. diff --git a/documentation/content/ru/books/developers-handbook/kernelbuild/_index.po b/documentation/content/ru/books/developers-handbook/kernelbuild/_index.po --- a/documentation/content/ru/books/developers-handbook/kernelbuild/_index.po +++ b/documentation/content/ru/books/developers-handbook/kernelbuild/_index.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" "POT-Creation-Date: 2025-05-01 19:56-0300\n" -"PO-Revision-Date: 2025-06-24 20:10+0000\n" +"PO-Revision-Date: 2025-11-12 04:45+0000\n" "Last-Translator: Vladlen Popolitov \n" "Language-Team: Russian \n" @@ -72,7 +72,7 @@ #: documentation/content/en/books/developers-handbook/kernelbuild/_index.adoc:65 #, no-wrap msgid "Building the Faster but Brittle Way" -msgstr "Построение более быстрым, но менее надежным способом" +msgstr "Построение более быстрым, но менее надёжным способом" #. type: Plain text #: documentation/content/en/books/developers-handbook/kernelbuild/_index.adoc:69 diff --git a/documentation/content/ru/books/developers-handbook/kerneldebug/_index.adoc b/documentation/content/ru/books/developers-handbook/kerneldebug/_index.adoc --- a/documentation/content/ru/books/developers-handbook/kerneldebug/_index.adoc +++ b/documentation/content/ru/books/developers-handbook/kerneldebug/_index.adoc @@ -110,7 +110,7 @@ В случае, если файл с именем [.filename]#vmcore.0# уже существует в [.filename]#/var/crash# (или в каталоге, указанном в параметре `dumpdir`), ядро будет увеличивать завершающее число при каждом сбое, чтобы избежать перезаписи существующего файла [.filename]#vmcore# (например, [.filename]#vmcore.1#). man:savecore[8] всегда создает символическую ссылку с именем [.filename]#vmcore.last# в [.filename]#/var/crash# после сохранения дампа. Эта символическая ссылка может быть использована для определения имени последнего дампа. -Утилита man:crashinfo[8] создаёт текстовый файл, содержащий сводную информацию из полного дампа памяти или минидампа. Если параметр `dumpdev` установлен в man:rc.conf[5], man:crashinfo[8] будет автоматически вызван после man:savecore[8]. Результат сохраняется в файл с именем [.filename]#core.txt.N# в директории `dumpdir`. +Утилита man:crashinfo[8] создаёт текстовый файл, содержащий сводную информацию из полного дампа памяти или минидампа. Если параметр `dumpdev` установлен в man:rc.conf[5], man:crashinfo[8] будет автоматически вызван после man:savecore[8]. Результат сохраняется в файл с именем [.filename]#core.txt.N# в каталоге `dumpdir`. [TIP] ==== @@ -142,7 +142,7 @@ ... .... -После перезагрузки система должна сохранить дамп в [.filename]#/var/crash# вместе с соответствующим отчетом из man:crashinfo[8]. +После перезагрузки система должна сохранить дамп в [.filename]#/var/crash# вместе с соответствующим отчётом из man:crashinfo[8]. [[kerneldebug-gdb]] == Отладка аварийного дампа ядра с помощью `kgdb` @@ -175,7 +175,7 @@ Вы можете отлаживать дамп аварийного завершения, используя исходные коды ядра, так же, как и для любой другой программы. -Этот дамп получен из ядра версии 5.2-BETA, а крах произошел глубоко внутри ядра. Приведенный ниже вывод был изменен для добавления номеров строк слева. Первый трассировочный вывод проверяет указатель инструкции и получает обратную трассировку. Адрес, используемый в строке 41 для команды `list`, является указателем инструкции и может быть найден в строке 17. Большинство разработчиков запросят как минимум эту информацию, если вы не сможете отладить проблему самостоятельно. Однако, если вы решите проблему, убедитесь, что ваш патч попадет в дерево исходников через отчет о проблеме, списки рассылки, или, может быть, у вас есть возможность его закоммитить! +Этот дамп получен из ядра версии 5.2-BETA, а крах произошел глубоко внутри ядра. Приведенный ниже вывод был изменен для добавления номеров строк слева. Первый трассировочный вывод проверяет указатель инструкции и получает обратную трассировку. Адрес, используемый в строке 41 для команды `list`, является указателем инструкции и может быть найден в строке 17. Большинство разработчиков запросят как минимум эту информацию, если вы не сможете отладить проблему самостоятельно. Однако, если вы решите проблему, убедитесь, что ваш патч попадет в дерево исходников через отчёт о проблеме, списки рассылки, или, может быть, у вас есть возможность его закоммитить! [source, bash] .... @@ -577,7 +577,7 @@ [[kerneldebug-deadlocks]] == Отладка взаимоблокировок -Вы можете столкнуться с так называемыми взаимоблокировками — ситуацией, когда система перестает выполнять полезную работу. Чтобы предоставить полезный отчет об ошибке в такой ситуации, используйте man:ddb[4], как описано в предыдущем разделе. Включите в отчет вывод команд `ps` и `trace` для подозрительных процессов. +Вы можете столкнуться с так называемыми взаимоблокировками — ситуацией, когда система перестает выполнять полезную работу. Чтобы предоставить полезный отчёт об ошибке в такой ситуации, используйте man:ddb[4], как описано в предыдущем разделе. Включите в отчёт вывод команд `ps` и `trace` для подозрительных процессов. Если возможно, рассмотрите проведение дополнительного исследования. Приведенный ниже рецепт особенно полезен, если вы подозреваете, что взаимная блокировка происходит на уровне VFS. Добавьте следующие параметры в файл конфигурации ядра. @@ -759,7 +759,7 @@ * `options KDB_TRACE`: изменяет значение по умолчанию системной настройки `debug.trace_on_panic` на 1, что управляет автоматическим выводом трассировки стека при панике. Особенно полезно при использовании с `options KDB_UNATTENDED`, так как позволяет собрать базовую отладочную информацию на последовательной консоли или консоли FireWire, продолжая перезагрузку для восстановления. * `options DDB`: включает поддержку консольного отладчика DDB. Этот интерактивный отладчик работает на активной низкоуровневой консоли системы, включая видеоконсоль, последовательную консоль или консоль FireWire. Он предоставляет базовые встроенные средства отладки, такие как трассировка стека, список процессов и потоков, вывод состояния блокировок, состояния виртуальной памяти, состояния файловой системы и управления ядром памяти. DDB не требует работы программного обеспечения на второй машине или возможности создания дампа памяти или полных символов отладки ядра, а также предоставляет детальную диагностику ядра во время выполнения. Многие ошибки могут быть полностью диагностированы с использованием только вывода DDB. Эта опция зависит от `options KDB`. * `options GDB`: включает поддержку удалённого отладчика GDB, который может работать через последовательный кабель или FireWire. При входе в отладчик можно подключить GDB для проверки содержимого структур, генерации трассировки стека и т.д. Некоторые состояния ядра сложнее исследовать, чем в DDB, который способен автоматически создавать полезные сводки состояния ядра, например, автоматически обходить структуры отладки блокировок или управления памятью ядра, но для этого требуется вторая машина с запущенным отладчиком. С другой стороны, GDB объединяет информацию из исходного кода ядра и полных отладочных символов, знает полные определения структур данных, локальные переменные и поддерживает написание скриптов. Эта опция не требуется для запуска GDB на дампе памяти ядра. Данная опция зависит от `options KDB`. -* `options BREAK_TO_DEBUGGER`, `options ALT_BREAK_TO_DEBUGGER`: позволяют сигналу прерывания или альтернативному сигналу на консоли войти в отладчик. Если система зависает без паники, это полезный способ попасть в отладчик. Из-за текущей блокировки ядра сигнал прерывания, сгенерированный на последовательной консоли, значительно надежнее для входа в отладчик и обычно рекомендуется. Данная опция оказывает незначительное или нулевое влияние на производительность. +* `options BREAK_TO_DEBUGGER`, `options ALT_BREAK_TO_DEBUGGER`: позволяют сигналу прерывания или альтернативному сигналу на консоли войти в отладчик. Если система зависает без паники, это полезный способ попасть в отладчик. Из-за текущей блокировки ядра сигнал прерывания, сгенерированный на последовательной консоли, значительно надёжнее для входа в отладчик и обычно рекомендуется. Данная опция оказывает незначительное или нулевое влияние на производительность. * `options INVARIANTS`: включает в ядро большое количество проверок и тестов во время выполнения, которые постоянно проверяют целостность структур данных ядра и инварианты алгоритмов ядра. Эти тесты могут быть затратными, поэтому по умолчанию не включены, но они помогают обеспечить полезное поведение "fail stop", при котором определённые классы нежелательного поведения попадают в отладчик до возникновения повреждения данных ядра, что упрощает их отладку. Тесты включают в себя очистку памяти и проверку использования после освобождения, что является одним из наиболее значимых источников накладных расходов. Эта опция зависит от `options INVARIANT_SUPPORT`. * `options INVARIANT_SUPPORT`: многие тесты, присутствующие в `options INVARIANTS`, требуют модифицированных структур данных или определения дополнительных символов ядра. * `options WITNESS`: эта опция включает отслеживание и проверку порядка блокировок во время выполнения, что является неоценимым инструментом для диагностики взаимоблокировок. WITNESS поддерживает граф полученных порядков блокировок по типам блокировок и проверяет граф на каждом получении на наличие циклов (явных или неявных). Если цикл обнаружен, на консоль выводится предупреждение и трассировка стека, указывающие на возможное возникновение взаимоблокировки. WITNESS необходим для использования команд DDB `show locks`, `show witness` и `show alllocks`. Эта отладочная опция создает значительную нагрузку на производительность, которую можно несколько уменьшить с помощью `options WITNESS_SKIPSPIN`. Подробная документация доступна в man:witness[4]. diff --git a/documentation/content/ru/books/developers-handbook/kerneldebug/_index.po b/documentation/content/ru/books/developers-handbook/kerneldebug/_index.po --- a/documentation/content/ru/books/developers-handbook/kerneldebug/_index.po +++ b/documentation/content/ru/books/developers-handbook/kerneldebug/_index.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" "POT-Creation-Date: 2025-06-29 21:20+0100\n" -"PO-Revision-Date: 2025-09-05 04:45+0000\n" +"PO-Revision-Date: 2025-11-12 04:45+0000\n" "Last-Translator: Vladlen Popolitov \n" "Language-Team: Russian \n" @@ -278,8 +278,8 @@ "Утилита man:crashinfo[8] создаёт текстовый файл, содержащий сводную " "информацию из полного дампа памяти или минидампа. Если параметр `dumpdev` " "установлен в man:rc.conf[5], man:crashinfo[8] будет автоматически вызван " -"после man:savecore[8]. Результат сохраняется в файл с именем [." -"filename]#core.txt.N# в директории `dumpdir`." +"после man:savecore[8]. Результат сохраняется в файл с именем [.filename]#core" +".txt.N# в каталоге `dumpdir`." #. type: Plain text #: documentation/content/en/books/developers-handbook/kerneldebug/_index.adoc:135 @@ -369,7 +369,7 @@ "along with a matching summary from man:crashinfo[8]." msgstr "" "После перезагрузки система должна сохранить дамп в [.filename]#/var/crash# " -"вместе с соответствующим отчетом из man:crashinfo[8]." +"вместе с соответствующим отчётом из man:crashinfo[8]." #. type: Title == #: documentation/content/en/books/developers-handbook/kerneldebug/_index.adoc:169 @@ -464,7 +464,7 @@ "является указателем инструкции и может быть найден в строке 17. Большинство " "разработчиков запросят как минимум эту информацию, если вы не сможете " "отладить проблему самостоятельно. Однако, если вы решите проблему, " -"убедитесь, что ваш патч попадет в дерево исходников через отчет о проблеме, " +"убедитесь, что ваш патч попадет в дерево исходников через отчёт о проблеме, " "списки рассылки, или, может быть, у вас есть возможность его закоммитить!" #. type: delimited block . 4 @@ -1442,8 +1442,8 @@ msgstr "" "Вы можете столкнуться с так называемыми взаимоблокировками — ситуацией, " "когда система перестает выполнять полезную работу. Чтобы предоставить " -"полезный отчет об ошибке в такой ситуации, используйте man:ddb[4], как " -"описано в предыдущем разделе. Включите в отчет вывод команд `ps` и `trace` " +"полезный отчёт об ошибке в такой ситуации, используйте man:ddb[4], как " +"описано в предыдущем разделе. Включите в отчёт вывод команд `ps` и `trace` " "для подозрительных процессов." #. type: Plain text @@ -2055,7 +2055,7 @@ "сигналу прерывания или альтернативному сигналу на консоли войти в отладчик. " "Если система зависает без паники, это полезный способ попасть в отладчик. Из-" "за текущей блокировки ядра сигнал прерывания, сгенерированный на " -"последовательной консоли, значительно надежнее для входа в отладчик и обычно " +"последовательной консоли, значительно надёжнее для входа в отладчик и обычно " "рекомендуется. Данная опция оказывает незначительное или нулевое влияние на " "производительность." diff --git a/documentation/content/ru/books/developers-handbook/l10n/_index.adoc b/documentation/content/ru/books/developers-handbook/l10n/_index.adoc --- a/documentation/content/ru/books/developers-handbook/l10n/_index.adoc +++ b/documentation/content/ru/books/developers-handbook/l10n/_index.adoc @@ -120,7 +120,7 @@ #ifdef WITHOUT_NLS #define getstr(n) nlsstr[n] #else -#include nl_types.h +#include extern nl_catd catalog; #define getstr(n) catgets(catalog, 1, n, nlsstr[n]) @@ -134,7 +134,7 @@ [.programlisting] .... #ifndef WITHOUT_NLS -#include nl_types.h +#include nl_catd catalog; #endif @@ -176,7 +176,7 @@ [.programlisting] .... -#include err.h +#include ... if (!S_ISDIR(st.st_mode)) errx(1, "argument is not a directory"); @@ -186,8 +186,8 @@ [.programlisting] .... -#include err.h -#include errno.h +#include +#include ... if (!S_ISDIR(st.st_mode)) { errno = ENOTDIR; @@ -201,7 +201,7 @@ [.programlisting] .... -#include err.h +#include ... if ((p = malloc(size)) == NULL) err(1, NULL); diff --git a/documentation/content/ru/books/developers-handbook/l10n/_index.po b/documentation/content/ru/books/developers-handbook/l10n/_index.po --- a/documentation/content/ru/books/developers-handbook/l10n/_index.po +++ b/documentation/content/ru/books/developers-handbook/l10n/_index.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" -"POT-Creation-Date: 2025-05-01 19:56-0300\n" -"PO-Revision-Date: 2025-06-24 04:45+0000\n" +"POT-Creation-Date: 2025-11-08 16:17+0000\n" +"PO-Revision-Date: 2025-11-11 04:45+0000\n" "Last-Translator: Vladlen Popolitov \n" "Language-Team: Russian \n" @@ -138,9 +138,7 @@ #: documentation/content/en/books/developers-handbook/l10n/_index.adoc:83 #, no-wrap msgid "Localized Messages with POSIX.1 Native Language Support (NLS)" -msgstr "" -"Локализованные сообщения с поддержкой родного языка POSIX.1 (NLS — Native " -"Language Support)" +msgstr "Локализованные сообщения с поддержкой родного языка POSIX.1 (NLS — Native Language Support)" #. type: Plain text #: documentation/content/en/books/developers-handbook/l10n/_index.adoc:87 @@ -212,23 +210,21 @@ "localized message. The well-known modifiers from man:printf[3] are accepted:" msgstr "" "Фактические записи сообщений начинаются с номера сообщения, за которым " -"следует локализованное сообщение. Допускаются известные модификаторы из " -"man:printf[3]:" +"следует локализованное сообщение. Допускаются известные модификаторы из man:" +"printf[3]:" #. type: delimited block . 4 #: documentation/content/en/books/developers-handbook/l10n/_index.adoc:112 #, no-wrap msgid "15 \"File not found: %s\\n\"\n" -msgstr "" -"15 \"File not found: %s\\n" -"\"\n" +msgstr "15 \"File not found: %s\\n\"\n" #. type: Plain text #: documentation/content/en/books/developers-handbook/l10n/_index.adoc:118 msgid "" "The language catalog files have to be compiled into a binary form before " -"they can be opened from the program. This conversion is done with the " -"man:gencat[1] utility. Its first argument is the filename of the compiled " +"they can be opened from the program. This conversion is done with the man:" +"gencat[1] utility. Its first argument is the filename of the compiled " "catalog and its further arguments are the input catalogs. The localized " "messages can also be organized into more catalog files and then all of them " "can be processed with man:gencat[1]." @@ -249,8 +245,8 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/l10n/_index.adoc:131 msgid "" -"Using the catalog files is simple. To use the related functions, " -"[.filename]#nl_types.h# must be included. Before using a catalog, it has to " +"Using the catalog files is simple. To use the related functions, [." +"filename]#nl_types.h# must be included. Before using a catalog, it has to " "be opened with man:catopen[3]. The function takes two arguments. The first " "parameter is the name of the installed and compiled catalog. Usually, the " "name of the program is used, such as grep. This name will be used when " @@ -265,11 +261,11 @@ "каталога его нужно открыть с помощью man:catopen[3]. Функция принимает два " "аргумента. Первый параметр — это имя установленного и скомпилированного " "каталога. Обычно используется имя программы, например, grep. Это имя будет " -"использоваться при поиске скомпилированного файла каталога. Вызов " -"man:catopen[3] ищет этот файл в [.filename]#/usr/share/nls/locale/catname# и " -"в [.filename]#/usr/local/share/nls/locale/catname#, где `locale` — " -"установленная локализация, а `catname` — имя обсуждаемого каталога. Второй " -"параметр — это константа, которая может принимать два значения:" +"использоваться при поиске скомпилированного файла каталога. Вызов man:" +"catopen[3] ищет этот файл в [.filename]#/usr/share/nls/locale/catname# и в [." +"filename]#/usr/local/share/nls/locale/catname#, где `locale` — установленная " +"локализация, а `catname` — имя обсуждаемого каталога. Второй параметр — это " +"константа, которая может принимать два значения:" #. type: Plain text #: documentation/content/en/books/developers-handbook/l10n/_index.adoc:133 @@ -317,8 +313,8 @@ "After using the catalog file, it must be closed by calling man:catclose[3], " "which has one argument, the catalog id." msgstr "" -"После использования файла каталога его необходимо закрыть, вызвав " -"man:catclose[3], которая принимает один аргумент — идентификатор каталога." +"После использования файла каталога его необходимо закрыть, вызвав man:" +"catclose[3], которая принимает один аргумент — идентификатор каталога." #. type: Title === #: documentation/content/en/books/developers-handbook/l10n/_index.adoc:144 @@ -353,12 +349,12 @@ "#ifdef WITHOUT_NLS\n" "#define getstr(n)\t nlsstr[n]\n" "#else\n" -"#include nl_types.h\n" +"#include \n" msgstr "" "#ifdef WITHOUT_NLS\n" "#define getstr(n)\t nlsstr[n]\n" "#else\n" -"#include nl_types.h\n" +"#include \n" #. type: delimited block . 4 #: documentation/content/en/books/developers-handbook/l10n/_index.adoc:160 @@ -392,12 +388,12 @@ #, no-wrap msgid "" "#ifndef WITHOUT_NLS\n" -"#include nl_types.h\n" +"#include \n" "nl_catd\t catalog;\n" "#endif\n" msgstr "" "#ifndef WITHOUT_NLS\n" -"#include nl_types.h\n" +"#include \n" "nl_catd\t catalog;\n" "#endif\n" @@ -498,12 +494,12 @@ #: documentation/content/en/books/developers-handbook/l10n/_index.adoc:216 #, no-wrap msgid "" -"#include err.h\n" +"#include \n" "...\n" "if (!S_ISDIR(st.st_mode))\n" "\terrx(1, \"argument is not a directory\");\n" msgstr "" -"#include err.h\n" +"#include \n" "...\n" "if (!S_ISDIR(st.st_mode))\n" "\terrx(1, \"argument is not a directory\");\n" @@ -521,16 +517,16 @@ #: documentation/content/en/books/developers-handbook/l10n/_index.adoc:229 #, no-wrap msgid "" -"#include err.h\n" -"#include errno.h\n" +"#include \n" +"#include \n" "...\n" "if (!S_ISDIR(st.st_mode)) {\n" "\terrno = ENOTDIR;\n" "\terr(1, NULL);\n" "}\n" msgstr "" -"#include err.h\n" -"#include errno.h\n" +"#include \n" +"#include \n" "...\n" "if (!S_ISDIR(st.st_mode)) {\n" "\terrno = ENOTDIR;\n" @@ -567,12 +563,12 @@ #: documentation/content/en/books/developers-handbook/l10n/_index.adoc:243 #, no-wrap msgid "" -"#include err.h\n" +"#include \n" "...\n" "if ((p = malloc(size)) == NULL)\n" "\terr(1, NULL);\n" msgstr "" -"#include err.h\n" +"#include \n" "...\n" "if ((p = malloc(size)) == NULL)\n" "\terr(1, NULL);\n" @@ -590,8 +586,8 @@ "catalogs and installing them to the proper location. In order to simplify " "this process even more, [.filename]#bsd.nls.mk# introduces some macros. It " "is not necessary to include [.filename]#bsd.nls.mk# explicitly, it is pulled " -"in from the common Makefiles, such as [.filename]#bsd.prog.mk# or " -"[.filename]#bsd.lib.mk#." +"in from the common Makefiles, such as [.filename]#bsd.prog.mk# or [." +"filename]#bsd.lib.mk#." msgstr "" "Использование файлов каталогов требует нескольких повторяемых шагов, таких " "как компиляция каталогов и их установка в нужное место. Чтобы ещё больше " @@ -647,14 +643,14 @@ "catalog files also follow the naming convention mentioned before. It can be " "overridden by setting the `NLSNAME` variable. There are other options to " "fine tune the processing of the catalog files but usually it is not needed, " -"thus they are not described here. For further information on " -"[.filename]#bsd.nls.mk#, please refer to the file itself, it is short and " -"easy to understand." +"thus they are not described here. For further information on [." +"filename]#bsd.nls.mk#, please refer to the file itself, it is short and easy " +"to understand." msgstr "" "Обычно файлы каталогов размещаются в подкаталоге [.filename]#nls#, и это " "поведение по умолчанию для [.filename]#bsd.nls.mk#. Однако можно " -"переопределить расположение каталогов с помощью переменной `NLSSRCDIR` " -"man:make[1]. Имя по умолчанию для предварительно скомпилированных файлов " +"переопределить расположение каталогов с помощью переменной `NLSSRCDIR` man:" +"make[1]. Имя по умолчанию для предварительно скомпилированных файлов " "каталогов также следует упомянутому ранее соглашению об именовании. Его " "можно переопределить, установив переменную `NLSNAME`. Существуют и другие " "параметры для точной настройки обработки файлов каталогов, но обычно в этом " diff --git a/documentation/content/ru/books/developers-handbook/secure/_index.adoc b/documentation/content/ru/books/developers-handbook/secure/_index.adoc --- a/documentation/content/ru/books/developers-handbook/secure/_index.adoc +++ b/documentation/content/ru/books/developers-handbook/secure/_index.adoc @@ -66,9 +66,9 @@ [[secure-bufferov]] == Переполнение буфера -Переполнение буфера существовало с самых истоков архитектуры фон Неймана crossref:bibliography[cod,1]. Впервые оно получило широкую известность в 1988 году благодаря червю Морриса. К сожалению, эта базовая атака остаётся эффективной и по сей день. Наиболее распространённый тип атаки с переполнением буфера основан на повреждении стека. +Переполнение буфера существовало с самых истоков архитектуры фон Неймана crossref:bibliography[COD,1]. Впервые оно получило широкую известность в 1988 году благодаря червю Морриса. К сожалению, эта базовая атака остаётся эффективной и по сей день. Наиболее распространённый тип атаки с переполнением буфера основан на повреждении стека. -Большинство современных компьютерных систем используют стек для передачи аргументов процедурам и хранения локальных переменных. Стек — это буфер типа "последним пришёл — первым ушёл" (LIFO) в верхней области памяти процесса. Когда программа вызывает функцию, создаётся новый "стековый кадр". Этот стековый кадр состоит из аргументов, переданных функции, а также динамического количества места для локальных переменных. "Указатель стека" — это регистр, который содержит текущее местоположение вершины стека. Поскольку это значение постоянно меняется по мере добавления новых значений на вершину стека, многие реализации также предоставляют "указатель кадра", который располагается вблизи начала стекового кадра, чтобы локальные переменные могли легче адресоваться относительно этого значения. crossref:bibliography[cod,1] Адрес возврата для вызовов функций также хранится в стеке, и это является причиной эксплойтов переполнения стека, поскольку переполнение локальной переменной в функции может перезаписать адрес возврата этой функции, потенциально позволяя злоумышленнику выполнить любой код по своему усмотрению. +Большинство современных компьютерных систем используют стек для передачи аргументов процедурам и хранения локальных переменных. Стек — это буфер типа "последним пришёл — первым ушёл" (LIFO) в верхней области памяти процесса. Когда программа вызывает функцию, создаётся новый "стековый кадр". Этот стековый кадр состоит из аргументов, переданных функции, а также динамического количества места для локальных переменных. "Указатель стека" — это регистр, который содержит текущее местоположение вершины стека. Поскольку это значение постоянно меняется по мере добавления новых значений на вершину стека, многие реализации также предоставляют "указатель кадра", который располагается вблизи начала стекового кадра, чтобы локальные переменные могли легче адресоваться относительно этого значения. crossref:bibliography[COD,1] Адрес возврата для вызовов функций также хранится в стеке, и это является причиной эксплойтов переполнения стека, поскольку переполнение локальной переменной в функции может перезаписать адрес возврата этой функции, потенциально позволяя злоумышленнику выполнить любой код по своему усмотрению. Хотя атаки на стек являются наиболее распространенными, также возможно переполнение стека с помощью атаки на кучу (malloc/free). @@ -216,7 +216,7 @@ [[secure-trust]] == Доверие -Приложение никогда не должно предполагать, что окружение пользователя является предсказуемым. Это включает (но не ограничивается): пользовательский ввод, сигналы, переменные окружения, ресурсы, IPC, mmaps, текущую рабочую директорию файловой системы, файловые дескрипторы, количество открытых файлов и т.д. +Приложение никогда не должно предполагать, что окружение пользователя является предсказуемым. Это включает (но не ограничивается): пользовательский ввод, сигналы, переменные окружения, ресурсы, IPC, mmaps, текущий рабочий каталог файловой системы, файловые дескрипторы, количество открытых файлов и т.д. Никогда не следует предполагать, что можно отловить все виды некорректных входных данных, которые может предоставить пользователь. Вместо этого ваше приложение должно использовать позитивную фильтрацию, разрешая только определённое подмножество входных данных, которые вы считаете безопасными. Некорректная проверка данных стала причиной многих уязвимостей, особенно в CGI-скриптах во всемирной паутине. Для имён файлов необходимо быть особенно осторожными с путями ("../", "/"), символическими ссылками и escape-символами оболочки. diff --git a/documentation/content/ru/books/developers-handbook/secure/_index.po b/documentation/content/ru/books/developers-handbook/secure/_index.po --- a/documentation/content/ru/books/developers-handbook/secure/_index.po +++ b/documentation/content/ru/books/developers-handbook/secure/_index.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" -"POT-Creation-Date: 2025-05-01 19:56-0300\n" -"PO-Revision-Date: 2025-10-29 04:45+0000\n" +"POT-Creation-Date: 2025-11-08 16:17+0000\n" +"PO-Revision-Date: 2025-11-12 04:45+0000\n" "Last-Translator: Vladlen Popolitov \n" "Language-Team: Russian \n" @@ -63,11 +63,11 @@ #: documentation/content/en/books/developers-handbook/secure/_index.adoc:64 msgid "" "Writing secure applications takes a very scrutinous and pessimistic outlook " -"on life. Applications should be run with the principle of \"least " -"privilege\" so that no process is ever running with more than the bare " -"minimum access that it needs to accomplish its function. Previously tested " -"code should be reused whenever possible to avoid common mistakes that others " -"may have already fixed." +"on life. Applications should be run with the principle of \"least privilege" +"\" so that no process is ever running with more than the bare minimum access " +"that it needs to accomplish its function. Previously tested code should be " +"reused whenever possible to avoid common mistakes that others may have " +"already fixed." msgstr "" "Написание безопасных приложений требует очень внимательного и " "пессимистичного взгляда на жизнь. Приложения должны работать по принципу " @@ -102,13 +102,13 @@ #: documentation/content/en/books/developers-handbook/secure/_index.adoc:76 msgid "" "Buffer Overflows have been around since the very beginnings of the von " -"Neumann crossref:bibliography[cod,1] architecture. They first gained " +"Neumann crossref:bibliography[COD,1] architecture. They first gained " "widespread notoriety in 1988 with the Morris Internet worm. Unfortunately, " "the same basic attack remains effective today. By far the most common type " "of buffer overflow attack is based on corrupting the stack." msgstr "" "Переполнение буфера существовало с самых истоков архитектуры фон Неймана " -"crossref:bibliography[cod,1]. Впервые оно получило широкую известность в " +"crossref:bibliography[COD,1]. Впервые оно получило широкую известность в " "1988 году благодаря червю Морриса. К сожалению, эта базовая атака остаётся " "эффективной и по сей день. Наиболее распространённый тип атаки с " "переполнением буфера основан на повреждении стека." @@ -126,7 +126,7 @@ "as new values are pushed onto the top of the stack, many implementations " "also provide a \"frame pointer\" that is located near the beginning of a " "stack frame so that local variables can more easily be addressed relative to " -"this value. crossref:bibliography[cod,1] The return address for function " +"this value. crossref:bibliography[COD,1] The return address for function " "calls is also stored on the stack, and this is the cause of stack-overflow " "exploits since overflowing a local variable in a function can overwrite the " "return address of that function, potentially allowing a malicious user to " @@ -143,7 +143,7 @@ "на вершину стека, многие реализации также предоставляют \"указатель кадра\", " "который располагается вблизи начала стекового кадра, чтобы локальные " "переменные могли легче адресоваться относительно этого значения. " -"crossref:bibliography[cod,1] Адрес возврата для вызовов функций также " +"crossref:bibliography[COD,1] Адрес возврата для вызовов функций также " "хранится в стеке, и это является причиной эксплойтов переполнения стека, " "поскольку переполнение локальной переменной в функции может перезаписать " "адрес возврата этой функции, потенциально позволяя злоумышленнику выполнить " @@ -301,9 +301,7 @@ #: documentation/content/en/books/developers-handbook/secure/_index.adoc:150 #, no-wrap msgid " while ((buffer[i++] = getchar()) != '\\n') {};\n" -msgstr "" -" while ((buffer[i++] = getchar()) != '\\n" -"') {};\n" +msgstr " while ((buffer[i++] = getchar()) != '\\n') {};\n" #. type: delimited block . 4 #: documentation/content/en/books/developers-handbook/secure/_index.adoc:157 @@ -319,8 +317,7 @@ " i=1;\n" " manipulate(buffer);\n" " i=2;\n" -" printf(\"The value of i is : %d\\n" -"\",i);\n" +" printf(\"The value of i is : %d\\n\",i);\n" " return 0;\n" "}\n" @@ -375,8 +372,9 @@ "также используется неодинаково между `strncpy` и `strncat`, что может " "сбивать программистов с толку относительно их правильного использования. " "Также наблюдается значительное снижение производительности по сравнению с " -"`strcpy` при копировании короткой строки в большой буфер, поскольку `strncpy`" -" заполняет оставшееся пространство до указанного размера символами NUL." +"`strcpy` при копировании короткой строки в большой буфер, поскольку " +"`strncpy` заполняет оставшееся пространство до указанного размера символами " +"NUL." #. type: Plain text #: documentation/content/en/books/developers-handbook/secure/_index.adoc:178 @@ -414,12 +412,12 @@ #: documentation/content/en/books/developers-handbook/secure/_index.adoc:186 msgid "" "ProPolice is one such compiler feature, and is integrated into man:gcc[1] " -"versions 4.1 and later. It replaces and extends the earlier StackGuard " -"man:gcc[1] extension." +"versions 4.1 and later. It replaces and extends the earlier StackGuard man:" +"gcc[1] extension." msgstr "" -"ProPolice — это одна из таких функций компилятора, интегрированная в " -"man:gcc[1] версий 4.1 и выше. Она заменяет и расширяет более раннее " -"расширение StackGuard для man:gcc[1]." +"ProPolice — это одна из таких функций компилятора, интегрированная в man:" +"gcc[1] версий 4.1 и выше. Она заменяет и расширяет более раннее расширение " +"StackGuard для man:gcc[1]." #. type: Plain text #: documentation/content/en/books/developers-handbook/secure/_index.adoc:190 @@ -570,8 +568,8 @@ "effect until you `chdir()` into your new environment. It should also be " "noted that a process can easily break out of a chroot environment if it has " "root privilege. This could be accomplished by creating device nodes to read " -"kernel memory, attaching a debugger to a process outside of the " -"man:chroot[8] environment, or in many other creative ways." +"kernel memory, attaching a debugger to a process outside of the man:" +"chroot[8] environment, or in many other creative ways." msgstr "" "Традиционный метод ограничения процесса — это системный вызов `chroot()`. " "Этот системный вызов изменяет корневой каталог, от которого ссылаются все " @@ -647,8 +645,8 @@ "Manipulate credential with `setuid`, `seteuid`, `setgid`, `setegid`, " "`setgroups`, `setreuid`, `setregid`, `setlogin`" msgstr "" -"Управлять учетными данными с помощью `setuid`, `seteuid`, `setgid`, `setegid`" -", `setgroups`, `setreuid`, `setregid`, `setlogin`" +"Управлять учетными данными с помощью `setuid`, `seteuid`, `setgid`, " +"`setegid`, `setgroups`, `setreuid`, `setregid`, `setlogin`" #. type: Plain text #: documentation/content/en/books/developers-handbook/secure/_index.adoc:248 @@ -726,9 +724,9 @@ "[TrustedBSD] project. Some of the initial work has been committed to " "FreeBSD-CURRENT (cap_set_proc(3))." msgstr "" -"Это работа в процессе, и она является основным направлением проекта " -"http://www.trustedbsd.org/[TrustedBSD]. Некоторые первоначальные наработки " -"были добавлены в FreeBSD-CURRENT (cap_set_proc(3))." +"Это работа в процессе, и она является основным направлением проекта http://" +"www.trustedbsd.org/[TrustedBSD]. Некоторые первоначальные наработки были " +"добавлены в FreeBSD-CURRENT (cap_set_proc(3))." #. type: Title == #: documentation/content/en/books/developers-handbook/secure/_index.adoc:266 @@ -747,8 +745,8 @@ "Приложение никогда не должно предполагать, что окружение пользователя " "является предсказуемым. Это включает (но не ограничивается): " "пользовательский ввод, сигналы, переменные окружения, ресурсы, IPC, mmaps, " -"текущую рабочую директорию файловой системы, файловые дескрипторы, " -"количество открытых файлов и т.д." +"текущий рабочий каталог файловой системы, файловые дескрипторы, количество " +"открытых файлов и т.д." #. type: Plain text #: documentation/content/en/books/developers-handbook/secure/_index.adoc:275 diff --git a/documentation/content/ru/books/developers-handbook/sockets/_index.adoc b/documentation/content/ru/books/developers-handbook/sockets/_index.adoc --- a/documentation/content/ru/books/developers-handbook/sockets/_index.adoc +++ b/documentation/content/ru/books/developers-handbook/sockets/_index.adoc @@ -393,7 +393,7 @@ Предположим, вы написали программу на C, использующую сокеты. Вы знаете, что она будет работать на Pentium(R), поэтому вводите все константы в обратном порядке и приводите их к _порядку байтов сети_. Она работает хорошо. -Затем, однажды, ваш надежный старый Pentium(R) превращается в ржавый старый Pentium(R). Вы заменяете его системой, у которой _порядок байтов хоста_ совпадает с _сетевым порядком байтов_. Вам нужно перекомпилировать все ваше программное обеспечение. Все ваши программы продолжают работать хорошо, кроме той одной программы, которую вы написали. +Затем, однажды, ваш надёжный старый Pentium(R) превращается в ржавый старый Pentium(R). Вы заменяете его системой, у которой _порядок байтов хоста_ совпадает с _сетевым порядком байтов_. Вам нужно перекомпилировать все ваше программное обеспечение. Все ваши программы продолжают работать хорошо, кроме той одной программы, которую вы написали. Вы уже забыли, что принудительно задали все свои константы противоположными _порядку хоста_. Вы проводите некоторое время, яростно рвя на себе волосы, взывая ко всем известным вам богам (и к некоторым, которых вы придумали), стуча нерф-битой по монитору и выполняя прочие традиционные ритуалы в попытке понять, почему то, что работало так хорошо, внезапно перестало работать вообще. diff --git a/documentation/content/ru/books/developers-handbook/sockets/_index.po b/documentation/content/ru/books/developers-handbook/sockets/_index.po --- a/documentation/content/ru/books/developers-handbook/sockets/_index.po +++ b/documentation/content/ru/books/developers-handbook/sockets/_index.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" "POT-Creation-Date: 2025-05-01 19:56-0300\n" -"PO-Revision-Date: 2025-09-05 04:45+0000\n" +"PO-Revision-Date: 2025-11-12 04:45+0000\n" "Last-Translator: Vladlen Popolitov \n" "Language-Team: Russian \n" @@ -1370,7 +1370,7 @@ "order_. You need to recompile all your software. All of your software " "continues to perform well, except the one program you wrote." msgstr "" -"Затем, однажды, ваш надежный старый Pentium(R) превращается в ржавый старый " +"Затем, однажды, ваш надёжный старый Pentium(R) превращается в ржавый старый " "Pentium(R). Вы заменяете его системой, у которой _порядок байтов хоста_ " "совпадает с _сетевым порядком байтов_. Вам нужно перекомпилировать все ваше " "программное обеспечение. Все ваши программы продолжают работать хорошо, " diff --git a/documentation/content/ru/books/developers-handbook/testing/_index.adoc b/documentation/content/ru/books/developers-handbook/testing/_index.adoc --- a/documentation/content/ru/books/developers-handbook/testing/_index.adoc +++ b/documentation/content/ru/books/developers-handbook/testing/_index.adoc @@ -106,7 +106,7 @@ == Скрипт index.cgi -Скрипт [.filename]#index.cgi# генерирует HTML-сводку журналов tinderbox и tbmaster. Хотя изначально он предназначался для использования в качестве CGI-скрипта, как следует из его названия, этот скрипт также может быть запущен из командной строки или из задачи man:cron[8], в таком случае он будет искать логи в директории, где расположен сам скрипт. Он автоматически определяет контекст, генерируя HTTP-заголовки при запуске в качестве CGI-скрипта. Он соответствует стандартам XHTML и использует CSS для стилизации. +Скрипт [.filename]#index.cgi# генерирует HTML-сводку журналов tinderbox и tbmaster. Хотя изначально он предназначался для использования в качестве CGI-скрипта, как следует из его названия, этот скрипт также может быть запущен из командной строки или из задачи man:cron[8], в таком случае он будет искать логи в каталоге, где расположен сам скрипт. Он автоматически определяет контекст, генерируя HTTP-заголовки при запуске в качестве CGI-скрипта. Он соответствует стандартам XHTML и использует CSS для стилизации. Скрипт начинает работу в блоке `main()`, пытаясь проверить, что он выполняется на официальном сайте Tinderbox. Если это не так, создается страница с указанием, что это не официальный сайт, и предоставляется URL официального сайта. diff --git a/documentation/content/ru/books/developers-handbook/testing/_index.po b/documentation/content/ru/books/developers-handbook/testing/_index.po --- a/documentation/content/ru/books/developers-handbook/testing/_index.po +++ b/documentation/content/ru/books/developers-handbook/testing/_index.po @@ -6,7 +6,7 @@ msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" "POT-Creation-Date: 2025-05-01 19:56-0300\n" -"PO-Revision-Date: 2025-06-27 04:45+0000\n" +"PO-Revision-Date: 2025-11-12 04:45+0000\n" "Last-Translator: Vladlen Popolitov \n" "Language-Team: Russian \n" @@ -479,7 +479,7 @@ "tbmaster. Хотя изначально он предназначался для использования в качестве CGI-" "скрипта, как следует из его названия, этот скрипт также может быть запущен " "из командной строки или из задачи man:cron[8], в таком случае он будет " -"искать логи в директории, где расположен сам скрипт. Он автоматически " +"искать логи в каталоге, где расположен сам скрипт. Он автоматически " "определяет контекст, генерируя HTTP-заголовки при запуске в качестве CGI-" "скрипта. Он соответствует стандартам XHTML и использует CSS для стилизации." diff --git a/documentation/content/ru/books/developers-handbook/tools/_index.adoc b/documentation/content/ru/books/developers-handbook/tools/_index.adoc --- a/documentation/content/ru/books/developers-handbook/tools/_index.adoc +++ b/documentation/content/ru/books/developers-handbook/tools/_index.adoc @@ -86,7 +86,7 @@ Вот список интерпретаторов, доступных в Коллекции портов FreeBSD, с кратким обзором некоторых наиболее популярных интерпретируемых языков. -Инструкции по получению и установке приложений из Коллекции портов можно найти в extref:{handbook}[разделе Порты, ports-using] руководства. +Инструкции по получению и установке приложений из Коллекции портов можно найти в extref:{handbook}ports[разделе Порты, ports-using] руководства. BASIC:: Сокращение от Beginner's All-purpose Symbolic Instruction Code. Разработан в 1950-х годах для обучения студентов университетов программированию и поставлялся с каждым уважающим себя персональным компьютером в 1980-х. BASIC — первый язык программирования для многих программистов. Он также является основой для Visual Basic. @@ -614,7 +614,7 @@ } .... -Эта программа устанавливает значение `i` равным `5` и передает его в функцию `bazz()`, которая выводит переданное число. +Эта программа устанавливает значение `i` равным `5` и передаёт его в функцию `bazz()`, которая выводит переданное число. Компиляция и запуск программы отображают @@ -777,7 +777,7 @@ [NOTE] ==== -Описанная функциональность доступна начиная с версии LLDB 12.0.0. Пользователи релизов FreeBSD, содержащих более раннюю версию LLDB, могут воспользоваться снимком из extref:{handbook}[портов или пакетов, ports-using], как package:devel/llvm-devel[]. +Описанная функциональность доступна начиная с версии LLDB 12.0.0. Пользователи релизов FreeBSD, содержащих более раннюю версию LLDB, могут воспользоваться снимком из extref:{handbook}ports[портов или пакетов, ports-using], как package:devel/llvm-devel[]. ==== Начиная с LLDB 12.0.0, удалённая отладка поддерживается в FreeBSD. Это означает, что `lldb-server` может быть запущен для отладки программы на одном узле, в то время как интерактивный клиент `lldb` подключается к нему с другого. @@ -862,7 +862,7 @@ } .... -Эта программа устанавливает значение `i` равным `5` и передает его в функцию `bazz()`, которая выводит переданное число. +Эта программа устанавливает значение `i` равным `5` и передаёт его в функцию `bazz()`, которая выводит переданное число. Компиляция и запуск программы отображают diff --git a/documentation/content/ru/books/developers-handbook/tools/_index.po b/documentation/content/ru/books/developers-handbook/tools/_index.po --- a/documentation/content/ru/books/developers-handbook/tools/_index.po +++ b/documentation/content/ru/books/developers-handbook/tools/_index.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" -"POT-Creation-Date: 2025-06-29 21:20+0100\n" -"PO-Revision-Date: 2025-10-15 04:45+0000\n" +"POT-Creation-Date: 2025-11-08 16:17+0000\n" +"PO-Revision-Date: 2025-11-12 04:45+0000\n" "Last-Translator: Vladlen Popolitov \n" "Language-Team: Russian \n" @@ -221,11 +221,11 @@ #: documentation/content/en/books/developers-handbook/tools/_index.adoc:109 msgid "" "Instructions on how to get and install applications from the Ports " -"Collection can be found in the extref:{handbook}[Ports section, ports-using] " -"of the handbook." +"Collection can be found in the extref:{handbook}ports[Ports section, ports-" +"using] of the handbook." msgstr "" "Инструкции по получению и установке приложений из Коллекции портов можно " -"найти в extref:{handbook}[разделе Порты, ports-using] руководства." +"найти в extref:{handbook}ports[разделе Порты, ports-using] руководства." #. type: Labeled list #: documentation/content/en/books/developers-handbook/tools/_index.adoc:110 @@ -276,9 +276,9 @@ msgstr "" "Язык, разработанный в конце 1950-х годов как альтернатива популярным в то " "время языкам для «численных расчётов». В отличие от них, Lisp основан на " -"списках; фактически, название является сокращением от «List Processing» (" -"обработка списков). Он очень популярен в кругах, связанных с ИИ (" -"искусственным интеллектом)." +"списках; фактически, название является сокращением от «List " +"Processing» (обработка списков). Он очень популярен в кругах, связанных с ИИ " +"(искусственным интеллектом)." #. type: Plain text #: documentation/content/en/books/developers-handbook/tools/_index.adoc:123 @@ -353,8 +353,8 @@ "lang/mit-scheme[] and the SCM Scheme Interpreter in package:lang/scm[]." msgstr "" "Схема доступна из Коллекции Портов как package:lang/elk[] для Интерпретатора " -"Elk Scheme. Интерпретатор MIT Scheme можно найти в package:lang/mit-scheme[]" -", а Интерпретатор SCM Scheme — в package:lang/scm[]." +"Elk Scheme. Интерпретатор MIT Scheme можно найти в package:lang/mit-" +"scheme[], а Интерпретатор SCM Scheme — в package:lang/scm[]." #. type: Labeled list #: documentation/content/en/books/developers-handbook/tools/_index.adoc:141 @@ -507,8 +507,8 @@ "операционную систему! Это также полезно, если требуется написать очень " "эффективный код, так как компилятор может не спешить и оптимизировать код, " "что было бы неприемлемо в интерпретаторе. Более того, распространение " -"программы, написанной для компилятора, обычно проще, чем для интерпретатора —" -" можно просто предоставить копию исполняемого файла, предполагая, что у " +"программы, написанной для компилятора, обычно проще, чем для интерпретатора " +"— можно просто предоставить копию исполняемого файла, предполагая, что у " "пользователя та же операционная система, что и у вас." #. type: Plain text @@ -759,8 +759,8 @@ "filename]#foobar.o#. This can be linked together with other object files " "into an executable." msgstr "" -"Это создаст _объектный файл_ (не исполняемый) с именем [.filename]#foobar.o#" -". Его можно скомпоновать с другими объектными файлами в исполняемый файл." +"Это создаст _объектный файл_ (не исполняемый) с именем [.filename]#foobar." +"o#. Его можно скомпоновать с другими объектными файлами в исполняемый файл." #. type: Labeled list #: documentation/content/en/books/developers-handbook/tools/_index.adoc:252 @@ -1028,9 +1028,7 @@ #: documentation/content/en/books/developers-handbook/tools/_index.adoc:337 #, no-wrap msgid "I compiled a file called foobar.c and I cannot find an executable called foobar. Where has it gone?" -msgstr "" -"Я скомпилировал файл с именем foobar.c и не могу найти исполняемый файл с " -"именем foobar. Куда он пропал?" +msgstr "Я скомпилировал файл с именем foobar.c и не могу найти исполняемый файл с именем foobar. Куда он пропал?" #. type: Plain text #: documentation/content/en/books/developers-handbook/tools/_index.adoc:341 @@ -1051,10 +1049,7 @@ #: documentation/content/en/books/developers-handbook/tools/_index.adoc:347 #, no-wrap msgid "OK, I have an executable called foobar, I can see it when I run ls, but when I type in foobar at the command prompt it tells me there is no such file. Why can it not find it?" -msgstr "" -"Хорошо, у меня есть исполняемый файл с именем foobar, я вижу его при " -"выполнении команды ls, но когда я ввожу foobar в командной строке, система " -"сообщает, что такого файла нет. Почему он не может его найти?" +msgstr "Хорошо, у меня есть исполняемый файл с именем foobar, я вижу его при выполнении команды ls, но когда я ввожу foobar в командной строке, система сообщает, что такого файла нет. Почему он не может его найти?" #. type: Plain text #: documentation/content/en/books/developers-handbook/tools/_index.adoc:351 @@ -1073,9 +1068,7 @@ #: documentation/content/en/books/developers-handbook/tools/_index.adoc:352 #, no-wrap msgid "I called my executable test, but nothing happens when I run it. What is going on?" -msgstr "" -"Я назвал свой исполняемый файл test, но при запуске ничего не происходит. В " -"чем дело?" +msgstr "Я назвал свой исполняемый файл test, но при запуске ничего не происходит. В чем дело?" #. type: Plain text #: documentation/content/en/books/developers-handbook/tools/_index.adoc:356 @@ -1103,9 +1096,7 @@ #: documentation/content/en/books/developers-handbook/tools/_index.adoc:364 #, no-wrap msgid "I compiled my program and it seemed to run all right at first, then there was an error and it said something about core dumped. What does that mean?" -msgstr "" -"Я скомпилировал свою программу, и сначала она работала нормально, но потом " -"произошла ошибка, и было сообщение о core dumped. Что это значит?" +msgstr "Я скомпилировал свою программу, и сначала она работала нормально, но потом произошла ошибка, и было сообщение о core dumped. Что это значит?" #. type: Plain text #: documentation/content/en/books/developers-handbook/tools/_index.adoc:368 @@ -1134,16 +1125,14 @@ "Use a debugger to analyze the core (see crossref:tools[debugging, " "Debugging])." msgstr "" -"Используйте отладчик для анализа образа памяти (см. crossref:tools[" -"debugging, Отладка])." +"Используйте отладчик для анализа образа памяти (см. crossref:" +"tools[debugging, Отладка])." #. type: Title ==== #: documentation/content/en/books/developers-handbook/tools/_index.adoc:373 #, no-wrap msgid "When my program dumped core, it said something about a segmentation fault. What is that?" -msgstr "" -"Когда моя программа сбросила core, она сообщила что-то о segmentation fault. " -"Что это?" +msgstr "Когда моя программа сбросила core, она сообщила что-то о segmentation fault. Что это?" #. type: Plain text #: documentation/content/en/books/developers-handbook/tools/_index.adoc:377 @@ -1294,10 +1283,7 @@ #: documentation/content/en/books/developers-handbook/tools/_index.adoc:436 #, no-wrap msgid "Sometimes when I get a core dump it says bus error. It says in my UNIX(R) book that this means a hardware problem, but the computer still seems to be working. Is this true?" -msgstr "" -"Иногда при получении дампа памяти я вижу сообщение ошибки шины (bus error). " -"В моей книге по UNIX(R) сказано, что это означает аппаратную проблему, но " -"компьютер продолжает работать. Это правда?" +msgstr "Иногда при получении дампа памяти я вижу сообщение ошибки шины (bus error). В моей книге по UNIX(R) сказано, что это означает аппаратную проблему, но компьютер продолжает работать. Это правда?" #. type: Plain text #: documentation/content/en/books/developers-handbook/tools/_index.adoc:440 @@ -1314,10 +1300,7 @@ #: documentation/content/en/books/developers-handbook/tools/_index.adoc:441 #, no-wrap msgid "This dumping core business sounds as though it could be quite useful, if I can make it happen when I want to. Can I do this, or do I have to wait until there is an error?" -msgstr "" -"Этот процесс создания дампа памяти звучит довольно полезно, если я могу " -"запускать его по своему желанию. Могу ли я это сделать, или нужно ждать " -"возникновения ошибки?" +msgstr "Этот процесс создания дампа памяти звучит довольно полезно, если я могу запускать его по своему желанию. Могу ли я это сделать, или нужно ждать возникновения ошибки?" #. type: Plain text #: documentation/content/en/books/developers-handbook/tools/_index.adoc:444 @@ -1492,8 +1475,8 @@ "Эта программа называется `make`. Она читает файл, называемый _makefile_, " "который указывает, как различные файлы зависят друг от друга, и определяет, " "какие файлы нужно перекомпилировать, а какие нет. Например, правило может " -"звучать так: «если [.filename]#fromboz.o# старше, чем [.filename]#fromboz.c#" -", значит, кто-то изменил [.filename]#fromboz.c#, и его нужно " +"звучать так: «если [.filename]#fromboz.o# старше, чем [.filename]#fromboz." +"c#, значит, кто-то изменил [.filename]#fromboz.c#, и его нужно " "перекомпилировать». В makefile также содержатся правила, указывающие make, " "_как_ именно перекомпилировать исходный файл, что делает эту программу " "гораздо более мощным инструментом." @@ -1560,10 +1543,10 @@ "читает эту строку, он проверяет, существует ли файл [.filename]#foo#; если " "он существует, программа сравнивает время последнего изменения файла [." "filename]#foo# с временем последнего изменения файла [.filename]#foo.c#. " -"Если файл [.filename]#foo# не существует или старше файла [.filename]#foo.c#" -", программа смотрит на строку создания, чтобы выяснить, что делать. Другими " -"словами, это правило для определения, когда файл [.filename]#foo.c# нужно " -"перекомпилировать." +"Если файл [.filename]#foo# не существует или старше файла [.filename]#foo." +"c#, программа смотрит на строку создания, чтобы выяснить, что делать. " +"Другими словами, это правило для определения, когда файл [.filename]#foo.c# " +"нужно перекомпилировать." #. type: Plain text #: documentation/content/en/books/developers-handbook/tools/_index.adoc:530 @@ -1889,8 +1872,8 @@ "being compiled on and which optional UNIX(R) features are present-this is " "where they are given the information in the FreeBSD ports scenario)." msgstr "" -"Любая необходимая специальная настройка для исходного кода выполнена. (" -"Многие дистрибутивы программ UNIX(R) пытаются определить, на какой версии " +"Любая необходимая специальная настройка для исходного кода выполнена. " +"(Многие дистрибутивы программ UNIX(R) пытаются определить, на какой версии " "UNIX(R) они компилируются и какие дополнительные функции UNIX(R) доступны — " "именно здесь они получают эту информацию в сценарии портов FreeBSD)." @@ -1945,9 +1928,9 @@ "системному makefile под названием [.filename]#bsd.port.mk#. Эту строку легко " "пропустить, но именно здесь начинается вся магия — кто-то написал makefile, " "который предписывает `make` выполнить все вышеперечисленные действия (плюс " -"несколько других, которые я не упомянул, включая обработку возможных ошибок)" -", и любой может получить доступ к этому функционалу, просто добавив одну " -"строку в свой собственный makefile!" +"несколько других, которые я не упомянул, включая обработку возможных " +"ошибок), и любой может получить доступ к этому функционалу, просто добавив " +"одну строку в свой собственный makefile!" #. type: Plain text #: documentation/content/en/books/developers-handbook/tools/_index.adoc:649 @@ -1984,8 +1967,9 @@ "показано в простом примере выше. К сожалению, существует несколько различных " "версий `make`, и все они значительно отличаются друг от друга. Лучший способ " "узнать, на что они способны, — вероятно, прочитать документацию. Надеюсь, " -"это введение дало вам основу, с которой вы сможете это сделать. В man:make[1]" -" подробно обсуждаются переменные, аргументы и то, как использовать `make`." +"это введение дало вам основу, с которой вы сможете это сделать. В man:" +"make[1] подробно обсуждаются переменные, аргументы и то, как использовать " +"`make`." #. type: Plain text #: documentation/content/en/books/developers-handbook/tools/_index.adoc:660 @@ -2008,8 +1992,8 @@ "involves adding a line like" msgstr "" "Для просмотра справочных страниц (info) GNU make вам потребуется " -"отредактировать файл [.filename]#dir# в каталоге [.filename]#/usr/local/info#" -", добавив соответствующую запись. Добавьте строку" +"отредактировать файл [.filename]#dir# в каталоге [.filename]#/usr/local/" +"info#, добавив соответствующую запись. Добавьте строку" #. type: delimited block . 4 #: documentation/content/en/books/developers-handbook/tools/_index.adoc:667 @@ -2065,8 +2049,8 @@ msgstr "" "Этот раздел представляет собой краткое введение в использование отладчиков и " "не затрагивает специализированные темы, такие как отладка ядра. Для " -"получения дополнительной информации по этой теме обратитесь к главе " -"crossref:kerneldebug[kerneldebug,Отладка ядра]." +"получения дополнительной информации по этой теме обратитесь к главе crossref:" +"kerneldebug[kerneldebug,Отладка ядра]." #. type: Plain text #: documentation/content/en/books/developers-handbook/tools/_index.adoc:686 @@ -2213,8 +2197,8 @@ "use `up` and `down` to take a quick look at the caller." msgstr "" "Для пошагового выполнения программы строка за строкой введите `thread step-" -"over`. Когда программа дойдёт до вызова функции, войдите в неё, набрав `" -"thread step-in`. Оказавшись внутри вызова функции, вернитесь из него с " +"over`. Когда программа дойдёт до вызова функции, войдите в неё, набрав " +"`thread step-in`. Оказавшись внутри вызова функции, вернитесь из него с " "помощью команды `thread step-out` или используйте `up` и `down`, чтобы " "быстро посмотреть на вызывающий код." @@ -2289,7 +2273,7 @@ "This program sets i to be `5` and passes it to a function `bazz()` which " "prints out the number we gave it." msgstr "" -"Эта программа устанавливает значение `i` равным `5` и передает его в функцию " +"Эта программа устанавливает значение `i` равным `5` и передаёт его в функцию " "`bazz()`, которая выводит переданное число." #. type: Plain text @@ -2542,8 +2526,8 @@ "c _progname_.core \\-- _progname_`." msgstr "" "Для анализа файла core укажите имя файла core в дополнение к самой " -"программе. Вместо обычного запуска `lldb` введите `lldb -c " -"_имя_программы_.core \\-- _имя_программы_`." +"программе. Вместо обычного запуска `lldb` введите `lldb -c _имя_программы_." +"core \\-- _имя_программы_`." #. type: Plain text #: documentation/content/en/books/developers-handbook/tools/_index.adoc:875 @@ -2659,8 +2643,8 @@ "to do something like the following (courtesy of the `gdb` info pages):" msgstr "" "Для того чтобы это работало правильно, код, который вызывает `fork` для " -"создания дочернего процесса, должен делать что-то вроде следующего (" -"предоставлено из документации `gdb`):" +"создания дочернего процесса, должен делать что-то вроде следующего " +"(предоставлено из документации `gdb`):" #. type: delimited block . 4 #: documentation/content/en/books/developers-handbook/tools/_index.adoc:927 @@ -2717,13 +2701,13 @@ msgid "" "The described functionality is available starting with LLDB version 12.0.0. " "Users of FreeBSD releases containing an earlier LLDB version may wish to use " -"the snapshot available in extref:{handbook}[ports or packages, ports-using], " -"as package:devel/llvm-devel[]." +"the snapshot available in extref:{handbook}ports[ports or packages, ports-" +"using], as package:devel/llvm-devel[]." msgstr "" "Описанная функциональность доступна начиная с версии LLDB 12.0.0. " "Пользователи релизов FreeBSD, содержащих более раннюю версию LLDB, могут " -"воспользоваться снимком из extref:{handbook}[портов или пакетов, ports-using]" -", как package:devel/llvm-devel[]." +"воспользоваться снимком из extref:{handbook}ports[портов или пакетов, ports-" +"using], как package:devel/llvm-devel[]." #. type: Plain text #: documentation/content/en/books/developers-handbook/tools/_index.adoc:947 @@ -3243,7 +3227,8 @@ #: documentation/content/en/books/developers-handbook/tools/_index.adoc:1208 msgid "" "On a compilation error, you can jump to the offending line of source code." -msgstr "При ошибке компиляции можно перейти к проблемной строке исходного кода." +msgstr "" +"При ошибке компиляции можно перейти к проблемной строке исходного кода." #. type: Plain text #: documentation/content/en/books/developers-handbook/tools/_index.adoc:1209 @@ -3349,12 +3334,13 @@ "operation you have just requested." msgstr "" "Между прочим, выражение выше означает: удерживайте клавишу kbd:[Meta], " -"нажмите kbd:[x], отпустите клавишу kbd:[Meta], введите `replace-s` (" -"сокращение от `replace-string` — ещё одна особенность Emacs в том, что " -"команды можно сокращать), нажмите клавишу kbd:[return], введите `foo` (" -"строка, которую нужно заменить), нажмите клавишу kbd:[return], введите `bar` " -"(строка, на которую нужно заменить `foo`) и снова нажмите kbd:[return]. " -"Emacs выполнит операцию поиска и замены, которую вы только что запросили." +"нажмите kbd:[x], отпустите клавишу kbd:[Meta], введите `replace-s` " +"(сокращение от `replace-string` — ещё одна особенность Emacs в том, что " +"команды можно сокращать), нажмите клавишу kbd:[return], введите `foo` " +"(строка, которую нужно заменить), нажмите клавишу kbd:[return], введите " +"`bar` (строка, на которую нужно заменить `foo`) и снова нажмите kbd:" +"[return]. Emacs выполнит операцию поиска и замены, которую вы только что " +"запросили." #. type: Plain text #: documentation/content/en/books/developers-handbook/tools/_index.adoc:1235 @@ -3365,8 +3351,8 @@ msgstr "" "Если вам интересно, что такое kbd:[Meta], то это специальная клавиша, " "которая есть на многих рабочих станциях UNIX(R). К сожалению, на PC её нет, " -"поэтому обычно используется kbd:[alt] (или, если вам не повезло, " -"kbd:[escape])." +"поэтому обычно используется kbd:[alt] (или, если вам не повезло, kbd:" +"[escape])." #. type: Plain text #: documentation/content/en/books/developers-handbook/tools/_index.adoc:1239 @@ -3423,8 +3409,8 @@ "The best way to learn Emacs Lisp is to read the online link:https://www.gnu." "org/software/emacs/manual/elisp.html[Emacs Reference] manual." msgstr "" -"Лучший способ изучить Emacs Lisp — это прочитать онлайн-руководство " -"link:https://www.gnu.org/software/emacs/manual/elisp.html[Emacs Reference]." +"Лучший способ изучить Emacs Lisp — это прочитать онлайн-руководство link:" +"https://www.gnu.org/software/emacs/manual/elisp.html[Emacs Reference]." #. type: Plain text #: documentation/content/en/books/developers-handbook/tools/_index.adoc:1254 diff --git a/documentation/content/ru/books/developers-handbook/x86/_index.adoc b/documentation/content/ru/books/developers-handbook/x86/_index.adoc --- a/documentation/content/ru/books/developers-handbook/x86/_index.adoc +++ b/documentation/content/ru/books/developers-handbook/x86/_index.adoc @@ -211,7 +211,7 @@ Кроме того, система должна уведомлять нас, если возникает ошибка: файл не существует, системные ресурсы исчерпаны, передан недопустимый параметр и т. д. [[x86-man-pages]] -=== Страницы справочника +=== Страницы Справочника Традиционным источником информации о различных системных вызовах в UNIX(R)-системах являются страницы Справочника. В FreeBSD системные вызовы описаны в разделе 2, иногда в разделе 3. @@ -2513,7 +2513,7 @@ [[x86-f-number]] ==== Число f (диафрагменное число) -Число f — это очень полезный показатель того, сколько света попадает на плёнку. Экспонометр может определить, что, например, для экспонирования плёнки определённой чувствительности при f5.6 может потребоваться выдержка 1/1000 сек. +Число f — это очень полезный показатель того, сколько света попадает на плёнку. Экспонометр может определить, что, например, для экспонирования плёнки определённой чувствительности при f/5.6 может потребоваться выдержка 1/1000 сек. Не имеет значения, 35-мм это камера или камера 6x9 см и т.д. Достаточно знать диафрагменное число, чтобы определить правильную экспозицию. diff --git a/documentation/content/ru/books/developers-handbook/x86/_index.po b/documentation/content/ru/books/developers-handbook/x86/_index.po --- a/documentation/content/ru/books/developers-handbook/x86/_index.po +++ b/documentation/content/ru/books/developers-handbook/x86/_index.po @@ -5,8 +5,8 @@ msgid "" msgstr "" "Project-Id-Version: FreeBSD Documentation VERSION\n" -"POT-Creation-Date: 2025-05-01 19:56-0300\n" -"PO-Revision-Date: 2025-10-29 04:45+0000\n" +"POT-Creation-Date: 2025-11-08 16:17+0000\n" +"PO-Revision-Date: 2025-11-11 04:45+0000\n" "Last-Translator: Vladlen Popolitov \n" "Language-Team: Russian \n" @@ -140,9 +140,8 @@ #: documentation/content/en/books/developers-handbook/x86/_index.adoc:85 msgid "" "Three very different assemblers are available for FreeBSD. Both man:llvm-" -"as[1] (included in package:devel/llvm[]) and man:as[1] (included in " -"package:devel/binutils[]) use the traditional UNIX(R) assembly language " -"syntax." +"as[1] (included in package:devel/llvm[]) and man:as[1] (included in package:" +"devel/binutils[]) use the traditional UNIX(R) assembly language syntax." msgstr "" "Три очень разных ассемблера доступны для FreeBSD. И man:llvm-as[1] (включён " "в package:devel/llvm[]), и man:as[1] (включён в package:devel/binutils[]) " @@ -467,8 +466,8 @@ #: documentation/content/en/books/developers-handbook/x86/_index.adoc:208 msgid "" "The numbers are listed in [.filename]#syscalls#. `locate syscalls` finds " -"this file in several different formats, all produced automatically from " -"[.filename]#syscalls.master#." +"this file in several different formats, all produced automatically from [." +"filename]#syscalls.master#." msgstr "" "Номера перечислены в [.filename]#syscalls#. Команда `locate syscalls` " "находит этот файл в нескольких различных форматах, все они создаются " @@ -477,10 +476,10 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:211 msgid "" -"You can find the master file for the default UNIX(R) calling convention in " -"[.filename]#/usr/src/sys/kern/syscalls.master#. If you need to use the " -"other convention implemented in the Linux emulation mode, read [.filename]#/" -"usr/src/sys/i386/linux/syscalls.master#." +"You can find the master file for the default UNIX(R) calling convention in [." +"filename]#/usr/src/sys/kern/syscalls.master#. If you need to use the other " +"convention implemented in the Linux emulation mode, read [.filename]#/usr/" +"src/sys/i386/linux/syscalls.master#." msgstr "" "Основной файл для стандартного соглашения о вызовах UNIX(R) можно найти в [." "filename]#/usr/src/sys/kern/syscalls.master#. Если вам необходимо " @@ -499,7 +498,8 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:218 msgid "[.filename]#syscalls.master# describes how the call is to be made:" -msgstr "[.filename]#syscalls.master# описывает, как должен быть выполнен вызов:" +msgstr "" +"[.filename]#syscalls.master# описывает, как должен быть выполнен вызов:" #. type: delimited block . 4 #: documentation/content/en/books/developers-handbook/x86/_index.adoc:229 @@ -580,7 +580,7 @@ #: documentation/content/en/books/developers-handbook/x86/_index.adoc:248 #, no-wrap msgid "Man Pages" -msgstr "Страницы справочника" +msgstr "Страницы Справочника" #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:252 @@ -711,8 +711,8 @@ "When using the standard FreeBSD calling convention, the `carry flag` is " "cleared upon success, set upon failure." msgstr "" -"При использовании стандартного соглашения о вызовах FreeBSD флаг `carry flag`" -" сбрасывается при успехе и устанавливается при неудаче." +"При использовании стандартного соглашения о вызовах FreeBSD флаг `carry " +"flag` сбрасывается при успехе и устанавливается при неудаче." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:305 @@ -1404,8 +1404,9 @@ "bytes." msgstr "" "Строки 3-5 содержат данные: строка 3 начинает раздел/сегмент данных. Строка " -"4 содержит строку \"Hello, World!\", за которой следует новая строка (`0Ah`)" -". Строка 5 создает константу, содержащую длину строки из строки 4 в байтах." +"4 содержит строку \"Hello, World!\", за которой следует новая строка " +"(`0Ah`). Строка 5 создает константу, содержащую длину строки из строки 4 в " +"байтах." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:572 @@ -1467,8 +1468,8 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:592 msgid "" -"Type the code in an editor, and save it in a file named " -"[.filename]#hello.asm#. You need nasm to assemble it." +"Type the code in an editor, and save it in a file named [.filename]#hello." +"asm#. You need nasm to assemble it." msgstr "" "Наберите код в редакторе и сохраните его в файле с именем [.filename]#hello." "asm#. Для сборки вам понадобится nasm." @@ -1527,9 +1528,9 @@ "sourceforge.net/projects/nasm[home page]. You can still use it to assemble " "FreeBSD code." msgstr "" -"Если ваша система не FreeBSD, вам нужно получить nasm с его " -"https://sourceforge.net/projects/nasm[домашней страницы]. Вы по-прежнему " -"можете использовать его для ассемблирования кода FreeBSD." +"Если ваша система не FreeBSD, вам нужно получить nasm с его https://" +"sourceforge.net/projects/nasm[домашней страницы]. Вы по-прежнему можете " +"использовать его для ассемблирования кода FreeBSD." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:619 @@ -1721,8 +1722,8 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:694 msgid "" -"To read the byte, we ask the system to read one byte from " -"[.filename]#stdin#, and store it in the first byte of the `buffer`. The " +"To read the byte, we ask the system to read one byte from [." +"filename]#stdin#, and store it in the first byte of the `buffer`. The " "system returns the number of bytes read in `EAX`. This will be `1` while " "data is coming, or `0`, when no more input data is available. Therefore, we " "check the value of `EAX`. If it is `0`, we jump to `.done`, otherwise we " @@ -2450,9 +2451,8 @@ #: documentation/content/en/books/developers-handbook/x86/_index.adoc:1078 msgid "" "This may be a somewhat advanced topic, mostly of interest to programmers " -"familiar with the theory of compilers. If you wish, you may " -"crossref:x86[x86-command-line,skip to the next section], and perhaps read " -"this later." +"familiar with the theory of compilers. If you wish, you may crossref:" +"x86[x86-command-line,skip to the next section], and perhaps read this later." msgstr "" "Это может быть несколько сложной темой, в основном представляющей интерес " "для программистов, знакомых с теорией компиляторов. Если хотите, вы можете " @@ -2483,8 +2483,8 @@ "processing. If it is followed by white space, or some other value, then it " "is not part of the current token." msgstr "" -"Например, вы можете анализировать входной поток на наличие текстовой строки (" -"например, при реализации компилятора языка): если символ следует за другим " +"Например, вы можете анализировать входной поток на наличие текстовой строки " +"(например, при реализации компилятора языка): если символ следует за другим " "символом или, возможно, цифрой, он является частью обрабатываемой лексемы. " "Если за ним следует пробел или другое значение, то он не является частью " "текущей лексемы." @@ -2708,9 +2708,9 @@ "(the first call will still be within the buffer, the remaining 16 may be " "either within the buffer or within the \"spare\")." msgstr "" -"С этим изменением вы можете безопасно вызывать `ungetc` до 17 раз подряд (" -"первый вызов всё ещё будет в пределах буфера, остальные 16 могут быть либо в " -"пределах буфера, либо в пределах \"запасного\" пространства)." +"С этим изменением вы можете безопасно вызывать `ungetc` до 17 раз подряд " +"(первый вызов всё ещё будет в пределах буфера, остальные 16 могут быть либо " +"в пределах буфера, либо в пределах \"запасного\" пространства)." #. type: Title == #: documentation/content/en/books/developers-handbook/x86/_index.adoc:1165 @@ -2793,9 +2793,9 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:1192 msgid "" -"Armed with this knowledge, we are almost ready for the next version of " -"[.filename]#hex.asm#. First, however, we need to add a few lines to " -"[.filename]#system.inc#:" +"Armed with this knowledge, we are almost ready for the next version of [." +"filename]#hex.asm#. First, however, we need to add a few lines to [." +"filename]#system.inc#:" msgstr "" "Вооружившись этими знаниями, мы почти готовы к следующей версии [." "filename]#hex.asm#. Однако сначала нам нужно добавить несколько строк в [." @@ -3127,8 +3127,8 @@ "In our `.data` section we now have two new variables, `fd.in` and `fd.out`. " "We store the input and output file descriptors here." msgstr "" -"В нашем разделе `.data` теперь есть две новые переменные, `fd.in` и `fd.out`" -". Здесь мы сохраняем дескрипторы файлов для ввода и вывода." +"В нашем разделе `.data` теперь есть две новые переменные, `fd.in` и `fd." +"out`. Здесь мы сохраняем дескрипторы файлов для ввода и вывода." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:1366 @@ -3136,8 +3136,8 @@ "In the `.text` section we have replaced the references to `stdin` and " "`stdout` with `[fd.in]` and `[fd.out]`." msgstr "" -"В разделе `.text` мы заменили ссылки с `stdin` и `stdout` на `[fd.in]` и `[fd" -".out]`." +"В разделе `.text` мы заменили ссылки с `stdin` и `stdout` на `[fd.in]` и " +"`[fd.out]`." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:1369 @@ -3177,8 +3177,8 @@ "указателей, так как мы можем обрабатывать NULL-указатели с помощью `jecxz`. " "Если `argv[1]` не равен NULL, мы пытаемся открыть файл с именем, указанным в " "первом аргументе. В противном случае продолжаем программу как раньше: чтение " -"из `stdin`, запись в `stdout`. Если нам не удаётся открыть входной файл (" -"например, он не существует), мы переходим к обработчику ошибок и завершаем " +"из `stdin`, запись в `stdout`. Если нам не удаётся открыть входной файл " +"(например, он не существует), мы переходим к обработчику ошибок и завершаем " "работу." #. type: Plain text @@ -3198,8 +3198,8 @@ #: documentation/content/en/books/developers-handbook/x86/_index.adoc:1385 msgid "" "The rest of the code is the same as before, except we close the input and " -"output files before exiting, and, as mentioned, we use `[fd.in]` and " -"`[fd.out]`." +"output files before exiting, and, as mentioned, we use `[fd.in]` and `[fd." +"out]`." msgstr "" "Остальная часть кода остается прежней, за исключением того, что мы закрываем " "входной и выходной файлы перед завершением, и, как упоминалось, используем " @@ -3460,8 +3460,7 @@ ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" "%include\t'system.inc'\n" msgstr "" -";;;;;;; webvars.asm " -";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" +";;;;;;; webvars.asm ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" ";\n" "; Copyright (c) 2000 G. Adam Stanislav\n" "; All rights reserved.\n" @@ -3477,28 +3476,23 @@ ";\n" "; THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND\n" "; ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE\n" -"; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR " -"PURPOSE\n" +"; IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE\n" "; ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE\n" -"; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR " -"CONSEQUENTIAL\n" +"; FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL\n" "; DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS\n" "; OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)\n" -"; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, " -"STRICT\n" +"; HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT\n" "; LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY\n" "; OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF\n" "; SUCH DAMAGE.\n" -";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" -";;\n" +";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" ";\n" "; Version 1.0\n" ";\n" "; Started:\t 8-Dec-2000\n" "; Updated:\t 8-Dec-2000\n" ";\n" -";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" -";;\n" +";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" "%include\t'system.inc'\n" #. type: delimited block . 4 @@ -3559,8 +3553,7 @@ "\tdb\t'

Web Environment

', 0Ah\n" "\tdb\t'

The following environment variables are defined '\n" "\tdb\t'on this web server:

', 0Ah, 0Ah\n" -"\tdb\t'', 0Ah\n" "httplen\tequ\t$-http\n" "left\tdb\t'', 0Ah\n" @@ -3901,8 +3894,8 @@ msgid "" "To use it, you need to upload [.filename]#webvars# to your web server. " "Depending on how your web server is set up, you may have to store it in a " -"special [.filename]#cgi-bin# directory, or perhaps rename it with a " -"[.filename]#.cgi# extension." +"special [.filename]#cgi-bin# directory, or perhaps rename it with a [." +"filename]#.cgi# extension." msgstr "" "Для использования необходимо загрузить [.filename]#webvars# на ваш веб-" "сервер. В зависимости от настроек веб-сервера, возможно, потребуется " @@ -3913,11 +3906,11 @@ #: documentation/content/en/books/developers-handbook/x86/_index.adoc:1651 msgid "" "Then you need to use your browser to view its output. To see its output on " -"my web server, please go to http://www.int80h.org/webvars/[http://" -"www.int80h.org/webvars/]. If curious about the additional environment " -"variables present in a password protected web directory, go to http://" -"www.int80h.org/private/[http://www.int80h.org/private/], using the name " -"`asm` and password `programmer`." +"my web server, please go to http://www.int80h.org/webvars/[http://www.int80h." +"org/webvars/]. If curious about the additional environment variables " +"present in a password protected web directory, go to http://www.int80h.org/" +"private/[http://www.int80h.org/private/], using the name `asm` and password " +"`programmer`." msgstr "" "Затем вам нужно использовать браузер для просмотра вывода. Чтобы увидеть " "вывод на моем веб-сервере, перейдите по ссылке http://www.int80h.org/webvars/" @@ -4087,8 +4080,8 @@ "It should also handle files that use some kind of a combination of the above " "(e.g., carriage return followed by several line feeds)." msgstr "" -"Это также должно обрабатывать файлы, использующие комбинации вышеуказанного (" -"например, возврат каретки с последующими несколькими переводами строки)." +"Это также должно обрабатывать файлы, использующие комбинации вышеуказанного " +"(например, возврат каретки с последующими несколькими переводами строки)." #. type: Title === #: documentation/content/en/books/developers-handbook/x86/_index.adoc:1706 @@ -4577,8 +4570,8 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:1859 msgid "" -"This differs slightly from what man:mmap[2] says. That is because " -"man:mmap[2] describes the C version." +"This differs slightly from what man:mmap[2] says. That is because man:" +"mmap[2] describes the C version." msgstr "" "Это немного отличается от того, что указано в man:mmap[2]. Это связано с " "тем, что man:mmap[2] описывает версию на языке C." @@ -4607,13 +4600,13 @@ #. type: delimited block = 4 #: documentation/content/en/books/developers-handbook/x86/_index.adoc:1869 msgid "" -"For an in-depth treatment of `mmap`, see W. Richard Stevens' http://" -"www.int80h.org/cgi-bin/isbn?isbn=0130810819[Unix Network Programming, Volume " -"2, Chapter 12]." +"For an in-depth treatment of `mmap`, see W. Richard Stevens' http://www." +"int80h.org/cgi-bin/isbn?isbn=0130810819[Unix Network Programming, Volume 2, " +"Chapter 12]." msgstr "" -"Для подробного изучения `mmap` см. http://www.int80h.org/cgi-bin/" -"isbn?isbn=0130810819[Unix Network Programming, Volume 2, Chapter 12] У. " -"Ричарда Стивенса." +"Для подробного изучения `mmap` см. http://www.int80h.org/cgi-bin/isbn?" +"isbn=0130810819[Unix Network Programming, Volume 2, Chapter 12] У. Ричарда " +"Стивенса." #. type: Title === #: documentation/content/en/books/developers-handbook/x86/_index.adoc:1872 @@ -4716,9 +4709,9 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:1904 msgid "" -"And yes, we will find two versions of `ftruncate` in " -"[.filename]#syscalls.master#, an older one (130), and a newer one (201). We " -"will use the newer one:" +"And yes, we will find two versions of `ftruncate` in [.filename]#syscalls." +"master#, an older one (130), and a newer one (201). We will use the newer " +"one:" msgstr "" "И да, мы найдем две версии `ftruncate` в [.filename]#syscalls.master#, " "старую (130) и новую (201). Мы будем использовать новую:" @@ -4931,8 +4924,7 @@ ";;;;;;; v.1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" "%include\t'system.inc'\n" msgstr "" -";;;;;;; Fast Text-to-Unix Conversion (ftuc.asm) " -";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" +";;;;;;; Fast Text-to-Unix Conversion (ftuc.asm) ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" ";;\n" ";; Started:\t21-Dec-2000\n" ";; Updated:\t22-Dec-2000\n" @@ -4940,8 +4932,7 @@ ";; Copyright 2000 G. Adam Stanislav.\n" ";; All rights reserved.\n" ";;\n" -";;;;;;; v.1 " -";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" +";;;;;;; v.1 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" "%include\t'system.inc'\n" #. type: delimited block . 4 @@ -5858,8 +5849,7 @@ ";\n" ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" msgstr "" -";;;;;;; csv.asm " -";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" +";;;;;;; csv.asm ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" ";\n" "; Convert a comma-separated file to a something-else separated file.\n" ";\n" @@ -5869,8 +5859,7 @@ "; Copyright (c) 2001 G. Adam Stanislav\n" "; All rights reserved.\n" ";\n" -";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" -";;\n" +";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" #. type: delimited block . 4 #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2349 @@ -5889,8 +5878,7 @@ "section\t.data\n" "fd.in\tdd\tstdin\n" "fd.out\tdd\tstdout\n" -"usg\tdb\t'Usage: csv [-t] [-c] [-p] [-o ] [-i " -"]', 0Ah\n" +"usg\tdb\t'Usage: csv [-t] [-c] [-p] [-o ] [-i ]', 0Ah\n" "usglen\tequ\t$-usg\n" "iemsg\tdb\t\"csv: Can't open input file\", 0Ah\n" "iemlen\tequ\t$-iemsg\n" @@ -6571,7 +6559,8 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2641 msgid "It will read the first row of pixels from a bitmap or pixmap." -msgstr "Он прочитает первый ряд пикселей из битовой карты или пиксельной карты." +msgstr "" +"Он прочитает первый ряд пикселей из битовой карты или пиксельной карты." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2642 @@ -6622,9 +6611,9 @@ "our filter so it can set the first row of the output image _before_ it sends " "us the second row of the input." msgstr "" -"Редактор изображений будет читать из другого канала, подключенного к `fd.out`" -" нашего фильтра, чтобы он мог установить первую строку выходного изображения " -"_до_ того, как отправит нам вторую строку входного." +"Редактор изображений будет читать из другого канала, подключенного к `fd." +"out` нашего фильтра, чтобы он мог установить первую строку выходного " +"изображения _до_ того, как отправит нам вторую строку входного." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2649 @@ -6657,8 +6646,8 @@ msgstr "" "Фильтр и редактор изображений будут продолжать ждать друг друга вечно (или, " "по крайней мере, пока их не завершат командой kill). Наше программное " -"обеспечение только что вошло в crossref:secure[secure-race-" -"conditions,состояние гонки]." +"обеспечение только что вошло в crossref:secure[secure-race-conditions," +"состояние гонки]." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2658 @@ -6730,8 +6719,8 @@ "other op codes let you `push` many common _constants_-such as _pi_-on the " "TOS." msgstr "" -"Вы можете `push` (положить) значение на вершину стека (TOS), используя `fld`" -", `fild` и `fbld`. Несколько других кодов операций позволяют вам `push` " +"Вы можете `push` (положить) значение на вершину стека (TOS), используя " +"`fld`, `fild` и `fbld`. Несколько других кодов операций позволяют вам `push` " "(положить) многие распространённые _константы_ — например, _pi_ — на вершину " "стека (TOS)." @@ -6819,9 +6808,8 @@ "The official Intel op code for the TOS is `st`, and for the _registers_ " "`st(0)`-`st(7)`. `st` and `st(0)`, then, refer to the same register." msgstr "" -"Официальный код операции Intel для TOS — `st`, а для _регистров_ — " -"`st(0)`-`st(7)`. Таким образом, `st` и `st(0)` ссылаются на один и тот же " -"регистр." +"Официальный код операции Intel для TOS — `st`, а для _регистров_ — `st(0)`-" +"`st(7)`. Таким образом, `st` и `st(0)` ссылаются на один и тот же регистр." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2698 @@ -6936,12 +6924,13 @@ "for this type of data." msgstr "" "Книга, которую стоит прочитать — если сможете её найти — это книга Ричарда " -"Старца http://www.amazon.com/exec/obidos/ASIN/013246604X/whizkidtechnomag[" -"8087/80287/80387 для IBM PC и совместимых]. Хотя в ней, кажется, факт о " -"little-endian хранении _упакованного десятичного числа_ принимается как " -"данность. Я не шучу насчёт отчаяния, которое испытывал, пытаясь понять, что " -"не так с фильтром, который я привожу ниже, _прежде_ чем мне пришло в голову " -"попробовать little-endian порядок даже для этого типа данных." +"Старца http://www.amazon.com/exec/obidos/ASIN/013246604X/" +"whizkidtechnomag[8087/80287/80387 для IBM PC и совместимых]. Хотя в ней, " +"кажется, факт о little-endian хранении _упакованного десятичного числа_ " +"принимается как данность. Я не шучу насчёт отчаяния, которое испытывал, " +"пытаясь понять, что не так с фильтром, который я привожу ниже, _прежде_ чем " +"мне пришло в голову попробовать little-endian порядок даже для этого типа " +"данных." #. type: Title === #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2743 @@ -6994,8 +6983,8 @@ "may be several). These light rays form an image, a representation of " "whatever is outside the camera, in front of the hole." msgstr "" -"Корпус обычно прочный (например, коробка), хотя иногда он гибкий (" -"гофрированная часть). Внутри камеры довольно темно. Однако отверстие " +"Корпус обычно прочный (например, коробка), хотя иногда он гибкий " +"(гофрированная часть). Внутри камеры довольно темно. Однако отверстие " "пропускает световые лучи через одну точку (хотя в некоторых случаях их может " "быть несколько). Эти световые лучи формируют изображение — представление " "того, что находится снаружи камеры, перед отверстием." @@ -7006,8 +6995,8 @@ "If some light sensitive material (such as film) is placed inside the camera, " "it can capture the image." msgstr "" -"Если внутрь камеры поместить светочувствительный материал (например, плёнку)" -", он может зафиксировать изображение." +"Если внутрь камеры поместить светочувствительный материал (например, " +"плёнку), он может зафиксировать изображение." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2762 @@ -7079,8 +7068,8 @@ "types of light will require a different constant, whose value can only be " "determined by experimentation." msgstr "" -"Здесь `D` — идеальный диаметр отверстия, `FL` — фокусное расстояние, а `PC` —" -" константа отверстия. По данным Джейя Бендера, её значение равно `0,04`, " +"Здесь `D` — идеальный диаметр отверстия, `FL` — фокусное расстояние, а `PC` " +"— константа отверстия. По данным Джейя Бендера, её значение равно `0,04`, " "тогда как Кеннет Коннорс определил его как `0,037`. Другие исследователи " "предложили иные значения. Кроме того, это значение справедливо только для " "дневного света: другие типы освещения потребуют иной константы, значение " @@ -7097,12 +7086,12 @@ msgid "" "The f-number is a very useful measure of how much light reaches the film. A " "light meter can determine that, for example, to expose a film of specific " -"sensitivity with f5.6 mkay require the exposure to last 1/1000 sec." +"sensitivity with f/5.6 may require the exposure to last 1/1000 sec." msgstr "" "Число f — это очень полезный показатель того, сколько света попадает на " "плёнку. Экспонометр может определить, что, например, для экспонирования " -"плёнки определённой чувствительности при f5.6 может потребоваться выдержка 1/" -"1000 сек." +"плёнки определённой чувствительности при f/5.6 может потребоваться выдержка " +"1/1000 сек." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2796 @@ -7225,8 +7214,8 @@ msgstr "" "Типичная камера устроена так, что установка любого из нормализованных чисел " "f изменяет ощущение от регулятора. Он естественным образом _останавливается_ " -"в этом положении. Из-за этого такие положения регулятора называются " -"f-ступенями." +"в этом положении. Из-за этого такие положения регулятора называются f-" +"ступенями." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:2838 @@ -7525,14 +7514,13 @@ "The permanent choices may be stored in a configuration file, typically found " "in the user's home directory. The file usually has the same name as the " "application but is started with a dot. Often _\"rc\"_ is added to the file " -"name. So, ours could be [.filename]#~/.pinhole# or " -"[.filename]#~/.pinholerc#. (The [.filename]#~/# means current user's home " -"directory.)" +"name. So, ours could be [.filename]#~/.pinhole# or [.filename]#~/." +"pinholerc#. (The [.filename]#~/# means current user's home directory.)" msgstr "" "Постоянные настройки могут быть сохранены в конфигурационном файле, обычно " "расположенном в домашнем каталоге пользователя. Файл обычно имеет то же имя, " -"что и приложение, но начинается с точки. Часто к имени файла добавляется " -"_\"rc\"_. Таким образом, наш файл может называться [.filename]#~/.pinhole# " +"что и приложение, но начинается с точки. Часто к имени файла добавляется _" +"\"rc\"_. Таким образом, наш файл может называться [.filename]#~/.pinhole# " "или [.filename]#~/.pinholerc#. (Обозначение [.filename]#~/# означает " "домашний каталог текущего пользователя.)" @@ -7711,8 +7699,8 @@ "or set `PINHOLE=04` in his environment. So, if he says `-p9999999`, we will " "interpret it as ``0.9999999``-still ridiculous but at least safer." msgstr "" -"Другими словами, если пользователь хочет `0.04`, мы ожидаем, что он введёт " -"`-p04` или установит `PINHOLE=04` в своём окружении. Таким образом, если он " +"Другими словами, если пользователь хочет `0.04`, мы ожидаем, что он введёт `-" +"p04` или установит `PINHOLE=04` в своём окружении. Таким образом, если он " "укажет `-p9999999`, мы интерпретируем это как ``0.9999999`` — всё ещё " "нелепо, но по крайней мере безопаснее." @@ -7777,11 +7765,11 @@ "the CSV format predates Excel). We will, therefore, use the `-e` switch to " "inform our software we want the output in the CSV format." msgstr "" -"Нам нужна опция командной строки для формата CSV. Мы не можем использовать " -"`-c`, потому что это уже означает _использовать константу Коннорса_. По " -"какой-то странной причине многие веб-сайты называют CSV-файлы _\"электронными" -" таблицами Excel\"_ (хотя формат CSV появился раньше Excel). Поэтому мы " -"будем использовать переключатель `-e`, чтобы указать нашему программному " +"Нам нужна опция командной строки для формата CSV. Мы не можем использовать `-" +"c`, потому что это уже означает _использовать константу Коннорса_. По какой-" +"то странной причине многие веб-сайты называют CSV-файлы _\"электронными " +"таблицами Excel\"_ (хотя формат CSV появился раньше Excel). Поэтому мы будем " +"использовать переключатель `-e`, чтобы указать нашему программному " "обеспечению, что мы хотим получить вывод в формате CSV." #. type: Plain text @@ -7930,9 +7918,7 @@ #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3049 #, no-wrap msgid "17459765723452353453534535353530530534563507309676764423\t???\t???\t???\t???\t???\n" -msgstr "" -"17459765723452353453534535353530530534563507309676764423\t???\t???\t???\t???" -"\t???\n" +msgstr "17459765723452353453534535353530530534563507309676764423\t???\t???\t???\t???\t???\n" #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3053 @@ -7998,8 +7984,8 @@ "which we must return to the input stream. It starts a comment, so we must " "see it after we are done producing output and start looking for more input." msgstr "" -"Между прочим, мы можем просто отбросить нецифровой символ, если это не `+#+`" -", который необходимо вернуть во входной поток. Он начинает комментарий, " +"Между прочим, мы можем просто отбросить нецифровой символ, если это не `+#" +"+`, который необходимо вернуть во входной поток. Он начинает комментарий, " "поэтому мы должны увидеть его после завершения вывода и начала поиска " "следующего ввода." @@ -8009,8 +7995,8 @@ "That still leaves one possibility uncovered: If all the user enters is a " "zero (or several zeros), we will never find a non-zero to display." msgstr "" -"Остается одна непокрытая возможность: если пользователь вводит только ноль (" -"или несколько нулей), мы никогда не найдем ненулевое значение для " +"Остается одна непокрытая возможность: если пользователь вводит только ноль " +"(или несколько нулей), мы никогда не найдем ненулевое значение для " "отображения." #. type: Plain text @@ -8036,8 +8022,8 @@ "Once we have displayed the focal length and determined it is valid (greater " "than `0` but not exceeding 18 digits), we can calculate the pinhole diameter." msgstr "" -"Как только мы определили фокусное расстояние и убедились, что оно корректно (" -"больше `0`, но не превышает 18 цифр), можно рассчитать диаметр отверстия." +"Как только мы определили фокусное расстояние и убедились, что оно корректно " +"(больше `0`, но не превышает 18 цифр), можно рассчитать диаметр отверстия." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3081 @@ -8537,8 +8523,8 @@ "only one or two digits anyway." msgstr "" "Этот расчет также довольно прост. Все, что нам нужно сделать, это вычислить " -"логарифм по основанию 2 от множителя f5.6, который мы только что рассчитали (" -"хотя нам нужно его значение до округления). Затем мы выводим результат, " +"логарифм по основанию 2 от множителя f5.6, который мы только что рассчитали " +"(хотя нам нужно его значение до округления). Затем мы выводим результат, " "округленный до ближайшего целого числа. Нам не нужно беспокоиться о наличии " "более четырех значащих цифр в этом случае: скорее всего, результат будет " "содержать только одну или две цифры." @@ -8691,8 +8677,8 @@ msgstr "" "Гораздо быстрее умножать, чем делить. Поэтому в начале нашей программы мы " "делим `1` на `10`, чтобы получить `0.1`, который затем сохраняем в стеке: " -"вместо того чтобы делить ввод на `10` для каждой цифры, мы умножаем его на `0" -".1`." +"вместо того чтобы делить ввод на `10` для каждой цифры, мы умножаем его на " +"`0.1`." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3284 @@ -8808,8 +8794,7 @@ ";\n" ";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" msgstr "" -";;;;;;; pinhole.asm " -";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" +";;;;;;; pinhole.asm ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" ";\n" "; Find various parameters of a pinhole camera construction and use\n" ";\n" @@ -8819,8 +8804,7 @@ "; Copyright (c) 2001 G. Adam Stanislav\n" "; All rights reserved.\n" ";\n" -";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;" -";;\n" +";;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;\n" #. type: delimited block . 4 #: documentation/content/en/books/developers-handbook/x86/_index.adoc:3368 @@ -8867,8 +8851,7 @@ "envar\tdb\t'PINHOLE='\t; Exactly 8 bytes, or 2 dwords long\n" "pinhole\tdb\t'04,', \t\t; Bender's constant (0.04)\n" "connors\tdb\t'037', 0Ah\t; Connors' constant\n" -"usg\tdb\t'Usage: pinhole [-b] [-c] [-e] [-p ] [-o ] [-i " -"]', 0Ah\n" +"usg\tdb\t'Usage: pinhole [-b] [-c] [-e] [-p ] [-o ] [-i ]', 0Ah\n" "usglen\tequ\t$-usg\n" "iemsg\tdb\t\"pinhole: Can't open input file\", 0Ah\n" "iemlen\tequ\t$-iemsg\n" @@ -8876,8 +8859,7 @@ "oemlen\tequ\t$-oemsg\n" "pinmsg\tdb\t\"pinhole: The PINHOLE constant must not be 0\", 0Ah\n" "pinlen\tequ\t$-pinmsg\n" -"toobig\tdb\t\"pinhole: The PINHOLE constant may not exceed 18 decimal " -"places\", 0Ah\n" +"toobig\tdb\t\"pinhole: The PINHOLE constant may not exceed 18 decimal places\", 0Ah\n" "biglen\tequ\t$-toobig\n" "huhmsg\tdb\t9, '???'\n" "separ\tdb\t9, '???'\n" @@ -10359,7 +10341,8 @@ #. type: delimited block _ 4 #: documentation/content/en/books/developers-handbook/x86/_index.adoc:4029 msgid "When we have no more input, it can mean one of two things:" -msgstr "Когда у нас больше нет входных данных, это может означать одно из двух:" +msgstr "" +"Когда у нас больше нет входных данных, это может означать одно из двух:" #. type: delimited block _ 4 #: documentation/content/en/books/developers-handbook/x86/_index.adoc:4031 @@ -10892,8 +10875,7 @@ msgstr "" "% ./medium -b -e > bender\n" "% cat bender\n" -"focal length in millimeters,pinhole diameter in microns,F-number,normalized " -"F-number,F-5.6 multiplier,stops from F-5.6\n" +"focal length in millimeters,pinhole diameter in microns,F-number,normalized F-number,F-5.6 multiplier,stops from F-5.6\n" "80,358,224,256,1562,11\n" "30,219,137,128,586,9\n" "40,253,158,181,781,10\n" @@ -11035,8 +11017,8 @@ msgid "" "If you have written program2, your input does not come from the keyboard but " "from the output of program1. Similarly, your output does not go to the " -"screen but becomes the input for program3 whose output, in turn, goes to " -"[.filename]#file1#." +"screen but becomes the input for program3 whose output, in turn, goes to [." +"filename]#file1#." msgstr "" "Если вы написали program2, ваш ввод поступает не с клавиатуры, а из вывода " "program1. Аналогично, ваш вывод не выводится на экран, а становится вводом " @@ -11154,15 +11136,17 @@ #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:4308 msgid "" -"Thomas M. Sommers opened the door for me . His https://web.archive.org/web/" -"20090914064615/http://www.codebreakers-journal.com/content/view/262/27[How " -"do I write \"Hello, world\" in FreeBSD assembler?] web page was my first " -"encounter with an example of assembly language programming under FreeBSD." -msgstr "" -"Томас М. Соммерс открыл дверь для меня. Его https://web.archive.org/web/" -"20090914064615/http://www.codebreakers-journal.com/content/view/262/27[Как " -"написать \"Hello, world\" на ассемблере в FreeBSD?] веб-страница стала моей " -"первой встречей с примером программирования на ассемблере под FreeBSD." +"Thomas M. Sommers opened the door for me . His https://web.archive.org/" +"web/20090914064615/http://www.codebreakers-journal.com/content/" +"view/262/27[How do I write \"Hello, world\" in FreeBSD assembler?] web page " +"was my first encounter with an example of assembly language programming " +"under FreeBSD." +msgstr "" +"Томас М. Соммерс открыл дверь для меня. Его https://web.archive.org/" +"web/20090914064615/http://www.codebreakers-journal.com/content/" +"view/262/27[Как написать \"Hello, world\" на ассемблере в FreeBSD?] веб-" +"страница стала моей первой встречей с примером программирования на " +"ассемблере под FreeBSD." #. type: Plain text #: documentation/content/en/books/developers-handbook/x86/_index.adoc:4310