aboutsummaryrefslogtreecommitdiff
path: root/ru_RU.KOI8-R/books/faq/book.xml
diff options
context:
space:
mode:
Diffstat (limited to 'ru_RU.KOI8-R/books/faq/book.xml')
-rw-r--r--ru_RU.KOI8-R/books/faq/book.xml11254
1 files changed, 11254 insertions, 0 deletions
diff --git a/ru_RU.KOI8-R/books/faq/book.xml b/ru_RU.KOI8-R/books/faq/book.xml
new file mode 100644
index 0000000000..34eb340e3e
--- /dev/null
+++ b/ru_RU.KOI8-R/books/faq/book.xml
@@ -0,0 +1,11254 @@
+<?xml version="1.0" encoding="koi8-r" standalone="no"?>
+<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V4.2-Based Extension//EN"
+ "../../../share/sgml/freebsd42.dtd" [
+<!ENTITY % entities PUBLIC "-//FreeBSD//ENTITIES DocBook FreeBSD Entity Set//RU" "../../share/sgml/entities.ent">
+%entities;
+<!ENTITY bibliography SYSTEM "../../../share/sgml/bibliography.xml">
+<!ENTITY rel.head "<emphasis>10-CURRENT</emphasis>">
+<!ENTITY rel.head.relx "10.<replaceable>X</replaceable>">
+<!ENTITY rel.head.releng "<symbol>HEAD</symbol>">
+<!ENTITY rel.head.packages "packages-10-current">
+<!ENTITY rel.relx "9.<replaceable>X</replaceable>">
+<!ENTITY rel.stable "<emphasis>9-STABLE</emphasis>">
+<!ENTITY rel.releng "<symbol>RELENG_9</symbol>">
+<!ENTITY rel.relengdate "в сентябре 2011 года">
+<!ENTITY rel.packages "packages-9-stable">
+<!ENTITY rel2.relx "8.<replaceable>X</replaceable>">
+<!ENTITY rel2.stable "<emphasis>8-STABLE</emphasis>">
+<!ENTITY rel2.releng "<symbol>RELENG_8</symbol>">
+<!ENTITY rel2.relengdate "в августе 2009 года">
+<!ENTITY rel2.packages "packages-8-stable">
+<!ENTITY rel3.current "7.4">
+<!ENTITY rel3.relx "7.<replaceable>X</replaceable>">
+<!ENTITY rel3.stable "<emphasis>7-STABLE</emphasis>">
+<!ENTITY rel3.releng "<symbol>RELENG_7</symbol>">
+<!ENTITY rel3.relengdate "в октябре 2007 года">
+<!ENTITY rel3.packages "packages-7-stable">
+]>
+
+<!--
+ The FreeBSD Russian Documentation Project
+
+ $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/faq/book.xml,v 1.213 2007/05/14 19:27:34 gad Exp $
+
+ Original revision: r38488
+-->
+
+<book lang="ru">
+ <bookinfo>
+ <title>Часто задаваемые вопросы по &os;
+ &rel3.relx;, &rel2.relx; и &rel.relx;</title>
+
+ <corpauthor>The &os; Documentation Project</corpauthor>
+
+ <copyright>
+ <year>1995</year>
+ <year>1996</year>
+ <year>1997</year>
+ <year>1998</year>
+ <year>1999</year>
+ <year>2000</year>
+ <year>2001</year>
+ <year>2002</year>
+ <year>2003</year>
+ <year>2004</year>
+ <year>2005</year>
+ <year>2006</year>
+ <year>2007</year>
+ <year>2008</year>
+ <year>2009</year>
+ <year>2010</year>
+ <year>2011</year>
+ <year>2012</year>
+ <holder>The &os; Documentation Project</holder>
+ </copyright>
+
+ &legalnotice;
+
+ <legalnotice id="trademarks" role="trademarks">
+ &tm-attrib.freebsd;
+ &tm-attrib.3com;
+ &tm-attrib.adobe;
+ &tm-attrib.creative;
+ &tm-attrib.cvsup;
+ &tm-attrib.ibm;
+ &tm-attrib.ieee;
+ &tm-attrib.intel;
+ &tm-attrib.iomega;
+ &tm-attrib.linux;
+ &tm-attrib.microsoft;
+ &tm-attrib.mips;
+ &tm-attrib.netscape;
+ &tm-attrib.opengroup;
+ &tm-attrib.oracle;
+ &tm-attrib.sgi;
+ &tm-attrib.sparc;
+ &tm-attrib.sun;
+ &tm-attrib.usrobotics;
+ &tm-attrib.xfree86;
+ &tm-attrib.general;
+ </legalnotice>
+
+ <releaseinfo>$FreeBSD$</releaseinfo>
+
+ <abstract>
+ <para>Этот документ является так называемым FAQ (Frequently Asked
+ Questions), то есть списком Часто Задаваемых Вопросов по &os; версий
+ &rel3.relx;, &rel2.relx; и &rel.relx;.
+ Если не оговорено обратное, предполагается, что все замечания
+ справедливы для версий &os; &rel3.relx; и выше.
+ Если вы
+ хотите помочь в составлении этого документа, пошлите письмо в &a.doc;.
+ Последняя редакция этого документа всегда доступна с <ulink
+ url="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/faq/index.html">
+ Web-сервера &os;</ulink>. Его также
+ можно получить в виде одного большого <ulink url="book.html">
+ HTML-файла</ulink> по HTTP или в виде обычного текстового файла, файла
+ формата &postscript;, PDF или другого формата с <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">FTP-сервера</ulink>.
+ Вы также можете осуществить <ulink
+ url="&url.base;/search/search.html">поиск</ulink> в
+ FAQ.</para>
+ </abstract>
+ </bookinfo>
+
+ <chapter id="introduction">
+ <title>Вступление</title>
+
+ <para>Добро пожаловать в FAQ по &os;
+ &rel3.relx;, &rel2.relx; и &rel.relx;!</para>
+
+ <para>Как и обычный FAQ конференций Usenet, этот документ содержит
+ большинство из часто задаваемых вопросов, касающихся операционной системы
+ &os; (и, конечно же, ответы на них). Первоначально предназначенный для
+ уменьшения потока сообщений и избежания повторения одних и тех же
+ вопросов, постепенно FAQ превратился в ценный источник информации.</para>
+
+ <para>Мы прилагаем все усилия, чтобы сделать этот FAQ максимально
+ информативным; если у вас есть идеи по его усовершенствованию,
+ пожалуйста, напишите нам на адрес &a.doc;.</para>
+
+ <qandaset>
+ <qandaentry>
+ <question id="what-is-FreeBSD">
+ <para>&os; - что это такое?</para>
+ </question>
+
+ <answer>
+ <para>В двух словах, &os; - это &unix;-подобная операционная
+ система для платформ AMD64 и &intel; EM64T, &i386;, PC-98, IA-64,
+ &arm;, &powerpc; и &ultrasparc;, разработанная на основе операционной
+ системы <quote>4.4BSD-Lite</quote> с некоторыми
+ усовершенствованиями, взятыми из <quote>4.4BSD-Lite2</quote>
+ Калифорнийского Университета (Беркли). Также она косвенно
+ базируется на 386BSD (BSD Net/2, перенесённой на платформу &i386;
+ Уильямом Джолитцем (William Jolitz)), хотя от того первоначального
+ кода осталось очень мало. Более подробные объяснения того, что
+ представляет из себя &os; и для чего она может вам пригодиться,
+ можно найти на <ulink url="&url.base;/index.html">домашней
+ странице &os;</ulink>.</para>
+
+ <para>&os; используется компаниями, Интернет-провайдерами,
+ научными работниками, профессионалами в вычислительной технике,
+ студентами и рядовыми пользователями по всему миру для работы,
+ образования и отдыха.</para>
+
+ <para>Для более детального знакомства с &os;, пожалуйста,
+ обратитесь к <ulink url="&url.books.handbook;/index.html">
+ Руководству по &os;</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="FreeBSD-goals">
+ <para>Какова цель &os;?</para>
+ </question>
+
+ <answer>
+ <para>Цель, преследуемая проектом &os; - это предоставление
+ программного обеспечения, которое может быть использовано в любых
+ целях без каких бы то ни было ограничений. Многие из нас
+ вкладывают значительные усилия в её разработку (и проектирование) и
+ определённо были бы не против получения финансовой поддержки, но
+ требовать её мы не будем. Мы надеемся, что наша основная и самая
+ значительная <quote>миссия</quote> - предоставить код всем
+ желающим, для любых целей, так чтобы он нашел самое широкое
+ применение и принёс наибольшую пользу. Это, на наш взгляд, одна
+ из самых фундаментальных целей Free Software, которую мы с
+ энтузиазмом поддерживаем.</para>
+
+ <para>Часть исходного кода нашей системы, подпадающая под действие
+ <ulink url="http://www.FreeBSD.org/copyright/COPYING">GNU General
+ Public License (GPL)</ulink> или <ulink
+ url="http://www.FreeBSD.org/copyright/COPYING.LIB">GNU Library
+ General Public License (LGPL)</ulink>, имеет несколько
+ больше ограничений, хотя и представляет собой навязывание доступа к
+ исходным текстам, а не наоборот, как обычно. Из-за дополнительных
+ сложностей, которые могут возникнуть в случае коммерческого
+ использования программного обеспечения GPL, мы стараемся, где
+ только это возможно, заменить подобное программное обеспечение
+ аналогичным, но подпадающим под менее строгую <ulink
+ url="http://www.FreeBSD.org/copyright/freebsd-license.html">
+ лицензию &os;</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="bsd-license-restrictions">
+ <para>Есть ли в лицензии &os; какие-то ограничения?</para>
+ </question>
+
+ <answer>
+ <para>Да. Эти ограничения не касаются того, как именно вы
+ используете код, но главным образом описывают ваше отношение при
+ этом в целом к Проекту &os;. Если у вас есть серьезные
+ проблемы с лицензированием, прочтите собственно <ulink
+ url="http://www.FreeBSD.org/copyright/freebsd-license.html">текст
+ лицензионного соглашения</ulink>. Упрощенно оно может быть вкратце
+ изложено следующим образом.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Не говорите, что это написано вами.</para>
+ </listitem>
+
+ <listitem>
+ <para>Не судитесь с нами, если что-то не работает.</para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="replace-current-OS">
+ <para>Может ли &os; заменить операционную систему, используемую
+ мною сейчас?</para>
+ </question>
+
+ <answer>
+ <para>Для большинства людей, да. Но этот ответ не так уж
+ однозначен.</para>
+
+ <para>Большинство пользователей на самом деле не используют
+ операционную систему. Они работают с приложениями. Именно
+ прикладные программы и используют операционную систему. &os;
+ разработана для того, чтобы дать надежное и полнофункциональное
+ окружение для приложений. Она поддерживает широкий спектр
+ Web-браузеров, офисных пакетов, программ для работы с электронной
+ почтой, графических пакетов, программных сред, сетевых серверов и
+ практически все, что вы можете захотеть. Большинство этих
+ приложений могут быть получено из <ulink
+ url="http://www.FreeBSD.org/ports/">Коллекции
+ Портов</ulink>.</para>
+
+ <para>Если вам необходимо использовать приложение, которое доступно
+ только для одной операционной системы, вам просто нельзя заменять
+ операционную систему. Однако есть вероятность, что похожая
+ программа существует для &os;. Если вам нужен стабильно
+ работающий сервер для офиса или сервер Интернет, надежная рабочая
+ станция или просто возможность выполнять работу без сбоев, &os;
+ практически всегда справится со всем, что вам нужно. Многие
+ пользователи по всему миру, включая как новичков, так и опытных
+ администраторов &unix;, используют &os; в качестве своей
+ единственной настольной операционной системы.</para>
+
+ <para>Если вы переходите на &os; с какого-то другого варианта
+ &unix;, вы уже знаете большинство ваших потребностей. Если вы
+ привыкли к таким графическими операционными системам, как &windows;
+ или старым версиям &macos;, будьте готовы к затратам
+ дополнительного
+ времени на изучение подхода &unix; к работе. Этот FAQ и <ulink
+ url="&url.books.handbook;/index.html">Руководство по
+ &os;</ulink> являются прекрасным способом начать это
+ изучение.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="why-called-FreeBSD">
+ <para>Почему система называется именно &os;?</para>
+ </question>
+
+ <answer>
+ <itemizedlist>
+ <listitem>
+ <para>Она может использоваться безо всяческих выплат, даже
+ для извлечения выгоды.</para>
+ </listitem>
+
+ <listitem>
+ <para>Все исходные тексты операционной системы свободно
+ доступны, на её использование в других разработках (как
+ коммерческих, так и некоммерческих) и дальнейшее
+ распространение наложены минимальные ограничения.</para>
+ </listitem>
+
+ <listitem>
+ <para>Любой, у кого есть усовершенствования или исправления,
+ может предоставить свой код и он будет (правда, с парой
+ оговорок) добавлен в исходные тексты системы.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Следует отметить, что слово <quote>free</quote>
+ используется здесь в двух смыслах, один означает
+ <quote>бесплатно</quote>, а другой <quote>вы можете делать всё,
+ что хотите</quote>. За исключением пары вещей, которые вы
+ <emphasis>не можете</emphasis> делать с &os;, например,
+ претендовать на то, что являетесь её разработчиком, на самом
+ деле можно делать с ней всё, что вам заблагорассудится.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="differences-to-other-bsds">
+ <para>В чём заключается разница между &os; и NetBSD, OpenBSD
+ и другими операционными системами с открытыми кодами
+ семейства BSD?</para>
+ </question>
+
+ <answer>
+ <para>Джеймс Ховард (James Howard) создал хорошее описание истории и
+ различий между различными проектами под названием <ulink
+ url="http://www.freebsdworld.gr/freebsd/bsd-family-tree.html">
+ Семейное древо BSD</ulink>, в котором даётся подробный ответ на
+ этот вопрос.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="latest-version">
+ <para>Какова последняя версия &os;?</para>
+ </question>
+
+<!--
+ Этот ответ является хаком для работы с тем фактом, что теперь имеется
+ несколько "последних" версий FreeBSD.
+-->
+
+ <answer>
+ <para>На любом этапе разработки &os; может существовать
+ несколько параллельных веток. Релизы &rel.relx; выполняются
+ из ветки &rel.stable;, а релизы &rel2.relx; выполняются из
+ &rel2.stable;.</para>
+
+ <para>До выпуска 8.0 линейка &rel3.relx; была
+ известна как <emphasis>-STABLE</emphasis>.
+ Однако к моменту выхода 8.0 линейка &rel3.relx;
+ получит статус <quote>extended support</quote> (расширенная
+ поддержка), и исправления будут вноситься только для серьезных
+ проблем, к примеру исправления, связанные с безопасностью. Из
+ ветки &rel3.stable; новые релизы выпускаться не будут, ветка
+ считается <quote>legacy</quote> (устаревшая), и большинство
+ текущих изменений будет уже частью только &rel.stable; и
+ &rel2.stable;.</para>
+
+ <para>Версия <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/i386/&rel.current;-RELEASE/">
+ &rel.current;</ulink>, выпущенная &rel.current.date;, является
+ самым последним релизом в ветке &rel.stable;.
+ Версия <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel2.current;-RELEASE/">
+ &rel2.current;</ulink>, выпущенная &rel2.current.date;, является
+ самым последним релизом в ветке &rel2.stable;.</para>
+
+ <para>Если вкратце, то ветка <emphasis>-STABLE</emphasis>
+ предназначена поставщикам услуг Internet, корпоративным
+ пользователям, а также всем тем, кому в первую очередь нужна
+ надёжность и минимальное количество отличий от последнего
+ релиза по сравнению с новыми (и, возможно, ненадёжно работающими)
+ возможностями последнего снэпшота <emphasis>-CURRENT</emphasis>.
+ Релизы можно делать из любой ветки, но
+ <emphasis>-CURRENT</emphasis> можно использовать только в том
+ случае, если вы уверены, что готовы к постоянным (по
+ сравнению со <emphasis>-STABLE</emphasis>) изменениям в работе
+ системы.</para>
+
+ <para>Релизы делаются <link linkend="release-freq">раз в
+ несколько месяцев</link>. Хотя многие стараются отслеживать
+ актуальное состояние исходных текстов &os; (обратите внимание на
+ вопросы о <link linkend="current">&os.current;</link> и <link
+ linkend="stable">&os.stable;</link>), делать это не обязательно,
+ так как исходные тексты постоянно меняются.</para>
+
+ <para>Более полную информацию о релизах &os; можно получить со
+ страницы о <ulink url="http://www.FreeBSD.org/releng/index.html">
+ Процессе выпуска релизов</ulink> на Web-сайте &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="current">
+ <para>Что такое <emphasis>&os;-CURRENT</emphasis>?</para>
+ </question>
+
+ <answer>
+ <para><ulink
+ url="&url.books.handbook;/current-stable.html#CURRENT">
+ &os.current;</ulink> - это версия операционной системы,
+ находящаяся в стадии разработки, которая должна потом стать
+ новой веткой &os.stable;. Таким образом, она представляет
+ реальный интерес только для разработчиков системы и её фанатов.
+ Обратитесь к <ulink
+ url="&url.books.handbook;/current-stable.html#CURRENT">
+ соответствующему
+ разделу</ulink> <ulink url="&url.books.handbook;/index.html">
+ Руководства</ulink> для прояснения деталей работы с
+ <emphasis>-CURRENT</emphasis>.</para>
+
+ <para>Если вы не специалист по операционным системам или не в
+ состоянии отличить реальную проблему от временных явлений, вы не
+ должны использовать &os.current;. Эта ветвь зачастую меняется
+ очень быстро и иногда может быть не работоспособна.
+ Те, кто используют &os.current;, должны быть
+ в состоянии анализировать любые проблемы и сообщать о них, если
+ это действительно ошибки, а не <quote>глюки</quote>. Сообщения
+ типа <quote>make world produces some error about groups</quote>,
+ отправленные в &a.current;, могут быть восприняты
+ пренебрежительно.</para>
+
+ <para>Ежемесячно из веток <emphasis>-CURRENT</emphasis> и
+ <emphasis>-STABLE</emphasis> делаются <ulink
+ url="&url.base;/snapshots/">снэпшоты</ulink>.
+ Их предназначение:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Тестирование самой последней версии программы установки
+ системы.</para>
+ </listitem>
+
+ <listitem>
+ <para>Дать людям, которые хотят работать с
+ <emphasis>-CURRENT</emphasis> или <emphasis>-STABLE</emphasis>,
+ но не имеют времени или возможности (пропускной способности)
+ для отслеживания ежедневных изменений, простой способ её
+ установки.</para>
+ </listitem>
+
+ <listitem>
+ <para>Фиксация точки для последующих ссылок в случае,
+ если позже мы что-нибудь очень сильно сломаем. (Хотя CVS, как
+ правило, не позволяет случиться ничему такому ужасному.)</para>
+ </listitem>
+
+ <listitem>
+ <para>Все новые возможности, которым требуется тестирование,
+ должны иметь как можно больше потенциальных тестеров.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Не утверждается, что всякий снэпшот
+ <emphasis>-CURRENT</emphasis> имеет качество
+ <quote>готового продукта</quote>. Если вам нужна стабильно
+ работающая и полностью оттестированная система, то необходимо
+ дождаться выхода полного релиза или воспользоваться снэпшотами
+ <emphasis>-STABLE</emphasis>.</para>
+
+ <para>Снэпшот-релизы доступны непосредственно <ulink
+ url="&url.base;/snapshots/">отсюда</ulink>.</para>
+
+ <para>Официальные снэпшоты постоянно генерируются каждый месяц
+ для всех активно разрабатываемых веток. Также ежедневно
+ делаются снэпшоты популярных веток &arch.i386; и &arch.amd64;
+ и доступны на <ulink
+ url="http://snapshots.us.freebsd.org/"></ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="stable">
+ <para>В чём смысл <emphasis>&os;-STABLE</emphasis>?</para>
+ </question>
+
+ <answer>
+ <para>После того, как была выпущена &os; 2.0.5, разработка &os;
+ разделилась на две части. Одна ветка получила название <ulink
+ url="&url.books.handbook;/current-stable.html#STABLE">
+ -STABLE</ulink>, а другая <ulink
+ url="&url.books.handbook;/current-stable.html#CURRENT">
+ -CURRENT</ulink>.
+ <emphasis>&os;-STABLE</emphasis> предназначена для
+ провайдеров услуг Интернет и
+ других коммерческих пользователей, для которых неожиданные
+ изменения или экспериментальные возможности
+ весьма нежелательны. В неё вносятся только хорошо оттестированные
+ исправления и другие небольшие последовательные усовершенствования.
+ С другой стороны, <emphasis>&os;-CURRENT</emphasis> являлась
+ единой веткой, не
+ разрываемой с момента выхода версии 2.0 и ведущей к
+ &rel.current;-RELEASE и последующим релизам. Для получения
+ более подробной информации по веткам обратитесь к
+ разделу статьи <quote><ulink
+ url="&url.articles.releng;/release-proc.html#REL-BRANCH">
+ Подготовка релизов &os;: Создание ветки
+ релиза</ulink></quote>. Статус веток и расписание
+ предстоящих релизов можно получить на странице <ulink
+ url="http://www.FreeBSD.org/releng">Информация о подготовке
+ релизов</ulink>.</para>
+
+ <para>Ветвь 2.2-STABLE была завершена выходом релиза 2.2.8. Ветвь
+ 3-STABLE была завершена выходом релиза 3.5.1, последнего из
+ 3.<replaceable>X</replaceable>. Ветвь 4-STABLE была завершена
+ выходом релиза 4.11, последнего из 4.<replaceable>X</replaceable>.
+ Единственными изменениями в этих ветвях могут быть только
+ исправления ошибок, касающихся безопасности. Поддержка ветви
+ 5-STABLE была завершена выходом релиза 5.5, последнего из
+ 5.<replaceable>X</replaceable>. Поддержка ветви 6-STABLE
+ продолжится некоторое время, но в основном будет касаться
+ исправления ошибок в информационной защите и других серьёзных
+ вопросах.</para>
+
+ <para>Активно разрабатываемой веткой <emphasis>-STABLE</emphasis>
+ является &rel.current;-STABLE. Последним релизом в ветке
+ &rel.current;-STABLE является
+ &rel.current;-RELEASE, выпущенный &rel.current.date;.</para>
+
+ <para>Активно разрабатываемой веткой <emphasis>-CURRENT</emphasis>
+ является ветка &rel.head;, которая движется к созданию следующего
+ поколения &os;.
+ Прочтите ответ на вопрос <link linkend="current">Что такое
+ &os;-CURRENT?</link> для получения более подробной информации об
+ этой ветке.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="release-freq">
+ <para>В какой момент выпускаются новые версии &os;?</para>
+ </question>
+
+ <answer>
+ <para>&a.re; выпускает новую старшую версию &os; в среднем
+ каждые 18 месяцев и младшие версии каждые 8 месяцев. Даты
+ релизов обычно объявляются заранее, так что те, кто
+ работает над системой, знают, когда их проекты должны быть
+ закончены и протестированы. Период тестирования предшествует
+ выходу каждого релиза, для того, чтобы удостовериться в том, что
+ добавление новых возможностей не повлияло на стабильность работы
+ релиза. Многие пользователи расценивают такую осторожность
+ как одну из приятнейших черт &os;, хотя необходимость дожидаться
+ <emphasis>-STABLE</emphasis> для получения всех этих новых
+ возможностей может несколько разочаровывать.</para>
+
+ <para>Дополнительная информация о процессе подготовки релиза (в том
+ числе планы выпуска последующих релизов) может быть найдена на
+ страницах Web-сайта &os;, посвящённых <ulink
+ url="http://www.FreeBSD.org/releng/index.html">выпуску
+ релизов</ulink>.</para>
+
+ <para>Для тех, кому нужно или хочется, ежедневно выпускаются
+ бинарные релизы, как это описано выше.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="responsible">
+ <para>Кто разрабатывает &os;?</para>
+ </question>
+
+ <answer>
+ <para>Решения, которые касаются ключевых моментов в проекте &os;,
+ такие, как общее направление развития проекта или кто
+ может добавлять код к дереву исходных текстов, принимаются <ulink
+ url="&url.base;/administration.html#t-core">основной
+ командой</ulink> разработчиков (Core Team), состоящей из 9 человек.
+ Также существует многочисленная группа, состоящая из более чем 350
+ так называемых <ulink
+ url="&url.articles.contributors;/article.html#STAFF-COMMITTERS">
+ коммиттеров</ulink> (committers), которые могут вносить изменения
+ прямо в дерево исходных текстов &os;.</para>
+
+ <para>Однако большинство нетривиальных изменений широко обсуждается
+ в <link linkend="mailing">списках рассылки</link>, и не существует
+ никаких ограничений на участие в подобных дискуссиях.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="where-get">
+ <para>Где можно найти &os;?</para>
+ </question>
+
+ <answer>
+ <para>Все основные релизы &os; доступны по FTP с <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/">FTP-сервера
+ &os;</ulink>:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Последний релиз &rel.stable;, &rel.current;-RELEASE,
+ можно найти в <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/i386/&rel.current;-RELEASE">
+ каталоге с &rel.current;-RELEASE</ulink>.</para>
+ </listitem>
+
+ <listitem>
+ <para><ulink url="&url.base;/snapshots/">
+ Снэпшот-релизы</ulink> для веток <link
+ linkend="current">-CURRENT</link> и <link
+ linkend="stable">-STABLE</link> выпускаются ежемесячно, но
+ они нужны исключительно для разработчиков и тех, кто тестирует
+ самые последние наработки.</para>
+ </listitem>
+
+ <listitem>
+ <para>Последний релиз &rel2.stable;, &rel2.current;-RELEASE,
+ можно найти в <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel2.current;-RELEASE/">
+ каталоге с &rel2.current;-RELEASE</ulink>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Последний релиз &rel3.stable;, &rel3.current;-RELEASE,
+ можно найти в <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel3.current;-RELEASE/">
+ каталоге с &rel3.current;-RELEASE</ulink>.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Информация о получении/приобретении &os; на CD, DVD и
+ других носителях доступна в <ulink
+ url="&url.books.handbook;/mirrors.html">Руководстве</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="access-pr">
+ <para>Как можно получить доступ к базе сообщений о проблемах (Problem
+ Report)?</para>
+ </question>
+
+ <answer>
+ <para>База данных всех сообщений пользователей о проблемах может быть
+ запрошена с помощью нашего <ulink
+ url="http://www.FreeBSD.org/cgi/query-pr.cgi?query">
+ Web-интерфейса</ulink>.</para>
+
+ <para>Команда &man.send-pr.1; может быть использована для передачи
+ и изменения сообщений о проблемах через электронную почту.
+ Альтернативно можно использовать <ulink
+ url="http://www.freebsd.org/send-pr.html">Web-интерфейс для отсылки
+ сообщений об ошибках</ulink> через браузер.</para>
+
+ <para>Перед тем, как посылать сообщение об ошибке, пожалуйста,
+ прочтите статью <ulink
+ url="&url.articles.problem-reports;/article.html">Составление
+ сообщений о проблеме во &os;</ulink> о том, как писать хорошие
+ сообщения об ошибках.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="other-info-sources">
+ <para>Другие источники информации.</para>
+ </question>
+
+ <answer>
+ <para>Пожалуйста, посмотрите список имеющейся <ulink
+ url="http://www.FreeBSD.org/docs.html">документации</ulink> на
+ главной странице сайта <ulink
+ url="http://www.FreeBSD.org">&os;</ulink>.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="support">
+ <title>Документация и поддержка</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="books">
+ <para>Есть ли хорошие книги по &os;?</para>
+ </question>
+
+ <answer>
+ <para>В рамках проекта создан широкий спектр документации, которая
+ доступна on-line по следующей ссылке: <ulink
+ url="http://www.FreeBSD.org/docs.html"></ulink>. Кроме того,
+ в <link linkend="bibliography">Библиографии</link>
+ в конце этого FAQ и в <ulink
+ url="&url.books.handbook;/bibliography.html">Руководстве</ulink>
+ имеются ссылки на другие рекомендуемые для чтения книги.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="doc-formats">
+ <para>Есть ли версии документации в другом формате, например,
+ в виде обычного текста ASCII или &postscript;?</para>
+ </question>
+
+ <answer>
+ <para>Да. Документация имеется в нескольких различных форматах и
+ упакованная разными способами на FTP-сервере &os;, и находится
+ она в каталоге <ulink url="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">
+ /pub/FreeBSD/doc/</ulink>.</para>
+
+ <para>Документация подразделяется на категории различными способами.
+ Это включает:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Имя документа, например, <literal>faq</literal> или
+ <literal>handbook</literal>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Язык и кодировка документа. Они опираются на имена
+ локализаций, которые вы найдёте в каталоге
+ <filename class="directory">/usr/share/locale</filename>
+ вашей системы &os;.
+ На данный момент для документации поддерживаются следующие
+ языки и кодировки:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Кодировка</entry>
+
+ <entry>Язык</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><literal>en_US.ISO8859-1</literal></entry>
+
+ <entry>Английский (США)</entry>
+ </row>
+
+ <row>
+ <entry><literal>bn_BD.ISO10646-1</literal></entry>
+
+ <entry>Бенгальский или Бангла (Бангладеш)</entry>
+ </row>
+
+ <row>
+ <entry><literal>da_DK.ISO8859-1</literal></entry>
+
+ <entry>Датский (Дания)</entry>
+ </row>
+
+ <row>
+ <entry><literal>de_DE.ISO8859-1</literal></entry>
+
+ <entry>Немецкий (Германия)</entry>
+ </row>
+
+ <row>
+ <entry><literal>el_GR.ISO8859-7</literal></entry>
+
+ <entry>Греческий (Греция)</entry>
+ </row>
+
+ <row>
+ <entry><literal>es_ES.ISO8859-1</literal></entry>
+
+ <entry>Испанский (Испания)</entry>
+ </row>
+
+ <row>
+ <entry><literal>fr_FR.ISO8859-1</literal></entry>
+
+ <entry>Французский (Франция)</entry>
+ </row>
+
+ <row>
+ <entry><literal>hu_HU.ISO8859-2</literal></entry>
+
+ <entry>Венгерский (Венгрия)</entry>
+ </row>
+
+ <row>
+ <entry><literal>it_IT.ISO8859-15</literal></entry>
+
+ <entry>Итальянский (Италия)</entry>
+ </row>
+
+ <row>
+ <entry><literal>ja_JP.eucJP</literal></entry>
+
+ <entry>Японский (Япония, кодировка EUC)</entry>
+ </row>
+
+ <row>
+ <entry><literal>mn_MN.UTF-8</literal></entry>
+
+ <entry>Монгольский (Монголия, кодировка UTF-8)</entry>
+ </row>
+
+ <row>
+ <entry><literal>nl_NL.ISO8859-1</literal></entry>
+
+ <entry>Голландский (Нидерланды)</entry>
+ </row>
+
+ <row>
+ <entry><literal>no_NO.ISO8859-1</literal></entry>
+
+ <entry>Норвежский (Норвегия)</entry>
+ </row>
+
+ <row>
+ <entry><literal>pl_PL.ISO8859-2</literal></entry>
+
+ <entry>Польский (Польша)</entry>
+ </row>
+
+ <row>
+ <entry><literal>pt_BR.ISO8859-1</literal></entry>
+
+ <entry>Португальский (Бразилия)</entry>
+ </row>
+
+ <row>
+ <entry><literal>ru_RU.KOI8-R</literal></entry>
+
+ <entry>Русский (Россия, кодировка KOI8-R)</entry>
+ </row>
+
+ <row>
+ <entry><literal>sr_YU.ISO8859-2</literal></entry>
+
+ <entry>Сербский (Сербия)</entry>
+ </row>
+
+ <row>
+ <entry><literal>tr_TR.ISO8859-9</literal></entry>
+
+ <entry>Турецкий (Турция)</entry>
+ </row>
+
+ <row>
+ <entry><literal>zh_CN.GB2312</literal></entry>
+
+ <entry>Упрощённый китайский (Китай, кодировка
+ GB2312)</entry>
+ </row>
+
+ <row>
+ <entry><literal>zh_TW.Big5</literal></entry>
+
+ <entry>Традиционный китайский (Тайвань, кодировка
+ Big5)</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <note>
+ <para>Некоторые документы могут иметься не на всех
+ языках.</para>
+ </note>
+ </listitem>
+
+ <listitem>
+ <para>Формат документа. Мы создаём документацию в нескольких
+ различных форматах. У каждого из форматов имеются свои плюсы
+ и свои минусы. Некоторые форматы лучше подходят для чтения
+ в on-line, когда как другие предназначены для получения
+ эстетично выглядящей на бумаге копии. Наличие документации
+ во всех этих форматах обеспечивает возможность прочтения
+ нашими пользователями любой её части как с экрана монитора, так
+ и на бумаге после вывода на печать. На данный момент
+ поддерживаются следующие форматы;</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Формат</entry>
+
+ <entry>Значение</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><literal>html-split</literal></entry>
+
+ <entry>Набор маленьких связанных друг с другом
+ HTML-файлов.</entry>
+ </row>
+
+ <row>
+ <entry><literal>html</literal></entry>
+
+ <entry>Один большой HTML-файл, полностью содержащий
+ документ.</entry>
+ </row>
+
+ <row>
+ <entry><literal>pdf</literal></entry>
+
+ <entry>Adobe's Portable Document Format</entry>
+ </row>
+
+ <row>
+ <entry><literal>ps</literal></entry>
+
+ <entry>&postscript;</entry>
+ </row>
+
+ <row>
+ <entry><literal>rtf</literal></entry>
+
+ <entry>Rich Text Format от Microsoft</entry>
+ </row>
+
+ <row>
+ <entry><literal>txt</literal></entry>
+
+ <entry>Обычный текст</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <note>
+ <para>Номера страниц при загрузке Rich Text Format в
+ Word автоматически не обновляются. Для обновления
+ нумерации нажмите <keycombo action="simul">
+ <keycap>Ctrl</keycap><keycap>A</keycap>
+ </keycombo>,
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap><keycap>End</keycap></keycombo>,
+ <keycap>F9</keycap> после загрузки документа.</para>
+ </note>
+ </listitem>
+
+ <listitem>
+ <para>Способ сжатия и создания архива. Сейчас используется
+ три варианта.</para>
+
+ <orderedlist>
+ <listitem>
+ <para>В случае формата <literal>html-split</literal>, файлы
+ архивируются с помощью &man.tar.1;. Получающийся файл
+ <filename>.tar</filename> затем подвергается сжатию по
+ схемам, подробно описываемым далее.</para>
+ </listitem>
+
+ <listitem>
+ <para>Все другие форматы генерируют один файл с именем
+ <filename><replaceable>type</replaceable>.<replaceable>format</replaceable></filename>
+ (то есть <filename>article.pdf</filename>,
+ <filename>book.html</filename>, и так далее).</para>
+
+ <para>Эти файлы затем сжимаются по двум схемам сжатия.</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Схема</entry>
+
+ <entry>Описание</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><literal>zip</literal></entry>
+
+ <entry>Формат <literal>zip</literal>. Если
+ вам нужно будет развернуть это во &os;, то
+ потребуется установить сначала порт <filename
+ role="package">archivers/unzip</filename>.</entry>
+ </row>
+
+ <row>
+ <entry><literal>bz2</literal></entry>
+
+ <entry>Формат <literal>bzip2</literal>.
+ Используется реже, чем Zip, но, как правило,
+ даёт файлы меньшего размера. Чтобы работать
+ с такими файлами, установите порт <filename
+ role="package">archivers/bzip2</filename>.</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>Таким образом, сжатая в <literal>bzip2</literal>
+ версия Руководства в формате &postscript;, будет
+ находиться в файле
+ с именем <filename>book.ps.bz2</filename> в каталоге
+ <filename class="directory">handbook/</filename>.</para>
+ </listitem>
+ </orderedlist>
+ </listitem>
+ </itemizedlist>
+
+ <para>После выбора формата и способа компрессии, в котором вы хотите
+ получить файл, вам нужно самим
+ сгрузить упакованные файлы, распаковать их, а затем скопировать
+ документацию в соответствующие места.</para>
+
+ <para>Например, версия FAQ в виде отдельных HTML-файлов, упакованная
+ при помощи &man.bzip2.1;, находится в файле
+ <filename>doc/ru_RU.KOI8-R/books/faq/book.html-split.tar.bz2</filename>.
+ Для сгрузки и распаковки этого файла вам нужно сделать вот
+ что.</para>
+
+ <screen>&prompt.root; <userinput>fetch ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/en_US.ISO8859-1/books/faq/book.html-split.tar.bz2</userinput>
+&prompt.root; <userinput>bzip2 -d book.html-split.tar.bz2</userinput>
+&prompt.root; <userinput>tar xvf book.html-split.tar</userinput></screen>
+
+ <para>У вас получится набор файлов <filename>.html</filename>.
+ Главным является <filename>index.html</filename>, и в нём
+ находится оглавление, вводный материал и ссылки на остальные части
+ документа. После этого вы их можете копировать и перемещать при
+ необходимости на окончательное местоположение.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="mailing">
+ <para>Где найти информацию по спискам рассылки &os;?</para>
+ </question>
+
+ <answer>
+ <para>Исчерпывающая информация содержится в <ulink
+ url="&url.books.handbook;/eresources.html#ERESOURCES-MAIL">
+ разделе</ulink>
+ Руководства, который посвящён спискам рассылки.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="newsgroups">
+ <para>Какие существуют телеконференции по &os;?</para>
+ </question>
+
+ <answer>
+ <para>Полная информация о группах новостей есть в <ulink
+ url="&url.books.handbook;/eresources-news.html">разделе</ulink>
+ Руководства, касающемся телеконференций.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="irc">
+ <para>Существуют ли каналы IRC (Internet Relay Chat) по
+ &os;?</para>
+ </question>
+
+ <answer>
+ <para>Да, большинство сетей IRC имеют канал &os;:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Канал <literal>#FreeBSD</literal> в сети <ulink
+ url="http://www.efnet.org/index.php">EFNet</ulink> посвящён
+ &os;, но не обращайтесь туда за технической поддержкой и
+ даже не пытайтесь найти человека, который поможет вам
+ обойтись без чтения страниц Справочника или собственных
+ изысканий. Этот канал предназначен в первую и основную
+ очередь для общения, и в круг обсуждаемых тем входят секс,
+ спорт, ядерное оружие, как будто это и есть &os;. В
+ общем, вас предупредили! Канал доступен на сервере
+ <hostid>irc.efnet.org</hostid>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Канал <literal>#FreeBSDhelp</literal> в сети <ulink
+ url="http://www.efnet.org/index.php">EFNet</ulink>
+ предназначен для помощи пользователям &os;. Здесь гораздо
+ более благосклонно относятся к вопросам, чем на канале
+ <literal>#FreeBSD</literal>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Канал <literal>##FreeBSD</literal> в сети
+ <ulink url="http://freenode.net/">Freenode</ulink>
+ предназначен для помощи общего характера, на нём
+ в любое время присутствует много посетителей.
+ Общение в течение уже некоторого времени известно своей
+ тенденцией сводиться к разговорам не по теме, но приоритет
+ отдается пользователям с вопросами по &os;. Мы рады
+ помочь разобраться в основах, отсылая к Руководству по мере
+ возможности и направляя вас туда, где вы сможете более
+ глубоко изучить интересующие вас темы. В целом, мы
+ являемся англоговорящим каналом, несмотря на то, что к нам
+ приходят пользователи со всего мира. Если вы пожелаете
+ общаться на родном языке, то попробуйте попросить об этом
+ на английском и затем перейдите на другой канал
+ <literal>##freebsd-<replaceable>lang</replaceable></literal>
+ по мере необходимости.</para>
+ </listitem>
+
+ <listitem>
+ <para>Канал <literal>#FreeBSD</literal> в сети <ulink
+ url="http://www.dal.net/">DALNET</ulink>
+ доступен на сервере <hostid>irc.dal.net</hostid> в США и на
+ <hostid>irc.eu.dal.net</hostid> в Европе.</para>
+ </listitem>
+
+ <listitem>
+ <para>Канал <literal>#FreeBSD</literal> в сети <ulink
+ url="http://www.undernet.org/">UNDERNET</ulink>
+ доступен на серверах <hostid>us.undernet.org</hostid> в США и
+ <hostid>eu.undernet.org</hostid> в Европе. Так как это канал
+ взаимопомощи, приготовьтесь к чтению документации, к которой
+ вас отошлют.</para>
+ </listitem>
+
+ <listitem>
+ <para>Канал <literal>#FreeBSD</literal> в сети
+ <ulink url="http://www.rusnet.org.ru/">RUSNET</ulink>
+ это канал для русскоговорящих посетителей, посвящённый
+ помощи пользователям &os;. Также это хорошее место
+ для не технических дискуссий.</para>
+ </listitem>
+
+ <listitem>
+ <para>Канал <literal>#bsdchat</literal> в сети
+ <ulink url="http://freenode.net/">Freenode</ulink>
+ это канал для посетителей, говорящих на китайском
+ традиционном языке (кодировка UTF-8), посвящённый
+ помощи пользователям &os;. Также это хорошее место
+ для не технических дискуссий.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Все эти каналы разные и не имеют отношения друг к другу. Их
+ стили общения также отличаются, так что вам, может быть, придётся
+ попробовать все, чтобы найти тот, который соответствует вашему
+ стилю. Как и обычно с <emphasis>любым</emphasis> каналом IRC,
+ если вы легко раздражаетесь или не можете иметь дела с большим
+ количеством лиц школьного (и младшего школьного) возраста,
+ пытающихся озвучить свои попытки самоутвердиться, не обращайте на
+ это внимания.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="forums">
+ <para>Есть ли какие-нибудь web-форумы для обсуждения &os;?</para>
+ </question>
+
+ <answer>
+ <para>Официальные форумы &os; расположены по адресу <ulink
+ url="http://forums.FreeBSD.org/">http://forums.FreeBSD.org/</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="training">
+ <para>Где можно пройти платные курсы по &os; и получить
+ поддержку?</para>
+ </question>
+
+ <answer>
+ <para><ulink
+ url="http://www.ixsystems.com">iXsystems, Inc.</ulink>,
+ дочерней компанией которой является <ulink
+ url="http://www.freebsdmall.com/">&os; Mall</ulink>,
+ предоставляет <ulink
+ url="http://www.ixsystems.com/bsdsupport">поддержку</ulink>
+ &os; и программного обеспечения PC-BSD на коммерческой
+ основе, в дополнение к разработке &os; и решениям, требующим
+ тонкой настройки.</para>
+
+ <para>BSD Certification Group, Inc. предоставляет сертификацию
+ системного администрирования DragonFly&nbsp;BSD, &os;,
+ NetBSD, OpenBSD. Если вы в этом заинтересованы, посетите
+ <ulink url="http://www.BSDCertification.org">их
+ сайт</ulink>.</para>
+
+ <para>Чтобы попасть в этот список, другие организации,
+ осуществляющие обучение и поддержку, должны обратиться к
+ нам в Проект.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="install">
+ <chapterinfo>
+ <author>
+ <firstname>Nik</firstname>
+ <surname>Clayton</surname>
+ <affiliation>
+ <address><email>nik@FreeBSD.org</email></address>
+ </affiliation>
+ </author>
+ </chapterinfo>
+
+ <title>Установка</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="floppy-download">
+ <para>Какой файл нужно скачать для установки &os;?</para>
+ </question>
+
+ <answer>
+ <para>Вам нужны образы трёх дискет:
+ <filename>floppies/boot.flp</filename>,
+ <filename>floppies/kern1.flp</filename> и
+ <filename>floppies/kern2.flp</filename>. Эти образы нужно
+ перенести на дискеты с помощью таких утилит, как
+ <command>fdimage</command> или &man.dd.1;.</para>
+
+ <para>Если вы хотите скачать дистрибутив самостоятельно (например,
+ для установки с раздела DOS), вот список рекомендованных частей
+ дистрибутива:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>base/</para>
+ </listitem>
+
+ <listitem>
+ <para>manpages/</para>
+ </listitem>
+
+ <listitem>
+ <para>compat*/</para>
+ </listitem>
+
+ <listitem>
+ <para>doc/</para>
+ </listitem>
+
+ <listitem>
+ <para>src/ssys.*</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Полные инструкции по этой процедуре и об установке вообще можно
+ найти в <ulink url="&url.books.handbook;/install.html">
+ разделе</ulink> Руководства, посвящённом установке &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="floppy-image-too-large">
+ <para>Помогите! Загрузочный файл не помещается на дискету!</para>
+ </question>
+
+ <answer>
+ <para>На дискету размером 3.5&nbsp;дюйма (1.44&nbsp;Мбайт) может
+ поместиться 1,474,560&nbsp;байт данных. Образ дискеты имеет
+ размер ровно 1,474,560&nbsp;байт.</para>
+
+ <para>Типичные ошибки при подготовке загрузочной дискеты:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Образ дискеты был загружен по FTP не в режиме
+ <emphasis>binary</emphasis>.</para>
+
+ <para>Некоторые клиентские программы FTP используют по умолчанию
+ текстовый (<emphasis>ascii</emphasis>) режим передачи и
+ пытаются поменять все принятые последовательности символов
+ "конец строки" на соответствующие им в вашей системе. В таком
+ случае образ загрузочного диска будет неизбежно испорчен.
+ Проверьте размер полученного файла: если он не
+ <emphasis>точно</emphasis> такой же, как на FTP-сервере, то
+ ошибка произошла, скорее всего, в процессе передачи.</para>
+
+ <para>Во избежание этого введите команду
+ <emphasis>binary</emphasis> в командной строке FTP после того,
+ как вы подключитесь к серверу, но до того, как начали
+ скачивать файл.</para>
+ </listitem>
+
+ <listitem>
+ <para>Для переноса образа на дискету была использована команда DOS
+ <command>copy</command> (или её аналог с графическим
+ интерфейсом).</para>
+
+ <para>Программы типа <command>copy</command> не работают с
+ образами дискет, предназначенными для загрузки. Образ содержит
+ полное содержимое дискеты, дорожка за дорожкой, и не
+ предназначен для помещения на дискету в качестве обычного
+ файла. Вам необходимо перенести его на дискету
+ <quote>непосредственно</quote>, используя низкоуровневые
+ средства (такие, как <command>fdimage</command> или
+ <command>rawrite</command>), описанные в <ulink
+ url="&url.books.handbook;/install.html">
+ Руководстве</ulink>.</para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="install-instructions-location">
+ <para>Где инструкции по установке &os;?</para>
+ </question>
+
+ <answer>
+ <para>Инструкции по установке могут быть найдены в
+ <ulink url="&url.books.handbook;/install.html">главе</ulink>
+ Руководства, посвящённой установке &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="need-to-run">
+ <para>Что мне нужно иметь для запуска &os;?</para>
+ </question>
+
+ <answer>
+ <para>Для работы &os; необходим ПК класса 486 и
+ выше с оперативной памятью объёмом не менее 24&nbsp;Мбайт и жёстким
+ диском объёмом не менее 150&nbsp;Мбайт.</para>
+
+ <para>Все версии &os; могут работать с недорогими
+ графическими адаптерами MDA, но для работы с &xorg; требуется
+ адаптер стандарта VGA или лучше.</para>
+
+ <para>Обратитесь также к <xref linkend="hardware"/>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="custom-boot-floppy">
+ <para>Как сделать оригинальную загрузочную дискету?</para>
+ </question>
+
+ <answer>
+ <para>В настоящий момент нет <emphasis>простого</emphasis> способа
+ сделать оригинальную загрузочную дискету. Вам придётся делать
+ новый релиз полностью, включая загрузочную дискету.</para>
+
+ <para>Чтобы сделать оригинальный релиз, следуйте инструкциям в
+ статье о <ulink url="&url.articles.releng;/article.html">процессе
+ выпуска релизов</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="windows-coexist">
+ <para>Может ли &windows; сосуществовать с &os;?</para>
+ </question>
+
+ <answer>
+ <para>Сначала установите &windows;, а затем &os;. Менеджер
+ загрузки &os; будет управлять процессом загрузки &windows; или
+ &os;. Если после этого вы ещё раз выполните процедуру установки
+ &windows;, то при этом менеджер загрузки будет грубо
+ удалён. Если такое случится, обратитесь к следующему
+ разделу.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="win95-damaged-boot-manager">
+ <para>&windows; уничтожила мой менеджер загрузки! Как мне его
+ вернуть?</para>
+ </question>
+
+ <answer>
+ <para>Вы можете переустановить менеджер загрузки &os; тремя
+ способами:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Запустите DOS, перейдите в каталог <filename
+ class="directory">tools</filename> вашего
+ дистрибутива &os; и найдите программу
+ <filename>bootinst.exe</filename>. Запустите её следующим
+ образом:</para>
+
+ <screen><prompt>...\TOOLS&gt;</prompt> <userinput>bootinst.exe boot.bin</userinput></screen>
+
+ <para>и менеджер загрузки будет переустановлен.</para>
+ </listitem>
+
+ <listitem>
+ <para>Загрузитесь с установочной дискеты &os; и перейдите в
+ меню установки <guimenuitem>Custom</guimenuitem>. Выберите
+ пункт <guimenuitem>Partition</guimenuitem>. Выберите
+ устройство, на котором будет располагаться ваш менеджер
+ загрузки (это будет самый первый диск) и когда вы перейдете
+ к редактированию разделов, первым делом (то есть ещё не
+ делая никаких изменений) нажмите <keycap>W</keycap>.
+ Последует запрос на подтверждение, выберите &gui.yes;, и
+ когда вы попадёте в меню выбора менеджера загрузки, выберите
+ пункт <application>&os; Boot Manager</application>.
+ Менеджер загрузки будет переписан на диск. Теперь нужно
+ выйти из меню установки и загрузиться с винчестера как
+ обычно.</para>
+ </listitem>
+
+ <listitem>
+ <para>Загрузитесь с установочной дискеты (или компакт-диска)
+ &os; и найдите пункт меню <guimenuitem>Fixit</guimenuitem>.
+ Выберите
+ Fixit floppy или CD-ROM #2 (<quote>живая</quote> файловая
+ система) соответственно вашему случаю и вы окажетесь в
+ приглашении командного процессора.
+ Теперь выполните следующую команду:</para>
+
+ <screen><prompt>Fixit#</prompt> <userinput>fdisk -B -b /boot/boot0 <replaceable>bootdevice</replaceable></userinput></screen>
+
+ <para>подставив вместо <replaceable>bootdevice</replaceable>
+ название реально используемого для загрузки устройства,
+ например, <devicename>ad0</devicename> (первый диск IDE),
+ <devicename>ad4</devicename> (первый диск IDE на дополнительном
+ контроллере), <devicename>da0</devicename> (первый диск SCSI) и
+ тому подобное.</para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="boot-on-thinkpad">
+ <para>На компьютерах IBM Thinkpad серий A, T и X операционная система
+ устанавливается, но при следующей перезагрузке машины зависают.
+ Как можно от этого избавиться?</para>
+ </question>
+
+ <answer>
+ <para>Из-за ошибки в первых версиях BIOS от IBM раздел &os; на
+ этих машинах распознаётся как возможный служебный раздел FAT для
+ режима сна. Когда BIOS пытается обработать раздел &os;,
+ происходит зависание.</para>
+
+ <para>Согласно IBM<footnote> <para>Письмо от Keith Frechette
+ <email>kfrechet@us.ibm.com</email>.</para></footnote>,
+ исправление включено в следующие релизы моделей/BIOS.</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Модель</entry>
+
+ <entry>Номер версии BIOS</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>T20</entry>
+
+ <entry>IYET49WW и выше</entry>
+ </row>
+
+ <row>
+ <entry>T21</entry>
+
+ <entry>KZET22WW и выше</entry>
+ </row>
+
+ <row>
+ <entry>A20p</entry>
+
+ <entry>IVET62WW и выше</entry>
+ </row>
+
+ <row>
+ <entry>A20m</entry>
+
+ <entry>IWET54WW и выше</entry>
+ </row>
+
+ <row>
+ <entry>A21p</entry>
+
+ <entry>KYET27WW и выше</entry>
+ </row>
+
+ <row>
+ <entry>A21m</entry>
+
+ <entry>KXET24WW и выше</entry>
+ </row>
+
+ <row>
+ <entry>A21e</entry>
+
+ <entry>KUET30WW</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+
+ <para>Сообщалось, что в более поздних версиях BIOS от IBM эта
+ ошибка может появиться снова. <ulink
+ url="http://docs.FreeBSD.org/cgi/mid.cgi?20010427133759.A71732">Это
+ сообщение</ulink> от &a.nectar; в &a.mobile; описывает
+ процедуру, выполнение которой может помочь, если ваш новый лэптоп
+ от IBM не загружает &os;, и вы можете изменить BIOS.</para>
+
+ <para>Если у вас BIOS более ранней версии и обновление для вас не
+ представляется возможным, то это можно обойти, установив &os;,
+ изменив идентификатор раздела, используемый &os; и установив
+ новые загрузочные блоки, которые могут работать с различными ID
+ разделов.</para>
+
+ <para>Во-первых, вам нужно привести компьютер в состояние, когда он
+ проходит через экран самотестирования. Для этого требуется включить
+ машину, не позволяя ей найти раздел &os; на ведущем диске. Одним
+ из способов сделать это является извлечение винчестера и временное
+ его установка на более старый ThinkPad (такой, как ThinkPad 600) или
+ настольный ПК с подходящим переходным кабелем. Здесь вы можете
+ удалить раздел &os; и вернуть диск на место. ThinkPad должен
+ загружаться снова.</para>
+
+ <para>С работающей машиной вы можете использовать процедуру, описанную
+ здесь, для получения рабочей системы &os;.</para>
+
+ <procedure>
+ <step>
+ <para>Сгрузите файлы <filename>boot1</filename> и
+ <filename>boot2</filename> по адресу <ulink
+ url="http://people.FreeBSD.org/~bmah/ThinkPad/"></ulink>.
+ Поместите эти файлы куда-нибудь, откуда вы сможете их потом
+ взять.</para>
+ </step>
+
+ <step>
+ <para>Установите &os; обычным образом на ThinkPad.
+ <emphasis>Не используйте</emphasis> режим <literal>Dangerously
+ Dedicated</literal>. <emphasis>Не перезагружайтесь</emphasis>
+ после окончания установки.</para>
+ </step>
+
+ <step>
+ <para>Переключитесь в экран <quote>Emergency Holographic
+ Shell</quote> (<keycombo action="simul"><keycap>Alt</keycap>
+ <keycap>F4</keycap></keycombo>) или запустите оболочку
+ <quote>fixit</quote>.</para>
+ </step>
+
+ <step>
+ <para>Используйте команду &man.fdisk.8; для изменения
+ идентификатора раздела &os; со <literal>165</literal> на
+ <literal>166</literal> (этот тип используется в OpenBSD).</para>
+ </step>
+
+ <step>
+ <para>Перепишите файлы <filename>boot1</filename> и
+ <filename>boot2</filename> на локальную файловую систему.</para>
+ </step>
+
+ <step>
+ <para>Для записи <filename>boot1</filename> и
+ <filename>boot2</filename> на слайс с &os; воспользуйтесь
+ командой &man.disklabel.8;.</para>
+
+ <screen>&prompt.root; <userinput>disklabel -B -b boot1 -s boot2 ad0s<replaceable>n</replaceable></userinput></screen>
+
+ <para>Здесь <replaceable>n</replaceable> означает номер слайса,
+ в котором установлена &os;.</para>
+ </step>
+
+ <step>
+ <para>Выполните перезагрузку. В приглашении загрузчика вам будет
+ дан выбор для загрузки <literal>OpenBSD</literal>. На самом
+ деле при этом загружается &os;.</para>
+ </step>
+ </procedure>
+
+ <para>Случай, когда вы хотите загружать OpenBSD и &os; на одном и
+ том же лэптопе, оставлен читателю в качестве упражнения.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="install-bad-blocks">
+ <para>Можно ли производить установку на диск с повреждёнными
+ блоками?</para>
+ </question>
+
+ <answer>
+ <para>Вы можете это сделать, но это плохая идея.</para>
+
+ <para>Если вы обнаружите испорченные блоки на современном диске IDE,
+ то весьма вероятно, что он скоро выйдет из строя совсем
+ (собственная способность переносить испорченные блоки исчерпана,
+ что означает очень большую порчу поверхности); мы рекомендуем
+ приобрести новый диск.</para>
+
+ <para>Если повреждённые блоки находятся на SCSI диске, взгляните на
+ <link linkend="awre">такое решение</link>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="boot-floppy-strangeness">
+ <para>Странные вещи происходят при загрузке с установочного
+ диска!</para>
+ </question>
+
+ <answer>
+ <para>Если вы видите, что машина зависает или неожиданно
+ перезагружается, когда вы пытаетесь загрузиться с установочной
+ дискеты, вы должны задать себе три вопроса:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Вы используете новую, только что отформатированную дискету
+ (предпочтительно неиспользованную прямо из коробки, а не ту,
+ что пришла с популярным журналом и последние три года провела
+ под диваном)?</para>
+ </listitem>
+
+ <listitem>
+ <para>Вы скачали образ дискеты в двоичном режиме?
+ (не смущайтесь, даже лучшие из нас время от времени скачивают
+ двоичный файл в режиме ASCII!)</para>
+ </listitem>
+
+ <listitem>
+ <para>Если вы используете &windows;&nbsp;95 или
+ &windows;&nbsp;98, удостоверьтесь,
+ что вы запускаете <command>fdimage</command> или
+ <command>rawrite</command> в режиме чистого DOS? Эти
+ операционные системы могут влиять на программы, работающие
+ непосредственно с оборудованием, что и делает программа
+ создания установочного диска; даже запуск из DOS в графической
+ оболочке может вызвать проблемы.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Есть сведения, что &netscape; вызывает проблемы при скачивании
+ загрузочного диска, так что лучше всего использовать специальную
+ программу FTP, если она у вас есть.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="no-install-cdrom">
+ <para>Я загрузился с ATAPI CD-ROM, однако программа установки
+ сообщила, что CD-ROM не найден. Куда он подевался?</para>
+ </question>
+
+ <answer>
+ <para>Обычной причиной возникновения такой проблемы является
+ неправильно сконфигурированный привод CD-ROM. Теперь зачастую ПК
+ продаются с CD-ROM, установленным как ведомое устройство на втором
+ контроллере IDE, но без ведущего устройства на этом контроллере.
+ Согласно спецификации ATAPI, такая конфигурация неверна, однако
+ &windows; в таком случае всё же работает, и BIOS игнорирует это при
+ загрузке. Вот почему BIOS может видеть CD-ROM при загрузке, а
+ &os; для завершения установки - нет.</para>
+
+ <para>Переконфигурируйте вашу систему так, чтобы CD-ROM оказался либо
+ основным устройством на том IDE-контроллере, на котором он
+ установлен, либо ведомым устройством на контроллере IDE, который
+ имеет ведущее устройство.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="install-PLIP">
+ <para>Можно ли я установить систему на лэптоп через PLIP (Parallel
+ Line IP)?</para>
+ </question>
+
+ <answer>
+ <para>Да. Используйте стандартный кабель Laplink. Если необходимо,
+ обратитесь к <ulink url="&url.books.handbook;/network-plip.html">
+ разделу Руководства о PLIP</ulink> для выяснения деталей о работе
+ в сети через параллельный порт.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="geometry">
+ <para>Какие параметры диска я должен использовать?</para>
+ </question>
+
+ <answer>
+ <note>
+ <para>Под <quote>параметрами</quote> диска мы понимаем число
+ дорожек, головок и секторов на дорожку на диске, что для простоты
+ обозначается как C/H/S. Именно так работает BIOS персональных
+ компьютеров при чтении или записи диска.</para>
+ </note>
+
+ <para>Это вызывает много недоразумений у начинающих системных
+ администраторов. Прежде всего, <emphasis>физические</emphasis>
+ параметры диска SCSI не имеют никакого значения, так как &os;
+ работает в терминах дисковых блоков. Фактически нет такого
+ показателя, как <emphasis>физические параметры</emphasis>, так как
+ плотность размещения секторов различна по всему диску. То, что
+ производители называют <emphasis>физическими
+ параметрами</emphasis>, есть не что иное, как параметры, которые
+ они получили по занимаемому пространству. Для
+ дисков IDE, &os; работает в терминах C/H/S, но во всех
+ современных дисках они преобразовываются во внутреннее
+ представление.</para>
+
+ <para>Имеют значение только <emphasis>логические</emphasis>
+ параметры. Это то, что получает BIOS, когда спрашивает
+ <quote>какие у тебя параметры?</quote> Затем они используются для
+ обращения к диску. Так как &os; использует BIOS при загрузке,
+ очень важно получить верные параметры. В частности, если у вас на
+ диске находятся несколько операционных систем, они обе должны иметь
+ одинаковое представление о параметрах диска. В противном случае
+ серьёзные проблемы при загрузке неизбежны!</para>
+
+ <para>В случае дисков SCSI, параметры используются в зависимости от
+ того, включена ли поддержка расширенной трансляции на вашем
+ контроллере (что часто обозначается как <quote>поддержка дисков
+ DOS &gt;1GB</quote> или что-то похожее). Если эта возможность
+ выключена, то используйте <replaceable>N</replaceable> дорожек, 64
+ головки и 32 сектора на дорожку, где <replaceable>N</replaceable>
+ - это ёмкость диска в мегабайтах. Например, 2-гигабайтный диск
+ должен иметь 2048 дорожек, 64 головки и 32 сектора на
+ дорожку.</para>
+
+ <para>Если трансляция <emphasis>включена</emphasis> (что обычно
+ используется для преодоления некоторых ограничений &ms-dos;) и
+ ёмкость диска превышает 1&nbsp;Гбайт, используйте
+ <replaceable>M</replaceable> дорожек, 63
+ сектора на дорожку (<emphasis>не</emphasis> 64) и 255 головок, где
+ <replaceable>M</replaceable> обозначает объём диска в мегабайтах,
+ поделённый на 7.844238 (!). Таким
+ образом, наш диск объёмом 2&nbsp;Гбайт будет иметь 261 дорожку, 63
+ сектора на дорожку и 255 головок.</para>
+
+ <para>Если вы не уверены, или &os; ошибается при определении
+ параметров диска во время установки, самый простой способ решить
+ эту проблему - создать на диске маленький раздел DOS. После этого
+ BIOS должна определить параметры диска правильно (и вы всегда
+ можете удалить раздел DOS в редакторе разделов, если вы не хотите
+ его сохранить. Однако вы можете оставить его для настройки сетевых
+ адаптеров и тому подобных вещей.</para>
+
+ <para>Кроме того, существует свободно доступная утилита,
+ распространяемая вместе с &os;, которая называется
+ <filename>pfdisk.exe</filename>. Вы можете найти её в каталоге
+ <filename class="directory">tools</filename> компакт-диска с
+ &os; или на различных
+ FTP-серверах с &os;. Эту программу можно использовать для
+ определения параметров, используемых другими операционными
+ системами, расположенными на вашем диске. Затем вы можете
+ использовать эти параметры в редакторе разделов.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="disk-divide-restrictions">
+ <para>Есть ли ограничения на разбиение диска?</para>
+ </question>
+
+ <answer>
+ <para>Да. Вы должны убедиться, что корневой раздел находится до
+ 1024 дорожки, так чтобы BIOS могла загрузить с него ядро.
+ (Заметьте, что это ограничение BIOS компьютера, а не
+ &os;).</para>
+
+ <para>Для диска SCSI, это, как правило, будет означать, что
+ корневой раздел располагается в первых 1024&nbsp;Мбайтах (или в первых
+ 4096&nbsp;Мбайтах, если включен режим расширенной трансляции -
+ посмотрите предыдущий вопрос). Для дисков IDE соответствующее
+ значение равно 504&nbsp;Мбайтам.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="disk-manager">
+ <para>Совместима ли &os; с менеджерами дисков?</para>
+ </question>
+
+ <answer>
+ <para>&os; распознаёт <application>Ontrack Disk Manager</application>
+ и допускает его
+ использование. Другие менеджеры дисков не поддерживаются.</para>
+
+ <para>Если вы хотите использовать диск с &os;, вам не нужен
+ менеджер диска. Отконфигурируйте диск на столько пространства,
+ сколько сможет обработать BIOS (обычно 504&nbsp;Мбайта), и
+ &os; распознает, сколько места у вас есть на самом деле.
+ Если вы используете старый диск с контроллером MFM, вам может
+ потребоваться точно указать &os; количество используемых
+ дорожек.</para>
+
+ <para>Если вы хотите использовать &os; совместно с другой
+ операционной системой, это можно сделать и без менеджера диска:
+ удостоверьтесь, что загрузочный раздел &os; и раздел для другой
+ операционной системы не выходят за пределы 1024 дорожки. Если вы
+ будете осторожны, 20&nbsp;мегабайтного раздела для загрузки будет
+ достаточно.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="missing-os">
+ <para>При загрузке &os; первый раз после установки выдаётся
+ сообщение <errorname>Missing Operating System</errorname>. В чём
+ дело?</para>
+ </question>
+
+ <answer>
+ <para>Это классический случай, когда &os; и DOS или другая
+ операционная система конфликтуют по поводу <link
+ linkend="geometry">параметров</link> диска. Вам нужно будет
+ переустановить &os;, но имейте в виду, что инструкции, данные
+ выше, помогают всегда.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="stop-at-boot-manager">
+ <para>После приглашения менеджера загрузки <prompt>F?</prompt>
+ ничего не происходит.</para>
+ </question>
+
+ <answer>
+ <para>Это ещё один признак проблемы, описанной в предыдущем разделе.
+ Параметры диска в BIOS и параметры, используемые &os;, не
+ совпадают. Если ваш контроллер или BIOS поддерживают трансляцию
+ дорожек (часто обозначаемую как <literal>&gt;1GB drive
+ support</literal>), попробуйте включить эту возможность и
+ переустановить &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="need-complete-sources">
+ <para>Нужно ли устанавливать все исходные тексты системы?</para>
+ </question>
+
+ <answer>
+ <para>В общем случае, нет. Однако мы настоятельно рекомендуем
+ установить, как минимум, исходные тексты набора
+ <literal>base</literal>, включающий некоторые файлы, здесь
+ упоминаемые, и <literal>sys</literal>, в который включены исходные
+ тексты ядра. Для работы системы присутствия исходных текстов не
+ требуется, разве что для программы конфигурирования ядра
+ &man.config.8;. За исключением исходных текстов ядра, структура
+ исходных текстов системы позволяет монтировать их в режиме "только
+ для чтения" через NFS и генерировать выполнимые файлы программ
+ (из-за ограничений в исходных текстах ядра мы рекомендуем
+ монтировать их не прямо в <filename
+ class="directory">/usr/src</filename>, а в
+ какой-нибудь другой каталог с символическими ссылками для
+ дублирования структуры каталогов).</para>
+
+ <para>Наличие исходных текстов системы значительно облегчает процесс
+ перехода на новые версии &os;.</para>
+
+ <para>Для выбора подмножества исходных текстов, которое вы хотите
+ установить, используйте пункт меню <guimenuitem>Custom</guimenuitem>,
+ когда находитесь в меню <guimenuitem>Distributions</guimenuitem>
+ программы установки.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="need-kernel">
+ <para>Нужно ли перекомпилировать ядро?</para>
+ </question>
+
+ <answer>
+ <para>Изначально построение нового ядра в большинстве случаев
+ являлось неотъемлемым шагом при установке &os;, однако
+ последние релизы предоставляют более дружественные методы
+ конфигурации ядра. Выполнить конфигурацию
+ ядра очень просто с помощью более гибкой системы параметров
+ <quote>hints</quote>, которые можно задать в приглашении
+ загрузчика.</para>
+
+ <para>В дальнейшем всё же стоит построить новое ядро, содержащее
+ только те драйверы, которые вам нужны, для того, чтобы сэкономить
+ немного ОЗУ, хотя для большинства систем это делать больше не
+ обязательно.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="password-encryption">
+ <para>Какой из паролей DES, Blowfish или MD5 я должен использовать,
+ и как указать, какого типа пароли используются
+ пользователями?</para>
+ </question>
+
+ <answer>
+ <para>По умолчанию во &os; используется формат паролей на основе
+ <emphasis>MD5</emphasis>. Это делается в предположении, что он
+ более защищён, чем традиционный формат паролей &unix;, в котором
+ используется схема на основе алгоритма <emphasis>DES</emphasis>.
+ Пароли DES остаются применимыми, если вам нужно использовать файл
+ паролей совместно с более старыми операционными системами, в
+ которых используется менее защищённый формат паролей.
+ &os; также позволяет использовать пароли
+ в более защищённом формате Blowfish. Управление выбором
+ используемого формата для новых паролей осуществляется через
+ параметр входа <literal>passwd_format</literal> в файле
+ <filename>/etc/login.conf</filename>, принимающий значения
+ <literal>des</literal>, <literal>blf</literal> (если они есть) или
+ <literal>md5</literal>. Более подробная информация о параметрах
+ входа находится на странице Справочника &man.login.conf.5;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="boot-floppy-hangs">
+ <para>Загрузка с установочной дискеты прерывается на сообщении
+ <literal>Probing Devices...</literal>. Почему?</para>
+ </question>
+
+ <answer>
+ <para>Если у вас установлены устройства IDE &iomegazip; или jaz;,
+ уберите их и попробуйте снова. Они могут мешать установочной
+ программе. После того, как система будет установлена, вы можете
+ снова подключить устройства. Надеемся, что это будет исправлено в
+ более поздних релизах.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="panic-on-install-reboot">
+ <para>Почему появляется сообщение <errorname>panic: cant mount
+ root</errorname> после перезагрузки только что установленной
+ системы.</para>
+ </question>
+
+ <answer>
+ <para>Эта ошибка проявляется, когда есть несогласованность между
+ представлениями загрузочного блока и ядра о дисковых устройствах.
+ Эта ошибка обычно проявляется на системах с двумя дисками IDE, с
+ винчестерами, установленными как ведущий или единственный на
+ отдельных контроллерах IDE, с &os;, установленной на втором
+ контроллере IDE. Программа в загрузочных блоках полагает, что
+ система установлена на <devicename>ad0</devicename> (второй диск
+ BIOS), тогда как ядро даёт первому диску на втором контроллере
+ название <devicename>ad2</devicename>. После
+ обнаружения устройства ядро пытается смонтировать то, что
+ загрузочные блоки выдают за загрузочный диск,
+ <devicename>ad0</devicename>, тогда как он
+ на самом деле <devicename>ad2</devicename>, и ошибается.</para>
+
+ <para>Для решения этой проблемы выполните одно из следующих
+ действий:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Перезагрузите систему и нажмите
+ <keycap>Enter</keycap> при появлении приглашения
+ <literal>Booting kernel in 10 seconds; hit [Enter] to
+ interrupt</literal>. Вы окажетесь в загрузчике.</para>
+
+ <para>После этого наберите <userinput>set
+ root_disk_unit="<replaceable>disk_number</replaceable>"</userinput>.
+ Здесь в качестве <replaceable>disk_number</replaceable> должен
+ быть указан <literal>0</literal>, если &os; установлена на
+ ведущем диске первого контроллера IDE, <literal>1</literal>,
+ если она установлена на ведомом диске первого контроллера IDE,
+ <literal>2</literal>, если система находится на ведущем диске
+ второго IDE-контроллера и <literal>3</literal>, если она
+ установлена на ведомом диске второго контроллера IDE.</para>
+
+ <para>Затем введите команду <userinput>boot</userinput>, и ваша
+ система должна нормально загрузиться.</para>
+
+ <para>Чтобы сделать эти изменения постоянными (то есть чтобы вам
+ не было нужды выполнять эти действия каждый раз при
+ перезагрузке или включении вашей машины с &os;), поместите
+ строчку
+ <userinput>root_disk_unit="<replaceable>disk_number</replaceable>"</userinput>
+ в файл <filename>/boot/loader.conf.local</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Поместите диск с &os; на первичный контроллер IDE, так
+ чтобы именования диском пришли в соответствие.</para>
+ </listitem>
+ </orderedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="memory-limits">
+ <para>Какие имеются ограничения на объём оперативной памяти?</para>
+ </question>
+
+ <answer>
+ <para>Ограничение на память зависит от используемой платформы.
+ Для стандартной системы &i386; размер оперативной памяти
+ ограничен величиной 4&nbsp;Гбайт, дополнительный объём
+ памяти поддерживается через &man.pae.4;. Смотрите <link
+ linkend="memory-i386-over-4gb">инструкции по использованию
+ 4&nbsp;Гбайт памяти или больше на &i386;</link>.</para>
+
+ <para>&os;/pc98 имеет ограничение в 4&nbsp;ГБ оперативной памяти,
+ PAE здесь использовать невозможно.
+ Остальные архитектуры, поддерживаемые &os;, имеют гораздо
+ большие теоретические ограничения объёмов памяти (многие
+ терабайты).</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ffs-limits">
+ <para>Какие существуют ограничения для файловой системы FFS?</para>
+ </question>
+
+ <answer>
+ <para>Для файловой системы FFS максимальный теоретический размер
+ равен 8&nbsp;ТБ (2Г блоков) или 16&nbsp;ТБ при стандартном
+ размере блока 8&nbsp;КБ. На практике есть программное
+ ограничение в 1&nbsp;ТБ, но с некоторыми модификациями
+ достижимы 4&nbsp;ТБ (и такие системы существуют).</para>
+
+ <para>Максимальный размер одного файла FFS равен примерно 1 млрд.
+ блоков, или 4&nbsp;ТБ при размере блока 4&nbsp;КБ.</para>
+
+ <table>
+ <title>Максимальные размеры файлов</title>
+
+ <tgroup cols="3">
+ <thead>
+ <row>
+ <entry>размер блока ФС</entry>
+
+ <entry>работает</entry>
+
+ <entry>должно работать</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>4&nbsp;KБ</entry>
+
+ <entry>&gt;&nbsp;4&nbsp;ГБ</entry>
+
+ <entry>4&nbsp;ТБ&nbsp;-&nbsp;1</entry>
+ </row>
+
+ <row>
+ <entry>8&nbsp;КБ</entry>
+
+ <entry>&gt;&nbsp;32&nbsp;ГБ</entry>
+
+ <entry>32&nbsp;ТБ&nbsp;-&nbsp;1</entry>
+ </row>
+
+ <row>
+ <entry>16&nbsp;КБ</entry>
+
+ <entry>&gt;&nbsp;128&nbsp;ГБ</entry>
+
+ <entry>32&nbsp;ТБ&nbsp;-&nbsp;1</entry>
+ </row>
+
+ <row>
+ <entry>32&nbsp;КБ</entry>
+
+ <entry>&gt;&nbsp;512&nbsp;ГБ</entry>
+
+ <entry>64&nbsp;ТБ&nbsp;-&nbsp;1</entry>
+ </row>
+
+ <row>
+ <entry>64&nbsp;КБ</entry>
+
+ <entry>&gt;&nbsp;2048&nbsp;ГБ</entry>
+
+ <entry>128&nbsp;ТБ&nbsp;-&nbsp;1</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+
+ <para>При размере блока файловой системы 4&nbsp;КБ тройная
+ косвенная адресация блоков работает, и всё должно быть
+ ограничено максимальным количеством блоков, которое задаётся
+ в виде тройной переадресации блока (примерно
+ 1024<superscript>3</superscript>&nbsp;+&nbsp;1024<superscript>2</superscript>&nbsp;+&nbsp;1024),
+ однако всё ограничивается (ошибочным) лимитом
+ 1&nbsp;млрд.&nbsp;-&nbsp;1 на количество блоков файловой системы.
+ Это ограничение должно быть равным 2&nbsp;млрд.&nbsp;-&nbsp;1.
+ При количестве блоков, приближающемся к 2&nbsp;млрд.&nbsp;-&nbsp;1,
+ появляются некоторые ошибки, но этот предел недостижим при
+ размере блока 4&nbsp;КБ.</para>
+
+ <para>При размере блока 8&nbsp;КБ и больше всё должно быть
+ ограничено лимитом 2&nbsp;млрд.&nbsp;-&nbsp;1 на количество
+ блоков файловой системы, но реально ограничено пределом в
+ 1&nbsp;млрд.&nbsp;-&nbsp;1. Использование верного ограничения
+ в 2&nbsp;млрд.&nbsp;-&nbsp;1 блоков вызывает проблемы.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="archsw-readin-failed-error">
+ <para>Я скомпилировал новое ядро и при загрузке получил сообщение об
+ ошибке <errorname>archsw.readin.failed</errorname>.</para>
+ </question>
+
+ <answer>
+ <para>Это произошло, потому что ваше ядро и компоненты системы не
+ синхронизированы. Такая ситуация не поддерживается. Убедитесь,
+ что вы используете команды
+ <command>make <maketarget>buildworld</maketarget></command> и
+ <command>make <maketarget>buildkernel</maketarget></command>
+ для обновления вашего ядра.</para>
+
+ <para>Вы можете загрузить систему, непосредственно указав ядро на
+ втором этапе загрузки, нажав любую клавишу до запуска загрузчика
+ при появлении символов <literal>|</literal>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="boot-acpi">
+ <para>Установка аварийно завершается ещё при загрузке системы.
+ Что я могу сделать?</para>
+ </question>
+
+ <answer>
+ <para>Попытайтесь отключить поддержку ACPI. Когда загрузится
+ загрузчик, нажмите <keycap>Пробел</keycap>. Система отобразит
+ следующее:</para>
+
+ <screen>OK</screen>
+
+ <para>Наберите:</para>
+
+ <screen><userinput>unset acpi_load</userinput></screen>
+
+ <para>А затем:</para>
+
+ <screen><userinput>boot</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ </qandaset>
+ </chapter>
+
+ <chapter id="hardware">
+ <title>Аппаратная совместимость</title>
+
+ <sect1 id="compatibility-general">
+ <title>Вопросы общего характера</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="which-hardware-to-get">
+ <para>Я хочу приобрести аппаратуру для моей системы &os;. Какая
+ модель/производитель/тип лучше всего?</para>
+ </question>
+
+ <answer>
+ <para>Это постоянно обсуждается в списках рассылки &os;. Так
+ как аппаратура меняется так быстро, мы это ожидаем. Мы
+ <emphasis>всё же</emphasis> настоятельно рекомендуем, чтобы вы
+ прочитали Hardware&nbsp;Notes для &os; <ulink
+ url="&rel.current.hardware;">&rel.current;</ulink> или <ulink
+ url="&rel2.current.hardware;">&rel2.current;</ulink>, а также
+ выполнили поиск по <ulink
+ url="http://www.FreeBSD.org/search/#mailinglists">архивам</ulink>
+ списков рассылки перед тем, как задавать вопросы о самом последнем
+ и лучшем оборудовании. Весьма вероятно, что обсуждение требуемого
+ вам оборудование как раз было на прошлой неделе.</para>
+
+ <para>Если вы подбираете лэптоп, посмотрите архивы &a.mobile;.
+ В противном случае вам нужны архивы
+ &a.questions; или, возможно, специфичные списки рассылки по
+ конкретному типу оборудования.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </sect1>
+
+ <sect1 id="compatibility-memory">
+ <title>Память</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="memory-upper-limitation">
+ <para>Поддерживает ли &os; больше 4&nbsp;Гбайт памяти (ОЗУ)?
+ Больше 16&nbsp;Гбайт? Больше 48&nbsp;Гбайт?</para>
+ </question>
+
+ <answer>
+ <para>Да. &os; как операционная система в целом поддерживает
+ столько же физической памяти (ОЗУ), сколько аппаратная
+ платформа, на которой она работает. Имейте в виду, что
+ различные платформы имеют различные ограничения на память;
+ например, &i386; без <acronym>PAE</acronym> поддерживает
+ максимум 4&nbsp;Гбайт памяти (и обычно еще меньше из-за
+ адресного пространства PCI), а &i386; с PAE поддерживает
+ максимум 64&nbsp;Гбайт. Платформы AMD64, существующие на
+ текущий момент, ограничены объемом 1&nbsp;Тбайт физической
+ памяти.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="memory-i386-over-4gb">
+ <para>Почему &os; видит меньше 4&nbsp;Гбайт памяти, когда
+ система установлена на машину &i386;?</para>
+ </question>
+
+ <answer>
+ <para>Общее адресное пространство для машин &i386; является
+ 32-разрядным; это означает, что адресоваться (т.е. быть
+ получено) может не более 4&nbsp;Гбайт памяти. Более того,
+ некоторые адреса в этом диапазоне зарезервированы для
+ различных целей аппаратным обеспечением, например, для
+ использования и управления устройствами PCI, для доступа
+ к видеопамяти, и так далее. Таким образом, общий объем
+ памяти, используемой операционной системой для ядра и
+ приложений, ограничен размером, значительно меньшим, чем
+ 4&nbsp;Гбайт. В такой конфигурации максимально доступная
+ физическая память составляет от 3.2&nbsp;Гбайт до
+ 3.7&nbsp;Гбайт.</para>
+
+ <para>Для преодоления ограничения в 3.2&nbsp;Гбайт-3.7&nbsp;Гбайт
+ установленной памяти (т.е. для получения 4&nbsp;Гбайт, но
+ также более 4&nbsp;Гбайт) должен использоваться специальный
+ механизм, именуемый <acronym>PAE</acronym>. Сокращение PAE
+ расшифровывается как Physical Address Extension (расширение
+ физического адреса) и предоставляет для 32-разрядных x86
+ процессоров способ адресовать более 4&nbsp;Гбайт памяти.
+ PAE переназначает память, которая иначе была бы перекрыта
+ адресными резервациями для аппаратных устройств выше
+ диапазона 4&nbsp;Гбайт, и использует ее как дополнительную
+ физическую память (смотрите &man.pae.4;). Использование PAE
+ имеет свои недостатки; такая модель доступа к памяти является
+ чуть более медленной по сравнению с обычным режимом (без PAE),
+ и также не работают динамически загружаемые модули (смотрите
+ &man.kld.4;). Это означает, что все драйверы должны
+ присутствовать статически в самом ядре.</para>
+
+ <para>Самый общий способ включить PAE &mdash; это собрать
+ новое ядро со специальным уже подготовленным файлом
+ конфигурации ядра, именуемым <filename>PAE</filename>,
+ который уже сконфигурирован для сборки безопасного ядра.
+ Имейте в виду, что некоторые строки в этом файле конфигурации
+ ядра являются слишком консервативными, и некоторые драйверы,
+ помеченные как неготовые для использования с PAE, на самом
+ деле являются годными. На практике, если драйвер работает
+ на 64-разрядной архитектуре (такой как AMD64), он также
+ работает с PAE. Если вы хотите создать свой собственный
+ файл конфигурации ядра, то вы можете включить PAE, добавив
+ в свою конфигурацию следующую строку:</para>
+
+ <programlisting>options PAE</programlisting>
+
+ <para>PAE не является широко используемым в настоящее время,
+ поскольку большинство нового x86 аппаратного обеспечения
+ также поддерживает работу в 64-разрядном режиме, также
+ известном как AMD64 или &intel;&nbsp;64. Этот режим имеет
+ большее адресное пространство и не нуждается в таких трюках.
+ &os; поддерживает AMD64, и рекомендуется использование
+ этой версии &os; вместо версии &i386;, если требуется больше
+ 4&nbsp;Гбайт памяти.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </sect1>
+
+ <sect1 id="compatibility-processors">
+ <title>Аппаратные платформы и процессоры</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="architectures">
+ <para>Поддерживает ли &os; аппаратные платформы, отличные от
+ x86?</para>
+ </question>
+
+ <answer>
+ <para>Да. В настоящее время &os; работает на архитектурах
+ Intel x86 и AMD64. Также поддерживаются архитектуры Intel
+ EM64T, IA-64, &arm;, &powerpc; и &sparc64;. Планируются
+ к поддержке платформы &mips; и &s390;. Дополнительную
+ информацию о происходящей работе над платформой &mips; можно
+ получить, подписавшись на &a.mips;. Для обсуждения общих
+ вопросов, касающихся новых аппаратных платформ, предназначен
+ &a.platforms;.</para>
+
+ <para>Если аппаратная платформа Вашего компьютера не поддерживается
+ &os; и Вам нужно его запустить прямо сейчас, мы советуем
+ обратить Ваш взгляд также на <ulink
+ url="http://www.NetBSD.org">NetBSD</ulink> и
+ <ulink url="http://www.OpenBSD.org">OpenBSD</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="smp-support">
+ <para>Поддерживает ли &os; многопроцессорные системы
+ (SMP)?</para>
+ </question>
+
+ <answer>
+ <para>Системы с симметричным мультипроцессированием (SMP) во
+ &os; в целом поддерживаются, хотя в некоторых случаях ошибки
+ в BIOS или системной плате могут вызывать определенные
+ проблемы.</para>
+
+ <para>&os; задействует преимущества HyperThreading (HTT) на
+ процессорах Intel, которые это поддерживают. Ядро с включенной
+ <literal>options SMP</literal> автоматически распознает
+ дополнительные логические процессоры. Планировщик заданий &os;,
+ используемый по умолчанию, распознает логические процессоры
+ как дополнительные физические процессоры; иначе говоря, не
+ предпринимается никаких попыток оптимизировать распределение
+ используемых совместно ресурсов между логическими процессорами
+ внутри одного CPU. Поскольку такое простое планирование
+ может вызвать деградацию производительности, то в некоторых
+ случаях рекомендуется отключать логические процессоры через
+ переменную sysctl <varname>machdep.hlt_logical_cpus</varname>.
+ Также можно отключить любой CPU, работающий в пустом цикле,
+ через переменную sysctl <varname>machdep.hlt_cpus</varname>.
+ За подробной информацией обращайтесь к странице Справочника
+ &man.smp.4;.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </sect1>
+
+ <sect1 id="compatibility-drives">
+ <title>Жёсткие диски, ленточные устройства и приводы CD и DVD</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="supported-hard-drives">
+ <para>Какие типы винчестеров поддерживает &os;?</para>
+ </question>
+
+ <answer>
+ <para>&os; работает с дисками стандартов EIDE, SATA, SCSI и
+ SAS (с совместимыми контроллерами; смотрите следующий раздел),
+ и всеми дисками, использующими оригинальный интерфейс <quote>Western
+ Digital</quote> (MFM, RLL, ESDI и, конечно же, IDE). Некоторые
+ контроллеры ESDI, использующие собственные интерфейсы, могут и не
+ работать: к таким относятся WD1002/3/6/7 и их клоны.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="supported-scsi-controllers">
+ <para>Какие поддерживаются контроллеры SCSI или SAS?</para>
+ </question>
+
+ <answer>
+ <para>Полный список приведён в Hardware Notes для &os;
+ <ulink url="&rel.current.hardware;">&rel.current;</ulink> или
+ <ulink url="&rel2.current.hardware;">&rel2.current;</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="tape-support">
+ <para>Какие типы стримеров поддерживаются?</para>
+ </question>
+
+ <answer>
+ <para>&os; поддерживает устройства SCSI и QIC-36 (с интерфейсом
+ QIC-02), включая 8-мм (Exabyte) и DAT.</para>
+
+ <para>Некоторые ранние модели 8-мм стримеров не совсем соответствуют
+ стандарту SCSI-2 и могут работать не совсем хорошо.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="tape-changer-support">
+ <para>Поддерживает ли &os; роботов для смены лент?</para>
+ </question>
+
+ <answer>
+ <para>&os; поддерживает роботизированные устройства SCSI через
+ устройство &man.ch.4; и команду &man.chio.1;. Подробная
+ информация об управлении такими роботами может быть найдена на
+ странице Справочника по команде &man.chio.1;.</para>
+
+ <para>Если вы не используете <application>AMANDA</application>
+ или другое программное обеспечение, умеющее работать с роботами,
+ имейте в виду, что они могут только переносить ленты с одного
+ места на другое, так что вам нужно самим отслеживать, в каком
+ слоте находится нужная лента, и в какой слот нужно вернуть ленту,
+ находящуюся в стримере.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="supported-cdrom-drives">
+ <para>Какие приводы CD-ROM поддерживаются во &os;?</para>
+ </question>
+
+ <answer>
+ <para>Поддерживаются любые SCSI-устройства чтения компакт дисков,
+ подключенные к поддерживаемому контроллеру. Поддерживается
+ большинство ATAPI-совместимых IDE CD-ROM.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="supported-cdrw-drives">
+ <para>Какие приводы CD-RW поддерживаются во &os;?</para>
+ </question>
+
+ <answer>
+ <para>&os; поддерживает все ATAPI-совместимые IDE-приводы CD-R
+ или CD-RW. Более полную информацию можно найти на справочной
+ странице по команде &man.burncd.8;.</para>
+
+ <para>&os; поддерживает также все SCSI-приводы CD-R или CD-RW.
+ Установите и используйте программу <command>cdrecord</command> из
+ системы портов или пакаджей, но проверьте, что в вашем ядре
+ присутствует устройство <devicename>pass</devicename>.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </sect1>
+
+ <sect1 id="compatibility-kbd-mice">
+ <title>Клавиатуры и мыши</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="usbkbd">
+ <para>Поддерживает ли &os; USB клавиатуры?</para>
+ </question>
+
+ <answer>
+ <para>&os; имеет встроенную поддержку клавиатур USB.
+ После включения поддержки USB-клавиатуры в системе
+ AT-клавиатуре будет соответствовать
+ <devicename>/dev/kbd0</devicename>, а клавиатуре USB
+ <devicename>/dev/kbd1</devicename>, если они обе подключены к
+ системе. Если присутствует только клавиатура USB, ей будет
+ соответствовать <devicename>/dev/ukbd0</devicename>.</para>
+
+ <para>Если вы хотите использовать клавиатуру USB на консоли, вы
+ должны явно указать драйверу консоли на использование имеющейся
+ клавиатуры USB. Это может быть сделано в процессе инициализации
+ системы следующей командой.</para>
+
+ <screen>&prompt.root; <userinput>kbdcontrol -k /dev/kbd1 &lt; /dev/console &gt; /dev/null</userinput></screen>
+
+ <para>Заметьте, что если клавиатура USB является единственной
+ присутствующей, она доступна как <devicename>/dev/ukbd0</devicename>,
+ и поэтому команда должна выглядеть примерно так:</para>
+
+ <screen>&prompt.root; <userinput>kbdcontrol -k /dev/ukbd0 &lt; /dev/console &gt; /dev/null</userinput></screen>
+
+ <note>
+ <para>Чтобы сохранить это изменение, добавьте в
+ <filename>/etc/rc.conf</filename> строку
+ <literal>keyboard="/dev/ukbd0"</literal>.</para>
+ </note>
+
+ <para>Как только вы всё это сделаете, клавиатура USB будет работать и
+ в X-окружении без каких-либо особых настроек.</para>
+
+ <para>Если вам нужно переключиться обратно на клавиатуру,
+ используемую по умолчанию, выполните такую команду:</para>
+
+ <screen>&prompt.root; <userinput>kbdcontrol -k /dev/kbd0 &gt; /dev/null</userinput></screen>
+
+ <para>Для одновременной работы второй USB клавиатуры и первой
+ AT клавиатуры в консоли через драйвер &man.kbdmux.4;,
+ наберите следующие команды:</para>
+
+ <screen>&prompt.root; <userinput>kbdcontrol -K &lt; /dev/console &gt; /dev/null</userinput>
+&prompt.root; <userinput>kbdcontrol -a atkbd0 &lt; /dev/kbdmux0 &gt; /dev/null</userinput>
+&prompt.root; <userinput>kbdcontrol -a ukbd1 &lt; /dev/kbdmux0 &gt; /dev/null</userinput>
+&prompt.root; <userinput>kbdcontrol -k /dev/kbdmux0 &lt; /dev/console &gt; /dev/null</userinput></screen>
+
+ <para>За дополнительной информацией обратитесь к страницам
+ справочной системы &man.ukbd.4;, &man.kbdcontrol.1; и
+ &man.kbdmux.4;.</para>
+
+ <note>
+ <para>Выключение и включение USB-клавиатуры на ходу может ещё
+ не работать совершенно корректно. Во избежание неприятностей
+ мы рекомендуем подключить клавиатуру перед запуском системы
+ и не отключать её до завершения работы системы.</para>
+ </note>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="busmouse">
+ <para>У меня необычная мышь типа bus mouse. Как её настроить?</para>
+ </question>
+
+ <answer>
+ <para>&os; поддерживает мыши типов bus mouse и InPort bus mouse
+ от таких производителей, как Microsoft, Logitech и ATI. В ядре
+ <filename>GENERIC</filename> драйвера таких устройств нет.
+ Для построения
+ специального ядра с драйвером такой мыши, добавьте в
+ конфигурационный файл ядра следующую строку:</para>
+
+ <programlisting>device mse0 at isa? port 0x23c irq5</programlisting>
+
+ <para>Мыши типа bus mouse обычно поставляются с отдельными
+ интерфейсными адаптерами. Они позволяют установить адрес порта
+ ввода/вывода и номер IRQ, отличающиеся от приведённых выше. Для
+ получения дополнительной информации обратитесь к документации по
+ вашей мыши и странице Справочника &man.mse.4;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ps2mouse">
+ <para>Как использовать мышь PS/2 (типа <quote>mouse port</quote>
+ или <quote>keyboard</quote>)?</para>
+ </question>
+
+ <answer>
+ <para>Мышь PS/2 системой поддерживается. Необходимый драйвер
+ устройства, <devicename>psm</devicename>, включён в ядро
+ <filename>GENERIC</filename>.</para>
+
+ <para>Если в вашем ядре его нет, то добавьте следующую строку в
+ файл конфигурации ядра и постройте новое ядро.</para>
+
+ <programlisting>device psm0 at atkbdc? irq 12</programlisting>
+
+ <para>После того, как ядро правильно обнаружило устройство
+ <devicename>psm0</devicename> во время загрузки, файл
+ устройства для <devicename>psm0</devicename> будет создан
+ автоматически.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="moused">
+ <para>Можно ли каким-либо образом использовать мышь, кроме
+ X Window?</para>
+ </question>
+
+ <answer>
+ <para>Если вы используете стандартный драйвер консоли,
+ &man.syscons.4;, то можете использовать указатель мыши в текстовых
+ консолях для выделения и переноса текста. Запустите демон мыши,
+ &man.moused.8;, и включите отображение указателя мыши на
+ виртуальной консоли:</para>
+
+ <screen>&prompt.root; <userinput>moused -p /dev/<replaceable>xxxx</replaceable> -t <replaceable>yyyy</replaceable></userinput>
+&prompt.root; <userinput>vidcontrol -m on</userinput></screen>
+
+ <para>Здесь <replaceable>xxxx</replaceable> - это имя устройства
+ мыши, а <replaceable>yyyy</replaceable> - тип протокола,
+ используемого мышью. Даемон мыши может автоматически определять
+ тип протокола большинства мышей, за исключением старых, работающих
+ по последовательному интерфейсу. Для выполнения автоматического
+ определения в качестве протокола укажите <literal>auto</literal>.
+ Если автоматическое определение не работает, то обратитесь к
+ справочным страницам по &man.moused.8; для получения списка
+ поддерживаемых типов протоколов.</para>
+
+ <para>Если у вас мышь типа PS/2, просто добавьте строчку
+ <literal>moused_enable="YES"</literal> в файл
+ <filename>/etc/rc.conf</filename> для запуска даемона мыши во
+ время загрузки системы. Кроме того, если вы хотите использовать
+ даемон мыши во всех виртуальных терминалах, а не только на консоли,
+ добавьте <literal>allscreens_flags="-m on"</literal> в файле
+ <filename>/etc/rc.conf</filename>.</para>
+
+ <para>После запуска даемона мыши, доступ к мыши должен
+ согласовываться между даемоном мыши и другими программами типа X
+ Window. Обратитесь к вопросу из FAQ <link linkend="x-and-moused">
+ Почему моя мышь не работает с X?</link> для получения более полной
+ информации по этому вопросу.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="text-mode-cut-paste">
+ <para>Как можно вырезать и копировать текст с помощью мыши в
+ текстовой консоли?</para>
+ </question>
+
+ <answer>
+ <para>После того, как вы запустили даемон мыши (посмотрите <link
+ linkend="moused">предыдущий раздел</link>), нажмите кнопку 1
+ (левую) и двигайте мышь для выделения текста. Затем
+ нажмите кнопку 2 (среднюю) для его вставки с позиции текстового
+ курсора. Нажатие кнопки 3 (правой) <quote>расширит</quote>
+ выбранную текстовую область.</para>
+
+ <para>Если у вашей мыши отсутствует средняя кнопка, вы можете её
+ сэмулировать или переназначить кнопки опциями даемона мыши.
+ Обратитесь к справочным страницам по &man.moused.8; для получения
+ полной информации.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="mouse-wheel-buttons">
+ <para>У моей мыши есть дополнительные колёсико и кнопочки. Можно ли
+ их использовать во &os;?</para>
+ </question>
+
+ <answer>
+ <para>Ответ, к сожалению, <quote>в зависимости от
+ обстоятельств</quote>. Эти мышки с дополнительными возможностями,
+ как правило, требуют наличия специальных драйверов. До тех пор,
+ пока драйвер мыши или прикладная программа не будут иметь отдельную
+ поддержку такой мыши, она будет работать как стандартная двух- или
+ трёхкнопочная мышь.</para>
+
+ <para>Возможные способы использования колёсиков мыши при работе в X
+ Window описаны в <link linkend="x-and-wheel">другом
+ разделе</link>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="laptop-mouse-trackball">
+ <para>Как использовать мышь/трэкболл/сенсорную панель на
+ лэптопе?</para>
+ </question>
+
+ <answer>
+ <para>Посмотрите <link linkend="ps2mouse">ответ на предыдущий
+ вопрос</link>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="keyboard-delete-key">
+ <para>Как использовать клавишу delete в <command>sh</command>
+ и <command>csh</command>?</para>
+ </question>
+
+ <answer>
+ <para>Для <application>Bourne Shell</application> добавьте
+ следующие строки в ваш <filename>.shrc</filename>. Смотрите
+ &man.sh.1; и &man.editrc.5;.</para>
+
+ <programlisting>bind ^? ed-delete-next-char # для консоли
+bind ^[[3~ ed-delete-next-char # для xterm</programlisting>
+
+ <para>Для <application>C Shell</application> добавьте следующие
+ строки в ваш <filename>.cshrc</filename>. Смотрите
+ &man.csh.1;.</para>
+
+ <programlisting>bindkey ^? delete-char # для консоли
+bindkey ^[[3~ delete-char # для xterm</programlisting>
+
+ <para>За дополнительной информацией обращайтесь к <ulink
+ url="http://www.ibb.net/~anne/keyboard.html">этой
+ странице</ulink>.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </sect1>
+
+ <sect1 id="compatibility-networking">
+ <title>Сетевые и последовательные устройства</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="network-cards">
+ <para>Какие сетевые адаптеры поддерживает &os;?</para>
+ </question>
+
+ <answer>
+ <para>Обратитесь к файлу Hardware Notes, поставляемому с каждым
+ релизом &os;, для получения полного списка.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="support-broadcom">
+ <para>Существует ли собственный драйвер для адаптеров Broadcom
+ 43xx?</para>
+ </question>
+
+ <answer>
+ <para>Да, многие из адаптеров Broadcom 43xx поддерживаются
+ драйверами &man.bwn.4; и &man.bwi.4;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="multiport-serial-support">
+ <para>Какие многопортовые последовательные адаптеры поддерживаются во
+ &os;?</para>
+ </question>
+
+ <answer>
+ <para>Список таких устройств находится в главе Руководства
+ <ulink url="&url.books.handbook;/serial.html">Последовательные
+ соединения</ulink>.</para>
+
+ <para>Некоторые безымянные клоны таких адаптеров тоже работают
+ нормально, особенно те, которые заявляют о своей совместимости
+ с AST.</para>
+
+ <para>Прочтите страницы Справочника о &man.sio.4; для получения
+ подробной информации о конфигурировании таких адаптеров.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="serial-console-prompt">
+ <para>Как сделать, чтобы приглашение boot: выводилось на консоль на
+ последовательном порту?</para>
+ </question>
+
+ <answer>
+ <para>Подробная информация находится в <ulink
+ url="&url.books.handbook;/serialconsole-setup.html">этом
+ разделе Руководства</ulink>.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </sect1>
+
+ <sect1 id="compatibility-sound">
+ <title>Звуковые устройства</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="sound-card-support">
+ <para>Какие звуковые адаптеры поддерживаются во &os;?</para>
+ </question>
+
+ <answer>
+ <para>&os; поддерживает различные звуковые адаптеры
+ (дополнительную информацию
+ можно найти в <ulink url="&url.base;/releases/">Информации о
+ релизе &os;</ulink> и странице справочной системы
+ по &man.snd.4;). Имеется также ограниченная поддержка MPU-401
+ и совместимых с ним адаптеров. Поддерживаются и адаптеры,
+ соответствующие спецификации &microsoft; Sound System.</para>
+
+ <note>
+ <para>Это касается только звука! Этот драйвер не поддерживает
+ CD-ROM, SCSI или джойстики ни на каких подобных адаптерах, кроме
+ &soundblaster;. Поддерживаются устройства на SCSI-интерфейсе
+ &soundblaster; и не-SCSI CD-ROM, но загрузиться с них
+ невозможно.</para>
+ </note>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="es1370-silent-pcm">
+ <para>Есть ли решение проблемы отсутствия звука при использовании
+ звуковых адаптеров &man.pcm.4;?</para>
+ </question>
+
+ <answer>
+ <para>Некоторые звуковые адаптеры при каждой
+ загрузке сбрасывают уровень громкости в 0. Выполняйте следующую
+ команду при каждой загрузке машины:</para>
+
+ <screen>&prompt.root; <userinput>mixer pcm 100 vol 100 cd 100</userinput></screen>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </sect1>
+
+ <sect1 id="compatibility-other">
+ <title>Другое оборудование</title>
+
+ <qandaset>
+
+ <qandaentry>
+ <question id="power-management-support">
+ <para>Поддерживает ли &os; управление энергосбережением на
+ лэптопах?</para>
+ </question>
+
+ <answer>
+ <para>&os; поддерживает <acronym>APM</acronym>
+ на некоторых машинах. Более полная информация может быть найдена
+ в справочной странице по &man.apm.4;.</para>
+
+ <para>&os; также поддерживает функции
+ <acronym>ACPI</acronym>, реализованные в основной массе
+ современного оборудования. Дополнительную информацию можно найти
+ на странице справочной системы &man.acpi.4;. Если система
+ поддерживает как <acronym>APM</acronym>, так и
+ <acronym>ACPI</acronym>, можно использовать любую из них. Мы
+ рекомендуем опробовать обе и выбрать ту, что подходит вам в
+ большей степени.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="disable-acpi">
+ <para>Как я могу отключить ACPI?</para>
+ </question>
+
+ <answer>
+ <para>Добавьте следующую строчку в файл
+ <filename>/boot/device.hints</filename>:</para>
+
+ <screen>hint.acpi.0.disabled="1"</screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="micron-hang-boot">
+ <para>Компьютеры Micron зависают при загрузке</para>
+ </question>
+
+ <answer>
+ <para>Некоторые материнские платы Micron имеют BIOS, не
+ удовлетворяющую стандарту PCI BIOS, что приводит к печальным
+ последствиям при загрузке &os;, потому что имеет место
+ несоответствие устройств PCI занимаемым ими адресам.</para>
+
+ <para>Для устранения этой проблемы отключите в BIOS опцию
+ <quote>Plug and Play Operating System</quote>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="asusk7v-boot-failure">
+ <para>При загрузке с установочной дискеты машины с материнской платой
+ ASUS K7V зависают. Как это исправить?</para>
+ </question>
+
+ <answer>
+ <para>Войдите в настройку BIOS и выключите <quote>защиту от
+ загрузочных вирусов</quote>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="micron-3comnic-failure">
+ <para>Почему сетевой адаптер &tm.3com; PCI не работает с компьютерами
+ Micron?</para>
+ </question>
+
+ <answer>
+ <para>Смотрите <link linkend="micron-hang-boot">предыдущий
+ ответ</link>.</para>
+ </answer>
+ </qandaentry>
+
+ </qandaset>
+ </sect1>
+ </chapter>
+
+ <chapter id="troubleshoot">
+ <title>Устранение некоторых проблем</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="pae">
+ <para>Почему &os; определяет неправильное количество памяти
+ на аппаратуре &i386?</para>
+ </question>
+
+ <answer>
+ <para>Наиболее вероятная причина заключается в различии между
+ адресами физической и виртуальной памяти.</para>
+
+ <para>Существующее соглашение для большинства оборудования ПК
+ заключается в использовании пространства памяти, лежащей в
+ диапазоне между 3.5&nbsp;ГБ и 4&nbsp;ГБ для специальных нужд
+ (обычно для нужд PCI). Это пространство адресов используется
+ для доступа к PCI оборудованию. Как результат, реальная
+ физическая память не может быть получена в данном адресном
+ пространстве.</para>
+
+ <para>Какие действия выполняются с памятью в данном регионе
+ зависит от вашего оборудования. К сожалению, некоторое
+ оборудование ничего не выполняет и возможность использовать
+ эти 500&nbsp;МБ ОЗУ полностью потеряна.</para>
+
+ <para>К счастью, большинство оборудования перераспределяет
+ память к более верхней позиции, так что она всё ещё может
+ использоваться. Тем не менее, это может вызвать некоторое
+ замешательство, если вы посмотрите сообщения, выдаваемые при
+ загрузке.</para>
+
+ <para>На 32-битной версии &os; кажется, что эта память
+ потерялась. На самом деле она перераспределится в промежуток,
+ лежащий за 4&nbsp;ГБ, который не видим для 32&nbsp;битного ядра.
+ В данном случае, решение заключается в сборке ядра, с включенной
+ опцией PAE. За дополнительной информацией обращайтесь к <link
+ linkend="memory-limits">статье об ограничениях памяти</link>
+ и <link linkend="memory-upper-limitation">о различных
+ ограничениях памяти на различных платформах</link>.</para>
+
+ <para>На 64nbsp;битной версии &os; или в случае использования ядра с
+ включённым PAE &os; корректно определит и перераспределит память,
+ так, что она станет годной к использованию. Тем не менее, во
+ время загрузки может показаться, что &os; определяет больше
+ памяти, чем реально имеется в системе из-за описанного
+ перераспределения. Это нормально, и информация
+ о доступной памяти будет скорректирована по окончанию процесса
+ загрузки.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="awre">
+ <para>На моём винчестеры есть запорченные блоки!</para>
+ </question>
+
+ <answer>
+ <para>Если это SCSI-устройство, то винчестер должен иметь возможность
+ автоматической переадресации таких блоков. Однако во многих
+ поставляемых дисках эта возможность отключена.</para>
+
+ <para>Для включения переадресации запорченных блоков, измените
+ режим работы устройства, что может быть выполнено пользователем
+ <username>root</username> по команде</para>
+
+ <screen>&prompt.root; <userinput>camcontrol modepage sd0 -m 1 -e -P 3</userinput></screen>
+
+ <para>и изменить значения параметров AWRE и ARRE с 0 на 1:</para>
+
+ <programlisting>AWRE (Auto Write Reallocation Enbld): 1
+ARRE (Auto Read Reallocation Enbld): 1</programlisting>
+
+ <para>Контроллеры современных IDE-дисков имеют встроенную функцию
+ переадресации запорченных блоков, которая на момент продажи
+ включена.</para>
+
+ <para>Если вы увидите предупреждения о запорченных блоках (на любом
+ типе устройства), это значит, что пришло время подумать над заменой
+ диска. Вы можете воспользоваться диагностической программой
+ производителя диска для поиска этих запорченных блоков, и в лучшем
+ случае это только отнимет ваше время.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="hpnetserver-scsi-failure">
+ <para>Почему &os; не распознаёт SCSI-контроллер на машине HP
+ Netserver?</para>
+ </question>
+
+ <answer>
+ <para>В общем-то это известная проблема. EISA-контроллеры SCSI,
+ расположенные на материнской плате машин HP Netserver, занимают
+ EISA-слот номер 11, так что все <quote>настоящие</quote> слоты
+ EISA будут ему предшествовать. Так как адресное пространство для
+ слотов EISA выше 10 пересекается с адресным пространством,
+ предназначенным для PCI, то автоконфигуратор &os; в настоящее
+ время не может эту проблему нормально обойти.</para>
+
+ <para>Так что пока лучшее, что вы можете предпринять, это попытаться
+ указать, что пересечения диапазонов адресов нет :), установив опцию
+ ядра <literal>EISA_SLOTS</literal> в значение 12.
+ Отконфигурируйте и откомпилируйте ядро так, как это описано в <ulink
+ url="&url.books.handbook;/kernelconfig.html">разделе
+ Руководства</ulink> о конфигурировании ядра.</para>
+
+ <para>Конечно, это даст вам типичную ситуации "курица или яйцо"
+ при установке системы на такой машине. Для обхода этой проблемы
+ внутри <emphasis>UserConfig</emphasis> есть специальный хак. Не
+ используя <quote>визуального</quote> интерфейса, а только
+ интерфейс командной строки, просто наберите следующую команду
+ в приглашении и установите систему как обычно.</para>
+
+ <programlisting>eisa 12
+quit</programlisting>
+
+ <para>В любом
+ случае рекомендуется, что вы отконфигурируете и установите
+ собственное ядро.</para>
+
+ <para>Надеемся, что будущие версии будут содержать полное решение
+ этой проблемы.</para>
+
+ <note>
+ <para>Вы не сможете использовать режим <literal>dangerously
+ dedicated</literal> на машинах HP Netserver. Полное описание
+ причин содержится в <link linkend="dedicate">этом
+ замечании</link>.</para>
+ </note>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ed1-timeout">
+ <para>Выдаются сообщения типа <errorname>ed1:
+ timeout</errorname>.</para>
+ </question>
+
+ <answer>
+ <para>Обычно это вызвано конфликтом прерываний (например, двух
+ адаптеров, использующих один и тот же IRQ). Загрузите систему с
+ опцией <option>-c</option> и смените строку, описывающую
+ <devicename>ed0</devicename>/<devicename>de0</devicename>/...
+ на соответствующую вашей системе.</para>
+
+ <para>Если вы используете разъём BNC сетевого адаптера, таймауты
+ устройства могут быть вызваны плохим терминированием. Чтобы это
+ проверить, подключите терминатор к адаптеру (без кабеля) и
+ посмотрите, не исчезли ли сообщения об ошибках.</para>
+
+ <para>Некоторые NE2000-совместимые адаптеры выдают такую ошибку,
+ если нет связи по UTP-порту или отключен кабель.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="bad-3c509">
+ <para>Почему мой адаптер &tm.3com; 3C509 перестал работать без всякой
+ видимой причины?</para>
+ </question>
+
+ <answer>
+ <para>Этот адаптер имеет странную привычку терять информацию о своих
+ настройках. Обновите настройки вашего адаптера при помощи утилиты
+ <command>3c5x9.exe</command> из DOS.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="printer-slow">
+ <para>Мой параллельный принтер печатает невероятно медленно. Что тут
+ можно сделать?</para>
+ </question>
+
+ <answer>
+ <para>Если проблема только в том, что принтер работает ужасно
+ медленно, попробуйте сменить <ulink
+ url="&url.books.handbook;/printing-intro-setup.html#PRINTING-PARALLEL-PORT-MODE">
+ режим работы порта принтера</ulink> так, как это описано в разделе
+ <ulink url="&url.books.handbook;/printing-intro-setup.html">
+ Настройка принтера</ulink> Руководства.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="signal11">
+ <para>Программы аварийно завершают работу с ошибкой <errorname>Signal
+ 11</errorname>.</para>
+ </question>
+
+ <answer>
+ <para>Ошибки выполнения, связанные с сигналом 11, происходят,
+ когда ваш процесс пытается обратиться к области памяти, доступ к
+ которой ему не был дан операционной системой. Если что-то подобное
+ происходит в случайные, на первый взгляд, промежутки времени, то
+ вам нужно попытаться выяснить подробности происходящих событий
+ более детально.</para>
+
+ <para>Эти проблемы могут быть классифицированы следующим
+ образом:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Если проблема возникает только в определённом приложении,
+ которое было самостоятельно вами разработано, то, скорее всего,
+ это ошибка в вашем коде.</para>
+ </listitem>
+
+ <listitem>
+ <para>Если это проблема в части базового комплекта системы
+ &os;, то это тоже может быть ошибка в программном коде, хотя
+ в большинстве случаев такие проблемы обнаруживаются и ошибки
+ исправляются задолго до того, как обычным читателям FAQ
+ доводится использовать этот код (именно для этого предназначена
+ версия -current).</para>
+ </listitem>
+ </orderedlist>
+
+ <para>В частности, достоверно <emphasis>не</emphasis> ошибка &os;,
+ если вы сталкиваетесь с проблемой при компиляции программы, но при
+ работе компилятора место сбоя каждый раз изменяется.</para>
+
+ <para>Например, положим, что вы запускаете команду <command>make
+ <maketarget>buildworld</maketarget></command> и компиляция
+ завершилась аварийно при попытке
+ компиляции <filename>ls.c</filename> в <filename>ls.o</filename>.
+ Если при следующей попытке повторно выполнить <command>make
+ <maketarget>buildworld</maketarget></command> и компиляция
+ прервётся на том же самом месте,
+ то это ошибки процесса построения &mdash; попробуйте обновить исходные
+ тексты и попробуйте снова. Если же компиляция прерывается в
+ каком-то другом месте, то в этом практически достоверно виновато
+ оборудование.</para>
+
+ <para>Что вы должны сделать:</para>
+
+ <para>В первом случае вы должны воспользоваться отладчиком, к
+ примеру, &man.gdb.1;, для нахождения точки программы, в которой
+ делается попытка доступа к неверному адресу и затем исправить эту
+ ошибку.</para>
+
+ <para>Во втором случае вам нужно проверить, что ваше оборудование
+ исправно.</para>
+
+ <para>Среди часто приводящих к этому причин:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Ваши винчестеры могут перегреваться: Проверьте работу
+ вентиляторов в вашем системном блоке, так как ваш диск (и может,
+ также другие компоненты, могут перегреваться).</para>
+ </listitem>
+
+ <listitem>
+ <para>Работающий процессор перегревается: Это может произойти
+ из-за выхода частоты процессора за рабочие границы или поломки
+ вентилятора на процессоре. В любом случае вам нужно
+ убедиться, что ваше оборудование работает так, как ему
+ положено, по крайней мере, на момент поиска причин
+ неисправности, другими словами, установите частоту работы на
+ настройки по умолчанию.</para>
+
+ <para>Если вы превысили рабочие частоты работы процессора,
+ заметьте, что дешевле обходится медленная система, чем
+ сгоревшая система, требующая замены! Также общество не часто
+ симпатизирует проблемам на таких системах, вне зависимости от
+ того, считаете ли вы увеличение рабочей частоты не влияющим на
+ работу или нет.</para>
+ </listitem>
+
+ <listitem>
+ <para>Хитрая память: Если у вас установлено множество микросхем
+ SIMM/DIMM, то вытащите их все и попытайтесь поработать
+ индивидуально с каждой микросхемой SIMM или DIMM и локализовать
+ проблему либо до проблематичной микросхемы DIMM/SIMM, либо даже
+ их комбинации.</para>
+ </listitem>
+
+ <listitem>
+ <para>Чересчур оптимистические настройки материнской платы: При
+ настройке вашей BIOS и выборе положения перемычек на
+ материнской плате вы имеете возможность задать различные
+ частоты и задержки, и в большинстве случаев настройки по
+ умолчанию достаточны, но иногда установка слишком малых
+ периодов ожидания для ОЗУ, установка параметра <quote>RAM
+ Speed: Turbo</quote> и подобных параметров в BIOS вызовет
+ странное поведение. Возможным решением может стать установка
+ параметров BIOS по умолчанию, но сначала стоит записать ваши
+ настройки!</para>
+ </listitem>
+
+ <listitem>
+ <para>Неустойчивое или недостаточное электропитание материнской
+ платы. Если в вашей системе есть неиспользуемые адаптеры
+ ввода/вывода, винчестеры или приводы компакт-дисков, попробуйте
+ временно их убрать или отключить от кабеля электропитания,
+ чтобы посмотреть, сможет ли ваш блок питания работать с меньшей
+ нагрузкой. Или попробуйте воспользоваться другим блоком
+ питания, желательно большей мощности (например, если имеющийся
+ блок питания рассчитан на 250&nbsp;Ватт, попробуйте другой
+ мощностью 300&nbsp;Ватт).</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Вы также должны прочитать FAQ по SIG11 (ссылка дана ниже), в
+ котором даны прекрасные описания всех этих проблем, хотя и с точки
+ зрения &linux;. Также обсуждается, как аппаратура или программное
+ обеспечение для тестирования памяти могут пропускать сбойную
+ память.</para>
+
+ <para>Наконец, если ничего из этого не помогает, то возможно, что
+ просто вы нашли ошибку во &os; и должны следовать инструкциям
+ по посылке сообщений о проблемах.</para>
+
+ <para>Подробная информация по этому вопросу содержится в <ulink
+ url="http://www.bitwizard.nl/sig11/">FAQ по проблеме
+ SIG11</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="trap-12-panic">
+ <para>Моя система аварийно завершает работу с сообщениями
+ <errorname>Fatal trap 12: page fault in kernel mode</errorname>
+ либо <errorname>panic:</errorname>, и выдаёт много дополнительной
+ информации. Что мне делать?</para>
+ </question>
+
+ <answer>
+ <para>Разработчики &os; очень интересуются такими ошибками, но
+ им нужно несколько больше информации, чем просто факт
+ возникновения этой ошибки. Полностью скопируйте сообщение.
+ Затем обратитесь к разделу FAQ об <link
+ linkend="kernel-panic-troubleshooting">аварийных завершениях
+ работы ядра</link>, постройте отладочное ядро и получите
+ трассу вызовов. Это может звучать трудной задачей, но вам не
+ нужны никакие знания программирования; просто следуйте
+ указаниям.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="screen-loses-sync">
+ <para>При загрузке монитор темнеет и теряет синхронизацию!</para>
+ </question>
+
+ <answer>
+ <para>Это известная проблема с видеоадаптерами ATI&nbsp;Mach64. Она
+ вызвана тем, что этот адаптер использует адрес
+ <literal>2e8</literal>, как и четвёртый последовательный порт.
+ Из-за ошибки (или особенности работы?) в драйвере &man.sio.4; он
+ обращается к порту, даже если он не существует, и
+ <emphasis>даже</emphasis> если вы отключите
+ <devicename>sio3</devicename> (четвёртый порт),
+ который, как правило, использует этот адрес ввода/вывода.</para>
+
+ <para>Пока это не исправлено, используйте следующий метод:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>В приглашении загрузчика наберите <option>-c</option>.
+ (Это переведёт ядро в режим конфигурации).</para>
+ </listitem>
+
+ <listitem>
+ <para>Отключите устройства <devicename>sio0</devicename>,
+ <devicename>sio1</devicename>, <devicename>sio2</devicename> и
+ <devicename>sio3</devicename> (все их). После этого драйвер
+ &man.sio.4; не будет активизироваться и проблем не
+ будет.</para>
+ </listitem>
+
+ <listitem>
+ <para>Для продолжения загрузки наберите exit.</para>
+ </listitem>
+ </orderedlist>
+
+ <para>Если вам нужно использовать последовательные порты, вы должны
+ построить новое ядро со следующей модификацией: в файле
+ <filename>/usr/src/sys/dev/sio/sio.c</filename> (или в файле
+ <filename>/usr/src/sys/pc98/cbus/sio.c</filename> для pc98)
+ найдите строчку,
+ содержащую число <literal>0x2e8</literal> и удалите её вместе с
+ предшествующий запятой (оставив следующую). После этого следуйте
+ обычным указаниям по построению ядра.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="reallybigram">
+ <para>Почему &os; использует только 64&nbsp;Мбайт ОЗУ, тогда как
+ установлено все&nbsp;128 Мбайт?</para>
+ </question>
+
+ <answer>
+ <para>Так как для определения объёма памяти &os; использует
+ информацию BIOS, она ограничена 16&nbsp;битами, используемыми для
+ выражения размера ОЗУ в килобайтах (65535&nbsp;Кбайт = 64&nbsp;Мбайт) (или
+ меньше... некоторые BIOS ограничивают размеры памяти до 16&nbsp;Мбайт).
+ Если у вас больше чем 64&nbsp;Мбайт ОЗУ, &os; будет пытаться
+ обнаружить эту память; однако эта попытка может и не
+ удаться).</para>
+
+ <para>Для решения этой проблемы вам нужно использовать опцию ядра,
+ указанную ниже. Способ выяснения полной информации о памяти из
+ BIOS существует, но у нас нет места в загрузочном блоке, чтобы это
+ делать. Когда проблема нехватки места в загрузочных блоках будет
+ решена, мы будем использовать расширенные функции BIOS для
+ получения полной информации о памяти... но пока мы остановились на
+ опции ядра.</para>
+
+ <programlisting>options MAXMEM=<replaceable>n</replaceable></programlisting>
+
+ <para>Здесь <replaceable>n</replaceable> - это объём памяти в
+ килобайтах. Для машины со 128&nbsp;Мбайт ОЗУ вам нужно использовать
+ значение <literal>131072</literal>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="kmem-map-too-small">
+ <para>Объём оперативной памяти моей системы превышает 1&nbsp;Гбайт, работа
+ завершается аварийно с выдачей сообщения <errorname>kmem_map too
+ small</errorname> messages. Что не так?</para>
+ </question>
+
+ <answer>
+ <para>Как правило, &os; определяет параметры ядра, в частности,
+ максимальное количество одновременно открытых файлов, исходя из
+ объёма памяти, установленного в системе. В системах, имеющих 1
+ Гбайт или больший объём оперативной памяти, этот механизм
+ <quote>автоматического определения параметров</quote> может выбрать
+ слишком большие значения: при запуске ядро выделяет пространство
+ под различные таблицы и другие структуры, которые заполняют
+ основной объём доступной ядру памяти. В дальнейшем при работе
+ системы у ядра не остаётся пространства для динамического
+ распределения памяти, и оно завершает работу аварийно.</para>
+
+ <para>Скомпилируйте новое ядро, добавив параметр
+ <option>VM_KMEM_SIZE_MAX</option> в конфигурационный файл ядра,
+ увеличив его максимальный размер до 400&nbsp;Мбайт
+ (<option>options VM_KMEM_SIZE_MAX=419430400</option>).
+ 400&nbsp;Мбайт должно быть достаточно для машин с объёмом
+ оперативной до 6&nbsp;Гбайт.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="panic-kmemmap-too-small">
+ <para>В моей системе нет 1&nbsp;Гбайта оперативной памяти, однако &os;
+ аварийно завершает работу, выдавая сообщение <errorname>kmem_map
+ too small</errorname>!</para>
+ </question>
+
+ <answer>
+ <para>Такое завершение работы показывает, что системе не хватает
+ виртуальной памяти для сетевых буферов (точнее, структур mbuf). Вы
+ можете увеличить количество виртуальной памяти для структур mbuf,
+ если будете действовать в соответствии с инструкциями раздела
+ <ulink
+ url="&url.books.handbook;/configtuning-kernel-limits.html#NMBCLUSTERS">
+ Ограничения сети</ulink> Руководства.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="proc-table-full">
+ <para>Почему я получаю сообщение об ошибке <errorname>kernel: proc:
+ table is full</errorname>?</para>
+ </question>
+
+ <answer>
+ <para>Ядро &os; позволяет существовать одновременно ограниченному
+ числу процессов. Оно зависит от значения переменной
+ &man.sysctl.8; <varname>kern.maxusers</varname>.
+ <varname>kern.maxusers</varname> также влияет на другие ограничения
+ ядра, такие как буферы работы с сетью (обратитесь к <link
+ linkend="panic-kmemmap-too-small">этому</link> рассмотренному ранее
+ вопросу). Если ваша машина сильно загружена, вам, наверное,
+ понадобится увеличить <varname>kern.maxusers</varname>. Кроме
+ максимального числа процессов это увеличит значения и других
+ параметров, ограничивающих систему.</para>
+
+ <para>Для корректировки значения <varname>kern.maxusers</varname>
+ обратитесь к разделу <ulink
+ url="&url.books.handbook;/configtuning-kernel-limits.html#KERN-MAXFILES">
+ Ограничения файлов/процессов</ulink> Руководства. (Хотя в нём
+ говорится об открытых файлах, те же самые ограничения касаются и
+ процессов.)</para>
+
+ <para>Если ваша машина загружена слабо, и просто у вас
+ слишком много процессов, то вы можете настроить это через sysctl
+ <varname>kern.maxproc</varname>. Если данная переменная нуждается
+ в настройке, она должна быть определена в
+ <filename>/boot/loader.conf</filename>. За дополнительной информацией,
+ касающейся работы с sysctl переменными обращайтесь к страницам
+ справочника &man.loader.conf.5; и &man.sysctl.conf.5;. Если эти
+ процессы запущены одним и тем же пользователем, вам также задать значение
+ <varname>kern.maxprocperuid</varname> на единицу меньшим, чем новое
+ значение <varname>kern.maxproc</varname>. (Оно должно быть по
+ крайней мере на единицу меньшим, потому что системная программа
+ &man.init.8;, должна работать всегда.)</para>
+
+ <para>Чтобы сохранить значения sysctl, задайте
+ их в <filename>/etc/sysctl.conf</filename>. Дополнительную информацию
+ о настройке системы с помощью &man.sysctl.8; можно найти в главе
+ Руководства <ulink
+ url="&url.books.handbook;/configtuning-sysctl.html">Настройка с
+ помощью sysctl</ulink> </para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="cmap-busy-panic">
+ <para>При перезагрузке с новым ядром выдаётся сообщение
+ <literal>CMAP busy panic</literal>.</para>
+ </question>
+
+ <answer>
+ <para>Процедура определения устаревших файлов
+ <filename>/var/db/kvm_*.db</filename> иногда даёт сбой и использует
+ не те файлы, что может вызвать аварийный останов системы.</para>
+
+ <para>Если это случилось, загрузитесь в однопользовательский
+ режим и выполните команду:</para>
+
+ <screen>&prompt.root; <userinput>rm /var/db/kvm_*.db</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="brkadrint-illegal-host-access">
+ <para>Что означает сообщение <errorname>ahc0: brkadrint, Illegal
+ Host Access at seqaddr 0x0</errorname></para>
+ </question>
+
+ <answer>
+ <para>Это - результат конфликта со SCSI-адаптером Ultrastor.</para>
+
+ <para>Во время загрузки войдите в меню конфигурации ядра и выключите
+ устройство <devicename>uha0</devicename>, являющееся источником
+ этой проблемы.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="aci0-illegal-cable">
+ <para>При загрузке моей системы выдается сообщение об ошибке
+ <errorname>ahc0: illegal cable configuration</errorname>. С
+ подключением кабеля все в порядке. Что происходит?</para>
+ </question>
+
+ <answer>
+ <para>На вашей материнской плате отсутствует внешняя логика
+ поддержки автоматического терминирования. Установите в вашем SCSI
+ BIOS правильное терминирование для вашей конфигурации вместо
+ автоматического терминирования. Драйвер &man.ahc.4; не может
+ определить, есть ли внешняя логика для распознавания кабеля (и,
+ соответственно, автоматического терминирования). Драйвер просто
+ полагает, что эта поддержка должна быть, если конфигурация,
+ содержащаяся в EEPROM, установлена в
+ <quote>automatic termination</quote>. Без
+ внешней логики распознавания кабеля драйвер часто будет ошибаться
+ при настройке терминирования, что может сказаться на надежности
+ шины SCSI.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="mail-loopback">
+ <para><application>Sendmail</application> сообщает, что
+ <errorname>mail loops back to myself</errorname></para>
+ </question>
+
+ <answer>
+ <para>Подробный ответ вы можете получить в <ulink
+ url="&url.books.handbook;/mail-trouble.html#Q26.5.2.">Руководстве</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="remote-fullscreen">
+ <para>Полноэкранные приложения на удалённой машине ведут себя
+ неправильно!</para>
+ </question>
+
+ <answer>
+ <para>На удалённой машине тип терминала может быть установлен
+ в значение, отличное от типа терминала <literal>cons25</literal>,
+ требуемом при использовании консоли &os;.</para>
+
+ <para>Есть несколько возможных способов решения этой
+ проблемы:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>После входа на другую машину установите значение
+ переменной окружения <envar>TERM</envar> равным
+ <literal>ansi</literal>
+ или <literal>sco</literal>, если эта машина знает об этих
+ типах терминалов.</para>
+ </listitem>
+
+ <listitem>
+ <para>Используйте эмулятор VT100, например
+ <application>screen</application> на консоли &os;.
+ <application>Screen</application> даёт вам возможность
+ открывать несколько рабочих сеансов на одном терминале,
+ и она имеет ещё ряд полезных особенностей. Каждое окно
+ программы <application>screen</application> ведёт себя
+ как терминал VT100, так что переменная <envar>TERM</envar>
+ на удалённой
+ машине должна быть установлена в
+ значение <literal>vt100</literal>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Опишите терминал <literal>cons25</literal> в базе
+ данных характеристик терминалов на удалённой машине.
+ Способ описания зависит от используемой на этой машине
+ операционной системе. Вам может помочь чтение руководств
+ по администрированию удалённой системы.</para>
+ </listitem>
+
+ <listitem>
+ <para>Запустите X-сервер на стороне &os; и войдите на
+ удалённую систему с помощью какого-либо эмулятора терминала,
+ работающего в X Window, такого, как <command>xterm</command>
+ или <command>rxvt</command>. Переменная окружения
+ <envar>TERM</envar>
+ на удалённой машине должна быть установлена в значение
+ <literal>xterm</literal> или <literal>vt100</literal>.</para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="pnp-not-found">
+ <para>Почему мой PnP-адаптер
+ не обнаруживается (или определяется
+ как <literal>unknown</literal>)?</para>
+ </question>
+
+ <answer>
+ <para>Причины такого поведения объясняются в следующем сообщении
+ электронной почты, опубликованном в &a.questions;
+ Питером Уэммом (&a.peter;) в ответ на вопрос о внутреннем модеме,
+ который перестал распознаваться после обновления до &os;
+ 4.<replaceable>X</replaceable>
+ (комментарии внутри <literal>[]</literal> были добавлены для
+ пояснения контекста послания).</para>
+
+ <note>
+ <para>Содержание этой цитаты по сравнению с оригинальным текстом
+ было изменено.</para>
+ </note>
+
+ <blockquote>
+ <para>BIOS, поддерживающая PNP, предварительно отводит и оставляет
+ ему [модему] место в адресном пространстве портов, так что [в
+ 3.<replaceable>X</replaceable>] процедура обнаружения в старом
+ стиле ISA <quote>находит</quote> его здесь.</para>
+
+ <para>В 4.0 код для работы с ISA гораздо более PnP-центричен.
+ [В 3.<replaceable>X</replaceable>] было возможно при
+ распознавании ISA найти
+ <quote>беспризорное</quote> устройство и затем по идентификатору
+ PNP-устройства произвести поиск и получить ошибку из-за конфликта
+ ресурсов. Поэтому для предотвращения повторной процедуры
+ распознавания в нём сначала выключаются все управляемые
+ адаптеры. Это также означает, что для поддерживаемого
+ оборудования PnP нужно знать их PnP-идентификаторы. Имеются
+ планы на обеспечение возможности настройки этого со стороны
+ пользователя.</para>
+ </blockquote>
+
+ <para>Чтобы заставить устройство работать снова, требуется определить
+ его PnP-идентификатор и добавить его в список, который используется
+ процедурой распознавания ISA для идентификации устройств PnP. Этот
+ идентификатор можно получить при помощи программы &man.pnpinfo.8;,
+ найдя устройство в её выдаче, вот, например, вывод команды
+ &man.pnpinfo.8; в случае внутреннего модема:</para>
+
+ <screen>&prompt.root; <userinput>pnpinfo</userinput>
+Checking for Plug-n-Play devices...
+
+Card assigned CSN #1
+Vendor ID PMC2430 (0x3024a341), Serial Number 0xffffffff
+PnP Version 1.0, Vendor Version 0
+Device Description: Pace 56 Voice Internal Plug & Play Modem
+
+Logical Device ID: PMC2430 0x3024a341 #0
+ Device supports I/O Range Check
+TAG Start DF
+ I/O Range 0x3f8 .. 0x3f8, alignment 0x8, len 0x8
+ [16-bit addr]
+ IRQ: 4 - only one type (true/edge)</screen>
+
+ <para>[лишние строки TAG исключены]</para>
+
+ <screen>TAG End DF
+End Tag
+
+Successfully got 31 resources, 1 logical fdevs
+-- card select # 0x0001
+
+CSN PMC2430 (0x3024a341), Serial Number 0xffffffff
+
+Logical device #0
+IO: 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8 0x03e8
+IRQ 5 0
+DMA 4 0
+IO range check 0x00 activate 0x01</screen>
+
+ <para>Информация, которая вам нужна, находится в строке
+ <literal>Vendor ID</literal> в самом начале вывода команды.
+ Шестнадцатеричное число в скобках (в этом примере
+ <literal>0x3024a341</literal>) является PnP-идентификатором, а
+ строчка, идущая прямо перед ним (<literal>PMC2430</literal>)
+ является уникальным ASCII-идентификатором.</para>
+
+ <para>Либо, если в списке, выдаваемом &man.pnpinfo.8;, адаптера нет,
+ можно воспользоваться утилитой &man.pciconf.8;. Вот часть выдачи
+ команды <command>pciconf -vl</command> для интегрированного в
+ материнскую плату звукового адаптера:</para>
+
+ <screen>&prompt.root; <userinput>pciconf -vl</userinput>
+chip1@pci0:31:5: class=0x040100 card=0x00931028 chip=0x24158086 rev=0x02hdr=0x00
+ vendor = 'Intel Corporation'
+ device = '82801AA 8xx Chipset AC'97 Audio Controller'
+ class = multimedia
+ subclass = audio</screen>
+
+ <para>В данном случае вам нужно использовать значение для
+ <varname>chip</varname>, <literal>0x24158086</literal>.</para>
+
+ <para>Эту информацию (ID производителя или номер микросхемы) нужно
+ добавить в файл <filename>/usr/src/sys/dev/sio/sio_isa.c</filename>.</para>
+
+ <para>Сначала вы должны сделать резервную копию файла
+ <filename>sio_isa.c</filename> просто на тот случай, если что-то пойдёт
+ не так. Эта копия также может потребоваться для создания патча для
+ посылки его вместе с вашим PR (вы же собираетесь послать PR, не
+ правда ли?) отредактировав файл <filename>sio_isa.c</filename> и
+ поискав строчку:</para>
+
+ <programlisting>static struct isa_pnp_id sio_ids[] = {</programlisting>
+
+ <para>Затем переместитесь ниже и найдите подходящее место, чтобы
+ добавить строчку для вашего устройства. Записи имеют примерно такой
+ вид, и они отсортированы по ASCII-строкам Vendor ID, которые должны
+ быть помещены в поле комментария справа от строки кода вместе с
+ полным описанием устройства (если оно поместится) или частью из
+ <emphasis>Device Description</emphasis> вывода программы
+ &man.pnpinfo.8;:</para>
+
+ <programlisting>{0x0f804f3f, NULL}, /* OZO800f - Zoom 2812 (56k Modem) */
+{0x39804f3f, NULL}, /* OZO8039 - Zoom 56k flex */
+{0x3024a341, NULL}, /* PMC2430 - Pace 56 Voice Internal Modem */
+{0x1000eb49, NULL}, /* ROK0010 - Rockwell ? */
+{0x5002734a, NULL}, /* RSS0250 - 5614Jx3(G) Internal Modem */</programlisting>
+
+ <para>Добавьте шестнадцатеричный идентификатор Vendor ID вашего
+ устройства в соответствующее место, сохраните файл, перестройте
+ ядро и выполните перезагрузку. Ваше устройство должно теперь быть
+ найдено в виде устройства <devicename>sio</devicename>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="nlist-failed">
+ <para>Почему при запуске некоторых программ, например,
+ <command>top</command> или <command>systat</command>, выдается
+ сообщение об ошибке <errorname>nlist failed</errorname>?</para>
+ </question>
+
+ <answer>
+ <para>Проблема в том, что приложение, которое вы пытаетесь
+ запустить, ищет специфические ссылки в ядре, но по каким-либо
+ причинам не может их найти; эта ошибка происходит от одной из
+ следующих проблем:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Ваше ядро и программы пользователей не соответствуют
+ друг другу (например, вы построили ядро, но не выполнили
+ команду <maketarget>installworld</maketarget>, или наоборот),
+ и поэтому таблица имен отличается от того, что думают о ней
+ пользовательские приложения. Если это ваш случай, просто
+ завершите процесс обновления (обратитесь к файлу
+ <filename>/usr/src/UPDATING</filename> для выяснения
+ правильной последовательности действий).</para>
+ </listitem>
+
+ <listitem>
+ <para>Для загрузки ядра вы не используете
+ <command>/boot/loader</command>, а делаете это
+ непосредственно из <filename>boot2</filename> (обратитесь
+ к справочно странице по &man.boot.8;). Хотя нет ничего
+ плохого в обходе <command>/boot/loader</command>, обычно
+ работу по доступности символьной информации ядра из
+ пользовательских приложений он выполняет лучше.</para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="connection-delay">
+ <para>Почему подключение через <command>ssh</command> или
+ <command>telnet</command> к моему компьютеру занимает так
+ долго времени?</para>
+ </question>
+
+ <answer>
+ <para>Симптом: между моментом установления TCP-соединения и
+ выдачей клиентским программным обеспечением запроса на ввод
+ пароля (или, в случае использования &man.telnet.1;, выдачей
+ приглашения на вход) проходит большой промежуток времени.</para>
+
+ <para>Проблема: скорее всего, задержка вызвана программным
+ обеспечением на стороне сервера, которое пытается преобразовать
+ IP-адрес клиента в имя хоста. Многие серверы, включая
+ <application>Telnet</application> и <application>SSH</application>,
+ поставляемые с &os;, делают это для того, чтобы, кроме всего
+ прочего, записать имя хоста в файле журнала для справки
+ администратора.</para>
+
+ <para>Лечение: Если проблема возникает вне зависимости от того,
+ к какому серверу вы подключаетесь с вашего компьютера (клиента),
+ то причина в клиенте; или же, если проблема возникает только
+ при чьей-либо попытке подключиться к вашему компьютеру (серверу),
+ то проблема с сервером.</para>
+
+ <para>Если проблема с клиентом, то единственным методом ее решения
+ является исправление DNS, чтобы сервер смог распознать вашу
+ машину. Если это происходит в локальной сети, то предположите,
+ что это проблема с сервером и продолжайте чтение; обратно, если
+ это происходит в глобальной сети Интернет, то в большинстве
+ случаев вам нужно обратиться к вашему провайдеру и попросить
+ исправить положение.</para>
+
+ <para>Если проблема с сервером, и это происходит в локальной
+ сети, то вам нужно настроить сервер для разрешения запросов на
+ преобразование адреса в имя хоста в диапазоне ваших локальных
+ адресов. Обратитесь к страницам Справочника по &man.hosts.5;
+ и &man.named.8; для получения более подробной информации.
+ Если это происходит в глобальной сети Интернет, то проблема
+ может заключаться в некорректной работе ресолвера вашего сервера.
+ Для проверки попробуйте найти другой хост, скажем,
+ <hostid>www.yahoo.com</hostid>. Если это не работает, то
+ проблема у вас.</para>
+
+ <para>Из-за свежей установки &os;, также возможно, что
+ информация о домене и сервере имён отсутствует в
+ <filename>/etc/resolv.conf</filename>. Это часто будет
+ вызывать задержку в работе <application>SSH</application>,
+ так как опция <literal>UseDNS</literal> по умолчанию
+ установлена в значение <literal>yes</literal> в файле
+ <filename>sshd_config</filename> из каталога <filename
+ class="directory">/etc/ssh</filename>. Если именно это является
+ причиной проблемы, то вам нужно будет либо добавить недостающую
+ информацию в <filename>/etc/resolv.conf</filename>, либо в
+ качестве временной меры установить <literal>UseDNS</literal>
+ в <literal>no</literal> в файле
+ <filename>sshd_config</filename>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="stray-irq">
+ <para>Что означает сообщение <errorname>stray IRQ</errorname>?</para>
+ </question>
+
+ <answer>
+ <para>Потерянные IRQ являются признаком странностей в работе
+ аппаратных IRQ, в основном оборудования, которое удаляет свои
+ запросы на прерывание посреди цикла подтверждения запроса на
+ прерывание.</para>
+
+ <para>Имеется три варианта работы с такими ситуациями:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Примириться с сообщениями. В любом случае подавляются все
+ сообщения, кроме каждых первых 5 на IRQ.</para>
+ </listitem>
+
+ <listitem>
+ <para>Убрать предупреждающие сообщения, изменив значение
+ <varname>MAX_STRAY_LOG</varname> с <literal>5</literal> на
+ <literal>0</literal> в файле
+ <filename>intr_machdep.c</filename> для вашей платформы
+ (например, &i386;), и собрать новое ядро, и тогда все
+ предупреждения будут подавлены.</para>
+ </listitem>
+
+ <listitem>
+ <para>Избавиться от предупреждений, установив параллельный порт,
+ использующий IRQ&nbsp;7 и драйвер PPP для него (это есть на
+ большинстве систем), и установив диск IDE или другое
+ оборудование, использующее IRQ&nbsp;15 и подходящий драйвер.</para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="file-table-full">
+ <para>Почему в &man.dmesg.8; регулярно выводятся сообщения
+ <errorname>file: table is full</errorname>?</para>
+ </question>
+
+ <answer>
+ <para>Такое сообщение об ошибке сигнализирует о том, что в вашей
+ системе исчерпано количество доступных файловых дескрипторов.
+ Пожалуйста, обратитесь к разделу <ulink
+ url="&url.books.handbook;/configtuning-kernel-limits.html#KERN-MAXFILES">
+ kern.maxfiles</ulink> главы о <ulink
+ url="&url.books.handbook;/configtuning-kernel-limits.html">
+ Настройке ограничений ядра</ulink> Руководства для выяснения всех
+ подробностей и устранения этой проблемы.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="calcru-negative-runtime">
+ <para>Почему выводятся сообщения
+ <errorname>calcru: negative runtime</errorname> или
+ <errorname>calcru: runtime went backwards</errorname>?</para>
+ </question>
+
+ <answer>
+ <para>При включении в BIOS &intel; Enhanced SpeedStep может
+ возникнуть проблема, при которой ядро начинает выводить
+ сообщения <errorname>calcru</errorname> как показано
+ ниже:</para>
+
+ <screen>calcru: runtime went backwards from 6 usec to 3 usec for pid 37 (pagezero)
+calcru: runtime went backwards from 6 usec to 3 usec for pid 36 (vmdaemon)
+calcru: runtime went backwards from 170 usec to 138 usec for pid 35 (pagedaemon)
+calcru: runtime went backwards from 553 usec to 291 usec for pid 15 (swi6: task queue)
+calcru: runtime went backwards from 15521 usec to 10366 usec for pid 2 (g_event)
+calcru: runtime went backwards from 25 usec to 12 usec for pid 11 (swi1: net)
+calcru: runtime went backwards from 4417 usec to 3960 usec for pid 1 (init)
+calcru: runtime went backwards from 2084385 usec to 1793542 usec for pid 1 (init)
+calcru: runtime went backwards from 408 usec to 204 usec for pid 0 (swapper)</screen>
+
+ <para>Причиной является то, что &intel; SpeedStep (EIST) не
+ совместим с некоторыми системными платами.</para>
+
+ <para>Обходной путь: отключить EIST в BIOS. При этом у вас
+ сохраняется возможность управлять частотой ACPI-совместимого
+ процессора, используя &man.powerd.8;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="computer-clock-skew">
+ <para>Почему часы на моем компьютере показывают неправильное
+ время?</para>
+ </question>
+
+ <answer>
+ <para>На вашем компьютере установлены двое или большее количество
+ таймеров, а &os; выбрала не тот.</para>
+
+ <para>Запустите &man.dmesg.8; и посмотрите строки, содержащие слово
+ <literal>Timecounter</literal>. &os; выбирает таймер с
+ наибольшим значением качества.</para>
+
+ <screen>&prompt.root; <userinput>dmesg | grep Timecounter</userinput>
+Timecounter "i8254" frequency 1193182 Hz quality 0
+Timecounter "ACPI-fast" frequency 3579545 Hz quality 1000
+Timecounter "TSC" frequency 2998570050 Hz quality 800
+Timecounters tick every 1.000 msec</screen>
+
+ <para>Вы можете удостовериться в этом, проверив
+ &man.sysctl.3;-переменную
+ <varname>kern.timecounter.hardware</varname>.</para>
+
+ <screen>&prompt.root; <userinput>sysctl kern.timecounter.hardware</userinput>
+kern.timecounter.hardware: ACPI-fast</screen>
+
+ <para>Это может быть неработающий таймер ACPI. Самым простым
+ решением будет отключить таймер ACPI в
+ <filename>/etc/loader.conf</filename>:</para>
+
+ <programlisting>debug.acpi.disabled="timer"</programlisting>
+
+ <para>Либо же BIOS может изменить частоту TSC&mdash;может, для изменения
+ скорости работы процессора при работе от батареек или переводя в
+ режим пониженного электропитания, но &os; не отслеживает это и
+ в результате часы начинают спешить или отставать.</para>
+
+ <para>В этом примере имеется также и таймер <literal>i8254</literal>,
+ и он может быть выбран записью его имени в
+ &man.sysctl.3;-переменную
+ <varname>kern.timecounter.hardware</varname>.</para>
+
+ <screen>&prompt.root; <userinput>sysctl -w kern.timecounter.hardware=i8254</userinput>
+kern.timecounter.hardware: TSC -&gt; i8254</screen>
+
+ <para>Теперь ваш компьютер будет аккуратнее следить за временем.</para>
+
+ <para>Чтобы это изменение вступало в силу во время загрузки системы,
+ добавьте в файл <filename>/etc/sysctl.conf</filename> такую
+ строчку:</para>
+
+ <programlisting>kern.timecounter.hardware=i8254</programlisting>
+ </answer>
+ </qandaentry>
+
+
+ <qandaentry>
+ <question id="null-null">
+ <para>Почему мой лэптоп некорректно распознаёт PC-карты?</para>
+ </question>
+
+ <answer>
+ <para>Эта проблема часто встречается на лэптопах, которые работают
+ более чем с одной операционной системой. Некоторые не-BSD
+ операционные системы оставляют аппаратную часть PC-карт в
+ неустойчивом состоянии. &man.pccardd.8; распознает
+ карту как <errorname>"(null)""(null)"</errorname>, а не как
+ реально используемую модель.</para>
+
+ <para>Вы должны убрать всё питание со слота PC-карты для полного
+ сброса аппаратуры. Полностью выключите лэптоп. (Не переводите его
+ ни в спящий, ни в ждущий режим; питание должно быть выключено
+ полностью.) Подождите несколько секунд и выполните перезагрузку.
+ Теперь ваша PC-карта должна заработать.</para>
+
+ <para>В некоторых лэптопах аппаратная часть неверно сообщает о
+ своём выключении. Если описанное выше не работает, остановите
+ работу, выньте батарею, подождите несколько секунд, вставьте
+ батарею и выполните перезагрузку.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="boot-read-error">
+ <para>Сразу после экрана BIOS начальный загрузчик &os; выводит
+ сообщение <errorname>Read error</errorname> и
+ останавливается.</para>
+ </question>
+
+ <answer>
+ <para>Начальный загрузчик &os; неверно определяет параметры
+ винчестера. Их можно установить вручную утилитой &man.fdisk.8; при
+ создании или изменении параметров слайса &os;.</para>
+
+ <para>Правильные значения параметров диска можно посмотреть в BIOS.
+ Обратите внимание на число дорожек, головок и секторов для этого
+ диска.</para>
+
+ <para>В подпрограмме fdisk утилиты &man.sysinstall.8; нажмите
+ <keycap>G</keycap> для установки параметров диска (disk
+ geometry).</para>
+
+ <para>Появится диалоговое окно, запрашивающее количество дорожек,
+ головок и секторов. Задайте значения, взятые из BIOS и разделяемые
+ символами слэша. Например, 5000 дорожек, 250 головок и 60 секторов
+ будут введены как <userinput>5000/250/60</userinput>.</para>
+
+ <para>Нажмите <keycap>Enter</keycap> для установки этих значений,
+ а затем клавишу
+ <keycap>W</keycap> для того, чтобы записать новую таблицу
+ разделов на диск.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="bootmanager-restore">
+ <para>Другая операционная система уничтожила мой менеджер загрузки,
+ как мне его восстановить?</para>
+ </question>
+
+ <answer>
+ <para>Запустите утилиту &man.sysinstall.8; и выберите пункт
+ <guimenuitem>Configure</guimenuitem>, а затем
+ <guimenuitem>Fdisk</guimenuitem>. Выберите диск, на котором ранее
+ находился менеджер загрузки, при помощи клавиши
+ <keycap>Пробел</keycap>. Нажмите <keycap>W</keycap> для записи
+ изменений на диск. Появится диалоговое окно для выбора
+ устанавливаемого начального загрузчика. Выберите нужный, и он
+ будет восстановлен.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="indefinite-wait-buffer">
+ <para>Что означает сообщение <errorname>swap_pager: indefinite
+ wait buffer:</errorname>?</para>
+ </question>
+
+ <answer>
+ <para>Это значит, что процесс пытается сбросить страницу памяти на
+ диск, и попытка сделать это оканчивается неудачно вот уже в течение
+ более чем 20 секунд. Это может быть вызвано испорченными блоками
+ на диске, кабелями, подключением или другим оборудованием
+ ввода/вывода. Если диск сам по себе на самом деле испорчен, вы
+ также увидите ошибки работы с диском в
+ <filename>/var/log/messages</filename> и при работе команды
+ <command>dmesg</command>. В противном случае проверьте кабели и
+ подключения.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="udma-icrc">
+ <para>Что означают ошибки <errorname>UDMA ICRC</errorname>, и как их
+ исправить?</para>
+ </question>
+
+ <answer>
+ <para>Драйвер &man.ata.4; сообщает об ошибках
+ <errorname>UDMA ICRC</errorname>, когда нарушается передача в или с
+ диска в режиме DMA. Драйвер будет повторять передачу
+ несколько раз. Если повторные попытки окончатся неудачей, он
+ переключится из режима DMA в более медленный режим PIO
+ взаимодействия с устройством.</para>
+
+ <para>Проблема может возникать по многим причинам, хотя самым
+ распространённой является неправильное или сбоящее подключение
+ кабелей. Проверьте кабели ATA на наличие повреждений и
+ соответствие используемому режиму Ultra&nbsp;DMA. Если вы используете
+ диски на съёмных салазках, они также должны быть совместимыми с
+ этим режимом. Удостоверьтесь, что все соединения подключены
+ хорошо. Проблемы также наблюдались, когда старый диск
+ устанавливался на тот же самый канал ATA, что и Ultra&nbsp;DMA&nbsp;66
+ (или более быстрый) диск. Наконец, такие ошибки могут указывать на
+ сбойность самого диска. Большинство производителей дисков
+ предоставляют программное обеспечение для тестирования своих
+ дисков, так что проверьте свой диск, и, если это необходимо,
+ сделайте резервную копию данных и замените его.</para>
+
+ <para>Для просмотра и выбора режимов DMA или PIO для каждого
+ устройства ATA можно использовать утилиту &man.atacontrol.8;. В
+ частности, команда <command>atacontrol mode
+ <replaceable>channel</replaceable></command> выдаст режимы,
+ используемые заданным каналом ATA, причём первичный канал
+ нумеруется нулём, и так далее.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="lock-order-reversal">
+ <para>Что означают сообщения <errorname>lock order
+ reversal</errorname>?</para>
+ </question>
+
+ <answer>
+ <para>Ответ на этот вопрос можно найти в глоссарии &os;,
+ смотрите <ulink
+ url="&url.books.handbook;/freebsd-glossary.html#LOR-GLOSSARY">LOR</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="called-with-non-sleepable-locks-held">
+ <para>Что означают сообщения <errorname>Called ... with
+ the following non-sleepable locks held</errorname>?</para>
+ </question>
+
+ <answer>
+ <para>Это означает, что функция, которая может находиться в
+ <quote>спящем</quote> состоянии была вызвана во время
+ использования мьютекс (или другого не <quote>засыпающего</quote>)
+ блокирования.</para>
+
+ <para>Причина этого - ошибка, потому что мьютексы не предполагают
+ находиться в удерживаемом состоянии длительные промежутки
+ времени, а блокировать только на короткие периоды синхронизации.
+ Это правило позволяет драйверам устройств использовать мьютексы
+ для синхронизации с остальной частью ядра во время прерываний.
+ Прерывания (во &os;) могут находиться не в <quote>спящем
+ состоянии</quote>. Следовательно необходимо, чтобы не было
+ подсистем в ядре, которые бы занимались блокировкой длительный
+ период, используя мьютекс.</para>
+
+ <para>Для ловли таких ошибок, в ядро могут быть добавлены
+ assertions, которые будут взаимодействовать с подсистемой
+ &man.witness.4;
+ для генерирования предупреждения или фатальной ошибки (в
+ зависимости от системной конфигурации) в случаях когда
+ производится потенциально блокирующий вызов с удержанием
+ мьютекса.</para>
+
+ <para>В общем, такие предупреждения не критичны, но тем не менее,
+ с неудачной синхронизацией (timing) они могут вызвать нежелательные
+ эффекты, начиная от незначительной задержки в ответной реакции системы
+ до полной блокировки системы.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="touch-not-found">
+ <para>Почему процесс
+ <maketarget>buildworld</maketarget>/<maketarget>installworld</maketarget>
+ завершается с сообщением
+ <errorname>touch: not found</errorname>?</para>
+ </question>
+
+ <answer>
+ <para>Эта ошибка не означает, что не найдена утилита &man.touch.1;.
+ Ошибка наверняка появляется из-за того, что даты модификации файлов
+ установлены в будущем. Если ваши CMOS часы установлены на локальное
+ время, то вам надо отрегулировать часовой механизм ядра, запустив
+ команду <command>adjkerntz&nbsp;-i</command>, при загрузке в
+ однопользовательском режиме.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="commercial">
+ <title>Коммерческие приложения</title>
+
+ <note>
+ <para>Этот раздел выглядит довольно заброшенным, однако мы,
+ конечно же, надеемся, что производители сделают добавления! :) Проект
+ &os; финансово не заинтересован в успехах ни одной из компаний,
+ которые здесь упоминаются, хотя приводит их список в интересах
+ общества (в предположении, что коммерческий интерес к &os; может
+ положительно повлиять на дальнейшее развитие &os;). Мы просим
+ поставщиков коммерческого программного обеспечения присылать нам
+ информацию о ваших продуктах для включения в этот список. Более
+ полный список производителей находится на <ulink
+ url="&url.base;/commercial/commercial.html">странице
+ производителей</ulink>.</para>
+ </note>
+
+ <qandaset>
+ <qandaentry>
+ <question id="officesuite">
+ <para>Где можно найти набор офисных программ для &os;?</para>
+ </question>
+
+ <answer>
+ <para>Офисные пакеты с открытым кодом <application><ulink
+ url="http://www.openoffice.org">OpenOffice.org</ulink></application>
+ и <application><ulink
+ url="http://www.libreoffice.org">LibreOffice</ulink></application>
+ имеют версии, предназначенные для работы во &os;.
+ &linux;-версия <application><ulink
+ url="http://www.oracle.com/us/products/applications/open-office/index.html">
+ Oracle Open Office</ulink></application>,
+ расширенной закрытой версии OpenOffice.org, также работает во
+ &os;.</para>
+
+ <para>В Коллекции Портов &os; имеется также множество текстовых
+ редакторов, электронных таблиц и программ для работы с
+ изображениями.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="motif">
+ <para>Где можно купить <application>&motif;</application> для
+ &os;?</para>
+ </question>
+
+ <answer>
+ <para>Open Group опубликовала исходные тексты
+ <application>&motif;&nbsp;2.2.2</application>. Вы можете
+ установить пакет
+ <filename role="package">x11-toolkits/open-motif</filename>
+ или скомпилировать его из портов. Воспользуйтесь <ulink
+ url="&url.books.handbook;/ports.html">секцией Порты Руководства</ulink> для
+ получения детальной информации о том, как это сделать.</para>
+
+ <note>
+ <para>Лицензия <application>Open&nbsp;&motif;</application>
+ позволяет распространение, только если
+ библиотека используется на операционной системе
+ <ulink url="http://www.opensource.org/">
+ с открытыми исходными текстами</ulink>.</para>
+ </note>
+
+ <para>В дополнение нужно сказать, что существуют также,
+ дистрибьюторы предлагающие коммерческий вариант
+ <application>&motif;</application>. Эта библиотека не
+ бесплатна, но ее лицензия позволяет вести разработку приложений с
+ закрытыми исходными текстами. Обратитесь в фирму
+ <link linkend="apps2go">Apps2go</link>, предлагающую
+ самый дешёвый дистрибутив
+ <application>&motif;&nbsp;2.1.20</application> для &os;
+ (&i386;) в формате ELF.<anchor id="apps2go"/></para>
+
+ <para>Существуют два дистрибутива, <quote>для разработчиков</quote>
+ (<quote>development edition</quote>) и ещё более дешёвая
+ <quote>времени выполнения</quote> (<quote>runtime edition</quote>).
+ В эти дистрибутивы включены:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><application>OSF/&motif; manager</application>,
+ <application>xmbind</application>,
+ <application>panner</application>,
+ <application>wsm</application>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Пакет разработчика с uil, mrm, xm, xmcxx, заголовочными
+ файлами и файлами <application>Imake</application>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Статические и динамические ELF-библиотеки.</para>
+ </listitem>
+
+ <listitem>
+ <para>Демонстрационные приложения.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>При оформлении заказа не забудьте указать, что вам нужна
+ версия <application>&motif;</application> именно для &os;
+ (не забудьте также указать архитектуру процессора)!
+ <emphasis>Apps2go</emphasis> также продаёт версии для NetBSD
+ и OpenBSD. В настоящий момент их можно получить только по
+ FTP.</para>
+
+ <variablelist>
+ <varlistentry><term>Дополнительная информация</term>
+ <listitem>
+ <para><ulink
+ url="http://www.apps2go.com/">WWW-сервер Apps2go</ulink></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry><term>или</term>
+ <listitem>
+ <para>электронные адреса отделов <ulink
+ url="mailto:sales@apps2go.com">продаж</ulink> и <ulink
+ url="mailto:support@apps2go.com">поддержки</ulink>.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry><term>или</term>
+ <listitem>
+ <para>телефоны (817)&nbsp;431&nbsp;8775 или
+ +1&nbsp;817&nbsp;431-8775</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="cde">
+ <para>Где можно купить <application>CDE</application> для
+ &os;?</para>
+ </question>
+
+ <answer>
+ <para>Фирма <emphasis>Xi Graphics</emphasis> предлагала
+ <application>CDE</application> для
+ &os;, но сейчас этот продукт в продаже отсутствует.</para>
+
+ <para><ulink
+ url="http://www.kde.org/"><application>KDE</application></ulink>
+ - это свободно
+ распространяемый вариант графической среды для X11, которая во
+ многом похожа на <application>CDE</application>. Вам может
+ также приглянуться <ulink
+ url="http://www.xfce.org/"><application>xfce</application></ulink>.
+ <application>KDE</application> и <application>xfce</application>
+ можно получить из
+ <ulink url="&url.base;/ports/">Коллекции Портов</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="database-systems">
+ <para>Существуют ли СУБД для &os;?</para>
+ </question>
+
+ <answer>
+ <para>Да! Обратитесь к разделу <ulink
+ url="&url.base;/commercial/software_bycat.html#CATEGORY_DATABASE">
+ Поставщики программного обеспечения</ulink> на Web-сервере &os;.</para>
+
+ <para>Также посмотрите раздел <ulink
+ url="&url.base;/ports/databases.html">Базы данных</ulink>
+ Коллекции Портов.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="oracle-support">
+ <para>Можно ли запустить <application>&oracle;</application>
+ на &os;?</para>
+ </question>
+
+ <answer>
+ <para>Да. Указания по настройке &linux;
+ <application>&oracle;</application> на &os;
+ находятся по адресу <ulink
+ url="http://www.shadowcom.net/freebsd-oracle9i/">
+ http://www.shadowcom.net/freebsd-oracle9i/</ulink></para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="applications">
+ <title>Прикладные программы</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="user-apps">
+ <para>Итак, где находятся все прикладные программы?</para>
+ </question>
+
+ <answer>
+ <para>Пожалуйста, загляните на <ulink
+ url="&url.base;/ports/index.html">страницу портов</ulink>,
+ содержащую информацию о программных продуктах, перенесённых
+ во &os;. На данный момент в этом списке находится более
+ &os.numports; приложений и он ежедневно увеличивается, так
+ что почаще туда заглядывайте или подпишитесь на &a.announce;,
+ в котором публикуется информация о появлении новых
+ приложений.</para>
+
+ <para>Большинство портов должно нормально работать на системах
+ веток &rel3.relx;, &rel2.relx; и &rel.relx;.
+ При выходе нового релиза &os; в него в каталог <filename
+ class="directory">ports/</filename> включается актуальная на
+ момент выхода Коллекция Портов.</para>
+
+ <para>Мы также поддерживаем концепцию <quote>пакаджа</quote>,
+ являющегося не более чем упакованным дистрибутивом в бинарной
+ форме с некоторыми встроенными возможностями по его настройке
+ во время установки. Пакадж может быть легко установлен и
+ деинсталлирован снова без углубления в детали того, какие файлы
+ должны быть установлены.</para>
+
+ <para>Используйте меню установки пакаджей
+ <guimenuitem>Packages</guimenuitem> в &man.sysinstall.8; (в
+ пункте меню <guimenuitem>Configure</guimenuitem>) или
+ запускайте &man.pkg.add.1; с указанием конкретных файлов с
+ пакаджами, которые вы хотите установить. Файл с пакаджем, как
+ правило, идентифицируется по его суффиксу
+ <filename>.tbz</filename>. Для обладателей дистрибутива
+ системы на компакт-диске предназначен каталог <filename
+ class="directory">packages/All</filename>, содержащий все эти
+ файлы. Также разные версии &os; можно получить по сети со
+ следующих серверов:</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>для &rel3.relx;&nbsp;-RELEASE/&rel3.stable;</term>
+
+ <listitem>
+ <para><ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/&rel3.packages;/">
+ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/&rel3.packages;</ulink></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>для &rel2.relx;&nbsp;-RELEASE/&rel2.stable;</term>
+
+ <listitem>
+ <para><ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/&rel2.packages;/">
+ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/&rel2.packages;</ulink></para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>для &rel.relx;&nbsp;-RELEASE/&rel.stable;</term>
+
+ <listitem>
+ <para><ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/&rel.packages;/">
+ ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/i386/&rel.packages;</ulink></para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>или с ближайшего к вам зеркального сервера.</para>
+
+ <para>Имейте в виду, что не все порты могут быть доступны в виде
+ пакаджей, так как постоянно идёт добавление новых. Неплохо
+ время от времени проверять, какие пакаджи доступны на основном
+ сервере <ulink
+ url="ftp://ftp.FreeBSD.org/pub/FreeBSD/">ftp.FreeBSD.org</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="configure-inn">
+ <para>Как настроить INN (Internet News) на моей машине?</para>
+ </question>
+
+ <answer>
+ <para>После установки пакаджа или порта <filename
+ role="package">news/inn</filename> для начала загляните в
+ <ulink url="http://www.eyrie.org/~eagle/faqs/inn.html">INN
+ FAQ</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="java">
+ <para>Поддерживает ли &os; среду &java;?</para>
+ </question>
+
+ <answer>
+ <para>Да. Посетите страницу <ulink
+ url="&url.base;/java/index.html">
+ http://www.FreeBSD.org/java/</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ports-4x">
+ <para>Почему этот порт не компилируется на моей машине с
+ &rel3.relx;&nbsp;-, &rel2.relx;&nbsp;-
+ или &rel.relx;&nbsp;-STABLE?</para>
+ </question>
+
+ <answer>
+ <para>Если вы пользуетесь версией &os;, значительно отстающей от
+ <emphasis>-CURRENT</emphasis> или <emphasis>-STABLE</emphasis>,
+ вам может потребоваться обновить Коллекцию
+ Портов. Дополнительную информацию о том, как это сделать, можно
+ найти в <ulink url="&url.books.porters-handbook;/keeping-up.html">
+ соответствующем разделе</ulink> Руководства по созданию портов.
+ Если ваша Коллекция Портов находится в актуальном состоянии,
+ то, скорее всего, кто-то внёс изменения в порт, так что
+ он работает в <emphasis>-CURRENT</emphasis>, но не работает в
+ <emphasis>-STABLE</emphasis>. Так как
+ предполагается, что Коллекция Портов должна работать как в ветке
+ <emphasis>-CURRENT</emphasis>, так и в ветви
+ <emphasis>-STABLE</emphasis>, то, пожалуйста, пошлите сообщение
+ об этой ошибке с помощью команды &man.send-pr.1;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="make-index">
+ <para>Я попытался сформировать файл <filename>INDEX</filename>
+ командой <command>make <maketarget>index</maketarget></command>,
+ однако попытка окончилась неудачей. Почему?</para>
+ </question>
+
+ <answer>
+ <para>Первым делом всегда проверяйте, что ваша Коллекция Портов
+ находится в актуальном состоянии. Ошибки, которые отражаются на
+ построении файла <filename>INDEX</filename> из актуальной копии
+ Коллекции Портов, бросаются в глаза и поэтому практически всегда
+ исправляются немедленно.</para>
+
+ <para>Если ваши данные обновлены, возможно, вы столкнулись с другой
+ проблемой. У команды <command>make
+ <maketarget>index</maketarget></command> имеется
+ известная ошибка, касающаяся работы с неполными копиями
+ Коллекции Портов. При выполнении команды предполагается, что у вас
+ имеется локальная копия каждого порта, от которого зависит любой
+ другой порт, локальная копия которого у вас имеется. Предположив,
+ что у вас на диске есть копия <filename>foo/bar</filename>, и
+ <filename>foo/bar</filename> зависит от
+ <filename>baz/quux</filename>, то у вас также должна быть копия
+ <filename>baz/quux</filename>, а также всех портов, от которых
+ зависит <filename>baz/quux</filename>, и так далее. В противном
+ случае у <command>make <maketarget>index</maketarget></command>
+ будет недостаточно
+ информации для создания дерева зависимостей.</para>
+
+ <para>В частности, эта проблема отражается на пользователях &os;,
+ использующих &man.cvsup.1; (или &man.csup.1;) для отслеживания
+ Коллекции Портов, но
+ отказывающихся от установки определенных категорий приложений их
+ перечислением в файле <filename>refuse</filename>. Теоретически
+ любой пользователь может отказаться от некоторых категорий, однако
+ на практике имеется слишком много портов, которые зависят от
+ портов, относящихся к другим категориям. Пока кто-нибудь не
+ предложит решения этой проблемы, общая рекомендация заключается в
+ том, что если вы хотите сформировать <filename>INDEX</filename>, то
+ должны иметь полную копию Коллекции Портов.</para>
+
+ <para>В редких случаях <filename>INDEX</filename> не перестраивается
+ из-за странных комбинаций значений переменных
+ <makevar>WITH_<replaceable>*</replaceable></makevar> или
+ <makevar>WITHOUT_<replaceable>*</replaceable></makevar>, заданных в
+ файле <filename>make.conf</filename>. Если вы думаете, что это ваш
+ случай, прежде чем сообщать об этом в &a.ports;, попытайтесь
+ сформировать <filename>INDEX</filename> с
+ отключенными значениями этих переменных.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="cvsup-in-base">
+ <para>Почему <application>CVSup</application> не интегрирована
+ в основное дерево &os;?</para>
+ </question>
+
+ <answer>
+ <para>Базовый комплект установки &os; спроектирован
+ самодостаточным &mdash; то есть операционную систему возможно полностью
+ построить, имея весьма ограниченный набор инструментов. Так, все
+ инструменты, действительно необходимые для компиляции исходных
+ текстов &os;, сами поставляются с исходными текстами. Речь идёт
+ о компиляторе C (&man.gcc.1;), &man.make.1;, &man.awk.1; и подобных
+ средствах.</para>
+
+ <para>Так как <application>CVSup</application> написан на языке
+ Modula-3, его включение в
+ базовый комплект &os; также потребует добавление и поддержку
+ компилятора Modula-3. Это приведёт как к увеличению как дискового
+ пространства, требуемого исходным текстам &os;, так и усилий
+ по их поддержке. Таким образом, как
+ разработчикам, так и пользователям гораздо проще держать
+ <application>CVSup</application> в
+ виде отдельного порта, который легко устанавливается как пакадж,
+ размещаемый на установочных CD с &os;.</para>
+
+ <para>Тем не менее, начиная с версии &os;&nbsp;6.2-RELEASE,
+ пользователи &os; больше не страдают от отсутствия встроенного
+ клиента, совместимого с <application>CVSup</application>.
+ Благодаря &a.mux;, <application>CVSup</application> был
+ переписан на языке Си и получил название &man.csup.1;, и теперь
+ является частью базового комплекта. И хотя в настоящее время
+ в клиенте не реализованы все функциональные возможности
+ <application>CVSup</application>, он является хорошим (и
+ весьма быстрым!) вариантом для синхронизации ваших исходных
+ текстов. Для систем, выпущенных до 6.2, клиент можно установить
+ из порта или пакета (смотрите <filename
+ role="package">net/csup</filename>).</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ports-update">
+ <para>Я обновил исходные тексты. Как теперь обновить
+ установленные порты?</para>
+ </question>
+
+ <answer>
+ <para>С &os; не поставляется инструмент обновления портов, но
+ есть несколько программ, немного облегчающих этот процесс. Вы
+ можете также установить дополнительные инструменты для упрощения
+ работы с портами, смотрите раздел Руководства &os; <ulink
+ url="&url.books.handbook;/ports-using.html">Использование
+ Коллекции Портов</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ports-major-upgrade">
+ <para>Нужно ли мне перекомпилировать все порты каждый раз,
+ когда я выполняю мажорное обновление (со сменой старшей
+ версии &os;)?</para>
+ </question>
+
+ <answer>
+ <para>Разумеется! На свежеобновленной системе программное
+ обеспечение, скомпилированное под более старый релиз, будет
+ по прежнему работать, но в конечном счете вы придёте к тому,
+ что некоторые приложения перестанут правильно работать и
+ будут падать в произвольном месте, как только вы начнете
+ устанавливать другие порты или обновлять существующие.</para>
+
+ <para>Когда система обновлена, различные совместно используемые
+ библиотеки, загружаемые модули и другие части системы замещаются
+ более новыми версиями. Приложения, скомпонованные с более
+ старыми версиями, могут перестать запускаться либо начнут
+ функционировать неправильно.</para>
+
+ <para>Для получения дополнительной информации обращайтесь к <ulink
+ url="&url.books.handbook.en;/updating-upgrading-freebsdupdate.html#FREEBSDUPDATE-UPGRADE">разделу,
+ посвящённому обновлениям,</ulink> руководства &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ports-minor-upgrade">
+ <para>Нужно ли мне перекомпилировать все порты каждый раз,
+ когда я выполняю минорное обновление (без изменения старшей
+ версии &os;)?</para>
+ </question>
+
+ <answer>
+ <para>В общем случае, нет. Разработчики &os; делают всё
+ возможное для сохранения двоичной совместимости между всеми
+ релизами в пределах одной старшей версии. Любые исключения
+ из этого правила документируются в "Примечаниях к релизу", и
+ там же даются советы, которых следует придерживаться.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="minimal-sh">
+ <para>Почему возможности <command>/bin/sh</command> так малы?
+ Почему бы во &os; не использовать <command>bash</command> или
+ какой-либо другой командный процессор?</para>
+ </question>
+
+ <answer>
+ <para>Потому что в стандарте &posix; сказано, что все командные
+ процессоры должны вести себя так же, как shell.</para>
+
+ <para>Более подробный ответ заключается в следующем: многим
+ требуется, чтобы разрабатываемые скрипты для командного процессора
+ были переносимы между многими системами. Именно поэтому в &posix;
+ очень подробно описан командный процессор и набор утилит.
+ Большинство скриптов пишутся на языке процессора Bourne shell, к
+ тому же некоторые важные программные вызовы (&man.make.1;,
+ &man.system.3;, &man.popen.3; и их аналоги на языках скриптов
+ высокого уровня, таких как Perl или Tcl) предполагают для
+ интерпретации команд использование именно Bourne shell. Так как
+ Bourne shell используется столь широко и часто, то очень важно,
+ чтобы он стартовал очень быстро, его поведение было строго
+ регламентировано и при этом потребности в оперативной памяти были
+ малы.</para>
+
+ <para>В имеющейся реализации мы приложили максимум усилий для
+ воплощения в жизнь всех этих требований одновременно. Для того,
+ чтобы сохранить <command>/bin/sh</command> небольшим по размеру,
+ мы не включили многие из обычных возможностей, которые имеются в
+ других командных процессорах. Однако в Коллекцию Портов включены
+ командные процессоры, обладающие гораздо большими возможностями,
+ такие, как <command>bash</command>, <command>scsh</command>,
+ <command>tcsh</command> и <command>zsh</command>. (Вы можете
+ сами сравнить
+ использование памяти всеми этими оболочками, посмотрев в колонки
+ <quote>VSZ</quote> и <quote>RSS</quote> вывода команды
+ <command>ps <option>-u</option></command>.)</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="netscape-slow-startup">
+ <para>Почему <application>&netscape;</application> и
+ <application>Opera</application> запускаются так долго?</para>
+ </question>
+
+ <answer>
+ <para>Обычно проблема заключается в том, что на вашей машине
+ неправильно настроен DNS. И <application>&netscape;</application>,
+ и <application>Opera</application> при запуске
+ обращаются к DNS. Браузер не появится на вашем рабочем столе, пока
+ программа либо не получит ответ на свой запрос, либо не определит,
+ что система к сети не подключена.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ports-base-update">
+ <para>Я обновил некоторые разделы Коллекции Портов при помощи
+ <application>CVSup</application>,
+ и теперь многие порты перестали строиться со странными
+ диагностическими сообщениями! Что случилось? Коллекция Портов
+ каким-то образом оказалась неработоспособной?</para>
+ </question>
+
+ <answer>
+ <para>Если вы обновляете Коллекцию Портов только частично, используя
+ один из более мелких наборов <application>CVSup</application>,
+ обходясь без <application>CVSup</application>-набора
+ <literal>ports-all</literal>, то вы должны
+ <emphasis>всегда</emphasis> обновлять также и набор
+ <literal>ports-base</literal>! Причины описаны в <ulink
+ url="&url.books.handbook;/cvsup.html#CVSUP-COLLEC-PBASE-WARN">
+ Руководстве</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="midi-sound-files">
+ <para>Как создать аудио-CD из файлов MIDI?</para>
+ </question>
+
+ <answer>
+ <para>Для создания аудио-CD из MIDI-файлов сначала установите из
+ портов программу <filename
+ role="package">audio/timidity++</filename>, затем установите набор
+ патчей GUS от Эрика Уэлша (Eric A. Welsh), доступный по адресу
+ <ulink url="http://alleg.sourceforge.net/digmid.html">
+ </ulink>. После корректной установки
+ <application>TiMidity++</application> MIDI-файлы могут
+ быть преобразованы в WAV-файлы следующей командой:</para>
+
+ <screen>&prompt.user; <userinput>timidity -Ow -s 44100 -o <replaceable>/tmp/juke/01.wav</replaceable> <replaceable>01.mid</replaceable></userinput></screen>
+
+ <para>WAV-файлы затем могут быть преобразованы в другие форматы или
+ записаны как аудио-CD, что описано в <ulink
+ url="&url.books.handbook;/creating-cds.html">Руководстве
+ &os;</ulink>.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="kernelconfig">
+ <title>Конфигурирование ядра</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="make-kernel">
+ <para>Я хочу изменить настройки ядра. Это сложно?</para>
+ </question>
+
+ <answer>
+ <para>Вовсе нет! Обратитесь к <ulink
+ url="&url.books.handbook;/kernelconfig.html">соответствующему
+ разделу</ulink> Руководства, который посвящён этому вопросу.</para>
+
+ <note>
+ <para>Новый файл <filename>kernel</filename> будет установлен
+ в каталог <filename class="directory">/boot/kernel</filename>
+ вместе со своими
+ модулями, а старое ядро и его модули будут сдвинуты в каталог
+ <filename class="directory">/boot/kernel.old</filename>, так
+ что если вы
+ допустите ошибку в следующей конфигурации, то сможете
+ загрузить предыдущую версию вашего ядра.</para>
+ </note>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="missing-hw-float">
+ <para>Я не могу скомпилировать ядро. Отсутствует
+ <literal>_hw_float</literal>.Почему?</para>
+ </question>
+
+ <answer>
+ <para>Наверное, вы удалили <devicename>npx0</devicename> (посмотрите
+ справку по &man.npx.4;) из вашего файла конфигурации ядра, потому
+ что у вас нет математического сопроцессора. Устройство
+ <devicename>npx0</devicename> является
+ <emphasis>ОБЯЗАТЕЛЬНЫМ</emphasis>. Где-то в вашем оборудовании всё
+ же присутствует устройство, обеспечивающее поддержку вычислений с
+ плавающей точкой, которое уже не является отдельной микросхемой,
+ как это было в старые добрые времена 386 процессоров. Вы
+ <emphasis>должны</emphasis> включить поддержку устройства
+ <devicename>npx0</devicename>. Даже если вам удастся построить
+ ядро без поддержки <devicename>npx0</devicename>, оно всё равно не
+ загрузится.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="why-kernel-big">
+ <para>Почему моё ядро такое большое (больше 10&nbsp;Мбайт)?</para>
+ </question>
+
+ <answer>
+ <para>Скорее всего, вы компилировали ядро в <emphasis>отладочном
+ режиме</emphasis>. Ядра, построенные в этом режиме, содержат
+ много символьной информации, которая используется для отладки
+ и сильно увеличивает размер ядра. Заметьте, что уменьшения
+ производительности при использовании отладочного ядра нет или
+ оно незначительно, однако отладочное ядро полезно иметь под
+ рукой на случай аварийного завершения работы системы.</para>
+
+ <para>Однако, если вы испытываете нехватку дискового пространства
+ или просто не хотите использовать отладочное ядро, проверьте,
+ что имеют место следующие две вещи:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>В конфигурационном файле вашего ядра нет строчки,
+ имеющей такой вид:</para>
+
+ <programlisting>makeoptions DEBUG=-g</programlisting>
+ </listitem>
+
+ <listitem>
+ <para>Вы не запускали утилиту &man.config.8; с опцией
+ <option>-g</option>.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>В любой из вышеописанных ситуаций ядро будет построено с
+ отладочным режимом. Если же вы точно следуете указанным шагам,
+ то сможете построить обычное ядро и заметите значительное
+ уменьшение его размера; большинство ядер имеют размер от
+ 1.5&nbsp;Мбайт до 2&nbsp;Мбайт.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="multiport-serial-interrupts">
+ <para>Почему появляются конфликты прерываний при включении поддержки
+ многопортовых коммуникационных адаптеров.</para>
+ </question>
+
+ <answer>
+ <para>Когда я компилирую ядро с поддержкой многопортовых
+ коммуникационных адаптеров, сообщается, что только первый порт
+ будет тестироваться, а все остальные пропускаются из-за конфликтов
+ прерываний. Как это исправить?</para>
+
+ <para>Проблема состоит в том, что во &os; встроен код,
+ предохраняющий ядро от аппаратных и программных конфликтов.
+ Вам нужно убрать указания IRQ на всех портах, кроме одного.
+ Например:</para>
+
+ <programlisting>#
+# Высокоскоростной многопортовый коммуникационный адаптер - 16550 UARTS
+#
+device sio2 at isa? port 0x2a0 tty irq 5 flags 0x501 vector siointr
+device sio3 at isa? port 0x2a8 tty flags 0x501 vector siointr
+device sio4 at isa? port 0x2b0 tty flags 0x501 vector siointr
+device sio5 at isa? port 0x2b8 tty flags 0x501 vector siointr</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="generic-kernel-build-failure">
+ <para>Почему мне не удаётся откомпилировать ни один вариант ядра,
+ даже <filename>GENERIC</filename>?</para>
+ </question>
+
+ <answer>
+ <para>Есть несколько причин, приводящих к возникновению этой
+ проблемы. Вот они, в случайном порядке:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Вы не используете цели
+ <command>make <maketarget>buildkernel</maketarget></command> и
+ <command>make <maketarget>installkernel</maketarget></command>,
+ и ваше дерево исходных текстов отличается от того, которое
+ использовалось для построения работающей в данный момент
+ системы (например, вы выполняете построение
+ &rel.current;-RELEASE на системе &rel2.current;-RELEASE).
+ Если вы пытаетесь выполнить обновление,
+ то, пожалуйста, прочитайте файл
+ <filename>/usr/src/UPDATING</filename>, обратив особое внимание
+ на раздел <quote>COMMON ITEMS</quote> в его конце.</para>
+ </listitem>
+
+ <listitem>
+ <para>Вы используете цели
+ <command>make <maketarget>buildkernel</maketarget></command> и
+ <command>make <maketarget>installkernel</maketarget></command>,
+ но выполнение цели
+ <command>make <maketarget>buildworld</maketarget></command>
+ не было завершено. Полное и корректное выполнение цели
+ <command>make <maketarget>buildkernel</maketarget></command>
+ зависит от файлов, генерирующихся при выполнении цели
+ <command>make <maketarget>buildworld</maketarget></command>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Даже если вы пытаетесь построить <link
+ linkend="stable">&os;-STABLE</link>, возможно, что вы
+ скачали дерево исходных текстов в момент, когда оно
+ модифицировалось или было неработоспособно по другим причинам;
+ абсолютно гарантируется построение только релизов, хотя в
+ большинстве случаев <link linkend="stable">
+ &os;-STABLE</link> строится без проблем. Если вы ещё этого
+ не сделали, попробуйте сгрузить дерево исходных текстов
+ повторно и посмотреть, разрешилась ли проблема. Попробуйте
+ использовать другой сервер в случае, если есть проблемы с тем,
+ который вы используете сейчас.</para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="scheduler-in-use">
+ <para>Каким образом можно определить, какой планировщик используется
+ в работающей системе?</para>
+ </question>
+
+ <answer>
+ <para>Проверьте существование sysctl-переменной
+ <varname>kern.sched.quantum</varname>. Если она у вас есть,
+ то вы должны увидеть примерно такое сообщение:</para>
+
+ <screen>&prompt.user; sysctl <replaceable>kern.sched.quantum</replaceable>
+kern.sched.quantum: 99960</screen>
+
+ <para>Если sysctl-переменная <varname>kern.sched.quantum</varname>
+ существует, то у вас используется планировщик 4BSD
+ (&man.sched.4bsd.4;). Если это не так, то вы получите сообщение
+ об ошибке, которое выдаст &man.sysctl.8;, (и которое вы можете
+ проигнорировать):</para>
+
+ <screen>&prompt.user; sysctl <replaceable>kern.sched.quantum</replaceable>
+sysctl: unknown oid 'kern.sched.quantum'</screen>
+
+ <para>Название используемого
+ планировщика доступно напрямую в виде значения sysctl-параметра
+ <varname>kern.sched.name</varname>:</para>
+
+ <screen>&prompt.user; sysctl <replaceable>kern.sched.name</replaceable>
+kern.sched.name: 4BSD</screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="scheduler-kern-quantum">
+ <para>Что такое <varname>kern.sched.quantum</varname>?</para>
+ </question>
+
+ <answer>
+ <para><varname>kern.sched.quantum</varname> определяет максимальное
+ количество тактов, которое процесс может выполняться, не будучи
+ прерванным. Этот параметр специфичен для планировщика 4BSD, так
+ что вы можете использовать его наличие для определения типа
+ используемого планировщика.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="disks">
+ <title>Диски, файловые системы и начальные загрузчики</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="adding-disks">
+ <para>Как добавить в систему новый диск?</para>
+ </question>
+
+ <answer>
+ <para>Обратитесь к разделу <ulink
+ url="&url.books.handbook;/disks-adding.html">Добавление
+ дисков</ulink> Руководства &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="new-huge-disk">
+ <para>Как перенести систему на большой новый диск?</para>
+ </question>
+
+ <answer>
+ <para>Самый лучший способ заключается в переустановке ОС на новый
+ диск и последующем переносе данных пользователей. Это очень
+ рекомендуется делать, если вы следовали ветке
+ <emphasis>-STABLE</emphasis> в течение
+ более одного релиза или обновляли релиз, а не устанавливали
+ новый. Вы можете установить программу booteasy на оба диска с
+ помощью команды &man.boot0cfg.8; и выполнять загрузку с любого из
+ них до тех пор, пока не будете удовлетворены новой конфигурацией
+ системы. Пропустите следующий абзац, чтобы перейти к вопросу
+ переноса данных после этой операции.</para>
+
+ <para>Если вы решили не делать новой установки, то вам нужно разбить
+ на разделы и разметить новый диск с помощью
+ &man.sysinstall.8; или &man.fdisk.8; и
+ &man.disklabel.8;. Вы также должны установить на оба диска
+ программу booteasy с помощью &man.boot0cfg.8;, чтобы иметь
+ возможность выполнять загрузку как старой, так и новой системы
+ после выполнения копирования.</para>
+
+ <para>Итак, после подготовки диска вы можете переносить данные. К
+ сожалению, вы не можете просто скопировать данные. Такие вещи, как
+ файлы устройств (в каталоге <filename
+ class="directory">/dev</filename>), флаги и
+ ссылки будут этому мешать. Вам нужно использовать инструменты,
+ которые работают с такими случаями, а именно &man.dump.8;. Хотя
+ рекомендуется выполнять перенос данных в однопользовательском
+ режиме, это не обязательное условие.</para>
+
+ <para>Вы не должны использовать ничего, кроме &man.dump.8; и
+ &man.restore.8; для переноса корневой файловой системы. Команда
+ &man.tar.1; может сработать, а может и не сработать. Также вы
+ должны использовать &man.dump.8; и &man.restore.8; при переносе
+ одного раздела в другой пустой раздел. Последовательность шагов
+ при использовании программы <command>dump</command> для переноса
+ данных раздела в новый раздел такова:</para>
+
+ <procedure>
+ <step>
+ <para>выполните команду <command>newfs</command> над новым
+ разделом.</para>
+ </step>
+
+ <step>
+ <para>командой <command>mount</command> смонтируйте его во
+ временный каталог.</para>
+ </step>
+
+ <step>
+ <para>командой <command>cd</command> перейдите в этот
+ каталог.</para>
+ </step>
+
+ <step>
+ <para>выполните команду <command>dump</command> над старым
+ разделом, направив вывод в новый раздел.</para>
+ </step>
+ </procedure>
+
+ <para>Например, если вы собираетесь перенести корневую файловую
+ систему на устройство
+ <devicename>/dev/<replaceable>ad1s1a</replaceable></devicename>
+ с использованием каталога <filename
+ class="directory"><replaceable>/mnt</replaceable></filename>
+ в качестве
+ временной точки монтирования, то это делается так:</para>
+
+ <screen>&prompt.root; <userinput>newfs /dev/<replaceable>ad1s1a</replaceable></userinput>
+&prompt.root; <userinput>mount /dev/<replaceable>ad1s1a</replaceable> <replaceable>/mnt</replaceable></userinput>
+&prompt.root; <userinput>cd <replaceable>/mnt</replaceable></userinput>
+&prompt.root; <userinput>dump 0af - / | restore rf -</userinput></screen>
+
+ <para>Переразбиение разделов с использованием
+ <command>dump</command> требует несколько
+ больше усилий. Для объединения раздела типа
+ <filename class="directory">/var</filename> с его вышестоящим
+ разделом, создайте новый
+ раздел, достаточно большой для размещения их обоих, переместите
+ вышестоящий раздел так, как это описано выше, а затем переместите
+ нижестоящий раздел в пустой каталог, созданный при первом
+ перемещении:</para>
+
+ <screen>&prompt.root; <userinput>newfs /dev/<replaceable>ad1s1a</replaceable></userinput>
+&prompt.root; <userinput>mount /dev/<replaceable>ad1s1a</replaceable> <replaceable>/mnt</replaceable></userinput>
+&prompt.root; <userinput>cd <replaceable>/mnt</replaceable></userinput>
+&prompt.root; <userinput>dump 0af - / | restore rf -</userinput>
+&prompt.root; <userinput>cd var</userinput>
+&prompt.root; <userinput>dump 0af - /var | restore rf -</userinput></screen>
+
+ <para>Для отделения каталога от вышестоящего, скажем, для
+ размещения <filename class="directory">/var</filename> в
+ собственном разделе, которого не было,
+ создайте оба раздела, затем смонтируйте нижестоящий раздел в
+ подходящий каталог во временную точку монтирования, а затем
+ переместите старый единый раздел:</para>
+
+ <screen>&prompt.root; <userinput>newfs /dev/<replaceable>ad1s1a</replaceable></userinput>
+&prompt.root; <userinput>newfs /dev/<replaceable>ad1s1d</replaceable></userinput>
+&prompt.root; <userinput>mount /dev/<replaceable>ad1s1a</replaceable> <replaceable>/mnt</replaceable></userinput>
+&prompt.root; <userinput>mkdir <replaceable>/mnt</replaceable>/var</userinput>
+&prompt.root; <userinput>mount /dev/<replaceable>ad1s1d</replaceable> <replaceable>/mnt</replaceable>/var</userinput>
+&prompt.root; <userinput>cd <replaceable>/mnt</replaceable></userinput>
+&prompt.root; <userinput>dump 0af - / | restore rf -</userinput></screen>
+
+ <para>Вы можете использовать &man.cpio.1;, &man.pax.1;, &man.tar.1;
+ вместо &man.dump.8; для данных пользователей. На момент написания
+ этого документа было известно, что они теряют информацию о флагах
+ файлов, так что используйте их с осторожностью.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="dangerously-dedicated">
+ <para>Не угрожает ли режим <quote>dangerously dedicated</quote> моему
+ здоровью?</para>
+ </question>
+
+ <answer>
+ <para><anchor id="dedicate"/>В процессе установки вы можете выбрать
+ два различных метода разбиения вашего диска (дисков). По умолчанию
+ это делается
+ в режиме совместимости с другими операционными системами на этой же
+ машине с использованием записей в таблице разделов &man.fdisk.8;
+ (то, что называется <quote>слайсом</quote> во &os;), со слайсом
+ (разделом), выделенным &os;. Опционально, вы можете выбрать
+ установку менеджера загрузки для переключения между операционными
+ системами. Либо вы можете выделить диск полностью под &os;, не
+ заботясь о совместимости с другими операционными системами.</para>
+
+ <para>Почему же этот режим называется <quote>dangerous</quote>? Дело
+ в том, что диск в этом режиме не будет содержать того, что обычные
+ утилиты для ПК распознают как таблицу разделов &man.fdisk.8;.
+ В зависимости от
+ того, насколько хорошо они написаны, они могут сообщить вам об
+ этом, как только обнаружат такой диск, или, что гораздо хуже,
+ могут запортить загрузчик BSD, даже не спрашивая и не сообщая об
+ этом. К тому же известно, что разметка диска в режиме
+ <quote>dangerously dedicated</quote> вводит в заблуждение BIOS
+ многих производителей, включая AWARD (которые используются в
+ компьютерах HP Netserver, Micronics и многих других) и Symbios/NCR
+ (производителя популярных SCSI-контроллеров серии 53C8xx). И это не
+ полный список, есть ещё другие производители. Симптомами подобных
+ проблем является сообщение <errorname>read error</errorname>,
+ выводимое загрузчиком &os;, когда он не может найти сам себя, а
+ также зависания системы при загрузке.</para>
+
+ <para>Тогда зачем вообще нужен этот режим? Он экономит всего лишь
+ несколько килобайт дискового пространства и может вызвать
+ серьёзные проблемы при новой установке. Причиной появления
+ этого режима является желание избежать появления одной из самых
+ распространённых проблем, с которой сталкиваются новички &mdash;
+ соответствие параметров BIOS и реальных параметров диска.</para>
+
+ <para><quote>Параметры</quote> диска являются устаревшей концепцией,
+ но она лежит в основе работы BIOS с диском. Когда программа
+ установки &os; создаёт слайсы, она записывает их расположение в
+ соответствии с тем, как с ними будет работать BIOS. Если это
+ делается неправильно, вы не сможете выполнить загрузку
+ системы.</para>
+
+ <para>Режим <quote>dangerously dedicated</quote> пытается обойти
+ это, упрощая решение данной проблемы. Иногда он делает это
+ правильно. Однако это значит, что его нужно использовать только
+ как последнюю альтернативу &mdash; есть способы получше, решающие
+ проблему в 99 случаях из 100.</para>
+
+ <para>Итак, как избежать использования режима <quote>DD</quote> во
+ время установки? Сначала запишите параметры диска, которые
+ сообщает BIOS. Вы можете выяснить это, заставив ядро вывести эти
+ параметры при загрузке, указав <option>-v</option> в приглашении
+ <literal>boot:</literal>, или используя <command>boot -v</command>
+ в загрузчике. Перед тем, как запустится программа установки, ядро
+ выведет параметры, используемые BIOS. Не волнуйтесь &mdash; подождите
+ запуска программы установки, а затем воспользуйтесь прокруткой,
+ чтобы посмотреть значения этих параметров. Как правило, BIOS
+ нумерует диски в том же порядке, что и &os;, сначала IDE, затем
+ SCSI.</para>
+
+ <para>Когда вы разбиваете диск на слайсы, проверьте, что параметры
+ диска, выводимые в окне программы FDISK, корректны (то есть они
+ соответствуют параметрам BIOS); если это не так, нажмите
+ <keycap>G</keycap>, чтобы их исправить. Вы можете это
+ сделать, если на диске нет абсолютно ничего или если этот диск был
+ перенесён с другой системы. Заметьте, что это касается только
+ загрузочного диска; &os; прекрасно разберётся с остальными
+ дисками, которые могут у вас быть.</para>
+
+ <para>Как только вы добились соответствия параметров диска в BIOS и
+ &os;, скорее всего, проблем у вас больше не будет, и
+ использовать режим <quote>DD</quote> не потребуется. Если,
+ однако, страшное сообщение <errorname>read error</errorname>
+ продолжает появляться при загрузке, самое время перекреститься и
+ попробовать этот режим &mdash; терять вам больше нечего.</para>
+
+ <para>Чтобы вернуть диск из режима <quote>dangerously
+ dedicated</quote> к нормальному режиму использования, есть два
+ способа. Первый заключается в том, что вы записываете достаточное
+ количество байтов NULL поверх MBR, чтобы любая программа установки
+ системы полагала, что это чистый диск. Например, это можно
+ сделать такой командой:</para>
+
+ <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/<replaceable>rda0</replaceable> count=15</userinput></screen>
+
+ <para>Другой способ - недокументированной командой DOS</para>
+
+ <screen><prompt>C:\&gt;</prompt> <userinput>fdisk /mbr</userinput></screen>
+
+ <para>установить новую MBR, удалив загрузчик BSD.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="safe-softupdates">
+ <para>На каких разделах можно без опаски использовать механизм
+ Soft Updates? Я слышал, что использование Soft Updates на
+ <filename class="directory">/</filename> могут приводить к
+ проблемам.</para>
+ </question>
+
+ <answer>
+ <para>Краткий ответ: обычно вы можете использовать Soft Updates
+ без опаски на всех разделах.</para>
+
+ <para>Подробный ответ: Было несколько возражений против использования
+ Soft Updates на корневом разделе. Soft Updates имеют две
+ характеристики, которые этому способствуют. Во-первых, раздел с
+ Soft Updates имеет мало шансов потери данных по время
+ аварийного останова системы. (Раздел не будет попорчен; просто
+ будут потеряны данные.) Кроме того, Soft Updates могут приводить к
+ временной нехватке дискового пространства.</para>
+
+ <para>При использовании Soft Updates ядро может задерживать до
+ тридцати секунд реальную запись изменений на физический диск. Если
+ вы удаляете большой файл, он остается на диске, пока ядро не
+ выполнит удаления на самом деле. Это может привести к очень
+ простой проблеме. Предположим, что вы удалили один большой файл и
+ тут же создали другой большой файл. Первый большой файл еще не
+ удален реально с физического диска, так что на диске может не
+ оказаться достаточного пространства для второго большого файла. Вы
+ получите ошибку, говорящую о том, что на разделе нет достаточного
+ пространства, хотя вы точно знаете, что только что освободили
+ его большой объем! Если вы попробуете еще раз выполнить операцию
+ секундами позже, создание файла сработает так, как это и ожидалось.
+ Это не раз заставляло пользователей почесать голову и дважды
+ проверить свое психическое здоровье, файловую систему &os; или оба
+ этих объекта.</para>
+
+ <para>Если система может аварийно остановиться после того, как ядро
+ примет набор данных для записи на диск, но перед тем, как данные
+ реально запишутся, то данные могут потеряться или оказаться
+ испорченными. Такой риск весьма мал, но в общем-то, управляем.
+ Использование кэширование записи на IDE очень сильно увеличивает
+ этот риск; настоятельно рекомендуется выключить кэширование записи
+ для IDE при использовании Soft Updates.</para>
+
+ <para>Эти проблемы влияют на все разделы, использующие Soft Updates.
+ Итак, что это означает для корневого раздела?</para>
+
+ <para>Жизненно важная информация на корневом разделе меняется очень
+ редко. Файлы, такие как <filename>/boot/kernel/kernel</filename>
+ и содержимое
+ <filename class="directory">/etc</filename>, меняются только
+ при обслуживании системы,
+ или когда пользователи меняют свои пароли. Если в системе
+ произойдет сбой в период тридцатисекундного окна после выполнения
+ такого изменения, возможно, что данные окажутся потерянными. Этот
+ риск незначителен для большинства применений, но вы должны иметь в
+ виду, что он есть. Если ваша система не может принять такой риск,
+ не используйте Soft Updates с корневой файловой системой!</para>
+
+ <para><filename class="directory">/</filename> традиционно
+ является одним из самых маленьких разделов. Если вы размещаете
+ каталог <filename class="directory">/tmp</filename> в <filename
+ class="directory">/</filename> и у вас заполнен <filename
+ class="directory">/tmp</filename>, вы можете встретиться с
+ возникающими время от времени проблемами с дисковым пространством.
+ Создание символической ссылки <filename
+ class="directory">/tmp</filename>, указывающей на <filename
+ class="directory">/var/tmp</filename>, решит эту проблему.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="inappropriate-ccd">
+ <para>Что не так с устройством &man.ccd.4;?</para>
+ </question>
+
+ <answer>
+ <para>Симптом выглядит так:</para>
+
+ <screen>&prompt.root; <userinput>ccdconfig -C</userinput>
+ccdconfig: ioctl (CCDIOCSET): /dev/<replaceable>ccd0c</replaceable>: Inappropriate file type or format</screen>
+
+ <para>Это сообщение обычно выдаётся, когда вы пытаетесь объединить
+ разделы <literal>c</literal>, по умолчанию имеющие тип
+ <literal>unused</literal>. Драйвер &man.ccd.4; требует, чтобы
+ используемые разделы имели тип <literal>FS_BSDFFS</literal>.
+ Отредактируйте метки
+ тех дисков, которые вы хотите использовать, сменив типы разделов
+ на <literal>4.2BSD</literal>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ccd-disklabel">
+ <para>Почему невозможно отредактировать метку диска &man.ccd.4;?</para>
+ </question>
+
+ <answer>
+ <para>Симптом выглядит так:</para>
+
+ <screen>&prompt.root; <userinput>disklabel <replaceable>ccd0</replaceable></userinput>
+(здесь выводится информация о диске, пробуем отредактировать метку)
+&prompt.root; <userinput>disklabel -e <replaceable>ccd0</replaceable></userinput>
+(редактирование, сохранение, выход)
+disklabel: ioctl DIOCWDINFO: No disk label on disk;
+use "disklabel -r" to install initial label</screen>
+
+ <para>Это происходит из-за того, что метка диска, возвращаемая &man.ccd.4;,
+ на самом деле <quote>ненастоящая</quote>, не соответствующая
+ реально располагающейся на диске. Вы можете решить эту проблему,
+ явно записав эту метку обратно следующим образом:</para>
+
+ <screen>&prompt.root; <userinput>disklabel <replaceable>ccd0</replaceable> &gt; <replaceable>/tmp/disklabel.tmp</replaceable></userinput>
+&prompt.root; <userinput>disklabel -Rr <replaceable>ccd0</replaceable> <replaceable>/tmp/disklabel.tmp</replaceable></userinput>
+&prompt.root; <userinput>disklabel -e <replaceable>ccd0</replaceable></userinput>
+(теперь это будет работать)</screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="mount-foreign-fs">
+ <para>Можно ли смонтировать другие файловые системы?</para>
+ </question>
+
+ <answer>
+ <para>&os; поддерживает ряд других файловых систем.</para>
+
+ <variablelist>
+ <varlistentry>
+ <term>UFS</term>
+
+ <listitem>
+ <para>Компакт-диски с файловой системой UFS могут быть
+ смонтированы без всяких проблем. Монтирование файловых
+ систем Digital UNIX или других систем, поддерживающих UFS,
+ может быть более сложным, в зависимости от особенностей
+ разбиения диска конкретной операционной системой.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>ext2/ext3</term>
+
+ <listitem>
+ <para>&os; поддерживает разделы <literal>ext2fs</literal>
+ и <literal>ext3fs</literal>.
+ За дополнительной информацией обратитесь к странице
+ справочника &man.mount.ext2fs.8;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>NTFS</term>
+
+ <listitem>
+ <para>Во &os; имеется драйвер доступа к NTFS в режиме
+ только для чтения. Для получения более полной
+ информации обратитесь к странице справочника
+ &man.mount.ntfs.8;. Порт <ulink
+ url="http://www.tuxera.com/community/"><application>ntfs-3g</application></ulink>
+ также поддерживает операции записи на NTFS (смотрите
+ <filename
+ role="package">sysutils/fusefs-ntfs</filename>).</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>FAT</term>
+
+ <listitem>
+ <para>Во &os; имеется драйвер для работы с FAT в режиме
+ чтения-записи. Для получения дополнительной информации
+ обратитесь к странице справочника &man.mount.msdosfs.8;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>ReiserFS</term>
+
+ <listitem>
+ <para>Во &os; имеется драйвер для работы с ReiserFS в режиме
+ только для чтения. Для получения более полной
+ информации обратитесь к странице справочника &man.mount.reiserfs.8;.</para>
+ </listitem>
+ </varlistentry>
+
+ <varlistentry>
+ <term>ZFS</term>
+
+ <listitem>
+ <para>На момент написания &os; включает в себя порт
+ драйвера для работы с &sun; ZFS. В настоящее время
+ рекомендуется использовать его только на платформе
+ &arch.amd64; с достаточным объемом памяти. Для получения
+ более полной информации обратитесь к странице справочника
+ &man.zfs.8;.</para>
+ </listitem>
+ </varlistentry>
+ </variablelist>
+
+ <para>&os; также поддерживает такие сетевые файловые системы, как
+ NFS (смотрите &man.mount.nfs.8;), NetWare (смотрите
+ &man.mount.nwfs.8;) и файловые системы SMB в стиле Microsoft
+ (обратитесь к &man.mount.smbfs.8;). Вы также можете найти
+ полезными порты, основанные на FUSE (<filename
+ role="package">sysutils/fusefs-kmod</filename>), для множества
+ других файловых систем.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="mount-dos">
+ <para>Как смонтировать вторичный раздел DOS?</para>
+ </question>
+
+ <answer>
+ <para>Вторичные разделы DOS находятся после <emphasis>всех</emphasis>
+ первичных разделов.
+ Например, если раздел <quote>E</quote> является вторым разделом
+ DOS на втором диске SCSI, то здесь будет файл устройства для
+ пятого <quote>слайса</quote> в каталоге <filename
+ class="directory">/dev</filename>,
+ так что просто смонтируйте его:</para>
+
+ <screen>&prompt.root; <userinput>mount -t msdosfs /dev/da1s5 /dos/e</userinput></screen>
+
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="crypto-filesystem">
+ <para>Существует ли криптографическая файловая система для
+ &os;?</para>
+ </question>
+
+ <answer>
+ <para>Да. Вы можете использовать &man.gbde.8; или &man.geli.8;.
+ Смотрите раздел <ulink
+ url="&url.books.handbook;/disks-encrypting.html">Шифрование
+ дисковых разделов</ulink> Руководства &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="nt-bootloader">
+ <para>Как можно использовать загрузчик &windowsnt; для запуска
+ &os;?</para>
+ </question>
+
+ <answer>
+ <para>Идея заключается в копировании первого сектора корневого
+ раздела &os; в файл, находящийся в разделе DOS/&windowsnt;.
+ Предположим, что вы назвали этот файл
+ <filename>c:\bootsect.bsd</filename> (по аналогии с
+ <filename>c:\bootsect.dos</filename>), после чего можете
+ отредактировать файл <filename>c:\boot.ini</filename>, чтобы он
+ выглядел примерно так:</para>
+
+ <programlisting>[boot loader]
+timeout=30
+default=multi(0)disk(0)rdisk(0)partition(1)\WINDOWS
+[operating systems]
+multi(0)disk(0)rdisk(0)partition(1)\WINDOWS="Windows NT"
+C:\BOOTSECT.BSD="&os;"
+C:\="DOS"</programlisting>
+
+ <para>Если &os; установлена на тот же самый диск, что и
+ загрузочный раздел &windowsnt;, просто скопируйте
+ <filename>/boot/boot1</filename> в
+ <filename>C:\BOOTSECT.BSD</filename>. Однако, если &os;
+ установлена на другой диск, то <filename>/boot/boot1</filename>
+ работать не будет, нужно копировать
+ <filename>/boot/boot0</filename>.</para>
+
+ <para><filename>/boot/boot0</filename> нужно устанавливать с помощью
+ &man.sysinstall.8;, выбрав менеджер загрузки &os; в диалоговом
+ окне при выборе менеджера загрузки. Это потому что
+ в <filename>/boot/boot0</filename> область таблицы разделов
+ заполнена символами NULL, а &man.sysinstall.8; копирует сюда
+ таблицу разделов перед тем, как скопировать
+ <filename>/boot/boot0</filename> в область MBR.</para>
+
+ <warning>
+ <para>Не копируйте просто <filename>/boot/boot0</filename> вместо
+ <filename>/boot/boot1</filename>, этим вы перезапишете таблицу
+ разделов винчестера и ваш компьютер перестанет
+ загружаться!</para>
+ </warning>
+
+ <para>При запуске менеджер загрузки &os; задаёт ОС, которая
+ загружалась последний раз, устанавливая для этой операционной
+ системы признак активизации в таблице разделов, а затем записывает
+ 512 байт самого себя обратно в MBR, так что если вы просто
+ скопируете <filename>/boot/boot0</filename>
+ в <filename>C:\BOOTSECT.BSD</filename>, то в MBR будет записана
+ пустая таблица разделов с флагом активности в некотором
+ месте.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="lilo-bootloader">
+ <para>Как загрузить &os; и &linux; с помощью LILO?</para>
+ </question>
+
+ <answer>
+ <para>Если у вас установлены &os; и &linux; на одном и том же
+ диске, следуйте указаниям по установке LILO о загрузке не-&linux;
+ операционных систем. Они сводятся к следующему:</para>
+
+ <para>Загрузите &linux; и добавьте следующие строки в файл
+ <filename>/etc/lilo.conf</filename>:</para>
+
+ <programlisting>other=/dev/hda2
+table=/dev/hda
+label=&os;</programlisting>
+
+ <para>(здесь мы предполагаем, что слайс с &os; известен
+ &linux; как <devicename>/dev/hda2</devicename>; измените
+ эту строку в соответствии с вашей конфигурацией). Затем
+ достаточно будет запустить <command>lilo</command>, войдя
+ в систему как администратор.</para>
+
+ <para>Если &os; располагается на другом диске, вам нужно
+ добавить строчку <literal>loader=/boot/chain.b</literal> в
+ конфигурационный файл LILO. Например:</para>
+
+ <programlisting>other=/dev/dab4
+table=/dev/dab
+loader=/boot/chain.b
+label=&os;</programlisting>
+
+ <para>В некоторых случаях для успешной загрузки со второго диска
+ вам может потребоваться указать номер диска BIOS загрузчику
+ &os;. Например, если диск SCSI с &os; определяется BIOS
+ как диск 1, в приглашении загрузчика &os; нужно указать:</para>
+
+ <screen>Boot: <userinput>1:da(0,a)/boot/kernel/kernel</userinput></screen>
+
+ <para>Вы можете настроить &man.boot.8; на автоматическое принятие
+ таких параметров во время загрузки.</para>
+
+ <para>В документе <ulink
+ url="http://tldp.org/HOWTO/Linux+FreeBSD.html">
+ &linux;+&os; mini-HOWTO</ulink> содержится много информации,
+ касающейся взаимодействия &os; и &linux;.</para>
+
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="grub-loader">
+ <para>Как загрузить &os; и &linux; с помощью GRUB?</para>
+ </question>
+
+ <answer>
+ <para>Настройка загрузки &os;, используя GRUB очень простой
+ процесс. Всего лишь добавьте следующие строки в ваш
+ конфигурационный файл
+ <filename>/boot/grub/menu.lst</filename> (в некоторых системах
+ <filename>/boot/grub/grub.conf</filename>, например,
+ Red Hat Linux и производных системах).</para>
+
+ <programlisting>title &os; 6.1
+root <replaceable>(hd0,a)</replaceable>
+kernel /boot/loader</programlisting>
+
+ <para>Где <replaceable>hd0,a</replaceable> указывает на ваш
+ корневой раздел на первом диске. Если вам нужно указать номер
+ слайса, который должен использоваться, напишите что-то вроде
+ <replaceable>(hd0,2,a)</replaceable>. По умолчанию, если номер
+ слайса не указан, GRUB ищет первый слайс, содержащий в себе
+ партицию <literal>a</literal>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="booteasy-loader">
+ <para>Как загрузить &os; и &linux; с помощью
+ <application>BootEasy</application>?</para>
+ </question>
+
+ <answer>
+ <para>Установите LILO в начало загрузочного раздела &linux;, а не в
+ Master Boot Record. После этого можно запустить LILO из
+ <application>BootEasy</application>.</para>
+
+ <para>Это рекомендуется сделать в любом случае при одновременном
+ использовании &windows; и &linux;, чтобы упростить
+ восстановление работоспособности &linux; после переустановки
+ &windows; (которая является Ревнивой Операционной
+ Системой и не терпит присутствия других операционных систем
+ в Master Boot Record).</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="changing-bootprompt">
+ <para>Как сменить приглашение загрузчика с <literal>???</literal> на
+ что-нибудь более значащее?</para>
+ </question>
+
+ <answer>
+ <para>Вы не можете сделать это со стандартным менеджером загрузки, не
+ переписав его. Среди портов из категории
+ <filename class="directory">sysutils</filename> есть несколько
+ других менеджеров
+ загрузки, которые предоставляют такую функциональность.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="removable-drives">
+ <para>Как использовать устройство для чтения сменных дисков?</para>
+ </question>
+
+ <answer>
+ <para>Каким бы ни было это устройство, типа &iomegazip;, EZ (или даже обычным
+ дисководом, если вы хотите его использовать) или каким-то
+ другим, как только оно будет установлено и распознано
+ системой, и вы вставите в него картридж/дискету/что-там-ещё, всё
+ будет выглядеть примерно одинаково.</para>
+
+ <para>(этот раздел основан на материалах <ulink
+ url="http://www.vmunix.com/mark/FreeBSD/ZIP-FAQ.html">
+ FAQ по устройствам ZIP</ulink> Марка Мэйо (Mark Mayo))</para>
+
+ <para>Если это устройство ZIP или обычный дисковод, и у вас уже есть
+ файловая система DOS на дискетах, то вы можете использовать команду
+ типа:</para>
+
+ <screen>&prompt.root; <userinput>mount -t msdosfs /dev/fd0c /floppy</userinput></screen>
+
+ <para>для обычных дискет, или</para>
+
+ <screen>&prompt.root; <userinput>mount -t msdosfs /dev/da2s4 /zip</userinput></screen>
+
+ <para>для дискет ZIP со стандартной конфигурацией.</para>
+
+ <para>Для других дисков посмотрите их параметры с помощью команды
+ &man.fdisk.8; или &man.sysinstall.8;.</para>
+
+ <para>Остальные примеры даны для привода ZIP на
+ <devicename>da2</devicename>, третьем диске SCSI.</para>
+
+ <para>Если это дискета или сменный диск, который будет
+ использоваться для обмена информацией с другими людьми, хорошей
+ идеей будет помещение туда файловой системы BSD. Вы получите
+ поддержку длинных имён файлов, увеличение производительности по
+ крайней мере в два раза и гораздо большую надёжность. Первым
+ делом вам снова будет нужно выполнить разбиение диска на
+ разделы/файловые системы. Вы можете воспользоваться утилитой
+ &man.fdisk.8; либо &man.sysinstall.8;, а в случае небольшого
+ диска, на котором не нужно располагать несколько операционных
+ систем, просто сотрите таблицу разделов (слайсов) FAT и используйте
+ разбиение на разделы BSD.</para>
+
+ <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda2 count=2</userinput>
+&prompt.root; <userinput>disklabel -Brw da2 auto</userinput></screen>
+
+ <para>Вы можете использовать &man.disklabel.8; или &man.sysinstall.8;
+ для создания нескольких разделов BSD.
+ Вам наверняка придётся это сделать, если вы станете добавлять место
+ для раздела подкачки на винчестере, хотя это не имеет отношения к
+ устройствам типа ZIP.</para>
+
+ <para>В итоге вы должны создать новую файловую систему (в этом примере
+ она занимает весь наш диск ZIP):</para>
+
+ <screen>&prompt.root; <userinput>newfs /dev/rda2c</userinput></screen>
+
+ <para>и смонтировать её:</para>
+
+ <screen>&prompt.root; <userinput>mount /dev/da2c /zip</userinput></screen>
+
+ <para>Хорошо ещё добавить строку типа следующей в файл
+ <filename>/etc/fstab</filename> (прочтите справку по &man.fstab.5;),
+ чтобы в будущем можно было просто давать команду
+ <command>mount /zip</command>:</para>
+
+ <programlisting>/dev/da2c /zip ffs rw,noauto 0 0</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="mount-cd-superblock">
+ <para>При монтировании компакт-диска, выдаётся сообщение
+ <errorname>Incorrect super block</errorname>.</para>
+ </question>
+
+ <answer>
+ <para>В параметрах команды &man.mount.8; вам нужно указать тип
+ устройства, который вы собираетесь смонтировать. Это описано в
+ <ulink url="&url.books.handbook;/creating-cds.html">разделе
+ Руководства об оптических носителях</ulink>, а именно в разделе
+ <ulink url="&url.books.handbook;/creating-cds.html#MOUNTING-CD">
+ Использование CD с данными</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="cdrom-not-configured">
+ <para>При монтировании компакт-диска выдаётся сообщение
+ <literal>Device not configured</literal>.</para>
+ </question>
+
+ <answer>
+ <para>Обычно это означает, что в приводе CD-ROM нет компакт-диска либо
+ устройство на шине не было увидено. Пожалуйста, посмотрите раздел
+ об <ulink url="&url.books.handbook;/creating-cds.html#MOUNTING-CD">
+ использовании CD с данными</ulink> в Руководстве, где подробно
+ обсуждается этот вопрос.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="cdrom-unicode-filenames">
+ <para>Когда я монтирую CD-ROM, все неанглийские символы в именах
+ файлов выводятся как <quote>?</quote>.</para>
+ </question>
+
+ <answer>
+ <para>Скорее всего, на вашем компакт-диске для хранения информации о
+ файлах и каталогах используется расширение <quote>Joliet</quote>.
+ Это описано в главе Руководства о <ulink
+ url="&url.books.handbook;/creating-cds.html">создании и
+ использовании CD-ROM</ulink>, а именно в разделе об <ulink
+ url="&url.books.handbook;/creating-cds.html#MOUNTING-CD">
+ использовании CD-ROM с данными</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="burncd-isofs">
+ <para>Я записал CD во &os; и теперь не могу считать его ни в какой
+ другой операционной системой. Почему?</para>
+ </question>
+
+ <answer>
+ <para>Скорее всего, вы записали на CD непосредственно необработанный
+ файл без создания файловой системы ISO&nbsp;9660.
+ Прочтите <ulink url="&url.books.handbook;/creating-cds.html">главу
+ Руководства о создании CD-ROM</ulink>, в частности, раздел о
+ <ulink url="&url.books.handbook;/creating-cds.html#RAWDATA-CD">
+ записи данных непосредственно на компакт-диски</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="copy-cd">
+ <para>Как создать образ CD с данными?</para>
+ </question>
+
+ <answer>
+ <para>Это описано в разделе Руководства о <ulink
+ url="&url.books.handbook;/creating-cds.html#IMAGING-CD">копировании
+ CD с данными</ulink>. Более полную информацию о работе с
+ компакт-дисками можно найти в разделе о <ulink
+ url="&url.books.handbook;/creating-cds.html">создании
+ компакт-дисков</ulink>
+ главы об устройствах хранения данных Руководства.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="mount-audio-CD">
+ <para>Почему я не могу смонтировать (командой
+ <command>mount</command> аудио CD?</para>
+ </question>
+
+ <answer>
+ <para>Если вы попытаетесь смонтировать аудио CD, вы получите примерно
+ такое сообщение об ошибке: <errorname>cd9660: /dev/acd0c: Invalid
+ argument</errorname>. Причина этого заключается в том, что команда
+ <command>mount</command> работает только с файловыми системами. На
+ аудио CD файловых систем нет; они содержат только данные. Вам
+ нужна программа, читающая аудио CD, например, порт
+ <filename role="package">audio/xmcd</filename> port.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="multi-session-CD">
+ <para>Как выполнить <command>mount</command> для многосеансового
+ CD?</para>
+ </question>
+
+ <answer>
+ <para>По умолчанию &man.mount.8; будет пытаться смонтировать
+ последнюю дорожку (сеанс) CD с данными. Если вы хотите
+ загрузить более ранний сеанс, то должны воспользоваться опцией
+ командной строки <option>-s</option>. Пожалуйста, обратитесь к
+ справке по команде &man.mount.cd9660.8; для получения конкретных
+ примеров.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="user-floppymount">
+ <para>Как разрешить обычным пользователям монтировать дискеты,
+ компакт-диски и другие сменные носители?</para>
+ </question>
+
+ <answer>
+ <para>Обычным пользователям можно позволить монтировать устройства.
+ Вот как это делается:</para>
+
+ <procedure>
+ <step>
+ <para>Как пользователь <username>root</username>, установите
+ системную переменную <varname>vfs.usermount</varname> в
+ значение <literal>1</literal>.</para>
+
+ <screen>&prompt.root; <userinput>sysctl -w vfs.usermount=1</userinput></screen>
+ </step>
+
+ <step>
+ <para>Работая пользователем <username>root</username>, назначьте
+ соответствующие права на устройства с поблочным доступом,
+ которые соответствуют сменным носителям.</para>
+
+ <para>Например, чтобы позволить пользователям монтировать дискеты
+ в первом дисководе, воспользуйтесь командой</para>
+
+ <screen>&prompt.root; <userinput>chmod 666 /dev/fd0</userinput></screen>
+
+ <para>Чтобы разрешить пользователям из группы
+ <groupname>operator</groupname> монтировать CD-ROM,
+ сделайте так:</para>
+
+ <screen>&prompt.root; <userinput>chgrp operator /dev/acd0c</userinput>
+&prompt.root; <userinput>chmod 640 /dev/acd0c</userinput></screen>
+ </step>
+
+ <step>
+ <para>Вам нужно
+ внести изменения в файл <filename>/etc/devfs.conf</filename>,
+ чтобы они сохранялись между перезагрузками.</para>
+
+ <para>Как пользователь <username>root</username>, добавьте нужные
+ строки в файл <filename>/etc/devfs.conf</filename>. К примеру,
+ чтобы разрешить пользователям монтировать диски на первом
+ приводе для гибких дисков, добавьте такую строчку:</para>
+
+ <programlisting># Разрешить пользователям монтировать дискеты.
+own /dev/fd0 root:operator
+perm /dev/fd0 0666</programlisting>
+
+ <para>Чтобы разрешить пользователям группы
+ <groupname>operator</groupname> монтировать диск в приводе
+ CD-ROM, добавьте такую строку:</para>
+
+ <programlisting># Разрешить членам группы operator монтировать CD-ROM.
+own /dev/acd0 root:operator
+perm /dev/acd0 0660</programlisting>
+ </step>
+
+ <step>
+ <para>Наконец, добавьте строчку
+ <literal><varname>vfs.usermount</varname>=1</literal> в файл
+ <filename>/etc/sysctl.conf</filename>, чтобы она срабатывала
+ во время загрузки системы.</para>
+ </step>
+ </procedure>
+
+ <para>Теперь все пользователи могут монтировать дискету
+ <devicename>/dev/fd0</devicename> в собственные каталоги:</para>
+
+ <screen>&prompt.user; <userinput>mkdir <replaceable>~/my-mount-point</replaceable></userinput>
+&prompt.user; <userinput>mount -t msdosfs /dev/fd0 <replaceable>~/my-mount-point</replaceable></userinput></screen>
+
+ <para>Пользователи из группы <groupname>operator</groupname> теперь
+ могут монтировать CD-ROM <devicename>/dev/acd0c</devicename>
+ в собственные каталоги:</para>
+
+ <screen>&prompt.user; <userinput>mkdir <replaceable>~/my-mount-point</replaceable></userinput>
+&prompt.user; <userinput>mount -t cd9660 /dev/acd0c <replaceable>~/my-mount-point</replaceable></userinput></screen>
+
+ <para>Размонтирование устройства осуществляется просто:</para>
+
+ <screen>&prompt.user; <userinput>umount <replaceable>~/my-mount-point</replaceable></userinput></screen>
+
+ <para>Использование <varname>vfs.usermount</varname>, однако, имеет
+ некоторые негативные стороны, связанные с вопросами безопасности.
+ Более правильным способом работы с носителями в формате &ms-dos;
+ является использование пакета <filename
+ role="package">emulators/mtools</filename>
+ из Коллекции Портов.</para>
+
+ <note>
+ <para>Имя, использованное для обозначения устройства в предыдущих
+ примерах, должно быть изменено в соответствии с конфигурацией
+ вашей системы.</para>
+ </note>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="du-vs-df">
+ <para>Команды <command>du</command> и <command>df</command>
+ показывают разный объем доступного дискового пространства. Что
+ происходит?</para>
+ </question>
+
+ <answer>
+ <para>Вам нужно разобраться, что на самом деле делают команды
+ <command>du</command> и <command>df</command>.
+ <command>du</command> проходит по дереву каталогов, замеряя,
+ насколько большой объем занимает каждый файл, и выдает общий объем.
+ <command>df</command> просто запрашивает файловую систему об
+ оставшемся объеме. Это выглядит как одно и то же, однако файл без
+ записи в каталоге затронет <command>df</command>, но не повлияет на
+ <command>du</command>.</para>
+
+ <para>Когда программа использует файл, а вы его удалили, файл на
+ самом деле не удаляется из файловой системы, пока программа не
+ прекратит его использовать. Однако файл тут же удаляется из списка
+ каталога. Вы можете легко это видеть при помощи такой программы,
+ как <command>more</command>. Предположим, что у вас имеется файл,
+ настолько большой, что его присутствие влияет на вывод команд
+ <command>du</command> и <command>df</command>. (Так как в
+ настоящее время диски могут быть настолько большими, это может быть
+ <emphasis>очень</emphasis> большой файл!) Если вы удалите этот
+ файл в процессе работы <command>more</command> над ним, на команду
+ <command>more</command> это не повлияет и она не сообщит, что не
+ может просматривать файл. Запись о файле просто удалена из
+ каталога, так что другие программы или пользователи не смогут к
+ нему обратиться. <command>du</command> покажет, что файл исчез
+ &mdash; она просматривает дерево каталогов, а файла там не будет.
+ <command>df</command> показывает, что он все еще здесь, так как
+ файловая система знает, что <command>more</command> все еще
+ использует это пространство. Как только вы закончите работу с
+ <command>more</command>, команды <command>du</command> и
+ <command>df</command> придут в соответствие.</para>
+
+ <para>Заметьте, что подсистема отложенных обновлений (Soft Updates)
+ может задерживать освобождение дискового пространства; вам может
+ потребоваться подождать до 30 секунд, прежде, чем изменения будут
+ заметны!</para>
+
+ <para>Такая ситуация часта на Web-серверах. Многие устанавливают
+ Web-сервер на &os; и забывают обновлять файлы протоколов.
+ Журнал доступа заполняет <filename
+ class="directory">/var</filename>. Новый
+ администратор удаляет файл, но система все еще сообщает о том, что
+ раздел заполнен. Остановка и перезапуск программы Web-сервера
+ освободит файл, позволяя системе освободить дисковое пространство.
+ Для предотвращения этого настройте &man.newsyslog.8;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="add-swap-space">
+ <para>Как добавить дополнительную виртуальную память?</para>
+ </question>
+
+ <answer>
+ <para>В главе Руководства о <ulink
+ url="&url.books.handbook;/config-tuning.html">конфигурации и тонкой
+ настройке</ulink> вы найдёте <ulink
+ url="&url.books.handbook;/adding-swap-space.html">раздел</ulink>, в
+ котором описывается, как это сделать.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="manufacturer-disk-size">
+ <para>Почему &os; считает, что размер моего диска меньше, чем
+ заявляет его производитель?</para>
+ </question>
+
+ <answer>
+ <para>Производители дисков считают гигабайт равным миллиарду байт,
+ а &os; приравнивает его к 1073741824&nbsp;байт. Это объясняет,
+ почему, к примеру, в сообщениях при загрузке &os; указывается, что
+ ёмкость диска, объём которого должен быть равным 80&nbsp;Гбайт,
+ составляет 76319&nbsp;Мбайт.</para>
+
+ <para>Заметьте также, что &os; будет (по умолчанию) <link
+ linkend="disk-more-than-full">резервировать</link> 8% ёмкости
+ диска.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="disk-more-than-full">
+ <para>Почему возможно заполнение раздела больше чем на 100%?</para>
+ </question>
+
+ <answer>
+ <para>Часть каждого раздела UFS (по умолчанию 8%) зарезервировано для
+ использования операционной системой и пользователем
+ <username>root</username>. Утилита &man.df.1; не учитывает это
+ при подсчёте значения в колонке <literal>Capacity</literal>, так
+ что оно может превышать 100%. Также вы заметите, что колонка
+ <literal>Blocks</literal> всегда больше, чем сумма значений в
+ колонках <literal>Used</literal> и <literal>Avail</literal>,
+ обычно на 8%.</para>
+
+ <para>Для получения более подробной информации обратитесь к описанию
+ опции <option>-m</option> в справке по &man.tunefs.8;.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="admin">
+ <title>Системное администрирование</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="startup-config-files">
+ <para>Где расположены файлы конфигурации системы?</para>
+ </question>
+
+ <answer>
+ <para>Основным настроечным файлом является
+ <filename>/etc/defaults/rc.conf</filename> (обратитесь к
+ &man.rc.conf.5;). Скрипты начального запуска системы, такие как
+ <filename class="directory">/etc/rc</filename> и <filename
+ class="directory">/etc/rc.d</filename>
+ (обратитесь к &man.rc.8;), просто включают этот файл. <emphasis>Не
+ редактируйте этот файл!</emphasis> Вместо этого, если в файле
+ <filename>/etc/defaults/rc.conf</filename> имеется параметр,
+ который вы хотите изменить, то вы должны скопировать строчку с ним
+ в файл <filename>/etc/rc.conf</filename> и поменять его значение
+ именно здесь.</para>
+
+ <para>Например, если вы хотите запустить &man.named.8;, поставляемый
+ сервер DNS, то всё, что вам нужно сделать, это:</para>
+
+ <screen>&prompt.root; <userinput>echo 'named_enable="YES"' &gt;&gt; /etc/rc.conf</userinput></screen>
+
+ <para>Чтобы запустить местные сервисы, поместите скрипты в каталог
+ <filename class="directory">/usr/local/etc/rc.d</filename>.
+ У этих скриптов
+ должен быть выставлен бит выполнимости, по умолчанию
+ используются права доступа <literal>555</literal>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="adding-users">
+ <para>Как проще всего добавить пользователя?</para>
+ </question>
+
+ <answer>
+ <para>Используйте команду &man.adduser.8; или &man.pw.8; в случае
+ выполнения более сложных операций.</para>
+
+ <para>Чтобы удалить пользователя, используйте команду
+ &man.rmuser.8; или, если это будет необходимо, &man.pw.8;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="root-not-found-cron-errors">
+ <para>Почему после редактирования моего файла
+ <filename>crontab</filename> я получаю сообщения вида
+ <errorname>root: not found</errorname>?</para>
+ </question>
+
+ <answer>
+ <para>Обычно это случается при редактировании системного crontab-файла
+ (<filename>/etc/crontab</filename>) и последующего использования
+ утилиты &man.crontab.1; для его установки:</para>
+
+ <screen>&prompt.root; <userinput>crontab /etc/crontab</userinput></screen>
+
+ <para>Это неправильно. Системный crontab-файл имеет формат, отличный
+ от пользовательских crontab-файлов, которые обновляет утилита
+ &man.crontab.1; (страница Справочника по &man.crontab.5; описывает
+ отличия более подробно).</para>
+
+ <para>Если это именно то, что вы сделали, то дополнительный
+ crontab-файл является просто копией файла
+ <filename>/etc/crontab</filename> в неправильном формате. Удалите
+ его такой командой:</para>
+
+ <screen>&prompt.root; <userinput>crontab -r</userinput></screen>
+
+ <para>В следующий раз при редактировании файла
+ <filename>/etc/crontab</filename>, вам не нужно делать ничего для
+ оповещения утилиты &man.cron.8; о сделанных изменениях, так как она
+ распознает их автоматически.</para>
+
+ <para>Если вы хотите запускать что-то один раз в день, неделю или
+ месяц, то, наверное, лучше обновить скрипты
+ <filename class="directory">/usr/local/etc/periodic</filename>
+ и позволить команде
+ &man.periodic.8;, запускаемой системной утилитой
+ <command>cron</command>, планировать
+ их выполнение вместе с другими периодическими системными
+ задачами.</para>
+
+ <para>Реальная причина ошибки заключается в том, что системный
+ crontab-файл имеет дополнительное поле, указывающее, какой
+ пользователь запускает команду. В системном crontab-файле,
+ поставляемом с &os; и используемом по умолчанию, это
+ пользователь <username>root</username> для всех строк. Если этот
+ crontab-файл используется в качестве crontab-файла пользователя
+ <username>root</username> (что <emphasis>не то же самое</emphasis>,
+ что системный crontab-файл), &man.cron.8; полагает, что слово
+ <literal>root</literal> является первым в команде на выполнение,
+ но такой команды не существует.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="su-wheel-group">
+ <para>Команда <command>su</command> выдает, что <errorname>you are
+ not in the correct group to su root</errorname>, когда я пытаюсь
+ сменить привилегии на <username>root</username>.</para>
+ </question>
+
+ <answer>
+ <para>Это особенность работы системы защиты. Для того, чтобы
+ изменить свои привилегии на пользователя <username>root</username>
+ (или любого другого пользователя, имеющего привилегии
+ администратора), вы должны быть членом группы
+ <groupname>wheel</groupname>. Если бы этого не было, любой,
+ имеющий доступ к системе и узнавший пароль пользователя
+ <username>root</username>, смог получить в системе
+ административные полномочия. С такой же защитой этого не
+ получится; &man.su.1; будет препятствовать попыткам даже ввести
+ пароль, если некто не являетесь членом группы
+ <groupname>wheel</groupname>.</para>
+
+ <para>Чтобы разрешить кому-либо менять привилегии на
+ <username>root</username>, просто включите его в группу
+ <groupname>wheel</groupname>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="rcconf-readonly">
+ <para>Я сделал ошибку в файле <filename>rc.conf</filename> или в
+ каком-то другом файле начальной загрузки, и теперь не могу его
+ отредактировать из-за того, что файловая система находится в
+ режиме только для чтения. Что мне делать?</para>
+ </question>
+
+ <answer>
+ <para>Перезапустите систему, используя в приглашении загрузчика
+ команду <userinput>boot -s</userinput> для входа в
+ однопользовательский режим. При получении приглашения на ввод
+ полного пути до командного
+ процессора просто нажмите <literal>Enter</literal>, а затем
+ выполните команду <command>mount -urw /</command> для повторного
+ монтирования корневой файловой системы в режиме чтения/записи. Вам
+ может также потребоваться выполнить команду <command>mount -a -t
+ ufs</command> для монтирования файловой системы, в которой
+ расположен ваш любимый редактор. Если редактор расположен на
+ сетевой файловой системе, то вам потребуется выполнить сетевые
+ настройки вручную до монтирования сетевой файловой системы, либо
+ воспользоваться редактором, находящимся в локальной файловой
+ системе, таким, как &man.ed.1;.</para>
+
+ <para>Если вы собираетесь использовать полноэкранный редактор,
+ такой, как &man.vi.1; или &man.emacs.1;, то вам нужно будет
+ выполнить команду <command>export TERM=cons25</command>, чтобы
+ такие редакторы смогли корректно взять данные из базы данных
+ &man.termcap.5;.</para>
+
+ <para>После выполнения этих шагов вы сможете отредактировать файл
+ <filename>/etc/rc.conf</filename> так, как вы это обычно делаете
+ для исправления ошибки. Сообщение об ошибке, выводимое сразу же
+ после сообщений при загрузке ядра, должно указать вам на номер
+ строки в файле, которая содержит ошибку.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="printer-setup">
+ <para>У меня проблемы с установкой принтера.</para>
+ </question>
+
+ <answer>
+ <para>Обратитесь к соответствующему <ulink
+ url="&url.books.handbook;/printing.html">разделу</ulink>
+ Руководства, посвящённому печати. В нём описаны решения
+ большинства ваших проблем.</para>
+
+ <para>Некоторые принтеры для выполнения любых операций по печати
+ требуют наличия на хосте драйвера. Такие так называемые
+ <quote>WinPrinters</quote> изначально во &os; не
+ поддерживаются. Если ваш принтер не работает в DOS или &windows;,
+ то, скорее всего, это WinPrinter. Единственное, что вам
+ остаётся сделать в надежде на то, что вы заставите его работать,
+ это проверить, поддерживает ли его порт
+ <filename role="package">print/pnm2ppa</filename>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="keyboard-mappings">
+ <para>Раскладка клавиатуры неверна.</para>
+ </question>
+
+ <answer>
+ <para>Пожалуйста, обратитесь к разделу Руководства, посвящённому
+ <ulink url="&url.books.handbook;/using-localization.html">
+ использованию локализации</ulink>, а именно к части, описывающей
+ <ulink
+ url="&url.books.handbook;/using-localization.html#SETTING-CONSOLE">
+ настройку консоли</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="pnp-resources">
+ <para>У меня при загрузке появляются сообщения вида
+ <errorname>unknown: &lt;PNP0303&gt; can't assign
+ resources</errorname></para>
+ </question>
+
+ <answer>
+ <para>Ниже следует часть письма, адресованного в &a.current;.</para>
+
+ <blockquote>
+ <attribution>&a.wollman;, 24 апреля 2001</attribution>
+
+ <para>Сообщение <quote>can't assign resources</quote> говорит о
+ том, что устройство является устаревшим ISA-устройством, для
+ которого в ядре присутствует драйвер, не поддерживающий PnP. К
+ таким устройствам относятся контроллеры клавиатуры, микросхема
+ контроллера программируемых прерываний, а также другие части
+ стандартного набора. Ресурсы не могут выделены, потому что уже
+ есть драйвер, использующий эти адреса.</para>
+ </blockquote>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="user-quotas">
+ <para>Почему не получается заставить работать дисковые квоты?</para>
+ </question>
+
+ <answer>
+ <!-- XXX Наверное, это самый худший ответ во всём документе. -->
+ <orderedlist>
+ <listitem>
+ <para>Возможно, что ваше ядро не сконфигурировано должным образом
+ для работы с квотами. Если это действительно так, то вам надо
+ добавить следующую строчку в ваш конфигурационный файл ядра и
+ пересобрать его:</para>
+ <programlisting>options QUOTA</programlisting>
+
+ <para>Пожалуйста, прочтите <ulink url="&url.books.handbook;/quotas.html">главу
+ руководства по квотам</ulink> для полной информации.</para>
+ </listitem>
+
+ <listitem>
+ <para>Не включайте квотирование на <filename
+ class="directory">/</filename>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Помещайте файл с квотами в ту файловую систему, которую
+ он обслуживает, то есть:</para>
+
+ <informaltable frame="none" pgwide="1">
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Файловая система</entry>
+
+ <entry>Файл квот</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry><filename
+ class="directory">/usr</filename></entry>
+
+ <entry><filename>/usr/admin/quotas</filename></entry>
+ </row>
+
+ <row>
+ <entry><filename
+ class="directory">/home</filename></entry>
+
+ <entry><filename>/home/admin/quotas</filename></entry>
+ </row>
+
+ <row>
+ <entry>&hellip;</entry>
+
+ <entry>&hellip;</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </informaltable>
+ </listitem>
+ </orderedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="sysv-ipc">
+ <para>Поддерживает ли &os; вызовы IPC из System V?</para>
+ </question>
+
+ <answer>
+ <para>Да, во &os; в ядро <filename>GENERIC</filename> включена
+ поддержка IPC в стиле
+ System V, в том числе совместно используемой памяти, сообщений и
+ семафоров. Для включения их поддержки в конфигурационный файл
+ вашего ядра нужно добавить следующие строки.</para>
+
+ <programlisting>options SYSVSHM # enable shared memory
+options SYSVSEM # enable for semaphores
+options SYSVMSG # enable for messaging</programlisting>
+
+ <para>Перекомпилируйте и переустановите ядро.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="sendmail-alternative">
+ <para>Какое другое программное обеспечение для почтового сервера
+ можно использовать вместо <application>sendmail</application>?</para>
+ </question>
+
+ <answer>
+ <para><ulink
+ url="http://www.sendmail.org/"><application>sendmail</application></ulink>
+ является
+ программным обеспечением для работы почтового сервера во &os;,
+ используемым по умолчанию, но вы можете с легкостью заменить его
+ другим MTA (к примеру, установленным из портов).</para>
+
+ <para>В дереве портов уже имеются различные альтернативные MTA, из
+ которых <filename role="package">mail/exim</filename>,
+ <filename role="package">mail/postfix</filename>,
+ <filename role="package">mail/qmail</filename> и
+ <filename role="package">mail/zmailer</filename> являются одними
+ из самых популярных.</para>
+
+ <para>Разнообразие хорошо, а тот факт, что у вас есть выбор из многих
+ различных почтовых серверов, является хорошим признаком; поэтому
+ попытайтесь не задавать вопросы типа
+ <quote><application>Sendmail</application> лучше, чем
+ <application>qmail</application>?</quote> в списках рассылки. Если
+ вы захотите получить ответ, сначала просмотрите архивы списков
+ рассылки. Достоинства и недостатки каждого из имеющихся MTA уже
+ обсуждались неоднократно.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="forgot-root-pw">
+ <para>Я забыл пароль пользователя <username>root</username>! Что
+ делать?</para>
+ </question>
+
+ <answer>
+ <para>Без паники! Перезапустите систему, наберите
+ <userinput>boot -s</userinput> в приглашении
+ <literal>Boot:</literal> для входа в однопользовательский
+ режим. На вопрос об используемой оболочке нажмите
+ <keycap>Enter</keycap>. На приглашение
+ &prompt.root; введите <command>mount -urw /</command>, чтобы
+ перемонтировать корневую файловую систему в режиме чтения/записи,
+ после чего выполните команду <command>mount -a</command> для
+ монтирования всех файловых систем. Запустите команду
+ <command>passwd root</command>, чтобы сменить
+ пароль пользователя <username>root</username>, а затем
+ &man.exit.1; для продолжения процесса загрузки.</para>
+
+ <note>
+ <para>Если при входе в однопользовательский режим предлагается
+ ввести пароль пользователя <username>root</username>, то
+ это означает, что консоль была помечена как
+ <literal>insecure</literal> в <filename>/etc/ttys</filename>.
+ В этом случае потребуется загрузиться с установочного диска
+ &os;, выбрать оболочку <guimenuitem>Fixit</guimenuitem> из
+ меню &man.sysinstall.8; и выполнить указанные выше команды.</para>
+ </note>
+
+ <note>
+ <para>Если вы не можете смонтировать корневой раздел в
+ однопользовательском режиме, то возможно, что разделы
+ являются зашифрованными, и смонтировать их без ключей доступа
+ не представляется возможным. Ваши шансы зависят от выбранного
+ способа шифрования. За дополнительной информацией обращайтесь
+ к разделу <ulink
+ url="&url.books.handbook;/disks-encrypting.html">Руководства</ulink>,
+ посвященному шифрованию дисков во &os;.</para>
+ </note>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="CAD-reboot">
+ <para>Как запретить перезагрузку по нажатию <keycombo
+ action="simul"><keycap>Control</keycap><keycap>Alt</keycap>
+ <keycap>Delete</keycap></keycombo>?</para>
+ </question>
+
+ <answer>
+ <para>Если вы используете драйвер консоли &man.syscons.4; (который
+ является стандартным), перегенерируйте и установите новое ядро с
+ таким параметром в конфигурационном файле:</para>
+
+ <programlisting>options SC_DISABLE_REBOOT</programlisting>
+
+ <para>Этого также можно достичь установкой следующего &man.sysctl.8;,
+ что не требует перезагрузки или пересборки ядра:</para>
+
+ <screen>&prompt.root; <userinput>sysctl hw.syscons.kbd_reboot=0</userinput></screen>
+
+ <note>
+ <para>Оба этих метода являются взаимоисключающими. Данный
+ &man.sysctl.8; не существует, если вы скомпилировали ядро
+ с параметром <literal>SC_DISABLE_REBOOT</literal>.</para>
+ </note>
+
+ <para>Если же вы используете драйвер консоли &man.pcvt.4;,
+ то включите в конфигурационный файл следующую строку и
+ пересоберите ядро:</para>
+
+ <programlisting>options PCVT_CTRL_ALT_DEL</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="dos-to-unix-txt">
+ <para>Как преобразовать текстовые файлы DOS в формат &unix;?</para>
+ </question>
+
+ <answer>
+ <para>Воспользуйтесь следующей командой &man.perl.1;:</para>
+
+ <screen>&prompt.user; <userinput>perl -i.bak -npe 's/\r\n/\n/g' <replaceable>file(s)</replaceable></userinput></screen>
+
+ <para>где <replaceable>file(s)</replaceable> - это один или
+ несколько файлов для обработки.
+ Преобразование делается в том же самом файле, оригинальные файлы
+ сохраняются с расширением <filename>.bak</filename>.</para>
+
+ <para>Это преобразование также можно выполнить с помощью команды
+ &man.tr.1;:</para>
+
+ <screen>&prompt.user; <userinput>tr -d '\r' &lt; <replaceable>dos-text-file</replaceable> &gt; <replaceable>unix-file</replaceable></userinput></screen>
+
+ <para>где <replaceable>dos-text-file</replaceable> - это имя файла,
+ содержащего текст DOS, а в файл
+ <replaceable>unix-file</replaceable> будет помещён уже
+ преобразованный текст. Этот способ может работать гораздо
+ быстрее, чем при использовании <command>perl</command>.</para>
+
+ <para>Еще один способ отформатировать тестовые файлы DOS
+ состоит в использовании <filename
+ role="package">converters/dosunix</filename> из Коллекции
+ Портов. Для получения дополнительной информации ознакомьтесь
+ с документацией порта.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="kill-by-name">
+ <para>Как прервать процесс по имени?</para>
+ </question>
+
+ <answer>
+ <para>Используйте команду &man.killall.1;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="root-acl">
+ <para>Почему &man.su.1; выдаёт сообщение о том, что я
+ не вхожу в <username>root</username> ACL?</para>
+ </question>
+
+ <answer>
+ <para>Эта ошибка выдаётся распределённой системой аутентификации
+ <application>Kerberos</application>. Эта ошибка не фатальна,
+ однако это раздражает. Вы можете запустить su с ключом
+ <option>-K</option> либо деинсталлировать
+ <application>Kerberos</application>, как описано в ответе на
+ следующий вопрос.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="uninstall-kerberos">
+ <para>Как деинсталлировать
+ <application>Kerberos</application>?</para>
+ </question>
+
+ <answer>
+ <para>Чтобы удалить <application>Kerberos</application> из
+ системы, переустановите дистрибутив <literal>base</literal>
+ того релиза, который у вас запущен. Если у вас есть CD-ROM,
+ вы можете смонтировать компакт-диск (положим, в каталог
+ <filename class="directory">/cdrom</filename>) и выполнить
+ команду</para>
+
+ <screen>&prompt.root; <userinput>cd /cdrom/base</userinput>
+&prompt.root; <userinput>./install.sh</userinput></screen>
+
+ <para>Либо вы можете задействовать опцию
+ <makevar>NO_KERBEROS</makevar> в файле
+ <filename>/etc/make.conf</filename> и выполнить полное перестроение
+ системы.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="where-is-makedev">
+ <para>Что случилось с <filename>/dev/MAKEDEV</filename>?</para>
+ </question>
+
+ <answer>
+ <para>Во &os;&nbsp;5.<replaceable>X</replaceable> и выше
+ используется система &man.devfs.8;, работающая по принципу
+ "устройства по требованию". Драйверы устройств
+ автоматически создают новые файлы
+ устройств, как только в них появляется необходимость, таким образом
+ обходясь без <filename>/dev/MAKEDEV</filename>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="add-pty">
+ <para>Как добавить в систему дополнительные псевдотерминалы?</para>
+ </question>
+
+ <answer>
+ <para>Если у вас много пользователей, работающих в сеансах
+ <command>telnet</command>, <command>ssh</command>, X или в
+ <command>screen</command>, то вы можете столкнуться с проблемой
+ нехватки псевдотерминалов. По умолчанию до &os;&nbsp;6.2
+ включительно поддерживается 256 псевдотерминалов, а начиная с
+ &os;&nbsp;6.3 &mdash; 512.</para>
+
+ <tip>
+ <para>При необходимости можно добавить дополнительные
+ псевдотерминалы. Однако, это требует изменений в стандартной
+ библиотеке C, ядре и <filename>/etc/ttys</filename>.
+ Например, <ulink
+ url="http://www.freebsd.org/~jhb/patches/pty_1152.patch"></ulink>
+ расширяет количество псевдотерминалов до 1152. Отметим, что
+ данный патч может быть применен без ошибок только для
+ &os;&nbsp;6.3 или выше.</para>
+ </tip>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="reread-rc">
+ <para>Как перечитать содержимое <filename>/etc/rc.conf</filename>
+ и перестартовать <filename>/etc/rc</filename> без перезагрузки
+ системы?</para>
+ </question>
+
+ <answer>
+ <para>Перейдите в однопользовательский режим, а затем возвратитесь обратно
+ в многопользовательский.</para>
+
+ <para>На консоли выполните следующее:</para>
+
+ <screen>&prompt.root; <userinput>shutdown now</userinput>
+(Замечание: без -r или -h)
+
+&prompt.root; <userinput>return</userinput>
+&prompt.root; <userinput>exit</userinput></screen>
+
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="release-candidate">
+ <para>Я пытался обновить мою систему до последней
+ <emphasis>-STABLE</emphasis>, а получил
+ <emphasis>-BETA<replaceable>x</replaceable></emphasis>,
+ <emphasis>-RC</emphasis> или
+ <emphasis>-PRERELEASE</emphasis>! Что происходит?</para>
+ </question>
+
+ <answer>
+ <para>Краткий ответ: это же просто название. <emphasis>RC</emphasis>
+ означает
+ <quote>Release Candidate</quote>. Это значит, что вскоре
+ произойдет выход релиза. Во &os; появление
+ <emphasis>-PRERELEASE</emphasis>, как
+ правило, равнозначно прекращению внесения изменений в код системы
+ перед появлением релиза. (Для некоторых релизом метка
+ <emphasis>-BETA</emphasis> использовалась точно так же, как и
+ <emphasis>-PRERELEASE</emphasis>.)</para>
+
+ <para>Подробный ответ: во &os; релизы выпускаются из одного из
+ двух мест. Крупные релизы, точка-ноль, такие, как
+ 7.0-RELEASE и 8.0-RELEASE, ответвляются от основного потока
+ разработки, более известного как <link
+ linkend="current">-CURRENT</link>. Мелкие релизы, такие, как
+ 6.3-RELEASE или 5.2-RELEASE, являлись снэпшотами активной ветки
+ <link linkend="stable">-STABLE</link>. Начиная с 4.3-RELEASE,
+ каждый релиз также имеет свою ветвь, которой могут следовать те,
+ кому необходим сверхконсервативный метод обновления (как правило,
+ внесение только тех исправлений, которые касаются вопросов
+ обеспечения безопасности).</para>
+
+ <para>Когда делается релиз, то ветвь, из которой он выпускается,
+ подвергается некоторой подготовке. Частью этого процесса является
+ замораживание кода. Когда инициируется замораживание кода, то имя
+ ветки изменяется для того, чтобы отразить факт близости релиза.
+ Например, если ветка называлась 6.2-STABLE, то её имя будет
+ изменено на 6.3-PRERELEASE, чтобы обозначить момент прекращения
+ внесения изменений в код системы и период дополнительного
+ тестирования перед выходом релиза. В это время исправления ошибок
+ могут быть внесены в код системы для того, чтобы быть включенными в
+ релиз. Когда исходный код подготовлен к выпуску релиза, имя будет
+ изменено на 6.3-RC для обозначения того, что релиз будет сделан,
+ скорее всего, именно из этого кода. Когда код находится на этапе
+ RC, в нём могут исправляться только самые критичные ошибки. Как
+ только релиз (в нашем примере 6.3-RELEASE) и ветка релиза будут
+ созданы, ветвь будет переименована в 6.3-STABLE.</para>
+
+ <para>Для получения дополнительной информации о номерах версий и
+ различных ветках CVS обратитесь к статье о <ulink
+ url="&url.articles.releng;/article.html">выпуске
+ релизов</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="kernel-chflag-failure">
+ <para>Я попытался установить новое ядро, однако утилита
+ &man.chflags.1; не сработала. Как это обойти?</para>
+ </question>
+
+ <answer>
+ <para>Краткий ответ: Скорее всего, вы работаете в режиме
+ безопасности, большем, чем 0. Для установки ядра
+ перезагрузите машину и войдите в
+ однопользовательский режим.</para>
+
+ <para>Подробный ответ: &os; запрещает менять системные
+ флаги при работе на уровнях безопасности, превышающих 0.
+ Вы можете определить ваш уровень такой командой:</para>
+
+ <screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
+
+ <para>Вы не можете понизить уровень безопасности; для установки
+ ядра вам нужно перезагрузиться в однопользовательский режим,
+ или изменить уровень безопасности в
+ <filename>/etc/rc.conf</filename>, а затем выполнить
+ перезагрузку. Обратитесь к странице Справочника по &man.init.8;
+ за подробной информацией об <literal>securelevel</literal> и
+ посмотрите <filename>/etc/defaults/rc.conf</filename> и
+ справочную страницу по &man.rc.conf.5; для выяснения
+ подробностей о файле <filename>rc.conf</filename>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="kernel-securelevel-time">
+ <para>Не получается изменить системное время больше чем на одну
+ секунду! Как это обойти?</para>
+ </question>
+
+ <answer>
+ <para>Краткий ответ: Скорее всего, вы работаете на уровне
+ безопасности, превышающем 1. Для смены даты перезагрузите
+ машину и войдите в однопользовательский режим.</para>
+
+ <para>Подробный ответ: &os; запрещает менять системное время
+ на больше чем одну секунду при работе на уровнях безопасности,
+ превышающих 1. Вы можете определить ваш уровень такой
+ командой:</para>
+
+ <screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
+
+ <para>Вы не можете понизить уровень безопасности; для изменения
+ даты вам нужно перезагрузиться в однопользовательский режим,
+ или изменить уровень безопасности в
+ <filename>/etc/rc.conf</filename>, а затем выполнить
+ перезагрузку. Обратитесь к странице Справочника по &man.init.8;
+ за подробной информацией об <literal>securelevel</literal> и
+ посмотрите <filename>/etc/defaults/rc.conf</filename> и
+ справочную страницу по &man.rc.conf.5; для выяснения
+ подробностей о файле <filename>rc.conf</filename>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="statd-mem-leak">
+ <para>В <command>rpc.statd</command>; есть ошибка работы с памятью!
+ Он использует 256&nbsp;Мбайт оперативной памяти!</para>
+ </question>
+
+ <answer>
+ <para>Нет, там нет ошибок и он не использует 256&nbsp;Мбайт памяти.
+ Для удобства <command>rpc.statd</command> отображает неприлично
+ большой кусок памяти в своё адресное пространство. Здесь нет
+ ничего неправильного с технической точки зрения, это просто
+ сбивает с толку программы вроде &man.top.1; и &man.ps.1;</para>
+
+ <para>&man.rpc.statd.8; отображает свой статусный файл
+ (находящийся на <filename class="directory">/var</filename>)
+ в свое адресное
+ пространство. Для того, чтобы постоянно не беспокоиться о будущих
+ переотражениях, когда файл вырастет в размерах, он просто
+ отображает его с огромным размером заранее. Это просто заметить
+ в исходных текстах, где как вы можете увидеть параметр длина
+ к функции &man.mmap.2; имеет значение
+ <literal>0x10000000</literal>, или одна шестнадцатая адресного
+ пространства для IA32, то есть 256&nbsp;Мбайт.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="unsetting-schg">
+ <para>Почему я не могу снять с файла флаг <literal>schg</literal>?</para>
+ </question>
+
+ <answer>
+ <para>Вы работаете в системе с повышенным (то есть большим, чем 0)
+ уровнем защиты. Понизьте уровень защиты и попробуйте еще раз.
+ Для получения более подробной информации обратитесь к <link
+ linkend="securelevel">разделу FAQ об уровне защиты</link> и
+ справочной странице о &man.init.8;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ssh-shosts">
+ <para>Почему в <application>SSH</application> аутентификация
+ посредством файла
+ <filename>.shosts</filename> не включена по умолчанию в
+ последних версиях &os;?</para>
+ </question>
+
+ <answer>
+ <para>Причиной, по которой <filename>.shosts</filename>
+ аутентификация не работает по умолчанию в последних версиях
+ &os;, является то что &man.ssh.1; не устанавливается более
+ с битом изменения привилегий на пользователя
+ <username>root</username>. Если вы хотите
+ <quote>исправить</quote> это, то вы можете сделать одно
+ из двух нижеприведённых действий:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Как постоянную правку, установите
+ <makevar>ENABLE_SUID_SSH</makevar> в <literal>true</literal> в
+ файле <filename>/etc/make.conf</filename>, затем
+ перекомпилируйте и установите &man.ssh.1; (или выполните
+ команду <command>make <maketarget>world</maketarget></command>).</para>
+ </listitem>
+
+ <listitem>
+ <para>Как временную правку, измените права доступа к файлу
+ <filename>/usr/bin/ssh</filename> на <literal>4555</literal>
+ командой <command>chmod 4555 /usr/bin/ssh</command> из-под
+ администратора. А потом добавьте строку
+ <literal><makevar>ENABLE_SUID_SSH</makevar>= true</literal>
+ в файл <filename>/etc/make.conf</filename>, чтоб это изменение
+ осталось в силе после очередного обновления системы с помощью
+ <command>make <maketarget>world</maketarget></command>.</para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="vnlru">
+ <para>Что такое <literal>vnlru</literal>?</para>
+ </question>
+
+ <answer>
+ <para><literal>vnlru</literal> сбрасывает и освобождает vnode, когда
+ система достигает своего ограничения по параметру
+ <varname>kern.maxvnodes</varname>. Этот подпроцесс ядра в основном
+ работает вхолостую и активируется только при наличии огромного
+ объема ОЗУ и обращении к десяткам или тысячам файлов маленького
+ размера.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="top-memory-states">
+ <para>Что означают различные состояния памяти, показываемые утилитой
+ <command>top</command>?</para>
+ </question>
+
+<!-- Предоставил John Dyson через Usenet -->
+
+ <answer>
+ <itemizedlist>
+ <listitem>
+ <para><literal>Active</literal>: по статистике страницы недавно
+ использовались.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Inactive</literal>: по статистике страницы
+ недавно не использовались.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Cache</literal>: (наиболее часто)
+ страницы, которых перемещены из числа неактивных в статус, в
+ котором они содержат данные, но которые могут часто сразу же
+ использоваться повторно (как с их старым содержимым, так и
+ повторно с новым). Это может быть некоторое непосредственное
+ перемещение из состояния <literal>active</literal> в состояние
+ <literal>cache</literal>, если известно, что страница чиста (не
+ модифицировалась), но такое
+ перемещение определяется политикой, зависящей от выбора
+ алгоритма разработчиком VM-системы.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Free</literal>: страницы, не содержащие данных,
+ и которые могут быть использованы при некоторых условиях,
+ когда страницы кэша могут не подойти. Свободные страницы
+ могут повторно использоваться в состояниях прерывания или
+ процессах.</para>
+ </listitem>
+
+ <listitem>
+ <para><literal>Wired</literal>: страницы, зафиксированные в
+ памяти, обычно для использования ядром, а также иногда для
+ специального использования процессами.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Страницы чаще всего записываются на диск (типа синхронизации
+ VM), когда они находятся в неактивном состоянии, однако страницы
+ в активном состоянии также могут сбрасываться. Это зависит от
+ наличия и возможности отслеживания со стороны ЦП бита
+ 'модифицированности', и в некоторых ситуациях это может быть лучше
+ для блока синхронизируемых страниц VM, вне зависимости от их
+ активности. В большинстве встречающихся ситуаций лучше всего
+ представлять неактивную очередь как очередь сравнительно
+ неиспользуемых страниц, которые могут быть, а могут и не быть в
+ процессе записи на диск. Кэшируемые страницы уже
+ синхронизированы, не отображаются, но доступны для
+ непосредственного использования процессом со своей старой или новой
+ привязкой. Свободные страницы доступны на уровне прерывания,
+ однако кэшируемые или свободные страницы могут использоваться в
+ процессе повторно. Кэшируемые страницы недостаточно заблокированы
+ для того, чтобы быть доступными на уровне прерывания.</para>
+
+ <para>Есть ещё некоторые другие флаги (например, флаг занятости или
+ счётчик занятости), которые могут изменить некоторые описанные
+ правила.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="free-memory-amount">
+ <para>Сколько свободной памяти доступно?</para>
+ </question>
+
+<!-- Предоставил John Dyson посредством Usenet -->
+
+ <answer>
+ <para>Есть несколько понятий <quote>свободной памяти</quote>. В
+ одном случае это объём памяти, непосредственно доступной в данный
+ момент без страничной выгрузки чего-либо. Этот объём равен
+ примерно размеру очереди кэша + размер очереди на высвобождение (с
+ учётом допустимых отклонений, зависящих от настроек системы). В
+ другом случае <quote>свободная память</quote> обозначает общий
+ объём пространства <acronym>VM</acronym>. Он может сложно
+ вычисляться, но зависит от объёма раздела подкачки и памяти.
+ Другие определения <quote>свободной памяти</quote> также возможны,
+ но они достаточно бесполезны, ведь в любом случае важно сохранять
+ низкий уровень подкачки и избегать исчерпания раздела
+ подкачки.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="var-empty">
+ <para>Что такое <filename class="directory">/var/empty</filename>?
+ Я не могу его удалить!</para>
+ </question>
+
+ <answer>
+ <para><filename class="directory">/var/empty</filename>
+ представляет собой каталог, который использует программа
+ &man.sshd.8; при выполнении разделения полномочий. Каталог
+ <filename class="directory">/var/empty</filename> пуст, его
+ владельцем является <username>root</username> и на нём
+ установлен флаг <literal>schg</literal>.</para>
+
+ <para>Хотя этот каталог удалять не рекомендуется, для выполнения этой
+ операции вам нужно сначала снять флаг <literal>schg</literal>.
+ Обратитесь к справочным страницам по &man.chflags.1; для получения
+ более полной информации (и помните про ответ на <link
+ linkend="unsetting-schg">вопрос о снятии флага schg</link>).</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="x">
+ <title>X Window System и виртуальные консоли</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="whatis-X">
+ <para>Что такое X Window System?</para>
+ </question>
+
+ <answer>
+ <para>X Window System (обычно <literal>X11</literal>)
+ является самой широкодоступной оконной
+ системой, которая может работать на &unix; и &unix;-подобных
+ системах, в том числе и во &os;. Разработкой стандартов на
+ используемый <ulink
+ url="http://en.wikipedia.org/wiki/X_Window_System_core_protocol">
+ X-протокол</ulink> занимается организация <ulink
+ url="http://www.x.org/wiki/">The X.Org Foundation</ulink>, с
+ текущей эталонной реализацией version 11 release &xorg.version;,
+ поэтому вы будете часто встречать краткую ссылку на них в виде
+ сокращения <literal>X11</literal>.</para>
+
+ <para>Для разных архитектур и операционных систем существует
+ множество реализаций этой системы. Реализацию кода для
+ серверной части называют <literal>X-сервером</literal>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="which-X">
+ <para>Какие реализации X существуют для &os;?</para>
+ </question>
+
+ <answer>
+ <para>Исторически складывалось так, что во &os; в качестве
+ используемой по умолчанию реализации X выступал пакет
+ &xfree86;, который поддерживает <ulink
+ url="http://www.xfree86.org">The XFree86 Project,
+ Inc.</ulink> Данное программное обеспечение устанавливалось по
+ умолчанию в версиях &os; до 4.10 и 5.2. Хотя &xorg; поддерживала
+ в то время свою реализацию, в целом она позиционировалась как
+ ссылочная платформа, от чего долгие годы значительно
+ страдала.</para>
+
+ <para>Однако в начале 2004 года несколько разработчиков XFree86
+ покинули проект из-за разногласий по поводу темпов внесения
+ изменений в код, будущего направления развития и личных конфликтов.
+ Теперь они передают свой код непосредственно в &xorg;.
+ Одновременно с этим &xorg; обновила своё дерево исходных текстов до
+ состояния, соответствующего последнему релизу &xfree86;
+ перед изменением лицензионного соглашения (<application>XFree86
+ version 4.3.99.903</application>), включила туда множество
+ изменений, ранее поддерживаемых отдельно, и выпустила этот набор
+ как <application>X11R6.7.0</application>. Существует отдельный,
+ но связанный с этим проект <ulink
+ url="http://www.freedesktop.org/wiki/">freedesktop.org</ulink>
+ (для краткости <literal>fd.o</literal>), работающий над
+ перепроектированием оригинального кода &xfree86;, в котором больше
+ нагрузки должно лечь на графический адаптер (для улучшения
+ производительности), и который должен стать более модульным (для
+ улучшения поддержки и ускорения выпуска
+ релизов, а также упрощения настройки). &xorg; планирует включить
+ изменения, разработанные <literal>freedesktop.org</literal>, в
+ свои будущие релизы.</para>
+
+ <para>С июля 2004 в &os.current; в качестве реализации, используемой
+ по умолчанию, &xfree86; была заменена на &xorg;. С тех пор
+ в качестве реализации X11 по умолчанию используется &xorg;.</para>
+
+ <para>Для получения более полной информации прочтите раздел о <ulink
+ url="&url.books.handbook;/x11.html">X11</ulink> Руководства
+ &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="xfree86-split">
+ <para>Всё же почему разделились два проекта X?</para>
+ </question>
+
+ <answer>
+ <para>Ответ на этот вопрос находится вне круга проблем, описываемых
+ в FAQ. Заметим, что в Internet в архивах различных списков
+ рассылки хранится объёмная переписка. Для изучения истории этого
+ вопроса, пожалуйста, воспользуйтесь вашей любимой поисковой
+ системой, а не задавайте вопросы в списках рассылки &os;. Может
+ статься, что только непосредственные участники событий будут знать
+ доподлинно все произошедшее.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="why-choose-xorg">
+ <para>Почему для установки по умолчанию во &os; были выбраны
+ порты &xorg;?</para>
+ </question>
+
+ <answer>
+ <para>Разработчики &xorg; заявляют, что их целями является более
+ частый выпуск релизов и быстрое добавление новых функций. Если
+ они смогут это осуществить, что их разработка будет весьма
+ привлекательна. Кроме того, использование их программного
+ обеспечение продолжает подпадать под условия стандартного для X
+ лицензионного соглашения, тогда как &xfree86; пользуется несколько
+ модифицированным её вариантом.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="running-X">
+ <para>Я хочу запустить X, как это сделать?</para>
+ </question>
+
+ <answer>
+ <para>Если вы планируете установить X на уже работающую систему, то
+ вам необходимо использовать мета-порт <filename
+ role="package">x11/xorg</filename>, который построит и установит
+ все необходимые компоненты, либо установить &xorg; из
+ пакетов &os;.</para>
+
+ <screen><userinput>&prompt.root; pkg_add -r xorg</userinput></screen>
+
+ <para>Кроме того, установить &xorg; можно из &man.sysinstall.8;,
+ выбрав <guimenuitem>Configure</guimenuitem>, затем
+ <guimenuitem>Distributions</guimenuitem>, затем
+ <guimenuitem>The X.Org Distribution</guimenuitem>.</para>
+
+ <para>После того, как &xorg; был успешно установлен, следуйте
+ указаниям в разделе <ulink
+ url="&url.books.handbook;/x-config.html">Конфигурация
+ X11</ulink> Руководства &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="running-X-securelevels">
+ <para>Я <emphasis>попытался</emphasis> запустить X, но получил
+ сообщение <errorname>KDENABIO failed (Operation not
+ permitted)</errorname> после ввода команды
+ <command>startx</command>. Что мне теперь делать?</para>
+ </question>
+
+ <answer>
+ <para>Вероятнее всего, в вашей системе установлен повышенный уровень
+ безопасности (<literal>securelevel</literal>). При повышенном
+ уровне защиты систему X запустить
+ невозможно, потому что X требуются права на операции записи в
+ устройство &man.io.4;. Дополнительную
+ информацию можно найти на страницах справочной системы по
+ &man.init.8;.</para>
+
+ <para>Так что вопрос сводится к тому, как вам это обойти, и у вас
+ здесь есть в основном два варианта: установить значение
+ <literal>securelevel</literal> обратно в ноль (обычно это делается в
+ <filename>/etc/rc.conf</filename>) или во время загрузки
+ запускать &man.xdm.1; (до того, как повышается значение
+ <literal>securelevel</literal>).</para>
+
+ <para>Обратитесь к <xref linkend="xdm-boot"/> для получения более
+ полной информации о запуске &man.xdm.1; во время загрузки.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="x-and-moused">
+ <para>Почему моя мышь не работает с X?</para>
+ </question>
+
+ <answer>
+ <para>Если вы используете &man.syscons.4; (стандартный драйвер
+ консоли), то можете настроить поддержку указателя мыши во всех
+ виртуальных экранах. Во избежание конфликтов с X, драйвер
+ &man.syscons.4; поддерживает виртуальное устройство
+ <devicename>/dev/sysmouse</devicename>. Все события, получаемые
+ от реальной мыши, пишутся в устройство &man.sysmouse.4; через
+ &man.moused.8;. Если вы хотите использовать вашу мышь на одной или
+ нескольких виртуальных консолях, <emphasis>продолжая</emphasis>
+ использовать X, посмотрите <xref linkend="moused"
+ remap="другой раздел"/> и настройте &man.moused.8;.</para>
+
+ <para>Затем отредактируйте <filename>/etc/X11/xorg.conf</filename>
+ так, чтобы в нём были следующие строки:</para>
+
+ <programlisting>Section "InputDevice"
+ Option "Protocol" "SysMouse"
+ Option "Device" "/dev/sysmouse"
+.....</programlisting>
+
+ <para>Начиная с версии &xorg; 7.4 раздел
+ <literal>InputDevice</literal> в файле
+ <filename>xorg.conf</filename> игнорируется, и вместо него
+ используется механизм автоматически определяемых устройств.
+ Чтобы восстановить прежнее поведение, добавьте в раздел
+ <literal>ServerLayout</literal> или
+ <literal>ServerFlags</literal> такую строку:</para>
+
+ <programlisting>Option "AutoAddDevices" "false"</programlisting>
+
+ <para>Некоторые предпочитают использовать в X устройство
+ <devicename>/dev/mouse</devicename>. Чтобы оно работало, файл
+ устройства <devicename>/dev/mouse</devicename> должен являться
+ ссылкой на <devicename>/dev/sysmouse</devicename> (посмотрите
+ справку по &man.sysmouse.4;). Это можно сделать, добавив
+ следующую строку в <filename>/etc/devfs.conf</filename>
+ (посмотрите справку по &man.devfs.conf.5;):</para>
+
+ <programlisting>link sysmouse mouse</programlisting>
+
+ <para>Ссылка может быть создана путем перезапуска &man.devfs.5;
+ с использованием следующей команды (из под пользователя
+ <username>root</username>):</para>
+
+ <screen>&prompt.root; <userinput>/etc/rc.d/devfs restart</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="x-and-wheel">
+ <para>У моей мыши есть колёсико. Могу ли я его использовать при
+ работе в X?</para>
+ </question>
+
+ <answer>
+ <para>Да.</para>
+
+ <para>Вам нужно указать X, что используется 5-кнопочная мышь. Для
+ этого просто добавьте строчки <literal>Buttons 5</literal> и
+ <literal>ZAxisMapping 4 5</literal> в раздел
+ <quote>InputDevice</quote> файла
+ <filename>/etc/X11/xorg.conf</filename>. Например, в
+ вашем файле <filename>/etc/X11/xorg.conf</filename> секция
+ <quote>InputDevice</quote> может принять такой вид:</para>
+
+ <example>
+ <title>Секция <quote>InputDevice</quote> для мыши с
+ колёсиком в файле конфигурации &xorg;</title>
+
+ <programlisting>Section "InputDevice"
+ Identifier "Mouse1"
+ Driver "mouse"
+ Option "Protocol" "auto"
+ Option "Device" "/dev/sysmouse"
+ Option "Buttons" "5"
+ Option "ZAxisMapping" "4 5"
+EndSection</programlisting>
+ </example>
+
+ <example>
+ <title>Пример <quote>.emacs</quote> для простой прокрутки страницы
+ при помощи мыши с колёсиком (опционально)</title>
+
+ <programlisting>;; wheel mouse
+(global-set-key [mouse-4] 'scroll-down)
+(global-set-key [mouse-5] 'scroll-up)</programlisting>
+ </example>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="no-remote-x11">
+ <para>Как использовать удалённые X-дисплеи?</para>
+ </question>
+
+ <answer>
+ <para>Из соображений обеспечения информационной безопасности
+ открывать удалённые окна на машине по умолчанию запрещено.</para>
+
+ <para>Для включения этой возможности просто запустите
+ <application>X</application> с аргументом
+ <option>-listen_tcp</option>:</para>
+
+ <screen>&prompt.user; <userinput>startx -listen_tcp</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="virtual-console">
+ <para>Что такое виртуальные консоли и как изменить их
+ количество?</para>
+ </question>
+
+ <answer>
+ <para>Виртуальные консоли, упрощённо говоря, позволяют вам иметь
+ несколько одновременных сеансов работы с той же самой машиной без
+ установки какой бы то ни было сети или запуска X.</para>
+
+ <para>При запуске системы после вывода сообщений этапа загрузки на
+ консоль выдаётся приглашение на вход в систему. Вы можете ввести
+ своё имя и пароль и начать работать (или играть!) на первой
+ виртуальной консоли.</para>
+
+ <para>В какой-то момент вы можете захотеть запустить ещё одну сеанс,
+ скажем, чтобы заглянуть в документацию по программе, которую вы
+ запустили или для для чтения электронной почты во время ожидания
+ завершения передачи данных по FTP. Просто нажмите <keycombo
+ action="simul"><keycap>Alt</keycap><keycap>F2</keycap></keycombo>
+ (удерживая клавишу <keycap>Alt</keycap>, нажмите
+ <keycap>F2</keycap>) и вы обнаружите приглашение, ждущее вас на
+ второй <quote>виртуальной консоли</quote>! Когда захотите
+ вернуться к первоначальному сеансу, нажмите <keycombo
+ action="simul"><keycap>Alt</keycap>
+ <keycap>F1</keycap></keycombo>.</para>
+
+ <para>После установки по умолчанию во &os; задействованы восемь
+ виртуальных консолей, а комбинации клавиш
+ <keycombo action="simul"><keycap>Alt</keycap>
+ <keycap>F1</keycap></keycombo>, <keycombo
+ action="simul"><keycap>Alt</keycap><keycap>F2</keycap></keycombo>,
+ <keycombo action="simul"><keycap>Alt</keycap>
+ <keycap>F3</keycap></keycombo> и так далее служат для переключения
+ между ними.</para>
+
+ <para>Чтобы увеличить количество консолей, отредактируйте файл
+ <filename>/etc/ttys</filename> (посмотрите справку
+ по &man.ttys.5;), добавив туда записи для терминалов с именами от
+ <devicename>ttyv8</devicename> до <devicename>ttyvc</devicename>
+ после слов <quote>Virtual terminals</quote>:</para>
+
+ <programlisting># Edit the existing entry for ttyv8 in /etc/ttys and change
+# "off" to "on".
+ttyv8 "/usr/libexec/getty Pc" cons25 on secure
+ttyv9 "/usr/libexec/getty Pc" cons25 on secure
+ttyva "/usr/libexec/getty Pc" cons25 on secure
+ttyvb "/usr/libexec/getty Pc" cons25 on secure</programlisting>
+
+ <para>Используйте из них столько, сколько посчитаете нужным. Чем
+ больше виртуальных терминалов у вас имеется, тем больше ресурсов
+ они используют; это может иметь значение, если у вас меньше чем
+ 8&nbsp;Мбайт ОЗУ. Вы можете сменить статус консолей с
+ <literal>secure</literal> на <literal>insecure</literal>.</para>
+
+ <important>
+ <para>Если вы хотите запустить X, вы <emphasis>должны</emphasis>
+ оставить для него по крайней мере один неиспользуемый (или
+ выключенный) виртуальный терминал. Таким образов, если вы хотите
+ иметь приглашения login на всех двенадцати функциональных клавиши,
+ то вам не повезло &mdash; вы можете это сделать только для одиннадцати
+ из них, если хотите на этой же машине ещё запустить
+ X-сервер.</para>
+ </important>
+
+ <para>Самым простым способом убрать консоль является просто её
+ выключение. Например, если вы запустили на всех 12 консолях
+ виртуальные терминалы, как указано выше, и ещё хотите запустить
+ X, то должны будете изменить параметры двенадцатого виртуального
+ терминала с:</para>
+
+ <programlisting>ttyvb "/usr/libexec/getty Pc" cons25 on secure</programlisting>
+
+ <para>на:</para>
+
+ <programlisting>ttyvb "/usr/libexec/getty Pc" cons25 off secure</programlisting>
+
+ <para>Если на вашей клавиатуре только десять функциональных клавиш,
+ то последние строки будут выглядеть так:</para>
+
+ <programlisting>ttyv9 "/usr/libexec/getty Pc" cons25 off secure
+ttyva "/usr/libexec/getty Pc" cons25 off secure
+ttyvb "/usr/libexec/getty Pc" cons25 off secure</programlisting>
+
+ <para>(Вы также можете просто их удалить.)</para>
+
+ <para>Самым простым (и надёжным) способом активировать виртуальные
+ консоли является перезагрузка. Однако если вы вовсе не хотите
+ этого делать, просто остановите X Window System и выполните (как
+ пользователь <username>root</username>):</para>
+
+ <screen>&prompt.root; <userinput>kill -HUP 1</userinput></screen>
+
+ <para>При этом требуется, чтобы вы полностью закрыли X Window, если
+ она была запущена, до запуска этой команды. Если вы это не
+ сделаете, ваша система может повиснуть или заблокироваться после
+ выполнения команды <command>kill</command>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="vty-from-x">
+ <para>Как осуществляется доступ к виртуальным консолям из X?</para>
+ </question>
+
+ <answer>
+ <para>Используйте комбинацию клавиш
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap>
+ <keycap>Alt</keycap>
+ <keycap>F<replaceable>n</replaceable></keycap>
+ </keycombo>
+ для переключения обратно в виртуальную консоль. Нажатие
+ <keycombo action="simul">
+ <keycap>Ctrl</keycap>
+ <keycap>Alt</keycap>
+ <keycap>F1</keycap>
+ </keycombo>
+ вернёт вас на первую виртуальную консоль.</para>
+
+ <para>После того, как вы оказались в текстовой консоли, можете использовать,
+ как обычно, комбинации
+ <keycombo action="simul">
+ <keycap>Alt</keycap>
+ <keycap>F<replaceable>n</replaceable></keycap>
+ </keycombo> для переключения между ними.</para>
+
+ <para>Чтобы вернуться в сеанс работы X, вы должны переключиться
+ в виртуальную консоль, на которой запущена X Window. Если вы
+ запустили X из командной строки (например, при помощи команды
+ <command>startx</command>), то сеанс работы X будет привязан
+ к следующей неиспользуемой виртуальной консоли, а не к той
+ текстовой консоли, с которой он был запущен. Если у вас
+ имеется восемь активных виртуальных терминалов, то X будет
+ работать на девятом, и вам нужно будет воспользоваться комбинацией
+ <keycombo action="simul">
+ <keycap>Alt</keycap>
+ <keycap>F9</keycap>
+ </keycombo>
+ для возврата в X.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="xdm-boot">
+ <para>Как запустить <application>XDM</application> во время
+ загрузки?</para>
+ </question>
+
+ <answer>
+ <para>Есть две философские школы, проповедующие различные методы
+ запуска &man.xdm.1;. Последователи одного течения запускают
+ <command>xdm</command> из <filename>/etc/ttys</filename>
+ (посмотрите &man.ttys.5;), используя приводимый пример, тогда
+ как другие вставляют запуск <command>xdm</command> в скрипт
+ <filename>rc.local</filename> (посмотрите справку по &man.rc.8;)
+ или <filename>X</filename>, помещая последний в каталог
+ <filename class="directory">/usr/local/etc/rc.d</filename>.
+ Оба метода
+ равноправны, и один из них может работать в ситуациях, с
+ которыми не справляется другой и наоборот. В обоих случаях
+ результат один и тот же: X выводит графическое приглашение
+ для входа в систему.</para>
+
+ <para>Плюсом метода с использованием &man.ttys.5; является
+ документирование того, на каком vty будет запущен X и то,
+ что ответственность за перезапуск X-сервера при завершении
+ сеанса работы лежит на процессе &man.init.8;. Метод с
+ использованием &man.rc.8; позволяет просто прекратить работу
+ xdm командой <command>kill</command> <command>xdm</command>,
+ если при запуске X возникли какие-нибудь проблемы.</para>
+
+ <para>Из &man.rc.8; <command>xdm</command> должен быть запущен
+ без аргументов, (то есть как даемон). <command>xdm</command>
+ должен быть запущен <emphasis>после</emphasis> запуска
+ &man.getty.8;, иначе они будут конфликтовать, блокируя консоль.
+ Лучше всего выдержать паузу секунд на 10 и потом запустить
+ <command>xdm</command>.</para>
+
+ <para>Если <command>xdm</command> запускается из
+ <filename>/etc/ttys</filename>, то есть вероятность конфликта
+ между <command>xdm</command> и &man.getty.8;. Одним из способов
+ избежать этого является добавление номера <literal>vt</literal> в
+ файл <filename>/usr/local/lib/X11/xdm/Xservers</filename>:</para>
+
+ <programlisting>:0 local /usr/local/bin/X vt4</programlisting>
+
+ <para>В вышеприведённом случае X-серверу указывается работать на
+ <devicename>/dev/ttyv3</devicename>. Заметьте, что номера
+ отличаются на единицу. Дело в том, что X-сервер считает vty
+ от единицы, когда как отсчёт vty в ядре &os; ведётся с нуля.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="xconsole-failure">
+ <para>При запуске <command>xconsole</command> выдаётся сообщение
+ <errorname>Couldn't open console</errorname>.</para>
+ </question>
+
+ <answer>
+ <para>Если вы запускаете <application>X</application> с использованием
+ сценария <application>startx</application>, права на устройство
+ <devicename>/dev/console</devicename>
+ <emphasis>не</emphasis> изменяются, поэтому такие программы, как
+ <application>xterm -C</application> и
+ <application>xconsole</application>, не будут работать.</para>
+
+ <para>Это зависит от прав доступа, установленных для консоли по умолчанию.
+ В многопользовательской системе вовсе не нужно, чтобы любой
+ пользователь мог выводить информацию на системную консоль. Для
+ пользователей, вошедших в систему через VTY, для решения этой проблемы
+ существует файл &man.fbtab.5;.</para>
+
+ <para>В общем, раскомментируйте строчку в файле
+ <filename>/etc/fbtab</filename> (посмотрите справку по
+ &man.fbtab.5;):</para>
+
+ <programlisting>/dev/ttyv0 0600 /dev/console</programlisting>
+
+ <para>Этого будет достаточно для того, чтобы всякий, кто вошёл
+ в систему с терминала <devicename>/dev/ttyv0</devicename>, имел доступ к
+ консоли.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="xfree86-root">
+ <para>Раньше я запускал &xfree86;, работая как обычный пользователь, а
+ теперь при запуске выдается сообщение о том, что я должен быть
+ пользователем <username>root</username>!</para>
+ </question>
+
+ <answer>
+ <para>Все X-серверы должны запускаться пользователем
+ <username>root</username>, чтобы иметь прямой доступ к вашему
+ видеооборудованию. Более старые версии &xfree86;
+ (&lt;= 3.3.6) устанавливали все поставляемые серверы так, что они
+ автоматически запускались пользователем root (с установленным битом
+ смены владельца запускаемого процесса). Несомненно, это рискованно,
+ потому что X-серверы являются большими, сложными программами. Более
+ новые версии &xfree86; не устанавливают на серверах бит смены
+ владельца на пользователя <username>root</username> именно по этой
+ причине.</para>
+
+ <para>Очевидно, что запускать X-сервер, работая как
+ пользователь <username>root</username>, неправильно и небезопасно.
+ Есть два способа использовать X, работая как
+ обычный пользователь. Первый способ заключается в использовании
+ <application>xdm</application> или другого менеджера дисплеев (к
+ примеру, <application>kdm</application>); второй способ - в
+ использовании программы <command>Xwrapper</command>.</para>
+
+ <para><application>xdm</application> представляет собой даемон,
+ который обрабатывает входы в систему в графическом режиме. Обычно
+ он запускается во время загрузки и отвечает за аутентификацию
+ пользователей и запуск их сеансов; практически это графический
+ аналог программ &man.getty.8; и &man.login.1;. Более подробная
+ информация о <application>xdm</application> находится в <ulink
+ url="http://www.xfree86.org/sos/resources.html">документации по
+ &xfree86;</ulink> и в <link linkend="xdm-boot">соответствующем разделе
+ FAQ</link>.</para>
+
+ <para><command>Xwrapper</command> является оболочкой для X-сервера;
+ это маленькая утилита, позволяющая кому-либо запускать X-сервер, и
+ достаточно безопасная в использовании. Она выполняет некоторую
+ проверку передаваемых ей в командной строке аргументов, и если всё
+ в порядке, запускает соответствующий X-сервер. Если по каким-либо
+ причинам вы не хотите запускать менеджер дисплеев, то эта утилита
+ вам подойдет. Если у вас установлена полная Коллекция Портов, вы
+ можете найти этот порт в каталоге
+ <filename role="package">x11/wrapper</filename>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ps2-x">
+ <para>Моя мышь PS/2 в X работает неправильно.</para>
+ </question>
+
+ <answer>
+ <para>Вполне может быть, что ваша мышь и её драйвер
+ рассинхронизировались.</para>
+
+ <para>В редких случаях драйвер может ошибочно обнаруживать проблемы
+ с синхронизацией, и вы будете видеть такие сообщения ядра:</para>
+
+ <programlisting>psmintr: out of sync (xxxx != yyyy)</programlisting>
+
+ <para>и заметите, что мышь теперь работает неправильно.</para>
+
+ <para>Если это случится, отмените проверку согласования, установив
+ значение флага для драйвера мыши PS/2 в <literal>0x100</literal>.
+ Войдите в
+ конфигуратор <emphasis>UserConfig</emphasis>, задав опцию
+ <option>-c</option> в приглашении загрузчика:</para>
+
+ <screen>boot: <userinput>-c</userinput></screen>
+
+ <para>Затем в командной строке <emphasis>UserConfig</emphasis>
+ наберите:</para>
+
+ <screen>UserConfig&gt; <userinput>flags psm0 0x100</userinput>
+UserConfig&gt; <userinput>quit</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ps2-mousesystems">
+ <para>Почему моя мышь PS/2 от MouseSystems не работает?</para>
+ </question>
+
+ <answer>
+ <para>Было несколько сообщений, что некоторые модели мышей PS/2 от
+ MouseSystems работают только в режиме <quote>высокого
+ разрешения</quote>. В других режимах курсор мыши постоянно
+ прыгает в верхний левый угол экрана.</para>
+
+ <para>Укажите флаг <literal>0x04</literal> драйверу мыши PS/2 для
+ перевода её в режим
+ высокого разрешения. Войдите в <emphasis>UserConfig</emphasis>,
+ задав опцию <option>-c</option> в приглашении загрузчика:</para>
+
+ <screen>boot: <userinput>-c</userinput></screen>
+
+ <para>Затем в командной строке <emphasis>UserConfig</emphasis>
+ наберите:</para>
+
+ <screen>UserConfig&gt; <userinput>flags psm0 0x04</userinput>
+UserConfig&gt; <userinput>quit</userinput></screen>
+
+ <para>В предыдущем разделе описана возможная причина проблем с
+ мышью.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="mouse-button-reverse">
+ <para>Как поменять местами кнопки мыши?</para>
+ </question>
+
+ <answer>
+ <para>Поместите команду <command>xmodmap
+ -e "pointer = 3 2 1"</command> в один из ваших скриптов
+ <filename>.xinitrc</filename> или
+ <filename>.xsession</filename>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="install-splash">
+ <para>Как установить экранную заставку и где такие заставки можно
+ найти?</para>
+ </question>
+
+ <answer>
+ <para>Подробный ответ находится в разделе <ulink
+ url="&url.books.handbook;/boot-blocks.html#BOOT-SPLASH">Загрузочные
+ экранные заставки</ulink> Руководства &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="windows-keys">
+ <para>Можно ли в X использовать клавиши <keycap>Windows</keycap>,
+ которые есть на клавиатуре?</para>
+ </question>
+
+ <answer>
+ <para>Да. Всё, что вам нужно сделать, это с помощью &man.xmodmap.1;
+ задать функции, которые вы хотите к этим клавишам привязать.</para>
+
+ <para>Положим, что все клавиатуры <quote>Windows</quote> стандартны и
+ эти три клавиши имеют следующие клавиатурные коды:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><keycode>115</keycode> &mdash; клавиша
+ <keycap>Windows</keycap> между клавишами <keycap>Ctrl</keycap>
+ и <keycap>Alt</keycap> с левой стороны</para>
+ </listitem>
+
+ <listitem>
+ <para><keycode>116</keycode> &mdash; клавиша
+ <keycap>Windows</keycap> справа от клавиши
+ <keycap>AltGr</keycap></para>
+ </listitem>
+
+ <listitem>
+ <para><keycode>117</keycode> &mdash; клавиша
+ <keycap>Menu</keycap>, слева от клавиши
+ <keycap>Ctrl</keycap>, находящейся справа</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Чтобы заставить левую клавишу <keycap>Windows</keycap>
+ набирать запятую, попробуйте выполнить такую команду:</para>
+
+ <screen>&prompt.root; <userinput>xmodmap -e "keycode 115 = comma"</userinput></screen>
+
+ <para>Чтобы увидеть результат, вам нужно будет перезапустить ваш
+ оконный менеджер.</para>
+
+ <para>Для того, чтобы переопределения клавиш
+ <keycap>Windows</keycap> выполнялось автоматически
+ каждый раз при запуске X, можно поместить вызов команд
+ <command>xmodmap</command> в ваш <filename>~/.xinitrc</filename>
+ либо, что предпочтительней, создать файл
+ <filename>~/.xmodmaprc</filename> и включить в него параметры
+ для <command>xmodmap</command>, по одному на строку, и добавить
+ в <filename>~/.xinitrc</filename> такую строку:</para>
+
+ <programlisting>xmodmap $HOME/.xmodmaprc</programlisting>
+
+ <para>Например, вы можете переопределить эти 3 клавиши так, чтобы они
+ выполняли функции клавиш <keycap>F13</keycap>, <keycap>F14</keycap>
+ и <keycap>F15</keycap> соответственно. Это позволит
+ легко привязать их к полезным функциям в приложениях или вашем
+ менеджере окон, как будет показано далее.</para>
+
+ <para>Чтобы сделать это, поместите в файл
+ <filename>~/.xmodmaprc</filename> вот такие строки:</para>
+
+ <programlisting>keycode 115 = F13
+keycode 116 = F14
+keycode 117 = F15</programlisting>
+
+ <para>Если, к примеру, вы используете порт
+ <filename role="package">x11-wm/fvwm2</filename>, то
+ можете переопределить клавиши таким образом, что
+ <keycap>F13</keycap> сворачивает в иконку (или восстанавливает
+ предыдущие размеры) окна, на которое указывает курсор,
+ <keycap>F14</keycap> перемещает окно с курсором на передний план
+ или, если оно уже впереди, возвращает обратно, а
+ <keycap>F15</keycap> вызывает главное меню приложения
+ Workplace, даже если курсор находится не на рабочем
+ столе, что бывает полезно, если нет
+ ни одного видимого кусочка рабочего стола (к тому же логотип на
+ клавише соответствует этой функции).</para>
+
+ <para>Вот строки из <filename>~/.fvwmrc</filename>, с помощью которых
+ достигаются описанные выше функции:</para>
+
+ <programlisting>Key F13 FTIWS A Iconify
+Key F14 FTIWS A RaiseLower
+Key F15 A A Menu Workplace Nop</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="x-3d-acceleration">
+ <para>Как заставить работать аппаратное ускорение 3D-графики для
+ &opengl;?</para>
+ </question>
+
+ <answer>
+ <para>Наличие 3D-ускорения зависит от версии используемого вами
+ сервера &xorg; и типа графического адаптера. Если у
+ вас адаптер nVidia, то вы можете использовать бинарные файлы
+ драйверов для &os;, установив один из следующих портов:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Последние версии адаптеров nVidia поддерживаются
+ портом <filename
+ role="package">x11/nvidia-driver</filename>.</para>
+ </listitem>
+ <listitem>
+ <para>Адаптеры nVidia, такие как GeForce2&nbsp;MX/3/4,
+ поддерживаются драйверами серии 96XX, доступными в
+ порте <filename
+ role="package">x11/nvidia-driver-96xx</filename>.</para>
+ </listitem>
+ <listitem>
+ <para>Более старые адаптеры, такие как GeForce and
+ RIVA&nbsp;TNT, поддерживаются драйверами серии 71XX,
+ доступными в порте <filename
+ role="package">x11/nvidia-driver-71xx</filename>.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>nVidia предоставляет подробную информацию о том, какие
+ адаптеры поддерживаются тем или иным драйвером. Эта
+ информация доступна непосредственно с их сайта: <ulink
+ url="http://www.nvidia.com/object/IO_32667.html"></ulink>.</para>
+
+ <para>Для адаптеров Matrox&nbsp;G200/G400 вам следует
+ попробовать порт <filename
+ role="package">x11-servers/mga_hal</filename>.</para>
+
+ <para>Для ATI&nbsp;Rage&nbsp;128 и Radeon посмотрите страницы
+ Справочника &man.ati.4x;, &man.r128.4x; и &man.radeon.4x;.</para>
+
+ <para>Для адаптеров 3dfx Voodoo&nbsp;3, 4, 5, и Banshee есть
+ порт <filename
+ role="package">x11-servers/driglide</filename>.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="networking">
+ <title>Работа в сети</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="diskless-booting">
+ <para>Где можно найти информацию о <quote>бездисковой
+ загрузке</quote>?</para>
+ </question>
+
+ <answer>
+ <para><quote>Бездисковая загрузка</quote> означает, что машина
+ с &os; загружается по сети и читает необходимые файлы с
+ сервера, а не со своего диска. Подробное описание есть в
+ <ulink url="&url.books.handbook;/network-diskless.html">
+ соответствующей главе</ulink> Руководства.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="router">
+ <para>Может ли машина с &os; использоваться как
+ маршрутизатор?</para>
+ </question>
+
+ <answer>
+ <para>Да. Пожалуйста, обратитесь к разделу Руководства,
+ посвящённому <ulink
+ url="&url.books.handbook;/advanced-networking.html">сложным
+ вопросам работы в сети</ulink>, особенно в той части, что
+ касается <ulink
+ url="&url.books.handbook;/network-routing.html">маршрутизации
+ и маршрутизаторов</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="win95-connection">
+ <para>Можно ли подключить машину с &windows; к Internet с помощью
+ &os;?</para>
+ </question>
+
+ <answer>
+ <para>Как правило, те, кто задают такие вопросы, имеют дома
+ два компьютера, один с &os;, а другой с какой-то версией
+ &windows;. Идея состоит в использовании &os; для
+ подключения к Internet, а затем осуществлять выход в Internet
+ из &windows; через &os;. На самом деле это просто частный
+ случай предыдущего вопроса, который хорошо отработан.</para>
+
+ <para>Если для подключения к Internet вы используете
+ коммутируемое соединение, то &man.ppp.8; режима
+ пользователя имеет параметр <option>-nat</option>. Если вы
+ запустите &man.ppp.8; с параметром <option>-nat</option>,
+ установив в файле <filename>/etc/rc.conf</filename> переменную
+ <literal>gateway_enable</literal> в значение
+ <emphasis>YES</emphasis> и правильно настроите машину с
+ &windows;, то всё должно прекрасно заработать. Для получения
+ дополнительной информации, пожалуйста, обратитесь к страницам
+ справочной системы по команде &man.ppp.8; или <ulink
+ url="&url.books.handbook;/userppp.html">
+ разделу Руководства о PPP режима пользователя</ulink>.</para>
+
+ <para>Если вы используете PPP режима ядра, или у вас
+ Ethernet-подключение к Internet, то нужно использовать
+ &man.natd.8;. Пожалуйста, обратитесь к разделу о <ulink
+ url="&url.books.handbook;/network-natd.html">natd</ulink>
+ Руководства для получения вводной информации.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="slip-ppp-support">
+ <para>Поддерживает ли &os; протоколы SLIP и PPP?</para>
+ </question>
+
+ <answer>
+ <para>Да. Обратитесь к страницам справочника по командам
+ &man.slattach.8;, &man.sliplogin.8;, &man.ppp.8;, и &man.pppd.8;.
+ &man.ppp.8; и &man.pppd.8; могут обслуживать как входящие, так и
+ исходящие соединения, когда как &man.sliplogin.8; имеет дело
+ исключительно со входящими соединениям, а &man.slattach.8; только
+ с исходящими.</para>
+
+ <para>Более подробная информация об их использовании находится в
+ <ulink url="&url.books.handbook;/ppp-and-slip.html">разделе
+ Руководства о протоколах PPP и SLIP</ulink>.</para>
+
+ <para>Если вы имеете доступ в Internet только через командную строку
+ оболочки, вам может подойти пакадж <filename
+ role="package">net/slirp</filename>.
+ С его помощью можно получить (ограниченный) доступ к таким
+ службам, как FTP и http прямо с вашей машины.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="natd">
+ <para>Поддерживает ли &os; технологию NAT или Masquerading?</para>
+ </question>
+
+ <answer>
+ <para>Да. Если вы собираетесь использовать NAT с пользовательским
+ соединением PPP, пожалуйста, обратитесь к <ulink
+ url="&url.books.handbook;/userppp.html">разделу Руководства о
+ пользовательском PPP</ulink>. Если же вы хотите использовать NAT
+ вместе с другим типом сетевого подключения, пожалуйста, взгляните
+ на раздел о <ulink url="&url.books.handbook;/network-natd.html">
+ natd</ulink> Руководства.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="parallel-connect">
+ <para>Как я могу соединить две &os; системы с помощью
+ параллельного соединения, используя PLIP?</para>
+ </question>
+
+ <answer>
+ <para>Пожалуйста, обратитесь к разделу Руководства о <ulink
+ url="&url.books.handbook;/network-plip.html">PLIP</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ethernet-aliases">
+ <para>Как настроить алиас в сети Ethernet?</para>
+ </question>
+
+ <answer>
+ <para>Если алиас находится в той же самой сети, что и уже
+ настроенный на интерфейсе адрес, то к команде для
+ &man.ifconfig.8; допишите <literal>netmask 0xffffffff</literal>
+ примерно следующим образом:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig <replaceable>ed0</replaceable> alias <replaceable>192.0.2.2</replaceable> netmask 0xffffffff</userinput></screen>
+
+ <para>В противном случае просто задайте сетевой адрес и маску
+ обычным образом:</para>
+
+ <screen>&prompt.root; <userinput>ifconfig <replaceable>ed0</replaceable> alias <replaceable>172.16.141.5</replaceable> netmask 0xffffff00</userinput></screen>
+
+ <para>Для получения подробной информации обращайтесь к <ulink
+ url="&url.books.handbook;/configtuning-virtual-hosts.html">Руководству</ulink>
+ &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="port-3c503">
+ <para>Как заставить адаптер 3C503 использовать другой тип сетевого
+ разъёма?</para>
+ </question>
+
+ <answer>
+ <para>Если вы хотите задействовать другой разъём, то должны указать
+ дополнительный параметр при вызове команды &man.ifconfig.8;.
+ Разъёмом по умолчанию является <literal>link0</literal>. Чтобы
+ задействовать разъём AUI, а не BNC, используйте <literal>link2</literal>.
+ Эти флаги должны быть указаны с помощью переменных ifconfig_*
+ в файле <filename>/etc/rc.conf</filename> (посмотрите справку по
+ &man.rc.conf.5;).</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="nfs">
+ <para>У меня проблемы при работе NFS во &os;.</para>
+ </question>
+
+ <answer>
+ <para>Некоторые сетевые адаптеры работают (мягко говоря) хуже, чем
+ другие, что может иногда вызывать проблемы при работе приложений
+ типа NFS, интенсивно использующих сеть.</para>
+
+ <para>Подробности описаны в <ulink
+ url="&url.books.handbook;/network-nfs.html">
+ соответствующей главе</ulink> Руководства, посвящённой NFS.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="nfs-linux">
+ <para>Почему я не могу смонтировать диск &linux; по NFS?</para>
+ </question>
+
+ <answer>
+ <para>Некоторые версии NFS для &linux; поддерживают запросы на
+ монтирование только с привилегированного порта; попробуйте
+ выполнить следующую команду:</para>
+
+ <screen>&prompt.root; <userinput>mount -o -P <replaceable>linuxbox:/blah</replaceable> <replaceable>/mnt</replaceable></userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="nfs-sun">
+ <para>Почему я не могу смонтировать диск &sun; по NFS?</para>
+ </question>
+
+ <answer>
+ <para>Рабочие станции &sun; под управлением
+ &sunos;&nbsp;4.<replaceable>X</replaceable> поддерживают
+ запросы на монтирование только с привилегированного порта;
+ попробуйте следующую команду:</para>
+
+ <screen>&prompt.root; <userinput>mount -o -P <replaceable>sunbox:/blah</replaceable> <replaceable>/mnt</replaceable></userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="exports-errors">
+ <para>Почему <command>mountd</command> продолжает выдавать сообщения
+ <errorname>can't change attributes</errorname> и <errorname>bad
+ exports list</errorname> на моём сервере NFS, работающем под
+ управлением &os;?</para>
+ </question>
+
+ <answer>
+ <para>В большинстве случаев проблема заключается в недостаточном
+ понимании корректного формата файла
+ <filename>/etc/exports</filename>. Пожалуйста, просмотрите ещё раз
+ справочную информацию по &man.exports.5; и раздел об <ulink
+ url="&url.books.handbook;/network-nfs.html">NFS</ulink> в Руководстве,
+ особенно в части <ulink
+ url="&url.books.handbook;/network-nfs.html#CONFIGURING-NFS">настройки
+ NFS</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-nextstep">
+ <para>Проблемы при связи по PPP с машинами NeXTStep.</para>
+ </question>
+
+ <answer>
+ <para>Попробуйте отменить все расширения TCP в файле
+ <filename>/etc/rc.conf</filename> (посмотрите справку
+ по &man.rc.conf.5;), изменив значение следующей переменной
+ в <literal>NO</literal>:</para>
+
+ <programlisting>tcp_extensions=NO</programlisting>
+
+ <para>Маршрутизаторы Annex фирмы Xylogic не работают по этой же
+ причине, поэтому при подключении к ним вам нужно проделать то же
+ самое.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ip-multicast">
+ <para>Как включить поддержку multicast IP?</para>
+ </question>
+
+ <answer>
+ <para>По умолчанию &os; поддерживает работу с многоадресного
+ сетевого вещания. Если вы хотите использовать ваш компьютер как
+ маршрутизатор многоадресного трафика, вам нужно перекомпилировать
+ ядро с включенной опцией <literal>MROUTING</literal> и запустить
+ &man.mrouted.8;. Во &os; во время загрузки будет запускаться
+ &man.mrouted.8;, если переменная <literal>mrouted_enable</literal>
+ в файле <filename>/etc/rc.conf</filename> установлена в
+ значение <literal>YES</literal>.</para>
+
+ <note>
+ <para>В последних версиях &os; даемон маршрутизации multicast
+ &man.mrouted.8; и утилиты &man.map-mbone.8; и &man.mrinfo.8;
+ удалены из состава основной системы. Эти программы теперь
+ доступны из Коллекции Портов &os; в виде порта <filename
+ role="package">net/mrouted</filename>.</para>
+ </note>
+
+ <para>Приложения MBONE находятся в собственной категории портов,
+ <ulink url="http://www.FreeBSD.org/ports/mbone.html">mbone</ulink>.
+ Если вы ищете приложения для организации конференций
+ <command>vic</command> и <command>vat</command>, посмотрите
+ там!</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="dec-pci-chipset">
+ <para>Какие сетевые адаптеры сделаны на наборе микросхем DEC PCI?</para>
+ </question>
+
+ <answer>
+ <para>Вот список, составленный
+ Гленом Фостером (Glen Foster) <email>gfoster@driver.nsta.org</email>,
+ с некоторыми незначительными добавлениями:</para>
+
+ <table>
+ <title>Сетевые карты созданные на основе наборе микросхем
+ DEC PCI</title>
+
+ <tgroup cols="2">
+ <thead>
+ <row>
+ <entry>Производитель</entry>
+ <entry>Модель</entry>
+ </row>
+ </thead>
+
+ <tbody>
+ <row>
+ <entry>ASUS</entry>
+ <entry>PCI-L101-TB</entry>
+ </row>
+
+ <row>
+ <entry>Accton</entry>
+ <entry>ENI1203</entry>
+ </row>
+
+ <row>
+ <entry>Cogent</entry>
+ <entry>EM960PCI</entry>
+ </row>
+
+ <row>
+ <entry>Compex</entry>
+ <entry>ENET32-PCI</entry>
+ </row>
+
+ <row>
+ <entry>D-Link</entry>
+ <entry>DE-530</entry>
+ </row>
+
+ <row>
+ <entry>Dayna</entry>
+ <entry>DP1203, DP2100</entry>
+ </row>
+
+ <row>
+ <entry>DEC</entry>
+ <entry>DE435, DE450</entry>
+ </row>
+
+ <row>
+ <entry>Danpex</entry>
+ <entry>EN-9400P3</entry>
+ </row>
+
+ <row>
+ <entry>JCIS</entry>
+ <entry>Condor JC1260</entry>
+ </row>
+
+ <row>
+ <entry>Linksys</entry>
+ <entry>EtherPCI</entry>
+ </row>
+
+ <row>
+ <entry>Mylex</entry>
+ <entry>LNP101</entry>
+ </row>
+
+ <row>
+ <entry>SMC</entry>
+ <entry>EtherPower 10/100 (Модель 9332)</entry>
+ </row>
+
+ <row>
+ <entry>SMC</entry>
+ <entry>EtherPower (Модель 8432)</entry>
+ </row>
+
+ <row>
+ <entry>TopWare</entry>
+ <entry>TE-3500P</entry>
+ </row>
+
+ <row>
+ <entry>Znyx (2.2.x)</entry>
+ <entry>ZX312, ZX314, ZX342, ZX345, ZX346, ZX348</entry>
+ </row>
+
+ <row>
+ <entry>Znyx (3.x)</entry>
+ <entry>ZX345Q, ZX346Q, ZX348Q, ZX412Q, ZX414, ZX442, ZX444,
+ ZX474, ZX478, ZX212, ZX214 (10mbps/hd)</entry>
+ </row>
+ </tbody>
+ </tgroup>
+ </table>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="fqdn-hosts">
+ <para>Почему я должен использовать FQDN для хостов не в моей
+ сети?</para>
+ </question>
+
+ <answer>
+ <para>За ответом на этот вопрос обращайтесь к <ulink
+ url="&url.books.handbook;/mail-trouble.html">Руководству</ulink>
+ &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="network-permission-denied">
+ <para><errorname>Permission denied</errorname> для любых действий,
+ связанных с работой сети.</para>
+ </question>
+
+ <answer>
+ <para>Если вы компилировали ядро с опцией
+ <literal>IPFIREWALL</literal>, имейте в виду, что политикой по
+ умолчанию является запрет прохождения
+ всех пакетов, которые явно не разрешены.</para>
+
+ <para>Если вы случайно неверно отконфигурировали межсетевой экран,
+ то для восстановления работоспособность сети дайте такую команду,
+ войдя суперпользователем:</para>
+
+ <screen>&prompt.root; <userinput>ipfw add 65534 allow all from any to any</userinput></screen>
+
+ <para>Также вы можете задать
+ <literal>firewall_type='open'</literal> в
+ файле <filename>/etc/rc.conf</filename>.</para>
+
+ <para>Более подробная информация о конфигурировании межсетевого
+ экрана в &os; находится в <ulink
+ url="&url.books.handbook;/firewalls.html">соответствующей
+ главе</ulink> Руководства.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ipfw-fwd">
+ <para>Почему моё правило <quote>fwd</quote> для
+ <command>ipfw</command> по перенаправлению сервиса на другую
+ машину не работает?</para>
+ </question>
+
+ <answer>
+ <para>Возможно, потому что вы хотите выполнять трансляцию сетевых
+ адресов (NAT), а не просто перенаправлять пакеты. Правило
+ <quote>fwd</quote> делает точно то, что означает; оно
+ перенаправляет пакеты. Данные внутри пакета оно не меняет. Пусть,
+ скажем, у нас имеется правило такого вида:</para>
+
+ <screen>01000 fwd <replaceable>10.0.0.1</replaceable> from any to <replaceable>foo 21</replaceable></screen>
+
+ <para>Когда пакет с адресом назначения <replaceable>foo</replaceable>
+ достигает машины с этим правилом, то он перенаправляется на
+ <replaceable>10.0.0.1</replaceable>, но в нём остаётся адрес
+ назначения <replaceable>foo</replaceable>! Адрес назначения
+ пакета <emphasis>не</emphasis> меняется на
+ <replaceable>10.0.0.1</replaceable>. Большинство машин, скорее
+ всего, отбросят полученный пакет, имеющий адрес назначения, им не
+ соответствующий. Таким образом, правило <quote>fwd</quote> не
+ часто работает так, как ожидает пользователь. Такое поведение
+ является особенностью, а не ошибкой.</para>
+
+ <para>Обратитесь к <link linkend="service-redirect">FAQ о
+ перенаправлении сервисов</link>, руководству по &man.natd.8; или
+ одной из нескольких утилит для перенаправления из <ulink
+ url="&url.base;/ports/index.html">Коллекции Портов</ulink> для
+ того, чтобы сделать это правильно.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="service-redirect">
+ <para>Как можно перенаправить запросы с одной машины на другую?</para>
+ </question>
+
+ <answer>
+ <para>Вы можете перенаправить запрос на FTP (или другой сервис) с
+ помощью порта <filename role="package">sysutils/socket</filename>.
+ Просто замените командную строку запуска сервиса на вызов
+ <command>socket</command>:</para>
+
+ <programlisting>ftp stream tcp nowait nobody /usr/local/bin/socket socket <replaceable>ftp.example.com</replaceable> <replaceable>ftp</replaceable></programlisting>
+
+ <para>где <replaceable>ftp.example.com</replaceable> и
+ <replaceable>ftp</replaceable> являются соответственно хостом и
+ портом для перенаправления.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="bandwidth-mgr-tool">
+ <para>Где можно найти средства управления сетевым трафиком?</para>
+ </question>
+
+ <answer>
+ <para>Для &os; имеются три средства управления трафиком.
+ &man.dummynet.4; интегрирован в систему &os; как составная
+ часть &man.ipfw.4;. <ulink
+ url="http://www.sonycsl.co.jp/person/kjc/programs.html">
+ ALTQ</ulink> включен во &os; как составная часть &man.pf.4;.
+ Bandwidth Manager компании <ulink
+ url="http://www.etinc.com/">Emerging Technologies</ulink>
+ является коммерческим продуктом.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="bpf-not-configured">
+ <para>Почему появляются сообщения
+ <errorname>/dev/bpf0: device not configured</errorname>?</para>
+ </question>
+
+ <answer>
+ <para>Вы запускаете программу, которой требуется Berkeley Packet
+ Filter (&man.bpf.4;), однако его нет в вашем ядре.
+ Перекомпилируйте ядро, добавив в его конфигурационный файл
+ следующую строку:</para>
+
+ <programlisting>device bpf # Berkeley Packet Filter</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="mount-smb-share">
+ <para>Как смонтировать диск &windows;-машины в моей локальной сети,
+ как это делает smbmount в &linux;?</para>
+ </question>
+
+ <answer>
+ <para>Используйте пакет <application>SMBFS</application>. В него
+ включён набор изменений в ядре и пользовательские программы.
+ Программы и информация доступны как &man.mount.smbfs.8; и
+ входят в состав базовой системы.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="icmp-response-bw-limit">
+ <para>Что значат эти сообщения: <errorname>Limiting icmp/open
+ port/closed port response</errorname> в моих журнальных
+ файлах?</para>
+ </question>
+
+ <answer>
+ <para>Это ядро сообщает вам, что имела место некоторая активность,
+ приводящая к посылке большего количества ответных пакетов ICMP или
+ сбросов TCP (RST), чем, как предполагается, это следует делать.
+ Ответы ICMP часто генерируются в результате попыток подключения к
+ незанятым портам UDP. Сбросы TCP генерируются в результате попыток
+ подключения к закрытым портам TCP. Кроме всяких прочих, такие
+ сообщения могут быть вызваны следующими действиями:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Лобовая атака типа отказ в обслуживании DoS (в отличие от
+ атак в один пакет, которые используют конкретную брешь в
+ защите).</para>
+ </listitem>
+
+ <listitem>
+ <para>Сканирование портов в попытке осуществить подключение к
+ большому количеству портов (в отличие от проб нескольких
+ известных портов).</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Первое число в сообщении указывает вам, какое количество пакетов
+ ядро посылало бы при отсутствии ограничений, а второе число
+ указывает лимит. Вы можете управлять этим ограничением при помощи
+ системной переменной <varname>net.inet.icmp.icmplim</varname>
+ приводимым ниже способом, где <literal>300</literal> является
+ ограничением на количество посылаемых пакетов в секунду:</para>
+
+ <screen>&prompt.root; <userinput>sysctl -w net.inet.icmp.icmplim=300</userinput></screen>
+
+ <para>Если вы не хотите видеть подобные сообщения в журнальных
+ файлах, но хотите использовать это ограничение в ядре, то можете
+ использовать системную переменную
+ <varname>net.inet.icmp.icmplim_output</varname> для подавления
+ вывода, как это показано здесь:</para>
+
+ <screen>&prompt.root; <userinput>sysctl -w net.inet.icmp.icmplim_output=0</userinput></screen>
+
+ <para>И наконец, если вы хотите выключить это ограничение, то можете
+ установить значение системной переменной
+ <varname>net.inet.icmp.icmplim</varname> (смотрите пример выше)
+ равным <literal>0</literal>. Выключение этого лимита не
+ приветствуется по причинам, перечисленным выше.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="unknown-hw-addr-format">
+ <para>Что это за сообщения <errorname>arp: unknown hardware
+ address format</errorname>?</para>
+ </question>
+
+ <answer>
+ <para>Это означает, что какое-то устройство в вашей локальной сети
+ использует MAC-адрес в формате, не распознаваемом &os;. Скорее
+ всего, это происходит из-за того, что кто-то в сети
+ экспериментирует с сетевым адаптером. Чаще всего это происходит
+ в сетях с кабельными модемами. Это безобидно и не должно влиять на
+ производительность машины с &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="arp-wrong-iface">
+ <para>Почему я постоянно вижу сообщения вида
+ <errorname>192.168.0.10 is on fxp1 but got reply from
+ 00:15:17:67:cf:82 on rl0</errorname> и как мне их
+ отключить?</para>
+ </question>
+
+ <answer>
+ <para>Это так, потому что пакет приходит извне сети, чего
+ не должно быть. Чтобы отключить эти сообщения, установите
+ <varname>net.link.ether.inet.log_arp_wrong_iface</varname>
+ в значение <literal>0</literal>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="cvsup-missing-libs">
+ <para>Я только что установил <application>CVSup</application>,
+ но при попытке его запустить
+ получил сообщения об ошибках. Что не так?</para>
+ </question>
+
+ <answer>
+ <para>Сначала посмотрите, есть ли среди получаемых вами сообщений
+ то, что показано ниже.</para>
+
+ <programlisting>/usr/libexec/ld-elf.so.1: Shared object "libXaw.so.6" not found</programlisting>
+
+ <para>Ошибки, подобные этой, возникают при установке порта
+ <filename role="package">net/cvsup</filename> на машину без
+ пакета <application>&xorg;</application>. Если вы хотите
+ использовать <acronym>GUI</acronym>, имеющийся в
+ <application>CVSup</application>, то вам нужно теперь установить
+ <application>&xorg;</application>. Либо, если вы хотите
+ использовать <application>CVSup</application> только из командной
+ строки, то вы должны удалить ранее установленный пакадж. Затем
+ установите порт <filename
+ role="package">net/cvsup-without-gui</filename> или <filename
+ role="package">net/csup</filename>. Если у вас установлена одна
+ из последних версий &os;, то вы можете использовать &man.csup.1;.
+ Более подробно это описано в <ulink
+ url="&url.books.handbook;/cvsup.html">разделе о CVSup</ulink>
+ Руководства.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="security">
+ <title>Безопасность</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="sandbox">
+ <para>Что означает термин sandbox (песочница)?</para>
+ </question>
+
+ <answer>
+ <para><quote>Sandbox</quote> - это термин, используемый при
+ обеспечении безопасности. Он имеет два значения:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Процесс, помещённый внутрь некоторых виртуальных стен,
+ которые предназначены для того, чтобы предотвратить взлом всей
+ системы в результате взлома этого конкретного процесса.</para>
+
+ <para>Говорится, что процесс может <quote>играть</quote> в
+ границах этих стен. Что бы этот процесс ни делал, он эти стены
+ разрушить не может, поэтому вам не нужен его особый аудит,
+ чтобы с уверенностью сказать, насколько его работа безопасна
+ для системы.</para>
+
+ <para>Стеной может служить, например, идентификатор пользователя.
+ Вот определение, даваемое на страницах справочной системы
+ &man.security.7; и &man.named.8;.</para>
+
+ <para>Рассмотрим, например, службу <literal>ntalk</literal>
+ (смотрите &man.inetd.8;). Раньше эта
+ служба запускалась с идентификатором пользователя
+ <username>root</username>, а сейчас &mdash; <username>tty</username>.
+ Пользователь <username>tty</username> &mdash; это та песочница,
+ которая осложняет взлом системы через <literal>ntalk</literal>
+ посредством использования этого идентификатора
+ пользователя.</para>
+ </listitem>
+
+ <listitem>
+ <para>Процесс, помещённый внутрь симулируемой машины. Это даёт
+ больший уровень безопасности. В общем это означает, что
+ некто, взломавший процесс, может думать, что может сломать и
+ систему в целом, однако фактически может сломать только
+ симулятор этой машины и не может модифицировать никаких
+ реальных данных.</para>
+
+ <para>Самым распространённым способом достигнуть такого
+ результата является построение имитирующего окружения в
+ каталоге и затем запуск процессов в этом каталоге через
+ chroot (т.е. задав этот каталог в качестве
+ <filename class="directory">/</filename> для этого процесса,
+ а не реальный <filename class="directory">/</filename> всей
+ системы).</para>
+
+ <para>Другим часто используемым методом является монтирование
+ низлежащей файловой системы в режиме "только для чтения" и
+ затем создание уровня файловой системы поверх неё, что даёт
+ процессу видимость доступа по записи на ту файловую систему.
+ Процесс будет полагать, что может записывать в те файлы, но
+ это будет единственный процесс, который увидит результат
+ &mdash; другие процессы не будут этого делать ни в коем
+ случае.</para>
+
+ <para>Попытка сделать такой тип песочницы настолько прозрачна, что
+ пользователь (или взломщик) даже не поймёт, что он в ней
+ находится.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>В &unix; реализованы два типа <quote>песочниц</quote>. Один на
+ уровне процесса, и один на уровне идентификаторов
+ пользователей.</para>
+
+ <para>Каждый процесс в &unix; полностью защищён от других процессов.
+ Никакой процесс не может модифицировать адресное пространство
+ другого процесса. Это отличается от &windows;, где процесс может
+ легко записать что-либо в адресное пространство другого процесса,
+ что приводит к аварийным ситуациям.</para>
+
+ <para>В &unix; каждым процессом владеет некоторый идентификатор
+ пользователя. Если этот пользователь не
+ <username>root</username>, он ограждает процесс от других,
+ владельцами которых являются другие пользователи. Этот
+ идентификатор используется также для защиты данных на диске.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="securelevel">
+ <para>Что такое уровень защиты (securelevel)?</para>
+ </question>
+
+ <answer>
+ <para>Уровень защиты является механизмом обеспечения безопасности,
+ реализованным в ядре. В общем, когда уровень защиты больше нуля,
+ ядро ограничивает выполнение некоторых операций; даже
+ администратору (то есть пользователю <username>root</username>)
+ запрещается их выполнять. На момент написания этого текста
+ механизм уровня защиты может, кроме всего прочего, ограничивать
+ возможности по:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>снятию некоторых флагов с файлов, таких, как
+ <literal>schg</literal> (системный флаг неизменяемости),</para>
+ </listitem>
+
+ <listitem>
+ <para>записи в память ядра через устройства
+ <devicename>/dev/mem</devicename> и
+ <devicename>/dev/kmem</devicename>,</para>
+ </listitem>
+
+ <listitem>
+ <para>загрузке модулей ядра и</para>
+ </listitem>
+
+ <listitem>
+ <para>изменению правил сетевого экрана.</para>
+ </listitem>
+ </itemizedlist>
+
+ <para>Для выяснения состояния уровня защиты в работающей системе
+ просто выполните следующую команду:</para>
+
+ <screen>&prompt.root; <userinput>sysctl kern.securelevel</userinput></screen>
+
+ <para>Результат будет содержать название &man.sysctl.8;-переменной (в
+ нашем случае это <varname>kern.securelevel</varname>) и число.
+ Последнее и является текущим значением уровня защиты. Если оно
+ положительно (то есть больше нуля), то по крайней мере некоторые
+ из защит этого механизма включены.</para>
+
+ <para>Вы не можете понизить уровень защиты работающей системы;
+ возможность сделать это противоречит назначению этого механизма.
+ Если вам нужно выполнить работу, которая требует не положительный
+ уровень защиты (к примеру, выполнение
+ <maketarget>installworld</maketarget> или смена даты),
+ вам потребуется изменить настройки уровня защиты системы в файле
+ <filename>/etc/rc.conf</filename> (вам нужно обратить внимание на
+ переменные <varname>kern_securelevel</varname> и
+ <varname>kern_securelevel_enable</varname>) и перезагрузить
+ систему.</para>
+
+ <para>Более подробная информация об уровнях защиты и о том, какие
+ специфические действия выполняют все уровни, может быть найдена на
+ справочных страницах о &man.init.8;.</para>
+
+ <warning>
+ <para>Уровень защиты не является панацеей; в нём есть много
+ недостатков. Зачастую он даёт обманчивое чувство
+ безопасности.</para>
+
+ <para>Одной из самых больших проблем является то, что для его
+ эффективной работы все файлы, используемые в процессе загрузки,
+ должны быть защищены. Если атакующий сможет заставить систему
+ выполнять свой код до установки уровня защиты (что происходит
+ достаточно поздно во время процесса загрузки, так как некоторые
+ вещи, выполняемые системой в это время, не могут быть сделаны при
+ повышенном уровне защиты), то эта защита может быть отключена.
+ Хотя такая задача по защите всех файлов, используемых в процессе
+ загрузки, технически вполне осуществима, если это будет сделано,
+ то поддержка системы станет кошмаром, так как для изменения
+ конфигурационного файла придётся останавливать систему,
+ переводя её по крайней мере в однопользовательский режим.</para>
+
+ <para>Это обстоятельство, а также ряд других, часто обсуждаются в
+ списках рассылки, в частности, во &a.security;. Пожалуйста,
+ поищите в <ulink url="&url.base;/search/index.html">
+ архивах</ulink> более подробное обсуждение. Некоторые надеются,
+ что механизм уровней защиты вскоре отомрёт, а на его смену придёт
+ более гибкий механизм, но пока всё это туманно.</para>
+
+ <para>Считайте себя предупреждёнными.</para>
+ </warning>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="extra-named-port">
+ <para>BIND (<command>named</command>) работает на
+ одном из портов с большим номером. Что происходит?</para>
+ </question>
+
+ <answer>
+ <para>Для исходящих запросов BIND использует случайно
+ выбираемый порт с большим номером. В последних версиях
+ при каждом запросе выбирается новый случайный порт UDP.
+ Это может вызвать проблемы в некоторых сетевых конфигурациях,
+ особенно если фаервол блокирует входящие UDP пакеты на
+ определенных портах. Если вы хотите обеспечить хождение
+ пакетов через фаервол, то вы можете попробовать параметры
+ <literal>avoid-v4-udp-ports</literal> и
+ <literal>avoid-v6-udp-ports</literal>, чтобы предотвратить
+ случайный выбор номеров портов, пересекающихся с блокируемым
+ диапазоном.</para>
+
+ <warning>
+ <para>Если в <filename>/etc/namedb/named.conf</filename>
+ указан номер порта (такой как 53) в параметре
+ <literal>query-source</literal> или
+ <literal>query-source-v6</literal>, то случайный
+ выбор порта использоваться не будет. Настоятельно
+ рекомендуется, чтобы эти параметры не использовались для
+ указания фиксированных номеров порта.</para>
+ </warning>
+
+ <para>Кстати, поздравляем. Прекрасно, что вы читаете вывод команды
+ &man.sockstat.1; и обращаете внимание на аномалии!</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="sendmail-port-587">
+ <para>Даемон <application>sendmail</application> ждёт соединений как
+ на стандартном порту 25, так и на
+ порту 587! Что происходит?</para>
+ </question>
+
+ <answer>
+ <para>Последние версии <application>sendmail</application>
+ поддерживают
+ механизм посылки почты, который работает по порту 587. Эта
+ возможность пока широко не используется, но ее популярность
+ растет.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="toor-account">
+ <para>Что это за пользователь <username>toor</username> с UID 0? Я
+ подвергся взлому?</para>
+ </question>
+
+ <answer>
+ <para>Не волнуйтесь, <username>toor</username> является
+ <quote>альтернативным</quote> административным пользователем
+ (toor - это root, записанный задом наперед). Раньше он создавался
+ при установке командного интерпретатора &man.bash.1;, однако
+ теперь он создается по умолчанию. Его предполагается использовать
+ с нестандартным командным интерпретатором, так чтобы вам не нужно
+ было менять используемый по умолчанию командный процессор для
+ пользователя <username>root</username>. Это важно, так как
+ оболочки, не являющиеся частью дистрибутива системы (например,
+ командный процессор, устанавливаемый из портов или пакаджей),
+ скорее всего, устанавливаются в каталог <filename
+ class="directory">/usr/local/bin</filename>, который по
+ умолчанию располагается в другой файловой системе. Если
+ командный процессор для пользователя <username>root</username>
+ располагается в <filename
+ class="directory">/usr/local/bin</filename>, и <filename
+ class="directory">/usr</filename> (или другая файловая система,
+ содержащая <filename class="directory">/usr/local/bin</filename>)
+ по какой-либо причине не
+ смонтирована, то <username>root</username> не сможет войти в
+ систему для исправления этой проблемы (хотя если вы перезагрузите
+ систему в однопользовательский режим, вы сможете указать командный
+ процессор).</para>
+
+ <para>Некоторые используют <username>toor</username> для выполнения
+ повседневных административных работ с нестандартным командным
+ процессором, оставляя <username>root</username> со стандартной
+ оболочкой для работы в однопользовательском режиме или выполнения
+ аварийных работ. По умолчанию вы не сможете войти в систему как
+ пользователь <username>toor</username>, потому что у него нет
+ пароля, так что, если вы хотите его использовать,
+ зарегистрируйтесь в системе как <username>root</username> и задайте
+ пароль для пользователя <username>toor</username>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="suidperl">
+ <para>Почему <command>suidperl</command> работает неправильно?</para>
+ </question>
+
+ <answer>
+ <para>В целях обеспечения безопасности <command>suidperl</command>
+ по умолчанию не устанавливается. Если вы хотите, чтобы команда
+ <command>suidperl</command> была установлена во время обновления
+ из исходных текстов, отредактируйте
+ <filename>/etc/make.conf</filename>, добавив
+ <literal><varname>ENABLE_SUIDPERL</varname>=true</literal> перед
+ сборкой <command>perl</command>.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="ppp">
+ <title>PPP</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="userppp">
+ <para>Не могу заставить работать ppp. Что я делаю не так?</para>
+ </question>
+
+ <answer>
+ <para>Первым делом прочтите страницы справочника, посвящённые
+ &man.ppp.8;, а также соответствующий <ulink
+ url="&url.books.handbook;/ppp-and-slip.html#USERPPP">раздел</ulink>
+ Руководства. Включите протоколирование следующей командой:</para>
+
+ <programlisting>set log Phase Chat Connect Carrier lcp ipcp ccp command</programlisting>
+
+ <para>Эта команда может быть набрана в командной строке
+ &man.ppp.8; или она может находиться в конфигурационном
+ файле <filename>/etc/ppp/ppp.conf</filename> (начало секции
+ <literal>default</literal> - лучшее для неё место.
+ Удостоверьтесь, что файл <filename>/etc/syslog.conf</filename>
+ (посмотрите справку по &man.syslog.conf.5;) содержит
+ указанные ниже строки и существует файл
+ <filename>/var/log/ppp.log</filename>:</para>
+
+ <programlisting>!ppp
+*.* /var/log/ppp.log</programlisting>
+
+ <para>Теперь вы сможете найти полную информацию о происходящем в
+ файле протокола. Не беспокойтесь, если не всё вам будет там
+ понятно. Если вы будете пользоваться чьей-то помощью,
+ протокол вам пригодится.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-hangs">
+ <para>Ppp просто зависает, когда я его запускаю</para>
+ </question>
+
+ <answer>
+ <para>Обычно это происходит, когда не может быть определено имя
+ вашего хоста. Наилучший способ исправить это - удостовериться,
+ что файл <filename>/etc/hosts</filename> используется вашим
+ резолвером. Отредактируйте файл
+ <filename>/etc/host.conf</filename>, поместив
+ на первое место строчку <literal>hosts</literal>. Затем просто
+ добавьте записи о вашей машине в файл
+ <filename>/etc/hosts</filename>. Если у вас нет локальной
+ сети, измените строку <hostid>localhost</hostid>:</para>
+
+ <programlisting>127.0.0.1 foo.example.com foo localhost</programlisting>
+
+ <para>В противном случае просто добавьте ещё одну запись о вашем
+ хосте. Обратитесь к соответствующим страницам справочника за
+ подробным описанием.</para>
+
+ <para>Если вы выполнили эти указания, вы сможете успешно выполнить
+ команду <command>ping -c1 `hostname`</command>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-nodial-auto">
+ <para>Ppp не звонит в режиме -auto</para>
+ </question>
+
+ <answer>
+ <para>Во-первых, проверьте, что у вас есть маршрут по умолчанию.
+ Выполнив команду <command>netstat -rn</command> (посмотрите
+ справку по &man.netstat.1;), вы должны увидеть две строки
+ такого вида:</para>
+
+ <programlisting>Destination Gateway Flags Refs Use Netif Expire
+default 10.0.0.2 UGSc 0 0 tun0
+10.0.0.2 10.0.0.1 UH 0 0 tun0</programlisting>
+
+ <para>Здесь предполагается, что вы использовали адреса,
+ приведённые в Руководстве, Справочнике или файле
+ <filename>ppp.conf.sample</filename>. Если у вас нет маршрута
+ по умолчанию, это может быть из-за того, что вы забыли добавить
+ строку <literal>HISADDR</literal> в файл ppp.conf.</para>
+
+ <para>Другая причина отсутствия маршрута по умолчанию может
+ крыться в том, что вы ошибочно установили маршрут по умолчанию
+ в вашем файле <filename>/etc/rc.conf</filename> (посмотрите
+ справку по &man.rc.conf.5;), и пропустили указанную ниже
+ строку в <filename>ppp.conf</filename>:</para>
+
+ <programlisting>delete ALL</programlisting>
+
+ <para>В таком случае обратитесь к соответствующему <ulink
+ url="&url.books.handbook;/userppp.html#USERPPP-FINAL">разделу</ulink>
+ Руководства.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="no-route-to-host">
+ <para>Что означает сообщение
+ <errorname>No route to host</errorname>?</para>
+ </question>
+
+ <answer>
+ <para>Эта ошибка появляется из-за того, что в файле
+ <filename>/etc/ppp/ppp.linkup</filename> отсутствует
+ следующий раздел:</para>
+
+ <programlisting>MYADDR:
+ delete ALL
+ add 0 0 HISADDR</programlisting>
+
+ <para>Он необходим, если ваш IP адрес выделяется динамически или
+ адрес маршрутизатора вам не известен. Если вы используете
+ интерактивный режим, вы можете набрать следующие команды
+ после входа в <literal>пакетный режим</literal> (пакетный
+ режим идентифицируется заглавными буквами <acronym>PPP</acronym>
+ в приглашении):</para>
+
+ <programlisting>delete ALL
+add 0 0 HISADDR</programlisting>
+
+ <para>Обратитесь к разделу <ulink
+ url="&url.books.handbook;/userppp.html#USERPPP-DYNAMICIP">PPP
+ и динамические IP адреса</ulink> Руководства за подробной
+ информацией.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="connection-threeminutedrop">
+ <para>Соединение разрывается через 3 минуты</para>
+ </question>
+
+ <answer>
+ <para>Таймаут для PPP по умолчанию равен 3 минутам. Это может быть
+ изменено такой строкой:</para>
+
+ <programlisting>set timeout <replaceable>NNN</replaceable></programlisting>
+
+ <para>где <replaceable>NNN</replaceable> - время неактивности в
+ секундах, после которого соединение закрывается. Если
+ <replaceable>NNN</replaceable> равно нулю, соединение никогда
+ не разрывается по таймауту. Эту команду можно поместить в файл
+ <filename>ppp.conf</filename> или набрать ее в интерактивном
+ режиме. Изменение этого параметра также возможно при активном
+ соединении, если подключиться к сокету
+ <application>ppp</application> сервера с помощью программ
+ &man.telnet.1; или &man.pppctl.8;. Обратитесь к страницам
+ Справочника, посвящённым &man.ppp.8;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-drop-heavy-load">
+ <para>Соединение разрывается при большой нагрузке</para>
+ </question>
+
+ <answer>
+ <para>Если у вас включен Link Quality Reporting (LQR), возможно,
+ что слишком много пакетов LQR теряется в канале. Программа
+ &man.ppp.8; делает вывод,
+ что канал плох, и разрывает соединение. В &os; до версии 2.2.5
+ LQR было включено по умолчанию. Сейчас оно по умолчанию выключено.
+ LQR можно выключить такой строкой:</para>
+
+ <programlisting>disable lqr</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-drop-random">
+ <para>Соединение разрывается в случайные промежутки времени</para>
+ </question>
+
+ <answer>
+ <para>Иногда, на шумной линии или даже на линии с включенным режимом
+ ожидания звонка, ваш модем может вешать трубку, думая (совершенно
+ напрасно), что потерял несущую.</para>
+
+ <para>В большинстве модемов есть параметр, определяющий
+ чувствительность к временной потере несущей. Например, в
+ модеме &usrobotics;&nbsp;&sportster это определяется значением
+ регистра <literal>S10</literal> в десятых долях секунды.
+ Чтобы сделать связь более устойчивой, добавьте следующую
+ последовательность посылок-ожиданий в строку набора:</para>
+
+ <programlisting>set dial "...... ATS10=10 OK ......"</programlisting>
+
+ <para>Обратитесь к руководству по вашему модему.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-hangs-random">
+ <para>Соединение часто рвётся в случайные промежутки времени</para>
+ </question>
+
+ <answer>
+ <para>Многие сообщают об обрывах соединений без видимой причины.
+ Первым делом нужно выяснить, с какой стороны соединения рвётся
+ связь.</para>
+
+ <para>Если вы используете внешний модем, можете просто попробовать
+ использовать утилиту &man.ping.8; и посмотреть, мигает ли
+ индикатор <acronym>TD</acronym> при передаче данных. Если он
+ мигает (а индикатор <acronym>RD</acronym> нет), проблема с той
+ стороны. Если индикатор <acronym>TD</acronym> не загорается,
+ проблема с вашей стороны. При использовании внутреннего модема
+ вам необходимо воспользоваться командой <literal>set
+ server</literal>, указав её в файле <filename>ppp.conf</filename>.
+ Когда произойдёт обрыв связи, подключитесь к &man.ppp.8; с
+ помощью &man.pppctl.8;. Если ваше сетевое подключение
+ неожиданно восстановится (PPP оживает при проявлении активности на
+ диагностическом сокете) или или если вы не сможете соединиться
+ (здесь мы полагаем, что команда <literal>set socket</literal> в
+ начальный момент была выполнена успешно), то проблема имеет
+ локальный характер. Если вы сможете подключиться, но связи всё
+ равно нет, включите вывод отладочной информации командой
+ <literal>set log local async</literal> и запустите
+ <command>ping</command> из другого окна или терминала, чтобы
+ проверить связь. В отладочном выводе будут показаны данные,
+ передаваемые и получаемые из канала связи. Если данные посылаются,
+ но не принимаются обратно, проблема с противоположной
+ стороны.</para>
+
+ <para>Выяснив, является эта проблема локальной или удалённой системы,
+ вы имеете два варианта действий:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Если проблема на удалённой машине, то прочтите <xref
+ linkend="ppp-remote-not-responding"/>.</para>
+ </listitem>
+
+ <listitem>
+ <para>Если проблема с вашей стороны, прочтите <xref
+ linkend="ppp-hung"/>.</para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-remote-not-responding">
+ <para>Удалённая система не отвечает</para>
+ </question>
+
+ <answer>
+ <para>Здесь вы мало что можете сделать. Большинство провайдеров
+ отказываются оказать помощь, если вы используете ОС не от &microsoft;.
+ Вы можете добавить команду <literal>enable lqr</literal> в ваш
+ <filename>ppp.conf</filename>, что позволит &man.ppp.8; отследить ошибки в
+ удалённой системе и закрывать соединение, однако такое обнаружение
+ достаточно медленно и поэтому
+ не так уж полезно. Вы можете также просто не сообщать своему
+ провайдеру, что запускаете user-PPP.</para>
+
+ <para>Первым делом попробуйте отключить всю местную компрессию,
+ указав в конфигурационном файле следующее:</para>
+
+ <programlisting>disable pred1 deflate deflate24 protocomp acfcomp shortseq vj
+deny pred1 deflate deflate24 protocomp acfcomp shortseq vj</programlisting>
+
+ <para>Теперь попробуйте установить соединение ещё раз и удостовериться,
+ что ситуация не изменилась. Если качество соединения улучшилось
+ или проблема оказалась полностью решённой, выясните, настройка
+ чего приводила к проблемам методом проб и ошибок. Это даст вам
+ дополнительную защиту, когда вы будете разговаривать с вашим
+ провайдером (хотя при этом может обнаружиться, что вы работаете
+ не с продуктом &microsoft;).</para>
+
+ <para>Перед тем, как звонить провайдеру, включите вывод отладочной
+ информации, как вы это делали ранее и подождите, пока соединение
+ снова не прервётся. Правда, для этого требуется некоторое
+ дисковое пространство. Интерес могут представлять последние
+ прочитанные из порта данные. Обычно это данные в формате ASCII
+ и они могут даже содержать описание проблемы (<errorname>Memory
+ fault</errorname>, <errorname>Core dumped</errorname>).</para>
+
+ <para>Если ваш провайдер согласен помочь вам, нужно будет включить
+ режим отладки с их стороны, а потом, когда связь прервётся в
+ следующий раз, они могут сказать вам, почему возникли проблемы
+ с их стороны. Будет хорошо, если вы пришлёте детальное описание
+ на адрес &a.brian;, или даже попросите провайдера связаться
+ с ним напрямую.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-hung">
+ <para>Ppp зависает</para>
+ </question>
+
+ <answer>
+ <para>Лучше всего в этом случае перекомпилировать &man.ppp.8;
+ с отладочной информацией, и затем использовать &man.gdb.1;
+ для получения стека вызовов для зависшего процесса
+ <application>ppp</application>. Чтобы откомпилировать
+ программу <application>ppp</application> с отладочной
+ информацией, наберите такие команды:</para>
+
+ <screen>&prompt.root; <userinput>cd /usr/src/usr.sbin/ppp</userinput>
+&prompt.root; <userinput>env DEBUG_FLAGS='-g' make clean</userinput>
+&prompt.root; <userinput>env DEBUG_FLAGS='-g' make install</userinput></screen>
+
+ <para>Затем следует перезапустить <application>ppp</application>
+ и дождаться следующего зависания. Когда отладочная сборка
+ &man.ppp.8; зависнет, запустите <application>gdb</application>
+ для зависшего процесса:</para>
+
+ <screen>&prompt.root; <userinput>gdb ppp `pgrep ppp`</userinput></screen>
+
+ <para>В приглашении <application>gdb</application> вы можете
+ использовать команду <command>bt</command> или
+ <command>where</command> для получения стека вызовов.
+ Сохраните вывод вашей сессии <application>gdb</application>
+ и <quote>отключитесь</quote> от работающего процесса,
+ выполнив команду <command>quit</command> в
+ <application>gdb</application>.</para>
+
+ <para>В завершение, отошлите результат сессии
+ <application>gdb</application> на адрес &a.brian;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-loginok-thennothing">
+ <para>Ничего не происходит после сообщения Login OK!</para>
+ </question>
+
+ <answer>
+ <para>До версии &os; 2.2.5, как только связь устанавливалась, &man.ppp.8;
+ ожидал начала согласования Line Control Protocol
+ (LCP) с противоположной стороны. Многие провайдеры Internet не
+ начинают согласования и предполагают, что это сделает клиент.
+ Чтобы заставить &man.ppp.8; инициировать согласование
+ параметров LCP, используйте следующую строку:</para>
+
+ <programlisting>set openmode active</programlisting>
+
+ <note>
+ <para>Ничего страшного не произойдёт, если согласование начнут обе
+ стороны, поэтому режим инициирования сейчас по умолчанию активный.
+ Однако, в следующем разделе описывается ситуация, когда это
+ <emphasis>приводит</emphasis> к некоторым неприятностям.</para>
+ </note>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-same-magic">
+ <para>В протоколе есть сообщения о том, что <quote>magic being the
+ same</quote>.</para>
+ </question>
+
+ <answer>
+ <para>Иногда, сразу же после установления соединения, вы можете
+ увидеть в журнале сообщения <errorname>Magic is the
+ same</errorname>. Иногда эти сообщения проходят безболезненно,
+ а иногда одна из сторон прекращает работу. Большинство реализаций
+ PPP не может справиться с такой ситуацией, и, даже когда связь
+ выглядит установившейся, вы будете видеть только бесконечно
+ повторяющиеся конфигурационные запросы и подтверждения в файле
+ протокола до тех пор, пока &man.ppp.8;
+ окончательно не закроет соединение.</para>
+
+ <para>Обычно это происходит на серверах с медленными дисками, на
+ которых порт обслуживает программа &man.getty.8;, а &man.ppp.8;
+ выполняется из сценария регистрации или другой программы после
+ регистрации пользователя. Были сообщения, что такое случается
+ постоянно при использовании slirp. Причина заключается в том,
+ что во время, проходящее между завершением работы &man.getty.8;
+ и запуском &man.ppp.8;, &man.ppp.8; со стороны клиента начинает
+ посылать пакеты Line Control Protocol (LCP). Так как режим эха
+ остаётся всё ещё включенным, &man.ppp.8; клиента получает
+ <quote>отражения</quote> своих запросов.</para>
+
+ <para>Частью процесса согласования параметров LCP является
+ определение <quote>магического</quote> числа для каждой стороны
+ соединения для обнаружения <quote>отражений</quote>. Согласно
+ спецификации, когда одна сторона пытается использовать
+ совпадающее "магическое" число, должен быть послан ответ NAK и
+ должно быть выбрано новое "магическое" число. В тот момент,
+ когда на порту сервера включен режим эха, клиент &man.ppp.8;
+ посылает пакеты LCP, получает то же самое "магическое" число в
+ отражённом пакете и отвечает на него NAK. Он также видит
+ отражённый NAK (который также означает, что &man.ppp.8; должен
+ изменить своё "магическое" число). В потенциале это может
+ вызвать появление огромного количества процессов смен
+ "магических" чисел, и все они накапливаются в буфере терминала.
+ Как только запустится сервер &man.ppp.8;, он будет перегружен
+ запросами на смену "магических", немедленно решит, что этого
+ много для согласования LCP и прервёт соединение. В то же самое
+ время, клиент, который больше не видит отражений, останавливается
+ для того, чтобы увидеть, что сервер закрыл соединение.</para>
+
+ <para>Этого можно избежать, позволив начинать согласование
+ противоположной стороне следующей строкой в файле
+ <filename>ppp.conf</filename>:</para>
+
+ <programlisting>set openmode passive</programlisting>
+
+ <para>Это заставит &man.ppp.8; ожидать начала согласования LCP. Некоторые
+ серверы, однако, могут никогда не начать согласование. Если это тот
+ самый случай, вы можете сделать следующее:</para>
+
+ <programlisting>set openmode active 3</programlisting>
+
+ <para>Это заставит &man.ppp.8; пассивно ждать 3 секунды, и только затем
+ посылать запросы LCP. Если противоположная сторона начнёт посылать в этот
+ момент запросы, &man.ppp.8; немедленно ответит, не ожидая истечения
+ трёхсекундного интервала.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-lcp-constant">
+ <para>Согласование LCP продолжается, пока не закроется
+ соединение</para>
+ </question>
+
+ <answer>
+ <para>В настоящий момент одной из неприятных особенностей
+ реализации &man.ppp.8; является то, что она не связывает
+ сообщения LCP, CCP &amp; IPCP с запросами. Как результат, если
+ реализация PPP с одной стороны более чем на 6 секунд медленнее,
+ чем с другой, противоположная сторона будет посылать
+ два дополнительных запроса на согласование параметров LCP.
+ Это фатально.</para>
+
+ <para>Предположим, что у нас работают две реализации, на машинах
+ <hostid>A</hostid> и <hostid>B</hostid>. <hostid>A</hostid>
+ начинает посылать запросы LCP сразу же после соединения, а
+ <hostid>B</hostid> требуется 7 секунд для запуска. Когда
+ <hostid>B</hostid> запускается, <hostid>A</hostid> послало 3
+ LCP-запроса. Полагаем, что режим эха выключен, в противном
+ случае мы столкнулись бы с проблемами "магического" числа,
+ описанными в предыдущем разделе. <hostid>B</hostid> посылает
+ REQ, затем ACK на первый REQ от <hostid>A</hostid>. Это
+ приводит к тому, что <hostid>A</hostid> входит в состояние
+ <acronym>OPENED</acronym> и посылает (первый) ACK обратно
+ <hostid>B</hostid>. В то же самое время <hostid>B</hostid>
+ посылает обратно ещё два ACK в ответ на два дополнительных REQ,
+ посланные <hostid>A</hostid> до старта <hostid>B</hostid>.
+ <hostid>B</hostid> затем получает первый ACK от <hostid>A</hostid>
+ и возвращается в состояние <acronym>REQ-SENT</acronym>, послав
+ ещё один (четвёртый) REQ согласно RFC. Затем он получает
+ третий ACK и входит в состояние <acronym>OPENED</acronym>.
+ В это же время <hostid>B</hostid> принимает
+ четвёртый REQ от <hostid>A</hostid>, что возвращает
+ его в состояние <acronym>ACK-SENT</acronym> и посылает ещё один
+ (второй) REQ и (четвёртый) ACK согласно RFC. <hostid>A</hostid>
+ получает REQ, переходит в состояние <acronym>REQ-SENT</acronym>
+ и посылает ещё один REQ. Он немедленно принимает последующий
+ ACK и входит в состояние <acronym>OPENED</acronym>.</para>
+
+ <para>Это будет продолжаться до тех пор, пока одна из сторон не
+ обнаружит, что это ни к чему не приводит и не закроет
+ соединение.</para>
+
+ <para>Лучшим способом избежать этой ситуации является конфигурация
+ одной из сторон как <literal>passive</literal>, чтобы она ждала
+ другую для начала согласования. Это можно сделать следующей
+ командой:</para>
+
+ <programlisting>set openmode passive</programlisting>
+
+ <para>С этой командой нужно быть осторожным. Вы также должны будете
+ использовать эту команду для ограничения периода ожидания, в
+ течении которого &man.ppp.8; ждёт начала согласования с
+ противоположной стороны:</para>
+
+ <programlisting>set stopped <replaceable>N</replaceable></programlisting>
+
+ <para>Как вариант, может быть использована следующая команда
+ (где <replaceable>N</replaceable> - период ожидания в секундах
+ перед тем, как начать согласование):</para>
+
+ <programlisting>set openmode active <replaceable>N</replaceable></programlisting>
+
+ <para>За дополнительной информацией обращайтесь к странице
+ Справочника.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-shell-test-lockup">
+ <para>Когда я выполняю команду shell для тестирования соединения,
+ ppp блокируется</para>
+ </question>
+
+ <answer>
+ <para>Когда вы выполняете команду <command>shell</command> или
+ <command>!</command>, &man.ppp.8; запускает оболочку (если были
+ заданы параметры, &man.ppp.8; их
+ использует). Программа <application>ppp</application> будет
+ ждать окончания выполнения команды, прежде
+ чем продолжить. Если вы попытаетесь воспользоваться связью PPP
+ после запуска команды, связь будет выглядеть заблокированной. Это
+ происходит из-за того, что &man.ppp.8; ждёт завершения
+ выполнения запущенной команды.</para>
+
+ <para>Если вам необходимо выполнять подобные команды, используйте
+ команду <command>!bg</command>. В этом случае нужная команда будет
+ выполняться в фоновом режиме, а &man.ppp.8; сможет продолжить обслуживание
+ канала связи.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-nullmodem">
+ <para>Почему программа ppp, обслуживающая нуль-модем, никогда не
+ закрывается?</para>
+ </question>
+
+ <answer>
+ <para>&man.ppp.8; не может определить, что соединение
+ было закрыто. Это происходит из-за метода использования сигнальных
+ линий нуль-модемного кабеля. При использовании такого типа
+ соединения всегда включайте LQR:</para>
+
+ <programlisting>enable lqr</programlisting>
+
+ <para>По умолчанию LQR включается, если это было затребовано с
+ противоположной стороны на этапе согласования параметров
+ соединения.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-auto-noreasondial">
+ <para>В режиме <option>-auto</option> ppp неожиданно начинает
+ звонить</para>
+ </question>
+
+ <answer>
+ <para>Если &man.ppp.8; начинает неожиданно звонить, вы
+ должны определить причину и задать фильтры dfilters для
+ предотвращения подобных звонков.</para>
+
+ <para>Для выяснения причины такого поведения, используйте
+ строку:</para>
+
+ <programlisting>set log +tcp/ip</programlisting>
+
+ <para>Это включит протоколирование всего трафика через соединение.
+ В следующий раз, когда неожиданно будет установлено соединение,
+ вы установите причину по временным отметкам в файле
+ протокола.</para>
+
+ <para>После этого вы можете запретить дозвонку при выясненных
+ условиях. Как правило, такие проблемы возникают из-за обращений
+ к DNS. Для предотвращения обращений к DNS и установления
+ соединения (что <emphasis>не</emphasis> запретит &man.ppp.8;
+ пропускать пакеты через уже
+ установленное соединение), используйте такую комбинацию:</para>
+
+ <programlisting>set dfilter 1 deny udp src eq 53
+set dfilter 2 deny udp dst eq 53
+set dfilter 3 permit 0/0 0/0</programlisting>
+
+ <para>Это может вам не подойти, так как закроет возможность дозвонки
+ по запросу &mdash; большинству программ нужно обратиться к DNS
+ до того, как начать работать.</para>
+
+ <para>В случае DNS, вы должны попытаться определить, кто пытается
+ определить имя хоста. В большинстве случаев виновным оказывается
+ &man.sendmail.8;. Удостоверьтесь, что вы указали программе
+ <application>sendmail</application>
+ не осуществлять обращений к DNS в его конфигурационном файле.
+ Обратитесь к разделу об <ulink url="&url.books.handbook;/smtp-dialup.html">
+ использовании электронной почты при коммутируемом соединении</ulink> в
+ Руководстве за подробным описанием создания конфигурационного файла и что
+ туда нужно поместить. Вам может понадобиться добавить в файл
+ <filename>.mc</filename> строку:</para>
+
+ <programlisting>define(`confDELIVERY_MODE', `d')dnl</programlisting>
+
+ <para>Это заставит <application>sendmail</application> ставить все
+ сообщения в очередь до тех пор, пока
+ не будет запущена её обработка (как правило, sendmail запускается с
+ параметрами <option>-bd -q30m</option>, указывающими, что
+ обрабатывать очередь нужно каждые 30 минут) или до тех пор, пока
+ не будет выполнена команда <command>sendmail
+ <option>-q</option></command> (может быть, из
+ файла <filename>ppp.linkup</filename>).</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ccp-errors">
+ <para>Что означают ошибки CCP</para>
+ </question>
+
+ <answer>
+ <para>В файле протокола появляются такие сообщения об ошибках:</para>
+
+ <programlisting>CCP: CcpSendConfigReq
+CCP: Received Terminate Ack (1) state = Req-Sent (6)</programlisting>
+
+ <para>Это происходит, если &man.ppp.8; пытается установить компрессию
+ типа Predictor1, а противоположная сторона не хочет устанавливать
+ никакой компрессии. Эти сообщения безобидны, но если вы хотите
+ от них избавиться, вы можете запретить компрессию Predictor1 и
+ у себя тоже:</para>
+
+ <programlisting>disable pred1</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-connectionspeed">
+ <para>Почему ppp не протоколирует скорость соединения?</para>
+ </question>
+
+ <answer>
+ <para>Для вывода протокола взаимодействия с модемом вам нужно
+ включить следующее:</para>
+
+ <programlisting>set log +connect</programlisting>
+
+ <para>Это заставит &man.ppp.8; протоколировать всё, вплоть до последней
+ прочтённой через <quote>expect</quote> строки.</para>
+
+ <para>Если вы хотите видеть скорость соединения и используете
+ PAP или CHAP (и поэтому вам не нужно определять никаких сценариев
+ входа через <literal>set login</literal> после получения строки
+ CONNECT сценарием дозвонки dial), вы должны указать &man.ppp.8;,
+ что нужно ожидать полную строку CONNECT, вроде следующего:</para>
+
+ <programlisting>set dial "ABORT BUSY ABORT NO\\sCARRIER TIMEOUT 4 \
+ \"\" ATZ OK-ATZ-OK ATDT\\T TIMEOUT 60 CONNECT \\c \\n"</programlisting>
+
+ <para>Здесь мы получили строку CONNECT, ничего не посылаем, затем ожидаем
+ символа перевода строки, заставляя &man.ppp.8; принять
+ полный ответ модема.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-ignores-backslash">
+ <para>Ppp игнорирует символ <literal>\</literal>
+ в chat-скрипте</para>
+ </question>
+
+ <answer>
+ <para>Программа <application>ppp</application> обрабатывает
+ каждую строку в ваших конфигурационных файлах,
+ так что он может проинтерпретировать строку вида
+ <literal>set phone "123 456 789"</literal> правильно и
+ обнаружить, что номер является на самом деле
+ <emphasis>единственным</emphasis> аргументом. Для того, чтобы
+ указать символ <literal>&quot;</literal>, вы должны экранировать
+ его символом обратного слэша (<literal>\</literal>).</para>
+
+ <para>Когда интерпретатор chat обрабатывает каждую строку, он ещё
+ раз просматривает аргумент для того, чтобы найти какую-либо
+ специальную последовательность типа <literal>\P</literal> или
+ <literal>\T</literal> (обратитесь к Справочнику). В результате
+ этой двойной интерпретации вы должны всегда использовать
+ правильное число экранирующих символов.</para>
+
+ <para>Если вам нужно передать символ <literal>\</literal>, например,
+ вашему модему, вам необходимо указать что-то типа:</para>
+
+ <programlisting>set dial "\"\" ATZ OK-ATZ-OK AT\\\\X OK"</programlisting>
+
+ <para>Это приведёт к такой последовательности:</para>
+
+ <programlisting>ATZ
+OK
+AT\X
+OK</programlisting>
+
+ <para>Или:</para>
+
+ <programlisting>set phone 1234567
+set dial "\"\" ATZ OK ATDT\\T"</programlisting>
+
+ <para>Это даст такую последовательность:</para>
+
+ <programlisting>ATZ
+OK
+ATDT1234567</programlisting>
+
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-segfault-nocore">
+ <para>&man.ppp.8; получает ошибку защиты
+ (<errorname>Segmentation fault</errorname>), но я не вижу файла
+ <filename>ppp.core</filename></para>
+ </question>
+
+ <answer>
+ <para>Программа <application>ppp</application> (или любая другая
+ программа такого рода) никогда не
+ создаёт файлов дампа памяти. Так так &man.ppp.8; запускается с
+ эффективным uid, равным <literal>0</literal>, то операционная
+ система не будет записывать дамп памяти &man.ppp.8; на диск
+ перед его завершением. Однако если
+ &man.ppp.8; всё же прекратит работу из-за нарушения защиты,
+ или по другому сигналу, который вызывает создание дампа памяти,
+ <emphasis>и</emphasis> вы уверены, что используете самую
+ последнюю версию (смотрите
+ самое начало раздела), то вы должны установить исходный код
+ системы и выполнить следующее:</para>
+
+ <screen>&prompt.root; <userinput><command>cd</command> <filename class="directory">/usr/src/usr.sbin/ppp</filename></userinput>
+&prompt.root; <userinput><command>echo</command> <makevar>STRIP</makevar>= &gt;&gt; <filename>/etc/make.conf</filename></userinput>
+&prompt.root; <userinput><command>echo</command> <makevar>CFLAGS</makevar>+=<option>-g</option> &gt;&gt; <filename>/etc/make.conf</filename></userinput>
+&prompt.root; <userinput><command>make</command> <maketarget>install</maketarget> <maketarget>clean</maketarget></userinput></screen>
+
+ <para>Теперь у вас есть отладочная версия &man.ppp.8;. Вам
+ нужно стать суперпользователем для запуска &man.ppp.8;, так
+ как соответствующие биты прав были убраны. Когда запустите
+ &man.ppp.8;, обратите особое внимание на то, какой каталог
+ у вас был текущим на этот момент.</para>
+
+ <para>Итак, если &man.ppp.8; получит ошибку нарушения защиты,
+ он сбросит дамп памяти с именем <filename>ppp.core</filename>.
+ Затем вам нужно сделать следующее:</para>
+
+ <screen>&prompt.user; <userinput>su</userinput>
+&prompt.root; <userinput>gdb /usr/sbin/ppp ppp.core</userinput>
+<prompt>(gdb)</prompt> <userinput>bt</userinput>
+.....
+<prompt>(gdb)</prompt> <userinput>f 0</userinput>
+....
+<prompt>(gdb)</prompt> <userinput>i args</userinput>
+....
+<prompt>(gdb)</prompt> <userinput>l</userinput>
+.....</screen>
+
+ <para>Вся эта информация должна быть предоставлена вместе с вашим
+ вопросом, чтобы проблему можно было продиагностировать.</para>
+
+ <para>Если вы умеете обращаться с &man.gdb.1;, вы можете
+ попробовать найти причины образования дампа либо адреса и
+ значения относящихся к этому переменных.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-autodialprocess-noconnect">
+ <para>Процесс, вызвавший прозвонку в режиме <option>-auto</option>,
+ никогда не получает затребованного соединения</para>
+ </question>
+
+ <answer>
+ <para>Эта проблема проявлялась, когда &man.ppp.8; в
+ режиме <option>-auto</option> был настроен на динамическое
+ согласование локального IP-адреса
+ с противоположной стороной. Это было давно исправлено &mdash;
+ поищите на странице справочника слово <literal>iface</literal>.</para>
+
+ <para>Причиной было то, что когда эта программа использует
+ системный вызов &man.connect.2;, для сокета назначается IP-адрес
+ интерфейса &man.tun.4;. Ядро создаёт первый исходящий пакет и
+ записывает его в устройство &man.tun.4;. Затем &man.ppp.8;
+ читает пакет и устанавливает соединение. Если в результате
+ согласования &man.ppp.8; динамического IP-адреса
+ адрес интерфейса изменится, сокет будет работать некорректно.
+ Любые IP-пакеты, передаваемые через сокет, будут отброшены.
+ Если даже этого не произойдёт, ответные данные не будут
+ достигать отправителя,
+ так как этот адрес больше ему не принадлежит.</para>
+
+ <para>Теоретически есть несколько способов решить эту проблему.
+ Лучше всего, если противоположная сторона назначит интерфейсу
+ тот же самый IP-адрес. Текущая версия
+ &man.ppp.8; именно так и поступает, но большинство других
+ реализаций этого не делают.</para>
+
+ <para>Самым простым решением будет просто никогда не менять
+ IP-адрес интерфейса &man.tun.4;, а вместо этого изменять на
+ лету все исходящие пакеты так, чтобы IP-адрес источника менялся
+ с IP-адреса интерфейса на соответствующий с противоположной
+ стороны. Это, в сущности, то же самое, что делает опция
+ <literal>iface-alias</literal> в самой последней версии
+ &man.ppp.8; (с помощью библиотеки &man.libalias.3; и ключа
+ <option>-nat</option> для &man.ppp.8;) &mdash; она отслеживает
+ все назначенные ранее интерфейсу адреса и замещает их на
+ последний из назначенных.</para>
+
+ <para>Другой возможный (и, наверное, самый надёжный) способ - это
+ создать системный вызов, меняющий IP-адреса всем уже связанным
+ сокетам. &man.ppp.8; использовал бы этот вызов для модификации
+ сокетов всех работающих программ после согласования нового
+ IP-адреса. Этот же самый системный вызов могли бы использовать
+ клиенты <acronym>DHCP</acronym>, когда они осуществляют повторную
+ привязку к сокету, вызывая для этого функцию
+ <function>bind()</function>.</para>
+
+ <para>Ещё одной возможностью является разрешение интерфейсу
+ становиться активным без IP-адреса. Исходящим пакетам будет
+ даваться IP адрес <hostid role="ipaddr">255.255.255.255</hostid>
+ до первого вызова &man.ioctl.2; <literal>SIOCAIFADDR</literal>,
+ приводящего к полной привязке сокета. &man.ppp.8; нужно будет
+ изменять исходящий IP-адрес и контрольную сумму пакета, только
+ если он установлен в <hostid role="ipaddr">255.255.255.255</hostid>.
+ Это, однако, является некоторым хаком, так как ядро будет
+ посылать некорректные пакеты на не полностью
+ сконфигурированный интерфейс, в предположении, что существует
+ механизм исправления этих пакетов.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ppp-nat-games">
+ <para>Почему большинство игр не работает с опцией
+ <option>-nat</option>?</para>
+ </question>
+
+ <answer>
+ <para>Причиной, по которой игры и подобные программы не работают с
+ библиотекой &man.libalias.3; заключается в том, что внешняя
+ машина будет пытаться открыть соединение или посылать
+ (незапрошенные) UDP пакеты на машину внутренней сети.
+ Программное обеспечение, обеспечивающее опцию -nat, не
+ знает о том, что она должна пересылать эти пакеты машине во
+ внутренней сети.</para>
+
+ <para>Чтобы это всё же заработало, удостоверьтесь, что единственной
+ запущенной программой является программное обеспечение, с которым
+ вы испытываете проблемы, затем запустите &man.tcpdump.1; на
+ интерфейсе &man.tun.4; маршрутизатора либо включите
+ протоколирование TCP/IP в &man.ppp.8;
+ (<literal>set log +tcp/ip</literal>) на маршрутизаторе.</para>
+
+ <para>Когда вы запустите некорректно работающее программное
+ обеспечение,
+ вы должны увидеть пакеты, проходящие через маршрутизатор. Когда
+ что-то начнёт приходить извне, оно будет отброшено (в этом-то и
+ проблема). Заметьте номер порта получателя этих пакетов, затем
+ завершите работу вашего программного обеспечения. Выполните эту
+ процедуру несколько раз для того, чтобы убедиться, что номер порта
+ постоянен. Если это так, то следующая строчка в соответствующем
+ разделе <filename>/etc/ppp/ppp.conf</filename> заставит
+ программное обеспечение функционировать нормально:</para>
+
+ <programlisting>nat port <replaceable>proto</replaceable> <replaceable>internalmachine</replaceable>:<replaceable>port</replaceable> <replaceable>port</replaceable></programlisting>
+
+ <para>Здесь <replaceable>proto</replaceable> - это
+ <literal>tcp</literal> либо <literal>udp</literal>,
+ <replaceable>internalmachine</replaceable> &mdash;
+ это машина, которой вы хотите перенаправлять пакеты,
+ и <replaceable>port</replaceable> - это номер порта получателя
+ пакетов.</para>
+
+ <para>Несомненно, вы не сможете использовать программное
+ обеспечение на других машинах, не изменяя указанную выше
+ команду, а также запускать программное обеспечение на двух
+ машинах внутри сети одновременно &mdash; в конце концов,
+ внешний мир видит всю вашу сеть как единственную машину.</para>
+
+ <para>Если номера портов непостоянны, есть ещё три варианта:</para>
+
+ <orderedlist>
+ <listitem>
+ <para>Настройте поддержку этого в &man.libalias.3;. Примеры
+ <quote>особых случаев</quote> можно найти в
+ <filename>/usr/src/sys/netinet/libalias/alias_*.c</filename>
+ (<filename>alias_ftp.c</filename> &mdash; хорошее начало).
+ Обычно это подразумевает чтение определенных распознаваемых
+ исходящих пакетов, выявление команд для установления
+ внешней машиной обратной связи на внутреннюю машину на
+ конкретный (случайный) порт и настройку значения
+ <quote>route</quote> в таблице соответствий таким образом,
+ чтобы последующие пакеты проходили нормально.</para>
+
+ <para>Это самое трудоёмкое решение, но оно наилучшее и позволит
+ программному обеспечению работать на нескольких машинах.</para>
+ </listitem>
+
+ <listitem>
+ <para>Используйте прокси-сервер. Например, приложение может
+ поддерживать <literal>socks5</literal> или (как в случае
+ <command>cvsup</command>) может иметь режим
+ <quote>passive</quote>, обходящийся без запросов к
+ противоположной стороне на открытие обратного
+ соединения.</para>
+ </listitem>
+
+ <listitem>
+ <para>Переназначьте всё на внутреннюю
+ машину с помощью команды <literal>nat addr</literal>.
+ Это решение в лоб.</para>
+ </listitem>
+ </orderedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="useful-port-numbers">
+ <para>Кто-нибудь ведёт список полезных номеров портов?</para>
+ </question>
+
+ <answer>
+ <para>Пока нет, но ниже находится список, могущий таковым стать (если
+ к этому будет проявлен какой-либо интерес). В каждом примере
+ <replaceable>internal</replaceable> нужно заменить на IP-адрес
+ машины, участвующей в игре.</para>
+
+ <itemizedlist>
+ <listitem>
+ <para><application>Asheron's Call</application></para>
+
+ <para><literal>nat port udp
+ <replaceable>internal</replaceable>:65000
+ 65000</literal></para>
+
+ <para>Находясь в игре, вручную смените номер порта на
+ <literal>65000</literal>. Если
+ у вас есть несколько машин, на которых вы хотите играть,
+ назначьте каждой машине уникальный номер порта (то есть
+ <literal>65001</literal>, <literal>65002</literal> и так
+ далее), и добавьте по строчке <literal>nat
+ port</literal> для каждой машины.</para>
+ </listitem>
+
+ <listitem>
+ <para><application>Half Life</application></para>
+
+ <para><literal>nat port udp
+ <replaceable>internal</replaceable>:27005
+ 27015</literal></para>
+ </listitem>
+
+ <listitem>
+ <para><application>PCAnywhere 8.0</application></para>
+
+ <para><literal>nat port udp
+ <replaceable>internal</replaceable>:5632
+ 5632</literal></para>
+
+ <para><literal>nat port tcp
+ <replaceable>internal</replaceable>:5631
+ 5631</literal></para>
+ </listitem>
+
+ <listitem>
+ <para><application>Quake</application></para>
+
+ <para><literal>nat port udp
+ <replaceable>internal</replaceable>:6112
+ 6112</literal></para>
+ </listitem>
+
+ <listitem>
+ <para><application>Quake 2</application></para>
+
+ <para><literal>nat port udp
+ <replaceable>internal</replaceable>:27901
+ 27910</literal></para>
+
+ <para><literal>nat port udp
+ <replaceable>internal</replaceable>:60021
+ 60021</literal></para>
+
+ <para><literal>nat port udp
+ <replaceable>internal</replaceable>:60040
+ 60040</literal></para>
+ </listitem>
+
+ <listitem>
+ <para><application>Red Alert</application></para>
+
+ <para><literal>nat port udp
+ <replaceable>internal</replaceable>:8675
+ 8675</literal></para>
+
+ <para><literal>nat port udp
+ <replaceable>internal</replaceable>:5009
+ 5009</literal></para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="fcs-errors">
+ <para>Что такое ошибки FCS?</para>
+ </question>
+
+ <answer>
+ <para>FCS является сокращением от <literal>F</literal>rame
+ <literal>C</literal>heck <literal>S</literal>equence
+ (контроль последовательности кадров). Каждый кадр PPP имеет
+ контрольную сумму для проверки того, что принятые данные совпадают
+ с переданными. Если FCS принятого пакета некорректна, пакет
+ отбрасывается и счётчик FCS для HDLC увеличивается. Значения
+ ошибок уровня HDLC можно вывести командой
+ <literal>show hdlc</literal>.</para>
+
+ <para>Если у вас плохая линия (или драйвер коммуникационного адаптера
+ отбрасывает пакеты), ошибки FCS неизбежны. Это обычно не является
+ причиной для волнений, хотя это существенно замедляет протоколы
+ компрессии. Если у вас внешний модем, проверьте качество
+ экранирования соединительного кабеля &mdash; это может избавить от
+ проблемы.</para>
+
+ <para>Если ваша связь замирает, как только вы соединились, и
+ наблюдается большое количество ошибок FCS, это может быть вызвано
+ не полной прозрачностью канала для 8-битовых данных. Проверьте,
+ чтобы модем не использовал программного управления потоком
+ (XON/XOFF). Если же оборудование <emphasis>должно</emphasis>
+ использовать программное управление потоком, то воспользуйтесь
+ командой <literal>set accmap 0x000a0000</literal> для указания
+ &man.ppp.8; экранировать
+ символы <literal>^Q</literal> и <literal>^S</literal>.</para>
+
+ <para>Другой причиной слишком большого количества ошибок FCS
+ может быть прекращение противоположной стороной сеанса
+ <acronym>PPP</acronym>.
+ В этом случае Вам может понадобиться включить протоколирование
+ <literal>async</literal> для проверки того, не являются ли
+ поступаемые из линии данные на самом деле приглашениями login
+ или shell. Если вы получили приглашение shell с противоположной
+ стороны, возможно завершение &man.ppp.8; без обрыва связи
+ командой <command>close lcp</command> (последующая команда
+ <command>term</command> снова вернёт вас к приглашению
+ shell на удалённой машине).</para>
+
+ <para>Если ничего в файле протокола не говорит о том, что связь
+ была прервана, вы должны спросить у администратора удалённой
+ машины (вашего провайдера), почему сеанс был закрыт.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry id="PPPoEwithNAT">
+ <question id="macos-win98-pppoe-freeze">
+ <para>Почему при использовании на маршрутизаторе PPPoE замирают
+ соединения в &macos; и &windows;&nbsp;98?</para>
+ </question>
+
+ <answer>
+ <para>Мы благодарим Майкла Возняка (Michael Wozniak)
+ <email>mwozniak@netcom.ca</email>, который сообщил следующую
+ информацию, и Дэна Флемминга (Dan Flemming)
+ <email>danflemming@mac.com</email> за решение проблемы в случае
+ Mac:</para>
+
+ <para>Это происходит из-за эффекта, который можно назвать
+ <quote>чёрной дырой</quote> на маршрутизаторе. &macos; и
+ &windows;&nbsp;98 (и, может быть, другие операционные системы
+ от &microsoft;), посылают пакеты TCP с запрашиваемым размером
+ сегмента, который слишком велик для того, чтобы быть помещённым
+ в кадр PPPoE (для сети Ethernet размер MTU по умолчанию равен
+ <literal>1500</literal>) <emphasis>и</emphasis> с установленным
+ битом <quote>do not fragment</quote> (по умолчанию для TCP), а
+ маршрутизаторы Telco не посылает пакет ICMP <quote>must
+ fragment</quote> обратно на сайт WWW, который вы пытаетесь
+ открыть. (Либо маршрутизатор посылает пакеты ICMP правильно, а
+ межсетевой экран на стороне сервера WWW их сбрасывает.) Когда
+ Web-сервер посылает вам кадры, которые не помещаются в поток PPPoE,
+ то маршрутизаторы Telco их отбрасывают и странички не загружаются
+ (часть страниц/графики всё же видно, потому что они меньше, чем
+ MSS). Похоже, что такие настройки действуют по умолчанию на
+ большинстве конфигураций PPPoE Telco.</para>
+
+ <para>Одним из способов устранения проблемы является использование
+ утилиты <application>regedit</application> на системах 95/98 для
+ того, чтобы добавить в реестр следующий параметр:</para>
+
+ <programlisting>HKEY_LOCAL_MACHINE\System\CurrentControlSet\Services\Class\NetTrans\0000\MaxMTU</programlisting>
+
+ <para>Это должна быть строка со значением <literal>1436</literal>,
+ так как имеются сведения, что некоторые маршрутизаторы ADSL не
+ могут работать с пакетами размером, превышающим эту величину.
+ В &windows;&nbsp;2000 этот параметр реестра переименован в
+ <literal>Tcpip\Parameters\Interfaces\<replaceable>ID
+ адаптера</replaceable>\MTU</literal> и имеет тип
+ <literal>DWORD</literal>.</para>
+
+ <para>Обратитесь к документам из Microsoft Knowledge Base <ulink
+ url="http://support.microsoft.com/support/kb/articles/Q158/4/74.asp">
+ Q158474 - Windows TCPIP Registry Entries</ulink> и <ulink
+ url="http://support.microsoft.com/support/kb/articles/Q120/6/42.asp">
+ Q120642 - TCPIP & NBT Configuration Parameters for
+ &windowsnt;</ulink> для получения более полной информации по
+ изменению MTU в &windows; для работы с NAT-маршрутизатором.</para>
+
+ <para>Другим вариантом с &windows;&nbsp;2000 является установка в
+ регистре <literal>DWORD</literal>-параметра
+ <literal>Tcpip\Parameters\Interfaces\<replaceable>ID
+ адаптера</replaceable>\EnablePMTUBHDetect</literal> в
+ <literal>1</literal>, как это
+ отмечено в документе Microsoft 120642, указанном выше.</para>
+
+ <para>К несчастью, в &macos; нет возможности изменить настройки
+ TCP/IP. Однако имеется множество коммерческого программного
+ обеспечения, позволяющего пользователям настраивать
+ параметры TCP/IP. Пользователям NAT в &macos; нужно поискать
+ у себя настройки MTU и заменить там значение <literal>1500</literal>
+ на <literal>1450</literal>.</para>
+
+ <para>В &man.ppp.8; имеется команда <command>enable
+ tcpmssfixup</command>, которая автоматически выравнивает MSS
+ до подходящего значения. Эта возможность включена по умолчанию.
+ Если у вас возникли проблемы с более старой версией
+ &man.ppp.8;, то вас может заинтересовать порт
+ <filename role="package">net/tcpmssd</filename>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="desperation">
+ <para>Ничего не помогает &mdash; я уже отчаялся!</para>
+ </question>
+
+ <answer>
+ <para>Если всё уже перепробовано, и ничего не получается, пошлите
+ нам максимальное количество информации, ваш конфигурационный
+ файл, способ запуска &man.ppp.8;, соответствующие части файла
+ протокола, и вывод команды <command>netstat -rn</command> (до
+ и после соединения) в &a.questions; или в телеконференцию <ulink
+ url="news:comp.unix.bsd.freebsd.misc">comp.unix.bsd.freebsd.misc</ulink>,
+ и может быть, кто-нибудь укажет вам верное направление.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="serial">
+ <title>Коммуникационные адаптеры</title>
+
+ <para>В этом разделе освещены вопросы о работе последовательных
+ адаптеров во &os;. Протоколы PPP и SLIP рассматриваются в разделе
+ <link linkend="networking">Работа в сети</link>.</para>
+
+ <qandaset>
+ <qandaentry>
+ <question id="found-serial">
+ <para>Как узнать, какие последовательные порты были обнаружены
+ &os;?</para>
+ </question>
+
+ <answer>
+ <para>В процессе своей загрузки ядро &os; будет пытаться
+ найти последовательные порты, с поддержкой которых оно было
+ откомпилировано. Вы можете повнимательней присмотреться к
+ выдаваемым сообщениям либо выполнить такую команду после того,
+ как система запустилась и работает:</para>
+
+ <screen>&prompt.user; <userinput>dmesg | grep -E "^sio[0-9]"</userinput></screen>
+
+ <para>Вот пример вывода вышеуказанной команды:</para>
+
+ <programlisting>sio0: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
+sio0: type 16550A
+sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0
+sio1: type 16550A</programlisting>
+
+ <para>Здесь присутствуют два последовательных порта. Первый
+ находится на IRQ&nbsp;4, использует порт ввода/вывода
+ <literal>0x3f8</literal> и построен на микросхеме UART типа
+ 16550A. Второй использует тот же тип микросхемы, но находится
+ на IRQ&nbsp;3 и использует адрес порта ввода/вывода
+ <literal>0x2f8</literal>. Внутренние модемы выглядят точно
+ также, как последовательные порты, за исключением того,
+ что модем к ним <quote>подключен</quote> всегда.</para>
+
+ <para>В ядро <filename>GENERIC</filename> встроена поддержка двух
+ последовательных портов, с теми же IRQ и адресами портов
+ ввода/вывода, как указано в примере выше. Если эти настройки
+ не соответствуют вашим, или если вы добавили внутренние модемы,
+ или у вас больше последовательных портов, чем описано в ядре,
+ просто переконфигурируйте ядро. За дополнительной информацией
+ обратитесь к разделу <link linkend="make-kernel">о построении
+ ядра</link>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="found-modem">
+ <para>Как узнать, какие внутренние модемы были обнаружены &os;?</para>
+ </question>
+
+ <answer>
+ <para>Посмотрите ответ на предыдущий вопрос.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="access-serial-ports">
+ <para>Как осуществляется доступ к последовательным портам во
+ &os;?</para>
+ </question>
+
+ <answer>
+ <para>Третий последовательный порт, <devicename>sio2</devicename>
+ (посмотрите справку по &man.sio.4;), который в DOS называется
+ <devicename>COM3</devicename>), обозначается как
+ <devicename>/dev/cuad2</devicename> для устройств, выполняющих
+ исходящие звонки, и <devicename>/dev/ttyd2</devicename> для
+ устройств, принимающих входящие звонки. Какая разница между этими
+ двумя классами устройств?</para>
+
+ <para>Вы должны использовать
+ <devicename>ttyd<replaceable>X</replaceable></devicename> для
+ входящих соединений. При открытии
+ <devicename>/dev/ttyd<replaceable>X</replaceable></devicename> в
+ блокирующем режиме, процесс будет ожидать неактивности
+ соответствующего устройства
+ <devicename>cuad<replaceable>X</replaceable></devicename>, а затем
+ появления сигнала о наличии несущей. При открытии устройства
+ <devicename>cuad<replaceable>X</replaceable></devicename> он
+ проверяет, что последовательный порт не используется уже
+ устройством
+ <devicename>ttyd<replaceable>X</replaceable></devicename>. Если
+ порт доступен, он <quote>похищает</quote> его у устройства
+ <filename>ttyd<replaceable>X</replaceable></filename>. Также
+ устройство
+ <devicename>cuad<replaceable>X</replaceable></devicename> не следит
+ за наличием несущей. С такой схемой работы и модемом, находящимся в
+ режиме автоответа, вы можете позволить пользователям входить в
+ систему и в то же время можете осуществлять исходящие звонки, а
+ система позаботится о возможных конфликтах.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="enable-multiport-serial">
+ <para>Как включить поддержку многопортовых последовательных
+ адаптеров?</para>
+ </question>
+
+ <answer>
+ <para>Повторим ещё раз: информация о конфигурировании ядра
+ содержится в разделе, посвящённом этому вопросу. Для
+ многопортовых последовательных адаптеров добавьте в файл
+ &man.device.hints.5; по строке &man.sio.4; на каждый порт.
+ Но IRQ должен быть указан только у одного порта. Все порты
+ на адаптере должны использовать одно и то же значение IRQ.
+ Для обеспечения согласованности используйте для указания IRQ
+ последний последовательный порт. Также укажите следующую
+ опцию в файле конфигурации ядра:</para>
+
+ <programlisting>COM_MULTIPORT</programlisting>
+
+ <para>В следующем примере указано содержимое
+ <filename>/boot/device.hints</filename> для 4-портового
+ последовательного адаптера AST на IRQ&nbsp;12:</para>
+
+ <programlisting>hint.sio.4.at="isa"
+hint.sio.4.port="0x2a0"
+hint.sio.4.flags="0x701"
+hint.sio.5.at="isa"
+hint.sio.5.port="0x2a8"
+hint.sio.5.flags="0x701"
+hint.sio.6.at="isa"
+hint.sio.6.port="0x2b0"
+hint.sio.6.flags="0x701"
+hint.sio.7.at="isa"
+hint.sio.7.port="0x2b8"
+hint.sio.7.flags="0x701"
+hint.sio.7.irq="12"</programlisting>
+
+ <para>Флаги указывают, что управляющий порт имеет младший номер
+ устройства <literal>7</literal> (<literal>0x700</literal>),
+ и все порты совместно используют один и тот же номер IRQ
+ (<literal>0x001</literal>).</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="multiport-serial-share-irq">
+ <para>Может ли &os; использовать несколько многопортовых
+ адаптеров с одинаковым IRQ?</para>
+ </question>
+
+ <answer>
+ <para>Пока нет. Вы должны назначить уникальный IRQ для каждого
+ адаптера.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="default-serial-params">
+ <para>Можно ли настроить для порта режим работы по умолчанию?</para>
+ </question>
+
+ <answer>
+ <para>Смотрите раздел Руководства &os, посвящённый <ulink
+ url="&url.books.handbook;/serial.html#SERIAL-HW-CONFIG">последовательным
+ соединениям</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="enable-dialup">
+ <para>Как сделать вход через модем?</para>
+ </question>
+
+ <answer>
+ <para>Ознакомьтесь с разделом Руководства &os;, посвящённого <ulink
+ url="&url.books.handbook;/dialup.html">входящим
+ соединениям</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="dumb-terminal">
+ <para>Как подключить терминал к &os;?</para>
+ </question>
+
+ <answer>
+ <para>Информацию по этому вопросы можно найти в разделе <ulink
+ url="&url.books.handbook;/term.html">Терминалы</ulink>
+ Руководства &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="cannot-tip">
+ <para>Почему не удаётся запустить <command>tip</command> или
+ <command>cu</command>?</para>
+ </question>
+
+ <answer>
+ <para>Скорее всего, в вашей системе программы
+ &man.tip.1; и &man.cu.1; могут получить доступ к каталогу
+ <filename class="directory">/var/spool/lock</filename>
+ только из-под пользователя
+ <username>uucp</username> и членов группы
+ <groupname>dialer</groupname>. Вы можете использовать группу
+ <groupname>dialer</groupname> для управления доступом к вашему
+ модему или удалённым системам. Достаточно добавить пользователя
+ в группу <groupname>dialer</groupname>.</para>
+
+ <para>Вы можете разрешить всем пользователям вашей системы запускать
+ &man.tip.1; и &man.cu.1;, выполнив команды:</para>
+
+ <screen>&prompt.root; <userinput>chmod 4511 /usr/bin/cu</userinput>
+&prompt.root; <userinput>chmod 4511 /usr/bin/tip</userinput></screen>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="hayes-unsupported">
+ <para>Мой модем Hayes не поддерживается &mdash; что можно сделать?</para>
+ </question>
+
+ <answer>
+ <para>Смотрите <ulink
+ url="&url.books.handbook;/dialout.html#HAYES-UNSUPPORTED">этот
+ ответ</ulink> в Руководстве &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="direct-at">
+ <para>Как я должен ввести эти AT-команды?</para>
+ </question>
+
+ <answer>
+ <para>Смотрите <ulink
+ url="&url.books.handbook;/dialout.html#DIRECT-AT">этот ответ</ulink>
+ в Руководстве &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="gt-failure">
+ <para>Почему не срабатывает знак <literal>@</literal> для
+ описания характеристики <literal>pn</literal>?</para>
+ </question>
+
+ <answer>
+ <para>Смотрите <ulink
+ url="&url.books.handbook;/dialout.html#GT-FAILURE">этот
+ ответ</ulink> в Руководстве &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="dial-command-line">
+ <para>Как набрать телефонный номер из командной строки?</para>
+ </question>
+
+ <answer>
+ <para>Смотрите <ulink
+ url="&url.books.handbook;/dialout.html#DIAL-COMMAND-LINE">этот
+ ответ</ulink> в Руководстве &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="set-bps">
+ <para>Нужно ли при этом каждый раз задавать скорость работы с
+ портом?</para>
+ </question>
+
+ <answer>
+ <para>Смотрите <ulink
+ url="&url.books.handbook;/dialout.html#SET-BPS">этот ответ</ulink>
+ в Руководстве &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="terminal-server">
+ <para>Мне нужно иметь доступ к нескольких хостам через терминальный
+ сервер.</para>
+ </question>
+
+ <answer>
+ <para>Смотрите <ulink
+ url="&url.books.handbook;/dialout.html#TERMINAL-SERVER">этот
+ ответ</ulink> в Руководстве &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="tip-multiline">
+ <para>Может ли tip использовать несколько телефонов для одного
+ сайта?</para>
+ </question>
+
+ <answer>
+ <para>Смотрите <ulink
+ url="&url.books.handbook;/dialout.html#TIP-MULTILINE">этот
+ ответ</ulink> в Руководстве &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="multi-controlp">
+ <para>Почему нужно нажимать <keycombo
+ action="simul"><keycap>Ctrl</keycap><keycap>P</keycap></keycombo>
+ дважды для посылки одного этого символа <keycombo
+ action="simul"><keycap>Ctrl</keycap>
+ <keycap>P</keycap></keycombo>?</para>
+ </question>
+
+ <answer>
+ <para>Смотрите <ulink
+ url="&url.books.handbook;/dialout.html#MULTI-CONTROLP">этот
+ ответ</ulink> в Руководстве &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="uppercase">
+ <para>Неожиданно всё стало набираться ЗАГЛАВНЫМИ БУКВАМИ?</para>
+ </question>
+
+ <answer>
+ <para>Смотрите <ulink
+ url="&url.books.handbook;/dialout.html#UPPERCASE">этот
+ ответ</ulink> в Руководстве &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="tip-filetransfer">
+ <para>Как можно передавать файлы с помощью программы
+ <command>tip</command>?</para>
+ </question>
+
+ <answer>
+ <para>Смотрите <ulink
+ url="&url.books.handbook;/dialout.html#TIP-FILETRANSFER">этот
+ ответ</ulink> в Руководстве &os;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="zmodem-tip">
+ <para>Как использовать zmodem вместе с
+ <command>tip</command>?</para>
+ </question>
+
+ <answer>
+ <para>Смотрите <ulink
+ url="&url.books.handbook;/dialout.html#ZMODEM-TIP">этот
+ ответ</ulink> в Руководстве &os;.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="misc">
+ <title>Разное</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="more-swap">
+ <para>Почему &os; использует гораздо больше места в разделе
+ подкачки, чем &linux;?</para>
+ </question>
+
+ <answer>
+ <para>Это только кажется, что для &os; требуется больше места
+ на разделе подкачки, чем для &linux;. На самом деле это не
+ так. Главное отличие &os; от &linux; в этом плане заключается
+ в том, что &os; активно перемещает неиспользуемые страницы
+ памяти, к которым не было обращений, в раздел подкачки,
+ чтобы увеличить объём доступной физической памяти для
+ активного использования. &linux; же перемещает страницы
+ памяти в раздел подкачки только в крайнем случае. Получаемое
+ во &os; увеличение нагрузки на раздел подкачки компенсируется
+ более эффективным использованием оперативной памяти.</para>
+
+ <para>Заметьте, что, хотя &os; предпочитает использовать раздел
+ подкачки, она не может сбросить все неактивные страницы в
+ своп при полностью неактивной системе. Так что вряд ли может
+ возникнуть ситуация, когда, проснувшись рано утром, вы
+ обнаружите, что вся ваша система находится в разделе подкачки,
+ хотя она простаивала всю ночь.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="top-freemem">
+ <para>Почему утилита &man.top.1; показывает очень маленький объём
+ свободной памяти, даже когда запущено всего лишь несколько
+ приложений?</para>
+ </question>
+
+ <answer>
+ <para>Просто дело в том, что под свободной памятью
+ подразумевается никак не используемая память. Вся память,
+ которая вашей программе явно не выделялась, используется
+ ядром &os; для дискового кэша. Значения, показываемые
+ утилитой &man.top.1;, помеченные как <literal>Inact</literal>,
+ <literal>Cache</literal> и <literal>Buf</literal> - это
+ всё кэшированные данные разных степеней устаревания. То,
+ что данные находятся в кэше, означает, что система не будет
+ обращаться к медленному диску снова за теми данными,
+ обращение к которым было недавно, повышая таким образом
+ общую производительность. В общем случае маленькие значения
+ в пункте <literal>Free</literal>, показываемые утилитой
+ &man.top.1; для свободной памяти - это хорошо, если,
+ конечно они не <emphasis>очень</emphasis> маленькие.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="chmod-symlinks">
+ <para>Почему командой <command>chmod</command> невозможно
+ изменить права на символические ссылки?</para>
+ </question>
+
+ <answer>
+ <para>Символические ссылки не имеют атрибутов доступа, и по
+ умолчанию утилита &man.chmod.1; следует по символической
+ ссылке, чтобы по возможности изменить права доступа на
+ исходный файл. Поэтому, если
+ у вас есть файл, скажем, с именем <filename>foo</filename> и
+ символическая ссылка <filename>bar</filename> на этот файл,
+ то эта команда всегда будет выполняться успешно.</para>
+
+ <screen>&prompt.user; <userinput>chmod g-w bar</userinput></screen>
+
+ <para>Однако права на файл <filename>bar</filename> не
+ изменятся.</para>
+
+ <para>Чтобы это работало, используйте опцию <option>-H</option> или
+ <option>-L</option> вместе с опцией <option>-R</option>.
+ Обратитесь к страницам Справочника по команде &man.chmod.1; и по
+ &man.symlink.7;.</para>
+
+ <warning>
+ <para>Опция <option>-R</option> выполняет команду &man.chmod.1;
+ <emphasis>рекурсивно</emphasis>. Будьте осторожны, задавая
+ каталоги или символические ссылки на каталоги в параметрах
+ &man.chmod.1;. Если вы хотите изменить права на каталог,
+ на который указывает символическая ссылка, используйте
+ &man.chmod.1; без опций и следуйте символической ссылке
+ с помощью лидирующего слэша (<filename
+ class="directory">/</filename>). Например, если
+ <filename>foo</filename> является символической ссылкой
+ на каталог <filename class="directory">bar</filename>, а
+ вы хотите изменить права на <filename>foo</filename> (на
+ самом деле <filename class="directory">bar</filename>),
+ вы должны выполнить команду типа следующей:</para>
+
+ <screen>&prompt.user; <userinput>chmod 555 foo/</userinput></screen>
+
+ <para>Если задан лидирующий слэш, то &man.chmod.1; будет
+ следовать символической ссылке, <filename>foo</filename>,
+ меняя права на каталог <filename
+ class="directory">bar</filename>.</para>
+ </warning>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="dos-binaries">
+ <para>Можно ли запускать программы для DOS во &os;?</para>
+ </question>
+
+ <answer>
+ <para>Да, вы можете использовать программу эмуляции DOS <filename
+ role="package">emulators/doscmd</filename>, включённую в
+ Коллекцию Портов &os;.</para>
+
+ <para>Если <application>doscmd</application> вас не удовлетворит,
+ то дополнительная утилита <filename
+ role="package">emulators/pcemu</filename> эмулирует 8088 и набор
+ сервисов BIOS, достаточный для запуска многих приложений
+ текстового режима DOS. Ей требуется X Window System.</para>
+
+ <para>Также можно попробовать <filename
+ role="package">emulators/dosbox</filename> из Коллекции Портов
+ &os;. Программа в основном предназначена для эмуляции старых
+ игр, написанных под DOS, для хранения файлов которых используется
+ локальная файловая система.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="translation">
+ <para>Что мне нужно сделать, чтобы перевести документацию &os; на
+ родной язык?</para>
+ </question>
+
+ <answer>
+ <para>Ознакомьтесь с <ulink
+ url="&url.books.fdp-primer;/translations.html">
+ FAQ по Переводам</ulink> из &os; Documentation Project
+ Primer.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="freebsd-mail-bounces">
+ <para>Почему возвращается моя электронная почта, отправленная на
+ любой из адресов <hostid role="domainname">FreeBSD.org</hostid>?</para>
+ </question>
+
+ <answer>
+ <para>В почтовой системе <hostid role="domainname">FreeBSD.org</hostid>
+ в <application>Postfix</application> применяются некоторые
+ более строгие проверки входящей почты, и отвергаются сообщения,
+ которые сформированы неправильно либо потенциально являются спамом.
+ Ваша почта может не приниматься по одной из следующих
+ причин:</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>Электронная почта была послана с домена или блока
+ IP-адресов, которые известны нам как спамеры.</para>
+
+ <para>Почтовые серверы &os; отвергают электронную почту от
+ известных источников спама. Если вы пользуетесь услугами
+ компании или домена, рассылающего или пересылающего спам,
+ пожалуйста, переключитесь на другого поставщика услуг, который
+ этого не делает.</para>
+ </listitem>
+
+ <listitem>
+ <para>Тело сообщения электронной почты содержит только
+ HTML.</para>
+
+ <para>Почта должна посылать только как обычный текст.
+ Пожалуйста, настройте ваш почтовый агент на отправку только
+ текста.</para>
+ </listitem>
+
+ <listitem>
+ <para>Почтовая программа <hostid role="domainname">FreeBSD.org</hostid>
+ не может преобразовать
+ адрес IP подключающегося хоста в символическое имя.</para>
+
+ <para>Работа обратного DNS является стандартным требованием для
+ принятия почты от хоста. Настройте обратный DNS для IP-адреса
+ вашего почтового сервера. Многие способы домашнего подключения
+ (DSL, кабель, коммутируемое соединение и тому подобное) не
+ предоставляют такой возможности. В таком случае пересылайте
+ свою электронную почту через почтовый сервер вашего поставщика
+ услуг.</para>
+ </listitem>
+
+ <listitem>
+ <para>Имя хоста, указанное на этапе EHLO/HELO процесса обмена
+ сообщениями SMTP не может быть преобразовано в IP-адрес.</para>
+
+ <para>На этом этапе диалога SMTP, перед принятием почты,
+ необходим полное и преобразуемое имя хоста. Если у вас нет
+ имени хоста, который зарегистрирован в DNS, то для пересылки
+ своей почты вы должны использовать почтовый сервер вашего
+ поставщика услуг.</para>
+ </listitem>
+
+ <listitem>
+ <para>Ваше сообщение имеет идентификатор, оканчивающийся
+ строчкой <quote>localhost</quote>.</para>
+
+ <para>Некоторые почтовые программы генерируют неправильные
+ идентификаторы сообщений, которые не могут быть приняты. Вам
+ нужно заставить почтовую программу пользователя генерировать
+ правильный идентификатор сообщения либо настроить ваш агент
+ передачи почты на замену этих идентификаторов.</para>
+ </listitem>
+ </itemizedlist>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="free-account">
+ <para>Где можно получить бесплатный доступ к &os;?</para>
+ </question>
+
+ <answer>
+ <para>Хотя &os; не предоставляет бесплатный доступ ни к одному из
+ своих серверов, другие компании предоставляют &unix;-системы с
+ открытым доступом. Стоимость этой услуги различна, также как и
+ ограниченный набор услуг.</para>
+
+ <para><ulink url="http://www.arbornet.org/">Arbornet, Inc</ulink>,
+ также известный как <emphasis>M-Net</emphasis>, предоставляет
+ свободный доступ к
+ &unix;-системам с 1983 года. Начиная на платформе Altos с
+ работающей System III, сайт перешёл на BSD/OS в 1991.
+ В июне 2000 сайт сменил систему снова, теперь на &os;.
+ <emphasis>M-Net</emphasis> может быть доступна через протоколы
+ <application>telnet</application> и <application>SSH</application>
+ и предоставляет доступ к полному набору программного обеспечения
+ &os;. Однако доступ к сети ограничен для членов и спонсоров,
+ которые поддерживают систему, которая работает как неприбыльная
+ организация. <emphasis>M-Net</emphasis> предоставляет также
+ услуги электронной доски объявлений (BBS) и интерактивного
+ чата.</para>
+
+ <para><ulink url="http://www.grex.org/">Grex</ulink> представляет
+ собой сайт, очень похожий на <emphasis>M-Net</emphasis>,
+ включая то же самое
+ программное обеспечение для электронной доски объявлений (BBS) и
+ интерактивного чата. Однако платформой является &sun;&nbsp;4M под
+ управлением &sunos;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="sup-define">
+ <para>Что такое <command>sup</command> и как это можно
+ использовать?</para>
+ </question>
+
+ <answer>
+ <para>Сокращение <ulink
+ url="http://www.FreeBSD.org/cgi/ports.cgi?^sup">SUP</ulink>
+ означает Software Update Protocol, который был разработан в
+ CMU для синхронизации исходных текстов. Он использовался для
+ синхронизации исходных текстов на удалённых сайтах с основным
+ сервером разработки Проекта.</para>
+
+ <para>Протокол SUP использует пропускную способность канала
+ неэффективно, и был отвергнут. В настоящее время рекомендуемым
+ методом для синхронизации исходных текстов является протокол <ulink
+ url="&url.books.handbook;/synching.html#CVSUP">
+ CVSup</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="daemon-name">
+ <para>Как зовут этого маленького симпатичного красного парня?</para>
+ </question>
+
+ <answer>
+ <para>У него нет определённого имени, он называется просто
+ <quote>даемон BSD</quote>. Если вам непременно нужно имя,
+ называйте его <quote>beastie</quote>. Заметьте, что
+ <quote>beastie</quote> произносится как <quote>BSD</quote>.</para>
+
+ <para>Больше о даемоне BSD вы можете узнать из его <ulink
+ url="http://www.mckusick.com/beastie/index.html">домашней
+ страницы</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="use-beastie">
+ <para>Могу ли я использовать изображение даемона BSD?</para>
+ </question>
+
+ <answer>
+ <para>Вполне. Права на даемона BSD имеет Marshall
+ Kirk McKusick. Для выяснения подробностей относительно правил
+ его использования вы можете обратиться к странице автора <ulink
+ url="http://www.mckusick.com/beastie/mainpage/copyright.html">
+ Statement on the Use of the BSD Daemon Figure</ulink>.</para>
+
+ <para>В общем, вы можете свободно использовать изображение в
+ высокохудожественном стиле и в личных целях, если даются
+ соответствующие отсылки. Если вы хотите использовать его в
+ коммерческих целях, вы должны обратиться к &a.mckusick;.
+ Дополнительная информация находится на <ulink
+ url="http://www.mckusick.com/beastie/index.html">домашней странице
+ Даемона BSD</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="daemon-images">
+ <para>Не найдется ли у вас изображений даемона BSD, которые можно
+ использовать?</para>
+ </question>
+
+ <answer>
+ <para>В каталоге <filename
+ class="directory">/usr/share/examples/BSD_daemon/</filename>
+ есть рисунки в форматах eps и Xfig.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="glossary">
+ <para>При просмотре списков рассылки, я встретил акроним или
+ другой термин, который мне не понятен. Где я должен посмотреть,
+ что он значит?</para>
+ </question>
+
+ <answer>
+ <para>Пожалуйста, обращайтесь к <ulink
+ url="&url.books.handbook;/freebsd-glossary.html">
+ Глоссарию &os;</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="bikeshed-painting">
+ <para>Почему я должен беспокоиться о цвете велосипедных навесов
+ (bikeshed)?</para>
+ </question>
+
+ <answer>
+ <para>На самом деле, очень краткий ответ на этот вопрос заключается в том,
+ что вы этого делать не должны. Если давать более подробный ответ, то ваше
+ умение делать навесы не должно означать, что вы должны препятствовать
+ другим делать их просто потому, что вам не нравится цвет, в который
+ они собираются их окрашивать. Эта метафора означает, что вам не нужно
+ обсуждать каждую мелочь просто потому, что вы знаете о ней
+ достаточно много. Некоторые люди отмечают, что объём шума, генерируемый
+ при появлении некоторого изменения, находится в обратной зависимости от
+ сложности самого изменения.</para>
+
+ <para>Более пространный и полный ответ заключается в том, что после очень
+ долгого обсуждения того, должна ли утилита &man.sleep.1; обрабатывать
+ дробное число, заданное в качестве второго аргумента, &a.phk;
+ опубликовал большое сообщение, озаглавленное <quote><ulink
+ url="http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=506636+517178+/usr/local/www/db/text/1999/freebsd-hackers/19991003.freebsd-hackers">
+ Велосипедный навес (подставьте здесь цвет) на зелёной траве...</ulink></quote>.
+ Соответствующие части этого сообщения цитируются ниже.</para>
+
+ <blockquote>
+ <attribution>&a.phk; on freebsd-hackers,
+ October 2, 1999</attribution>
+
+ <para><quote>Что это за история с навесом для велосипеда?</quote> Кто-то
+ из вас задавал такой вопрос.</para>
+
+ <para>Это долгая история, или же это старая история, но на самом деле
+ она коротка. В начале 1960-х годов Паркинсон (C. Northcote Parkinson)
+ написал книгу <quote>Закон Паркинсона</quote>, которая содержит много
+ интересных взглядов на процесс управления.</para>
+
+ <para><emphasis>[немного выдержек из краткого содержания книги]</emphasis></para>
+
+ <para>В конкретном примере велосипедный навес сопоставляется с
+ другим важным объектом - атомной электростанцией.
+ Я полагаю, что это иллюстрирует древность книги.</para>
+
+ <para>Паркинсон показывает, что вы можете прийти на совещание
+ руководителей и получить добро на строительство многомиллионной
+ или даже многомиллиардной атомной электростанции, но если вы
+ хотите построить навес для велосипеда, то погрязнете в бесконечных
+ обсуждениях.</para>
+
+ <para>Паркинсон объясняет это тем, что атомная станция настолько большой,
+ дорогой и сложный объект, что люди не могут его осознать и вместо того,
+ чтобы попробовать это сделать, они полагаются на то, что кто-то уже
+ проверил все мелочи до того, как всё зашло так далеко. В своей книге
+ Ричард П. Фейнманн (Richard P. Feynmann) даёт несколько интересных и
+ очень поучительных примеров, связанных с Лос Аламос.</para>
+
+ <para>Велосипедный навес - это противоположный случай. Любой может
+ построить навес за один уикэнд, и у него ещё останется время посмотреть
+ футбол по телевизору. Так что не важно, насколько хорошо вы готовились
+ к обсуждению, насколько убедительны будут ваши аргументы, кто-нибудь
+ воспользуется шансом показать, что он не зря ест свой хлеб, что он
+ обращает внимание, что он <emphasis>здесь</emphasis>.</para>
+
+ <para>В Дании это называется <quote>оставить отпечаток своего
+ пальца</quote>. Это касается личной гордости и престижа, это похоже
+ на возможность указать куда-то и сказать: <quote> Вон там! Это сделал
+ <emphasis>я</emphasis>.</quote> Это сильно выражено в политиках, но
+ присутствует во многих людях, которые получают возможность сделать
+ это. Просто вспомните об отпечатках ног во влажном цементе.</para>
+ </blockquote>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="funnies">
+ <title>Юмор от &os;</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="very-very-cool">
+ <para>Насколько греется процессор при работе &os;?</para>
+ </question>
+
+ <answer>
+ <para>В. Кто-нибудь делал замеры температуры при работе &os;? Я
+ знаю, что &linux; греется меньше, чем DOS, но никогда не видел
+ упоминания &os;. Наверное, он сильно греется.</para>
+
+ <para>О. Нет, но мы сделали различные вкусовые тесты у добровольцев с
+ завязанными глазами, которые до этого приняли по 250 микрограмм
+ LSD-25. 35% добровольцев заявило, что &os; имеет вкус апельсина,
+ тогда как вкус &linux; расценивался как фиолетовый туман. Ни одна
+ из групп не отметила значительной разницы в температуре. Мы
+ хотели опубликовать полные результаты этого опроса, когда
+ обнаружили, что слишком много добровольцев покинули помещение во
+ время тестов, что несколько смазало результаты. Думаем, что
+ большинство из них работают сейчас в Apple над их новым GUI
+ <quote>чеши и нюхай</quote>. Это старый добрый бизнес!</para>
+
+ <para>Серьёзно, и &os;, и &linux; используют инструкцию
+ <acronym>HLT</acronym> (halt), когда система простаивает, что
+ уменьшает потребление энергии и в свою очередь, выделение тепла.
+ Вдобавок, если у вас настроен APM (комплексное управление
+ энергопотреблением), то &os; может переводить процессор в режим
+ пониженного энергопотребления.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="letmeoutofhere">
+ <para>Кто там скребётся в микросхемах памяти??</para>
+ </question>
+
+ <answer>
+ <para>В. Делает ли &os; что-нибудь <quote>эдакое</quote> при
+ компиляции ядра, что вызывает поскрипывание микросхем памяти? При
+ компиляции (и в короткий промежуток времени после обнаружения
+ дисковода при старте системы) от микросхем памяти исходит странный
+ царапающий звук.</para>
+
+ <para>О. Да! Вы, наверное, видели частое упоминание
+ <quote>даемонов</quote> в документации по BSD, но не многие знают,
+ что это настоящие нематериальные существа, которые теперь
+ завладели вашим компьютером. Царапающий звук, издаваемый
+ микросхемами памяти - это на самом деле высокочастотное
+ перешёптывание между даемонами, когда они решают, как лучше
+ справиться с различными задачами по администрированию
+ системы.</para>
+
+ <para>Если шум достиг ваших ушей, команда DOS <command>fdisk
+ /mbr</command> их спугнёт, но не удивляйтесь, если они отреагируют
+ соответствующим образом и попытаются вас остановить. Фактически,
+ если во время выполнения этой команды вы услышите сатанинский
+ голос Билла Гейтса из встроенного динамика, бегите и даже не
+ оглядывайтесь! Избавленные от противостояния с даемонами BSD,
+ близнецы-демоны DOS и &windows; часто могут захватить полный
+ контроль не только над вашей машиной и навлечь вечное проклятие на
+ вашу душу. Теперь, когда вы это знаете, если бы у вас был выбор,
+ думаем, что вы бы предпочли слышать царапающий звук, не так
+ ли?</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="changing-lightbulbs">
+ <para>Сколько требуется разработчиков &os;, чтобы сменить
+ электрическую лампочку?</para>
+ </question>
+
+ <answer>
+ <para>Необходимо иметь ровно одну тысячу сто шестьдесят девять
+ разработчиков:</para>
+
+ <para>Двадцать три сообщат в -CURRENT о том, что не горит свет;</para>
+
+ <para>Четыре начнут утверждать, что это проблема конфигурации и такие
+ сообщения нужно посылать в -questions;</para>
+
+ <para>Трое оформят PR по этому поводу, причём одно их них будет
+ направлено в doc и будет содержать только строчку
+ <quote>здесь темно</quote>;</para>
+
+ <para>Один закоммитит неоттестированную лампочку, что сломает
+ построение системы, а затем через пять минут вернёт всё
+ назад;</para>
+
+ <para>Восемь поругаются с авторами PR по поводу включения патчей в
+ PR;</para>
+
+ <para>Пять сообщат о том, что не проходит компиляция системы;</para>
+
+ <para>Тридцать один человек ответит, что у них всё работает и
+ наверное, те выполняли cvsup в неподходящее время;</para>
+
+ <para>Один пошлёт патч для новой лампочки в -hackers;</para>
+
+ <para>Один пожалуется, что у него имелись патчики ещё три года назад,
+ но когда он послал их в -CURRENT, они были проигнорированы и он имел
+ неудачный опыт работы с системой PR; кроме того предлагаемая
+ лампочка не имеет отражателя.</para>
+
+ <para>Тридцать семь начнут кричать, что лампочки не относятся к
+ базовой системе, что коммиттеры не имеют права делать такие вещи
+ без опроса общественности и ЧТО ВООБЩЕ -CORE ДЕЛАЕТ ПО ЭТОМУ
+ ПОВОДУ?</para>
+
+ <para>Две сотни напишут о цвете велосипедного навеса;</para>
+
+ <para>Трое скажут, что этот патч не соответствует &man.style.9;</para>
+
+ <para>Семнадцать возразят, что предлагаемая новая лампа подпадает под
+ лицензию GPL;</para>
+
+ <para>Пятьсот восемьдесят шесть раздуют флейм по поводу сравнения
+ лицензий GPL, BSD, MIT, NPL и личных мнений о неизвестных
+ основателей FSF;</para>
+
+ <para>Семеро пошлют различные части этих обсуждений в -chat и
+ -advocacy;</para>
+
+ <para>Один закоммитит предлагаемую лампу, хотя она светит хуже, чем
+ старая;</para>
+
+ <para>Двое откатят эти изменения с ужасной руганью в журнале коммитта
+ о том, что лучше &os; будет сидеть в темноте, чем с тусклой
+ лампой.</para>
+
+ <para>Сорок шесть громко воспротивятся этому изменению и потребуют
+ объяснений от -core;</para>
+
+ <para>Одиннадцать попросят уменьшить размер лампочки, чтобы она
+ подошла к их Тамагочи на случай, если мы когда-нибудь соберёмся
+ переносить &os; на эту платформу;</para>
+
+ <para>Семьдесят три заявят о SNR в -hackers и -chat и в знак протеста
+ отпишутся;</para>
+
+ <para>Тринадцать пошлют письма <quote>unsubscribe</quote>, <quote>How
+ do I unsubscribe?</quote> или <quote>Please remove me from the
+ list</quote> с обычной подписью;</para>
+
+ <para>Один закоммитит работающую лампочку в то время, как все будут
+ слишком заняты руганью, чтобы это заметить;</para>
+
+ <para>Тридцать один человек напишет, что новая лампочка будет светить
+ на 0.364% ярче, если её откомпилировать с помощью TenDRA (хотя при
+ этом она приобретёт форму куба) и что &os; должна перейти на
+ компилятор TenDRA, а не на GCC;</para>
+
+ <para>Один заметит, что у лампочки отсутствует цоколь;</para>
+
+ <para>Девять (включая авторов PR) спросят <quote>что такое
+ MFC?</quote>;</para>
+
+ <para>Спустя две недели после смены лампочки пятьдесят семь человек
+ сообщат о том, что света всё равно нет.</para>
+
+ <para><emphasis>&a.nik; добавил:</emphasis></para>
+
+ <para><emphasis>Я сильно смеялся над всем этим.</emphasis></para>
+
+ <para><emphasis>И тогда я подумал, <quote>Постойте-ка, найдётся ли
+ кто-нибудь, чтобы задокументировать это?</quote></emphasis></para>
+
+ <para><emphasis>И на меня снизошло озарение :-)</emphasis></para>
+
+ <para><emphasis>&a.tabthorpe;</emphasis> говорит: <quote>Нет,
+ <emphasis>настоящие</emphasis> хакеры &os; не боятся
+ темноты!</quote></para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="dev-null">
+ <para>Куда направляются данные, записываемые в
+ <filename>/dev/null</filename>?</para>
+ </question>
+
+ <answer>
+ <para>Они отправляются в специальную сточную трубу для данных
+ в CPU, где преобразуются в тепло, выдуваемое через охлаждающие
+ вентиляторы. Вот почему охлаждение ЦП становится все более
+ важным; так как люди используют все более быстрые процессоры,
+ они все менее заботятся о данных, все большее их количество
+ оканчивает свой путь в <filename>/dev/null</filename>,
+ перегревая ЦП. Если вы удалите <filename>/dev/null</filename>
+ (что соответственно отключит трубу данных в ЦП), то ваш
+ процессор может охладиться, но система начнет переполняться
+ излишними данными и начнет работать с ошибками. Если у вас
+ быстрое сетевое подключение, вы можете охладить CPU, читая
+ данные из <filename>/dev/random</filename> и посылая их
+ куда-нибудь; однако вы рискуете перегреть ваше сетевое
+ соединение и <filename class="directory">/</filename> или
+ разозлить вашего провайдера, так как большинство данных
+ преобразуется в тепло на его оборудовании, но, как правило,
+ у него хорошее охлаждение, так что если вы не перестараетесь,
+ все должно быть в порядке.</para>
+
+ <para><emphasis>Пол Робинсон (Paul Robinson)
+ добавляет:</emphasis></para>
+
+ <para>Есть и другие методы. Как знает каждый хороший системный
+ администратор, частью хорошей практики является посылка данных на
+ экран интересным образом, чтобы феи, которые образуют картинку,
+ были счастливы. Экранные феи (часто неправильно называемые
+ <quote>пикселами</quote>) различаются по цвету головных уборов,
+ которые они носят
+ (красные, зеленые или синие), и прячутся или появляются (показывая,
+ таким образом, цвет своих шляп), когда получают немного пищи.
+ Видеоадаптеры преобразуют данные в еду для фей, а затем посылают
+ ее феям &mdash; чем дороже адаптер, тем лучше еда, тем лучше
+ ведут себя феи. Они также нуждаются в постоянной стимуляции
+ &mdash; вот зачем нужны хранители экранов.</para>
+
+ <para>Продолжив наше предположение, вы можете просто выдавать
+ случайные данные на консоль, таким образом позволяя феям их
+ потреблять. Это вовсе приводит к прекращению выделения тепла,
+ феи постоянно счастливы, а данные быстро исчезают, даже если
+ на вашем экране все выглядит несколько хаотично.</para>
+
+ <para>Как бывший администратор крупного провайдера, который имел
+ много проблем при попытке поддерживать постоянную температуру в
+ серверной комнате, я выступаю против того, чтобы люди посылали
+ ненужные им данные в сеть. Волшебников, которые выполняют
+ коммутацию пакетов и маршрутизацию, это также затрудняет.</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="advanced">
+ <title>Сложные темы</title>
+
+ <qandaset>
+ <qandaentry>
+ <question id="learn-advanced">
+ <para>Как можно узнать больше о внутреннем устройстве &os;?</para>
+ </question>
+
+ <answer>
+ <para>В настоящее время существует только одна книга по внутреннему
+ устройству ОС, посвящённая &os;, а именно <quote>The Design and
+ Implementation of the &os; Operating System</quote> Маршалла
+ Кёрка МакКузика (Marshall Kirk McKusick) и Джорджа В. Невилле-Нейла
+ (George V. Neville-Neil), ISBN 0-201-70245-2. В ней
+ рассматривается &os; версии 5.<replaceable>X</replaceable>.</para>
+
+ <para>Кроме того, большинство общих знаний о &unix; непосредственно
+ применимо к &os;.</para>
+
+ <para>Список относящихся к делу книг можно найти в разделе
+ Руководства <ulink
+ url="&url.books.handbook;/bibliography-osinternals.html">
+ Библиография по внутреннему устройству операционной
+ системы</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="how-to-contribute">
+ <para>Как можно оказать помощь проекту &os;?</para>
+ </question>
+
+ <answer>
+ <para>Пожалуйста, обратитесь к соответствующей <ulink
+ url="&url.articles.contributing;/article.html">статье</ulink>,
+ в которой вы получите советы относительно того, как это сделать.
+ Ваша помощь более чем приветствуется!</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="define-snap-release">
+ <para>Что такое снапшоты и релизы?</para>
+ </question>
+
+ <answer>
+ <para>В <ulink url="http://www.FreeBSD.org/cgi/cvsweb.cgi">Хранилище
+ CVS</ulink> сейчас находятся четыре активно/полуактивно
+ развивающихся ветки &os;. (Более ранние ветки изменяются
+ очень редко, именно поэтому в разработке только четыре
+ активных ветки):</para>
+
+ <itemizedlist>
+ <listitem>
+ <para>&rel3.releng;, также известная как
+ &rel3.stable;</para>
+ </listitem>
+
+ <listitem>
+ <para>&rel2.releng;, также известная как
+ &rel2.stable;</para>
+ </listitem>
+
+ <listitem>
+ <para>&rel.releng;, также известная как
+ &rel.stable;</para>
+ </listitem>
+
+ <listitem>
+ <para>&rel.head.releng;, также известная как
+ <emphasis>-CURRENT</emphasis> и &rel.head;</para>
+ </listitem>
+ </itemizedlist>
+
+ <para><literal>HEAD</literal> - это не реальный тэг ветки,
+ в отличие от остальных; это просто символьная константа
+ для обозначения
+ <quote><emphasis>текущего, не ветвящегося, находящегося в
+ разработке дерева</emphasis></quote>, то есть
+ <emphasis>-CURRENT</emphasis>.</para>
+
+ <para>На данный момент <emphasis>-CURRENT</emphasis> является
+ находящимся в разработке деревом &rel.head.relx;;
+ ветка &rel.stable;, &rel.releng;,
+ отделилась от <emphasis>-CURRENT</emphasis> &rel.relengdate;
+ года, а ветка &rel2.stable;,
+ &rel2.releng;, отделилась от
+ <emphasis>-CURRENT</emphasis> &rel2.relengdate;.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="custrel">
+ <para>Как самому сделать релиз?</para>
+ </question>
+
+ <answer>
+ <para>Пожалуйста, обратитесь к статье о <ulink
+ url="&url.articles.releng;/article.html">процессе выпуска
+ релизов</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="makeworld-clobbers">
+ <para>По команде <command>make <maketarget>world</maketarget></command>
+ были переустановлены все программы.</para>
+ </question>
+
+ <answer>
+ <para>Да, так и должно быть; как говорит название этой команды,
+ <command>make <maketarget>world</maketarget></command> выполняет
+ построение всех системных
+ файлов с нуля, так что в итоге можете быть уверены, что получите
+ чистую рабочую систему (вот почему это занимает столько
+ времени).</para>
+
+ <para>Если в момент запуска команд <command>make
+ <maketarget>world</maketarget></command> или <command>make
+ <maketarget>install</maketarget></command> определена переменная
+ окружения
+ <envar>DESTDIR</envar>, то вновь создаваемые файлы будут
+ помещены в дерево каталогов. идентичное существующему, с корнем,
+ располагающимся в <literal>${DESTDIR}</literal>. Однако некоторые
+ случайные комбинации модификаций совместно используемых библиотек
+ и версий компилируемых программ при исполнении команды
+ <command>make <maketarget>world</maketarget></command>, могут
+ этому помешать.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="cvsup-round-robin">
+ <para>Почему <hostid role="fqdn">cvsup.FreeBSD.org</hostid> не
+ является одной DNS-записью
+ для нескольких машин для распределения нагрузки между
+ несколькими <application>CVSup</application>-серверами?</para>
+ </question>
+
+ <answer>
+ <para>Хотя зеркала <application>CVSup</application> обновляются
+ с основного <application>CVSup</application>-сервера каждый
+ час, это обновление может происходить в любой момент в течение
+ часа. Это значит, что некоторые серверы будут иметь более новый
+ код, чем остальные, хотя разница между версиями кода не превышает
+ часа. Если бы для серверов <hostid
+ role="fqdn">cvsup.FreeBSD.org</hostid> использовалась одна
+ DNS-запись, то простое перенаправление пользователей на случайно
+ выбранный сервер <application>CVSup</application>, при условии,
+ что <application>CVSup</application> будет запускаться
+ два раза подряд, может привести к сгрузке кода, более старого, чем
+ тот, что присутствует в системе.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="ctm">
+ <para>Можно ли работать с <emphasis>-CURRENT</emphasis> при
+ ограниченном доступе в Internet?</para>
+ </question>
+
+ <answer>
+ <para>Да, это можно делать <emphasis>без</emphasis> скачивания
+ полного дерева исходных текстов с помощью <ulink
+ url="&url.books.handbook;/synching.html#CTM">системы
+ CTM</ulink>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="split-1392k">
+ <para>Как вы разделяете дистрибутив на файлы по 1392&nbsp;Кбайт?</para>
+ </question>
+
+ <answer>
+ <para>Команда &man.split.1; в современных BSD-системах имеет опцию
+ <option>-b</option>, позволяющую разрезать файлы на части с точностью до
+ байта.</para>
+
+ <para>Вот пример из файла
+ <filename>/usr/src/release/Makefile</filename>.</para>
+
+ <programlisting>ZIPNSPLIT= gzip --no-name -9 -c | split -b 1392k -</programlisting>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="submitting-kernel-extensions">
+ <para>Я написал некоторое добавление к ядру, кому его послать?</para>
+ </question>
+
+ <answer>
+ <para>Обратитесь к статье о том, как <ulink
+ url="&url.articles.contributing;/article.html">помочь проекту
+ &os;</ulink>, чтобы выяснить, как это сделать.</para>
+
+ <para>И спасибо Вам за Ваши усилия!</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="pnp-initialize">
+ <para>Как распознаются и инициализируются адаптеры ISA
+ Plug&nbsp;N&nbsp;Play?</para>
+ </question>
+
+ <answer>
+ <para>От: Фрэнка Дурды IV (Frank Durda IV)
+ <email>uhclem@nemesis.lonestar.org</email></para>
+
+ <para>Если рассматривать на самом низком уровне, то существует
+ несколько портов ввода/вывода, в которые должны выводить
+ информацию все адаптеры PnP, когда компьютер пытается
+ выполнить запрос о наличии установленных адаптеров. Так что,
+ когда запускается процедура определения адаптеров PnP, она
+ выполняет запрос о наличии каких-либо адаптеров PnP, а все
+ такие адаптеры выдают свой номер модели при чтении того же
+ порта ввода/вывода, поэтому процедура определения получит
+ ответ на свой запрос, состоящий из логически наложенных
+ номеров моделей, интерпретируемый как <quote>да</quote>.
+ В этом ответе по крайней мере один бит будет установлен в
+ единицу. Затем код определения адаптеров может
+ <quote>выключать</quote> адаптеры с ID (назначаемыми
+ &microsoft;/&intel;), большими, чем <literal>X</literal>.
+ Потом следует попытка определить, остались ли ещё адаптеры,
+ отвечающие на запрос. Если ответ <literal>0</literal>, то
+ адаптеров с ID, большими чем <literal>X</literal>, нет.
+ После этого делается попытка определить наличие адаптеров с
+ номерами, меньшими чем <literal>X</literal>. В заключение
+ происходит запрос на выключение адаптерам, большим чем
+ <literal>X&nbsp;-&nbsp;(limit&nbsp;/&nbsp;4)</literal>.
+ Запрос повторяется. Применив этот метод полудвоичного поиска
+ границ расположения ID достаточное количество раз, код
+ идентификации найдёт все адаптеры PnP, установленные в данной
+ машине за число итераций, гораздо меньшее, чем может занять
+ перебор 2<superscript>64</superscript> возможных вариантов
+ ID.</para>
+
+ <para>ID представляет собой два 32-разрядные числа (отсюда число
+ 2<superscript>64</superscript>) + 8 бит контрольной суммы.
+ Первые 32&nbsp;бита являются идентификатором производителя.
+ Они никогда не сообщаются, однако часто бывает, что различные
+ типы адаптеров от одного и того же производителя имеют
+ различные 32-битные значения идентификатора производителя.
+ Необходимость в 32&nbsp;разрядах только для задания
+ производителя адаптера выглядит несколько излишним.</para>
+
+ <para>Оставшиеся 32&nbsp;бита являются серийным номером или
+ чем-либо, делающим этот адаптер уникальным. Производитель
+ не должен выпускать других адаптеров, имеющих то же самое
+ значение этих битов, если, конечно, у них не различаются при
+ этом старшие биты идентификатора производителя. Так что
+ вы можете иметь несколько адаптеров одинакового типа; при
+ этом, 64-разрядные номера будут разными.</para>
+
+ <para>Группы по 32&nbsp;бита не могут быть нулевыми. Это
+ позволяет при логическом объединении OR их номеров получать
+ ненулевое значение во время начального поиска адаптеров.</para>
+
+ <para>Как только система определила ID всех адаптеров, она
+ активизирует каждый адаптер, по одному за раз (через те же
+ порты ввода/вывода), и определяет, какие ресурсы требуются
+ данному адаптеру, какие возможные прерывания доступны и т.д.
+ Сканирование и сбор информации происходит по всем адаптерам.</para>
+
+ <para>Эта информация соотносится с содержащейся в файлах ECU
+ на диске или в MLB BIOS. Поддержка PnP из ECU и BIOS для
+ аппаратуры на MLB обычно имеет синтетический характер, и
+ периферия не выполняет полностью процедуру настоящего PnP.
+ Однако, используя BIOS и информацию из ECU, процедура
+ инициализации может обнаружить устройства PnP, которые не
+ могут быть найдены другим способом.</para>
+
+ <para>Затем устройства PnP опрашиваются ещё раз для назначения
+ им портов ввода/вывода, DMA, IRQ и адресов отображаемой памяти.
+ Теперь устройства должны иметь именно такие настройки и они
+ должны оставаться такими до следующей перезагрузки, хотя нигде
+ не сказано, что вы не можете их менять, когда захотите.</para>
+
+ <para>Здесь сделано много упрощений, однако общую идею вы должны
+ уловить.</para>
+
+ <para>&microsoft; использовала для PnP некоторые порты статуса
+ первого принтера, по их логике, не существует адаптеров,
+ использующих эти адреса для ввода/вывода. Я обнаружил один
+ такой адаптер принтера от IBM, который декодирует запись в
+ порт статуса в момент начального опроса устройств PnP, на
+ что &microsoft; ответила <quote>хулиган</quote>. Так что они
+ выполняют запись в порт статуса принтера для установки адресов,
+ вдобавок используют этот адрес + <literal>0x800</literal>, и
+ ещё один порт ввода/вывода используют для чтения, который
+ может располагаться где угодно в диапазоне между
+ <literal>0x200</literal> и <literal>0x3ff</literal>.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="major-numbers">
+ <para>Мне нужно старшее число для написанного мною драйвера
+ устройства.</para>
+ </question>
+
+ <answer>
+ <para>В версиях &os;, вышедших после февраля 2003 года, есть
+ механизм динамического и автоматического выделения старших
+ номеров для драйверов устройств во время выполнения (смотрите
+ &man.devfs.5;), поэтому в этом нет необходимости.</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="alternate-directory-layout">
+ <para>Альтернативный метод размещения каталогов</para>
+ </question>
+
+ <answer>
+ <para>В ответ на вопрос о других методах размещения каталогов
+ могу сказать, что используемая в настоящее схема не претерпела
+ изменений с того момента, как я реализовал её в 1983 году.
+ Эти соглашения были разработаны для оригинальной файловой
+ системы FFS, и я никогда их не пересматривал. Эта схема хорошо
+ работает, позволяя избежать переполнения групп дорожек. Как
+ некоторые из вас заметили, она работает плохо при поиске.
+ Большинство файловых систем создаются из архивов, которые были
+ созданы с глубиной первого поиска (aka ftw). Это приводит к
+ тому, что их каталоги размещаются на нескольких группах дорожек,
+ создавая наихудший случай для последующего поиска глубиной один.
+ Если бы было известно общее количество каталогов, которые должны
+ быть созданы, выходом было бы создание каталогов в количестве
+ <literal>(total&nbsp;/&nbsp;fs_ncg)</literal> на каждую группу
+ дорожек. Очевидно, что пришлось бы придумать некоторую эвристику
+ для определения этого числа. Даже при использовании небольшого
+ фиксированного количества, скажем 10, ситуация улучшилась бы на
+ порядок. Чтобы различать операции восстановления от обычных
+ операций (для которых текущий алгоритм, вероятно, является
+ более разумным), вы могли бы использовать объединение в кластеры
+ объёмом до 10, если они помещаются в 10-секундном окне.
+ Как бы то ни было, я думаю, что это большое поле для
+ экспериментов.</para>
+
+ <para>&a.mckusick;, сентябрь 1998 года</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="kernel-panic-troubleshooting">
+ <para>Что делать при аварийном останове системы?</para>
+ </question>
+
+ <answer>
+ <para>Вот типичная паника ядра:</para>
+
+ <programlisting>Fatal trap 12: page fault while in kernel mode
+fault virtual address = 0x40
+fault code = supervisor read, page not present
+instruction pointer = 0x8:0xf014a7e5
+stack pointer = 0x10:0xf4ed6f24
+frame pointer = 0x10:0xf4ed6f28
+code segment = base 0x0, limit 0xfffff, type 0x1b
+ = DPL 0, pres 1, def32 1, gran 1
+processor eflags = interrupt enabled, resume, IOPL = 0
+current process = 80 (mount)
+interrupt mask =
+trap number = 12
+panic: page fault</programlisting>
+
+ <para>Если вы видите такое сообщение, просто его воспроизвести
+ и послать нам не достаточно. Здесь важно значение указателя
+ инструкций; к сожалению, его значение зависит
+ от конфигурации ядра. Другими словами, его значение меняется
+ в зависимости от конкретного ядра, которое вы используете.
+ Если вы используете ядро <filename>GENERIC</filename> одного
+ из снэпшотов, то кто-то ещё может отследить функцию, вызвавшую
+ ошибку, но если вы работаете со специально отконфигурированным
+ ядром, то только <emphasis>вы</emphasis> можете сказать нам,
+ где случилась ошибка.</para>
+
+ <para>Вот что вы должны сделать:</para>
+
+ <procedure>
+ <step>
+ <para>Запишите значение указателя инструкций. Заметьте,
+ что часть <literal>0x8:</literal> в этом случае не
+ важна: нам нужна часть <literal>0xf0xxxxxx</literal>.</para>
+ </step>
+
+ <step>
+ <para>Когда система перезагрузится, сделайте следующее:</para>
+
+ <screen>&prompt.user; <userinput><command>nm</command> <option>-n</option> <replaceable>kernel.that.caused.the.panic</replaceable> | <command>grep</command> f0xxxxxx</userinput></screen>
+
+ <para>где <literal>f0xxxxxx</literal> &mdash; это значение
+ указателя инструкций. Однако неприятность заключается в
+ том, что вы не получите точного соответствия, так как в
+ таблице имен ядра для точек входа в функции даны адреса
+ на начало функций, а указатель инструкций будет указывать
+ куда-то внутрь её тела. Если вы не получили точного
+ соответствия, опустите последнюю цифру в значении
+ указателя инструкций и попробуйте снова, то есть:</para>
+
+ <screen>&prompt.user; <userinput><command>nm</command> <option>-n</option> <replaceable>kernel.that.caused.the.panic</replaceable> | <command>grep</command> f0xxxxx</userinput></screen>
+
+ <para>Если и это не привело ни к каким результатам, отрежьте
+ следующую цифру. Повторяйте, пока не получите хоть что-то.
+ Результатом будет список функций, которые, возможно,
+ привели к аварийному останову. Этот механизм обнаружения
+ ошибочного места довольно неточен, но это всё же лучше,
+ чем ничего.</para>
+ </step>
+ </procedure>
+
+ <para>Тем не менее, лучшим способом выяснить причину, вызвавшую
+ аварийный останов, является получение аварийного дампа системы,
+ а затем использование &man.kgdb.1; для получения трассировки
+ вызовов в этом дампе.</para>
+
+ <para>В любом случае, метод таков:</para>
+
+ <procedure>
+ <step>
+ <para>Убедитесь в том, что в файле конфигурации ядра имеется
+ следующая строка
+ (<filename>/usr/src/sys/<replaceable>arch</replaceable>/conf/<replaceable>MYKERNEL</replaceable></filename>):</para>
+
+ <programlisting>makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols</programlisting>
+ </step>
+
+ <step>
+ <para>Перейдите в каталог <filename
+ class="directory">/usr/src</filename>:</para>
+
+ <screen>&prompt.root; <userinput><command>cd</command> <filename class="directory">/usr/src</filename></userinput></screen>
+ </step>
+
+ <step>
+ <para>Скомпилируйте ядро:</para>
+
+ <screen>&prompt.root; <userinput><command>make</command> <maketarget>buildkernel</maketarget> <makevar>KERNCONF</makevar>=<replaceable>MYKERNEL</replaceable></userinput></screen>
+ </step>
+
+ <step>
+ <para>Дождитесь завершения компиляции.</para>
+ </step>
+
+ <step>
+ <screen>&prompt.root; <userinput><command>make</command> <maketarget>installkernel</maketarget> <makevar>KERNCONF</makevar>=<replaceable>MYKERNEL</replaceable></userinput></screen>
+ </step>
+
+ <step>
+ <para>Выполните перезагрузку.</para>
+ </step>
+ </procedure>
+
+ <note>
+ <para>Если вы не используете переменную make
+ <makevar>KERNCONF</makevar>, то будет собрано и
+ установлено ядро <filename>GENERIC</filename>.</para>
+ </note>
+
+ <para>В процессе выполнения команды &man.make.1; будут
+ построены два ядра,
+ <filename>/usr/obj/usr/src/sys/<replaceable>MYKERNEL</replaceable>/kernel</filename>
+ и
+ <filename>/usr/obj/usr/src/sys/<replaceable>MYKERNEL</replaceable>/kernel.debug</filename>.
+ <filename>kernel</filename> будет установлен как
+ <filename>/boot/kernel/kernel</filename>, тогда как
+ <filename>kernel.debug</filename> может быть использован в
+ качестве источника отладочных символов для &man.kgdb.1;.</para>
+
+ <para>Чтобы включить сброс аварийного дампа, вам нужно
+ отредактировать файл <filename>/etc/rc.conf</filename> так,
+ чтобы устройство <literal>dumpdev</literal> указывало на
+ раздел подкачки (или имело значение <literal>AUTO</literal>).
+ В этом случае скрипты &man.rc.8; будут вызывать команду
+ &man.dumpon.8; для создания аварийных дампов. Также вы
+ можете запустить команду &man.dumpon.8; вручную. После
+ аварийной остановки аварийный дамп может быть получен с
+ помощью программы &man.savecore.8; если значение переменной
+ <literal>dumpdev</literal> было установлено в
+ <filename>/etc/rc.conf</filename>, скрипты &man.rc.8; запустят
+ &man.savecore.8; автоматически и поместят аварийный дамп в
+ каталог <filename class="directory">/var/crash</filename>.</para>
+
+ <note>
+ <para>Аварийные дампы &os; обычно имеют размер, равный
+ физическому объёму оперативной памяти вашей машины. Так
+ что если у вас установлено 512&nbsp;Мбайт ОЗУ, вы получите
+ дамп размером 512&nbsp;Мбайт. Поэтому вы должны
+ удостовериться, что в каталоге <filename
+ class="directory">/var/crash</filename>
+ достаточно места для хранения дампа. Либо вы можете вручную
+ запустить &man.savecore.8; и создать аварийный дамп в другом
+ каталоге, где достаточно места. Размер аварийного дампа
+ можно уменьшить, указав в конфигурации ядра
+ <literal>options MAXMEM=<replaceable>N</replaceable></literal>,
+ где <replaceable>N</replaceable> &mdash; значение в Кбайт
+ для объёма памяти, которое будет использоваться ядром.
+ Например, если у вас 1&nbsp;Гбайт ОЗУ, вы можете ограничить
+ использование памяти ядром 128&nbsp;Мбайтами, так что
+ размер аварийного дампа будет равен 128&nbsp;Мбайт, а не
+ 1&nbsp;Гбайт.</para>
+ </note>
+
+ <para>Как только вы получили аварийный дамп, вы можете выполнить
+ трассировку вызовов с помощью &man.kgdb.1; таким образом:</para>
+
+ <screen>&prompt.user; <userinput><command>kgdb</command> <filename>/usr/obj/usr/src/sys/<replaceable>MYKERNEL</replaceable>/kernel.debug</filename> <filename class="directory">/var/crash/<replaceable>vmcore.0</replaceable></filename></userinput>
+<prompt>(kgdb)</prompt> <userinput>backtrace</userinput></screen>
+
+ <para>Заметьте, что при этом может быть выведено несколько экранов
+ информации; в идеале вы должны использовать &man.script.1; для их
+ перехвата. При использовании необработанного образа ядра со всей
+ отладочной информацией может быть найдена конкретная строка исходного
+ текста ядра, при достижении которой случилась аварийная остановка.
+ Для выяснения последовательности событий, приведших к аварийному
+ останову, обычно читается трассировка стека снизу вверх. Вы можете
+ также использовать &man.kgdb.1; для вывода значений различных
+ переменных или структур, чтобы выяснить состояние системы во время
+ аварии.</para>
+
+ <tip>
+ <para>Теперь, если вы в самом деле душевнобольной и у вас есть
+ второй компьютер, то вы можете настроить &man.kgdb.1; для
+ удалённой отладки, так, что сможете использовать &man.kgdb.1;
+ на одном компьютере, чтобы отладить ядро на другом, включая
+ использование точек останова, пошагового прохода по коду
+ ядра, всё как с обычной прикладной программой.</para>
+ </tip>
+
+ <note>
+ <para>Если у вас включена поддержка <literal>DDB</literal> и
+ ядро переходит в режим отладки, вы можете намеренно вызвать
+ аварийный останов (и создание аварийного дампа), набрав
+ <literal>panic</literal> в командной строке
+ <literal>ddb</literal>. Этот процесс может снова вызвать
+ отладчик. В этом случае наберите <literal>continue</literal>
+ и процесс будет завершён созданием аварийного дампа.</para>
+ </note>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="dlsym-failure">
+ <para>Перестала работать функция <function>dlsym()</function>
+ для исполняемых файлов ELF!</para>
+ </question>
+
+ <answer>
+ <para>По умолчанию при работе с форматом ELF символы,
+ определённые в исполняемом файле, не доступны динамическому
+ загрузчику. Поэтому при вызове функции
+ <function>dlsym()</function>, которая осуществляет поиск по
+ дескриптору, полученному после вызова <function>dlopen(NULL,
+ flags)</function>, желаемый результат достигнут не будет.</para>
+
+ <para>Если вы хотите осуществить поиск в выполнимом файле
+ процесса с помощью функции <function>dlsym()</function>,
+ вам нужно скомпоновать выполнимый файл с опцией
+ <option>--export-dynamic</option> компоновщика ELF
+ (&man.ld.1;).</para>
+ </answer>
+ </qandaentry>
+
+ <qandaentry>
+ <question id="change-kernel-address-space">
+ <para>Как я могу увеличить или уменьшить адресное пространство
+ ядра в архитектуре i386?</para>
+ </question>
+
+ <answer>
+ <para>По умолчанию размер адресного пространства ядра для i386
+ равен 1&nbsp;Гбайт (2&nbsp;Гбайт для PAE). Если вы используете
+ &os; в качестве сервера с интенсивной сетевой нагрузкой (скажем,
+ большой FTP или HTTP сервер) или хотите использовать ZFS, то
+ вы можете обнаружить, что этого недостаточно.</para>
+
+ <para>Чтобы увеличить доступное пространство, добавьте следующую
+ строку в файл конфигурации ядра и пересоберите его:</para>
+
+ <programlisting>options KVA_PAGES=<replaceable>N</replaceable></programlisting>
+
+ <para>Чтобы получить нужное значение для
+ <replaceable>N</replaceable>, разделите желаемый размер
+ адресного пространства (в мегабайтах) на четыре. (Например,
+ для 2&nbsp;Гбайт это будет <literal>512</literal>.)</para>
+ </answer>
+ </qandaentry>
+ </qandaset>
+ </chapter>
+
+ <chapter id="acknowledgments">
+ <title>Наши благодарности</title>
+
+ <para>Этот небольшой скромный документ с ответами на часто задаваемые
+ вопросы создавался, переписывался, редактировался, сокращался,
+ растягивался, уродовался, потрошился, пристально разглядывался,
+ полностью перетряхивался, обдумывался, отвергался, перестраивался,
+ критиковался и снова укреплялся в течение последнего десятилетия силами
+ сотен, если не тысяч, людей. Постоянно.</para>
+
+ <para>Мы хотим поблагодарить всех их и приглашаем вас <ulink
+ url="&url.articles.contributing;/article.html">присоединиться</ulink>,
+ чтобы сделать этот FAQ ещё лучше.</para>
+ </chapter>
+
+ &bibliography;
+</book>