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.xml7543
1 files changed, 0 insertions, 7543 deletions
diff --git a/ru_RU.KOI8-R/books/faq/book.xml b/ru_RU.KOI8-R/books/faq/book.xml
deleted file mode 100644
index 61d2001340..0000000000
--- a/ru_RU.KOI8-R/books/faq/book.xml
+++ /dev/null
@@ -1,7543 +0,0 @@
-<?xml version="1.0" encoding="koi8-r"?>
-<!DOCTYPE book PUBLIC "-//FreeBSD//DTD DocBook XML V5.0-Based Extension//EN"
- "http://www.FreeBSD.org/XML/share/xml/freebsd50.dtd" [
-<!ENTITY bibliography SYSTEM "../../../share/xml/bibliography.xml">
-<!ENTITY rel.numbranch "4"> <!-- number of branches that follow in this list -->
-<!ENTITY rel.head "<emphasis xmlns='http://docbook.org/ns/docbook'>11-CURRENT</emphasis>">
-<!ENTITY rel.head.relx "11.<replaceable xmlns='http://docbook.org/ns/docbook'>X</replaceable>">
-<!ENTITY rel.head.releng "<symbol xmlns='http://docbook.org/ns/docbook'>head/</symbol>">
-<!ENTITY rel.relx "10.<replaceable xmlns='http://docbook.org/ns/docbook'>X</replaceable>">
-<!ENTITY rel.stable "<emphasis xmlns='http://docbook.org/ns/docbook'>10-STABLE</emphasis>">
-<!ENTITY rel.releng "<symbol xmlns='http://docbook.org/ns/docbook'>stable/10/</symbol>">
-<!ENTITY rel.relengdate "в январе 2014 года">
-<!ENTITY rel2.relx "9.<replaceable xmlns='http://docbook.org/ns/docbook'>X</replaceable>">
-<!ENTITY rel2.stable "<emphasis xmlns='http://docbook.org/ns/docbook'>9-STABLE</emphasis>">
-<!ENTITY rel2.releng "<symbol xmlns='http://docbook.org/ns/docbook'>stable/9/</symbol>">
-<!ENTITY rel2.relengdate "в сентябре 2011 года">
-<!ENTITY rel3.relx "8.<replaceable xmlns='http://docbook.org/ns/docbook'>X</replaceable>">
-<!ENTITY rel3.stable "<emphasis xmlns='http://docbook.org/ns/docbook'>8-STABLE</emphasis>">
-<!ENTITY rel3.releng "<symbol xmlns='http://docbook.org/ns/docbook'>stable/8/</symbol>">
-<!ENTITY rel3.relengdate "в августе 2009 года">
-]>
-<!--
- 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: r46459
--->
-<book xmlns="http://docbook.org/ns/docbook" xmlns:xlink="http://www.w3.org/1999/xlink" version="5.0" xml:lang="ru">
- <info><title>Часто задаваемые вопросы по &os;
- &rel3.relx;, &rel2.relx; и &rel.relx;</title>
-
-
- <author><orgname>Проект документации &os;</orgname></author>
-
- <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>
- <year>2013</year>
- <year>2014</year>
- <year>2015</year>
- <holder>The &os; Documentation Project</holder>
- </copyright>
-
- &legalnotice;
-
- <legalnotice xml:id="trademarks" role="trademarks">
- &tm-attrib.freebsd;
- &tm-attrib.adobe;
- &tm-attrib.ibm;
- &tm-attrib.ieee;
- &tm-attrib.intel;
- &tm-attrib.linux;
- &tm-attrib.microsoft;
- &tm-attrib.netbsd;
- &tm-attrib.opengroup;
- &tm-attrib.sgi;
- &tm-attrib.sun;
- &tm-attrib.general;
- </legalnotice>
-
- <releaseinfo>$FreeBSD$</releaseinfo>
-
- <abstract>
- <para>Этот документ является так называемым
- <acronym>FAQ</acronym> (Frequently Asked Questions),
- то есть списком Часто Задаваемых Вопросов по &os; версий
- &rel3.relx;, &rel2.relx; и &rel.relx;.
- Мы прилагаем все усилия, чтобы сделать этот
- <acronym>FAQ</acronym> максимально
- информативным; если у вас есть идеи по его усовершенствованию,
- шлите их на адрес &a.doc;.</para>
-
- <para>Последняя редакция этого документа всегда доступна с <link
- xlink:href="http://www.FreeBSD.org/doc/en_US.ISO8859-1/books/faq/index.html">
- Web-сервера &os;</link>. Его также
- можно получить в виде одного большого <link xlink:href="book.html">
- HTML-файла</link> по HTTP или в ряде других форматов с <link
- xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">FTP-сервера</link>.</para>
- </abstract>
- </info>
-
- <chapter xml:id="introduction">
- <title>Вступление</title>
-
- <qandaset>
- <qandaentry>
- <question xml:id="what-is-FreeBSD">
- <para>&os; - что это такое?</para>
- </question>
-
- <answer>
- <para>&os; - это современная операционная система для настольных
- компьютеров, ноутбуков, серверов и встраиваемых систем
- с поддержкой большого количества <link
- xlink:href="http://www.FreeBSD.org/ru/platforms/">платформ</link>.</para>
-
- <para>В основе &os; лежит операционная система
- <quote>4.4BSD-Lite</quote> Калифорнийского Университета (Беркли)
- с некоторыми усовершенствованиями из <quote>4.4BSD-Lite2</quote>.
- Также она косвенно
- базируется на 386BSD (BSD Net/2, перенесённой на платформу &i386;
- Уильямом Джолитцем (William Jolitz)), хотя от того первоначального
- кода осталось очень мало.</para>
-
- <para>&os; используется компаниями, Интернет-провайдерами,
- научными работниками, профессионалами в вычислительной технике,
- студентами и рядовыми пользователями по всему миру для работы,
- образования и отдыха.</para>
-
- <para>Для более детального знакомства с &os; обратитесь к
- <link xlink:href="&url.books.handbook;/index.html">Руководству
- по &os;</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="FreeBSD-goals">
- <para>Какова цель &os;?</para>
- </question>
-
- <answer>
- <para>Цель проекта &os; - предоставить быструю и стабильную
- операционную систему общего назначения, которую можно
- использовать в любых целях без каких-либо ограничений.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="bsd-license-restrictions">
- <para>Есть ли в лицензии &os; какие-то ограничения?</para>
- </question>
-
- <answer>
- <para>Да. Эти ограничения не касаются аспектов использования
- кода, но главным образом описывают отношение к Проекту &os;.
- Текст лицензионного соглашения доступен <link
- xlink:href="http://www.FreeBSD.org/ru/copyright/freebsd-license.html">здесь</link>,
- и вкратце он может быть изложен следующим образом:</para>
-
- <itemizedlist>
- <listitem>
- <para>Не говорите, что это написано вами.</para>
- </listitem>
-
- <listitem>
- <para>Не судитесь с нами, если что-то не работает.</para>
- </listitem>
-
- <listitem>
- <para>Не удаляйте и не изменяйте лицензию.</para>
- </listitem>
- </itemizedlist>
-
- <para>Многие из нас вкладывают в проект значительные усилия и
- определённо были бы не против получения финансовой поддержки, но
- требовать её мы не будем. Мы надеемся, что наша основная и самая
- значительная <quote>миссия</quote> - предоставить код всем
- желающим, для любых целей, так чтобы он нашел самое широкое
- применение и принёс наибольшую пользу. Это, на наш взгляд, одна
- из самых фундаментальных целей Free Software, которую мы с
- энтузиазмом поддерживаем.</para>
-
- <para>Часть исходного кода нашей системы, подпадающая под действие
- <link xlink:href="http://www.FreeBSD.org/copyright/COPYING">GNU General
- Public License (GPL)</link> или <link xlink:href="http://www.FreeBSD.org/copyright/COPYING.LIB">GNU Library
- General Public License (LGPL)</link>, имеет несколько
- больше ограничений, хотя и представляет собой навязывание доступа к
- исходным текстам, а не наоборот, как обычно. Из-за дополнительных
- сложностей, которые могут возникнуть в случае коммерческого
- использования программного обеспечения GPL, мы стараемся, где
- только это возможно, заменить подобное программное обеспечение
- аналогичным, но подпадающим под менее строгую <link xlink:href="http://www.FreeBSD.org/copyright/freebsd-license.html">
- лицензию &os;</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="replace-current-OS">
- <para>Может ли &os; заменить операционную систему, используемую
- мною сейчас?</para>
- </question>
-
- <answer>
- <para>Для большинства людей, да. Но этот ответ не так уж
- однозначен.</para>
-
- <para>Большинство пользователей на самом деле не используют
- операционную систему. Они работают с приложениями. Именно
- прикладные программы и используют операционную систему. &os;
- разработана для того, чтобы дать надежное и полнофункциональное
- окружение для приложений. Она поддерживает широкий спектр
- Web-браузеров, офисных пакетов, программ для работы с электронной
- почтой, графических пакетов, программных сред, сетевых серверов и
- многое другое. Большинство этих
- приложений могут быть получено из <link xlink:href="http://www.FreeBSD.org/ports/">Коллекции
- Портов</link>.</para>
-
- <para>Если приложение доступно только для одной операционной
- системы, то нельзя всего лишь заменить эту операционную
- систему. Однако есть вероятность, что похожая
- программа существует для &os;. В качестве сервера для офиса,
- или сервера Интернет, или надежной рабочей станции &os;
- практически всегда справится со всем, что вам нужно. Многие
- пользователи по всему миру, включая как новичков, так и опытных
- администраторов &unix;, используют &os; в качестве своей
- единственной настольной операционной системы.</para>
-
- <para>Пользователи при переходе на &os; с другого варианта
- &unix; найдут для себя &os; очень похожей. Пользователей
- &windows; и &macos;, напротив, может заинтересовать <link
- xlink:href="http://www.pcbsd.org/">PC-BSD</link>,
- дистрибутив на основе &os;. Пользователям, которые не
- использовали до этого &unix;, понадобится затратить
- дополнительное время на изучение подхода &unix; к работе.
- Этот <acronym>FAQ</acronym> и <link
- xlink:href="&url.books.handbook;/index.html">Руководство по
- &os;</link> являются прекрасным способом начать это
- изучение.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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 xml:id="differences-to-other-bsds">
- <para>В чём заключается разница между &os; и NetBSD, OpenBSD
- и другими операционными системами с открытыми кодами
- семейства BSD?</para>
- </question>
-
- <answer>
- <para>Джеймс Ховард (James Howard) создал хорошее описание
- истории и различий между различными проектами под
- названием <link
- xlink:href="http://www.freebsdworld.gr/freebsd/bsd-family-tree.html">Семейное
- древо BSD</link>, в котором даётся подробный ответ на
- этот вопрос. Некоторая информация там устарела, но
- историческая часть остаётся точной.</para>
-
- <para>Многие из проектов семейства BSD обмениваются
- изменениями и готовым кодом даже сегодня. Все они
- происходят от общего предка.</para>
-
- <para>Цели проекта &os; описаны выше в <xref
- linkend="FreeBSD-goals"/>. Цели других наиболее
- известных проектов семейства BSD можно кратко описать
- так:</para>
-
- <itemizedlist>
- <listitem>
- <para>OpenBSD в первую очередь ориентируется на
- безопасность операционной системы. Команда OpenBSD
- написала &man.ssh.1; и &man.pf.4;, которые затем были
- портированы во &os;.</para>
- </listitem>
-
- <listitem>
- <para>NetBSD ориентируется на простое портирование на
- другие аппаратные платформы.</para>
- </listitem>
-
- <listitem>
- <para>DragonFly&nbsp;BSD отделилась от &os;&nbsp;4.8,
- и с тех пор в ней были разработаны многие интересные
- собственные функциональные возможности, включая
- файловую систему HAMMER и поддержку <quote>vkernels</quote>
- &mdash; запуска ядра в пользовательском режиме.</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="latest-version">
- <para>Какова последняя версия &os;?</para>
- </question>
-
- <answer>
- <para>На любом этапе разработки &os; может существовать
- несколько параллельных веток. Релизы &rel.relx; выполняются
- из ветки &rel.stable;, а релизы &rel2.relx; выполняются из
- &rel2.stable;.</para>
-
- <para>До выпуска 9.0 линейка &rel2.relx; была
- известна как <emphasis>-STABLE</emphasis>.
- Однако к моменту выхода &rel.head.relx; линейка &rel2.relx;
- получит статус <quote>extended support</quote> (расширенная
- поддержка), и исправления будут вноситься только для серьезных
- проблем, к примеру исправления, связанные с безопасностью.
- <!--Из
- ветки &rel2.stable; новые релизы выпускаться не будут, ветка
- считается <quote>legacy</quote> (устаревшая), и большинство
- текущих изменений будет уже частью только &rel.stable; и
- &rel2.stable;.--></para>
-
- <para>Версия <link
- xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/i386/&rel.current;-RELEASE/">&rel.current;</link>,
- дата выхода &rel.current.date;, является последним релизом
- в ветке &rel.stable;. Версия <link
- xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel2.current;-RELEASE/">&rel2.current;</link>,
- дата выхода &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; можно получить
- на странице <link
- xlink:href="http://www.FreeBSD.org/ru/releng/index.html">Информации
- о подготовке релизов</link> и на странице Справочника
- &man.release.7;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="current">
- <para>Что такое <emphasis>&os;-CURRENT</emphasis>?</para>
- </question>
-
- <answer>
- <para><link
- xlink:href="&url.books.handbook;/current-stable.html#current">
- &os.current;</link> - это версия операционной системы,
- находящаяся в стадии разработки, которая должна потом стать
- новой веткой &os.stable;. Таким образом, она представляет
- реальный интерес только для разработчиков системы и её фанатов.
- Обратитесь к <link
- xlink:href="&url.books.handbook;/current-stable.html#current">
- соответствующему
- разделу</link> <link xlink:href="&url.books.handbook;/index.html">
- Руководства</link> для прояснения деталей работы с
- <emphasis>-CURRENT</emphasis>.</para>
-
- <para>Пользователям, не знакомым с &os;, не
- следует использовать &os.current;. Эта ветвь зачастую меняется
- очень быстро и иногда из-за ошибок может быть не работоспособна.
- Те, кто используют &os.current;, должны быть в состоянии
- изучить проблему, найти причину и сообщить о этом.</para>
-
- <para>Из веток <emphasis>-CURRENT</emphasis> и
- <emphasis>-STABLE</emphasis> выпускаются <link
- xlink:href="&url.base;/snapshots/">снэпшоты</link> &os;.
- Их предназначение:</para>
-
- <itemizedlist>
- <listitem>
- <para>Тестирование самой последней версии программы установки
- системы.</para>
- </listitem>
-
- <listitem>
- <para>Дать людям, которые хотят работать с
- <emphasis>-CURRENT</emphasis> или <emphasis>-STABLE</emphasis>,
- но не имеют времени или возможности (пропускной способности)
- для отслеживания ежедневных изменений, простой способ её
- установки.</para>
- </listitem>
-
- <listitem>
- <para>Фиксация точки для последующих ссылок в случае,
- если позже мы что-нибудь очень сильно сломаем. (Хотя
- Subversion, как
- правило, не позволяет случиться ничему такому ужасному.)</para>
- </listitem>
-
- <listitem>
- <para>Все новые возможности, которым требуется тестирование,
- должны иметь как можно больше потенциальных тестеров.</para>
- </listitem>
- </itemizedlist>
-
- <para>Не утверждается, что всякий снэпшот
- <emphasis>-CURRENT</emphasis> имеет качество
- <quote>готового продукта</quote>. Если нужна стабильно
- работающая и полностью оттестированная система, то
- придерживайтесь использования полных релизов или
- используйте снэпшоты <emphasis>-STABLE</emphasis>.</para>
-
- <para>Снэпшот-релизы доступны непосредственно <link xlink:href="&url.base;/snapshots/">отсюда</link>.</para>
-
- <para>Официальные снэпшоты постоянно генерируются
- для всех активно разрабатываемых веток.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="stable">
- <para>В чём смысл <emphasis>&os;-STABLE</emphasis>?</para>
- </question>
-
- <answer>
- <para>После того, как была выпущена &os; 2.0.5, разработка &os;
- разделилась на две части. Одна ветка получила название <link
- xlink:href="&url.books.handbook;/current-stable.html#stable">-STABLE</link>,
- а другая <link
- xlink:href="&url.books.handbook;/current-stable.html#current">-CURRENT</link>.
- <emphasis>&os;-STABLE</emphasis> предназначена для
- провайдеров услуг Интернет и
- других коммерческих пользователей, для которых неожиданные
- изменения или экспериментальные возможности
- весьма нежелательны. В неё вносятся только хорошо оттестированные
- исправления и другие небольшие последовательные усовершенствования.
- С другой стороны, <emphasis>&os;-CURRENT</emphasis> являлась
- единой веткой, не
- разрываемой с момента выхода версии 2.0 и ведущей к
- &rel.current;-RELEASE и последующим релизам. Для получения
- более подробной информации по веткам обратитесь к
- разделу статьи <quote><link
- xlink:href="&url.articles.releng;/release-proc.html#rel-branch">
- Подготовка релизов &os;: Создание ветки
- релиза</link></quote>. Статус веток и расписание
- предстоящих релизов можно получить на странице <link xlink:href="http://www.FreeBSD.org/releng">Информация о подготовке
- релизов</link>.</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 xml:id="release-freq">
- <para>В какой момент выпускаются новые версии &os;?</para>
- </question>
-
- <answer>
- <para>&a.re; выпускает новую старшую версию &os; в среднем
- каждые 18 месяцев и младшие версии каждые 8 месяцев. Даты
- релизов обычно объявляются заранее, так что те, кто
- работает над системой, знают, когда их проекты должны быть
- закончены и протестированы. Период тестирования предшествует
- выходу каждого релиза, для того, чтобы удостовериться в том, что
- добавление новых возможностей не повлияло на стабильность работы
- релиза. Многие пользователи расценивают такую осторожность
- как одну из приятнейших черт &os;, хотя необходимость дожидаться
- <emphasis>-STABLE</emphasis> для получения всех этих новых
- возможностей может несколько разочаровывать.</para>
-
- <para>Дополнительная информация о процессе подготовки релиза (в том
- числе планы выпуска последующих релизов) может быть найдена на
- страницах Web-сайта &os;, посвящённых <link xlink:href="http://www.FreeBSD.org/releng/index.html">выпуску
- релизов</link>.</para>
-
- <para>Для тех, кому нужно или хочется, еженедельно выпускаются
- бинарные снапшоты, как описано выше.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="responsible">
- <para>Кто разрабатывает &os;?</para>
- </question>
-
- <answer>
- <para>Решения, которые касаются ключевых моментов в проекте &os;,
- такие, как общее направление развития проекта или кто
- может добавлять код к дереву исходных текстов, принимаются <link xlink:href="&url.base;/administration.html#t-core">основной
- командой</link> разработчиков (Core Team), состоящей из 9 человек.
- Также существует многочисленная группа, состоящая из более чем 350
- так называемых <link
- xlink:href="&url.articles.contributors;/article.html#staff-committers">
- коммиттеров</link> (committers), которые могут вносить изменения
- прямо в дерево исходных текстов &os;.</para>
-
- <para>Однако большинство нетривиальных изменений широко обсуждается
- в <link linkend="mailing">списках рассылки</link>, и не существует
- никаких ограничений на участие в подобных дискуссиях.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="where-get">
- <para>Где можно найти &os;?</para>
- </question>
-
- <answer>
- <para>Все основные релизы &os; доступны по FTP с <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/">FTP-сервера
- &os;</link>:</para>
-
- <itemizedlist>
- <listitem>
- <para>Последний релиз &rel.stable;,
- &rel.current;-RELEASE, можно найти в <link
- xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/i386/&rel.current;-RELEASE">каталоге
- &rel.current;-RELEASE</link>.</para>
- </listitem>
-
- <listitem>
- <para><link
- xlink:href="&url.base;/snapshots/">Снэпшот-релизы</link>
- для веток <link linkend="current">-CURRENT</link> и
- <link linkend="stable">-STABLE</link> выпускаются
- ежемесячно, но они нужны исключительно для
- разработчиков и тех, кто тестирует самые последние
- наработки.</para>
- </listitem>
-
- <listitem>
- <para>Последний релиз &rel2.stable;,
- &rel2.current;-RELEASE, можно найти в <link
- xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/releases/i386/&rel2.current;-RELEASE/">каталоге
- &rel2.current;-RELEASE</link>.</para>
- </listitem>
- </itemizedlist>
-
- <para>Информация о получении/приобретении &os; на CD, DVD и
- других носителях доступна в <link xlink:href="&url.books.handbook;/mirrors.html">Руководстве</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="access-pr">
- <para>Как можно получить доступ к базе сообщений о проблемах (Problem
- Report)?</para>
- </question>
-
- <answer>
- <para>База данных всех сообщений пользователей о проблемах
- может быть запрошена с помощью нашего <link
- xlink:href="https://bugs.FreeBSD.org/search/">Web-интерфейса</link>.</para>
-
- <para>Можно использовать <link
- xlink:href="&url.base;/support/bugreports.html">Web-интерфейс</link>
- для отсылки сообщений об ошибках через браузер.</para>
-
- <para>Перед тем, как посылать сообщение об ошибке,
- прочтите статью <link xlink:href="&url.articles.problem-reports;/article.html">Составление
- сообщений о проблеме во &os;</link> о том, как писать хорошие
- сообщения об ошибках.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter xml:id="support">
- <title>Документация и поддержка</title>
-
- <qandaset>
- <qandaentry>
- <question xml:id="books">
- <para>Есть ли хорошие книги по &os;?</para>
- </question>
-
- <answer>
- <para>В рамках проекта создан широкий спектр документации,
- которая доступна on-line по следующей ссылке: <uri
- xlink:href="http://www.FreeBSD.org/docs.html">http://www.FreeBSD.org/docs.html</uri>.
- Кроме того, в <link
- linkend="bibliography">Библиографии</link> в конце этого
- <acronym>FAQ</acronym> и в <link
- xlink:href="&url.books.handbook;/bibliography.html">Руководстве</link>
- имеются ссылки на другие рекомендуемые для чтения
- книги.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="doc-formats">
- <para>Есть ли версии документации в другом формате, например,
- в виде обычного текста ASCII или &postscript;?</para>
- </question>
-
- <answer>
- <para>Да. Документация имеется в нескольких различных форматах и
- упакованная разными способами на FTP-сервере &os;, и находится
- она в каталоге <link xlink:href="ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/">
- /pub/FreeBSD/doc/</link>.</para>
-
- <para>Документация подразделяется на категории различными способами.
- Это включает:</para>
-
- <itemizedlist>
- <listitem>
- <para>Имя документа, например, <literal>faq</literal> или
- <literal>handbook</literal>.</para>
- </listitem>
-
- <listitem>
- <para>Язык и кодировка документа. Они опираются на имена
- локализаций, которые находятся в каталоге
- <filename>/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.UTF-8</literal></entry>
-
- <entry>Упрощённый китайский (Китай, кодировка
- UTF-8)</entry>
- </row>
-
- <row>
- <entry><literal>zh_TW.UTF-8</literal></entry>
-
- <entry>Традиционный китайский (Тайвань, кодировка
- UTF-8)</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>article.pdf</filename>,
- <filename>book.html</filename>, и так далее.</para>
-
- <para>Эти файлы затем сжимаются по двум схемам сжатия,
- <literal>zip</literal> или <literal>bz2</literal>.
- Для работы с этими файлами можно использовать
- &man.tar.1;.</para>
-
- <para>Таким образом, сжатая в <literal>bzip2</literal>
- версия Руководства в формате &postscript;, будет
- находиться в файле
- с именем <filename>book.ps.bz2</filename> в каталоге
- <filename>handbook/</filename>.</para>
- </listitem>
- </orderedlist>
- </listitem>
- </itemizedlist>
-
- <para>После выбора формата и способа компрессии, сгрузите
- упакованные файлы, распакуйте их, а затем скопируйте
- документацию в соответствующие места.</para>
-
- <para>Например, версия <acronym>FAQ</acronym> в виде
- отдельных 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>tar xvf book.html-split.tar.bz2</userinput></screen>
-
- <para>Если файл сжат, <application>tar</application>
- автоматически определит подходящий формат и корректно
- распакует файл в набор файлов <filename>.html</filename>.
- Главным является <filename>index.html</filename>, и в нём
- находится оглавление, вводный материал и ссылки на
- остальные части документа.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="mailing">
- <para>Где найти информацию по спискам рассылки &os;?
- Какие существуют телеконференции по &os;?</para>
- </question>
-
- <answer>
- <para>Исчерпывающая информация содержится в <link
- xlink:href="&url.books.handbook;/eresources.html#eresources-mail">разделе</link>
- Руководства, который посвящён спискам рассылки, и в <link
- xlink:href="&url.books.handbook;/eresources-news.html">разделе</link>
- Руководства, касающемся телеконференций.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="irc">
- <para>Существуют ли каналы IRC (Internet Relay Chat) по
- &os;?</para>
- </question>
-
- <answer>
- <para>Да, большинство сетей IRC имеют канал &os;:</para>
-
- <itemizedlist>
- <listitem>
- <para>Канал <literal>#FreeBSDhelp</literal> в сети <link
- xlink:href="http://www.efnet.org/index.php">EFNet</link>
- предназначен для помощи пользователям &os;.</para>
- </listitem>
-
- <listitem>
- <para>Канал <literal>#FreeBSD</literal> в сети
- <link xlink:href="http://freenode.net/">Freenode</link>
- предназначен для помощи общего характера, на нём
- в любое время присутствует много посетителей.
- Общение в течение уже некоторого времени известно своей
- тенденцией сводиться к разговорам не по теме, но приоритет
- отдается пользователям с вопросами по &os;. Другие
- пользователи помогут разобраться в основах,
- отсылая к Руководству по мере возможности и предлагая
- ссылки для более глубокого изучения интересующих тем.
- Это преимущественно англоговорящий канал, но туда
- приходят пользователи со всего мира. Тем, для кого
- английский не является родным, следует сперва задать
- вопрос на английском и затем перейти на подходящий
- канал <literal>##freebsd-lang</literal>.</para>
- </listitem>
-
- <listitem>
- <para>Канал <literal>#FreeBSD</literal> в сети <link xlink:href="http://www.dal.net/">DALNET</link>
- доступен на сервере <systemitem>irc.dal.net</systemitem> в США и на
- <systemitem>irc.eu.dal.net</systemitem> в Европе.</para>
- </listitem>
-
- <listitem>
- <para>Канал <literal>#FreeBSD</literal> в сети <link xlink:href="http://www.undernet.org/">UNDERNET</link>
- доступен на серверах <systemitem>us.undernet.org</systemitem> в США и
- <systemitem>eu.undernet.org</systemitem> в Европе. Так как это канал
- взаимопомощи, приготовьтесь к чтению документации, к которой
- вас отошлют.</para>
- </listitem>
-
- <listitem>
- <para>Канал <literal>#FreeBSD</literal> в сети
- <link xlink:href="http://www.rusnet.org.ru/">RUSNET</link>
- это канал для русскоговорящих посетителей, посвящённый
- помощи пользователям &os;. Также это хорошее место
- для нетехнических дискуссий.</para>
- </listitem>
-
- <listitem>
- <para>Канал <literal>#bsdchat</literal> в сети
- <link xlink:href="http://freenode.net/">Freenode</link>
- это канал для посетителей, говорящих на китайском
- традиционном языке (кодировка UTF-8), посвящённый
- помощи пользователям &os;. Также это хорошее место
- для нетехнических дискуссий.</para>
- </listitem>
- </itemizedlist>
-
- <para>На &os; wiki имеется <link
- xlink:href="http://wiki.freebsd.org/IrcChannels">хороший список</link>
- каналов IRC.</para>
-
- <para>Все каналы разные и не имеют отношения друг к другу.
- Поскольку их стили общения отличаются, попробуйте каждый,
- пока не найдёте подходящий вашему стилю общения.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="forums">
- <para>Есть ли какие-нибудь web-форумы для обсуждения &os;?</para>
- </question>
-
- <answer>
- <para>Официальные форумы &os; расположены по адресу <link xlink:href="https://forums.FreeBSD.org/">https://forums.FreeBSD.org/</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="training">
- <para>Где можно пройти платные курсы по &os; и получить
- поддержку?</para>
- </question>
-
- <answer>
- <para><link xlink:href="http://www.ixsystems.com">iXsystems, Inc.</link>,
- дочерней компанией которой является <link xlink:href="http://www.freebsdmall.com/">&os; Mall</link>,
- предоставляет <link xlink:href="http://www.ixsystems.com/bsdsupport">поддержку</link>
- &os; и программного обеспечения PC-BSD на коммерческой
- основе, в дополнение к разработке &os; и решениям, требующим
- тонкой настройки.</para>
-
- <para>BSD Certification Group, Inc. предоставляет сертификацию
- системного администрирования DragonFly&nbsp;BSD, &os;,
- NetBSD и OpenBSD. Для получения дополнительной информации
- посетите <link
- xlink:href="http://www.BSDCertification.org">их
- сайт</link>.</para>
-
- <para>Чтобы попасть в этот список, другие организации,
- осуществляющие обучение и поддержку, должны обратиться к
- нам в Проект.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter xml:id="install">
- <info><title>Установка</title>
- <author><personname><firstname>Nik</firstname><surname>Clayton</surname></personname><affiliation>
- <address><email>nik@FreeBSD.org</email></address>
- </affiliation></author>
- </info>
-
- <qandaset>
- <qandaentry>
- <question xml:id="which-architecture">
- <para>Какую архитектуру нужно загрузить? У меня есть
- 64-разрядный процессор &intel;, но я вижу только
- <literal>amd64</literal>.</para>
- </question>
-
- <answer>
- <para>&arch.amd64; &mdash; это термин, применяемый во &os;
- для обозначения 64-разрядной архитектуры x86 (также
- известна как "x86-64" или "x64"). На большинстве
- современных компьютеров следует использовать &arch.amd64;.
- Для более старых подойдёт &arch.i386;. При установке
- системы на отличную от x86 архитектуру, выберите платформу,
- наиболее подходящую для оборудования.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="floppy-download">
- <para>Какой файл нужно скачать для установки &os;?</para>
- </question>
-
- <answer>
- <para>На странице <link
- xlink:href="http://www.freebsd.org/ru/where.html">Получение
- &os;</link> выберите <literal>[iso]</literal> с
- соответствующей оборудованию архитектурой.</para>
-
- <para>Можно использовать любой из:</para>
-
- <informaltable frame="none" pgwide="1">
- <tgroup cols="2">
- <thead>
- <row>
- <entry>файл</entry>
- <entry>описание</entry>
- </row>
- </thead>
-
- <tbody>
- <row>
- <entry><filename>disc1.iso</filename></entry>
- <entry>Содержит достаточно для установки &os; и
- минимальный набор пакетов.</entry>
- </row>
-
- <row>
- <entry><filename>dvd1.iso</filename></entry>
- <entry>Наподобие <filename>disc1.iso</filename>,
- но с дополнительными пакетами.</entry>
- </row>
-
- <row>
- <entry><filename>memstick.img</filename></entry>
- <entry>Образ с автозагрузкой для записи
- на USB флешку.</entry>
- </row>
-
- <row>
- <entry><filename>bootonly.iso</filename></entry>
- <entry>Минимальный образ, требующий сетевое
- подключение для завершения установки &os;.</entry>
- </row>
- </tbody>
- </tgroup>
- </informaltable>
-
- <para>Пользователям &arch.pc98; нужны образы дискет:
- <filename>floppies/boot.flp</filename>,
- <filename>floppies/kern1.flp</filename>,
- <filename>floppies/kern2.flp</filename> и
- <filename>floppies/mfsroot1.flp</filename>. Эти образы
- нужно перенести на дискеты с помощью таких утилит, как
- &man.dd.1;.</para>
-
- <para>Полные инструкции по этой процедуре и об установке вообще можно
- найти в <link xlink:href="&url.books.handbook;/install.html">
- разделе</link> Руководства, посвящённом установке &os;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="floppy-image-too-large">
- <para>Помогите! Установочный образ не загружается!</para>
- </question>
-
- <answer>
- <para>Это может быть вызвано тем, что образ был загружен по
- FTP не в режиме <emphasis>binary</emphasis>.</para>
-
- <para>В некоторых клиентских программах FTP по умолчанию
- используется текстовый (<emphasis>ascii</emphasis>) режим
- передачи, в котором любые последовательности символов
- "конец строки" заменяются на используемые в системе
- клиента. В таком случае образ загрузочного диска будет
- неизбежно испорчен. Проверьте контрольную сумму SHA-256
- полученного файла: если он не <emphasis>точно</emphasis>
- такой же как на FTP-сервере, то ошибка произошла, скорее
- всего, в процессе передачи.</para>
-
- <para>В случае использования командной строки FTP-клиента
- введите команду <emphasis>binary</emphasis> в командной
- строке FTP после подключения к серверу, но перед началом
- передачи файла.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="install-instructions-location">
- <para>Где инструкции по установке &os;?</para>
- </question>
-
- <answer>
- <para>Инструкции по установке &os;&nbsp;9.0
- и более поздних версий могут быть найдены в <link
- xlink:href="&url.books.handbook;/bsdinstall.html">главе</link>
- Руководства, посвящённой установке &os;.
- Также имеются инструкции по установке <link
- xlink:href="&url.books.handbook;/install.html">предыдущих</link>
- версий &os;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="need-to-run">
- <para>Какие минимальные требования для запуска &os;?</para>
- </question>
-
- <answer>
- <para>Для работы &os; необходим ПК класса 486 и выше с
- оперативной памятью объёмом не менее 64&nbsp;Мбайт и
- дисковым пространством не менее 1.1 Гбайт.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="custom-boot-floppy">
- <para>Как сделать собственный установочный диск?</para>
- </question>
-
- <answer>
- <para>Индивидуальный установочный носитель &os; можно
- создать, запустив процедуру построения индивидуального
- релиза. Следуйте инструкциям в статье о <link
- xlink:href="&url.articles.releng;/article.html">подготовке
- релизов &os;</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="windows-coexist">
- <para>Может ли &windows; сосуществовать с &os;?</para>
- </question>
-
- <answer>
- <para>Да, если &windows; установлена первой. Загрузчик
- &os; будет управлять процессом выбора загрузки &windows;
- или &os;. Если &windows; устанавливается следом, то это
- приведёт к перезаписи загрузчика. Если такое случится,
- обратитесь к следующему разделу.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="bootmanager-restore">
- <para>Другая операционная система уничтожила мой загрузчик
- операционной системы! Как мне его вернуть?</para>
- </question>
-
- <answer>
- <para>Способ восстановления зависит от используемого
- загрузчика. Меню выбора загрузки, используемое во &os;,
- можно переустановить с помощью &man.boot0cfg.8;.
- Пример для восстановления меню загрузки на диске
- <replaceable>ada0</replaceable>:</para>
-
- <screen>&prompt.root; <userinput>boot0cfg -B ada0</userinput></screen>
-
- <para>Неинтерактивный загрузчик MBR можно установить
- с помощью &man.gpart.8;:</para>
-
- <screen>&prompt.root; <userinput>gpart bootcode -b /boot/mbr ada0</userinput></screen>
-
- <para>Более сложные ситуации, включая использование дисков
- GPT, рассматриваются в &man.gpart.8;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="no-install-cdrom">
- <para>Я загрузился с компакт-диска, однако программа установки
- сообщила, что 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 xml:id="need-complete-sources">
- <para>Нужно ли устанавливать исходные тексты системы?</para>
- </question>
-
- <answer>
- <para>В общем случае, нет. Для работы основной системы
- присутствие исходных текстов не требуется. Некоторые порты
- наподобие <filename role="package">sysutils/lsof</filename>
- не будут собираться без установленных исходных текстов системы.
- В частности, если порт собирает модуль ядра или напрямую
- обращается к структурам ядра, в этом случае исходные тексты
- должны быть установлены.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="need-kernel">
- <para>Нужно ли перекомпилировать ядро?</para>
- </question>
-
- <answer>
- <para>Обычно нет. Поставляемое ядро <literal>GENERIC</literal>
- содержит драйвера, необходимые для типичного компьютера.
- Инструмент &man.freebsd-update.8; не может использоваться
- для обновления &os; с собственным ядром. Поэтому по
- возможности стоит придерживаться использования ядра
- <literal>GENERIC</literal>. Для компьютеров с очень
- небольшим объёмом ОЗУ, таких как встраиваемые системы,
- может потребоваться собственное небольшое ядро, содержащее
- только необходимые драйверы.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="password-encryption">
- <para>Какой из паролей DES, Blowfish или MD5 я должен использовать,
- и как указать, какого типа пароли используются
- пользователями?</para>
- </question>
-
- <answer>
- <para>Во &os;&nbsp;9 и выше по умолчанию используется
- <emphasis>SHA512</emphasis>. Пароли DES остаются доступны
- для обратной совместимости с более старыми операционными
- системами, в которых используется менее защищённый формат
- паролей. &os; также поддерживает пароли в форматах
- Blowfish и MD5. Управление выбором используемого формата
- для новых паролей осуществляется через параметр входа
- <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 xml:id="ffs-limits">
- <para>Какие существуют ограничения для файловой системы FFS?</para>
- </question>
-
- <answer>
- <para>Наибольший размер файловой системы FFS ограничен
- практически количеством памяти, которая требуется для
- работы &man.fsck.8;. &man.fsck.8; использует 1 бит на
- фрагмент, и для стандартного размера фрагмента 4 Кбайт это
- эквивалентно использованию 32 Мбайт памяти на терабайт
- дискового пространства. Это означает, что на архитектурах
- с ограничением размера пользовательского процесса в 2 Гбайт
- (например, &i386;) максимальный размер файловой системы,
- доступный для &man.fsck.8;, составляет ~60 Тбайт.</para>
-
- <para>Без ограничения на память для &man.fsck.8; максимальный
- размер файловой системы составляет 2&nbsp;^&nbsp;64
- (блоков) * 32&nbsp;Кбайт => 16 экса * 32&nbsp;Кбайт
- => 512 зеттабайт.</para>
-
- <para>Максимальный размер файла на FFS приблизительно равен
- 2&nbsp; петабайт со стандартным размером блока 32&nbsp;Кбайт.
- Каждый 32&nbsp;Кбайтный блок может адресовать до 4096 блоков.
- С использованием тройной косвенной адресации это составляет
- 32&nbsp;Кбайт * 12 + 32&nbsp;Кбайт * 4096 + 32&nbsp;Кбайт *
- 4096^2 + 32&nbsp;Кбайт * 4096^3. Увеличение размера блока
- до 64&nbsp;Кбайт увеличит максимальный размер файла в 16
- раз.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="archsw-readin-failed-error">
- <para>Я скомпилировал новое ядро и при загрузке получил
- сообщение об ошибке <errorname>readin
- failed</errorname>.</para>
- </question>
-
- <answer>
- <para>Ядро и компоненты системы не синхронизированы. Такая
- конфигурация не поддерживается. Обязательно используйте
- команды <command>make buildworld</command> и <command>make
- buildkernel</command> для обновления ядра.</para>
-
- <para>Загрузите систему, непосредственно указав ядро на
- втором этапе загрузки, нажав любую клавишу до запуска
- загрузчика при появлении символов
- <literal>|</literal>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="general-configuration-tool">
- <para>Существует ли инструмент для настройки системы после
- её установки?</para>
- </question>
-
- <answer>
- <para>Да, <application>bsdconfig</application> предоставляет
- замечательный интерфейс для пост-установочной настройки
- &os;.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter xml:id="hardware">
- <title>Аппаратная совместимость</title>
-
- <sect1 xml:id="compatibility-general">
- <title>Вопросы общего характера</title>
-
- <qandaset>
- <qandaentry>
- <question xml:id="which-hardware-to-get">
- <para>Я хочу приобрести аппаратуру для моей системы &os;. Какая
- модель/производитель/тип лучше всего?</para>
- </question>
-
- <answer>
- <para>Это постоянно обсуждается в списках рассылки &os; и
- является ожидаемым вопросом, так как аппаратура меняется
- очень быстро.
- Обратитесь к Hardware&nbsp;Notes для &os; <link
- xlink:href="&rel.current.hardware;">&rel.current;</link>
- или <link
- xlink:href="&rel2.current.hardware;">&rel2.current;</link>,
- а также <link
- xlink:href="http://www.FreeBSD.org/search/#mailinglists">архивам</link>
- списков рассылки перед тем, как задавать вопросы о самом
- последнем и лучшем оборудовании. Весьма вероятно, что
- обсуждение касаемо этого типа оборудования велось как
- раз на прошлой неделе.</para>
-
- <para>Перед приобретением лэптопа посмотрите архивы
- &a.mobile; и &a.questions; или, по возможности, более
- специфичные списки рассылки по данному типу
- оборудования.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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;Гбайт. Для &os;&nbsp;10 платформы AMD64
- поддерживают до 4&nbsp;Тбайт физической памяти.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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 xml:id="compatibility-processors">
- <title>Аппаратные платформы и процессоры</title>
-
- <qandaset>
- <qandaentry>
- <question xml:id="architectures">
- <para>Поддерживает ли &os; аппаратные платформы, отличные от
- x86?</para>
- </question>
-
- <answer>
- <para>Да. Поддержка &os; подразделяется на множество классов.
- Архитектуры первого класса, такие как i386 или amd64,
- полностью поддерживаются. Архитектуры 2 и 3 класса
- поддерживаются по мере возможности. Полное описание
- классов доступно в <link
- xlink:href="&url.articles.committers-guide;/archs.html">справочнике
- коммиттера</link>.</para>
-
- <para>Полный список поддерживаемых архитектур находится
- на <link
- xlink:href="http://www.FreeBSD.org/ru/platforms/">странице</link>,
- посвящённой платформам.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="smp-support">
- <para>Поддерживает ли &os; многопроцессорные системы
- (SMP)?</para>
- </question>
-
- <answer>
- <para>&os; поддерживает симметричное мультипроцессирование
- (SMP) на всех невстраиваемых платформах (например,
- &arch.i386;, &arch.amd64; и так далее). SMP
- также поддерживается для arm и MIPS, хотя некоторые
- процессоры могут это не поддерживать. В реализации SMP
- во &os; используется мелкодисперсная синхронизация, и
- производительность масштабируется почти линейно с ростом
- количества процессоров.</para>
-
- <para>За подробной информацией обращайтесь к странице
- Справочника &man.smp.4;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="microcode">
- <para>Что такое микрокод? Как установить обновления
- микрокода для процессоров &intel;?</para>
- </question>
-
- <answer>
- <para>Микрокод - это программа, реализующая набор инструкций
- процессора на аппаратном уровне. Она позволяет исправлять
- ошибки процессора без замены микросхемы.</para>
-
- <para>Установите <filename
- role="package">sysutils/devcpu-data</filename>,
- а затем добавьте:</para>
- <programlisting>microcode_update_enable="YES"</programlisting>
- <para>в <filename>/etc/rc.conf</filename></para>
- </answer>
- </qandaentry>
-
- </qandaset>
- </sect1>
-
- <sect1 xml:id="compatibility-drives">
- <title>Жёсткие диски, ленточные устройства и приводы CD и DVD</title>
-
- <qandaset>
- <qandaentry>
- <question xml: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 xml:id="supported-scsi-controllers">
- <para>Какие поддерживаются контроллеры SCSI или SAS?</para>
- </question>
-
- <answer>
- <para>Полный список приведён в Hardware Notes для &os;
- <link
- xlink:href="&rel.current.hardware;">&rel.current;</link>
- или <link
- xlink:href="&rel2.current.hardware;">&rel2.current;</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="tape-support">
- <para>Какие типы стримеров поддерживаются?</para>
- </question>
-
- <answer>
- <para>&os; поддерживает все стандартные интерфейсы
- стримеров SCSI.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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 xml:id="supported-cdrom-drives">
- <para>Какие приводы CD-ROM и CD-RW поддерживаются во
- &os;?</para>
- </question>
-
- <answer>
- <para>Поддерживаются любые SCSI-устройства чтения компакт дисков,
- подключенные к поддерживаемому контроллеру. Поддерживается
- большинство ATAPI-совместимых IDE CD-ROM.</para>
-
- <para>&os; поддерживает все ATAPI-совместимые IDE-приводы CD-R
- или CD-RW. Более полная информация находится на странице
- Справочника &man.burncd.8;.</para>
-
- <para>&os; поддерживает также все SCSI-приводы CD-R и CD-RW.
- Используйте команду <command>cdrecord</command> из
- пакета <package>sysutils/cdrtools</package>.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </sect1>
-
- <sect1 xml:id="compatibility-kbd-mice">
- <title>Клавиатуры и мыши</title>
-
- <qandaset>
- <qandaentry>
- <question xml:id="moused">
- <para>Можно ли использовать мышь вне X Window?</para>
- </question>
-
- <answer>
- <para>Стандартный драйвер консоли &man.syscons.4;
- предоставляет возможность использования указателя мыши
- в текстовых консолях для выделения и переноса текста.
- Запустите демон мыши &man.moused.8; и включите
- отображение указателя мыши в виртуальной консоли:</para>
-
- <screen>&prompt.root; <userinput>moused -p /dev/xxxx -t yyyy</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. Обратитесь к вопросу из <acronym>FAQ</acronym>
- <link linkend="x-and-moused">
- Почему моя мышь не работает с X?</link> для получения более полной
- информации по этому вопросу.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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 xml: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 xml: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>За дополнительной информацией обращайтесь к <link xlink:href="http://www.ibb.net/~anne/keyboard.html">этой
- странице</link>.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </sect1>
-
- <sect1 xml:id="compatibility-other">
- <title>Другое оборудование</title>
-
- <qandaset>
- <qandaentry>
- <question xml: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>
-
- <qandaentry>
- <question xml:id="power-management-support">
- <para>Поддерживает ли &os; управление энергосбережением на
- лэптопах?</para>
- </question>
-
- <answer>
- <para>&os; поддерживает функции <acronym>ACPI</acronym>,
- реализованные в современном оборудовании.
- Дополнительная информация находится
- на странице Справочника &man.acpi.4;.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </sect1>
- </chapter>
-
- <chapter xml:id="troubleshoot">
- <title>Устранение некоторых проблем</title>
-
- <qandaset>
- <qandaentry>
- <question xml: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.
- За дополнительной информацией обращайтесь к статье об
- ограничениях памяти.</para>
-
- <para>На 64nbsp;битной версии &os; или в случае использования ядра с
- включённым PAE &os; корректно определит и перераспределит память,
- так, что она станет годной к использованию. Тем не менее, во
- время загрузки может показаться, что &os; определяет больше
- памяти, чем реально имеется в системе из-за описанного
- перераспределения. Это нормально, и информация
- о доступной памяти будет скорректирована по окончанию процесса
- загрузки.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="signal11">
- <para>Программы аварийно завершают работу с ошибкой <errorname>Signal
- 11</errorname>.</para>
- </question>
-
- <answer>
- <para>Ошибки выполнения, связанные с сигналом 11, происходят,
- когда процесс пытается обратиться к области памяти, доступ к
- которой ему не был дан операционной системой. Если что-то подобное
- происходит в случайные, казалось бы, промежутки времени,
- следует начать поиск причины.</para>
-
- <para>Эти проблемы могут быть классифицированы следующим
- образом:</para>
-
- <orderedlist>
- <listitem>
- <para>Если проблема возникает только в определённом
- самостоятельно разработанном приложении, то скорее
- всего это ошибка в коде.</para>
- </listitem>
-
- <listitem>
- <para>Если это проблема в части базового комплекта системы
- &os;, то это тоже может быть ошибка в программном коде, хотя
- в большинстве случаев такие проблемы обнаруживаются и ошибки
- исправляются задолго до того, как обычным читателям
- <acronym>FAQ</acronym>
- доводится использовать этот код (именно для этого предназначена
- версия -CURRENT).</para>
- </listitem>
- </orderedlist>
-
- <para>Вероятно, это не связано с ошибкой во &os;,
- если проблема проявляется при компиляции программы, и при
- этом ошибка компилятора каждый раз разная.</para>
-
- <para>Например, если запуск <command>make
- buildworld</command> завершился неудачей при попытке
- компиляции <filename>ls.c</filename> в
- <filename>ls.o</filename> и при повторном запуске
- компиляция снова прервалась на том же месте, то это ошибка
- процесса построения. Обновите исходные тексты и попробуйте
- снова. Если же компиляция прерывается в каком-то другом
- месте, то причина наиболее вероятно кроется в
- оборудовании.</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, вытащите их все и попробуйте
- по одной до локализации проблемы в проблематичной
- микросхеме DIMM/SIMM, либо их комбинации.</para>
- </listitem>
-
- <listitem>
- <para>Чересчур оптимистичные настройки материнской платы.
- Настройки BIOS и перемычки на материнской плате
- предоставляют возможность задавать различные частоты и
- задержки. Часто бывает достаточно настроек по
- умолчанию, но иногда установка слишком малых периодов
- ожидания для ОЗУ или установка параметра <quote>RAM
- Speed: Turbo</quote> вызывает странное поведение.
- Возможным решением может стать установка параметров
- BIOS по умолчанию с предварительной записью текущих
- значений.</para>
- </listitem>
-
- <listitem>
- <para>Неустойчивое или недостаточное электропитание
- материнской платы. Уберите неиспользуемые адаптеры
- ввода/вывода, винчестеры и приводы компакт-дисков или
- отключите их от кабеля электропитания для проверки,
- что блок питания может работать с меньшей нагрузкой.
- Или попробуйте воспользоваться другим блоком
- питания, желательно большей мощности. Например, если
- имеющийся блок питания рассчитан на 250&nbsp;Ватт,
- попробуйте другой мощностью 300&nbsp;Ватт).</para>
- </listitem>
- </orderedlist>
-
- <para>Прочитайте раздел про <link
- linkend="signal11">Signal 11</link> для дальнейшего
- объяснения и обсуждения, как аппаратура или программное
- обеспечение для тестирования памяти могут пропускать
- сбойную память. Подробная информация по этому вопросу
- содержится в <link
- xlink:href="http://www.bitwizard.nl/sig11/"><acronym>FAQ</acronym>
- по проблеме SIG11</link>.</para>
-
- <para>Наконец, если ничего не помогает, то, возможно, это
- из-за ошибки во &os;. Следуйте <link linkend="access-pr">этим
- инструкциям</link> для отправки сообщения о проблеме.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="trap-12-panic">
- <para>Моя система аварийно завершает работу с сообщениями
- <errorname>Fatal trap 12: page fault in kernel mode</errorname>
- либо <errorname>panic:</errorname>, и выдаёт много дополнительной
- информации. Что мне делать?</para>
- </question>
-
- <answer>
- <para>Разработчики &os; интересуются такими ошибками, но
- им нужно больше информации, чем просто текст ошибки.
- Скопируйте весь текст сообщения.
- Затем обратитесь к разделу <acronym>FAQ</acronym> об
- <link linkend="kernel-panic-troubleshooting">аварийных завершениях
- работы ядра</link>, постройте отладочное ядро и получите
- трассу вызовов. Это может звучать трудной задачей, зато не
- требует навыков программирования. Просто следуйте
- указаниям.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="proc-table-full">
- <para>Что означает сообщение об ошибке <errorname>maxproc
- limit exceeded by uid %i, please see tuning(7) and
- login.conf(5)</errorname>?</para>
- </question>
-
- <answer>
- <para>Ядро &os; позволяет одновременно существовать
- ограниченному числу процессов. Это зависит от значения
- переменной &man.sysctl.8; <varname>kern.maxusers</varname>.
- <varname>kern.maxusers</varname> также влияет на другие
- ограничения ядра, такие как буферы работы с сетью.
- Если система сильно загружена, поднимите
- <varname>kern.maxusers</varname>. Кроме максимального
- числа процессов это также увеличит значения других
- параметров, ограничивающих систему.</para>
-
- <para>Для корректировки значения
- <varname>kern.maxusers</varname> обратитесь к разделу <link
- xlink:href="&url.books.handbook;/configtuning-kernel-limits.html#kern-maxfiles">
- Ограничения файлов/процессов</link> Руководства. В нём
- говорится об открытых файлах, но те же ограничения касаются
- процессов.</para>
-
- <para>Если система загружена слабо, но в ней запущено
- слишком много процессов, поправьте параметр
- <varname>kern.maxproc</varname>, определив его значение в
- <filename>/boot/loader.conf</filename>. Изменение не вступит
- в силу до перезагрузки системы. За дополнительной информацией,
- касающейся настройки параметров, обращайтесь к странице
- Справочника &man.loader.conf.5;. Если эти процессы запущены
- одним и тем же пользователем, поправьте
- значение <varname>kern.maxprocperuid</varname>, чтобы оно
- было на единицу меньше, чем новое значение
- <varname>kern.maxproc</varname>. Оно должно быть меньше по
- крайней мере на единицу, потому что системная программа
- &man.init.8; должна работать всегда.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="remote-fullscreen">
- <para>Полноэкранные приложения на удалённой машине работают
- неправильно!</para>
- </question>
-
- <answer>
- <para>На удалённой машине тип терминала может отличаться
- от <literal>xterm</literal>, который требуется для
- использования консоли &os;. Либо же ядро может иметь
- неправильные значения ширины и высоты терминала.</para>
-
- <para>Проверьте, чтобы переменная окружения
- <envar>TERM</envar> имела значение
- <literal>xterm</literal>. Если удалённая машина его не
- поддерживает, попробуйте <literal>vt100</literal>.</para>
-
- <para>Запустите <command>stty -a</command>, чтобы узнать,
- какие размеры терминала заданы в ядре. Если значения
- неправильные, их можно поменять командой
- <command>stty rows <replaceable>RR</replaceable> cols
- <replaceable>CC</replaceable></command>.</para>
-
- <para>Либо же, если на клиентской машине установлен
- <package>x11/xterm</package>, запуск
- <command>resize</command> позволит узнать у терминала
- правильные размеры и применить эти значения.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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; для получения более подробной информации.
- Если это происходит в сети Интернет, то проблема
- может заключаться в некорректной работе ресолвера локального сервера.
- Для проверки попробуйте получить адрес другого хоста, такого как
- <systemitem>www.yahoo.com</systemitem>. Если это не работает, то
- в этом и состоит проблема.</para>
-
- <para>Из-за свежей установки &os;, также возможно, что
- информация о домене и сервере имён отсутствует в
- <filename>/etc/resolv.conf</filename>. Это часто будет
- вызывать задержку в работе <application>SSH</application>,
- так как опция <literal>UseDNS</literal> по умолчанию
- установлена в значение <literal>yes</literal> в
- <filename>/etc/ssh/sshd_config</filename>. Если именно это является
- причиной проблемы, то добавьте недостающую
- информацию в <filename>/etc/resolv.conf</filename>, либо в
- качестве временной меры установите <literal>UseDNS</literal>
- в <literal>no</literal> в файле
- <filename>sshd_config</filename>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="file-table-full">
- <para>Почему в &man.dmesg.8; регулярно выводятся сообщения
- <errorname>file: table is full</errorname>?</para>
- </question>
-
- <answer>
- <para>Такое сообщение об ошибке сигнализирует о том, что в
- системе закончились доступные файловые дескрипторы.
- Обратитесь к разделу <link
- xlink:href="&url.books.handbook;/configtuning-kernel-limits.html#kern-maxfiles">
- kern.maxfiles</link> главы о <link xlink:href="&url.books.handbook;/configtuning-kernel-limits.html">
- Настройке ограничений ядра</link> Руководства для выяснения всех
- подробностей и устранения этой проблемы.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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>/boot/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 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 xml: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 xml:id="lock-order-reversal">
- <para>Что означают сообщения <errorname>lock order
- reversal</errorname>?</para>
- </question>
-
- <answer>
- <para>Ядро &os; использует несколько блокировок для арбитража
- доступа к соответствующим ресурсам. Когда несколько
- потоков в ядре пытаются захватить несколько блокировок
- подряд, всегда существует возможность появления мёртвой
- блокировки (deadlock), где два потока захватили по одной
- блокировке и заблокированы в ожидании освобождения другим
- потоком второй блокировки. Такой проблемы синхронизации
- можно избежать, если все потоки захватывают блокировки в
- одинаковом порядке.</para>
-
- <para>Система диагностирования блокировок &man.witness.4;,
- которая по умолчанию включена во &os.current; и выключена
- для стабильных веток и релизов, определяет возможность
- появления мёртвых блокировок из-за ошибок их использования,
- включая захват нескольких блокировок в различном порядке
- в разных частях ядра. Инфраструктура &man.witness.4;
- пытается обнаруживать эту проблему по мере её появления
- и сообщает о ней на системную консоль в сообщении
- <errorname>lock order reversal</errorname> (которое также
- часто называют <acronym>LOR</acronym>).</para>
-
- <para>В силу консервативности &man.witness.4; возможны ложные
- срабатывания. При правильном срабатывании такое сообщение
- <emphasis>не</emphasis> означает, что система находится в
- состоянии мёртвой блокировки; его следует рассматривать
- как предупреждение о том, что в этом месте могла бы
- произойти мёртвая блокировка.</para>
-
- <note>
- <para>Плохие <acronym>LOR</acronym> обычно быстро
- исправляют, поэтому перед написанием сообщения в списки
- рассылки следует проверить архивы &a.current.url;.</para>
- </note>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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>
-
- <para>Дополнительная информация о синхронизации во &os;
- находится на странице Справочника &man.locking.9;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="touch-not-found">
- <para>Почему процесс
- <buildtarget>buildworld</buildtarget>/<buildtarget>installworld</buildtarget>
- завершается с сообщением
- <errorname>touch: not found</errorname>?</para>
- </question>
-
- <answer>
- <para>Эта ошибка не означает, что не найдена утилита &man.touch.1;.
- Ошибка наверняка появляется из-за того, что даты модификации файлов
- установлены в будущем. Если CMOS часы установлены на локальное
- время, отрегулируйте часовой механизм ядра, запустив
- команду <command>adjkerntz&nbsp;-i</command> в
- однопользовательском режиме.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter xml:id="applications">
- <title>Прикладные программы</title>
-
- <qandaset>
- <qandaentry>
- <question xml:id="user-apps">
- <para>Где находятся все прикладные программы?</para>
- </question>
-
- <answer>
- <para>Обратитесь на <link
- xlink:href="&url.base;/ports/index.html">страницу портов</link>,
- содержащую информацию о программных продуктах, перенесённых
- во &os;. На данный момент в этом списке находится более
- &os.numports; приложений и он ежедневно увеличивается, так
- что почаще туда заглядывайте или подпишитесь на &a.announce;,
- в котором публикуется информация о появлении новых
- приложений.</para>
-
- <para>Большинство портов должно нормально работать во всех
- поддерживаемых версиях &os;. Неработающие порты
- специально помечаются соответствующим образом.
- При выходе нового релиза &os; в него в каталог
- <filename>ports/</filename> включается актуальная на
- момент выхода Коллекция Портов.</para>
-
- <para>&os; умеет работать со сжатыми двоичными пакетами для
- упрощения установки и удаления портов. Используйте
- &man.pkg.7; для управления процессом установки
- пакетов.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="how-do-download-ports-tree">
- <para>Как загрузить дерево Портов? Следует ли использовать
- SVN?</para>
- </question>
-
- <answer>
- <para>Любым из указанных способов:</para>
-
- <itemizedlist>
- <listitem>
- <para>Используйте portsnap в большинстве случаев.
- Обратитесь к разделу <link
- xlink:href="&url.books.handbook;/ports-using.html">Использование
- Коллекции Портов</link> для получения инструкций по
- использованию этого инструмента.</para>
- </listitem>
- <listitem>
- <para>Используйте SVN, если нужны собственные патчи для
- дерева портов. Обратитесь к разделу <link
- xlink:href="&url.books.handbook;/svn.html">Использование
- Subversion</link> для получения дополнительной
- информации.</para>
- </listitem>
- <listitem>
- <para>Используйте <acronym>CTM</acronym> как это описано
- в разделе <link
- xlink:href="&url.books.handbook;/ctm.html">Использование
- <acronym>CTM</acronym></link> для получения
- изменений по почте при нестабильном соединении.</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="java">
- <para>Поддерживает ли &os; среду &java;?</para>
- </question>
-
- <answer>
- <para>Да. Для получения дополнительной информации посетите
- страницу <link
- xlink:href="&url.base;/java/index.html">http://www.FreeBSD.org/java/</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="ports-4x">
- <para>Почему этот порт не компилируется на моей машине с
- &rel2.relx;&nbsp;- или &rel.relx;&nbsp;-STABLE?</para>
- </question>
-
- <answer>
- <para>Если установленная версия &os;, значительно отстаёт от
- <emphasis>-CURRENT</emphasis> или <emphasis>-STABLE</emphasis>,
- обновите Коллекцию Портов с использованием указаний в
- разделе <link
- xlink:href="&url.books.handbook;/ports-using.html">Использование
- Коллекции Портов</link>. Если система в актуальном
- состоянии, значит кто-то мог внести изменение в
- порт, с которым он работает в <emphasis>-CURRENT</emphasis>,
- но не работает в <emphasis>-STABLE</emphasis>. <link
- xlink:href="https://bugs.FreeBSD.org/submit/">Пошлите</link>
- сообщение об ошибке, так как Коллекция Портов должна
- работать как в <emphasis>-CURRENT</emphasis>, так и в
- ветках <emphasis>-STABLE</emphasis>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="make-index">
- <para>Я попытался сформировать файл <filename>INDEX</filename>
- командой <command>make index</command>,
- однако попытка окончилась неудачей. Почему?</para>
- </question>
-
- <answer>
- <para>Первым делом убедитесь, что Коллекция Портов
- находится в актуальном состоянии. Ошибки, которые отражаются на
- построении файла <filename>INDEX</filename> из актуальной копии
- Коллекции Портов, бросаются в глаза и поэтому практически всегда
- исправляются немедленно.</para>
-
- <para>В редких случаях <filename>INDEX</filename> не перестраивается
- из-за странных комбинаций значений переменных
- <varname>WITH_<replaceable>*</replaceable></varname> или
- <varname>WITHOUT_<replaceable>*</replaceable></varname>, заданных в
- файле <filename>make.conf</filename>. Если вы думаете, что это ваш
- случай, прежде чем сообщать об этом в &a.ports;, попытайтесь
- сформировать <filename>INDEX</filename> с
- отключенными значениями этих переменных.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="ports-update">
- <para>Я обновил исходные тексты. Как теперь обновить
- установленные порты?</para>
- </question>
-
- <answer>
- <para>С &os; не поставляется инструмент обновления портов,
- но есть несколько инструментов, немного облегчающих этот
- процесс. Кроме того, для упрощения работы с портами
- доступны дополнительные инструменты; смотрите раздел
- Руководства &os; <link
- xlink:href="&url.books.handbook;/ports-using.html">Использование
- Коллекции Портов</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="ports-major-upgrade">
- <para>Нужно ли мне перекомпилировать все порты каждый раз,
- когда я выполняю мажорное обновление (со сменой старшей
- версии &os;)?</para>
- </question>
-
- <answer>
- <para>Да! На свежеобновленной системе программное
- обеспечение, скомпилированное под более старый релиз, будет
- по прежнему работать, но только до тех пор, пока вы не начнете
- устанавливать другие порты или обновлять существующие.</para>
-
- <para>Когда система обновлена, различные совместно используемые
- библиотеки, загружаемые модули и другие части системы замещаются
- более новыми версиями. Приложения, скомпонованные с более
- старыми версиями, могут перестать запускаться либо начнут
- функционировать неправильно.</para>
-
- <para>Для получения дополнительной информации обращайтесь к <link
- xlink:href="&url.books.handbook.en;/updating-upgrading-freebsdupdate.html#freebsdupdate-upgrade">разделу,
- посвящённому обновлениям,</link> руководства &os;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="ports-minor-upgrade">
- <para>Нужно ли мне перекомпилировать все порты каждый раз,
- когда я выполняю минорное обновление (без изменения старшей
- версии &os;)?</para>
- </question>
-
- <answer>
- <para>В общем случае, нет. Разработчики &os; делают всё
- возможное для сохранения двоичной совместимости между всеми
- релизами в пределах одной старшей версии. Любые исключения
- из этого правила документируются в "Примечаниях к релизу", и
- там же даются советы, которых следует придерживаться.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="minimal-sh">
- <para>Почему возможности <command>/bin/sh</command> так малы?
- Почему бы во &os; не использовать <command>bash</command> или
- какой-либо другой командный процессор?</para>
- </question>
-
- <answer>
- <para>Многим
- требуется, чтобы разрабатываемые скрипты для командного процессора
- были переносимы между многими системами. Именно поэтому в &posix;
- очень подробно описан командный процессор и набор утилит.
- Большинство скриптов пишутся на языке процессора Bourne shell
- (&man.sh.1;), к
- тому же некоторые важные программные вызовы (&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>,
- &man.tcsh.1; и <command>zsh</command>. Сравните
- использование памяти этими оболочками, посмотрев в колонки
- <quote>VSZ</quote> и <quote>RSS</quote> вывода команды
- <command>ps -u</command>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="midi-sound-files">
- <para>Как создать аудио-CD из файлов MIDI?</para>
- </question>
-
- <answer>
- <para>Для создания аудио-CD из MIDI-файлов сначала установите из
- портов программу <package>audio/timidity++</package>, затем установите набор
- патчей GUS от Эрика Уэлша (Eric A. Welsh), доступный по адресу
- <uri xlink:href="http://alleg.sourceforge.net/digmid.html">http://alleg.sourceforge.net/digmid.html</uri>. После корректной установки
- <application>TiMidity++</application> MIDI-файлы могут
- быть преобразованы в WAV-файлы следующей командой:</para>
-
- <screen>&prompt.user; <userinput>timidity -Ow -s 44100 -o /tmp/juke/01.wav 01.mid</userinput></screen>
-
- <para>WAV-файлы затем могут быть преобразованы в другие форматы или
- записаны как аудио-CD, что описано в <link xlink:href="&url.books.handbook;/creating-cds.html">Руководстве
- &os;</link>.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter xml:id="kernelconfig">
- <title>Конфигурирование ядра</title>
-
- <qandaset>
- <qandaentry>
- <question xml:id="make-kernel">
- <para>Я хочу изменить настройки ядра. Это сложно?</para>
- </question>
-
- <answer>
- <para>Вовсе нет! Обратитесь к <link xlink:href="&url.books.handbook;/kernelconfig.html">соответствующему
- разделу</link> Руководства, который посвящён этому вопросу.</para>
-
- <note>
- <para>Новый файл <filename>kernel</filename> будет установлен
- в каталог <filename>/boot/kernel</filename>
- вместе со своими
- модулями, а старое ядро и его модули будут сдвинуты в каталог
- <filename>/boot/kernel.old</filename>. Если сделана
- ошибка в конфигурации, просто загрузите предыдущую
- версию ядра.</para>
- </note>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="why-kernel-big">
- <para>Почему моё ядро такое большое?</para>
- </question>
-
- <answer>
- <para>Конфигурация ядра <literal>GENERIC</literal>, которая
- содержится в дистрибутиве &os;, компилируется в
- <emphasis>отладочном режиме</emphasis>. В таком режиме
- ядра содержат много символьной информации в разных файлах,
- которая используется для отладки и сильно увеличивает размер
- <filename class="directory">/boot/kernel/</filename>.
- Заметьте, что уменьшения
- производительности при использовании отладочного ядра нет или
- оно незначительно, однако отладочное ядро полезно иметь под
- рукой на случай аварийного завершения работы системы.</para>
-
- <para>Однако при нехватке дискового пространства существует
- несколько вариантов уменьшения размера <filename
- class="directory">>/boot/kernel/</filename>.</para>
-
- <para>Чтобы не устанавливать файлы с символьной
- информацией, убедитесь в наличии следующей строки в
- <filename>/etc/src.conf</filename>:</para>
-
- <programlisting>WITHOUT_KERNEL_SYMBOLS=yes</programlisting>
-
- <para>Для получения дополнительной информации смотрите страницу
- Справочника &man.src.conf.5;.</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>В любой из вышеописанных ситуаций ядро будет построено с
- отладочным режимом.</para>
-
- <para>Чтобы скомпилировать и установить только нужные модули,
- укажите их в <filename>/etc/make.conf</filename>:</para>
-
- <programlisting>MODULES_OVERRIDE= <replaceable>accf_http ipfw</replaceable></programlisting>
-
- <para>Замените <emphasis>accf_httpd ipfw</emphasis> на нужный
- список модулей. Это уменьшит размер каталога с ядром, а
- также время сборки. Для получения дополнительной информации
- почитайте <filename>/usr/share/examples/etc/make.conf</filename>.
- </para>
-
- <para>Для дальнейшего уменьшения размера также можно удалить
- ненужные устройства из ядра. Для получения дополнительной
- информации смотрите <xref linkend="make-kernel"/>.</para>
-
- <para>Для вступления любого из этих действий в силу следуйте
- указаниям по <link
- xlink:href="&url.books.handbook;/kernelconfig-building.html">сборке
- и установке</link> нового ядра.</para>
-
- <para>Большинство ядер (<filename>/boot/kernel/kernel</filename>),
- как правило, занимают от 12 до 16&nbsp;Мбайт.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="generic-kernel-build-failure">
- <para>Почему мне не удаётся откомпилировать ни один вариант ядра,
- даже <filename>GENERIC</filename>?</para>
- </question>
-
- <answer>
- <para>Есть несколько причин, приводящих к возникновению этой
- проблемы:</para>
-
- <itemizedlist>
- <listitem>
- <para>Дерево исходных текстов отличается от того, что
- использовалось для построения работающей в данный
- момент системы. Перед обновлением прочитайте
- файл <filename>/usr/src/UPDATING</filename>,
- обращая особое внимание на раздел
- <quote>COMMON ITEMS</quote> в его конце.</para>
- </listitem>
-
- <listitem>
- <para>Команда <command>make buildkernel</command>
- не завершилась успешно.
- Корректное выполнение цели
- <command>make buildkernel</command>
- зависит от файлов, полученных после выполнения
- <command>make buildworld</command>.</para>
- </listitem>
-
- <listitem>
- <para>Даже при построении <link
- linkend="stable">&os;-STABLE</link> возможно, что
- дерево исходных текстов было загружено в тот момент,
- когда оно модифицировалось или было неработоспособно.
- Построение гарантируется только для релизов, хотя в
- большинстве случаев <link linkend="stable">&os;-STABLE</link>
- строится без проблем. Попробуйте сгрузить дерево
- исходных текстов повторно и посмотрите, разрешилась
- ли проблема. Если с сервером есть проблемы,
- попробуйте другое зеркало.</para>
- </listitem>
- </itemizedlist>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="scheduler-in-use">
- <para>Какой планировщик используется
- в работающей системе?</para>
- </question>
-
- <answer>
- <para>Название используемого планировщика доступно напрямую
- в виде значения sysctl-параметра
- <varname>kern.sched.name</varname>:</para>
-
- <screen>&prompt.user; sysctl <replaceable>kern.sched.name</replaceable>
-kern.sched.name: ULE</screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="scheduler-kern-quantum">
- <para>Что такое <varname>kern.sched.quantum</varname>?</para>
- </question>
-
- <answer>
- <para><varname>kern.sched.quantum</varname> определяет максимальное
- количество тактов, которое процесс может выполняться, не будучи
- прерванным.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter xml:id="disks">
- <title>Диски, файловые системы и начальные загрузчики</title>
-
- <qandaset>
- <qandaentry>
- <question xml:id="adding-disks">
- <para>Как добавить в систему новый диск?</para>
- </question>
-
- <answer>
- <para>Обратитесь к разделу <link xlink:href="&url.books.handbook;/disks-adding.html">Добавление
- дисков</link> Руководства &os;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="new-huge-disk">
- <para>Как перенести систему на большой новый диск?</para>
- </question>
-
- <answer>
- <para>Самый лучший способ заключается в переустановке
- операционной системы на новый диск с последующим переносом
- пользовательских данных. Это настоятельно рекомендуется
- при отслеживании ветки <emphasis>-STABLE</emphasis> в
- течение более одного релиза или при обновлении релиза
- вместо установки нового. Установите booteasy на оба диска
- с помощью &man.boot0cfg.8; и выполняйте загрузку с любого
- из них, пока не будете довольны новой конфигурацией.
- Пропустите следующий абзац, чтобы перейти к вопросу
- переноса данных после этой операции.</para>
-
- <para>Либо разбейте на разделы и разметьте новый диск с
- помощью &man.sade.8; или &man.gpart.8;. Если диски
- отформатированы в MBR, то booteasy можно установить на оба
- диска с помощью &man.boot0cfg.8; для того, чтобы иметь
- возможность выполнять загрузку как старой, так и новой
- системы после выполнения копирования.</para>
-
- <para>После подготовки диска данные нельзя просто так взять
- и перенести. Используйте для этого инструменты,
- которые учитывают файлы устройств и системные флаги,
- например, &man.dump.8;. И хотя рекомендуется выполнять
- перенос данных в однопользовательском режиме, это не
- является обязательным условием.</para>
-
- <para>Если на дисках стоит <acronym>UFS</acronym>, никогда
- не используйте ничего, кроме &man.dump.8; и &man.restore.8;
- для переноса корневой файловой системы. Эти команды
- также следует использовать при переносе отдельного раздела
- на другой пустой раздел. Последовательность шагов при
- использовании <command>dump</command> для переноса данных
- с раздела <acronym>UFS</acronym> на новый раздел:</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>Например, чтобы перенести корневую файловую
- систему на устройство <filename>/dev/ada1s1a</filename>
- с использованием каталога <filename>/mnt</filename>
- в качестве временной точки монтирования, наберите:</para>
-
- <screen>&prompt.root; <userinput>newfs /dev/ad1as1a</userinput>
-&prompt.root; <userinput>mount /dev/ad1as1a /mnt</userinput>
-&prompt.root; <userinput>cd /mnt</userinput>
-&prompt.root; <userinput>dump 0af - / | restore rf -</userinput></screen>
-
- <para>Переразбиение разделов с использованием
- <command>dump</command> требует несколько
- больше усилий. Для объединения раздела типа
- <filename>/var</filename> с его вышестоящим
- разделом, создайте новый
- раздел, достаточно большой для размещения их обоих, переместите
- вышестоящий раздел так, как это описано выше, а затем переместите
- нижестоящий раздел в пустой каталог, созданный при первом
- перемещении:</para>
-
- <screen>&prompt.root; <userinput>newfs /dev/ada1s1a</userinput>
-&prompt.root; <userinput>mount /dev/ad1as1a /mnt</userinput>
-&prompt.root; <userinput>cd /mnt</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>/var</filename> в
- собственном разделе, которого не было,
- создайте оба раздела, затем смонтируйте нижестоящий раздел в
- подходящий каталог во временную точку монтирования, а затем
- переместите старый единый раздел:</para>
-
- <screen>&prompt.root; <userinput>newfs /dev/ada1s1a</userinput>
-&prompt.root; <userinput>newfs /dev/ada1s1d</userinput>
-&prompt.root; <userinput>mount /dev/ada1s1a /mnt</userinput>
-&prompt.root; <userinput>mkdir /mnt/var</userinput>
-&prompt.root; <userinput>mount /dev/ada1s1d /mnt/var</userinput>
-&prompt.root; <userinput>cd /mnt</userinput>
-&prompt.root; <userinput>dump 0af - / | restore rf -</userinput></screen>
-
- <para>Для перемещения пользовательских данных также имеются
- программы &man.cpio.1; и &man.pax.1;. Известно, что они
- теряют информацию о флагах файлов, так что используйте их
- с осторожностью.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="safe-softupdates">
- <para>На каких разделах можно без опаски использовать механизм
- Soft Updates? Я слышал, что использование Soft Updates на
- <filename>/</filename> могут приводить к
- проблемам. Что насчёт журналируемых Soft Updates?</para>
- </question>
-
- <answer>
- <para>Краткий ответ: обычно Soft Updates можно использовать
- без опаски на всех разделах.</para>
-
- <para>Подробный ответ: Soft Updates имеют две характеристики,
- которые могут быть нежелательны на некоторых разделах. Во-первых,
- раздел с Soft Updates имеет небольшой шанс потери данных по время
- аварийного останова системы. Раздел не будет попорчен,
- поскольку данные будет просто потеряны. Во-вторых, Soft Updates могут приводить к
- временной нехватке дискового пространства.</para>
-
- <para>При использовании Soft Updates ядро может задерживать
- до тридцати секунд запись изменений на физический диск.
- При удалении большого файла он остается на диске, пока
- ядро не выполнит фактическое удаление. Это может привести
- к очень простой гонке. Предположим, удаляется один
- большой файл и тут же создаётся другой большой файл.
- Первый файл на самом деле ещё не удалён с диска, поэтому
- для второго файла на диске может не хватить места. Это
- приведёт к ошибке о том, что на разделе нет достаточного
- пространства, несмотря на то, что только что освободилось
- много места. Через пару секунд создание файла сработает,
- как и ожидалось.</para>
-
- <para>Если система может аварийно остановиться после того, как ядро
- примет набор данных для записи на диск, но перед тем, как данные
- реально запишутся, то данные могут потеряться.
- Такой риск чрезвычайно мал, но в целом управляем.</para>
-
- <para>Эти проблемы влияют на все разделы, использующие Soft Updates.
- Итак, что это означает для корневого раздела?</para>
-
- <para>Жизненно важная информация на корневом разделе меняется очень
- редко. Если в системе
- произойдет сбой в период тридцатисекундного окна после выполнения
- такого изменения, возможно, что данные окажутся потерянными. Этот
- риск незначителен для большинства применений, но его нужно
- учитывать. Если система не может принять такой риск,
- не используйте Soft Updates с корневой файловой системой!</para>
-
- <para><filename>/</filename> традиционно
- является одним из самых маленьких разделов. Если каталог
- <filename>/tmp</filename> размещён в <filename>/</filename> и у
- вас заполнен <filename>/tmp</filename>, то могут
- периодически возникать проблемы с дисковым пространством.
- Создание символической ссылки <filename>/tmp</filename>,
- указывающей на <filename>/var/tmp</filename> решит эту проблему.</para>
-
- <para>В заключение, &man.dump.8; не работает в режиме реального
- времени (-L) с файловой системой, для которой включены
- журналируемые Soft Updates (<acronym>SU+J</acronym>).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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.ext2fs.5;.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>NTFS</term>
-
- <listitem>
- <para>Поддержка NTFS через FUSE доступна через порт
- <package>sysutils/fusefs-ntfs</package>.
- Для получения более полной информации смотрите
- документацию к <link
- xlink:href="http://www.tuxera.com/community/ntfs-3g-manual/"><application>ntfs-3g</application></link>.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>FAT</term>
-
- <listitem>
- <para>Во &os; имеется драйвер для работы с FAT в режиме
- чтения-записи. Для получения дополнительной информации
- обратитесь к странице справочника &man.mount.msdosfs.8;.</para>
- </listitem>
- </varlistentry>
-
- <varlistentry>
- <term>ZFS</term>
-
- <listitem>
- <para>&os; включает в себя портированную из &sun;
- реализацию файловой системы ZFS. В настоящее время
- рекомендуется использовать её только на платформе
- &arch.amd64; с достаточным объемом памяти. Для получения
- более полной информации обратитесь к странице Справочника
- &man.zfs.8;.</para>
- </listitem>
- </varlistentry>
- </variablelist>
-
- <para>&os; включает сетевую файловую систему
- <acronym>NFS</acronym>. В Коллекции портов &os; имеется
- несколько приложений FUSE для поддержки многих других
- файловых систем.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="mount-dos">
- <para>Как смонтировать вторичный раздел DOS?</para>
- </question>
-
- <answer>
- <para>Вторичные разделы DOS находятся после <emphasis>всех</emphasis>
- первичных разделов.
- Например, если <quote>E</quote> является вторым разделом
- DOS на втором диске SCSI, то здесь будет файл устройства для
- пятого <quote>слайса</quote> в каталоге <filename>/dev</filename>.
- Чтобы смонтировать:</para>
-
- <screen>&prompt.root; <userinput>mount -t msdosfs /dev/da1s5 /dos/e</userinput></screen>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="crypto-filesystem">
- <para>Существует ли криптографическая файловая система для
- &os;?</para>
- </question>
-
- <answer>
- <para>Да, &man.gbde.8; и &man.geli.8;.
- Смотрите раздел <link xlink:href="&url.books.handbook;/disks-encrypting.html">Шифрование
- дисковых разделов</link> Руководства &os;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="grub-loader">
- <para>Как загрузить &os; и &linux; с помощью
- <application>GRUB</application>?</para>
- </question>
-
- <answer>
- <para>Для загрузки &os; с использованием
- <application>GRUB</application> добавьте следующие строки
- в <filename>/boot/grub/menu.lst</filename> или
- <filename>/boot/grub/grub.conf</filename>, в зависимости
- от используемого дистрибутива &linux;.</para>
-
- <programlisting>title &os; 9.1
-root <replaceable>(hd0,a)</replaceable>
-kernel /boot/loader</programlisting>
-
- <para>Где <replaceable>hd0,a</replaceable> указывает на
- корневой раздел на первом диске. Чтобы указать номер
- слайса, напишите что-то вроде
- <replaceable>(hd0,2,a)</replaceable>. По умолчанию, если
- номер слайса не указан, <application>GRUB</application>
- ищет первый слайс c разделом <literal>a</literal>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="booteasy-loader">
- <para>Как загрузить &os; и &linux; с помощью
- <application>BootEasy</application>?</para>
- </question>
-
- <answer>
- <para>Установите LILO в начало загрузочного раздела &linux;,
- а не в Master Boot Record. После этого LILO можно будет
- запустить LILO из <application>BootEasy</application>.</para>
-
- <para>Это рекомендуется делать при одновременном
- использовании &windows; и &linux;, чтобы упростить
- восстановление работоспособности &linux; в случае
- переустановки &windows;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="changing-bootprompt">
- <para>Как сменить приглашение загрузчика с <literal>???</literal> на
- что-нибудь более значащее?</para>
- </question>
-
- <answer>
- <para>Этого нельзя сделать со стандартным загрузчиком, не
- переписав его. В категории <filename>sysutils</filename>
- Коллекции Портов есть ряд других менеджеров
- загрузки.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="removable-drives">
- <para>Как использовать устройство для чтения сменных дисков?</para>
- </question>
-
- <answer>
- <para>Если у вас уже есть файловая система на устройстве,
- то используйте такую команду:</para>
-
- <screen>&prompt.root; <userinput>mount -t msdosfs /dev/da0s1 /mnt</userinput></screen>
-
- <para>Если это устройство будет использоваться только на
- системах &os;, то разбейте его на разделы
- <acronym>UFS</acronym> или <acronym>ZFS</acronym>. Это
- обеспечит поддержку длинных имён файлов, увеличение
- производительности и надёжность. Если устройство будет
- использоваться с другими операционными системами, то лучше
- сделать более совместимый выбор, например, msdosfs.</para>
-
- <screen>&prompt.root; <userinput>dd if=/dev/zero of=/dev/da0 count=2</userinput>
-&prompt.root; <userinput>gpart create -s GPT /dev/da0</userinput>
-&prompt.root; <userinput>gpart add -t freebsd-ufs /dev/da0</userinput></screen>
-
- <para>Наконец, остаётся создать новую файловую систему:</para>
-
- <screen>&prompt.root; <userinput>newfs /dev/da0p1</userinput></screen>
-
- <para>и смонтировать её:</para>
-
- <screen>&prompt.root; <userinput>mount /dev/da0s1 /mnt</userinput></screen>
-
- <para>Хорошо ещё добавить строку в файл
- <filename>/etc/fstab</filename> (прочтите справку по &man.fstab.5;),
- чтобы в будущем можно было просто давать команду
- <command>mount /mnt</command>:</para>
-
- <programlisting>/dev/da0p1 /mnt ufs rw,noauto 0 0</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="mount-cd-superblock">
- <para>При монтировании компакт-диска выдаётся сообщение
- <errorname>Incorrect super block</errorname>.</para>
- </question>
-
- <answer>
- <para>Необходимо указать тип монтируемого устройства.
- Это описано в в разделе Руководства <link
- xlink:href="&url.books.handbook;/creating-cds.html#mounting-cd">Использование
- CD с данными</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="cdrom-not-configured">
- <para>При монтировании компакт-диска выдаётся сообщение
- <literal>Device not configured</literal>.</para>
- </question>
-
- <answer>
- <para>Обычно это означает, что в приводе нет компакт-диска либо
- устройство не обнаружено на шине. Обратитесь к разделу
- <link xlink:href="&url.books.handbook;/creating-cds.html#mounting-cd">
- Использование CD с данными</link> в Руководстве, где подробно
- обсуждается этот вопрос.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="cdrom-unicode-filenames">
- <para>Когда я монтирую CD-ROM, все неанглийские символы в именах
- файлов выводятся как <quote>?</quote>.</para>
- </question>
-
- <answer>
- <para>Скорее всего, на компакт-диске для хранения информации о
- файлах и каталогах используется расширение <quote>Joliet</quote>.
- Это описано в разделе Руководства об <link
- xlink:href="&url.books.handbook;/creating-cds.html#mounting-cd">использовании
- CD с данными</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="burncd-isofs">
- <para>Записанный во &os; CD не читается ни в какой
- другой операционной системой. Почему?</para>
- </question>
-
- <answer>
- <para>Это означает, что на CD был записан непосредственно
- необработанный файл без создания файловой системы
- ISO&nbsp;9660. Прочтите раздел Руководства о <link
- xlink:href="&url.books.handbook;/creating-cds.html#rawdata-cd">записи
- данных непосредственно на компакт-диски</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="copy-cd">
- <para>Как создать образ CD с данными?</para>
- </question>
-
- <answer>
- <para>Это описано в разделе Руководства о <link
- xlink:href="&url.books.handbook;/creating-cds.html#imaging-cd">копировании
- CD с данными</link>. Более полную информацию о работе с
- компакт-дисками можно найти в разделе о <link
- xlink:href="&url.books.handbook;/creating-cds.html">создании
- компакт-дисков</link>
- в главе Руководства об устройствах хранения данных.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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, например, порт
- <package>audio/xmcd</package>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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 xml:id="user-floppymount">
- <para>Как разрешить обычным пользователям монтировать
- компакт-диски, DVD, USB-диски и другие сменные носители?</para>
- </question>
-
- <answer>
- <para>Как пользователь <systemitem
- class="username">root</systemitem>, установите
- системную переменную <varname>vfs.usermount</varname> в
- значение <literal>1</literal>.</para>
-
- <screen>&prompt.root; <userinput>sysctl vfs.usermount=1</userinput></screen>
-
- <para>Чтобы это срабатывало во время загрузки системы,
- добавьте строчку <literal>vfs.usermount=1</literal> в файл
- <filename>/etc/sysctl.conf</filename>.</para>
-
- <para>Пользователи могут монтировать только те устройства,
- к которым у них имеется доступ на чтение. Чтобы разрешить
- пользователям монтировать устройство, должны быть заданы
- разрешения в <filename>/etc/devfs.conf</filename>.</para>
-
- <para>Например, чтобы разрешить пользователям монтировать
- первое устройство USB, добавьте такую строчку:</para>
-
- <programlisting># Allow all users to mount a USB drive.
- own /dev/da0 root:operator
- perm /dev/da0 0666</programlisting>
-
- <para>Теперь все пользователи могут монтировать устройства
- с правами доступа на чтение в собственные каталоги:</para>
-
- <screen>&prompt.user; <userinput>mkdir ~/my-mount-point</userinput>
-&prompt.user; <userinput>mount -t msdosfs /dev/da0 ~/my-mount-point</userinput></screen>
-
- <para>Размонтирование устройства осуществляется просто:</para>
-
- <screen>&prompt.user; <userinput>umount ~/my-mount-point</userinput></screen>
-
- <para>Использование <varname>vfs.usermount</varname>, однако, имеет
- некоторые негативные стороны, связанные с вопросами безопасности.
- Более правильным способом работы с носителями в формате &ms-dos;
- является использование пакета <package>emulators/mtools</package>
- из Коллекции Портов.</para>
-
- <note>
- <para>Имя устройства, использованное в предыдущих
- примерах, должно быть изменено в соответствии с
- конфигурацией.</para>
- </note>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="du-vs-df">
- <para>Команды <command>du</command> и <command>df</command>
- показывают разный объем доступного дискового пространства.
- Что происходит?</para>
- </question>
-
- <answer>
- <para>Это связано с тем, как эти команды на самом деле
- работают. <command>du</command> проходит по дереву
- каталогов, замеряя, насколько большой объем занимает
- каждый файл, и выдает общий объем. <command>df</command>
- просто запрашивает файловую систему об оставшемся объеме.
- Это выглядит как одно и то же, однако файл без записи в
- каталоге затронет <command>df</command>, но не повлияет на
- <command>du</command>.</para>
-
- <para>Когда программа использует файл и этот файл удаляется,
- то на самом деле он не удаляется из файловой системы, пока
- программа не прекратит его использовать. Однако файл тут
- же удаляется из списка каталога. Представим себе файл
- достаточно большого размера, чтобы его присутствие влияло
- на вывод <command>du</command> и <command>df</command>.
- Если файл удаляется в процессе работы с ним команды
- <command>more</command>, команда <command>more</command>
- не сообщает сразу же, что не может просматривать файл.
- Запись о файле просто удалена из каталога, так что другие
- программы или пользователи не смогут к нему обратиться.
- Тем не менее, <command>du</command> покажет, что файл
- исчез, поскольку она просматривает дерево каталогов, а
- файла там нет. <command>df</command> показывает, что файл
- всё ещё здесь, так как файловая система знает, что
- <command>more</command> всё ещё использует это
- пространство. Как только закончится работа с
- <command>more</command>, команды <command>du</command> и
- <command>df</command> придут в соответствие.</para>
-
- <para>Такая ситуация часта на Web-серверах. Многие устанавливают
- Web-сервер на &os; и забывают обновлять файлы протоколов.
- Журнал доступа заполняет <filename>/var</filename>. Новый
- администратор удаляет файл, но система все еще сообщает о том, что
- раздел заполнен. Остановка и перезапуск программы Web-сервера
- освободит файл, позволяя системе освободить дисковое пространство.
- Для предотвращения этого настройте &man.newsyslog.8;.</para>
-
- <para>Заметьте, что подсистема отложенных обновлений
- (Soft Updates) может задерживать освобождение дискового
- пространства, и может потребоваться до 30 секунд, чтобы
- изменения стали заметны.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="add-swap-space">
- <para>Как добавить дополнительную виртуальную память?</para>
- </question>
-
- <answer>
- <para>В этом разделе <link
- xlink:href="&url.books.handbook;/adding-swap-space.html">Руководства</link>
- описывается, как это сделать.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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 xml:id="disk-more-than-full">
- <para>Почему возможно заполнение раздела больше чем на 100%?</para>
- </question>
-
- <answer>
- <para>Часть каждого раздела UFS (по умолчанию 8%) зарезервировано для
- использования операционной системой и пользователем
- <systemitem class="username">root</systemitem>. Утилита &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>
-
- <qandaentry>
- <question xml:id="slow-boot-memtest">
- <para>Почему загрузка &os; задерживается на длительное время
- на системах с большим объёмом ОЗУ?</para>
- </question>
-
- <answer>
- <para>&os; выполняет короткую проверку памяти на раннем
- этапе загрузки. Обычно эта проверка занимает всего
- несколько секунд, но если система имеет много десятков
- или сотен Гбайт памяти, это можно занять до нескольких
- минут. Эту проверку можно отключить, установив
- <literal>hw.memtest.tests</literal> в значение
- <literal>0</literal> в
- <filename>/boot/loader.conf</filename>.</para>
-
- <para>Для получения дополнительной информации смотрите
- страницу Справочника &man.loader.conf.5;.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter xml:id="all-about-zfs">
- <title>ZFS</title>
-
- <qandaset>
- <qandaentry>
- <question xml:id="how-much-ram-for-zfs">
- <para>Какой минимальный объём ОЗУ нужно иметь для ZFS?</para>
- </question>
-
- <answer>
- <para>Для комфортного использования требуется 4&nbsp;Гбайт
- ОЗУ, но конкретная нагрузка может сильно различаться.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="what-is-zil">
- <para>Что такое ZIL и когда оно используется?</para>
- </question>
-
- <answer>
- <para><acronym>ZIL</acronym> ((<acronym>ZFS</acronym>
- intent log) &mdash; это журнал записи, используемый для
- фиксации операций записи. Обычно операции собираются
- в группу транзакций и при заполнении группы пишутся на
- диск (<quote>Transaction Group Commit</quote>). Однако
- системные вызовы типа &man.fsync.2; требуют фиксацию
- записи данных на устройстве перед возвратом управления.
- ZIL нужен для подтверждения такой записи, но когда данные
- ещё не находятся на диске. Группа транзакций помечается
- временной меткой. В случае системного сбоя ищется
- последняя неповреждённая метка и из ZIL извлекаются
- недостающие данные.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="need-ssd-for-zil">
- <para>Нужен ли мне SSD для ZIL?</para>
- </question>
-
- <answer>
- <para>По умолчанию ZFS хранит ZIL в пуле со всеми данными.
- Если приложение имеет большой процент записи, вынос ZIL
- на отдельное устройство с очень быстрой синхронной
- последовательной записью может улучшить общую
- производительность. В остальных случаях SSD вряд ли
- сможет что-то сильно улучшить.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="what-is-l2arc">
- <para>Что такое L2ARC?</para>
- </question>
-
- <answer>
- <para><acronym>L2ARC</acronym> &mdash; это кеш на чтение,
- хранимый на быстром устройстве, таком как
- <acronym>SSD</acronym>. Этот кеш не сохраняется между
- перезагрузками. Следует заметить, что ОЗУ выступает
- как кеш первого уровня, а L2ARC задействуется только
- при нехватке ОЗУ.</para>
-
- <para>Для L2ARC нужно пространство в ARC для его индексации.
- Таким образом, рабочий набор, который идеально помещается
- в ARC, не будет помещаться при использовании L2ARC, потому
- что часть ARC будет отведена под индекс L2ARC с
- вытеснением части рабочего набора в L2ARC, более
- медленный, чем ОЗУ.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="should-enable-dedup">
- <para>Целесообразно ли включение дедупликации?</para>
- </question>
-
- <answer>
- <para>В общем случае нет.</para>
-
- <para>Дедупликация занимает значительный объём ОЗУ и может
- увеличить задержки операций ввода/вывода. Если данные
- не являются сильно дублированными (образы виртуальных
- машин или пользовательские бекапы), то, возможно,
- дедупликация даст больше вреда. Другое соображение
- касается невозможности отменить статус дедупликации.
- Если данные записаны при включённой дедупликации, её
- выключение не приведёт к обратной репликации объединённых
- блоков до момента следующей перезаписи.</para>
-
- <para>Дедупликация также может приводить к некоторым
- неожиданным ситуациям. В частности, удаление файлов
- может сильно замедлиться.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="zpool-fully-full">
- <para>Я не могу создать или удалить файлы на пуле ZFS.
- Как я могу это исправить?</para>
- </question>
-
- <answer>
- <para>Такое может произойти при 100% заполненности пула.
- ZFS требуется свободное место на диске для записи
- метаданных транзакций. Для восстановления
- работоспособного состояния пула обрежьте файл перед его
- удалением.</para>
-
- <screen>&prompt.user; <userinput>truncate -s 0 <replaceable>unimportant-file</replaceable></userinput></screen>
-
- <para>Обрезание файла работает по той причине, что новая
- транзакция при этом не запускается; вместо этого создаются
- новые свободные блоки.</para>
-
- <note>
- <para>На системах с дополнительной настройкой ZFS dataset,
- такой как дедупликация, свободное место может не быть
- доступно сразу.</para>
- </note>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="zfs-ssd-trim">
- <para>Поддерживается ли TRIM в ZFS для твердотельных
- накопителей?</para>
- </question>
-
- <answer>
- <para>Поддержка ZFS TRIM была добавлена во
- &os;&nbsp;10-CURRENT в ревизии
- r<revnumber>240868</revnumber> и стала доступна
- в ветках -STABLE в r<revnumber>252162</revnumber> и
- r<revnumber>251419</revnumber>.</para>
-
- <para>ZFS TRIM включена по умолчанию и может быть отключена
- посредством добавления такой строки в
- <filename>/etc/sysctl.conf</filename>:</para>
-
- <programlisting>vfs.zfs.trim_disable=1</programlisting>
-
- <note>
- <para>ZFS TRIM может не работать на всех конфигурациях,
- в частности для файловой системы ZFS на устройствах с
- использованием GELI.</para>
- </note>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter xml:id="admin">
- <title>Системное администрирование</title>
-
- <qandaset>
- <qandaentry>
- <question xml:id="startup-config-files">
- <para>Где расположены файлы конфигурации системы?</para>
- </question>
-
- <answer>
- <para>Основным конфигурационным файлом является
- <filename>/etc/defaults/rc.conf</filename>, который описан
- в &man.rc.conf.5;). Этот файл подключают системные
- скрипты запуска, такие как <filename>/etc/rc</filename> и
- <filename>/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>/usr/local/etc/rc.d</filename>.
- У этих скриптов
- должен быть выставлен бит выполнимости, по умолчанию
- используются права доступа <literal>555</literal>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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 xml:id="root-not-found-cron-errors">
- <para>Почему после редактирования моего файла
- <filename>crontab</filename> я получаю сообщения вида
- <errorname>root: not found</errorname>?</para>
- </question>
-
- <answer>
- <para>Обычно это случается при редактировании системного
- файла crontab.</para>
-
- <para>Это неправильный подход, потому что системный crontab
- имеет формат, отличный от пользовательских crontab.
- Системный crontab имеет дополнительное поле, указывающее,
- под каким пользователем запускать команду. &man.cron.8;
- полагает, что имя пользователя является первым словом в
- команде на выполнение. Поскольку такой команды не
- существует, отображается это сообщение об ошибке.</para>
-
- <para>Чтобы удалить лишний неправильный crontab:</para>
-
- <screen>&prompt.root; <userinput>crontab -r</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="su-wheel-group">
- <para>Команда <command>su</command> выдает ошибку
- <errorname>you are not in the correct group to su
- root</errorname>, когда я пытаюсь сменить привилегии на
- <systemitem class="username">root</systemitem>.</para>
- </question>
-
- <answer>
- <para>Это особенность работы системы защиты. Для того,
- чтобы сменить пользовательский идентификатор с помощью
- <command>su</command> на пользователя <systemitem
- class="username">root</systemitem> или любого другого
- с привилегиями суперпользователя, учётная запись должна
- являться членом группы <systemitem
- class="groupname">wheel</systemitem>. Если бы этого не
- было, то любой, имеющий доступ к системе и узнавший пароль
- пользователя <systemitem
- class="username">root</systemitem>, смог бы получить в
- системе уровень доступа суперпользователя.</para>
-
- <para>Чтобы разрешить кому-либо менять привилегии на
- <systemitem class="username">root</systemitem>, включите
- его в группу <systemitem
- class="groupname">wheel</systemitem> с помощью
- <command>pw</command>.</para>
-
- <screen>&prompt.root; <userinput>pw groupmod wheel -m lisa</userinput></screen>
-
- <para>В примере выше пользователь <systemitem
- class="username">lisa</systemitem> будет добавлен в группу
- <systemitem class="groupname">wheel</systemitem>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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=xterm</command> во &os; 9.0+ или
- <command>export TERM=cons25</command> во &os; 8.X, чтобы
- такие редакторы смогли корректно взять данные из базы
- данных &man.termcap.5;.</para>
-
- <para>После выполнения этих шагов отредактируйте файл
- <filename>/etc/rc.conf</filename> для исправления ошибки.
- Сообщение об ошибке, выводимое сразу же после сообщений
- при загрузке ядра, должно указать на номер строки в файле,
- которая содержит ошибку.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="printer-setup">
- <para>У меня проблемы с установкой принтера.</para>
- </question>
-
- <answer>
- <para>Обратитесь к соответствующему <link
- xlink:href="&url.books.handbook;/printing.html">разделу</link>
- Руководства, посвящённому печати, за советами по
- разрешению проблем.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="keyboard-mappings">
- <para>Раскладка клавиатуры неверна.</para>
- </question>
-
- <answer>
- <para>Обратитесь к разделу Руководства, посвящённому
- <link xlink:href="&url.books.handbook;/using-localization.html">
- использованию локализации</link>, а именно к части, описывающей
- <link xlink:href="&url.books.handbook;/using-localization.html#setting-console">
- настройку консоли</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="user-quotas">
- <para>Почему не получается заставить работать дисковые квоты?</para>
- </question>
-
- <answer>
- <orderedlist>
- <listitem>
- <para>Возможно, что ядро не сконфигурировано должным
- образом для работы с квотами. В этом случае добавьте
- следующую строчку в конфигурационный файл ядра и
- пересоберите ядро:</para>
-
- <programlisting>options QUOTA</programlisting>
-
- <para>Прочтите <link
- xlink:href="&url.books.handbook;/quotas.html">главу
- руководства по квотам</link> для полной
- информации.</para>
- </listitem>
-
- <listitem>
- <para>Не включайте квотирование на разделе
- <filename>/</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>/usr</filename></entry>
-
- <entry><filename>/usr/admin/quotas</filename></entry>
- </row>
-
- <row>
- <entry><filename>/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 xml:id="sysv-ipc">
- <para>Поддерживает ли &os; вызовы IPC из System V?</para>
- </question>
-
- <answer>
- <para>Да, во &os; в ядро <filename>GENERIC</filename>
- включена поддержка IPC в стиле System V, в том числе
- совместно используемой памяти, сообщений и семафоров.
- В вашем собственном ядре поддержка может быть включена
- посредством загрузки модулей ядра
- <filename>sysvshm.ko</filename>,
- <filename>sysvsem.ko</filename> и
- <filename>sysvmsg.ko</filename> или добавлением в
- конфигурационный файл ядра следующих строк:</para>
-
- <programlisting>options SYSVSHM # enable shared memory
-options SYSVSEM # enable for semaphores
-options SYSVMSG # enable for messaging</programlisting>
-
- <para>Перекомпилируйте и переустановите ядро.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="sendmail-alternative">
- <para>Какое другое программное обеспечение для почтового
- сервера можно использовать вместо
- <application>Sendmail</application>?</para>
- </question>
-
- <answer>
- <para>Сервер <link
- xlink:href="http://www.sendmail.org/"><application>Sendmail</application></link>
- является программным обеспечением для работы почтового
- сервера во &os;, используемым по умолчанию, но его можно
- заменить другим MTA, установленным из Коллекции Портов.
- В дереве портов имеется <package>mail/exim</package>,
- <package>mail/postfix</package> и
- <package>mail/qmail</package>. Проверьте архивы списков
- рассылки на предмет обсуждения достоинств и недостатков
- имеющихся MTA.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="forgot-root-pw">
- <para>Я забыл пароль пользователя <systemitem
- class="username">root</systemitem>! Что
- делать?</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>, чтобы
- сменить пароль пользователя <systemitem
- class="username">root</systemitem>, а затем &man.exit.1;
- для продолжения процесса загрузки.</para>
-
- <note>
- <para>Если при входе в однопользовательский режим
- предлагается ввести пароль пользователя <systemitem
- class="username">root</systemitem>, это означает, что
- консоль была помечена как <literal>insecure</literal> в
- <filename>/etc/ttys</filename>. В этом случае
- потребуется загрузиться с установочного диска &os;,
- выбрать <guimenuitem>Live CD</guimenuitem> или
- <guimenuitem>Shell</guimenuitem> в начале процесса
- установки и выполнить указанные выше команды. В этом
- случае смонтируйте нужный раздел и выполните туда
- chroot. Например, замените команду <command>mount
- -urw /</command> на <command>mount /dev/ada0p1 /mnt;
- chroot /mnt</command> для системы, расположенной на
- <replaceable>ada0p1</replaceable>.</para>
- </note>
-
- <note>
- <para>Если корневой раздел не получается смонтировать в
- однопользовательском режиме, то возможно, что разделы
- являются зашифрованными, и смонтировать их без ключей
- доступа не представляется возможным. За дополнительной
- информацией обращайтесь к разделу <link
- xlink:href="&url.books.handbook;/disks-encrypting.html">Руководства</link>,
- посвященному шифрованию дисков во &os;.</para>
- </note>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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' file(s)</userinput></screen>
-
- <para>где <replaceable>file(s)</replaceable> - это один или
- несколько файлов для обработки.
- Преобразование делается в том же самом файле, оригинальные файлы
- сохраняются с расширением <filename>.bak</filename>.</para>
-
- <para>Либо используйте &man.tr.1;:</para>
-
- <screen>&prompt.user; <userinput>tr -d '\r' &lt; dos-text-file &gt; unix-file</userinput></screen>
-
- <para>где <replaceable>dos-text-file</replaceable> - это имя файла,
- содержащего текст DOS, а в файл
- <replaceable>unix-file</replaceable> будет помещён уже
- преобразованный текст. Этот способ может работать гораздо
- быстрее, чем при использовании <command>perl</command>.</para>
-
- <para>Еще один способ отформатировать тестовые файлы DOS
- состоит в использовании <package>converters/dosunix</package> из Коллекции
- Портов. Для получения дополнительной информации ознакомьтесь
- с документацией порта.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="reread-rc">
- <para>Как перечитать содержимое <filename>/etc/rc.conf</filename>
- и перестартовать <filename>/etc/rc</filename> без перезагрузки
- системы?</para>
- </question>
-
- <answer>
- <para>Перейдите в однопользовательский режим, а затем возвратитесь обратно
- в многопользовательский.</para>
-
- <screen>&prompt.root; <userinput>shutdown now</userinput>
-&prompt.root; <userinput>return</userinput>
-&prompt.root; <userinput>exit</userinput></screen>
-
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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; релизы выпускаются из одного из
- двух мест. Крупные релизы, точка-ноль, такие, как
- 9.0-RELEASE и 10.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>Для получения дополнительной информации о номерах версий и
- различных ветках Subversion обратитесь к статье о <link xlink:href="&url.articles.releng;/article.html">выпуске
- релизов</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="kernel-chflag-failure">
- <para>Я попытался установить новое ядро, однако утилита
- &man.chflags.1; не сработала. Как это обойти?</para>
- </question>
-
- <answer>
- <para>Краткий ответ: Режим безопасности имеет значение
- больше нуля. Для установки ядра перезагрузите машину и
- войдите в однопользовательский режим.</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 xml: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 xml: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>/var</filename>)
- в свое адресное
- пространство. Для того, чтобы постоянно не беспокоиться о будущих
- переотражениях, когда файл вырастет в размерах, он просто
- отображает его с огромным размером заранее. Это просто заметить
- в исходных текстах, где как вы можете увидеть параметр длина
- к функции &man.mmap.2; имеет значение
- <literal>0x10000000</literal>, или одна шестнадцатая адресного
- пространства для IA32, то есть 256&nbsp;Мбайт.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="unsetting-schg">
- <para>Почему я не могу снять с файла флаг <literal>schg</literal>?</para>
- </question>
-
- <answer>
- <para>Система работает с уровнем защиты выше нуля. Понизьте
- уровень защиты и попробуйте еще раз. Для получения более
- подробной информации обратитесь к <link
- linkend="securelevel">разделу <acronym>FAQ</acronym>
- об уровне защиты</link> и
- справочной странице &man.init.8;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="vnlru">
- <para>Что такое <literal>vnlru</literal>?</para>
- </question>
-
- <answer>
- <para><literal>vnlru</literal> сбрасывает и освобождает
- vnode, когда система достигает ограничения по параметру
- <varname>kern.maxvnodes</varname>. Этот поток ядра в
- основном работает вхолостую и активируется только при
- наличии огромного объема ОЗУ и обращении к десяткам тысяч
- файлов небольшого размера.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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 xml: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 xml:id="var-empty">
- <para>Что такое <filename>/var/empty</filename>?</para>
- </question>
-
- <answer>
- <para><filename>/var/empty</filename> представляет собой
- каталог, который используется в программе &man.sshd.8;
- при выполнении разделения полномочий. Каталог
- <filename>/var/empty</filename> пуст, его владельцем
- является <systemitem class="username">root</systemitem>,
- и на нём установлен флаг <literal>schg</literal>.
- Этот каталог не должен удаляться.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="newsyslog-expectations">
- <para>Я поменял <filename>/etc/newsyslog.conf</filename>.
- Как проверить правильность изменений?</para>
- </question>
-
- <answer>
- <para>Чтобы посмотреть, что будет делать &man.newsyslog.8;,
- используйте следующую команду:</para>
-
- <screen>&prompt.user; <userinput>newsyslog -nrvv</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="timezone">
- <para>Как поправить часовой пояс?</para>
- </question>
-
- <answer>
- <para>Используйте &man.tzsetup.8;.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter xml:id="x">
- <title>X Window System и виртуальные консоли</title>
-
- <qandaset>
- <qandaentry>
- <question xml:id="whatis-X">
- <para>Что такое X Window System?</para>
- </question>
-
- <answer>
- <para>X Window System (обычно <literal>X11</literal>)
- является наиболее общедоступной оконной системой, которая
- может работать на &unix; и &unix;-подобных системах, в том
- числе и во &os;. Разработкой стандартов на используемый
- <link
- xlink:href="http://en.wikipedia.org/wiki/X_Window_System_core_protocol">X-протокол</link>
- занимается организация <link
- xlink:href="http://www.x.org/wiki/">The X.Org Foundation</link>,
- с текущей эталонной реализацией version 11 release
- &xorg.version;, поэтому название часто сокращается до
- <literal>X11</literal>.</para>
-
- <para>Для разных архитектур и операционных систем существует
- множество реализаций этой системы. Реализацию кода для
- серверной части называют <literal>X-сервером</literal>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="running-X">
- <para>Я хочу запустить &xorg;, как это сделать?</para>
- </question>
-
- <answer>
- <para>Для установки &xorg; выполните одно из действий:</para>
-
- <para>Используйте мета-порт <filename
- role="package">x11/xorg</filename>, который выполняет
- построение и установку всех компонентов &xorg;.</para>
-
- <para>Используйте <filename
- role="package">x11/xorg-minimal</filename>, который
- выполняет построение и установку только необходимых
- компонентов &xorg;.</para>
-
- <para>Установите &xorg; из пакетов &os;.</para>
-
- <screen><userinput>&prompt.root; pkg install xorg</userinput></screen>
-
- <para>После установки &xorg; следуйте указаниям в разделе <link
- xlink:href="&url.books.handbook;/x-config.html">Конфигурация
- X11</link> Руководства &os;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="running-X-securelevels">
- <para>Я <emphasis>попытался</emphasis> запустить X, но получил
- сообщение <errorname>No devices detected.</errorname> после
- ввода команды
- <command>startx</command>. Что мне теперь делать?</para>
- </question>
-
- <answer>
- <para>Вероятно, в системе установлен повышенный уровень
- безопасности (<literal>securelevel</literal>). При
- повышенном уровне защиты систему X запустить невозможно,
- потому что X требуются права на операции записи в
- устройство &man.io.4;. Дополнительная информация
- находится на странице Справочника &man.init.8;.</para>
-
- <para>Существует два решения проблемы: установить значение
- <literal>securelevel</literal> обратно в ноль или
- запускать &man.xdm.1; (или любой другой оконный менеджер)
- во время загрузки, до того как повышается значение
- <literal>securelevel</literal>.</para>
-
- <para>Обратитесь к <xref linkend="xdm-boot"/> для получения более
- полной информации о запуске &man.xdm.1; во время загрузки.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="x-and-moused">
- <para>Почему моя мышь не работает с X?</para>
- </question>
-
- <answer>
- <para>При использовании стандартного драйвера консоли
- &man.syscons.4; во &os; можно включить поддержку указателя
- мыши во всех виртуальных экранах. Во избежание конфликтов
- с X, драйвер &man.syscons.4; поддерживает виртуальное
- устройство <filename>/dev/sysmouse</filename>. Все события
- от реального устройства мыши пишутся в устройство
- &man.sysmouse.4; через &man.moused.8;. Чтобы использовать
- мышь на одной и более виртуальных консолях, и при этом
- продолжать использовать 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 устройство
- <filename>/dev/mouse</filename>. Чтобы оно работало, файл
- устройства <filename>/dev/mouse</filename> должен являться
- ссылкой на <filename>/dev/sysmouse</filename> (посмотрите
- справку по &man.sysmouse.4;). Это можно сделать, добавив
- следующую строку в <filename>/etc/devfs.conf</filename>
- (посмотрите справку по &man.devfs.conf.5;):</para>
-
- <programlisting>link sysmouse mouse</programlisting>
-
- <para>Ссылка может быть создана путем перезапуска &man.devfs.5;
- с использованием следующей команды (из под пользователя
- <systemitem class="username">root</systemitem>):</para>
-
- <screen>&prompt.root; <userinput>service devfs restart</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="x-and-wheel">
- <para>У моей мыши есть колёсико. Могу ли я его использовать
- при работе в X?</para>
- </question>
-
- <answer>
- <para>Да, если X настроена для использования 5-кнопочной
- мыши. Для этого добавьте строчки <literal>Buttons
- 5</literal> и <literal>ZAxisMapping 4 5</literal> в
- раздел <quote>InputDevice</quote> файла
- <filename>/etc/X11/xorg.conf</filename> как показано
- в этом примере:</para>
-
- <programlisting>Section "InputDevice"
- Identifier "Mouse1"
- Driver "mouse"
- Option "Protocol" "auto"
- Option "Device" "/dev/sysmouse"
- Option "Buttons" "5"
- Option "ZAxisMapping" "4 5"
-EndSection</programlisting>
-
- <para>Для использования мыши в
- <application>Emacs</application> также добавьте в
- <filename>~/.emacs</filename> следующие строки:</para>
-
- <programlisting>;; wheel mouse
-(global-set-key [mouse-4] 'scroll-down)
-(global-set-key [mouse-5] 'scroll-up)</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="x-and-synaptic">
- <para>Как заставить работать тачпад Synaptics в X?</para>
- </question>
-
- <answer>
- <para>Для его работы понадобится настроить некоторые вещи.</para>
-
- <para>Чтобы использовать драйвер synaptics из Xorg, для
- начала удалите строку moused_enable из
- <filename>rc.conf</filename>.</para>
-
- <para>Для включения synaptics добавьте следующую строку в
- <filename>/boot/loader.conf</filename>:</para>
-
- <programlisting>hw.psm.synaptics_support="1"</programlisting>
-
- <para>Добавьте следующее в
- <filename>/etc/X11/xorg.conf</filename>:</para>
-
- <programlisting>Section "InputDevice"
-Identifier "Touchpad0"
-Driver "synaptics"
-Option "Protocol" "psm"
-Option "Device" "/dev/psm0"
-EndSection</programlisting>
-
- <para>И не забыть добавить следующее в раздел
- <quote>ServerLayout</quote>:</para>
-
- <programlisting>InputDevice "Touchpad0" "SendCoreEvents"</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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 xml:id="virtual-console">
- <para>Что такое виртуальные консоли и как изменить их
- количество?</para>
- </question>
-
- <answer>
- <para>Виртуальные консоли предоставляют несколько
- одновременных сеансов работы с той же самой машиной без
- установки какой бы то ни было сети или запуска X.</para>
-
- <para>При запуске системы после вывода сообщений этапа
- загрузки на консоль выдаётся приглашение для входа в
- систему. Введите своё имя и пароль, чтобы начать работу
- на первой виртуальной консоли.</para>
-
- <para>Чтобы запустить ещё один сеанс, скажем, чтобы
- заглянуть в документацию по программе или для чтения
- электронной почты во время ожидания завершения передачи
- данных по FTP, нажмите <keycap>F2</keycap>, удерживая
- <keycap>Alt</keycap>. Это отобразит приглашение на
- второй виртуальной консоли. Чтобы вернуться к
- первоначальному сеансу, нажмите <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;), добавив туда записи
- для терминалов с именами от <filename>ttyv8</filename> до
- <filename>ttyvc</filename> после комментария про
- <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" xterm on secure
-ttyv9 "/usr/libexec/getty Pc" xterm on secure
-ttyva "/usr/libexec/getty Pc" xterm on secure
-ttyvb "/usr/libexec/getty Pc" xterm on secure</programlisting>
-
- <para>Чем больше виртуальных терминалов, тем больше ресурсов
- используется. Это может привести к проблемам на системах
- с 8&nbsp;Мбайт ОЗУ или меньше. Подумайте о смене статуса
- консолей с <literal>secure</literal> на
- <literal>insecure</literal>.</para>
-
- <note>
- <para>Во &os; до версии 9.0 использовался тип терминала
- <quote>cons25</quote> вместо <quote>xterm</quote>.
- При добавлении в <filename>/etc/ttys</filename> новых
- записей используйте существующий формат.</para>
- </note>
-
- <important>
- <para>Чтобы запустить сервер X, нужно зарезервировать под
- него хотя бы один виртуальный терминал со значением
- <literal>off</literal>. Это означает, что под
- виртуальные консоли можно отвести только одиннадцать
- функциональных клавиш, и ещё одна остаётся за
- X-сервером.</para>
- </important>
-
- <para>Например, чтобы запустить X и 11 виртуальных консолей,
- нужно настроить двенадцатый виртуальный терминал:</para>
-
- <programlisting>ttyvb "/usr/libexec/getty Pc" xterm off secure</programlisting>
-
- <para>Самым простым способом активировать виртуальные
- консоли является перезагрузка.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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>/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-серверу указывается работать на
- <filename>/dev/ttyv3</filename>. Заметьте, что номера
- отличаются на единицу. Дело в том, что X-сервер считает vty
- от единицы, когда как отсчёт vty в ядре &os; ведётся с нуля.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="xconsole-failure">
- <para>При запуске <command>xconsole</command> выдаётся сообщение
- <errorname>Couldn't open console</errorname>.</para>
- </question>
-
- <answer>
- <para>Если <application>X</application> запускается с
- помощью <application>startx</application>, права на
- устройство <filename>/dev/console</filename>
- <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>Этого будет достаточно для того, чтобы всякий, кто вошёл
- в систему с терминала <filename>/dev/ttyv0</filename>, имел доступ к
- консоли.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="ps2-x">
- <para>Моя мышь PS/2 в X работает неправильно.</para>
- </question>
-
- <answer>
- <para>Мышь и драйвер могли рассинхронизироваться. В редких
- случаях драйвер может ошибочно сообщать о проблемах
- синхронизации:</para>
-
- <programlisting>psmintr: out of sync (xxxx != yyyy)</programlisting>
-
- <para>Если это случилось, отмените проверку согласования,
- установив значение флага для драйвера мыши PS/2 в
- <literal>0x100</literal>. Проще всего это сделать
- добавлением <literal>hint.psm.0.flags="0x100"</literal> в
- <filename>/boot/loader.conf</filename> с перезагрузкой.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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 xml:id="install-splash">
- <para>Как установить экранную заставку и где такие заставки можно
- найти?</para>
- </question>
-
- <answer>
- <para>Подробный ответ находится в разделе <link
- xlink:href="&url.books.handbook;/boot-blocks.html#boot-splash">Загрузочные
- экранные заставки</link> Руководства &os;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="windows-keys">
- <para>Можно ли в X использовать клавишу
- <keycap>Windows</keycap>?</para>
- </question>
-
- <answer>
- <para>Да. Используйте &man.xmodmap.1; для привязки функций
- к этим клавишам.</para>
-
- <para>Если все клавиатуры Windows стандартны, то
- эти три клавиши имеют следующие клавиатурные коды:</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>Для того, чтобы переопределения клавиш
- <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>При использовании оконного менеджера
- <package>x11-wm/fvwm2</package> клавиши можно
- переопределить так, чтобы <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 xml:id="x-3d-acceleration">
- <para>Как заставить работать аппаратное ускорение 3D-графики для
- &opengl;?</para>
- </question>
-
- <answer>
- <para>Наличие 3D-ускорения зависит от версии сервера &xorg;
- и типа графического адаптера. Для адаптера nVidia
- используйте двоичный драйвер для &os;, установив один из
- нижеследующих портов:</para>
-
- <para>Последние версии адаптеров nVidia поддерживаются
- портом <package>x11/nvidia-driver</package>.</para>
-
- <para>Более старые драйверы доступны как
- <package>x11/nvidia-driver-<replaceable>###</replaceable></package>.</para>
-
- <para>nVidia предоставляет подробную информацию о том, какие
- адаптеры поддерживаются тем или иным драйвером,
- на своём сайте: <uri
- xlink:href="http://www.nvidia.com/object/IO_32667.html">http://www.nvidia.com/object/IO_32667.html</uri>.</para>
-
- <para>Для адаптеров Matrox&nbsp;G200/G400 следует
- попробовать порт <package>x11-servers/mga_hal</package>.</para>
-
- <para>Для ATI&nbsp;Rage&nbsp;128 и Radeon посмотрите страницы
- Справочника &man.ati.4x;, &man.r128.4x; и &man.radeon.4x;.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter xml:id="networking">
- <title>Работа в сети</title>
-
- <qandaset>
- <qandaentry>
- <question xml:id="diskless-booting">
- <para>Где можно найти информацию о <quote>бездисковой
- загрузке</quote>?</para>
- </question>
-
- <answer>
- <para><quote>Бездисковая загрузка</quote> означает, что машина
- с &os; загружается по сети и читает необходимые файлы с
- сервера, а не со своего диска. Подробное описание есть в
- <link xlink:href="&url.books.handbook;/network-diskless.html">
- соответствующей главе</link> Руководства.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="router">
- <para>Может ли машина с &os; использоваться как
- маршрутизатор?</para>
- </question>
-
- <answer>
- <para>Да. Обратитесь к разделу Руководства,
- посвящённому <link xlink:href="&url.books.handbook;/advanced-networking.html">сложным
- вопросам работы в сети</link>, особенно в той части, что
- касается <link xlink:href="&url.books.handbook;/network-routing.html">маршрутизации
- и маршрутизаторов</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="win95-connection">
- <para>Можно ли подключить машину с &windows; к Internet с помощью
- &os;?</para>
- </question>
-
- <answer>
- <para>Как правило, те, кто задают такие вопросы, имеют дома
- два компьютера, один с &os;, а другой с какой-то версией
- &windows;. Идея состоит в использовании &os; для
- подключения к Internet, а затем осуществлять выход в Internet
- из &windows; через &os;. На самом деле это просто частный
- случай предыдущего вопроса, который хорошо отработан.</para>
-
- <para>Для подключения к Internet с использованием
- коммутируемого соединения нужно указать параметр
- <option>-nat</option> и установить в файле
- <filename>/etc/rc.conf</filename> переменную
- <literal>gateway_enable</literal> в значение
- <emphasis>YES</emphasis>. Для получения
- дополнительной информации обратитесь к страницам
- справочной системы по команде &man.ppp.8; или <link xlink:href="&url.books.handbook;/userppp.html">
- разделу Руководства о PPP режима пользователя</link>.</para>
-
- <para>Если подключение к Internet выполняется через
- Ethernet, используйте &man.natd.8;. Вводная информация
- находится в разделе Руководства <link
- xlink:href="&url.books.handbook;/network-natd.html">natd</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="slip-ppp-support">
- <para>Поддерживает ли &os; протокол PPP?</para>
- </question>
-
- <answer>
- <para>Да. &man.ppp.8; может обслуживать как входящие, так и
- исходящие соединения.</para>
-
- <para>Более подробная информация об их использовании находится в
- <link xlink:href="&url.books.handbook;/ppp-and-slip.html">разделе
- Руководства о протоколе PPP</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="natd">
- <para>Поддерживает ли &os; технологию NAT или Masquerading?</para>
- </question>
-
- <answer>
- <para>Да. Для получения указаний по использованию NAT через
- подключение PPP обратитесь к <link
- xlink:href="&url.books.handbook;/userppp.html">разделу
- Руководства о PPP</link>. Чтобы использовать NAT вместе
- с другим типом сетевого подключения, взгляните на раздел
- Руководства <link
- xlink:href="&url.books.handbook;/network-natd.html">natd</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="ethernet-aliases">
- <para>Как настроить алиас в сети Ethernet?</para>
- </question>
-
- <answer>
- <para>Если алиас находится в той же самой сети, что и уже
- настроенный на интерфейсе адрес, допишите к этой команде
- <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>Дополнительная информация находится в <link
- xlink:href="&url.books.handbook;/configtuning-virtual-hosts.html">Руководстве</link>
- &os;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="nfs-linux">
- <para>Почему я не могу смонтировать диск &linux; по NFS?</para>
- </question>
-
- <answer>
- <para>Некоторые версии NFS для &linux; поддерживают запросы на
- монтирование только с привилегированного порта; попробуйте
- выполнить следующую команду:</para>
-
- <screen>&prompt.root; <userinput>mount -o -P linuxbox:/blah /mnt</userinput></screen>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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; и раздел об <link xlink:href="&url.books.handbook;/network-nfs.html">NFS</link> в Руководстве,
- особенно в части <link
- xlink:href="&url.books.handbook;/network-nfs.html#configuring-nfs">настройки
- NFS</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="ip-multicast">
- <para>Как включить поддержку multicast IP?</para>
- </question>
-
- <answer>
- <para>Установите пакет <package>net/mrouted</package> и
- добавьте <literal>mrouted_enable="YES"</literal> в
- <filename>/etc/rc.conf</filename> для запуска этого
- сервиса во время загрузки.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="fqdn-hosts">
- <para>Почему я должен использовать FQDN для хостов не в моей
- сети?</para>
- </question>
-
- <answer>
- <para>За ответом на этот вопрос обращайтесь к <link
- xlink:href="&url.books.handbook;/mail-trouble.html">Руководству</link>
- &os;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="network-permission-denied">
- <para><errorname>Permission denied</errorname> для любых действий,
- связанных с работой сети.</para>
- </question>
-
- <answer>
- <para>Если ядро скомпилировано с параметром
- <literal>IPFIREWALL</literal>, имейте в виду, что
- политикой по умолчанию является запрет прохождения
- всех пакетов, которые явно не разрешены.</para>
-
- <para>Если межсетевой экран был случайно сконфигурирован
- неверным образом, то для восстановления работоспособности
- сети наберите такую команду из-под пользователя
- <systemitem class="username">root</systemitem>:</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>Дополнительная информация о настройке данного
- межсетевого экрана находится в <link
- xlink:href="&url.books.handbook;/firewalls-ipfw.html">соответствующей
- главе</link> Руководства.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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>. Адрес
- назначения пакета не меняется на
- <replaceable>10.0.0.1</replaceable>. Большинство машин,
- скорее всего, отбросят полученный пакет, имеющий адрес
- назначения, им не соответствующий. Таким образом, правило
- <quote>fwd</quote> не часто работает так, как ожидает
- пользователь. Такое поведение является особенностью, а не
- ошибкой.</para>
-
- <para>Обратитесь к <link
- linkend="service-redirect"><acronym>FAQ</acronym> о
- перенаправлении сервисов</link>, руководству по &man.natd.8; или
- одной из нескольких утилит для перенаправления из <link xlink:href="&url.base;/ports/index.html">Коллекции Портов</link> для
- того, чтобы сделать это правильно.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="service-redirect">
- <para>Как можно перенаправить запросы с одной машины на другую?</para>
- </question>
-
- <answer>
- <para>Запросы FTP и других сервисов можно перенаправить с
- помощью порта <package>sysutils/socket</package>.
- Замените запись для этого сервиса в
- <filename>/etc/inetd.conf</filename> на вызов
- <command>socket</command>, как показано в этом примере для
- <application>ftpd</application>:</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 xml:id="bandwidth-mgr-tool">
- <para>Где можно найти средства управления сетевым трафиком?</para>
- </question>
-
- <answer>
- <para>Для &os; имеются три средства управления трафиком.
- &man.dummynet.4; интегрирован в систему &os; как составная
- часть &man.ipfw.4;. <link xlink:href="http://www.sonycsl.co.jp/person/kjc/programs.html">
- ALTQ</link> включен во &os; как составная часть &man.pf.4;.
- Bandwidth Manager компании <link xlink:href="http://www.etinc.com/">Emerging Technologies</link>
- является коммерческим продуктом.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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 xml:id="mount-smb-share">
- <para>Как смонтировать диск &windows;-машины в моей локальной сети,
- как это делает smbmount в &linux;?</para>
- </question>
-
- <answer>
- <para>Используйте пакет <application>SMBFS</application>. В него
- включён набор изменений в ядре и пользовательские программы.
- Программы и информация доступны как &man.mount.smbfs.8; и
- входят в состав базовой системы.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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 net.inet.icmp.icmplim=300</userinput></screen>
-
- <para>Для выключения подобных сообщений без отключения
- самого ограничения используйте
- <varname>net.inet.icmp.icmplim_output</varname>, чтобы
- подавить вывода:</para>
-
- <screen>&prompt.root; <userinput>sysctl net.inet.icmp.icmplim_output=0</userinput></screen>
-
- <para>И наконец, чтобы полностью выключить это ограничение,
- сделайте <varname>net.inet.icmp.icmplim</varname> равным
- <literal>0</literal>. Выключение этого лимита не
- приветствуется по причинам, изложенным выше.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="unknown-hw-addr-format">
- <para>Что это за сообщения <errorname>arp: unknown hardware
- address format</errorname>?</para>
- </question>
-
- <answer>
- <para>Это означает, что какое-то устройство в локальной сети
- Ethernet использует MAC-адрес в формате, неизвестном &os;.
- Вероятно, это происходит из-за того, что кто-то в сети
- экспериментирует с сетевым адаптером. Чаще всего это
- происходит в сетях с кабельными модемами. Это безобидно и
- не должно влиять на производительность системы &os;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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>
- </qandaset>
- </chapter>
-
- <chapter xml:id="security">
- <title>Безопасность</title>
-
- <qandaset>
- <qandaentry>
- <question xml:id="sandbox">
- <para>Что означает термин sandbox (песочница)?</para>
- </question>
-
- <answer>
- <para><quote>Sandbox</quote> - это термин, используемый при
- обеспечении безопасности. Он имеет два значения:</para>
-
- <itemizedlist>
- <listitem>
- <para>Процесс, помещённый внутрь некоторых виртуальных
- стен, которые предназначены для предотвращения взлома
- всей системы в результате взлома этого конкретного
- процесса.</para>
-
- <para>Процесс может работать в границах этих стен.
- Поскольку, что бы этот процесс ни делал, он эти стены
- разрушить не может, особый аудит его кода не нужен для
- того, чтобы с уверенностью сказать, насколько его
- работа безопасна для системы.</para>
-
- <para>Стеной может служить, например, идентификатор
- пользователя. Вот определение, даваемое на страницах
- Справочника &man.security.7; и &man.named.8;.</para>
-
- <para>Рассмотрим, например, службу <literal>ntalk</literal>
- (смотрите &man.inetd.8;). Раньше эта
- служба запускалась с идентификатором пользователя
- <systemitem class="username">root</systemitem>, а сейчас &mdash; <systemitem class="username">tty</systemitem>.
- Пользователь <systemitem class="username">tty</systemitem> &mdash; это та песочница,
- которая осложняет взлом системы через <literal>ntalk</literal>
- посредством использования этого идентификатора
- пользователя.</para>
- </listitem>
-
- <listitem>
- <para>Процесс, помещённый внутрь симулируемой машины. Это
- даёт больший уровень безопасности. Это означает, что
- некто, взломавший процесс, может думать, что может сломать и
- систему в целом, однако фактически может сломать только
- симулятор этой машины и не может модифицировать никаких
- реальных данных.</para>
-
- <para>Самым распространённым способом достигнуть такого
- результата является построение имитирующего окружения в
- каталоге и затем запуск процессов в этом каталоге через
- chroot (т.е. задав этот каталог в качестве
- <filename>/</filename> для этого процесса,
- а не реальный <filename>/</filename> всей
- системы).</para>
-
- <para>Другим часто используемым методом является монтирование
- низлежащей файловой системы в режиме "только для чтения" и
- затем создание уровня файловой системы поверх неё, что даёт
- процессу видимость доступа по записи на ту файловую систему.
- Процесс будет полагать, что может записывать в те файлы, но
- это будет единственный процесс, который увидит результат
- &mdash; другие процессы не будут этого делать ни в коем
- случае.</para>
-
- <para>Попытка сделать такой тип песочницы настолько прозрачна, что
- пользователь (или взломщик) даже не поймёт, что он в ней
- находится.</para>
- </listitem>
- </itemizedlist>
-
- <para>В &unix; реализованы два типа <quote>песочниц</quote>. Один на
- уровне процесса, и один на уровне идентификаторов
- пользователей.</para>
-
- <para>Каждый процесс в &unix; полностью защищён от других процессов.
- Никакой процесс не может модифицировать адресное пространство
- другого процесса.</para>
-
- <para>В &unix; каждым процессом владеет некоторый идентификатор
- пользователя. Если этот пользователь не
- <systemitem class="username">root</systemitem>, он ограждает процесс от других,
- владельцами которых являются другие пользователи. Этот
- идентификатор используется также для защиты данных на диске.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="securelevel">
- <para>Что такое уровень защиты (securelevel)?</para>
- </question>
-
- <answer>
- <para><literal>securelevel</literal> является механизмом
- обеспечения безопасности, который реализован в ядре. Когда
- уровень защиты больше нуля,
- ядро ограничивает выполнение некоторых операций; даже
- суперпользователю <systemitem class="username">root</systemitem>
- запрещается их выполнять. Механизм уровня защиты ограничивает
- возможности по:</para>
-
- <itemizedlist>
- <listitem>
- <para>снятию некоторых флагов с файлов, таких, как
- <literal>schg</literal> (системный флаг неизменяемости),</para>
- </listitem>
-
- <listitem>
- <para>записи в память ядра через устройства
- <filename>/dev/mem</filename> и
- <filename>/dev/kmem</filename>,</para>
- </listitem>
-
- <listitem>
- <para>загрузке модулей ядра и</para>
- </listitem>
-
- <listitem>
- <para>изменению правил сетевого экрана.</para>
- </listitem>
- </itemizedlist>
-
- <para>Для выяснения состояния уровня защиты в работающей
- системе:</para>
-
- <screen>&prompt.root; <userinput>sysctl -n kern.securelevel</userinput></screen>
-
- <para>Результат содержит текущее значение уровня защиты.
- Если оно больше нуля, то по крайней мере некоторые
- из защит этого механизма включены.</para>
-
- <para>Уровень защиты работающей системы не может быть понижен,
- поскольку это противоречит назначению этого механизма.
- Если для задачи требуется неположительный
- уровень защиты, измените значения переменных
- <varname>kern_securelevel</varname> и
- <varname>kern_securelevel_enable</varname> в файле
- <filename>/etc/rc.conf</filename> и перезагрузите
- систему.</para>
-
- <para>Более подробная информация об уровнях защиты и о том, какие
- специфические действия выполняют все уровни, может быть найдена на
- справочных страницах о &man.init.8;.</para>
-
- <warning>
- <para>Уровень защиты не является панацеей; в нём есть много
- недостатков. Зачастую он даёт обманчивое чувство
- безопасности.</para>
-
- <para>Одной из самых больших проблем является то, что для его
- эффективной работы все файлы, используемые в процессе загрузки,
- должны быть защищены. Если атакующий сможет заставить систему
- выполнять свой код до установки уровня защиты (что происходит
- достаточно поздно во время процесса загрузки, так как некоторые
- вещи, выполняемые системой в это время, не могут быть сделаны при
- повышенном уровне защиты), то эта защита может быть отключена.
- Хотя такая задача по защите всех файлов, используемых в процессе
- загрузки, технически вполне осуществима, если это будет сделано,
- то поддержка системы станет кошмаром, так как для изменения
- конфигурационного файла придётся останавливать систему,
- переводя её по крайней мере в однопользовательский режим.</para>
-
- <para>Это обстоятельство, а также ряд других, часто обсуждаются в
- списках рассылки, в частности, во &a.security;.
- Поищите в <link xlink:href="&url.base;/search/index.html">
- архивах</link> более подробное обсуждение. Предпочтителен
- более гибкий механизм.</para>
- </warning>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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 xml:id="sendmail-port-587">
- <para>Даемон <application>Sendmail</application> ждёт
- соединений как на стандартном порту 25, так и на
- порту 587! Что происходит?</para>
- </question>
-
- <answer>
- <para>Последние версии <application>Sendmail</application>
- поддерживают механизм посылки почты, который работает по
- порту 587. Эта возможность пока широко не используется,
- но её популярность растёт.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="toor-account">
- <para>Что это за пользователь <systemitem
- class="username">toor</systemitem> с UID 0? Я
- подвергся взлому?</para>
- </question>
-
- <answer>
- <para>Не волнуйтесь, <systemitem
- class="username">toor</systemitem> является
- <quote>альтернативной</quote> учётной записью
- суперпользователя (toor - это root, записанный задом
- наперёд). Его предлагается использовать с нестандартным
- командным интерпретатором, так чтобы не нужно было менять
- используемый по умолчанию командный процессор для
- <systemitem class="username">root</systemitem>. Это
- важно, так как оболочки, не являющиеся частью дистрибутива
- системы, устанавливаются в каталог
- <filename>/usr/local/bin</filename>, который по
- умолчанию располагается в другой файловой системе. Если
- командный процессор для пользователя <systemitem
- class="username">root</systemitem> располагается в
- <filename>/usr/local/bin</filename> и файловая система,
- содержащая <filename>/usr/local/bin</filename>, не
- смонтирована, то <systemitem
- class="username">root</systemitem> не сможет войти в
- систему для исправления проблемы и понадобится
- перезагрузиться в однопользовательском режиме, чтобы
- указать командный процессор.</para>
-
- <para>Некоторые используют <systemitem
- class="username">toor</systemitem> для выполнения
- повседневных административных работ с нестандартным
- командным процессором, оставляя <systemitem
- class="username">root</systemitem> со стандартной
- оболочкой для работы в однопользовательском режиме или
- выполнения аварийных работ. По умолчанию пользователь не
- сможет войти в систему как <systemitem
- class="username">toor</systemitem>, потому что для него
- не указан пароль, поэтому войдите из-под <systemitem
- class="username">root</systemitem> и установите пароль
- для <systemitem class="username">toor</systemitem> до того
- как использовать его для входа в систему.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter xml:id="ppp">
- <title>PPP</title>
-
- <qandaset>
- <qandaentry>
- <question xml:id="userppp">
- <para>Не могу заставить работать ppp. Что я делаю не так?</para>
- </question>
-
- <answer>
- <para>Первым делом прочтите страницу Справочника &man.ppp.8;
- и <link
- xlink:href="&url.books.handbook;/ppp-and-slip.html#userppp">раздел
- PPP</link> Руководства. Для помощи с устранением
- неполадок включите протоколирование следующей командой:</para>
-
- <programlisting>set log Phase Chat Connect Carrier lcp ipcp ccp command</programlisting>
-
- <para>Эту команду можно набрать в командной строке
- &man.ppp.8; или ввести в начале раздела
- <literal>default</literal> в
- <filename>/etc/ppp/ppp.conf</filename>. Проверьте, что
- файл <filename>/etc/syslog.conf</filename> содержит
- указанные ниже строки и существует файл
- <filename>/var/log/ppp.log</filename>:</para>
-
- <programlisting>!ppp
-*.* /var/log/ppp.log</programlisting>
-
- <para>Полную информацию о происходящем можно найти в файле
- протокола. Не беспокойтесь, если не всё будет понятно,
- ведь это может быть понятно кому-то ещё.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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> запись о локальной машине.
- Если локальная сеть отсутствует, измените строку для
- <systemitem>localhost</systemitem>:</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 xml:id="ppp-nodial-auto">
- <para>Ppp не звонит в режиме -auto</para>
- </question>
-
- <answer>
- <para>Сначала проверьте наличие маршрута по умолчанию.
- Команда <command>netstat -rn</command> должна показать
- две строки:</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>Если нет маршрута по умолчанию, убедитесь, что строка
- <literal>HISADDR</literal> была добавлена в
- <filename>/etc/ppp/ppp.conf</filename>.</para>
-
- <para>Другая причина отсутствия строки с маршрутом по
- умолчанию может крыться в том, что маршрут по умолчанию
- был добавлен в <filename>/etc/rc.conf</filename>, и эта
- строка отсутствует в
- <filename>/etc/ppp/ppp.conf</filename>:</para>
-
- <programlisting>delete ALL</programlisting>
-
- <para>В таком случае обратитесь к соответствующему <link
- xlink:href="&url.books.handbook;/userppp.html#userppp-final">разделу</link>
- Руководства.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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 адреса или
- когда адрес маршрутизатора не известен. При использовании
- интерактивного режима можно набрать следующие команды
- после входа в пакетный режим. Пакетный режим обозначается
- заглавными буквами <acronym>PPP</acronym>
- в приглашении:</para>
-
- <programlisting>delete ALL
-add 0 0 HISADDR</programlisting>
-
- <para>Обратитесь к разделу <link
- xlink:href="&url.books.handbook;/userppp.html#userppp-dynamicip">PPP
- и динамические IP адреса</link> Руководства за подробной
- информацией.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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 xml:id="ppp-drop-heavy-load">
- <para>Соединение разрывается при большой нагрузке</para>
- </question>
-
- <answer>
- <para>Если включен Link Quality Reporting
- (<acronym>LQR</acronym>), то возможно слишком много
- пакетов <acronym>LQR</acronym> теряется в канале.
- &man.ppp.8; делает вывод, что канал плох, и разрывает
- соединение. <acronym>LQR</acronym> по умолчанию выключен.
- Включить <acronym>LQR</acronym> можно так:</para>
-
- <programlisting>enable lqr</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="ppp-drop-random">
- <para>Соединение разрывается в случайные промежутки времени</para>
- </question>
-
- <answer>
- <para>Иногда на шумной линии или даже на линии с включенным
- режимом ожидания звонка модем может вешать трубку,
- ошибочно полагая, что потеряна несущая.</para>
-
- <para>В большинстве модемов есть параметр, определяющий
- чувствительность к временной потере несущей.
- Обратитесь к документации модема.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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;. Если сетевое подключение неожиданно
- восстанавливается при проявлении активности на
- диагностическом сокете или нет соединения, но команда
- <literal>set socket</literal> в начальный момент была
- выполнена успешно, то проблема имеет локальный характер.
- Если получается подключиться, но связи всё равно нет,
- включите вывод локальной отладочной информации командой
- <literal>set log local async</literal> и используйте
- &man.ping.8; в другом окне или терминале, чтобы проверить
- связь. В отладочном выводе будут показаны данные,
- передаваемые и получаемые из канала связи. Если данные
- посылаются, но не принимаются обратно, то проблема с той
- стороны.</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 xml:id="ppp-remote-not-responding">
- <para>Удалённая система не отвечает</para>
- </question>
-
- <answer>
- <para>Здесь мало что можно сделать. Большинство провайдеров
- отказываются помогать пользователям, которые не используют
- ОС от &microsoft;. Добавьте <literal>enable lqr</literal>
- в <filename>/etc/ppp/ppp.conf</filename>, чтобы позволить
- &man.ppp.8; отследить ошибки в удалённой системе и закрыть
- соединение. Такое обнаружение достаточно медленно и
- поэтому не так уж полезно.</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>Если провайдер согласен помочь, нужно будет включить
- режим отладки с их стороны, и затем, когда связь прервётся
- в следующий раз, они смогут сказать, почему с их стороны
- возникли проблемы.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="ppp-same-magic">
- <para>В протоколе есть сообщения о том, что <quote>magic being the
- same</quote>.</para>
- </question>
-
- <answer>
- <para>Иногда, сразу после установления соединения, в журнале
- могут возникать сообщения <errorname>Magic is the
- same</errorname>. Иногда эти сообщения проходят
- безболезненно, а иногда одна из сторон прекращает работу.
- Большинство реализаций PPP не может справиться с такой
- ситуацией, и даже когда связь выглядит установившейся, вы
- будeт только бесконечно повторяющиеся конфигурационные
- запросы и подтверждения в файле протокола до тех пор, пока
- &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 xml:id="ppp-lcp-constant">
- <para>Согласование LCP продолжается, пока не закроется
- соединение</para>
- </question>
-
- <answer>
- <para>В настоящий момент одной из неприятных особенностей
- реализации &man.ppp.8; является то, что она не связывает
- сообщения LCP, CCP &amp; IPCP с запросами. Как результат, если
- реализация PPP с одной стороны более чем на 6 секунд медленнее,
- чем с другой, противоположная сторона будет посылать
- два дополнительных запроса на согласование параметров LCP.
- Это фатально.</para>
-
- <para>Предположим, что у нас работают две реализации, на машинах
- <systemitem>A</systemitem> и <systemitem>B</systemitem>. <systemitem>A</systemitem>
- начинает посылать запросы LCP сразу же после соединения, а
- <systemitem>B</systemitem> требуется 7 секунд для запуска. Когда
- <systemitem>B</systemitem> запускается, <systemitem>A</systemitem> послало 3
- LCP-запроса. Полагаем, что режим эха выключен, в противном
- случае мы столкнулись бы с проблемами "магического" числа,
- описанными в предыдущем разделе. <systemitem>B</systemitem> посылает
- REQ, затем ACK на первый REQ от <systemitem>A</systemitem>. Это
- приводит к тому, что <systemitem>A</systemitem> входит в состояние
- <acronym>OPENED</acronym> и посылает (первый) ACK обратно
- <systemitem>B</systemitem>. В то же самое время <systemitem>B</systemitem>
- посылает обратно ещё два ACK в ответ на два дополнительных REQ,
- посланные <systemitem>A</systemitem> до старта <systemitem>B</systemitem>.
- <systemitem>B</systemitem> затем получает первый ACK от <systemitem>A</systemitem>
- и возвращается в состояние <acronym>REQ-SENT</acronym>, послав
- ещё один (четвёртый) REQ согласно RFC. Затем он получает
- третий ACK и входит в состояние <acronym>OPENED</acronym>.
- В это же время <systemitem>B</systemitem> принимает
- четвёртый REQ от <systemitem>A</systemitem>, что возвращает
- его в состояние <acronym>ACK-SENT</acronym> и посылает ещё один
- (второй) REQ и (четвёртый) ACK согласно RFC. <systemitem>A</systemitem>
- получает 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 xml:id="ppp-shell-test-lockup">
- <para>Когда я выполняю команду shell для тестирования соединения,
- ppp блокируется</para>
- </question>
-
- <answer>
- <para>При использовании <command>shell</command> или
- <command>!</command> &man.ppp.8; запускает оболочку или
- переданные параметры. Программа
- <application>ppp</application> будет ждать окончания
- выполнения команды, прежде чем продолжить. При любой
- попытке воспользоваться связью PPP во время выполнения
- команды связь будет выглядеть заблокированной. Это
- происходит из-за того, что &man.ppp.8; ждёт завершения
- команды.</para>
-
- <para>Для выполнения подобных команд используйте вместо этого
- <command>!bg</command>. В этом случае нужная команда будет
- выполняться в фоновом режиме, а &man.ppp.8; сможет продолжить обслуживание
- канала связи.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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 xml:id="ppp-auto-noreasondial">
- <para>В режиме <option>-auto</option> ppp неожиданно начинает
- звонить</para>
- </question>
-
- <answer>
- <para>Если &man.ppp.8; начинает неожиданно звонить,
- определите причину и настройте фильтры дозвона для
- предотвращения подобных звонков.</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>Это не всегда удобно, так как закрывает возможность
- дозвона по запросу. Большинству программ нужно обратиться
- к DNS до того, как начать работать.</para>
-
- <para>В случае DNS попытайтесь установить, что именно
- пытается определить имя хоста. В большинстве случаев
- виновным оказывается <application>Sendmail</application>.
- Проверьте, чтобы в конфигурационном файле программы
- <application>Sendmail</application> не было указано
- обращаться к DNS. Обратитесь к разделу об <link
- xlink:href="&url.books.handbook;/smtp-dialup.html">использовании
- электронной почты при коммутируемом соединении</link> в
- Руководстве &os; за подробным описанием. Вам может
- понадобиться добавить в файл
- <filename>.mc</filename> строку:</para>
-
- <programlisting>define(`confDELIVERY_MODE', `d')dnl</programlisting>
-
- <para>Это заставит <application>Sendmail</application>
- добавлять все сообщения в очередь до тех пор, пока не
- будет запущена её обработка, как правило, каждые 30 минут,
- или пока не будет выполнена команда
- <command>sendmail -q</command>, возможно, из файла
- <filename>/etc/ppp/ppp.linkup</filename>).</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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, а противоположная сторона не хочет
- устанавливать никакого сжатия. Эти сообщения безобидны,
- но их можно заглушить отключением сжатия:</para>
-
- <programlisting>disable pred1</programlisting>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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, укажите &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; читать целиком содержимое ответа CONNECT.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="ppp-ignores-backslash">
- <para>Ppp игнорирует символ <literal>\</literal>
- в chat-скрипте</para>
- </question>
-
- <answer>
- <para>Программа <application>ppp</application> разбирает
- каждую строку в конфигурационных файлах и поэтому может
- правильно интерпретировать строки вида
- <literal>set phone "123 456 789"</literal> и обнаруживать,
- что на самом деле номер является единственным аргументом.
- Для того, чтобы указать символ <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 xml: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 адрес <systemitem class="ipaddress">255.255.255.255</systemitem>
- до первого вызова &man.ioctl.2; <literal>SIOCAIFADDR</literal>,
- приводящего к полной привязке сокета. &man.ppp.8; нужно будет
- изменять исходящий IP-адрес и контрольную сумму пакета, только
- если он установлен в <systemitem class="ipaddress">255.255.255.255</systemitem>.
- Это, однако, является некоторым хаком, так как ядро будет
- посылать некорректные пакеты на не полностью
- сконфигурированный интерфейс, в предположении, что существует
- механизм исправления этих пакетов.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="fcs-errors">
- <para>Что такое ошибки FCS?</para>
- </question>
-
- <answer>
- <para>FCS является сокращением от Frame Check Sequence
- (контроль последовательности кадров). Каждый кадр PPP имеет
- контрольную сумму для проверки того, что принятые данные совпадают
- с переданными. Если FCS принятого пакета некорректна, пакет
- отбрасывается и счётчик FCS для HDLC увеличивается. Значения
- ошибок уровня HDLC можно вывести командой
- <literal>show hdlc</literal>.</para>
-
- <para>Если линия плохого качества или драйвер
- коммуникационного адаптера отбрасывает пакеты, будут
- появляться случайные ошибки FCS. Это обычно не является
- причиной для волнений, хотя это существенно замедляет
- протоколы компрессии.</para>
-
- <para>Если связь замирает сразу при установлении соединения
- и наблюдается большое количество ошибок FCS, убедитесь,
- чтобы модем не использовал программное управление потоком
- (XON/XOFF). Если же для соединения должно использоваться
- программное управление потоком, то воспользуйтесь командой
- <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>
- <question xml:id="desperation">
- <para>Ничего не помогает &mdash; я уже отчаялся!</para>
- </question>
-
- <answer>
- <para>Если всё уже перепробовано, и ничего не получается,
- пошлите подробности об ошибке, конфигурационные файлы,
- способ запуска &man.ppp.8;, соответствующие части файла
- протокола, и вывод команды <command>netstat -rn</command>
- до и после соединения в &a.questions;.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter xml:id="serial">
- <title>Коммуникационные адаптеры</title>
-
- <para>В этом разделе освещены вопросы о работе последовательных
- адаптеров во &os;. Протокол PPP рассматривается в разделе
- <link linkend="networking">Работа в сети</link>.</para>
-
- <qandaset>
- <qandaentry>
- <question xml:id="multiport-serial-support">
- <para>Какие многопортовые последовательные адаптеры поддерживаются во
- &os;?</para>
- </question>
-
- <answer>
- <para>Список таких устройств находится в главе Руководства
- <link xlink:href="&url.books.handbook;/serial.html">Последовательные
- соединения</link>.</para>
-
- <para>Большинство многопортовых PCI адаптеров на базе 16550 и их
- клоны поддерживаются без дополнительных усилий.</para>
-
- <para>Некоторые безымянные клоны таких адаптеров тоже работают
- нормально, особенно те, которые заявляют о своей совместимости
- с AST.</para>
-
- <para>Прочтите страницы Справочника &man.uart.4; и &man.sio.4; для получения
- подробной информации о конфигурировании таких адаптеров.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="serial-console-prompt">
- <para>Как сделать, чтобы приглашение boot: выводилось на консоль на
- последовательном порту?</para>
- </question>
-
- <answer>
- <para>Подробная информация находится в <link xlink:href="&url.books.handbook;/serialconsole-setup.html">этом
- разделе Руководства</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="found-serial">
- <para>Как узнать, обнаружила ли &os; последовательные порты
- или внутренние модемы?</para>
- </question>
-
- <answer>
- <para>В процессе своей загрузки ядро &os; будет пытаться
- найти последовательные порты, с поддержкой которых ядро
- сконфигурировано. Внимательно просмотрите сообщения
- загрузки либо выполните такую команду после того,
- как система запустилась и работает:</para>
-
- <screen>&prompt.user; <userinput>dmesg | grep -E "^sio[0-9]"</userinput>
-sio0: &lt;16550A-compatible COM port&gt; port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0
-sio0: type 16550A
-sio1: &lt;16550A-compatible COM port&gt; port 0x2f8-0x2ff irq 3 on acpi0
-sio1: type 16550A</screen>
-
- <para>Здесь присутствуют два последовательных порта. Первый
- находится на IRQ4, порт ввода/вывода
- <literal>0x3f8</literal>, и построен на микросхеме UART
- типа 16550A. Второй использует тот же тип микросхемы, но
- находится на IRQ3 и использует адрес порта ввода/вывода
- <literal>0x2f8</literal>. Внутренние модемы выглядят
- точно также, как последовательные порты, за исключением
- того, что модем к ним подключен всегда.</para>
-
- <para>В ядро <filename>GENERIC</filename> встроена поддержка
- двух последовательных портов, с теми же IRQ и адресами
- портов ввода/вывода, как указано в примере выше. Если эти
- настройки не соответствуют системе или имеется больше
- внутренних модемов или последовательных портов, чем
- описано в ядре, переконфигурируйте его, следуя инструкциям
- в разделе <link linkend="make-kernel">о построении
- ядра</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="access-serial-ports">
- <para>Как осуществляется доступ к последовательным портам во
- &os;?</para>
- </question>
-
- <answer>
- <para>Третий последовательный порт, <filename>sio2</filename>
- или <filename>COM3</filename>, обозначается как
- <filename>/dev/cuad2</filename> для устройств, выполняющих
- исходящие звонки, и <filename>/dev/ttyd2</filename> для
- устройств, принимающих входящие звонки. Какая разница
- между этими двумя классами устройств?</para>
-
- <para>При открытии <filename>/dev/ttydX</filename> в
- блокирующем режиме процесс будет ожидать неактивности
- соответствующего устройства <filename>cuadX</filename>, а
- затем появления сигнала о наличии несущей. При открытии
- устройства <filename>cuadX</filename> он проверяет, что
- последовательный порт не занят устройством
- <filename>ttydX</filename>. Если порт доступен, он
- похищает его у устройства <filename>ttydX</filename>.
- Также устройство <filename>cuadX</filename> не следит за
- наличием несущей. С такой схемой работы и модемом
- в режиме автоответа удалённые пользователи могут входить
- в систему, а локальные пользователи через тот же модем
- могут по прежнему осуществлять исходящие звонки, а система
- позаботится о возможных конфликтах.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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 xml:id="default-serial-params">
- <para>Можно ли настроить для порта режим работы по умолчанию?</para>
- </question>
-
- <answer>
- <para>Смотрите раздел Руководства &os;, посвящённый <link
- xlink:href="&url.books.handbook;/serial.html#serial-hw-config">последовательным
- соединениям</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="enable-dialup">
- <para>Как сделать вход через модем?</para>
- </question>
-
- <answer>
- <para>Ознакомьтесь с разделом Руководства &os;, посвящённым
- <link
- xlink:href="&url.books.handbook;/dialup.html">входящим
- соединениям</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="dumb-terminal">
- <para>Как подключить терминал к &os;?</para>
- </question>
-
- <answer>
- <para>Информация по этому вопросу находится в разделе <link
- xlink:href="&url.books.handbook;/term.html">Терминалы</link>
- Руководства &os;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="cannot-tip">
- <para>Почему не удаётся запустить <command>tip</command> или
- <command>cu</command>?</para>
- </question>
-
- <answer>
- <para>Встроенные утилиты &man.tip.1; и &man.cu.1; могут
- получить доступ к каталогу
- <filename>/var/spool/lock</filename>
- только из-под пользователя
- <systemitem class="username">uucp</systemitem> и членов
- группы <systemitem class="groupname">dialer</systemitem>.
- Используйте группу <systemitem
- class="groupname">dialer</systemitem> для управления
- доступом к модему или удалённым системам посредством
- добавления в неё пользовательских учётных записей.</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>
- </qandaset>
- </chapter>
-
- <chapter xml:id="misc">
- <title>Разное</title>
-
- <qandaset>
- <qandaentry>
- <question xml:id="more-swap">
- <para>Почему &os; использует много места в разделе подкачки
- даже при большом объёме свободной памяти?</para>
- </question>
-
- <answer>
- <para>&os; активно перемещает неиспользуемые страницы
- памяти, к которым не было обращений, в раздел подкачки,
- чтобы увеличить объём доступной физической памяти для
- активного использования. Такое активное использование
- раздела подкачки компенсируется использованием дополнительной
- свободной оперативной памяти для кеширования.</para>
-
- <para>Заметьте, что хотя &os; предпочитает использовать
- раздел подкачки, страницы не перемещаются произвольно
- при полностью неактивной системе. По этой причине
- система не будет находиться целиком в разделе подкачки
- после ночного простаивания.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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 xml: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>/</filename>). Например, если
- <filename>foo</filename> является символической ссылкой
- на каталог <filename>bar</filename>, то чтобы изменить
- права на <filename>foo</filename> (на самом деле на
- <filename>bar</filename>), выполните такую команду:</para>
-
- <screen>&prompt.user; <userinput>chmod 555 foo/</userinput></screen>
-
- <para>Если задан ведущий слэш, то &man.chmod.1; будет
- следовать символической ссылке <filename>foo</filename>,
- меняя права на каталог <filename>bar</filename>.</para>
- </warning>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="dos-binaries">
- <para>Можно ли запускать программы для DOS во &os;?</para>
- </question>
-
- <answer>
- <para>Да. Программа эмуляции DOS
- <package>emulators/doscmd</package> включена в
- Коллекцию Портов &os;.</para>
-
- <para>Если <application>doscmd</application> не достаточно,
- <package>emulators/pcemu</package> эмулирует 8088 и набор
- сервисов BIOS, достаточный для запуска многих приложений
- текстового режима DOS. Требуется X Window System.</para>
-
- <para>В Коллекции Портов &os; также имеется
- <package>emulators/dosbox</package>. Программа в основном
- предназначена для эмуляции старых игр, написанных под DOS,
- для хранения файлов которых используется
- локальная файловая система.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="translation">
- <para>Что мне нужно сделать, чтобы перевести документацию &os; на
- родной язык?</para>
- </question>
-
- <answer>
- <para>Ознакомьтесь с <link
- xlink:href="&url.books.fdp-primer;/translations.html"><acronym>FAQ</acronym>
- по Переводам</link> из &os; Documentation Project
- Primer.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="freebsd-mail-bounces">
- <para>Почему возвращается моя электронная почта, отправленная на
- любой из адресов <systemitem class="fqdomainname">FreeBSD.org</systemitem>?</para>
- </question>
-
- <answer>
- <para>В почтовой системе <systemitem class="fqdomainname">FreeBSD.org</systemitem>
- в <application>Postfix</application> применяются некоторые
- проверки входящей почты, и отвергаются сообщения,
- которые были неправильно сформированы при пересылке либо
- как-то иначе похожи на спам.
- Некоторые из требований:</para>
-
- <itemizedlist>
- <listitem>
- <para>IP-адрес клиента SMTP должен иметь обратное
- преобразование в символическое имя.</para>
- </listitem>
-
- <listitem>
- <para>Полное имя хоста, указанное на этапе EHLO/HELO
- в процессе обмена сообщениями SMTP, должно разрешаться
- в IP-адрес клиента.</para>
- </listitem>
- </itemizedlist>
-
- <para>Дополнительные советы по доставке письма:</para>
-
- <itemizedlist>
- <listitem>
- <para>Письмо должно быть отправлено в текстовом формате.
- Сообщение в почтовый список рассылки, как правило, не
- должно иметь размер больше 200 Кбайт.</para>
- </listitem>
-
- <listitem>
- <para>Избегайте избыточного кросспостинга. Выберите
- <emphasis>один</emphasis> список рассылки, который
- кажется наиболее подходящим.</para>
- </listitem>
- </itemizedlist>
-
- <para>Если у вас всё ещё остались трудности при работе
- с почтовой инфраструктурой
- <systemitem class="fqdomainname">FreeBSD.org</systemitem>,
- отправьте сообщение с подробным описанием на адрес
- <email>postmaster@freebsd.org</email>. Укажите в нём
- временной интервал для проверки логов &mdash;
- и обратите внимание, что мы держим журнал почтовых логов
- всего за неделю.
- (Обязательно укажите часовой пояс или разницу в UTC.)</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="free-account">
- <para>Где можно получить бесплатный доступ к &os;?</para>
- </question>
-
- <answer>
- <para>Хотя &os; не предоставляет бесплатный доступ ни к одному из
- своих серверов, другие компании предоставляют &unix;-системы с
- открытым доступом. Стоимость этой услуги различна, также как и
- ограниченный набор услуг.</para>
-
- <para><link xlink:href="http://www.arbornet.org/">Arbornet, Inc</link>,
- также известный как <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>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="daemon-name">
- <para>Как зовут этого маленького симпатичного красного парня?</para>
- </question>
-
- <answer>
- <para>У него нет определённого имени, он называется просто
- <quote>даемон BSD</quote>. Если вам непременно нужно имя,
- называйте его <quote>beastie</quote>. Заметьте, что
- <quote>beastie</quote> произносится как <quote>BSD</quote>.</para>
-
- <para>Больше о даемоне BSD можно узнать из его <link
- xlink:href="http://www.mckusick.com/beastie/index.html">домашней
- страницы</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="use-beastie">
- <para>Могу ли я использовать изображение даемона BSD?</para>
- </question>
-
- <answer>
- <para>Вполне. Права на даемона BSD имеет Marshall Kirk
- McKusick. Для выяснения подробностей относительно правил
- его использования обратитесь к странице автора <link
- xlink:href="http://www.mckusick.com/beastie/mainpage/copyright.html">Statement
- on the Use of the BSD Daemon Figure</link>.</para>
-
- <para>В общем, использовать изображение можно в
- высокохудожественном стиле и в личных целях, если даются
- соответствующие отсылки. Перед использованием знака в
- коммерческих целях обратитесь за разрешением к
- &a.mckusick.email;. Дополнительная информация находится
- на <link
- xlink:href="http://www.mckusick.com/beastie/index.html">домашней
- странице Даемона BSD</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="daemon-images">
- <para>Не найдется ли у вас изображений даемона BSD, которые можно
- использовать?</para>
- </question>
-
- <answer>
- <para>В каталоге <filename>/usr/share/examples/BSD_daemon/</filename>
- есть рисунки в форматах eps и Xfig.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="glossary">
- <para>При просмотре списков рассылки, я встретил акроним или
- другой термин, который мне не понятен. Где я должен посмотреть,
- что он значит?</para>
- </question>
-
- <answer>
- <para>Пожалуйста, обращайтесь к <link
- xlink:href="&url.books.handbook;/freebsd-glossary.html">Глоссарию
- &os;</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="bikeshed-painting">
- <para>Почему я должен беспокоиться о цвете велосипедных навесов
- (bikeshed)?</para>
- </question>
-
- <answer>
- <para>На самом деле, очень краткий ответ на этот вопрос заключается в том,
- что вы этого делать не должны. Если давать более подробный ответ, то ваше
- умение делать навесы не должно означать, что вы должны препятствовать
- другим делать их просто потому, что вам не нравится цвет, в который
- они собираются их окрашивать. Эта метафора означает, что вам не нужно
- обсуждать каждую мелочь просто потому, что вы знаете о ней
- достаточно много. Некоторые люди отмечают, что объём шума, генерируемый
- при появлении некоторого изменения, находится в обратной зависимости от
- сложности самого изменения.</para>
-
- <para>Более пространный и полный ответ заключается в том, что после очень
- долгого обсуждения того, должна ли утилита &man.sleep.1; обрабатывать
- дробное число, заданное в качестве второго аргумента, &a.phk.email;
- опубликовал большое сообщение, озаглавленное <quote><link xlink:href="http://www.FreeBSD.org/cgi/getmsg.cgi?fetch=506636+517178+/usr/local/www/db/text/1999/freebsd-hackers/19991003.freebsd-hackers">
- Велосипедный навес (подставьте здесь цвет) на зелёной траве...</link></quote>.
- Соответствующие части этого сообщения цитируются ниже.</para>
-
- <blockquote>
- <attribution>&a.phk.email; 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 xml:id="funnies">
- <title>Юмор от &os;</title>
-
- <qandaset>
- <qandaentry>
- <question xml: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; использует инструкцию
- <acronym>HLT</acronym> (halt), когда система простаивает, что
- уменьшает потребление энергии и, в свою очередь, выделение тепла.
- Вдобавок, если у вас настроен
- <acronym>ACPI</acronym> (усовершенствованный интерфейс
- управления конфигурацией и питанием), то &os; может переводить
- процессор в режим пониженного энергопотребления.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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 xml: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>Тридцать один человек ответит, что у них всё работает и
- наверное, те обновились в неподходящее время;</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.email; добавил:</emphasis></para>
-
- <para><emphasis>Я сильно смеялся над всем этим.</emphasis></para>
-
- <para><emphasis>И тогда я подумал, <quote>Постойте-ка, найдётся ли
- кто-нибудь, чтобы задокументировать это?</quote></emphasis></para>
-
- <para><emphasis>И на меня снизошло озарение :-)</emphasis></para>
-
- <para><emphasis>&a.tabthorpe.email;</emphasis> говорит: <quote>Нет,
- <emphasis>настоящие</emphasis> хакеры &os; не боятся
- темноты!</quote></para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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>/</filename> или
- разозлить вашего провайдера, так как большинство данных
- преобразуется в тепло на его оборудовании, но, как правило,
- у него хорошее охлаждение, так что если вы не перестараетесь,
- все должно быть в порядке.</para>
-
- <para><emphasis>Пол Робинсон (Paul Robinson)
- добавляет:</emphasis></para>
-
- <para>Есть и другие методы. Как знает каждый хороший системный
- администратор, частью хорошей практики является посылка данных на
- экран интересным образом, чтобы феи, которые образуют картинку,
- были счастливы. Экранные феи (часто неправильно называемые
- <quote>пикселами</quote>) различаются по цвету головных уборов,
- которые они носят
- (красные, зеленые или синие), и прячутся или появляются (показывая,
- таким образом, цвет своих шляп), когда получают немного пищи.
- Видеоадаптеры преобразуют данные в еду для фей, а затем посылают
- ее феям &mdash; чем дороже адаптер, тем лучше еда, тем лучше
- ведут себя феи. Они также нуждаются в постоянной стимуляции
- &mdash; вот зачем нужны хранители экранов.</para>
-
- <para>Продолжив наше предположение, вы можете просто выдавать
- случайные данные на консоль, таким образом позволяя феям их
- потреблять. Это вовсе приводит к прекращению выделения тепла,
- феи постоянно счастливы, а данные быстро исчезают, даже если
- на вашем экране все выглядит несколько хаотично.</para>
-
- <para>Как бывший администратор крупного провайдера, который имел
- много проблем при попытке поддерживать постоянную температуру в
- серверной комнате, я выступаю против того, чтобы люди посылали
- ненужные им данные в сеть. Волшебников, которые выполняют
- коммутацию пакетов и маршрутизацию, это также затрудняет.</para>
- </answer>
- </qandaentry>
- </qandaset>
- </chapter>
-
- <chapter xml:id="advanced">
- <title>Сложные темы</title>
-
- <qandaset>
- <qandaentry>
- <question xml:id="learn-advanced">
- <para>Как можно узнать больше о внутреннем устройстве &os;?</para>
- </question>
-
- <answer>
- <para>Список относящихся к делу книг можно найти в разделе
- Руководства <link xlink:href="&url.books.handbook;/bibliography-osinternals.html">
- Библиография по внутреннему устройству операционной
- системы</link>.</para>
-
- <para>Кроме того, большинство общих знаний о &unix; непосредственно
- применимо к &os;.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="how-to-contribute">
- <para>Как можно оказать помощь проекту &os;?</para>
- </question>
-
- <answer>
- <para>Пожалуйста, обратитесь к соответствующей <link xlink:href="&url.articles.contributing;/article.html">статье</link>,
- в которой вы получите советы относительно того, как это сделать.
- Ваша помощь более чем приветствуется!</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="define-snap-release">
- <para>Что такое снапшоты и релизы?</para>
- </question>
-
- <answer>
- <para>В <link
- xlink:href="http://svnweb.FreeBSD.org/base/">Хранилище
- Subversion</link> сейчас находятся &rel.numbranch;
- активно/полуактивно развивающихся ветки &os;. (Более
- ранние ветки изменяются очень редко, именно поэтому в
- разработке только &rel.numbranch; активные ветки):</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> - это не настоящий тэг ветки.
- Это символьная константа для обозначения текущего,
- не ветвящегося, находящегося в разработке дерева, то есть
- <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 xml:id="ctm">
- <para>Можно ли работать с <emphasis>-CURRENT</emphasis> при
- ограниченном доступе в Internet?</para>
- </question>
-
- <answer>
- <para>Да, это можно делать <emphasis>без</emphasis> скачивания
- полного дерева исходных текстов с помощью <link xlink:href="&url.books.handbook;/synching.html#ctx">системы
- CTM</link>.</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml:id="submitting-kernel-extensions">
- <para>Я написал некоторое добавление к ядру, кому его послать?</para>
- </question>
-
- <answer>
- <para>Обратитесь к статье о том, как <link xlink:href="&url.articles.contributing;/article.html">помочь проекту
- &os;</link>, чтобы выяснить, как это сделать.</para>
-
- <para>И спасибо Вам за Ваши усилия!</para>
- </answer>
- </qandaentry>
-
- <qandaentry>
- <question xml: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> из
- одного из снэпшотов, то кто-то ещё может отследить
- функцию, вызвавшую ошибку, но в случае со специально
- сконфигурированным ядром только вы можете сказать нам,
- где случилась ошибка.</para>
-
- <para>Чтобы продолжить:</para>
-
- <procedure>
- <step>
- <para>Запишите значение указателя инструкций. Заметьте,
- что часть <literal>0x8:</literal> в этом случае не
- важна: нам нужна часть <literal>0xf0xxxxxx</literal>.</para>
- </step>
-
- <step>
- <para>Когда система перезагрузится, сделайте следующее:</para>
-
- <screen>&prompt.user; <userinput>nm -n kernel.that.caused.the.panic | grep f0xxxxxx</userinput></screen>
-
- <para>где <literal>f0xxxxxx</literal> &mdash; это значение
- указателя инструкций. Однако неприятность заключается в
- том, что вы не получите точного соответствия, так как в
- таблице имен ядра для точек входа в функции даны адреса
- на начало функций, а указатель инструкций будет указывать
- куда-то внутрь её тела. Если вы не получили точного
- соответствия, опустите последнюю цифру в значении
- указателя инструкций и попробуйте снова:</para>
-
- <screen>&prompt.user; <userinput>nm -n kernel.that.caused.the.panic | grep f0xxxxx</userinput></screen>
-
- <para>Если и это не привело ни к каким результатам, отрежьте
- следующую цифру. Повторяйте, пока не получите хоть что-то.
- Результатом будет список функций, которые, возможно,
- привели к аварийному останову. Этот механизм обнаружения
- ошибочного места довольно неточен, но это всё же лучше,
- чем ничего.</para>
- </step>
- </procedure>
-
- <para>Тем не менее, лучшим способом выяснить причину, вызвавшую
- аварийный останов, является получение аварийного дампа системы,
- а затем использование &man.kgdb.1; для получения трассировки
- вызовов в этом дампе.</para>
-
- <para>В любом случае, метод таков:</para>
-
- <procedure>
- <step>
- <para>Убедитесь в том, что в файле конфигурации ядра имеется
- следующая строка:</para>
-
- <programlisting>makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols</programlisting>
- </step>
-
- <step>
- <para>Перейдите в каталог <filename>/usr/src</filename>:</para>
-
- <screen>&prompt.root; <userinput>cd /usr/src</userinput></screen>
- </step>
-
- <step>
- <para>Скомпилируйте ядро:</para>
-
- <screen>&prompt.root; <userinput>make buildkernel KERNCONF=<replaceable>MYKERNEL</replaceable></userinput></screen>
- </step>
-
- <step>
- <para>Дождитесь завершения компиляции.</para>
- </step>
-
- <step>
- <screen>&prompt.root; <userinput>make installkernel KERNCONF=MYKERNEL</userinput></screen>
- </step>
-
- <step>
- <para>Выполните перезагрузку.</para>
- </step>
- </procedure>
-
- <note>
- <para>Если не указать <varname>KERNCONF</varname>, то
- будет собрано и
- установлено ядро <filename>GENERIC</filename>.</para>
- </note>
-
- <para>В процессе выполнения команды &man.make.1; будут
- построены два ядра,
- <filename>/usr/obj/usr/src/sys/MYKERNEL/kernel</filename>
- и
- <filename>/usr/obj/usr/src/sys/MYKERNEL/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.savecore.8; если значение переменной
- <literal>dumpdev</literal> было установлено в
- <filename>/etc/rc.conf</filename>, скрипты &man.rc.8; запустят
- &man.savecore.8; автоматически и поместят аварийный дамп в
- каталог <filename>/var/crash</filename>.</para>
-
- <note>
- <para>Аварийные дампы &os; обычно имеют размер, равный
- объёму оперативной памяти. Поэтому убедитесь в наличии
- достаточного места для хранения дампа в каталоге
- <filename>/var/crash</filename>. Либо запустите вручную
- &man.savecore.8;, чтобы создать аварийный дамп в другом
- каталоге, где достаточно места. Размер аварийного дампа
- можно уменьшить, указав в конфигурации ядра
- <literal>options MAXMEM=N</literal>, где
- <replaceable>N</replaceable> &mdash; значение в Кбайт
- для объёма памяти, которое будет использоваться ядром.
- Например, для 1&nbsp;Гбайт ОЗУ установите ограничение на
- использование памяти ядром в 128&nbsp;Мбайт, так чтобы
- размер аварийного дампа был равен 128&nbsp;Мбайт, а не
- 1&nbsp;Гбайт.</para>
- </note>
-
- <para>Как только аварийный дамп получен, трассировку вызовов
- можно получить таким образом:</para>
-
- <screen>&prompt.user; <userinput>kgdb /usr/obj/usr/src/sys/MYKERNEL/kernel.debug /var/crash/vmcore.0</userinput>
-<prompt>(kgdb)</prompt> <userinput>backtrace</userinput></screen>
-
- <para>Заметьте, что это может дать несколько экранов
- полезной информации. Лучше всего использовать
- &man.script.1; для перехвата всего вывода. При
- использовании необработанного файла ядра со всей
- отладочной информацией может быть найдена конкретная
- строка исходного текста ядра, при достижении которой
- случилась аварийная остановка. Для выяснения
- последовательности событий, приведших к аварийному
- останову, трассировка стека обычно читается снизу вверх.
- Также можно использовать &man.kgdb.1; для вывода значений
- различных переменных или структур, чтобы выяснить
- состояние системы во время аварии.</para>
-
- <tip>
- <para>Если есть второй компьютер, то можно настроить
- &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 xml: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 xml:id="change-kernel-address-space">
- <para>Как я могу увеличить или уменьшить адресное пространство
- ядра в архитектуре i386?</para>
- </question>
-
- <answer>
- <para>По умолчанию размер адресного пространства ядра для
- i386 равен 1&nbsp;Гбайт (2&nbsp;Гбайт для PAE). Для
- работы сервера с интенсивной сетевой нагрузкой или при
- использовании 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 xml:id="acknowledgments">
- <title>Наши благодарности</title>
-
- <para>Этот небольшой скромный документ с ответами на часто задаваемые
- вопросы создавался, переписывался, редактировался, сокращался,
- растягивался, уродовался, потрошился, пристально разглядывался,
- полностью перетряхивался, обдумывался, отвергался, перестраивался,
- критиковался и снова укреплялся в течение последнего десятилетия силами
- сотен, если не тысяч, людей. Постоянно.</para>
-
- <para>Мы хотим поблагодарить всех их и приглашаем вас <link xlink:href="&url.articles.contributing;/article.html">присоединиться</link>,
- чтобы сделать этот <acronym>FAQ</acronym> ещё лучше.</para>
- </chapter>
-
- &bibliography;
-</book>