diff options
Diffstat (limited to 'ru_RU.KOI8-R/books/faq/book.xml')
-rw-r--r-- | ru_RU.KOI8-R/books/faq/book.xml | 7543 |
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 BSD отделилась от &os; 4.8, - и с тех пор в ней были разработаны многие интересные - собственные функциональные возможности, включая - файловую систему HAMMER и поддержку <quote>vkernels</quote> - — запуска ядра в пользовательском режиме.</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 от µsoft;</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 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; — это термин, применяемый во &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; 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 Мбайт и - дисковым пространством не менее 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; 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 ^ 64 - (блоков) * 32 Кбайт => 16 экса * 32 Кбайт - => 512 зеттабайт.</para> - - <para>Максимальный размер файла на FFS приблизительно равен - 2 петабайт со стандартным размером блока 32 Кбайт. - Каждый 32 Кбайтный блок может адресовать до 4096 блоков. - С использованием тройной косвенной адресации это составляет - 32 Кбайт * 12 + 32 Кбайт * 4096 + 32 Кбайт * - 4096^2 + 32 Кбайт * 4096^3. Увеличение размера блока - до 64 Кбайт увеличит максимальный размер файла в 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 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 Гбайт памяти (ОЗУ)? - Больше 16 Гбайт? Больше 48 Гбайт?</para> - </question> - - <answer> - <para>&os; как операционная система в целом поддерживает - столько же физической памяти (ОЗУ), сколько аппаратная - платформа, на которой она работает. Имейте в виду, что - различные платформы имеют различные ограничения на память; - например, &i386; без <acronym>PAE</acronym> поддерживает - максимум 4 Гбайт памяти (и обычно еще меньше из-за - адресного пространства PCI), а &i386; с PAE поддерживает - максимум 64 Гбайт. Для &os; 10 платформы AMD64 - поддерживают до 4 Тбайт физической памяти.</para> - </answer> - </qandaentry> - - <qandaentry> - <question xml:id="memory-i386-over-4gb"> - <para>Почему &os; видит меньше 4 Гбайт памяти, когда - система установлена на машину &i386;?</para> - </question> - - <answer> - <para>Общее адресное пространство для машин &i386; является - 32-разрядным; это означает, что адресоваться (т.е. быть - получено) может не более 4 Гбайт памяти. Более того, - некоторые адреса в этом диапазоне зарезервированы для - различных целей аппаратным обеспечением, например, для - использования и управления устройствами PCI, для доступа - к видеопамяти, и так далее. Таким образом, общий объем - памяти, используемой операционной системой для ядра и - приложений, ограничен размером, значительно меньшим, чем - 4 Гбайт. В такой конфигурации максимально доступная - физическая память составляет от 3.2 Гбайт до - 3.7 Гбайт.</para> - - <para>Для преодоления ограничения в 3.2 Гбайт-3.7 Гбайт - установленной памяти (т.е. для получения 4 Гбайт, но - также более 4 Гбайт) должен использоваться специальный - механизм, именуемый <acronym>PAE</acronym>. Сокращение PAE - расшифровывается как Physical Address Extension (расширение - физического адреса) и предоставляет для 32-разрядных x86 - процессоров способ адресовать более 4 Гбайт памяти. - PAE переназначает память, которая иначе была бы перекрыта - адресными резервациями для аппаратных устройств выше - диапазона 4 Гбайт, и использует ее как дополнительную - физическую память (смотрите &man.pae.4;). Использование PAE - имеет свои недостатки; такая модель доступа к памяти является - чуть более медленной по сравнению с обычным режимом (без PAE), - и также не работают динамически загружаемые модули (смотрите - &man.kld.4;). Это означает, что все драйверы должны - присутствовать статически в самом ядре.</para> - - <para>Самый общий способ включить PAE — это собрать - новое ядро со специальным уже подготовленным файлом - конфигурации ядра, именуемым <filename>PAE</filename>, - который уже сконфигурирован для сборки безопасного ядра. - Имейте в виду, что некоторые строки в этом файле конфигурации - ядра являются слишком консервативными, и некоторые драйверы, - помеченные как неготовые для использования с PAE, на самом - деле являются годными. На практике, если драйвер работает - на 64-разрядной архитектуре (такой как AMD64), он также - работает с PAE. При создании своего собственного файла - конфигурации ядра можно включить PAE, добавив - следующую строку:</para> - - <programlisting>options PAE</programlisting> - - <para>PAE не является широко используемым в настоящее время, - поскольку большинство нового x86 аппаратного обеспечения - также поддерживает работу в 64-разрядном режиме, также - известном как AMD64 или &intel; 64. Этот режим имеет - большее адресное пространство и не нуждается в таких трюках. - &os; поддерживает AMD64, и рекомендуется использование - этой версии &os; вместо версии &i386;, если требуется больше - 4 Гбайт памяти.</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 ГБ и 4 ГБ для специальных нужд - (обычно для нужд PCI). Это пространство адресов используется - для доступа к PCI оборудованию. Как результат, реальная - физическая память не может быть получена в данном адресном - пространстве.</para> - - <para>Какие действия выполняются с памятью в данном регионе, - зависит от оборудования. К сожалению, некоторое - оборудование ничего не выполняет и возможность использовать - эти 500 МБ ОЗУ полностью потеряна.</para> - - <para>К счастью, большинство оборудования перераспределяет - память к более верхней позиции, так что она всё ещё может - использоваться. Тем не менее, это может вызвать некоторое - замешательство при просмотре сообщений, выдаваемых при - загрузке.</para> - - <para>На 32-битной версии &os; кажется, что эта память - потерялась, поскольку она переназначится в диапазон выше - 4 ГБ, который не доступен для 32 битного ядра. - В данном случае, решение заключается в сборке ядра с 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 Ватт, - попробуйте другой мощностью 300 Ватт).</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—может, для изменения - скорости работы процессора при работе от батареек или переводя в - режим пониженного электропитания, но &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 -> 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 -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; - или &rel.relx; -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 Мбайт.</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 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 байт. Это объясняет, - почему, к примеру, в сообщениях при загрузке &os; указывается, что - ёмкость диска, объём которого должен быть равным 80 Гбайт, - составляет 76319 Мбайт.</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 Гбайт - ОЗУ, но конкретная нагрузка может сильно различаться.</para> - </answer> - </qandaentry> - - <qandaentry> - <question xml:id="what-is-zil"> - <para>Что такое ZIL и когда оно используется?</para> - </question> - - <answer> - <para><acronym>ZIL</acronym> ((<acronym>ZFS</acronym> - intent log) — это журнал записи, используемый для - фиксации операций записи. Обычно операции собираются - в группу транзакций и при заполнении группы пишутся на - диск (<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> — это кеш на чтение, - хранимый на быстром устройстве, таком как - <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; 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"' >> /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>…</entry> - - <entry>…</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' < dos-text-file > 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 Мбайт оперативной памяти!</para> - </question> - - <answer> - <para>Нет, там нет ошибок и он не использует 256 Мбайт памяти. - Для удобства <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 Мбайт.</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 Мбайт ОЗУ или меньше. Подумайте о смене статуса - консолей с <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> — клавиша - <keycap>Windows</keycap> между клавишами <keycap>Ctrl</keycap> - и <keycap>Alt</keycap> с левой стороны</para> - </listitem> - - <listitem> - <para><keycode>116</keycode> — клавиша - <keycap>Windows</keycap> справа от - <keycap>AltGr</keycap></para> - </listitem> - - <listitem> - <para><keycode>117</keycode> — клавиша - <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 G200/G400 следует - попробовать порт <package>x11-servers/mga_hal</package>.</para> - - <para>Для ATI Rage 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>, а сейчас — <systemitem class="username">tty</systemitem>. - Пользователь <systemitem class="username">tty</systemitem> — это та песочница, - которая осложняет взлом системы через <literal>ntalk</literal> - посредством использования этого идентификатора - пользователя.</para> - </listitem> - - <listitem> - <para>Процесс, помещённый внутрь симулируемой машины. Это - даёт больший уровень безопасности. Это означает, что - некто, взломавший процесс, может думать, что может сломать и - систему в целом, однако фактически может сломать только - симулятор этой машины и не может модифицировать никаких - реальных данных.</para> - - <para>Самым распространённым способом достигнуть такого - результата является построение имитирующего окружения в - каталоге и затем запуск процессов в этом каталоге через - chroot (т.е. задав этот каталог в качестве - <filename>/</filename> для этого процесса, - а не реальный <filename>/</filename> всей - системы).</para> - - <para>Другим часто используемым методом является монтирование - низлежащей файловой системы в режиме "только для чтения" и - затем создание уровня файловой системы поверх неё, что даёт - процессу видимость доступа по записи на ту файловую систему. - Процесс будет полагать, что может записывать в те файлы, но - это будет единственный процесс, который увидит результат - — другие процессы не будут этого делать ни в коем - случае.</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>Здесь мало что можно сделать. Большинство провайдеров - отказываются помогать пользователям, которые не используют - ОС от µsoft;. Добавьте <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>Теперь попробуйте установить соединение ещё раз и - удостоверьтесь, что ситуация не изменилась. Если качество - соединения улучшилось или проблема оказалась полностью - решённой, выясните, настройка чего приводила к проблемам - методом проб и ошибок. Это полезная информация для - провайдера, хотя при этом может обнаружиться, что вы - работаете не с продуктом µsoft;.</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 & 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>"</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-адреса - с противоположной стороной. Это было давно исправлено — - поищите на странице справочника слово <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;) — она отслеживает - все назначенные ранее интерфейсу адреса и замещает их на - последний из назначенных.</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>Ничего не помогает — я уже отчаялся!</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: <16550A-compatible COM port> port 0x3f8-0x3ff irq 4 flags 0x10 on acpi0 -sio0: type 16550A -sio1: <16550A-compatible COM port> port 0x2f8-0x2ff irq 3 on acpi0 -sio1: type 16550A</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 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>. Укажите в нём - временной интервал для проверки логов — - и обратите внимание, что мы держим журнал почтовых логов - всего за неделю. - (Обязательно укажите часовой пояс или разницу в 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>) различаются по цвету головных уборов, - которые они носят - (красные, зеленые или синие), и прячутся или появляются (показывая, - таким образом, цвет своих шляп), когда получают немного пищи. - Видеоадаптеры преобразуют данные в еду для фей, а затем посылают - ее феям — чем дороже адаптер, тем лучше еда, тем лучше - ведут себя феи. Они также нуждаются в постоянной стимуляции - — вот зачем нужны хранители экранов.</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> — это значение - указателя инструкций. Однако неприятность заключается в - том, что вы не получите точного соответствия, так как в - таблице имен ядра для точек входа в функции даны адреса - на начало функций, а указатель инструкций будет указывать - куда-то внутрь её тела. Если вы не получили точного - соответствия, опустите последнюю цифру в значении - указателя инструкций и попробуйте снова:</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> — значение в Кбайт - для объёма памяти, которое будет использоваться ядром. - Например, для 1 Гбайт ОЗУ установите ограничение на - использование памяти ядром в 128 Мбайт, так чтобы - размер аварийного дампа был равен 128 Мбайт, а не - 1 Гбайт.</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 Гбайт (2 Гбайт для PAE). Для - работы сервера с интенсивной сетевой нагрузкой или при - использовании ZFS этого может быть недостаточно.</para> - - <para>Чтобы увеличить доступное пространство, добавьте - следующую строку в файл конфигурации ядра и пересоберите - ядро:</para> - - <programlisting>options KVA_PAGES=<replaceable>N</replaceable></programlisting> - - <para>Чтобы получить нужное значение для - <replaceable>N</replaceable>, разделите желаемый размер - адресного пространства (в мегабайтах) на четыре (для - 2 Гбайт это будет <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> |