Synchronize with FreeBSD Russian Doc Project CVS Repository.
This commit is contained in:
parent
0d7bd19234
commit
0cc63d201c
Notes:
svn2git
2020-12-08 03:00:23 +00:00
svn path=/head/; revision=8580
22 changed files with 7190 additions and 608 deletions
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# $FreeBSD$
|
||||
# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/faq/Makefile,v 1.3 2000/10/17 16:55:05 phantom Exp $
|
||||
# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/faq/Makefile,v 1.4 2000/11/15 17:21:30 phantom Exp $
|
||||
#
|
||||
# Build the Russian FreeBSD FAQ
|
||||
#
|
||||
|
|
|
|||
|
|
@ -1,9 +1,10 @@
|
|||
<!--
|
||||
The FreeBSD Russian Documentation Project
|
||||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/faq/book.sgml,v 1.39 2000/11/10 12:45:41 phantom Exp $
|
||||
Original revision: 1.122
|
||||
$FreeBSD$
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/faq/book.sgml,v 1.41 2000/11/17 15:39:39 andy Exp $
|
||||
|
||||
Original revision: 1.124
|
||||
-->
|
||||
|
||||
<!DOCTYPE BOOK PUBLIC "-//FreeBSD//DTD DocBook V3.1-Based Extension//EN" [
|
||||
|
|
@ -714,9 +715,9 @@
|
|||
</para>
|
||||
|
||||
<para>Эта книга касается основ администрирования, в том числе протоколов
|
||||
TCP/IP, DNS, NFS, SLIP/PPP, sendmail, INN/NNTP, системы печати ит д..
|
||||
Она сравнительно дорогая (примерно US$45-$55), но
|
||||
стоит того. К ней прилагается также компакт-диск с исходными
|
||||
TCP/IP, DNS, NFS, SLIP/PPP, sendmail, INN/NNTP, системы печати и так
|
||||
далее.. Она сравнительно дорогая (примерно US$45-$55), но
|
||||
того стоит. К ней прилагается также компакт-диск с исходными
|
||||
текстами различных утилит; большинство их них, однако, также
|
||||
присутствуют на диске FreeBSD 2.2.6R (на котором к тому же
|
||||
часто находятся более свежие версии).</para>
|
||||
|
|
@ -1302,8 +1303,8 @@ File: +DESC (ignored)
|
|||
|
||||
<para>Вам нужен персональный компьютер не ниже 386, с 5 или более
|
||||
мегабайтами ОЗУ и по крайней мере 60Мб свободного пространства на
|
||||
винчестере. Система может работать с дешёвым графическим адаптером MDA,
|
||||
но для того, чтобы запустить X11R6, требуется видеокарта стандарта VGA
|
||||
винчестере. Система может работать с дешёвым графическим адаптером MDA,
|
||||
но для того, чтобы запустить X11R6, требуется адаптер стандарта VGA
|
||||
или лучше.</para>
|
||||
|
||||
<para>Посмотрите также раздел
|
||||
|
|
@ -1506,7 +1507,7 @@ File: +DESC (ignored)
|
|||
|
||||
<answer>
|
||||
|
||||
<para>Если вы видите, что как машина зависает или неожиданно
|
||||
<para>Если вы видите, что машина зависает или неожиданно
|
||||
перезагружается, когда вы пытаетесь загрузиться с установочной
|
||||
дискеты, вы должны задать себе три вопроса:-</para>
|
||||
|
||||
|
|
@ -1841,7 +1842,7 @@ BUSY</literallayout></entry>
|
|||
<replaceable>N</replaceable> дорожек, 64 головки и 32 сектора на дорожку,
|
||||
где <replaceable>N</replaceable> - это ёмкость
|
||||
диска в мегабайтах. Например, 2Гбайтный диск должен иметь 2048
|
||||
дорожек, 64 головки и 32 сектора а дорожку.</para>
|
||||
дорожек, 64 головки и 32 сектора на дорожку.</para>
|
||||
|
||||
<para>Если трансляция <emphasis>включена</emphasis> (что обычно используется
|
||||
для преодоления некоторых ограничений MSDOS) и ёмкость диска превышает
|
||||
|
|
@ -2000,7 +2001,7 @@ BUSY</literallayout></entry>
|
|||
конфигурировать настройки ядра для большинства адаптеров ISA.</para>
|
||||
|
||||
<para>Однако рекомендуется, что потом вы всё же построите новое ядро,
|
||||
содержащее только те драйвера, которые вам нужны, для того,
|
||||
содержащее только те драйверы, которые вам нужны, для того,
|
||||
чтобы сэкономить немного ОЗУ, хотя для большинства систем это
|
||||
больше не является большой необходимостью.</para>
|
||||
|
||||
|
|
@ -5184,7 +5185,7 @@ disk fd1 at fdc0 drive 1
|
|||
|
||||
<para>Файл <filename>/etc/rc.serial</filename> предназначен для инициализации
|
||||
коммуникационных адаптеров (например, установки характеристик
|
||||
работы последовательных портов ит д).</para>
|
||||
работы последовательных портов и тому подобное).</para>
|
||||
|
||||
<para>Файл <filename>/etc/rc.i386</filename> предназначен для настройки
|
||||
специфичных для архитектуры Intel параметров, таких, как эмуляция iBCS2
|
||||
|
|
@ -5356,9 +5357,10 @@ disk fd1 at fdc0 drive 1
|
|||
|
||||
<qandaentry>
|
||||
<question id="rcconf-readonly">
|
||||
<para>Я сделал ошибку в файле <filename>rc.conf</filename>, и теперь не
|
||||
могу его отредактировать из-за того, что файловая система находится в
|
||||
режиме только для чтения. Что мне делать?</para>
|
||||
<para>Я сделал ошибку в файле <filename>rc.conf</filename> или в каком-то
|
||||
другом файле начальной загрузки, и теперь не могу его отредактировать
|
||||
из-за того, что файловая система находится в режиме только для чтения.
|
||||
Что мне делать?</para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
|
|
@ -5673,7 +5675,7 @@ Boot: <userinput>1:da(0,a)/kernel</userinput>
|
|||
используя <command>boot -v</command> в загрузчике. Перед тем, как
|
||||
запустится программа установки, ядро выведет параметры, используемые BIOS.
|
||||
Не волнуйтесь - подождите запуска программы
|
||||
установки, а затем воспользуйтесь скролингом, чтобы посмотреть
|
||||
установки, а затем воспользуйтесь скроллингом, чтобы посмотреть
|
||||
значения этих параметров. Как правило, BIOS нумерует диски в том же
|
||||
порядке, что и FreeBSD, сначала IDE, затем SCSI.</para>
|
||||
|
||||
|
|
@ -6874,6 +6876,41 @@ ttyqc none network
|
|||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
|
||||
<qandaentry>
|
||||
<question id="release-candidate">
|
||||
<para>Я пытался обновить мою систему до последней -STABLE, а получил -RC
|
||||
или -BETA! Что происходит?</para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
|
||||
<para>Краткий ответ: это же просто название. RC означает
|
||||
<quote>Release Candidate</quote>. Это значит, что вскоре
|
||||
произойдет выход релиза. Во FreeBSD -BETA значит то же самое,
|
||||
что и -RC.</para>
|
||||
|
||||
<para>Подробный ответ: во FreeBSD релизы выпускаются из одного из
|
||||
двух мест. Крупные релизы, точка-ноль, такие, как
|
||||
3.0-RELEASE и 4.0-RELEASE, ответвляются от основного потока
|
||||
разработки, более известного как <link
|
||||
linkend="current">-CURRENT</link>. Мелкие релизы, такие, как
|
||||
3.1-RELEASE или 4.2-RELEASE, являются снэпшотами активной ветки
|
||||
<link linkend="stable">-STABLE</link>.</para>
|
||||
|
||||
<para>Когда делается релиз, то ветвь, из которой он выпускается,
|
||||
подвергается некоторой подготовке. Частью этого процесса
|
||||
является замораживание кода. Когда инициируется замораживание
|
||||
кода, то имя ветки изменяется для того, чтобы отразить факт
|
||||
близости релиза. Например, если ветка называлась 4.0-STABLE, то
|
||||
её имя будет изменено на 4.1-RC, чтобы указать, что скоро из неё
|
||||
будет сделан релиз. Как только релиз, а в этом примере это
|
||||
4.1-RELEASE, будет сделан, ветвь будет переименована в
|
||||
4.1-STABLE.</para>
|
||||
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
</qandaset>
|
||||
</chapter>
|
||||
|
||||
|
|
|
|||
|
|
@ -3,7 +3,7 @@
|
|||
#
|
||||
# The FreeBSD Russian Documentation Project
|
||||
# $FreeBSD$
|
||||
# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/Makefile,v 1.12 2000/10/11 15:57:22 phantom Exp $
|
||||
# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/Makefile,v 1.16 2000/11/15 17:21:30 phantom Exp $
|
||||
# Original version: 1.28
|
||||
#
|
||||
|
||||
|
|
@ -16,8 +16,6 @@ FORMATS?= html-split
|
|||
INSTALL_COMPRESSED?= gz
|
||||
INSTALL_ONLY_COMPRESSED?=
|
||||
|
||||
NO_TIDY= YES
|
||||
|
||||
#
|
||||
# SRCS lists the individual SGML files that make up the document. Changes
|
||||
# to any of these files will force a rebuild
|
||||
|
|
@ -32,24 +30,24 @@ SRCS+= bibliography/chapter.sgml
|
|||
SRCS+= boot/chapter.sgml
|
||||
#SRCS+= contrib/chapter.sgml
|
||||
#SRCS+= cutting-edge/chapter.sgml
|
||||
#SRCS+= disks/chapter.sgml
|
||||
SRCS+= disks/chapter.sgml
|
||||
#SRCS+= eresources/chapter.sgml
|
||||
#SRCS+= hw/chapter.sgml
|
||||
SRCS+= install/chapter.sgml
|
||||
#SRCS+= internals/chapter.sgml
|
||||
SRCS+= introduction/chapter.sgml
|
||||
#SRCS+= kernelconfig/chapter.sgml
|
||||
#SRCS+= kerneldebug/chapter.sgml
|
||||
#SRCS+= kernelopts/chapter.sgml
|
||||
SRCS+= kerneldebug/chapter.sgml
|
||||
SRCS+= kernelopts/chapter.sgml
|
||||
#SRCS+= l10n/chapter.sgml
|
||||
SRCS+= linuxemu/chapter.sgml
|
||||
#SRCS+= mail/chapter.sgml
|
||||
SRCS+= mail/chapter.sgml
|
||||
SRCS+= mirrors/chapter.sgml
|
||||
SRCS+= pgpkeys/chapter.sgml
|
||||
#SRCS+= policies/chapter.sgml
|
||||
#SRCS+= ppp-and-slip/chapter.sgml
|
||||
#SRCS+= printing/chapter.sgml
|
||||
#SRCS+= security/chapter.sgml
|
||||
SRCS+= security/chapter.sgml
|
||||
#SRCS+= serialcomms/chapter.sgml
|
||||
SRCS+= staff/chapter.sgml
|
||||
#SRCS+= users/chapter.sgml
|
||||
|
|
|
|||
|
|
@ -2,25 +2,26 @@
|
|||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/advanced-networking/chapter.sgml,v 1.5 2000/10/15 13:40:28 andy Exp $
|
||||
Original revision: 1.29
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/advanced-networking/chapter.sgml,v 1.7 2000/11/17 15:46:38 andy Exp $
|
||||
|
||||
Original revision: 1.32
|
||||
-->
|
||||
|
||||
<chapter id="advanced-networking">
|
||||
<title>Сложные вопросы работы в сети</title>
|
||||
<title>Сложные вопросы работы в сети</title>
|
||||
|
||||
<sect1>
|
||||
<title>Краткий обзор</title>
|
||||
<sect1>
|
||||
<title>Краткий обзор</title>
|
||||
|
||||
<para>Последующая глава посвящена некоторым более часто используемым
|
||||
сетевым службам UNIX-систем. Это, конечно же, будет касаться настройки
|
||||
указанных служб в Вашей системе FreeBSD.</para>
|
||||
</sect1>
|
||||
<para>Последующая глава посвящена некоторым более часто используемым
|
||||
сетевым службам UNIX-систем. Это, конечно же, будет касаться настройки
|
||||
указанных служб в Вашей системе FreeBSD.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="routing">
|
||||
<title>Сетевые шлюзы и маршруты</title>
|
||||
|
||||
<para><emphasis>Предоставил &a.gryphon;. 6 октября 1995.</emphasis></para>
|
||||
<para><emphasis>Предоставил &a.gryphon;, 6 октября 1995.</emphasis></para>
|
||||
|
||||
<para>Чтобы некоторая машина могла найти другую, должен иметься механизм
|
||||
описания того, как добраться от одной машине к другой. Такой механизм
|
||||
|
|
@ -2756,49 +2757,49 @@ lrwxr-xr-x 1 root wheel 14 Nov 8 14:27 /usr/lib/libscrypt.so@ -> libscryp
|
|||
программы dhclient, и при удачном его выполнении к автоматическому
|
||||
заданию информации для настройки интерфейса.</para>
|
||||
|
||||
<para>Есть две вещи, которые вы должны сделать для того, чтобы ваша
|
||||
система использовала DHCP при загрузке:</para>
|
||||
<para>Есть две вещи, которые вы должны сделать для того, чтобы ваша
|
||||
система использовала DHCP при загрузке:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Убедитесь, что устройство <devicename>bpf</devicename>
|
||||
включено в компиляцию вашего ядра. Чтобы это сделать, добавьте
|
||||
строчку <literal>pseudo-device bpf</literal> в конфигурационный
|
||||
файл ядра и перестройте ядро. Более подробная информация о
|
||||
построении ядер имеется в разделе <xref
|
||||
linkend="kernelconfig">.</para>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Убедитесь, что устройство <devicename>bpf</devicename>
|
||||
включено в компиляцию вашего ядра. Чтобы это сделать, добавьте
|
||||
строчку <literal>pseudo-device bpf</literal> в конфигурационный
|
||||
файл ядра и перестройте ядро. Более подробная информация о
|
||||
построении ядер имеется в разделе <xref
|
||||
linkend="kernelconfig">.</para>
|
||||
|
||||
<para>Устройство <devicename>bpf</devicename> уже является частью
|
||||
ядра <filename>GENERIC</filename>, которое поставляется вместе с
|
||||
FreeBSD, так что, если вы не используете другое ядро, то вам и
|
||||
не нужно его делать для того, чтобы работал DHCP.</para>
|
||||
<para>Устройство <devicename>bpf</devicename> уже является частью
|
||||
ядра <filename>GENERIC</filename>, которое поставляется вместе с
|
||||
FreeBSD, так что, если вы не используете другое ядро, то вам и
|
||||
не нужно его делать для того, чтобы работал DHCP.</para>
|
||||
|
||||
<note>
|
||||
<para>Те, кто беспокоится о безопасности, должны иметь в виду, что
|
||||
устройство <devicename>bpf</devicename> является также тем самым
|
||||
устройством, которое позволяет работать программам-снифферам
|
||||
пакетов (хотя для этого они должны быть запущены пользователем
|
||||
root). Наличие устройства <devicename>bpf</devicename>
|
||||
<emphasis>необходимо</emphasis> для использования DHCP, но если
|
||||
вы чересчур беспокоитесь о безопасности, то вам нельзя добавлять
|
||||
устройство <devicename>bpf</devicename> в ядро для того, чтобы
|
||||
в будущем использовать DHCP.</para>
|
||||
</note>
|
||||
</listitem>
|
||||
<note>
|
||||
<para>Те, кто беспокоится о безопасности, должны иметь в виду, что
|
||||
устройство <devicename>bpf</devicename> является также тем самым
|
||||
устройством, которое позволяет работать программам-снифферам
|
||||
пакетов (хотя для этого они должны быть запущены пользователем
|
||||
root). Наличие устройства <devicename>bpf</devicename>
|
||||
<emphasis>необходимо</emphasis> для использования DHCP, но если
|
||||
вы чересчур беспокоитесь о безопасности, то вам нельзя добавлять
|
||||
устройство <devicename>bpf</devicename> в ядро для того, чтобы
|
||||
в будущем использовать DHCP.</para>
|
||||
</note>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Отредактируйте ваш файл <filename>/etc/rc.conf</filename>,
|
||||
включив в него следующее:</para>
|
||||
<listitem>
|
||||
<para>Отредактируйте ваш файл <filename>/etc/rc.conf</filename>,
|
||||
включив в него следующее:</para>
|
||||
|
||||
<programlisting>
|
||||
<programlisting>
|
||||
ifconfig_fxp0="DHCP"
|
||||
</programlisting>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</programlisting>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<note>
|
||||
<para>Обязательно замените <literal>fxp0</literal> именем интерфейса,
|
||||
который вы хотите настроить динамически.</para>
|
||||
который вы хотите настроить динамически.</para>
|
||||
</note>
|
||||
|
||||
<para>Если <command>dhclient</command> в вашей системе находится в другом
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/basics/chapter.sgml,v 1.3 2000/10/05 15:34:36 phantom Exp $
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/basics/chapter.sgml,v 1.5 2000/12/17 11:12:42 danfe Exp $
|
||||
Original revision: 1.17
|
||||
-->
|
||||
|
||||
|
|
@ -12,7 +12,7 @@
|
|||
<sect1>
|
||||
<title>Краткий обзор</title>
|
||||
|
||||
<para><emphasis>Переписано Chris Shumway
|
||||
<para><emphasis>Переписал Chris Shumway
|
||||
<email>cshumway@cdrom.com</email>, 10 марта 2000.</emphasis></para>
|
||||
|
||||
<para>В этой главе мы попытаемcя раскрыть основные принципы и команды
|
||||
|
|
@ -25,7 +25,7 @@
|
|||
|
||||
<para>FreeBSD исторически развивалась из BSD UNIX, и основывается на
|
||||
некоторых ключевых концепциях UNIX. В первую очередь это, конечно,
|
||||
тот факт, что FreeBSD -- многопользовательская операционная система.
|
||||
тот факт, что FreeBSD – многопользовательская операционная система.
|
||||
Это означает, что несколько пользователей могут работать одновременно,
|
||||
решая различные задачи и совершенно не мешая друг другу. На системе
|
||||
лежит ответственность за правильное разделение и управление такими
|
||||
|
|
@ -147,13 +147,13 @@
|
|||
|
||||
<para>Самым важным из всех каталогов является, несомненно, корневой
|
||||
каталог, обозначаемым символом <literal>/</literal>. Корневой каталог
|
||||
монтируется самым первым на этапе загрузки, и содержит все
|
||||
монтируется самым первым на этапе загрузки и содержит все
|
||||
необходимое, чтобы поднять систему и примонтировать остальные файловые
|
||||
системы.</para>
|
||||
|
||||
<para>Точкой монтирования называется директория, которая будет
|
||||
соответствовать корню примонтированной файловой системой. Среди
|
||||
стандартных точки монтирования -- <filename>/usr</filename>,
|
||||
стандартных точки монтирования – <filename>/usr</filename>,
|
||||
<filename>/var</filename>, <filename>/mnt</filename> и
|
||||
<filename>/cdrom</filename>. Эти директории обычно перечислены в
|
||||
файле <filename>/etc/fstab</filename>, в котором указаны файловые
|
||||
|
|
@ -177,18 +177,18 @@
|
|||
операции над файлами и каталогами, редактирование командной строки,
|
||||
командные макросы и переменные окружения. Вместе с FreeBSD
|
||||
поставляется несколько командных интерпретаторов, например, sh, или
|
||||
Bourne Shell, и csh, иначе C-shell. Многие другие, намного более
|
||||
мощные, например, tcsh или bash, доступны в коллекции портов.</para>
|
||||
Bourne Shell, и csh, иначе C-shell. Многие другие, более мощные,
|
||||
например, tcsh или bash, доступны в коллекции портов.</para>
|
||||
|
||||
<para>Какой из командных интерпретаторов использовать? Это дело вкуса.
|
||||
<para>Какой из командных интерпретаторов использовать? Это дело вкуса.
|
||||
Если Вы программируете на C, то Вам, возможно, понравится tcsh, а если
|
||||
Вы работали с Linux, то Вам скорее понравится bash. Каждый из
|
||||
названных интерпретаторов имеет свои особенные свойства, которые
|
||||
отличат его от других и, возможно, повлияют на Ваши
|
||||
предпочтения.</para>
|
||||
Вы работали с Linux, то Вас скорее устроит bash, нежели что-либо
|
||||
другое. Каждый из названных интерпретаторов имеет свои особенные
|
||||
свойства, которые отличат его от других и, возможно, повлияют на Ваш
|
||||
выбор.</para>
|
||||
|
||||
<para>Одна из наиболее часто используемых функций командного
|
||||
интерпретатора -- дополнение частичного имени файла до полного. Вы
|
||||
интерпретатора – дополнение частичного имени файла до полного. Вы
|
||||
можете набрать только первые несколько символов имени файла, нажать
|
||||
клавишу табуляции (TAB), и командный интерпретатор автоматически
|
||||
Например, у нас есть два фала, названные <filename>foobar</filename> и
|
||||
|
|
@ -198,7 +198,7 @@
|
|||
|
||||
<para>Вы увидите следующее: <command>rm foo[BEEP].bar</command>.</para>
|
||||
|
||||
<para>Здесь [BEEP] -- это так называемый консольный звонок,
|
||||
<para>Здесь [BEEP] – это так называемый консольный звонок,
|
||||
сигнализирующий о том, что интерпретатор не в состоянии закончить имя
|
||||
файла, так как по введенным Вами символам невозможно однозначно
|
||||
идентифицировать файл. Например, имена файлов
|
||||
|
|
@ -313,7 +313,7 @@
|
|||
|
||||
<para>Командный интерпретатор воспринимает некоторые символы, называемые
|
||||
метасимволами, в качестве управляющих, несущих специальные функции.
|
||||
Одни из наиболее часто используемых -- символ <literal>*</literal>,
|
||||
Одни из наиболее часто используемых – символ <literal>*</literal>,
|
||||
который заменяет любое количество символов в имени файла, и
|
||||
<literal>?</literal>, заменяющий один символ. Эти метасимволы
|
||||
используются для поиска файлов по маске, например, команда
|
||||
|
|
@ -322,7 +322,7 @@
|
|||
попадают все файлы из текущего каталога (на самом деле, это всегда так
|
||||
и зависит от командного интерпретатора, например, в bash под маску
|
||||
<literal>*</literal> не попадут файлы, начинающиеся с точки
|
||||
<literal>.</literal> -- скрытые файлы).</para>
|
||||
<literal>.</literal> – скрытые файлы).</para>
|
||||
|
||||
<para>В некоторых ситуациях требуется, чтобы интерпретатор воспринимал
|
||||
метасимволы как обычные, не несущие специальной смысловой нагрузки.
|
||||
|
|
@ -379,8 +379,8 @@
|
|||
некоторые из них; в коллекции портов можно найти многие другие.</para>
|
||||
|
||||
<para>Самым простым в изучении и использовании, по-видимому, можно
|
||||
назвать <application>ee</application>, что расшифровывается
|
||||
“easy editor”, “простой редактор”. Чтобы
|
||||
назвать <application>ee</application>, что расшифровывается как
|
||||
“easy editor”, т.е. “простой редактор”. Чтобы
|
||||
начать редактировать какой-либо файл, наберите в командной строке
|
||||
<command>ee filename</command>, где <literal>filename</literal> имя
|
||||
редактируемого файла. Например, для редактирования файла
|
||||
|
|
@ -418,7 +418,7 @@
|
|||
|
||||
<para><command>&prompt.user; man command</command></para>
|
||||
|
||||
<para>Здесь<literal>command</literal> -- это команда, про которую Вы
|
||||
<para>Здесь<literal>command</literal> – это команда, про которую Вы
|
||||
хотите получить информацию. Например, для команды
|
||||
<command>ls</command> наберите:</para>
|
||||
|
||||
|
|
@ -476,7 +476,7 @@
|
|||
<para>Эта команда выведет справку об утилите <command>chmod</command>.
|
||||
По традиции, конкретная секция справочника указывается в скобках
|
||||
после команды, например, &man.chmod.1; относится к утилите
|
||||
<command>chmod</command>, а &man.chmod.2; -- к соответствующему
|
||||
<command>chmod</command>, а &man.chmod.2; – к соответствующему
|
||||
системному вызову.</para>
|
||||
|
||||
<para>Часто бывает так, что Вы не знаете название команды, но имеете
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/bibliography/chapter.sgml,v 1.2 2000/07/08 13:35:18 phantom Exp $
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/bibliography/chapter.sgml,v 1.3 2000/11/09 03:17:28 danfe Exp $
|
||||
Original version: 1.21
|
||||
-->
|
||||
|
||||
|
|
@ -17,10 +17,10 @@
|
|||
ĐĎĚŘÚĎ×ÁÔĹĚŃ.</para>
|
||||
|
||||
<sect1 id="bibliography-freebsd">
|
||||
<title>ëÎÉÇÉ É öÕÒÎÁÌÙ óÐÅÃÉÁÌÉÚÉÒÕÀÝÉÅÓÑ ÎÁ FreeBSD</title>
|
||||
<title>Книги и журналы, специализирующиеся на FreeBSD</title>
|
||||
|
||||
<para><emphasis>íÅÖÄÕÎÁÒÏÄÎÙÅ ëÎÉÇÉ É
|
||||
öÕÒÎÁÌÙ:</emphasis></para>
|
||||
<para><emphasis>Международные книги и
|
||||
журналы:</emphasis></para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
|
|
@ -66,7 +66,7 @@
|
|||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para><emphasis>ëÎÉÇÉ É öÕÒÎÁÌÙ ÎÁ ÁÎÇÌÉÊÓËÏÍ ÑÚÙËÅ:</emphasis></para>
|
||||
<para><emphasis>Книги и журналы на английском языке:</emphasis></para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
|
|
@ -79,7 +79,7 @@
|
|||
</sect1>
|
||||
|
||||
<sect1 id="bibliography-userguides">
|
||||
<title>òÕËÏ×ÏÄÓÔ×Á ðÏÌØÚÏ×ÁÔÅÌÅÊ</title>
|
||||
<title>Руководства для пользователей</title>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
|
|
@ -125,7 +125,7 @@
|
|||
</sect1>
|
||||
|
||||
<sect1 id="bibliography-adminguides">
|
||||
<title>òÕËÏ×ÏÄÓÔ×Á áÄÍÉÎÉÓÔÒÁÔÏÒÏ×</title>
|
||||
<title>Руководства для администраторов</title>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
|
|
@ -180,7 +180,7 @@
|
|||
</sect1>
|
||||
|
||||
<sect1 id="bibliography-programmers">
|
||||
<title>Programmers' Guides</title>
|
||||
<title>Руководства для программистов</title>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
|
|
@ -243,7 +243,7 @@
|
|||
</sect1>
|
||||
|
||||
<sect1 id="bibliography-osinternals">
|
||||
<title>÷ÎÕÔÒÅÎÎÏÓÔÉ ïÐÅÒÁÃÉÏÎÎÏÊ óÉÓÔÅÍÙ</title>
|
||||
<title>Внутренности операционной системы</title>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
|
|
@ -451,7 +451,7 @@
|
|||
</sect1>
|
||||
|
||||
<sect1 id="bibliography-journals">
|
||||
<title>Magazines and Journals</title>
|
||||
<title>Прочие издания</title>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/book.sgml,v 1.16 2000/10/11 15:57:22 phantom Exp $
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/book.sgml,v 1.19 2000/11/10 13:01:50 phantom Exp $
|
||||
Original revision: 1.89
|
||||
-->
|
||||
|
||||
|
|
@ -96,10 +96,12 @@
|
|||
<!--
|
||||
&chap.users;
|
||||
&chap.kernelconfig;
|
||||
&chap.security;
|
||||
&chap.printing;
|
||||
&chap.disks;
|
||||
-->
|
||||
&chap.security;
|
||||
<!--
|
||||
&chap.printing;
|
||||
-->
|
||||
&chap.disks;
|
||||
&chap.backups;
|
||||
&chap.x11;
|
||||
<!--
|
||||
|
|
@ -115,9 +117,7 @@
|
|||
&chap.ppp-and-slip;
|
||||
-->
|
||||
&chap.advanced-networking;
|
||||
<!--
|
||||
&chap.mail;
|
||||
-->
|
||||
</part>
|
||||
|
||||
<part>
|
||||
|
|
@ -126,9 +126,9 @@
|
|||
&chap.cutting-edge;
|
||||
&chap.contrib;
|
||||
&chap.policies;
|
||||
-->
|
||||
&chap.kernelopts;
|
||||
&chap.kerneldebug;
|
||||
-->
|
||||
&chap.linuxemu;
|
||||
<!--
|
||||
&chap.internals;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@
|
|||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml,v 1.3 2000/10/10 18:49:31 phantom Exp $
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml,v 1.4 2000/11/09 03:29:52 danfe Exp $
|
||||
Original revision: 1.8
|
||||
-->
|
||||
|
||||
|
|
@ -19,8 +19,8 @@
|
|||
строится на функциях предыдущей программы и становится все более
|
||||
сложной.</para>
|
||||
|
||||
<para>Затем стартует ядро, которая выполняет обнаружение устройств и
|
||||
их инициализацию. После завершения процесса своей загрузки ядро
|
||||
<para>Затем стартует ядро, которое детектирует устройства и выполняет
|
||||
их инициализацию. После завершения процесса своей загрузки, ядро
|
||||
передает управление пользовательскому процессу с именем &man.init.8;,
|
||||
который выполняет проверку дисков на возможность использования. Затем
|
||||
&man.init.8; запускает пользовательский процесс настройки ресурсов,
|
||||
|
|
@ -30,7 +30,7 @@
|
|||
</sect1>
|
||||
|
||||
<sect1 id="boot-blocks">
|
||||
<title>Загрузочные блоки: Этапы начальной загрузки 1 и 2</title>
|
||||
<title>Загрузочные блоки: первый и второй этапы начальной загрузки</title>
|
||||
|
||||
<para><firstterm>Начальная загрузка</firstterm> представляет собой
|
||||
процесс, в течение которого компьютер распознает и инициализирует свои
|
||||
|
|
@ -129,7 +129,7 @@ boot:
|
|||
</sect1>
|
||||
|
||||
<sect1 id="boot-loader">
|
||||
<title>Загрузчик: Третий этап процесса начальной загрузки</title>
|
||||
<title>Загрузчик: третий этап процесса начальной загрузки</title>
|
||||
|
||||
<para>Передача управления загрузчику является последним, третьим этапом в
|
||||
процессе начальной загрузки, а сам загрузчик находится в файловой
|
||||
|
|
@ -375,7 +375,7 @@ boot:
|
|||
</sect1>
|
||||
|
||||
<sect1 id="boot-kernel">
|
||||
<title>Взаимодействие я ядром во время загрузки</title>
|
||||
<title>Взаимодействие с ядром во время загрузки</title>
|
||||
|
||||
<para>Как только ядро окажется загруженным при помощи <link
|
||||
linkend="boot-loader">загрузчика</link> (обычный способ) или <link
|
||||
|
|
@ -448,7 +448,7 @@ boot:
|
|||
</sect1>
|
||||
|
||||
<sect1 id="boot-init">
|
||||
<title>Init: Инициализация управления процессами</title>
|
||||
<title>Init: инициализация управления процессами</title>
|
||||
|
||||
<para>После того, как ядро завершит загрузку, оно передает управление
|
||||
пользовательскому процессу <command>init</command>, который расположен
|
||||
|
|
|
|||
967
ru_RU.KOI8-R/books/handbook/disks/chapter.sgml
Normal file
967
ru_RU.KOI8-R/books/handbook/disks/chapter.sgml
Normal file
|
|
@ -0,0 +1,967 @@
|
|||
<!--
|
||||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/disks/chapter.sgml,v 1.4 2000/11/10 12:05:03 phantom Exp $
|
||||
Original revision: 1.23
|
||||
-->
|
||||
|
||||
<chapter id="disks">
|
||||
<title>Диски</title>
|
||||
|
||||
<sect1 id="disks-synopsis">
|
||||
<title>Краткий обзор</title>
|
||||
|
||||
<para>Эта глава посвящена использованию дисков, как физических, так и
|
||||
построенных на основе микросхем памяти и сетевых, в системе
|
||||
FreeBSD.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="disks-bios-numbering">
|
||||
<title>Нумерация дисков в BIOS</title>
|
||||
|
||||
<para>Вам необходимо изучить этот вопрос перед тем, как устанавливать и
|
||||
настраивать FreeBSD на вашей машине, особенно если у вас имеется
|
||||
несколько дисков.</para>
|
||||
|
||||
<para>В случае PC под управлением DOS или других зависимых от BIOS
|
||||
операционных систем (WINxxx), BIOS может скрывать обычный порядок
|
||||
следования дисков, и операционная система не замечает этого. Это
|
||||
позволяет пользователю загружаться с диска, отличного от так
|
||||
называемого <quote>основного первичного</quote>. Это особенно удобно
|
||||
тем пользователям, которые находят, что самый простым и дешевым
|
||||
способом создания резервных копий является покупка второго винчестера,
|
||||
идентичного первому, и выполнение регулярных копий первого диска на
|
||||
второй при помощи программ Ghost или XCOPY. В таком случае, если
|
||||
первый диск ломается, подвергается атаке вируса или портится из-за
|
||||
дефекта в операционной системе, он может быть легко восстановлен просто
|
||||
указанием BIOS логически поменять диски местами. Это похоже на
|
||||
переключение кабелей на винчестерах, но без разборки корпуса.</para>
|
||||
|
||||
<para>Более дорогие системы с контроллерами SCSI часто включают
|
||||
расширения BIOS, которые точно также позволяют изменить порядок
|
||||
следования до семи дисков SCSI.</para>
|
||||
|
||||
<para>Пользователь, который привык пользоваться этой возможностью, может
|
||||
быть удивлен результатом попытки ею воспользоваться с FreeBSD.
|
||||
FreeBSD не использует BIOS и не знает о <quote>логическом
|
||||
переназначении дисков BIOS</quote>. Это может привести к очень
|
||||
запутанной ситуации, особенно когда диски идентичны по физическим
|
||||
параметрам и к тому же являлись клонами друг друга.</para>
|
||||
|
||||
<para>При работе с FreeBSD, всегда настраивайте BIOS на естественный
|
||||
порядок нумерации дисков до установки FreeBSD, и оставляйте эту
|
||||
настройку. Если вам нужно поменять диски местами, делайте это, но
|
||||
самым сложным способом, открывая корпус машины и переключая кабели и
|
||||
перемычки.</para>
|
||||
|
||||
<sidebar>
|
||||
<title>Пример из Удивительных приключений Билла и Фреда:</title>
|
||||
|
||||
<para>Билл пожертвовал стареньким Wintel-компьютером под машину FreeBSD
|
||||
для Фреда. Билл задал единственный винчестер SCSI как устройство
|
||||
SCSI номер ноль и установил на него FreeBSD.</para>
|
||||
|
||||
<para>Фред начал работать с системой, однако после нескольких дней
|
||||
работы заметил, что старый диск SCSI сообщает о множестве программных
|
||||
ошибок, и сообщил об этом Биллу.</para>
|
||||
|
||||
<para>Спустя еще несколько дней Билл, решив выделить некоторое время на
|
||||
решение этой проблемы, взял идентичный диск SCSI со "склада"
|
||||
винчестеров в кладовке. Первичное сканирование поверхности
|
||||
показало нормальное функционирование, так что Билл устанавливает этот
|
||||
диск как устройство SCSI номер четыре, и выполняет копирование образа
|
||||
с диска номер ноль на диск с номером четыре. Теперь, после того, как
|
||||
новый диск был установлен и начал нормально работать, Билл решает,
|
||||
что хорошо бы начать использовать его, поэтому он воспользовался
|
||||
возможность в SCSI BIOS изменить порядок следования дисков для
|
||||
загрузки системы с устройства SCSI номер четыре. FreeBSD загружается
|
||||
и работает прекрасно.</para>
|
||||
|
||||
<para>Фред продолжает свою работу еще несколько дней, и вскоре Билл и
|
||||
Фред решают, что пришло время для нового испытания -- обновления до
|
||||
новой версии FreeBSD. Билл убрал диск SCSI номер ноль, потому что
|
||||
он был несколько поврежден, и заменил его другим идентичным диском со
|
||||
"склада". Затем Билл установил новую версию FreeBSD на новый диск
|
||||
SCSI с номером ноль при помощи волшебных дискет Фреда с поддержкой
|
||||
FTP через Интернет. Установка прошла нормально.</para>
|
||||
|
||||
<para>Фред продолжает использовать новую версию FreeBSD несколько дней и
|
||||
решает, что она достаточно хороша для использования в инженерном
|
||||
отделе... самое время скопировать всю его работу со старой версии.
|
||||
Так что Фред монтирует устройство SCSI номер четыре (самая последняя
|
||||
копия старой версии FreeBSD). Фред с ужасом обнаруживает, что
|
||||
никаких следов его работы на диске SCSI номер четыре нет.</para>
|
||||
|
||||
<para>Куда же исчезли данные?</para>
|
||||
|
||||
<para>Когда Билл делал копию образа исходного диска SCSI номер ноль на
|
||||
диск SCSI номер четыре, диск номер четыре стал "новым клоном". Когда
|
||||
Билл изменил порядок следования дисков в SCSI BIOS, чтобы загружаться
|
||||
с диска SCSI номер четыре, он обманул этим только самого себя.
|
||||
FreeBSD продолжала работать с диска SCSI номер ноль. Выполнение
|
||||
подобных изменений в BIOS приведет к тому, что все или некоторые
|
||||
компоненты кода начальной загрузки будут браться с указанного диска
|
||||
BIOS, но когда очередь доходит до драйверов ядра FreeBSD, нумерация
|
||||
дисков BIOS игнорируется, и FreeBSD возвращается обратно к обычной
|
||||
схеме нумерации дисков. В приведенном примере система продолжала
|
||||
работать с начальным диском SCSI номер ноль, и все данные Фреда
|
||||
оставались здесь, а не на устройстве SCSI номер четыре. Тот факт,
|
||||
что система запускалась с диска SCSI номер четыре, был просто обманом
|
||||
человеческих ожиданий.</para>
|
||||
|
||||
<para>Мы хотим отметить, что при этом феномене не был уничтожен или
|
||||
утерян ни один байт данных. Старый диск SCSI номер ноль был забран
|
||||
из мусорки и вся работа Фреда была восстановлена (и теперь Билл
|
||||
знает, что он умеет считать до нуля).</para>
|
||||
|
||||
<para>Хотя в этом примере использовались диски SCSI, общая идея
|
||||
применима и для устройств IDE.</para>
|
||||
</sidebar>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="disks-naming">
|
||||
<title>Именование дисков</title>
|
||||
|
||||
<para>Физически диски существуют в двух разновидностях,
|
||||
<acronym>IDE</acronym> или <acronym>SCSI</acronym>; однако есть диски,
|
||||
работа с которыми выполняется RAID-контроллерами, представляющие собой
|
||||
микросхемы памяти и так далее. Так как такие устройства ведут себя
|
||||
несколько иначе, они имеют собственные драйверы и им соответствуют
|
||||
другие устройства.</para>
|
||||
|
||||
<table id="disk-naming-physical-table">
|
||||
<title>Соглашения по наименованию физических дисков</title>
|
||||
|
||||
<tgroup cols="2">
|
||||
<thead>
|
||||
<row>
|
||||
<entry>Тип устройства</entry>
|
||||
<entry>Имя, соответствующее устройству</entry>
|
||||
</row>
|
||||
</thead>
|
||||
|
||||
<tbody>
|
||||
<row>
|
||||
<entry>Диски IDE</entry>
|
||||
<entry><literal>ad</literal> в 4.0-RELEASE,
|
||||
<literal>wd</literal> до 4.0-RELEASE.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Приводы IDE CDROM</entry>
|
||||
<entry><literal>acd</literal>, начиная с 3.1-RELEASE,
|
||||
<literal>wcd</literal> до 4.0-RELEASE.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Диски SCSI</entry>
|
||||
<entry><literal>da</literal>, начиная с 3.0-RELEASE,
|
||||
<literal>sd</literal> до 3.0-RELEASE.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Приводы SCSI CDROM</entry>
|
||||
<entry><literal>cd</literal></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Различные нестандартные приводы CDROM</entry>
|
||||
<entry><literal>mcd</literal> для Mitsumi CD-ROM,
|
||||
<literal>scd</literal> для Sony CD-ROM,
|
||||
<literal>matcd</literal> для Matsushita/Panasonic CD-ROM
|
||||
</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Дисководы</entry>
|
||||
<entry><literal>fd</literal></entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Ленточные устройства SCSI</entry>
|
||||
<entry><literal>sa</literal>, начиная с 3.0-RELEASE,
|
||||
<literal>st</literal> до 3.0-RELEASE.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Ленточные устройства IDE</entry>
|
||||
<entry><literal>ast</literal>, начиная с 4.0-RELEASE,
|
||||
<literal>wst</literal> до 4.0-RELEASE.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Флэш-диски</entry>
|
||||
<entry><literal>fla</literal> для устройств флэш-памяти DiskOnChip,
|
||||
начиная с 3.3-RELEASE.</entry>
|
||||
</row>
|
||||
|
||||
<row>
|
||||
<entry>Диски RAID</entry>
|
||||
<entry><literal>myxd</literal> для Mylex и <literal>amrd</literal>
|
||||
для AMI MegaRAID, <literal>idad</literal> для Compaq Smart RAID,
|
||||
начиная с 4.0-RELEASE. <literal>id</literal> от 3.2-RELEASE до
|
||||
4.0-RELEASE.</entry>
|
||||
</row>
|
||||
</tbody>
|
||||
</tgroup>
|
||||
</table>
|
||||
|
||||
<sect2>
|
||||
<title>Слайсы и разделы</title>
|
||||
|
||||
<para>Физические диски обычно разбиты на <firstterm>слайсы</firstterm>,
|
||||
кроме случаев, когда они подготовлены в режиме <quote>dangerously
|
||||
dedicated</quote>. Номер слайса следует за именем устройства и
|
||||
предваряется буквой <literal>s</literal>:
|
||||
<quote>da0<emphasis>s1</emphasis></quote>.</para>
|
||||
|
||||
<para>Слайсы, физические диски, подготовленные для режима
|
||||
<quote>dangerously dedicated</quote>, и другие диски содержат
|
||||
<firstterm>разделы</firstterm>, которые обозначаются буквами от
|
||||
<literal>a</literal> до <literal>h</literal>. Буква
|
||||
<literal>b</literal> зарезервирована для раздела подкачки, а
|
||||
<literal>c</literal> для особого раздела, равного по размеру
|
||||
полному слайсу или диску. Это описано в <xref
|
||||
linkend="disks-adding" />.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="disks-mounting">
|
||||
<title>Монтирование и размонтирование файловых систем</title>
|
||||
|
||||
<para>Файловую систему лучше всего рассматривать как дерево, корень
|
||||
которого, как обычно, находится в <filename>/</filename>.
|
||||
<filename>/dev</filename>, <filename>/usr</filename> и другие каталоги
|
||||
в корневом каталоге являются ветками, которые могут иметь собственные
|
||||
ветви, такие, как <filename>/usr/local</filename> и так далее.</para>
|
||||
|
||||
<para>Есть несколько причин размещать некоторые из этих каталогов в
|
||||
раздельных файловых системах. <filename>/var</filename> содержит
|
||||
журналы, очереди и различные типы временных файлов, поэтому может быть
|
||||
заполнена до отказа. Заполнение корневой файловой системы
|
||||
нежелательно, так что отделение <filename>/var</filename> от
|
||||
<filename>/</filename> зачастую бывает весьма полезно.</para>
|
||||
|
||||
<para>Другим общим соображением при размещении отдельных деревьев
|
||||
каталогов в других файловых системах является их размещение на
|
||||
отдельных физических дисках или отдельных виртуальных дисках, таких,
|
||||
как точки монтирования <link linkend="nfs">сетевой файловой
|
||||
системы</link> или привода CDROM.</para>
|
||||
|
||||
<sect2 id="disks-fstab">
|
||||
<title>Файл fstab</title>
|
||||
|
||||
<para>Во время <link linkend="boot">процесса загрузки</link> файловые
|
||||
системы, перечисленные в <filename>/etc/fstab</filename>, монтируются
|
||||
автоматически (если при них не указан флаг
|
||||
<option>noauto</option>).</para>
|
||||
|
||||
<para>Файл <filename>/etc/fstab</filename> состоит из строк следующего
|
||||
формата:</para>
|
||||
|
||||
<programlisting>
|
||||
<replaceable>device</replaceable> <replaceable>/mount-point</replaceable> <replaceable>fstype</replaceable> <replaceable>options</replaceable> <replaceable>dumpfreq</replaceable> <replaceable>passno</replaceable>
|
||||
</programlisting>
|
||||
|
||||
<para><literal>device</literal> являются именем устройства (которое
|
||||
должно существовать) вида, описанного выше в главе о <link
|
||||
linkend="disks-naming">соглашениях по именованию
|
||||
дисков</link>.</para>
|
||||
|
||||
<para><literal>mount-point</literal> является каталогом (который должен
|
||||
существовать), в который будет смонтирована файловая система.</para>
|
||||
|
||||
<para><literal>fstype</literal> является типом файловой системы для
|
||||
передачи в &man.mount.8;. По умолчанию во FreeBSD файловая система
|
||||
имеет тип <literal>ufs</literal>.</para>
|
||||
|
||||
<para>В качестве параметров <literal>options</literal> указывается
|
||||
<option>rw</option> для файловых систем, доступных по чтению-записи,
|
||||
или <option>ro</option> для файловых систем, доступных только для
|
||||
чтения, за которым следует любое количество других параметров, могущих
|
||||
быть нужными. Часто используемым параметром является опция
|
||||
<option>noauto</option> для файловых систем, которые обычно
|
||||
не монтируются во время загрузки. Другие параметры описаны на
|
||||
странице справочника по &man.mount.8;.</para>
|
||||
|
||||
<para><literal>dumpfreq</literal> определяет количество дней для
|
||||
обязательного создания архивной копии файловой системы, а
|
||||
<literal>passno</literal> задает номер прохода, при котором
|
||||
файловая система была смонтирована во время процесса загрузки.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="disks-mount">
|
||||
<title>Команда mount</title>
|
||||
|
||||
<para>Команда &man.mount.8; является тем, что необходимо использовать
|
||||
для монтирования файловых систем.</para>
|
||||
|
||||
<para>В ее самой простой форме она используется так:</para>
|
||||
|
||||
<informalexample>
|
||||
<screen>
|
||||
&prompt.root; <userinput>mount <replaceable>device</replaceable> <replaceable>mountpoint</replaceable></userinput>
|
||||
</screen>
|
||||
</informalexample>
|
||||
|
||||
<para>Как отмечено на справочной странице по команде &man.mount.8;, она
|
||||
имеет массу параметров, но наиболее часто используются
|
||||
следующие:</para>
|
||||
|
||||
<variablelist>
|
||||
<title>Параметры команды mount</title>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-a</option></term>
|
||||
|
||||
<listitem>
|
||||
<para>Смонтировать все файловые системы, перечисленные в файле
|
||||
<filename>/etc/fstab</filename>, с модификациями по параметру
|
||||
<option>-t</option>, если он задан.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-d</option></term>
|
||||
|
||||
<listitem>
|
||||
<para>Сделать все, кроме собственно монтирования файловой
|
||||
системы.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-f</option></term>
|
||||
|
||||
<listitem>
|
||||
<para>Принудительно смонтировать файловую систему.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-r</option></term>
|
||||
|
||||
<listitem>
|
||||
<para>Смонтировать файловую систему в режиме только для
|
||||
чтения.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-t</option>
|
||||
<replaceable>fstype</replaceable></term>
|
||||
|
||||
<listitem>
|
||||
<para>Смонтировать указанную файловую систему как файловую
|
||||
систему указанного типа, или смонтировать файловые системы
|
||||
только указанного типа, если задан параметр
|
||||
<option>-a</option>.</para>
|
||||
|
||||
<para>По умолчанию используется тип файловой системы
|
||||
<quote>ufs</quote>.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-u</option></term>
|
||||
|
||||
<listitem>
|
||||
<para>Обновить параметры монтирования файловой системы.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-v</option></term>
|
||||
|
||||
<listitem>
|
||||
<para>Выдавать подробный журнал.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><option>-w</option></term>
|
||||
|
||||
<listitem>
|
||||
<para>Смонтировать файловую систему в режиме доступа как для
|
||||
чтения, так и для записи.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>Опция <option>-o</option> принимает список разделенных запятыми
|
||||
параметров, включая следующее:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>nodev</term>
|
||||
|
||||
<listitem>
|
||||
<para>Не обрабатывать специальные устройства в файловой системе.
|
||||
Опция, полезная с точки зрения обеспечения безопасности.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>noexec</term>
|
||||
|
||||
<listitem>
|
||||
<para>Запретить выполнение бинарных файлов на этой файловой
|
||||
системе. Опция, полезная с точки зрения обеспечения
|
||||
безопасности.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>nosuid</term>
|
||||
|
||||
<listitem>
|
||||
<para>Не обрабатывать флаги установки выполнения файлов с
|
||||
привилегиями их владельцев и групп в этой файловой системе.
|
||||
Опция, полезная с точки зрения обеспечения безопасности.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="disks-umount">
|
||||
<title>Команда umount</title>
|
||||
|
||||
<para>Команда umount воспринимает в качестве параметра либо точку
|
||||
монтирования, либо имя устройства, либо параметры <option>-a</option>
|
||||
или <option>-A</option>.</para>
|
||||
|
||||
<para>Все формы воспринимают параметр <option>-f</option> для
|
||||
принудительного размонтирования и <option>-v</option> для вывода
|
||||
подробного журнала.</para>
|
||||
|
||||
<para>Флаги <option>-a</option> и <option>-A</option> используются для
|
||||
размонтирования всех смонтированных файловых систем, возможно с
|
||||
учетом типов файловых систем, перечисленных после
|
||||
<option>-t</option>. Однако при использовании опции
|
||||
<option>-A</option> не будет предприниматься попытка размонтировать
|
||||
корневую файловую систему.</para>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="disks-adding">
|
||||
<title>Добавление дисков</title>
|
||||
|
||||
<para><emphasis>Изначальный текст предоставил &a.obrien; 26 апреля
|
||||
1998 года</emphasis></para>
|
||||
|
||||
<para>Предположим, что мы хотим установить новый диск SCSI на машину,
|
||||
имеющую в данный момент только один диск. Сначала выключим компьютер и
|
||||
установим диск в компьютер согласно инструкциям к компьютеру,
|
||||
контроллеру и от производителя диска. Из-за большого разнообразия
|
||||
этих процедур их рассмотрение выходит за рамки этого документа..</para>
|
||||
|
||||
<para>Войдите в систему как пользователь <username>root</username>.
|
||||
После того, как вы установили диск, просмотрите файл
|
||||
<filename>/var/run/dmesg.boot</filename>, чтобы убедиться, что новый
|
||||
диск был найден. Продолжая наш пример, только что добавленный диск
|
||||
будет называться <filename>da1</filename> и мы хотим смонтировать его
|
||||
в каталог <filename>/1</filename> (если вы добавляете диск IDE, он
|
||||
будет называться <filename>wd1</filename> в системах, предшествующих
|
||||
4.0, и <filename>ad1</filename> в большинстве систем 4.X).</para>
|
||||
|
||||
<para>Так как FreeBSD работает на IBM-PC совместимых компьютерах, она
|
||||
должна принимать во внимание разделы PC BIOS. В этом заключается
|
||||
отличие от традиционных разделов BSD. Диск PC может иметь до четырех
|
||||
записей разделов BIOS. Если диск на самом деле будет использоваться
|
||||
исключительно под FreeBSD, вы можете использовать режим
|
||||
<emphasis>dedicated</emphasis>. В противном случае FreeBSD будет
|
||||
располагаться в одном из разделов PC BIOS. Во FreeBSD разделы PC BIOS
|
||||
называются <emphasis>слайсами</emphasis>, чтобы не путать их с
|
||||
традиционными разделами BSD. Вы также можете использовать слайсы и с
|
||||
диском, предназначенным исключительно для FreeBSD, однако используемым
|
||||
в компьютере, на котором имеется дополнительная операционная система.
|
||||
Это нужно для того, чтобы не было путаницы с утилитой
|
||||
<command>fdisk</command> другой операционной системы.</para>
|
||||
|
||||
<para>В случае слайсов диск будет добавлен как
|
||||
<filename>/dev/da1s1e</filename>. Это интерпретируется следующим
|
||||
образом: диск SCSI, устройство номер 1 (второй диск SCSI), слайс 1
|
||||
(раздел PC BIOS 1), и раздел BSD <filename>e</filename>. В случае
|
||||
использования в выделенном режиме диск будет добавлен просто как
|
||||
<filename>/dev/da1e</filename>.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Использование утилиты sysinstall</title>
|
||||
|
||||
<para>Вы можете использовать простые меню утилиты
|
||||
<command>/stand/sysinstall</command> для разбиения на разделы и
|
||||
разметки нового диска. Войдите как пользователь
|
||||
<username>root</username> или воспользуйтесь командой
|
||||
<command>su</command>. Запустите команду
|
||||
<command>/stand/sysinstall</command> и войдите в меню
|
||||
<literal>Configure</literal>. Внутри <literal>FreeBSD Configuration
|
||||
Menu</literal>, пролистайте и выберите пункт
|
||||
<literal>Partition</literal>. После этого должен быть выдан список
|
||||
установленных в вашей системе дисков. Если вы не увидите в списке
|
||||
<literal>da1</literal>, то вам нужно повторно проверить физическое
|
||||
подключение и посмотреть вывод команды <command>dmesg</command> в
|
||||
файле <filename>/var/run/dmesg.boot</filename>.</para>
|
||||
|
||||
<para>Выберите <literal>da1</literal>, чтобы войти в <literal>Редактор
|
||||
разделов FDISK</literal>. Выберите <literal>A</literal> для того,
|
||||
чтобы использовать под FreeBSD полностью весь диск. Когда будет
|
||||
задан вопрос о том, хотите ли вы <quote>сохранить совместимость с
|
||||
другими возможными операционными системами в будущем</quote>,
|
||||
ответьте <literal>YES</literal>. Запишите изменения на диск при
|
||||
помощи команды <command>W</command>. А теперь выйдите из редактора
|
||||
FDISK при помощи команды <command>q</command>. В этот момент вам
|
||||
будет задан вопрос о главной загрузочной записи. Так как вы
|
||||
добавляете диск к уже работающей системе, выберите
|
||||
<literal>None</literal>.</para>
|
||||
|
||||
<para>После этого войдите в меню <literal>Disk Label Editor</literal>.
|
||||
Здесь вы создадите традиционные разделы BSD. На диске может быть
|
||||
до восьми разделов, имеющих метки a-h. Некоторые из меток разделов
|
||||
имеют особый смысл. Раздел <literal>a</literal> используется для
|
||||
размещения корневого раздела (<filename>/</filename>). По этой
|
||||
причине только ваш системный диск (например, тот, с которого
|
||||
происходит загрузка), должен иметь раздел <literal>a</literal>.
|
||||
Раздел <literal>b</literal> используется под раздел подкачки, и вы
|
||||
можете иметь много дисков с разделами подкачки. Раздел
|
||||
<literal>c</literal> используется для доступа ко всему диску в
|
||||
режиме эксклюзивного использования или ко всему слайсу FreeBSD при
|
||||
работе в режиме с использованием слайсов. Остальные разделы имеют
|
||||
обычное предназначение.</para>
|
||||
|
||||
<para>Редактор метки диска программы sysinstall использует раздел
|
||||
<literal>e</literal> для некорневого раздела и не для раздела
|
||||
подкачки. Внутри редактора метки диска создайте отдельную файловую
|
||||
систему при помощи команды <command>C</command>. Когда будет задан
|
||||
вопрос о том, будет ли это раздел с файловой системой (FS) или
|
||||
это будет раздел подкачки, выберите <literal>FS</literal> и укажите
|
||||
точку монтирования (например, <filename>/mnt</filename>). При
|
||||
добавлении диска после установки системы, программа sysinstall не
|
||||
будет автоматически создавать записи в файле
|
||||
<filename>/etc/fstab</filename>, поэтому точка монтирования не так уж
|
||||
и важна.</para>
|
||||
|
||||
<para>Теперь вы готовы записать новую метку на диск и создать на нем
|
||||
файловую систему. Сделайте это, нажав клавишу <command>W</command>.
|
||||
Проигнорируйте ошибки от sysinstall о невозможности смонтировать
|
||||
новый раздел. Полностью выйдите из редактора метки диска и из
|
||||
программы sysinstall.</para>
|
||||
|
||||
<para>Последний шаг заключается в редактировании файла
|
||||
<filename>/etc/fstab</filename> и добавлении записи для вашего нового
|
||||
диска.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Использовании утилит командной строки</title>
|
||||
|
||||
<sect3>
|
||||
<title>* Использование слайсов</title>
|
||||
|
||||
<para></para>
|
||||
</sect3>
|
||||
|
||||
<sect3>
|
||||
<title>Выделенный режим</title>
|
||||
|
||||
<para>Если вы не будете использовать новый диск совместно с другой
|
||||
операционной системой, то вы можете использовать режим
|
||||
<literal>эксклюзивного</literal> использования. Отметьте, что этот
|
||||
режим может ввести в заблуждение операционные системы от Microsoft;
|
||||
однако информацию они не разрушат. А вот OS/2 от фирмы IBM будет
|
||||
<quote>забирать себе</quote> любой раздел, который она найдет и не
|
||||
сможет распознать.</para>
|
||||
|
||||
<screen>
|
||||
&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda1 bs=1k count=1</userinput>
|
||||
&prompt.root; <userinput>disklabel -Brw da1 auto</userinput>
|
||||
&prompt.root; <userinput>disklabel -e da1</userinput> # create the `e' partition
|
||||
&prompt.root; <userinput>newfs -d0 /dev/rda1e</userinput>
|
||||
&prompt.root; <userinput>mkdir -p /1</userinput>
|
||||
&prompt.root; <userinput>vi /etc/fstab</userinput> # add an entry for /dev/da1e
|
||||
&prompt.root; <userinput>mount /1</userinput>
|
||||
</screen>
|
||||
|
||||
<para>Альтернативный метод заключается в следующем:</para>
|
||||
|
||||
<screen>
|
||||
&prompt.root; <userinput>dd if=/dev/zero of=/dev/rda1 count=2</userinput>
|
||||
&prompt.root; <userinput>disklabel /dev/rda1 | disklabel -BrR da1 /dev/stdin</userinput>
|
||||
&prompt.root; <userinput>newfs /dev/rda1e</userinput>
|
||||
&prompt.root; <userinput>mkdir -p /1</userinput>
|
||||
&prompt.root; <userinput>vi /etc/fstab</userinput> # add an entry for /dev/da1e
|
||||
&prompt.root; <userinput>mount /1</userinput>
|
||||
</screen>
|
||||
</sect3>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="disks-virtual">
|
||||
<title>Виртуальные диски: сетевые, файловые системы в памяти и на основе
|
||||
файлов
|
||||
Network, Memory, and File-Based Filesystems</title>
|
||||
|
||||
<para>Кроме дисков, которые вы физически устанавливаете в ваш компьютер;
|
||||
дискеты, компакт-диски, винчестеры и так далее, FreeBSD воспринимает и
|
||||
другие типы дисков - <firstterm>виртуальные диски</firstterm>.</para>
|
||||
|
||||
<para>Сюда могут быть отнесены сетевые файловые системы, такие, как
|
||||
<link linkend="nfs">Network Filesystem</link> и Coda, а также файловые
|
||||
системы с организацией в памяти, такие, как <link
|
||||
linkend="disks-md">md</link> и файловые системы, созданные в файле с
|
||||
помощью <link linkend="disks-vnconfig">vnconfig</link>.</para>
|
||||
|
||||
<sect2 id="disks-vnconfig">
|
||||
<title>vnconfig: файловая система в файле</title>
|
||||
|
||||
<para>&man.vnconfig.8; конфигурирует и позволяет использовать дисковые
|
||||
устройства на основе псевдо-устройств vnode.
|
||||
<firstterm>vnode</firstterm> представляет собой файл и отвечает за
|
||||
работу с файлом. Это означает, что &man.vnconfig.8; использует файлы
|
||||
для создания и работы с файловой системой. Одним из возможных
|
||||
способов использования является монтирование образов дискет или
|
||||
образов компакт-дисков, сброшенных в файлы.</para>
|
||||
|
||||
<para>Чтобы смонтировать имеющийся образ файловой системы:</para>
|
||||
|
||||
<example>
|
||||
<title>Использование vnconfig для монтирования имеющегося образа
|
||||
файловой системы</title>
|
||||
|
||||
<screen>
|
||||
&prompt.root; <userinput>vnconfig vn<replaceable>0</replaceable> <replaceable>diskimage</replaceable></userinput>
|
||||
&prompt.root; <userinput>mount /dev/vn<replaceable>0</replaceable>c <replaceable>/mnt</replaceable></userinput>
|
||||
</screen>
|
||||
</example>
|
||||
|
||||
<para>Для создания нового образа файловой системы с помощью
|
||||
vnconfig:</para>
|
||||
|
||||
<example>
|
||||
<title>Создание нового диска в файле с помощью vnconfig</title>
|
||||
|
||||
<screen>
|
||||
&prompt.root; <userinput>dd if=/dev/zero of=<replaceable>newimage</replaceable> bs=1k count=<replaceable>5</replaceable>k</userinput>
|
||||
5120+0 records in
|
||||
5120+0 records out
|
||||
&prompt.root; <userinput>vnconfig -s labels -c vn<replaceable>0</replaceable> <replaceable>newimage</replaceable></userinput>
|
||||
&prompt.root; <userinput>disklabel -r -w vn<replaceable>0</replaceable> auto</userinput>
|
||||
&prompt.root; <userinput>newfs vn<replaceable>0</replaceable>c</userinput>
|
||||
Warning: 2048 sector(s) in last cylinder unallocated
|
||||
/dev/rvn0c: 10240 sectors in 3 cylinders of 1 tracks, 4096 sectors
|
||||
5.0MB in 1 cyl groups (16 c/g, 32.00MB/g, 1280 i/g)
|
||||
super-block backups (for fsck -b #) at:
|
||||
32
|
||||
&prompt.root; <userinput>mount /dev/vn<replaceable>0</replaceable>c <replaceable>/mnt</replaceable></userinput>
|
||||
&prompt.root; <userinput>df <replaceable>/mnt</replaceable></userinput>
|
||||
Filesystem 1K-blocks Used Avail Capacity Mounted on
|
||||
/dev/vn0c 4927 1 4532 0% /mnt
|
||||
</screen>
|
||||
</example>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="disks-md">
|
||||
<title>md: Файловая система в памяти</title>
|
||||
|
||||
<para>md это простой и эффективный способ создания файловых систем в
|
||||
оперативной памяти.</para>
|
||||
|
||||
<para>Просто возьмите файловую систему, которую вы приготовили при
|
||||
помощи, скажем, &man.vnconfig.8; и:</para>
|
||||
|
||||
<example>
|
||||
<title>Диск md в памяти</title>
|
||||
|
||||
<screen>
|
||||
&prompt.root; <userinput>dd if=<replaceable>newimage</replaceable> of=/dev/md<replaceable>0</replaceable></userinput>
|
||||
5120+0 records in
|
||||
5120+0 records out
|
||||
&prompt.root; <userinput>mount /dev/md<replaceable>0c</replaceable> <replaceable>/mnt</replaceable></userinput>
|
||||
&prompt.root; <userinput>df <replaceable>/mnt</replaceable></userinput>
|
||||
Filesystem 1K-blocks Used Avail Capacity Mounted on
|
||||
/dev/md0c 4927 1 4532 0% /mnt</screen>
|
||||
</example>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="quotas">
|
||||
<title>Квотирование дискового пространства</title>
|
||||
|
||||
<para>Квоты - это опциональная возможность операционной системы, которая
|
||||
позволяет ограничивать объем дискового пространства и/или количество
|
||||
файлов для конкретного пользователя или членов определенной группы
|
||||
в рамках одной файловой системы. Чаще всего эта возможность
|
||||
используется в системах разделения времени, когда желательно ограничить
|
||||
количество ресурсов, которые может использовать один пользователь или
|
||||
группа пользователей. Это позволит не допустить ситуации, когда
|
||||
один пользователь заполняет все доступное дисковое пространство.</para>
|
||||
|
||||
<sect2>
|
||||
<title>Настройка вашей системы на использование дисковых квот</title>
|
||||
|
||||
<para>Перед тем, как попытаться использовать дисковые квоты, необходимо
|
||||
убедиться, что квоты включены в вашем ядре. Это делается добавлением
|
||||
следующей строки в конфигурационный файл вашего ядра:</para>
|
||||
|
||||
<programlisting>
|
||||
options QUOTA
|
||||
</programlisting>
|
||||
|
||||
<para>В стандартном ядре <filename>GENERIC</filename> это по умолчанию
|
||||
не включено, так что для использования дисковых квот вам нужно будет
|
||||
настроить, откомпилировать и установить собственное ядро.
|
||||
Пожалуйста, обратитесь к разделу <link
|
||||
linkend="kernelconfig">Настройка ядра FreeBSD</link> за
|
||||
дополнительной информацией о настройке ядра.</para>
|
||||
|
||||
<para>Затем вам потребуется включить квотирование дисков в файле
|
||||
<filename>/etc/rc.conf</filename>. Это делается добавление такой
|
||||
строчки:</para>
|
||||
|
||||
<programlisting>
|
||||
enable_quotas=<quote>YES</quote>
|
||||
</programlisting>
|
||||
|
||||
<para>Для более полного контроля над запуском квотирования имеется
|
||||
дополнительная переменная для настройки. Как правило, при загрузке
|
||||
целостность квот каждой файловой системы проверяется программой
|
||||
<command>quotacheck</command>. При работе программы
|
||||
<command>quotacheck</command> проверяется точное соответствие данных
|
||||
в базе данных квот данным в файловой системе. Это весьма долгий
|
||||
процесс, что отражается на времени загрузки системы. Если вам
|
||||
захочется пропустить этот шаг, то для этого предназначена специальная
|
||||
переменная:</para>
|
||||
|
||||
<programlisting>
|
||||
check_quotas=<quote>NO</quote>
|
||||
</programlisting>
|
||||
|
||||
<para>Если вы работаете с FreeBSD версий до 3.2-RELEASE, то настройка
|
||||
делается проще, и она состоит только из одной переменной. Задайте
|
||||
следующее в вашем файле <filename>/etc/rc.conf</filename>:</para>
|
||||
|
||||
<programlisting>
|
||||
check_quotas=<quote>YES</quote>
|
||||
</programlisting>
|
||||
|
||||
<para>Наконец, вам потребуется отредактировать файл
|
||||
<filename>/etc/fstab</filename> для включения дисковых квот на
|
||||
уровне файловых систем. Это то место, где вы можете включить квоты
|
||||
для пользователей, для групп или для обеих этих категорий для всех
|
||||
ваших файловых систем.</para>
|
||||
|
||||
<para>Для включения пользовательских квот для файловой системы,
|
||||
добавьте параметр <literal>userquota</literal> в поле параметров
|
||||
файловой системы, на которой вы хотите включить квотирование, в файле
|
||||
<filename>/etc/fstab</filename>. Например:</para>
|
||||
|
||||
<programlisting>
|
||||
/dev/da1s2g /home ufs rw,userquota 1 2
|
||||
</programlisting>
|
||||
|
||||
<para>Подобным же образом для включения квотирования на уровне групп,
|
||||
воспользуйтесь параметром <literal>groupquota</literal> вместо
|
||||
ключевого слова <literal>userquota</literal>. Чтобы включить
|
||||
квотирование как для пользователей, так и для групп, измените
|
||||
строчку следующим образом:</para>
|
||||
|
||||
<programlisting>
|
||||
/dev/da1s2g /home ufs rw,userquota,groupquota 1 2
|
||||
</programlisting>
|
||||
|
||||
<para>По умолчанию файлы квот хранятся в корневом каталоге файловой
|
||||
системы в файлах с именами <filename>quota.user</filename> и
|
||||
<filename>quota.group</filename> соответственно для пользовательских
|
||||
и групповых квот. Для получения подробной информации обратитесь к
|
||||
команде <command>man fstab</command>. Хотя эта страница справочника
|
||||
утверждает, что вы можете указать другое местоположение файлов с
|
||||
квотами, этого делать не рекомендуется, потому что различные утилиты
|
||||
для работы с квотами не могут нормально работать в такой
|
||||
ситуации.</para>
|
||||
|
||||
<para>На этом этапе вы должны перезагрузить вашу систему с новым ядром.
|
||||
Скрипт <filename>/etc/rc</filename> автоматически запустит
|
||||
соответствующие команды для создания начальных файлов для всех квот,
|
||||
которые вы создали в файле <filename>/etc/fstab</filename>, так что
|
||||
нет нужды вручную создавать никаких файлов квот нулевой длины.</para>
|
||||
|
||||
<para>При нормальной работе вам не потребуется вручную запускать
|
||||
программы <command>quotacheck</command>, <command>quotaon</command>
|
||||
или <command>quotaoff</command>. Однако вам нужно хотя бы прочесть
|
||||
страницы справочника просто чтобы ознакомиться с их функциями.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Установка квот</title>
|
||||
|
||||
<para>Как только вы настроили вашу систему на использование квот,
|
||||
проверьте, что они действительно были задействованы. Простым
|
||||
способом сделать это является запуск такой команды:</para>
|
||||
|
||||
<screen>
|
||||
&prompt.root; <userinput>quota -v</userinput>
|
||||
</screen>
|
||||
|
||||
<para>Вы должны увидеть однострочную информацию, отражающую
|
||||
использование диска и текущие ограничения для каждой файловой
|
||||
системы, на которой включено квотирование.</para>
|
||||
|
||||
<para>Теперь вы действительно готовы задавать ограничения при помощи
|
||||
команды <command>edquota</command>.</para>
|
||||
|
||||
<para>У вас есть несколько вариантов того, как приводить в действие
|
||||
ограничения по объему дискового пространства, который могут занимать
|
||||
пользователь или группа, а также по количеству файлов, которые они
|
||||
могут создать. Вы можете ограничивать размещение ресурсов на основе
|
||||
объема дискового пространства (квотирование блоков), количества
|
||||
файлов (квотирование inode) или их комбинации. Каждое из этих
|
||||
ограничений, в свою очередь, делится на две категории; мягкие и
|
||||
жесткие ограничения.</para>
|
||||
|
||||
<para>Жесткое ограничение не может быть превышено. Как только
|
||||
пользователь достиг своих ограничений, ресурсы соответствующей
|
||||
файловой системы ему больше выделяться не будут. Например, если
|
||||
пользователь имеет жесткое ограничение в 500 блоков на файловой
|
||||
системе и в текущий момент он использует 490 блоков, то
|
||||
пользователь может получить дополнительно еще 10 блоков. Попытка
|
||||
получить еще 11 блоков окончится неудачно.</para>
|
||||
|
||||
<para>С другой стороны, мягкие ограничения могут быть превышены в
|
||||
течении некоторого периода времени. Этот период времени также
|
||||
называют периодом отсрочки, который по умолчанию равен одной неделе.
|
||||
Если пользователь превышает свое мягкое ограничение в течении периода
|
||||
времени, превышающего отсрочку, то это мягкое ограничение становится
|
||||
жестким и последующее выделение ресурсов будет запрещено. Когда
|
||||
пользователь вернется обратно к отметке, меньшей, чем мягкое
|
||||
ограничение, то период отсрочки будет сброшен.</para>
|
||||
|
||||
<para>Далее приводится пример того, что вы можете наблюдать при
|
||||
запуске команды <command>edquota</command>. Когда вызывается команда
|
||||
<command>edquota</command>, вы оказываетесь в редакторе, заданном
|
||||
переменной переменной окружения <envar>EDITOR</envar>, или в
|
||||
редакторе <command>vi</command>, если переменная
|
||||
<envar>EDITOR</envar> не задана, и можете редактировать квоты.</para>
|
||||
|
||||
<screen>
|
||||
&prompt.root; <userinput>edquota -u test</userinput>
|
||||
</screen>
|
||||
|
||||
<programlisting>
|
||||
Quotas for user test:
|
||||
/usr: blocks in use: 65, limits (soft = 50, hard = 75)
|
||||
inodes in use: 7, limits (soft = 50, hard = 60)
|
||||
/usr/var: blocks in use: 0, limits (soft = 50, hard = 75)
|
||||
inodes in use: 0, limits (soft = 50, hard = 60)
|
||||
</programlisting>
|
||||
|
||||
<para>Для каждой файловой системы, на которой включено квотирование,
|
||||
вы должны увидеть две строки. В одной строке приведены ограничения
|
||||
на блоки, а в другой на количество inode. Например, чтобы увеличить
|
||||
ограничения на количество блоков для пользователей с мягкого
|
||||
ограничения в 50 и жесткого ограничения в 75, на мягкое ограничение
|
||||
в 500 и жесткое ограничение в 600, измените:</para>
|
||||
|
||||
<programlisting>
|
||||
/usr: blocks in use: 65, limits (soft = 50, hard = 75)
|
||||
</programlisting>
|
||||
|
||||
<para>на:</para>
|
||||
|
||||
<programlisting>
|
||||
/usr: blocks in use: 65, limits (soft = 500, hard = 600)
|
||||
</programlisting>
|
||||
|
||||
<para>Новые ограничения вступят в силу после выхода из
|
||||
редактора.</para>
|
||||
|
||||
<para>Иногда желательно установить ограничения квот на некоторый
|
||||
диапазон идентификаторов пользователей. Это можно сделать при
|
||||
помощи параметра <option>-p</option> в команде
|
||||
<command>edquota</command>. Во-первых, установите желаемое
|
||||
ограничение для пользователя, а затем запустите команду
|
||||
<command>edquota -p protouser startuid-enduid</command>. Например,
|
||||
если пользователь <username>test</username> имеет желаемые
|
||||
ограничения, то для дублирования этих ограничений на пользователей с
|
||||
идентификаторами от 10000 до 19999 может быть использована такая
|
||||
команда:</para>
|
||||
|
||||
<screen>
|
||||
&prompt.root; <userinput>edquota -p test 10000-19999</userinput>
|
||||
</screen>
|
||||
|
||||
<para>Обратитесь к <command>man edquota</command> за более подробной
|
||||
информацией.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Проверка ограничений и использования диска</title>
|
||||
|
||||
<para>Для проверки квот и использования дисков вы можете использовать
|
||||
команды <command>quota</command> или <command>repquota</command>.
|
||||
Команда <command>quota</command> может быть использована для проверки
|
||||
квот отдельных пользователей, групп, а также использования дисков.
|
||||
Только администратор системы может проверять квоты и использование
|
||||
диска другими пользователями и группами. Команду
|
||||
<command>repquota</command> можно использовать для получения
|
||||
суммарной статистики всех квот и использования дисков для файловых
|
||||
систем с включенными квотами.</para>
|
||||
|
||||
<para>Далее приведен пример вывода команды <command>quota -v</command>
|
||||
для пользователя, который имеет ограничения на двух файловых
|
||||
системах.</para>
|
||||
|
||||
<programlisting>
|
||||
Disk quotas for user test (uid 1002):
|
||||
Filesystem blocks quota limit grace files quota limit grace
|
||||
/usr 65* 50 75 5days 7 50 60
|
||||
/usr/var 0 50 75 0 50 60
|
||||
</programlisting>
|
||||
|
||||
<para>В этом примере для файловой системы <filename>/usr</filename>
|
||||
пользователь превысил свое мягкое ограничение в 50 блоков на 15
|
||||
блоков и имеет 5 дней до истечения отсрочки. Отметьте знак
|
||||
звездочки <literal>*</literal>, который указывает на превышение
|
||||
пользователем своего ограничения.</para>
|
||||
|
||||
<para>Как правило, файловые системы, на которых пользователь не
|
||||
занимает дискового пространства, не показываются в выводе команды
|
||||
<command>quota</command>, даже если они ему выделена квота на
|
||||
этой файловой системе. При использовании параметра
|
||||
<option>-v</option> эти файловые системы выводятся, как, например,
|
||||
файловая система <filename>/usr/var</filename> в примере выше.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2>
|
||||
<title>Квоты в NFS NFS</title>
|
||||
|
||||
<para>Квоты определяются подсистемой квот на сервере NFS. Даемон
|
||||
&man.rpc.rquotad.8; предоставляет информацию о квотах для программы
|
||||
&man.quota.1; на клиентах NFS, позволяя пользователям на этих машинах
|
||||
смотреть свою статистику о квотах.</para>
|
||||
|
||||
<para>Включите <command>rpc.rquotad</command> в файле
|
||||
<filename>/etc/inetd.conf</filename> следующим образом:</para>
|
||||
|
||||
<programlisting>
|
||||
rquotad/1 dgram rpc/udp wait root /usr/libexec/rpc.rquotad rpc.rquotad
|
||||
</programlisting>
|
||||
|
||||
<para>Теперь перезапустите <command>inetd</command>:</para>
|
||||
|
||||
<screen>
|
||||
&prompt.root; <userinput>kill -HUP `cat /var/run/inetd.pid`</userinput>
|
||||
</screen>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
mode: sgml
|
||||
sgml-declaration: "../chapter.decl"
|
||||
sgml-indent-data: t
|
||||
sgml-omittag: nil
|
||||
sgml-always-quote-attributes: t
|
||||
sgml-parent-document: ("../book.sgml" "part" "chapter")
|
||||
End:
|
||||
-->
|
||||
|
|
@ -2,14 +2,14 @@
|
|||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/install/chapter.sgml,v 1.7 2000/10/05 15:37:42 phantom Exp $
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/install/chapter.sgml,v 1.9 2000/10/24 10:45:19 danfe Exp $
|
||||
Original revision: 1.36
|
||||
-->
|
||||
|
||||
<chapter id="install">
|
||||
<title>Инсталляция FreeBSD</title>
|
||||
|
||||
<para><emphasis>Реструктурировано, исправлено и частично переписано
|
||||
<para><emphasis>Реструктурировал, исправил и частично переписал
|
||||
&a.jim;, январь 2000 г.</emphasis></para>
|
||||
|
||||
<sect1>
|
||||
|
|
@ -79,7 +79,7 @@
|
|||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Если Вы хотите инсталлировать с MS-DOS-партиции, то сначала скачайте программу
|
||||
<para>Если Вы хотите инсталлировать с MS-DOS раздела, то сначала скачайте программу
|
||||
<ulink
|
||||
url="ftp://ftp.FreeBSD.org/pub/FreeBSD/tools/fdimage.exe">fdimage.exe</ulink>
|
||||
(при установке с компакт-диска она лежит в директории
|
||||
|
|
@ -89,7 +89,7 @@
|
|||
<screen><prompt>E:\></prompt> <userinput>tools\fdimage floppies\kern.flp a:</userinput></screen>
|
||||
|
||||
<para>Программа <emphasis>fdimage</emphasis> отформатирует
|
||||
дискету в дисководе<devicename>A:</devicename> и затем
|
||||
дискету в дисководе <devicename>A:</devicename> и затем
|
||||
перенесет на нее <filename>kern.flp</filename>
|
||||
(предполагается, что Вы находитесь непосредственно в
|
||||
директории в дистрибутивом FreeBSD и образа дискет лежат в
|
||||
|
|
@ -142,7 +142,7 @@
|
|||
<para>Если же Ваша система поддерживает загрузку с компакт-дисков, и
|
||||
компакт-диск является загрузочным в соответствии со стандартом El
|
||||
Torito (обратите внимание, что многие старые системы
|
||||
<emphasis>НЕ</emphasis>) поддерживают загрузку с CDROM), то просто
|
||||
<emphasis>НЕ</emphasis> поддерживают загрузку с CDROM), то просто
|
||||
вставьте первый из набора дисков с FreeBSD в привод CDROM и
|
||||
перезагрузите Ваш компьютер. Вы попадете в меню инсталляции
|
||||
непосредственно с компакт-диска.</para>
|
||||
|
|
@ -358,7 +358,7 @@ ftp:*:99:99::0:0:FTP:/cdrom:/nonexistent</programlisting>
|
|||
можно найти в списке <link linkend="install-hw">поддерживаемого
|
||||
оборудования</link>. Если у Вас одна из PCMCIA ethernet карточек,
|
||||
которая поддерживается FreeBSD, проследите, чтобы она была
|
||||
воткнута <emphasis>прежде</emphasis> чем Вы включите свой
|
||||
вставлена <emphasis>прежде</emphasis> чем Вы включите свой
|
||||
компьютер. К сожалению, в настоящее время FreeBSD не поддерживает
|
||||
вставку PCMCIA карточек <quote>на лету</quote>.</para>
|
||||
|
||||
|
|
|
|||
|
|
@ -2,21 +2,21 @@
|
|||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/introduction/chapter.sgml,v 1.2 2000/10/11 17:13:25 phantom Exp $
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/introduction/chapter.sgml,v 1.5 2000/12/17 10:56:34 danfe Exp $
|
||||
Original revision: 1.32
|
||||
-->
|
||||
|
||||
<chapter id="introduction">
|
||||
<title>Введение</title>
|
||||
|
||||
<para><emphasis>Исправлено, реорганизовано и переписано
|
||||
<para><emphasis>Исправил, реорганизовал и частично переписал
|
||||
&a.jim;, 17 января 2000.</emphasis></para>
|
||||
|
||||
<sect1>
|
||||
<title>Краткий обзор</title>
|
||||
|
||||
<para>Спасибо Вам за ваш интерес к FreeBSD! Следующая глава
|
||||
рассказывает о некоторых аспектах проекта FreeBSD, таких как история,
|
||||
<para>Мы благодарим Вас за Ваш интерес к FreeBSD! Следующая глава
|
||||
расскажет Вам о некоторых аспектах проекта FreeBSD, таких как история,
|
||||
цели, модель разработки, и прочее.</para>
|
||||
|
||||
<para>FreeBSD, базирующаяся на операционной системе 4.4BSD-Lite2,
|
||||
|
|
@ -31,7 +31,7 @@
|
|||
</sect1>
|
||||
|
||||
<sect1 id="nutshell">
|
||||
<title>Добро пожаловать в FreeBSD!</title>
|
||||
<title>Добро пожаловать во FreeBSD!</title>
|
||||
|
||||
<para>Если Вы до сих пор читаете это, возможно Вы хотите узнать что
|
||||
такое FreeBSD и что это может сделать для Вас. Если Вы впервые
|
||||
|
|
@ -354,7 +354,7 @@
|
|||
<quote>386BSD Interim</quote>.</para>
|
||||
|
||||
<para>386BSD была операционной системой Била Джоилца, который
|
||||
на тот момент находился строго говоря в состоянии полного
|
||||
на тот момент находился строго говоря, в состоянии полного
|
||||
пренебрежения к ней. Так как patchkit разрастался и его
|
||||
поддержание становилось более неудобным день от дня, мы
|
||||
пришли к единодушному соглашению что что-то нужно делать
|
||||
|
|
@ -364,7 +364,7 @@
|
|||
у проекта без любых ясных комментариев, что должно быть
|
||||
сделано вместо этого.</para>
|
||||
|
||||
<para>Нам не потребовалось много времени, чтоб прийти к решению
|
||||
<para>Нам потребовалось немного времени, чтоб прийти к решению
|
||||
продолжать следовать той цели, даже без поддержки Била,
|
||||
и мы приняли имя <quote>FreeBSD</quote> приобретенное Дэвидом
|
||||
Гринмэном. Наши начальные цели были установлены после консультаций
|
||||
|
|
@ -379,7 +379,7 @@
|
|||
Walnut Creek CDROM, в то время полностью неизвестный проект,
|
||||
вряд ли FreeBSD зашел далеко и так быстро, как сегодня.</para>
|
||||
|
||||
<para>Первым дистрибутивом, распространяемым как на CDROM, как и в сети,
|
||||
<para>Первым дистрибутивом, распространяемым как на CDROM, так и в сети,
|
||||
стал FreeBSD 1.0, выпущенный в декабре 1993 года. Эта версия была
|
||||
выполнена на основе ленты 4.3BSD-Lite (<quote>Net/2</quote>)
|
||||
из Калифорнийского Университета в Беркли, с многочисленными
|
||||
|
|
@ -421,7 +421,7 @@
|
|||
|
||||
<para>Мы выпустили FreeBSD 2.1.5 в августе 1996, и она стала достаточно
|
||||
популярной среди большого количества ISP и коммерческих производителей, но
|
||||
и другие версии из ветки 2.1-STABLE также заслуживаю этого. Это была
|
||||
и другие версии из ветки 2.1-STABLE также заслуживают этого. Это была
|
||||
FreeBSD 2.1.7.1, вышедшая в феврале 1997 и завершившая главную
|
||||
нить разработки 2.1-STABLE. Сейчас в режиме поддержки, только
|
||||
безопасные расширения и прочие критические исправления ошибок
|
||||
|
|
@ -449,7 +449,7 @@
|
|||
&rel.current;-RELEASE.</para>
|
||||
|
||||
<para>Долговременные разработки и проекты продолжаются в ветке
|
||||
5.0-CURRENT, и по ходу разработки будут доступны СНЭПшот релизы
|
||||
5.0-CURRENT, и по ходу разработки будут доступны снэпшот-релизы
|
||||
5.0 на CDROM (и, конечно, в сети).</para>
|
||||
</sect2>
|
||||
|
||||
|
|
|
|||
682
ru_RU.KOI8-R/books/handbook/kerneldebug/chapter.sgml
Normal file
682
ru_RU.KOI8-R/books/handbook/kerneldebug/chapter.sgml
Normal file
|
|
@ -0,0 +1,682 @@
|
|||
<!--
|
||||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/kerneldebug/chapter.sgml,v 1.2 2000/11/10 11:53:52 phantom Exp $
|
||||
|
||||
Original revision: 1.25
|
||||
-->
|
||||
|
||||
<chapter id="kerneldebug">
|
||||
<title>Отладка ядра</title>
|
||||
|
||||
<para><emphasis>Текст предоставили &a.paul; и &a.joerg;</emphasis></para>
|
||||
|
||||
<sect1>
|
||||
<title>Отладка аварийных образов ядра при помощи
|
||||
<command>kgdb</command></title>
|
||||
|
||||
<para>Вот некоторые указания по работе с отладкой ядра с аварийными
|
||||
образами памяти. При этом предполагается, что у вас достаточно места
|
||||
на разделе подкачки для аварийного образа памяти. Если у вас есть
|
||||
несколько разделов подкачки и первый слишком мал для размещения образа
|
||||
памяти, вы можете настроить ядро на использование другого устройства
|
||||
для сброса образа памяти (в строке <literal>config kernel</literal> или
|
||||
указать его при помощи команды &man.dumpon.8;. Лучше всего
|
||||
использовать &man.dumpon.8;, задав переменную
|
||||
<literal>dumpdev</literal> в файле <filename>/etc/rc.conf</filename>.
|
||||
Как правило, вам нужно будет задать одно из устройств подкачки,
|
||||
перечисленных в файле <filename>/etc/fstab</filename>. Сброс образов
|
||||
памяти на устройства, не являющиеся устройствами подкачки, напрмер,
|
||||
ленты, в данный момент не поддерживаются. Настройте ваше ядро при
|
||||
помощи команды <command>config -g</command>. Обратитесь к разделу
|
||||
<link linkend="kernelconfig">Настройка ядра</link> за более подробной
|
||||
информацией о настройке ядра FreeBSD.</para>
|
||||
|
||||
<para>Используйте команду &man.dumpon.8; для указания ядру места, куда
|
||||
нужно помещать образ памяти (отметьте, что это будут сделано после
|
||||
настройки соответствующего раздела как раздел подкачки через
|
||||
&man.swapon.8;). Обычно это делается через
|
||||
<filename>/etc/rc.conf</filename> и <filename>/etc/rc</filename>.
|
||||
Либо вы можете задать устройство для сброса образа памяти явно через
|
||||
параметр <literal>dump</literal> в строке <literal>config</literal>
|
||||
конфигурационного файла вашего ядра. Такой способ использовать не
|
||||
рекомендуется и он должен использоваться, только если вы хотите
|
||||
получать аварийные образы памяти ядра, которое аварийно завершает свою
|
||||
работу при загрузке.</para>
|
||||
|
||||
<note>
|
||||
<para>Далее термин <command>kgdb</command> означает утилиту
|
||||
<command>gdb</command>, которая запущена в <quote>режиме отладки
|
||||
ядра</quote>. Этот режим достигается либо при запуске
|
||||
<command>gdb</command> с параметром <option>-k</option>, либо
|
||||
компоновкой и запуском его под именем <command>kgdb</command>. По
|
||||
умолчанию этого, однако, не делается и эта идея, в общем-то, не
|
||||
поддерживается, потому что разработчикам GNU не нравится, когда их
|
||||
утилиты работают по-другому, будучи вызванными по другому имени. В
|
||||
будущих релизах такая возможность может исчезнуть.</para>
|
||||
</note>
|
||||
|
||||
<tip>
|
||||
<para>Если вы используете FreeBSD версии 3 или более раннюю, вы должны
|
||||
выполнить усечение отладочного ядра командой strip, а не
|
||||
устанавливать большое отладочное ядро:</para>
|
||||
|
||||
<screen>
|
||||
&prompt.root; <userinput>cp kernel kernel.debug</userinput>
|
||||
&prompt.root; <userinput>strip -g kernel</userinput>
|
||||
</screen>
|
||||
|
||||
<para>Этот шаг не так уж и необходим, но рекомендуем. (Во FreeBSD 4
|
||||
и более поздних релизах этот шаг выполняется автоматически в конце
|
||||
процесса построения ядра <command>make</command>.) Когда ядро
|
||||
усечено, автоматически или при помощи команд выше, вы можете
|
||||
установить его обычным образом, набрав <command>make
|
||||
install</command>.</para>
|
||||
|
||||
<para>Заметьте, что в старых версиях FreeBSD (до 3.1, не включая этот
|
||||
релиз), используется ядра в формате a.out, поэтому их таблицы
|
||||
символов должны располагаться постоянно в памяти. С большой таблицей
|
||||
символов в не усеченном отладочном ядре это излишняя трата. Последние
|
||||
релизы FreeBSD используют ядра в формате ELF, где это не является
|
||||
проблемой.</para>
|
||||
</tip>
|
||||
|
||||
<para>Если вы тестируете новое ядро, скажем, набирая имя нового ядра в
|
||||
приглашении загрузчика, но вам нужно загружать и работать с другим
|
||||
ядром, чтобы снова вернуться к нормальному функционированию, загружайте
|
||||
его только в однопользовательском режиме при помощи флага
|
||||
<option>-s</option>, указываемого при загрузке, а затем выполните такие
|
||||
шаги:</para>
|
||||
|
||||
<screen>
|
||||
&prompt.root; <userinput>fsck -p</userinput>
|
||||
&prompt.root; <userinput>mount -a -t ufs</userinput> # so your file system for /var/crash is writable
|
||||
&prompt.root; <userinput>savecore -N /kernel.panicked /var/crash</userinput>
|
||||
&prompt.root; <userinput>exit</userinput> # ...to multi-user
|
||||
</screen>
|
||||
|
||||
<para>Эта последовательность указывает программе &man.savecore.8; на
|
||||
использование другого ядра для извлечения символических имен. Иначе
|
||||
она будет использовать ядро, работающее в данный момент и, скорее
|
||||
всего, ничего не сделает, потому что аварийный образ памяти и символы
|
||||
ядра будут отличаться.</para>
|
||||
|
||||
<para>А теперь, после сброса аварийного дампа, перейдите в каталог
|
||||
<filename>/sys/compile/WHATEVER</filename> и запустите команду
|
||||
<command>kgdb</command>. Из программы <command>kgdb</command> сделайте
|
||||
вот что:
|
||||
|
||||
<screen>
|
||||
<userinput>symbol-file kernel.debug</userinput>
|
||||
<userinput>exec-file /var/crash/kernel.0</userinput>
|
||||
<userinput>core-file /var/crash/vmcore.0</userinput>
|
||||
</screen>
|
||||
|
||||
и вуаля - вы можете отлаживать аварийный дамп, используя исходные
|
||||
тексты ядра точно также, как вы это делаете с любой другой
|
||||
программой.</para>
|
||||
|
||||
<para>Вот журнал команд сеанса работы <command>kgdb</command>,
|
||||
иллюстрирующий эту процедуру. Длинные строки были разорваны для
|
||||
улучшения читабельности и для удобства строки были пронумерованы.
|
||||
Все остальное является трассировкой ошибки, реально возникнувшей во
|
||||
время работы над драйвером консоли pcvt.</para>
|
||||
|
||||
<screen>
|
||||
1:Script started on Fri Dec 30 23:15:22 1994
|
||||
2:&prompt.root; <userinput>cd /sys/compile/URIAH</userinput>
|
||||
3:&prompt.root; <userinput>kgdb kernel /var/crash/vmcore.1</userinput>
|
||||
4:Reading symbol data from /usr/src/sys/compile/URIAH/kernel
|
||||
...done.
|
||||
5:IdlePTD 1f3000
|
||||
6:panic: because you said to!
|
||||
7:current pcb at 1e3f70
|
||||
8:Reading in symbols for ../../i386/i386/machdep.c...done.
|
||||
9:<prompt>(kgdb)</prompt> <userinput>where</userinput>
|
||||
10:#0 boot (arghowto=256) (../../i386/i386/machdep.c line 767)
|
||||
11:#1 0xf0115159 in panic ()
|
||||
12:#2 0xf01955bd in diediedie () (../../i386/i386/machdep.c line 698)
|
||||
13:#3 0xf010185e in db_fncall ()
|
||||
14:#4 0xf0101586 in db_command (-266509132, -266509516, -267381073)
|
||||
15:#5 0xf0101711 in db_command_loop ()
|
||||
16:#6 0xf01040a0 in db_trap ()
|
||||
17:#7 0xf0192976 in kdb_trap (12, 0, -272630436, -266743723)
|
||||
18:#8 0xf019d2eb in trap_fatal (...)
|
||||
19:#9 0xf019ce60 in trap_pfault (...)
|
||||
20:#10 0xf019cb2f in trap (...)
|
||||
21:#11 0xf01932a1 in exception:calltrap ()
|
||||
22:#12 0xf0191503 in cnopen (...)
|
||||
23:#13 0xf0132c34 in spec_open ()
|
||||
24:#14 0xf012d014 in vn_open ()
|
||||
25:#15 0xf012a183 in open ()
|
||||
26:#16 0xf019d4eb in syscall (...)
|
||||
27:<prompt>(kgdb)</prompt> <userinput>up 10</userinput>
|
||||
28:Reading in symbols for ../../i386/i386/trap.c...done.
|
||||
29:#10 0xf019cb2f in trap (frame={tf_es = -260440048, tf_ds = 16, tf_\
|
||||
30:edi = 3072, tf_esi = -266445372, tf_ebp = -272630356, tf_isp = -27\
|
||||
31:2630396, tf_ebx = -266427884, tf_edx = 12, tf_ecx = -266427884, tf\
|
||||
32:_eax = 64772224, tf_trapno = 12, tf_err = -272695296, tf_eip = -26\
|
||||
33:6672343, tf_cs = -266469368, tf_eflags = 66066, tf_esp = 3072, tf_\
|
||||
34:ss = -266427884}) (../../i386/i386/trap.c line 283)
|
||||
35:283 (void) trap_pfault(&frame, FALSE);
|
||||
36:<prompt>(kgdb)</prompt> <userinput>frame frame->tf_ebp frame->tf_eip</userinput>
|
||||
37:Reading in symbols for ../../i386/isa/pcvt/pcvt_drv.c...done.
|
||||
38:#0 0xf01ae729 in pcopen (dev=3072, flag=3, mode=8192, p=(struct p\
|
||||
39:roc *) 0xf07c0c00) (../../i386/isa/pcvt/pcvt_drv.c line 403)
|
||||
40:403 return ((*linesw[tp->t_line].l_open)(dev, tp));
|
||||
41:<prompt>(kgdb)</prompt> <userinput>list</userinput>
|
||||
42:398
|
||||
43:399 tp->t_state |= TS_CARR_ON;
|
||||
44:400 tp->t_cflag |= CLOCAL; /* cannot be a modem (:-) */
|
||||
45:401
|
||||
46:402 #if PCVT_NETBSD || (PCVT_FREEBSD >= 200)
|
||||
47:403 return ((*linesw[tp->t_line].l_open)(dev, tp));
|
||||
48:404 #else
|
||||
49:405 return ((*linesw[tp->t_line].l_open)(dev, tp, flag));
|
||||
50:406 #endif /* PCVT_NETBSD || (PCVT_FREEBSD >= 200) */
|
||||
51:407 }
|
||||
52:<prompt>(kgdb)</prompt> <userinput>print tp</userinput>
|
||||
53:Reading in symbols for ../../i386/i386/cons.c...done.
|
||||
54:$1 = (struct tty *) 0x1bae
|
||||
55:<prompt>(kgdb)</prompt> <userinput>print tp->t_line</userinput>
|
||||
56:$2 = 1767990816
|
||||
57:<prompt>(kgdb)</prompt> <userinput>up</userinput>
|
||||
58:#1 0xf0191503 in cnopen (dev=0x00000000, flag=3, mode=8192, p=(st\
|
||||
59:ruct proc *) 0xf07c0c00) (../../i386/i386/cons.c line 126)
|
||||
60: return ((*cdevsw[major(dev)].d_open)(dev, flag, mode, p));
|
||||
61:<prompt>(kgdb)</prompt> <userinput>up</userinput>
|
||||
62:#2 0xf0132c34 in spec_open ()
|
||||
63:<prompt>(kgdb)</prompt> <userinput>up</userinput>
|
||||
64:#3 0xf012d014 in vn_open ()
|
||||
65:<prompt>(kgdb)</prompt> <userinput>up</userinput>
|
||||
66:#4 0xf012a183 in open ()
|
||||
67:<prompt>(kgdb)</prompt> <userinput>up</userinput>
|
||||
68:#5 0xf019d4eb in syscall (frame={tf_es = 39, tf_ds = 39, tf_edi =\
|
||||
69: 2158592, tf_esi = 0, tf_ebp = -272638436, tf_isp = -272629788, tf\
|
||||
70:_ebx = 7086, tf_edx = 1, tf_ecx = 0, tf_eax = 5, tf_trapno = 582, \
|
||||
71:tf_err = 582, tf_eip = 75749, tf_cs = 31, tf_eflags = 582, tf_esp \
|
||||
72:= -272638456, tf_ss = 39}) (../../i386/i386/trap.c line 673)
|
||||
73:673 error = (*callp->sy_call)(p, args, rval);
|
||||
74:<prompt>(kgdb)</prompt> <userinput>up</userinput>
|
||||
75:Initial frame selected; you cannot go up.
|
||||
76:<prompt>(kgdb)</prompt> <userinput>quit</userinput>
|
||||
77:&prompt.root; <userinput>exit</userinput>
|
||||
78:exit
|
||||
79:
|
||||
80:Script done on Fri Dec 30 23:18:04 1994
|
||||
</screen>
|
||||
|
||||
<para>Комментарии к вышеприведенному журналу:</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>строка 6:</term>
|
||||
|
||||
<listitem>
|
||||
<para>Это дамп, взятый при помощи DDB (смотри ниже), поэтому
|
||||
комментарий к аварийному останову имеет именно вид <quote>because
|
||||
you said to!</quote> и трассировка стека глубока; однако
|
||||
изначальной причиной перехода в DDB была аварийная остановка при
|
||||
возникновению ошибки страницы памяти.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>строка 20:</term>
|
||||
|
||||
<listitem>
|
||||
<para>Это местонахождение функции <function>trap()</function> в
|
||||
трассировке стека.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>строка 36:</term>
|
||||
|
||||
<listitem>
|
||||
<para>Принудительное использование новой границы стека; теперь это
|
||||
не нужно. Теперь предполагается, что границы стека указывают на
|
||||
правое расположение, даже в случае аварийного останова. (У меня
|
||||
нет под рукой новый аварийный дамп <g>, с моим ядром
|
||||
аварийная ситуация не случалась давно.) Глядя на строку
|
||||
исходного кода 403, можно сказать, что весьма вероятно, что либо
|
||||
виноват доступ по указателю <quote>tp</quote>, либо был выход за
|
||||
границы массива.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>строка 52:</term>
|
||||
|
||||
<listitem>
|
||||
<para>Похоже, что виноват указатель, но он является допустимым
|
||||
адресом.</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>строка 56:</term>
|
||||
|
||||
<listitem>
|
||||
<para>Однако, очевидно, что он указывает на мусор, так что мы нашли
|
||||
нашу ошибку! (Для тех, кто не знаком с этой частью кода:
|
||||
<literal>tp->t_line</literal> служит для хранения режима
|
||||
канала консольного устройства, и это должно быть достаточно
|
||||
маленькое целое число.)</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>Отладка аварийного дампа с помощью DDD</title>
|
||||
|
||||
<para>Возможно также и исследование аварийного дампа ядра при помощи
|
||||
такого графического отладчика, как <command>ddd</command>. Добавьте
|
||||
флаг <option>-k</option> к командной строке <command>ddd</command>,
|
||||
которую вы обычно используете для его вызова. Например;</para>
|
||||
|
||||
<screen>
|
||||
&prompt.root; <userinput>ddd -k /var/crash/kernel.0 /var/crash/vmcore.0</userinput>
|
||||
</screen>
|
||||
|
||||
<para>После этого у вас должно получиться исследование аварийного дампа
|
||||
при помощи графического интерфейса <command>ddd</command>.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>Посмертный анализ дампа</title>
|
||||
|
||||
<para>Что делать, если ядро аварийно завершает работу, хотя этого вы не
|
||||
хотели и поэтому командой <command>config -g</command> его не
|
||||
компилировали? Здесь не все еще потеряно. Не паникуйте!</para>
|
||||
|
||||
<para>Конечно, вам нужно включить создание аварийных дампов. Смотрите
|
||||
выше, что вы должны для этого сделать.</para>
|
||||
|
||||
<para>Перейдите в каталог конфигурации ядра
|
||||
(<filename>/usr/src/sys/<replaceable>arch</replaceable>/conf</filename>)
|
||||
и отредактируйте ваш конфигурационный файл. Раскомментируйте (или
|
||||
добавьте, если она не существует) такую строку</para>
|
||||
|
||||
<programlisting>
|
||||
makeoptions DEBUG=-g #Build kernel with gdb(1) debug symbols
|
||||
</programlisting>
|
||||
|
||||
<para>Перестройте ядро. Из-за изменения метки времени в Makefile будут
|
||||
перестроены некоторые другие объектные файлы, например,
|
||||
<filename>trap.o</filename>. К некоторому счастью, добавление опции
|
||||
<option>-g</option> не изменит все и вся в генерируемом коде, так что
|
||||
в конце концов вы получите новое ядро с тем же кодом, что и сбоящее
|
||||
ядро, за исключением наличия отладочной информации. По крайней мере,
|
||||
вы можете сравнить старый и новый размеры ядер командой &man.size.1;.
|
||||
Если они не совпадают, то вам придется отказаться от вашей
|
||||
затеи.</para>
|
||||
|
||||
<para>Исследуйте дамп так, как это описано выше. Отладочной информации
|
||||
может не хватать в некоторых местах, как это можно видеть в трассировке
|
||||
стека примера выше, когда некоторые функции выводятся без номеров строк
|
||||
и списка аргументов. Если вам нужно больше отладочной информации,
|
||||
удалите соответствующие объектные файлы и повторите сеанс работы с
|
||||
<command>kgdb</command>, пока не получите достаточно подробную
|
||||
информацию.</para>
|
||||
|
||||
<para>Не гарантируется, что все это будет работать, однако в большинстве
|
||||
случаев все работает прекрасно.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>Отладка ядра в режиме реального времени с помощью DDB</title>
|
||||
|
||||
<para>Хотя <command>kgdb</command> является отладчиком не реального
|
||||
времени с высокоуровневым пользовательским интерфейсом, есть несколько
|
||||
вещей, которые он сделать не сможет. Самыми важными из них являются
|
||||
точки останова и пошаговое выполнение кода ядра.</para>
|
||||
|
||||
<para>Если вам нужно выполнять низкоуровневую отладку вашего ядра, то на
|
||||
этот случай имеется отладчик реального времени, который называется DDB.
|
||||
Он позволяет устанавливать точки останова, выполнять функции ядра по
|
||||
шагам, исследовать и изменять переменные ядра и прочее. Однако он не
|
||||
может использовать исходные тексты ядра и имеет доступ только к
|
||||
глобальным и статическим символам, а не ко всей отладочной информации,
|
||||
как <command>kgdb</command>.</para>
|
||||
|
||||
<para>Чтобы отконфигурировать ваше ядро для включения DDB, добавьте
|
||||
строчку с параметром
|
||||
|
||||
<programlisting>
|
||||
options DDB
|
||||
</programlisting>
|
||||
|
||||
в ваш конфигурационный файл, и перестройте ядро. (Обратитесь к разделу
|
||||
о <link linkend="kernelconfig">конфигурации ядра</link> для выяснения
|
||||
деталей конфигурации ядра FreeBSD.</para>
|
||||
|
||||
<note>
|
||||
<para>Заметьте, что, если у вас устаревшая версия загрузочных блоков,
|
||||
то отладочная информация может оказаться не загруженной. Обновите
|
||||
блоки загрузки; самые новые загружают символы для DDB
|
||||
автоматически.)</para>
|
||||
</note>
|
||||
|
||||
<para>После того, как ядро с DDB запущено, есть несколько способов войти
|
||||
в DDB. Первый, и самый простой, способ заключается в наборе флага
|
||||
загрузки <option>-d</option> прямо в приглашении загрузчика. Ядро
|
||||
будет запущено в режиме отладки и войдет в DDB до выполнения процедуры
|
||||
распознавания каких бы то ни было устройств. Поэтому вы можете
|
||||
выполнить отладку даже функций распознавания/присоединения
|
||||
устройств.</para>
|
||||
|
||||
<para>Второй способ - это особая комбинация клавиш на клавиатуре, как
|
||||
правило, Ctrl-Alt-ESC. Для системной консоли syscon это может быть
|
||||
переопределено; некоторые из поставляемых раскладок это выполняют, так
|
||||
что присмотритесь. Для последовательных консолей имеется параметр,
|
||||
позволяющий использовать последовательность BREAK на канале консоли для
|
||||
входа в DDB (<literal>options BREAK_TO_DEBUGGER</literal> в
|
||||
конфигурационном файле ядра). По умолчанию этого не делается, так как
|
||||
существует множество паршивых последовательных адаптеров, которые
|
||||
генерируют последовательность BREAK, к примеру, при вытягивании
|
||||
кабеля.</para>
|
||||
|
||||
<para>Третий способ заключается во входе в DDB при возникновении
|
||||
любой аварийной ситуации, если ядро его использует. По этой причине
|
||||
не очень умно конфигурировать ядро с DDB для машины, которая работает
|
||||
без присмотра.</para>
|
||||
|
||||
<para>Команды DDB примерно повторяют некоторые команды
|
||||
<command>gdb</command>. Первым делом вам, наверное, нужно задать точку
|
||||
останова:</para>
|
||||
|
||||
<screen>
|
||||
<userinput>b function-name</userinput>
|
||||
<userinput>b address</userinput>
|
||||
</screen>
|
||||
|
||||
<para>Значения по умолчанию воспринимаются в шестнадцатиричном виде, но
|
||||
чтобы отличать их от имен символов; шестнадцатиричные числа,
|
||||
начинающиеся с букв <literal>a-f</literal>, должны предваряться
|
||||
символами <literal>0x</literal> (это опционально для других чисел).
|
||||
Разрешены простые выражения, например:
|
||||
<literal>function-name + 0x103</literal>.</para>
|
||||
|
||||
<para>Чтобы продолжить работу прерванного ядра, просто наберите:</para>
|
||||
|
||||
<screen><userinput>c</userinput></screen>
|
||||
|
||||
<para>Чтобы получить трассировку стека, задайте:</para>
|
||||
|
||||
<screen><userinput>trace</userinput></screen>
|
||||
|
||||
<note>
|
||||
<para>Заметьте, что при входе в DDB по специальной комбинации, ядро
|
||||
в данный момент обслуживает прерывание, так что трассировка стека
|
||||
может не дать много информации.</para>
|
||||
</note>
|
||||
|
||||
<para>Если вы хотите убрать точку останова, введите</para>
|
||||
|
||||
<screen>
|
||||
<userinput>del</userinput>
|
||||
<userinput>del address-expression</userinput>
|
||||
</screen>
|
||||
|
||||
<para>В первом варианте команда будет исполнена сразу же по достижении
|
||||
точки останова, а текущая точка останова будет удалена. Во второй
|
||||
форме можно удалить любую точку останова, однако вам нужно будет
|
||||
указать ее точный адрес; его можно получить из:</para>
|
||||
|
||||
<screen><userinput>show b</userinput></screen>
|
||||
|
||||
<para>Чтобы выполнить один шаг ядра, попробуйте:</para>
|
||||
|
||||
<screen><userinput>s</userinput></screen>
|
||||
|
||||
<para>При этом будет осуществляться пошаговое выполнение функций, однако
|
||||
вы можете трассировать их с помощью DDB, пока не будет достигнуто
|
||||
соответствие возвращаемому значению:</para>
|
||||
|
||||
<screen><userinput>n</userinput></screen>
|
||||
|
||||
<note>
|
||||
<para>Это отличается от команды <command>next</command> отладчика
|
||||
<command>gdb</command>; это похоже на команду <command>gdb</command>
|
||||
<command>finish</command>.</para>
|
||||
</note>
|
||||
|
||||
<para>Чтобы выводить значения в памяти, используйте, (к примеру):
|
||||
|
||||
<screen>
|
||||
<userinput>x/wx 0xf0133fe0,40</userinput>
|
||||
<userinput>x/hd db_symtab_space</userinput>
|
||||
<userinput>x/bc termbuf,10</userinput>
|
||||
<userinput>x/s stringbuf</userinput>
|
||||
</screen>
|
||||
|
||||
для доступа к данным типа слово/полуслово/байт и вывода в
|
||||
шестнадцатиричном/десятичном/символьном виде. Число после запятой
|
||||
означает счетчик объектов. Чтобы вывести следующие 0x10 объектов,
|
||||
просто укажите:</para>
|
||||
|
||||
<screen><userinput>x ,10</userinput></screen>
|
||||
|
||||
<para>Подобным же образом используйте
|
||||
|
||||
<screen><userinput>x/ia foofunc,10</userinput></screen>
|
||||
|
||||
для дизассемблирования и вывода первых 0x10 инструкций функции
|
||||
<function>foofunc</function> вместе с их адресом относительно
|
||||
начала <function>foofunc</function>.</para>
|
||||
|
||||
<para>Чтобы изменить значения в памяти, используйте команду write:</para>
|
||||
|
||||
<screen>
|
||||
<userinput>w/b termbuf 0xa 0xb 0</userinput>
|
||||
<userinput>w/w 0xf0010030 0 0</userinput>
|
||||
</screen>
|
||||
|
||||
<para>Модификатор команды
|
||||
(<literal>b</literal>/<literal>h</literal>/<literal>w</literal>)
|
||||
указывает на размер записываемых данных, первое следующее за ним
|
||||
выражение является адресом для записи, а оставшаяся часть
|
||||
интерпретируется как данные для записи в доступные области
|
||||
памяти.</para>
|
||||
|
||||
<para>Если вам нужно узнать текущее содержимое регистров,
|
||||
используйте:</para>
|
||||
|
||||
<screen><userinput>show reg</userinput></screen>
|
||||
|
||||
<para>Альтернативно вы можете вывести содержимое одного регистра по
|
||||
команде, скажем,
|
||||
|
||||
<screen><userinput>p $eax</userinput></screen>
|
||||
|
||||
и изменить его по:</para>
|
||||
|
||||
<screen><userinput>set $eax new-value</userinput></screen>
|
||||
|
||||
<para>Если вам нужно вызвать некоторую функцию ядра из DDB, просто
|
||||
укажите:</para>
|
||||
|
||||
<screen><userinput>call func(arg1, arg2, ...)</userinput></screen>
|
||||
|
||||
<para>Будет выведено возвращаемое значение.</para>
|
||||
|
||||
<para>Для вывода суммарной статистики по всем работающим процессам в
|
||||
стиле команды &man.ps.1; воспользуйтесь такой командой:</para>
|
||||
|
||||
<screen><userinput>ps</userinput></screen>
|
||||
|
||||
<para>Теперь вы узнали, почему ядро работает с ошибками и хотите
|
||||
выполнить перезагрузку. Запомните, что в зависимости от влияния
|
||||
предыдущих ошибок, не все части ядра могут работать так, как ожидается.
|
||||
Выполните одно из следующих действий для закрытия и перезагрузки вашей
|
||||
системы:</para>
|
||||
|
||||
<screen><userinput>panic</userinput></screen>
|
||||
|
||||
<para>Это приведет к созданию дампа ядра и перезагрузке, так что позже
|
||||
вы можете проанализировать дамп на более высоком уровне при помощи
|
||||
kgdb. Как правило, эта команда должна следовать за другой командой
|
||||
<command>continue</command>.</para>
|
||||
|
||||
<screen><userinput>call boot(0)</userinput></screen>
|
||||
|
||||
<para>Это может оказаться хорошим способом для корректного закрытия
|
||||
работающей системы, <function>sync()</function> для всех дисков и
|
||||
напоследок перезагрузка. Пока интерфейсы диска и файловой системы
|
||||
в ядре не повреждены, это может быть самым правильным способом закрытия
|
||||
системы.</para>
|
||||
|
||||
<screen><userinput>call cpu_reset()</userinput></screen>
|
||||
|
||||
<para>самый последнее средство при аварии и практически то же самое, что
|
||||
нажатие Большой Красной Кнопки.</para>
|
||||
|
||||
<para>Если вам нужен краткий справочник по командам, просто
|
||||
наберите:</para>
|
||||
|
||||
<screen><userinput>help</userinput></screen>
|
||||
|
||||
<para>Однако настоятельно рекомендуем отпечатать копию страницы
|
||||
справочника по &man.ddb.4; при подготовке к сеансу отладки. Помните,
|
||||
что трудно читать онлайновое руководство при пошаговом выполнении
|
||||
ядра.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>Отладка ядра в режиме реального времени при помощи удаленного
|
||||
GDB</title>
|
||||
|
||||
<para>Эта возможность поддерживается во FreeBSD начиная с версии 2.2,
|
||||
и она на самом деле очень удобна.</para>
|
||||
|
||||
<para>В GDB уже давно имеется поддержка <emphasis>удаленной
|
||||
отладки</emphasis>. Это делается при помощи весьма простого протокола
|
||||
по последовательному каналу. В отличие от других методов, описанных
|
||||
выше, для этого вам требуется наличие двух машин. Одна из них является
|
||||
хостом, предоставляющим ресурсы для отладки, включая все исходные
|
||||
тексты и копию ядра со всеми символами в нем, а другая является целевой
|
||||
машиной, на которой запущена та же копия того же ядра (но без
|
||||
отладочной информации).</para>
|
||||
|
||||
<para>Вы должны настроить исследуемое ядро при помощи команды
|
||||
<command>config -g</command>, включить <option>DDB</option> в
|
||||
конфигурацию и откомпилировать его обычным образом. Это даст большой
|
||||
объем получаемого бинарного файла из-за отладочной информации.
|
||||
Скопируйте это ядро на целевую машину, усеките отладочную информацию
|
||||
командой <command>strip -x</command> и загрузите это ядро с
|
||||
использованием параметра загрузки <option>-d</option>. Подключите
|
||||
последовательный канал целевой машины, имеющий установленные флаги
|
||||
"flags 080" на соответствующем устройстве sio к любому
|
||||
последовательному каналу отладочного хоста. А теперь на отладочной
|
||||
машине перейдите в каталог компиляции целевого ядра и запустите
|
||||
gdb:</para>
|
||||
|
||||
<screen>
|
||||
&prompt.user; <userinput>gdb -k kernel</userinput>
|
||||
GDB is free software and you are welcome to distribute copies of it
|
||||
under certain conditions; type "show copying" to see the conditions.
|
||||
There is absolutely no warranty for GDB; type "show warranty" for details.
|
||||
GDB 4.16 (i386-unknown-freebsd),
|
||||
Copyright 1996 Free Software Foundation, Inc...
|
||||
<prompt>(kgdb)</prompt>
|
||||
</screen>
|
||||
|
||||
<para>Проинициализируйте сеанс удаленной отладки (предполагается, что
|
||||
используется первый последовательный порт) такой командой:</para>
|
||||
|
||||
<screen>
|
||||
<prompt>(kgdb)</prompt> <userinput>target remote /dev/cuaa0</userinput>
|
||||
</screen>
|
||||
|
||||
<para>Теперь на целевом хосте (тот, который перешел в DDB даже до
|
||||
начала процесса обнаружения устройств) наберите:</para>
|
||||
|
||||
<screen>
|
||||
Debugger("Boot flags requested debugger")
|
||||
Stopped at Debugger+0x35: movb $0, edata+0x51bc
|
||||
<prompt>db></prompt> <userinput>gdb</userinput>
|
||||
</screen>
|
||||
|
||||
<para>DDB ответит следующим:</para>
|
||||
|
||||
<screen>Next trap will enter GDB remote protocol mode</screen>
|
||||
|
||||
<para>Каждый раз, когда вы будете набирать <command>gdb</command>, режим
|
||||
будет меняться между удаленным GDB и локальным DDB. Чтобы немедленно
|
||||
вызвать следующее прерывание, просто наберите <command>s</command>
|
||||
(step). Ваш хостирующий GDB получит управление над целевым
|
||||
ядром:</para>
|
||||
|
||||
<screen>
|
||||
Remote debugging using /dev/cuaa0
|
||||
Debugger (msg=0xf01b0383 "Boot flags requested debugger")
|
||||
at ../../i386/i386/db_interface.c:257
|
||||
<prompt>(kgdb)</prompt>
|
||||
</screen>
|
||||
|
||||
<para>Вы можете работать в этом сеансе точно также, как и в любом другом
|
||||
сеансе GDB, включая полный доступ к исходным текстам, запуск его в
|
||||
режиме gud-mode внутри окна Emacs (что дает вам автоматический вывод
|
||||
исходного кода в другом окне Emacs) и тому подобное.</para>
|
||||
|
||||
<para>Удаленный GDB также может использоваться для отладки модулей LKM.
|
||||
Сначала откомпилируйте LKM с отладочной информацией:</para>
|
||||
|
||||
<screen>
|
||||
&prompt.root; <userinput>cd /usr/src/lkm/linux</userinput>
|
||||
&prompt.root; <userinput>make clean; make COPTS=-g</userinput>
|
||||
</screen>
|
||||
|
||||
<para>Затем установите эту версию модуля на целевой машине, загрузите его
|
||||
и воспользуйтесь командой <command>modstat</command> для определения
|
||||
того, куда он был загружен:</para>
|
||||
|
||||
<screen>
|
||||
&prompt.root; <userinput>linux</userinput>
|
||||
&prompt.root; <userinput>modstat</userinput>
|
||||
Type Id Off Loadaddr Size Info Rev Module Name
|
||||
EXEC 0 4 f5109000 001c f510f010 1 linux_mod
|
||||
</screen>
|
||||
|
||||
<para>Возьмите адрес загрузки модуля и добавьте к нему 0x20 (для размера
|
||||
заголовка a.out). Получится адрес, куда был перемещен код модуля.
|
||||
Воспользуйтесь командой <command>add-symbol-file</command> в GDB для
|
||||
указания отладчику на модуль:</para>
|
||||
|
||||
<screen>
|
||||
<prompt>(kgdb)</prompt> <userinput>add-symbol-file /usr/src/lkm/linux/linux_mod.o 0xf5109020</userinput>
|
||||
add symbol table from file "/usr/src/lkm/linux/linux_mod.o" at
|
||||
text_addr = 0xf5109020? (y or n) <userinput>y</userinput>
|
||||
<prompt>(kgdb)</prompt>
|
||||
</screen>
|
||||
|
||||
<para>Теперь вы имеете доступ ко всем символам в LKM.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>Отладка драйвера консоли</title>
|
||||
|
||||
<para>Так как для работы DDB вам требуется драйвер консоли, то в случае
|
||||
неисправностей самого драйвера консоли все становится гораздо сложнее.
|
||||
Вы можете вспомнить об использовании последовательной консоли (либо с
|
||||
исправленными загрузочными блоками, либо при указании флага
|
||||
<option>-h</option> в приглашении <prompt>Boot:</prompt>) и подключить
|
||||
обычный терминал к первому последовательному порту. DDB работает с
|
||||
любым отконфигурированным драйвером консоли, в том числе, конечно же,
|
||||
и с последовательной консолью.</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
mode: sgml
|
||||
sgml-declaration: "../chapter.decl"
|
||||
sgml-indent-data: t
|
||||
sgml-omittag: nil
|
||||
sgml-always-quote-attributes: t
|
||||
sgml-parent-document: ("../book.sgml" "part" "chapter")
|
||||
End:
|
||||
-->
|
||||
177
ru_RU.KOI8-R/books/handbook/kernelopts/chapter.sgml
Normal file
177
ru_RU.KOI8-R/books/handbook/kernelopts/chapter.sgml
Normal file
|
|
@ -0,0 +1,177 @@
|
|||
<!--
|
||||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$FreeBSD: doc/en_US.ISO_8859-1/books/handbook/kernelopts/chapter.sgml,v 1.16 2000/06/14 00:47:36 jim Exp $
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/kernelopts/chapter.sgml,v 1.2 2000/11/10 11:55:24 phantom Exp $
|
||||
-->
|
||||
|
||||
<chapter id="kernelopts">
|
||||
<title>Добавление новых параметров конфигурации ядра</title>
|
||||
|
||||
<para><emphasis>Предоставил &a.joerg;</emphasis></para>
|
||||
|
||||
<note>
|
||||
<para>Перед тем, как читать этот раздел, вы должны усвоить материал
|
||||
раздела о <link linkend="kernelconfig">конфигурации ядра</link>.</para>
|
||||
</note>
|
||||
|
||||
<sect1>
|
||||
<title>Что же такое <emphasis>параметр ядра</emphasis>, в конце
|
||||
концов?</title>
|
||||
|
||||
<para>Использование параметров ядра в основном описано в разделе о <link
|
||||
linkend="kernelconfig-options">конфигурации ядра</link>. Там же
|
||||
имеется описание <quote>устаревших</quote> и параметров <quote>в новом
|
||||
стиле</quote>. Конечной целью является постепенный перевод всех
|
||||
поддерживаемых параметров ядра к новому стилю, так чтобы для тех, кто
|
||||
корректно выполняют команду <command>make depend</command> в каталоге
|
||||
компиляции ядра после запуска &man.config.8;, процесс построения
|
||||
автоматически принимал модифицированные параметры и
|
||||
перекомпилировал только те файлы, которые необходимы. Удаление старого
|
||||
каталога компиляции при каждом перезапуске &man.config.8;, как это
|
||||
еще происходит сейчас, затем может быть убрано.</para>
|
||||
|
||||
<para>В своей основе параметр ядра является не более чем определение
|
||||
макроса препроцессора C для процесса компиляции ядра. Чтобы сделать
|
||||
построение полностью настраиваемым через опции процессом,
|
||||
соответствующая часть исходных текстов ядра (или файла
|
||||
<filename>.h</filename> ядра) должна быть написана с упором на
|
||||
концепцию параметров, то есть чтобы значения, используемые по
|
||||
умолчанию, могли быть переопределены параметрами конфигурации. Это
|
||||
обычно делается примерно так:</para>
|
||||
|
||||
<programlisting>
|
||||
#ifndef THIS_OPTION
|
||||
#define THIS_OPTION (некоторое значение по умолчанию)
|
||||
#endif /* THIS_OPTION */
|
||||
</programlisting>
|
||||
|
||||
<para>Этим способом администратор, задающий другое значение для параметра
|
||||
в своем конфигурационном файле, избегает использования значения по
|
||||
умолчанию и заменяет его новым значением. Более того, новое значение
|
||||
будет подставлено в исходный код во время работы препроцессора, так что
|
||||
это должно быть правильное выражение языка C в контексте использования
|
||||
значения по умолчанию.</para>
|
||||
|
||||
<para>Также возможно создание параметров, которые не принимают
|
||||
определенного значения, а просто включают или выключают некоторую часть
|
||||
кода, обрамляя его в</para>
|
||||
|
||||
<programlisting>
|
||||
#ifdef THAT_OPTION
|
||||
|
||||
[здесь ваш код]
|
||||
|
||||
#endif
|
||||
</programlisting>
|
||||
|
||||
<para>Простое упоминание <literal>THAT_OPTION</literal> в
|
||||
конфигурационном файле (со значением или без него) приведет к включению
|
||||
соответствующего кода.</para>
|
||||
|
||||
<para>Те, кто знаком с языком C, могут сказать, что все может считаться
|
||||
как <quote>config option</quote>, там где есть по крайней мере одна
|
||||
строчка <literal>#ifdef</literal>... Однако вряд ли многие будут
|
||||
писать</para>
|
||||
|
||||
<programlisting>
|
||||
options notyet,notdef
|
||||
</programlisting>
|
||||
|
||||
<para>в своих конфигурационных файлах и потом удивляться, почему
|
||||
компиляция ядра не проходит. <!-- smiley -->:-)</para>
|
||||
|
||||
<para>Более точно, использование уникальных имен для параметров делает
|
||||
очень трудным отслеживание их использования в дереве исходных текстов
|
||||
ядра. В использовании схемы параметров в <emphasis>новом
|
||||
стиле</emphasis> имеется рациональное зерно, когда каждый параметр
|
||||
помещается в отдельный файл <filename>.h</filename> в каталоге
|
||||
компиляции ядра, который по соглашению называется
|
||||
<filename>opt_<replaceable>foo</replaceable>.h</filename>. Таким
|
||||
образом, могут быть применены обычные зависимости в Makefile, и утилита
|
||||
<command>make</command> может определить, что нужно перекомпилировать
|
||||
при изменении определенного параметра.</para>
|
||||
|
||||
<para>Параметры при использовании механизма в старом стиле имеют одно
|
||||
преимущество для локальных изменений или для экспериментальных
|
||||
параметров, которые имеют короткий срок жизни: так как весьма легко
|
||||
добавить новую строку <literal>#ifdef</literal> к исходному коду ядра,
|
||||
то это уже превращается в параметр конфигурации ядра. В таком случае
|
||||
администратор, использующий параметры таким образом, несет
|
||||
ответственность за знание влияния этого параметра (и может быть, за
|
||||
принудительную перекомпиляцию вручную частей ядра). Как только перевод
|
||||
всех поддерживаемых опций будет сделан, программа &man.config.8; будет
|
||||
выдавать предупреждение о не поддерживаемой опции, появившейся в
|
||||
конфигурационном файле, однако она будет включать ее в файл Makefile
|
||||
ядра.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1>
|
||||
<title>И что я должен для этого сделать?</title>
|
||||
|
||||
<para>Во-первых, отредактируйте файл
|
||||
<filename>sys/conf/options</filename> (или
|
||||
<filename>sys/<replaceable><arch></replaceable>/conf/options.<replaceable><arch></replaceable></filename>,
|
||||
например <filename>sys/i386/conf/options.i386</filename>), и выберите
|
||||
файл <filename>opt_<replaceable>foo</replaceable>.h</filename>,
|
||||
в котором лучше всего поместить вашу новую опцию.</para>
|
||||
|
||||
<para>Если имеется что-то, уже похожее на предназначение новой опции,
|
||||
выберите это. Например, опции, изменяющие общее поведение подсистемы
|
||||
SCSI, могут быть помещены в
|
||||
<filename>opt_scsi.h</filename>. По умолчанию простое упоминание опции
|
||||
в соответствующем файле опций, скажем, <literal>FOO</literal>, приводит
|
||||
к тому, что ее значение помещается в соответствующий файл
|
||||
<filename>opt_foo.h</filename>. Это может быть переопределено в
|
||||
правой части правила указанием другого имени файла.</para>
|
||||
|
||||
<para>Если файла
|
||||
<filename>opt_<replaceable>foo</replaceable>.h</filename> для
|
||||
предполагаемой новой опции еще нет, придумайте новое имя. Сделайте его
|
||||
значимым и прокомментируйте новый раздел в файле
|
||||
<filename>options[<replaceable>.<arch></replaceable>]</filename>.
|
||||
Утилита &man.config.8; автоматически воспримет изменения и создаст
|
||||
этот файл при следующем своем запуске. Большинство опций должно
|
||||
оказаться в заголовочном файле..</para>
|
||||
|
||||
<para>Размещение слишком большого количества опций в одном файле
|
||||
<filename>opt_<replaceable>foo</replaceable>.h</filename> приведет к
|
||||
перестроению слишком большого количества файлов ядра при изменении
|
||||
одной из опций в конфигурационном файле.</para>
|
||||
|
||||
<para>Наконец, определите, какие файлы ядра зависят от новой опции. Если
|
||||
только вы не только что придумали вашу опцию и она еще нигде не
|
||||
упоминается, то команда
|
||||
<screen>
|
||||
&prompt.user; <userinput>find /usr/src/sys -type f | xargs fgrep NEW_OPTION</userinput>
|
||||
</screen>
|
||||
вам поможет ее найти. Сделайте это и отредактируйте все эти файлы, а
|
||||
также добавьте <programlisting>#include "opt_foo.h"</programlisting>
|
||||
<emphasis>вверху</emphasis> до всех строк
|
||||
<literal>#include <xxx.h></literal>. Эта последовательность
|
||||
очень важна, так как опции могут переопределять значения по умолчанию
|
||||
из обычных включаемых файлов, если эти значения по умолчанию даются в
|
||||
форме <programlisting> #ifndef NEW_OPTION #define NEW_OPTION (что-то)
|
||||
#endif</programlisting> в обычном заголовке.</para>
|
||||
|
||||
<para>Добавление опции, которая переопределяет что-то в системном
|
||||
заголовочном файле (то есть файле, находящемся в каталоге
|
||||
<filename>/usr/include/sys/</filename>), практически всегда ошибочно.
|
||||
<filename>opt_<replaceable>foo</replaceable>.h</filename> не может быть
|
||||
включен в те файлы, потому что это изменит заголовки более серьезно,
|
||||
но если он не включен, то в местах его включения может получиться
|
||||
рассогласованность значений для этой опции. Да, такие прецеденты имеют
|
||||
место и сейчас, но это их не оправдывает.</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
mode: sgml
|
||||
sgml-declaration: "../chapter.decl"
|
||||
sgml-indent-data: t
|
||||
sgml-omittag: nil
|
||||
sgml-always-quote-attributes: t
|
||||
sgml-parent-document: ("../book.sgml" "part" "chapter")
|
||||
End:
|
||||
-->
|
||||
|
|
@ -2,14 +2,14 @@
|
|||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml,v 1.2 2000/10/05 15:38:51 phantom Exp $
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml,v 1.3 2000/10/26 00:44:43 danfe Exp $
|
||||
Original revision: 1.32
|
||||
-->
|
||||
|
||||
<chapter id="linuxemu">
|
||||
<title>òÁÂÏÔÁ Ó ÐÒÉÌÏÖÅÎÉÑÍÉ, ÎÁÐÉÓÁÎÎÙÍÉ ÄÌÑ Linux</title>
|
||||
|
||||
<para><emphasis>Реструктурировано, и частично дополнено &a.jim;, 22 марта
|
||||
<para><emphasis>òÅÓÔÒÕËÔÕÒÉÒÏ×ÁÌ É ÞÁÓÔÉÞÎÏ ÄÏÐÏÌÎÉÌ &a.jim;, 22 ÍÁÒÔÁ
|
||||
2000. ïÒÉÇÉÎÁÌØÎÁÑ ×ÅÒÓÉÑ &a.handy; É &a.rich;</emphasis></para>
|
||||
|
||||
<sect1>
|
||||
|
|
|
|||
473
ru_RU.KOI8-R/books/handbook/mail/chapter.sgml
Normal file
473
ru_RU.KOI8-R/books/handbook/mail/chapter.sgml
Normal file
|
|
@ -0,0 +1,473 @@
|
|||
<!--
|
||||
The FreeBSD Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/mail/chapter.sgml,v 1.5 2000/11/10 11:57:28 phantom Exp $
|
||||
Original revision: 1.20
|
||||
-->
|
||||
|
||||
<chapter id="mail">
|
||||
<title>Электронная почта</title>
|
||||
|
||||
<para><emphasis>Переписал &a.jim;, 2 декабря 1999 г. Оригинальная
|
||||
версия: &a.wlloyd;.</emphasis></para>
|
||||
|
||||
<sect1>
|
||||
<title>Краткий обзор</title>
|
||||
|
||||
<para>Электронная почта является на сегодняшний день одним из самых
|
||||
популярных средств связи. Миллионы людей используют ее каждый день, и
|
||||
их число растет. И если Вы читаете этот текст, то, вероятно, тоже
|
||||
пользуетесь услугами электронной почты, и у Вас даже не один почтовый
|
||||
ящик.</para>
|
||||
|
||||
<para>Настройке электронной почты посвящено немало страниц многочисленных
|
||||
<link linkend="bibliography">системных руководств</link>, так что у
|
||||
Вас не должно возникнуть проблем с настройкой почтового сервера.</para>
|
||||
|
||||
<para>Возможно, при настройке сервера Вам понадобится также настроить
|
||||
сервер доменных имен (Domain Name Server, DNS). В этом случае,
|
||||
обязательно прочитайте файл <filename>/etc/namedb</filename> и
|
||||
страницу руководства по команде &man.named.8;.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="mail-using">
|
||||
<title>Использование электронной почты</title>
|
||||
|
||||
<para>За отправку/получение почты отвечают четыре программы (сервиса):
|
||||
<link linkend="mail-mua">пользовательский почтовый клиент</link>,
|
||||
<link linkend="mail-mta">почтовый сервер (демон)</link>, <link
|
||||
linkend="mail-dns">сервер DNS</link>, <link linkend="mail-receive">POP
|
||||
или IMAP демон</link>.</para>
|
||||
|
||||
<sect2 id="mail-mua">
|
||||
<title>Пользовательский почтовый клиент</title>
|
||||
|
||||
<para>Обычно, это программа типа <application>mutt</application>,
|
||||
<application>pine</application>, <application>elm</application>, и
|
||||
<application>mail</application>, а также программы с графическим
|
||||
интерфейсом, такие, как <application>balsa</application> или
|
||||
<application>xfmail</application>, или интегрированные приложения
|
||||
(например, какой-либо WWW браузер типа Netscape). Все эти программы
|
||||
общаются с локальным <link linkend="mail-host">почтовым
|
||||
сервером</link>, вызывая какой-либо демон, или напрямую по протоколу
|
||||
TCP.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="mail-mta">
|
||||
<title>Почтовый демон</title>
|
||||
|
||||
<para>Обычно это <application>sendmail</application> (поставляется
|
||||
вместе с FreeBSD), однако, им может быть любая из нижеперечисленных
|
||||
программ: <application>qmail</application>,
|
||||
<application>postfix</application> или
|
||||
<application>exim</application>. Остальные менее
|
||||
распространены.</para>
|
||||
|
||||
<para>Почтовый демон выполняет только две функции: принимает входящую
|
||||
почту и отправляет исходящую. Чтобы забирать/отправлять почту по
|
||||
протоколам POP или IMAP, нужен специальный дополнительный <link
|
||||
linkend="mail-receive">демон</link>.</para>
|
||||
|
||||
<para>Имейте ввиду, что старые версии
|
||||
<application>sendmail</application> имели серьезные проблемы с
|
||||
безопасностью, поэтому старайтесь всегда использовать последнюю
|
||||
версию. Это правило, кстати, справедливо в отношении практически
|
||||
любых программных продуктов.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="mail-dns">
|
||||
<title>Email и DNS</title>
|
||||
|
||||
<para>Служба имен доменов (Domain Name System, DNS) и соответствующий
|
||||
ей демон <command>named</command> играют важную роль в доставке
|
||||
почты. DNS содержит базу данных соответствия между именем домена и
|
||||
IP адресом, и между именем домена и почтовым сервером. IP адрес
|
||||
задается в записи A. Запись MX (Mail eXchanger) указывает
|
||||
компьютер, который обрабатывает корреспонденцию для данного домена.
|
||||
Если для Вашего хоста запись MX отсутствует, почта будет
|
||||
доставляться непосредственно на Ваш хост.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="mail-receive">
|
||||
<title>Получение почты</title>
|
||||
|
||||
<para>Полученную корреспонденцию почтовый сервер сохраняет для
|
||||
последующего чтения. Вы можете читать почту непосредственно на
|
||||
сервере, или забирать ее по протоколам POP или IMAP.</para>
|
||||
|
||||
<para>Чтобы настроить POP или IMAP сервер, нужно сделать две
|
||||
вещи:</para>
|
||||
|
||||
<procedure>
|
||||
<step>
|
||||
<para>Поставить POP или IMAP сервер из <ulink
|
||||
url="../ports/mail.html">коллекции портов</ulink>.</para>
|
||||
</step>
|
||||
|
||||
<step>
|
||||
<para>Прописать в файле <filename>/etc/inetd.conf</filename>
|
||||
POP или IMAP демон.</para>
|
||||
</step>
|
||||
</procedure>
|
||||
</sect2>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="mail-trouble">
|
||||
<title>Поиск и устранение неисправностей</title>
|
||||
|
||||
<para>Вот несколько часто задаваемых вопросов и ответов на них, взятых,
|
||||
в основном, из <ulink url="../FAQ/">FAQ</ulink>.</para>
|
||||
|
||||
<qandaset>
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>Почему я должен использовать FQDN для хостов вне моей подсети?</para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
<para>Вы, видимо, обнаружили, что хост, к которому Вы обратились,
|
||||
оказался на самом деле в другом домене; например, если Вы
|
||||
находитесь в домене <hostid role="fqdn">foo.bar.edu</hostid> и
|
||||
хотите обратиться к хосту <hostid>mumble</hostid> в домене <hostid
|
||||
role="domainname">bar.edu</hostid>, то должны указать его полное
|
||||
доменное имя, <hostid role="fqdn">mumble.bar.edu</hostid>, а не
|
||||
просто <hostid>mumble</hostid>.</para>
|
||||
|
||||
<para>Традиционно, ресолверы (распознаватели) BSD BIND позволяли это
|
||||
делать. Однако, текущая версия <application>BIND</application>,
|
||||
поставляемая с FreeBSD, больше не добавляет имена доменов,
|
||||
отличающихся от того, в котором Вы находитесь, для не полностью
|
||||
указанных имен хостов. То есть, имя <hostid>mumble</hostid> будет
|
||||
опознан как <hostid role="fqdn">mumble.foo.bar.edu</hostid> или
|
||||
будет искаться в корневом домене.</para>
|
||||
|
||||
<para>Это отличается от предыдущего поведения, при котором поиск
|
||||
продолжался в доменах <hostid
|
||||
role="domainname">mumble.bar.edu</hostid> и <hostid
|
||||
role="domainname">mumble.edu</hostid>. Если Вам интересны причины
|
||||
объявления такого поведения плохой практикой и даже ошибкой в
|
||||
безопасности, обратитесь к RFC 1535.</para>
|
||||
|
||||
<para>Хорошим решением будет поместить строку
|
||||
|
||||
<programlisting>
|
||||
search foo.bar.edu bar.edu</programlisting>
|
||||
|
||||
вместо ранее используемой:
|
||||
|
||||
<programlisting>
|
||||
domain foo.bar.edu</programlisting>
|
||||
|
||||
в файл <filename>/etc/resolv.conf</filename>. Однако
|
||||
удостоверьтесь, что порядок поиска не нарушает <quote>границ
|
||||
полномочий между локальным и внешним администрирования</quote>, в
|
||||
терминологии RFC 1535.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>Sendmail выдает ошибку <errorname>mail loops back to
|
||||
myself</errorname></para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
<para>В FAQ по sendmail дан следующий ответ:</para>
|
||||
|
||||
<programlisting>
|
||||
* Выдаются сообщения <quote>Local configuration error</quote>, например:
|
||||
|
||||
553 relay.domain.net config error: mail loops back to myself
|
||||
554 <user@domain.net>... Local configuration error
|
||||
|
||||
Как можно решить эту проблему?
|
||||
|
||||
Согласно записям MX, почта для домена <hostid
|
||||
role="domainname">domain.net</hostid> перенаправляется на хост
|
||||
<hostid>relay.domain.net</hostid>, однако последний не распознается как
|
||||
<hostid role="domainname">domain.net</hostid>. Добавьте <hostid
|
||||
role="domainname">domain.net</hostid> в файл
|
||||
<filename>/etc/sendmail.cw</filename> (если Вы используете
|
||||
FETURE(use_cw_file)) или добавьте <quote>Cw domain.net</quote> в файл
|
||||
<filename>/etc/sendmail.cf</filename>.</programlisting>
|
||||
|
||||
<para>Текущая версия этого FAQ больше не поставляется вместе с
|
||||
sendmail. Однако, этот документ регулярно помещается в
|
||||
конференциях comp.mail.sendmail, comp.mail.misc, comp.mail.smail,
|
||||
comp.answers и news.answers. Вы можете получить копию по
|
||||
электронной почте, послав запрос, содержащий команду <quote>send
|
||||
usenet/news.answers/mail/sendmail-faq</quote> в теле письма, по
|
||||
адресу <email>mail-server@rtfm.mit.edu</email>.</para>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
|
||||
<qandaentry>
|
||||
<question>
|
||||
<para>Как работать с электронной почтой при коммутируемом соединении
|
||||
с Интернет?</para>
|
||||
</question>
|
||||
|
||||
<answer>
|
||||
<para>Вы можете подключить к Интернет FreeBSD машину в локальной
|
||||
сети, которая будет <quote>промежуточным звеном</quote> в доставке
|
||||
Вашей почты. Для этого существует по крайней мере два способа.
|
||||
Или, в качестве альтернативы, Вы можете воспользоваться
|
||||
UUCP.</para>
|
||||
|
||||
<para>Прежде всего, Вам необходимо убедиться, что провайдер
|
||||
обеспечивает дополнительный MX-сервис для Вашего домена,
|
||||
например:</para>
|
||||
|
||||
<programlisting>
|
||||
bigco.com. MX 10 bigco.com.
|
||||
MX 20 smalliap.com.</programlisting>
|
||||
|
||||
<para>Только один хост должен быть указан в качестве последнего
|
||||
получателя (добавьте запись <literal>Cw bigco.com</literal> в файл
|
||||
<filename>/etc/sendmail.cf</filename> на машине
|
||||
<hostid>bigco.com</hostid>).</para>
|
||||
|
||||
<para>Когда программа <command>sendmail</command> (со стороны
|
||||
отправителя) <quote>захочет</quote> доставить почту, она
|
||||
попытается установить Интернет-соединение через модем. Скорее
|
||||
всего, ей это не удастся (в произвольный момент времени Вы,
|
||||
вероятнее всего, не будете подключены к Интернет), и она
|
||||
автоматически перейдет ко второму серверу, т.е. Вашему провайдеру
|
||||
Интернет, который, в свою очередь, будет пытаться установить
|
||||
соединение в Вашим компьютером каждые (<literal>sendmail_flags =
|
||||
-bd -q15m</literal> в файле <filename>/etc/rc.conf</filename>) 15
|
||||
минут, чтобы доставить почту.</para>
|
||||
|
||||
<para>Вы можете воспользоваться следующим сценарием, чтобы забирать
|
||||
почту каждый раз, когда Вы входите в систему.</para>
|
||||
|
||||
<programlisting>
|
||||
#!/bin/sh
|
||||
# Put me in /usr/local/bin/pppbigco
|
||||
( sleep 60 ; /usr/sbin/sendmail -q ) &
|
||||
/usr/sbin/ppp -direct pppbigco</programlisting>
|
||||
|
||||
<para>Если же Вы хотите написать отдельный пользовательский скрипт,
|
||||
лучше воспользоваться командой <command>sendmail
|
||||
-qRbigco.com</command> вместо вышеприведенного сценария, так как в
|
||||
этом случае вся почта в очереди для хоста
|
||||
<hostid>bigco.com</hostid> будет обработана немедленно.</para>
|
||||
|
||||
<para>Рассмотрим эту ситуацию подробнее.</para>
|
||||
|
||||
<para>Вот пример сообщения от &a.isp;.</para>
|
||||
|
||||
<programlisting>
|
||||
|
||||
> мы предоставляем вторичный MX для наших клиентов. Вы соединяетесь
|
||||
> с нашим сервером несколько раз в день чтобы забрать почту для Вашего
|
||||
> первичного (главного) MX (мы не соединяемся с ним каждый раз, когда
|
||||
> приходит новая почта для его доменов). Далее, sendmail отправляет
|
||||
> почту, находящуюся в очереди каждые 30 минут, и клиент должен быть
|
||||
> подключен к Интернет в течении 30 минут, чтобы удостовериться, что
|
||||
> вся почта <quote>ушла</quote> на основной MX-сервер.
|
||||
>
|
||||
> Может быть, есть какая-либо команда, которая заставит sendmail
|
||||
> немедленно отправить все почту, находящуюся в очереди? Естественно,
|
||||
> пользователи не обладают какими-либо повышенными привилегиями на
|
||||
> нашем сервере.
|
||||
|
||||
В секции <quote>privacy flags</quote> файла
|
||||
<filename>sendmail.cf</filename>, определяется опция
|
||||
<option>Opgoaway,restrictqrun</option>
|
||||
|
||||
Уберите <literal>restrictqrun</literal>, чтобы разрешить рядовым
|
||||
пользователям инициировать работу с очередью. Вам также может понадобиться
|
||||
изменить порядок MX-серверов. Так, если Вы являетесь первым (основным) MX-сервером, укажите:
|
||||
|
||||
# If we are the best MX for a host, try directly instead of generating
|
||||
# local config error.
|
||||
OwTrue
|
||||
|
||||
Таким образом, удаленный хост будет доставлять почту непосредственно к Вам,
|
||||
не пытаясь установить соединение с клиентом. Затем уже Вы, в свою очередь,
|
||||
отсылаете ее клиенту. Удостоверьтесь, что в DNS есть записи про
|
||||
<quote>customer.com</quote> и <quote>hostname.customer.com</quote>. Просто
|
||||
добавьте запись A в DNS для <quote>customer.com</quote>.</programlisting>
|
||||
</answer>
|
||||
</qandaentry>
|
||||
</qandaset>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="mail-advanced">
|
||||
<title>Настройка почтового сервера для обслуживания всего домена</title>
|
||||
|
||||
<sect2 id="mail-config">
|
||||
<title>Базовая конфигурация</title>
|
||||
|
||||
<para>Изначально, Вы можете отправлять почту <quote>во внешний
|
||||
мир</quote> если у Вас правильно составлен файл
|
||||
<filename>/etc/resolv.conf</filename> или у Вас запущен свой сервер
|
||||
имен. Если Вы хотите, чтобы почта, предназначенная для хоста в
|
||||
Вашем домене, доставлялась по назначению, есть два пути:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Запустите свой собственный сервер DNS, тем самым организовав
|
||||
собственный домен, например, <hostid
|
||||
role="domainname">FreeBSD.org</hostid></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Удостоверьтесь, что Вы получаете почту, предназначенную для
|
||||
Вашего хоста. То есть, почта должна приходить на доменное имя
|
||||
Вашей машины. Например, <hostid
|
||||
role="fqdn">example.FreeBSD.org</hostid>.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>В любом случае, чтобы почта всегда приходила на Ваш хост, Вам
|
||||
нужно иметь постоянный (статический) IP адрес (а не, например,
|
||||
PPP-соединение). Если Вы находитесь за брандмауэром, то последний
|
||||
должен пропускать SMTP-пакеты.</para>
|
||||
|
||||
<para>Если Вы хотите, чтобы почта приходила непосредственно на Ваш
|
||||
хост:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Удостоверьтесь, что запись MX в DNS соответствует IP адресу
|
||||
Вашего хоста хоста.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Или для Вашего хоста вообще отсутствует MX-запись.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Выполнение любого из перечисленных условий обеспечит доставку
|
||||
почты для Вашего хоста.</para>
|
||||
|
||||
<para>Попробуйте это:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>hostname</userinput>
|
||||
example.FreeBSD.org
|
||||
&prompt.root; <userinput>host example.FreeBSD.org</userinput>
|
||||
example.FreeBSD.org has address 204.216.27.XX</screen>
|
||||
|
||||
<para>Если Вы это видите, то можно без проблем посылать почту на
|
||||
<email>yourlogin@example.FreeBSD.org</email>.</para>
|
||||
|
||||
<para>Однако, если Вы видите это:</para>
|
||||
|
||||
<screen>&prompt.root; <userinput>host example.FreeBSD.org</userinput>
|
||||
example.FreeBSD.org has address 204.216.27.XX
|
||||
example.FreeBSD.org mail is handled (pri=10) by hub.FreeBSD.org</screen>
|
||||
|
||||
<para>то вся почта, посланная на <hostid
|
||||
role="fqdn">example.FreeBSD.org</hostid> будет собираться на
|
||||
<hostid>hub</hostid> (для того же пользователя), вместо того, чтобы
|
||||
быть отосланной непосредственно на Ваш хост.</para>
|
||||
|
||||
<para>Эта информация обрабатывается Вашим DNS сервером. Соответствующая
|
||||
запись DNS, указывающая, через какой хост будет проходить Ваша
|
||||
почта, называется MX (от англ. <emphasis>M</emphasis>ail
|
||||
e<emphasis>X</emphasis>changer). Если для хоста отсутствует такая
|
||||
запись, почта будет прихоть прямо на этот хост.</para>
|
||||
|
||||
<para>Допустим, что запись MX для хоста <hostid
|
||||
role="fqdn">freefall.FreeBSD.org</hostid> в какой-то момент
|
||||
выглядела так:</para>
|
||||
|
||||
<programlisting>
|
||||
freefall MX 30 mail.crl.net
|
||||
freefall MX 40 agora.rdrop.com
|
||||
freefall MX 10 freefall.FreeBSD.org
|
||||
freefall MX 20 who.cdrom.com</programlisting>
|
||||
|
||||
<para>Вы видите, что для хоста <hostid>freefall</hostid> существуют
|
||||
несколько MX-записей. Запись с наименьшим номером соотвествует
|
||||
хосту, на который в конце-концов попадет почта для
|
||||
<hostid>freefall</hostid>; другие будут временно сохранять почту для
|
||||
<hostid>freefall</hostid>, если тот по какой-либо причине
|
||||
недоступен.</para>
|
||||
|
||||
<para>Чтобы альтернативные MX-хосты использовались наиболее
|
||||
эффективно, они должны быть независимо подключены к Интернет. Ваш
|
||||
провайдер (или дружественный сайт) скорее всего без проблем сможет
|
||||
оказать подобные услуги.</para>
|
||||
</sect2>
|
||||
|
||||
<sect2 id="mail-domain">
|
||||
<title>Почта для Вашего домена</title>
|
||||
|
||||
<para>Вам может понадобиться создать почтовый сервер, который будет
|
||||
<quote>перехватывать</quote> почту, адресованную рабочим станциям в
|
||||
Вашем домене. Затем пользователи будут забирать почту либо
|
||||
непосредственно с сервера, либо по протоколам POP или IMAP.</para>
|
||||
|
||||
<para>Чтобы облегчить себе (и другим) жизнь, создайте на обеих машинах
|
||||
аккаунты с одинаковыми именами пользователей, например, с помощью
|
||||
команды <command>adduser</command>.</para>
|
||||
|
||||
<para>Сервер, который Вы будете использовать в качестве почтового,
|
||||
должен быть объявлен таковым для каждой машины в домене. Вот
|
||||
фрагмент примерной конфигурации:</para>
|
||||
|
||||
<programlisting>
|
||||
example.FreeBSD.org A 204.216.27.XX ; Рабочая станция
|
||||
MX 10 hub.FreeBSD.org ; Почтовый шлюз</programlisting>
|
||||
|
||||
<para>Таким образом, вся корреспонденция, адресованная рабочей
|
||||
станции, будет обрабатываться Вашим почтовым сервером, независимо от
|
||||
того, что указано в A-записи.</para>
|
||||
|
||||
<para>Все это можно реализовать только в том случае, если Вы
|
||||
используете сервер DNS. Если Вы по каким-либо причинам не имеете
|
||||
возможности установить свой собственный сервер имен, Вам нужно
|
||||
поговорить с Вашим провайдером услуг Интернет о предоставлении
|
||||
сервиса DNS для Вас.</para>
|
||||
|
||||
<para>Если Вы хотите поддерживать несколько виртуальных почтовых
|
||||
серверов, Вам может пригодиться следующая информация. Допустим, что
|
||||
Ваш клиент зарезервировал домен, например, <hostid
|
||||
role="domainname">customer1.org</hostid>, и Вам требуется, чтобы
|
||||
почта, предназначенная для <hostid
|
||||
role="domainname">customer1.org</hostid> приходила на Ваш хост,
|
||||
например, <hostid role="fqdn">mail.myhost.com</hostid>. В таком
|
||||
случае, DNS должен выглядеть так:</para>
|
||||
|
||||
<programlisting>
|
||||
customer1.org MX 10 mail.myhost.com</programlisting>
|
||||
|
||||
<para>Заметьте, что если Вам требуется только получать почту для
|
||||
домена, соответствующая A-запись <emphasis>не</emphasis>
|
||||
нужна.</para>
|
||||
|
||||
<note>
|
||||
<para>Помните, что если Вы попытаетесь каким-либо образом обратиться
|
||||
к хосту <hostid role="domainname">customer1.org</hostid>, у Вас
|
||||
вряд ли что-либо получится, если нет A-записи для этого
|
||||
хоста.</para>
|
||||
</note>
|
||||
|
||||
<para>Последнее, что Вы должны сделать – это сказать программе
|
||||
<application>sendmail</application>, для каких доменов и/или хостов
|
||||
она должна принимать почту. Это можно сделать несколькими
|
||||
способами:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Добавьте названия этих хостов в файл
|
||||
<filename>/etc/sendmail.cw</filename>, если Вы используете
|
||||
<literal>FEATURE(use_cw_file)</literal>. Если у Вас sendmail
|
||||
версии 8.10 или выше, то можно отредактировать файл
|
||||
<filename>/etc/mail/local-host-names</filename>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Добавьте строку <literal>Cwyour.host.com</literal> в файл
|
||||
<filename>/etc/sendmail.cf</filename> или
|
||||
<filename>/etc/mail/sendmail.cf</filename> (если у Вас sendmail
|
||||
версии 8.10 или более поздней).</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect2>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
|
@ -2,8 +2,8 @@
|
|||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml,v 1.3 2000/10/05 15:40:54 phantom Exp $
|
||||
Original revision: 1.62
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml,v 1.4 2000/11/10 14:42:32 phantom Exp $
|
||||
Original revision: 1.66
|
||||
-->
|
||||
|
||||
<appendix id="mirrors">
|
||||
|
|
@ -774,6 +774,11 @@
|
|||
<para><ulink
|
||||
url="ftp://ftp4.uk.FreeBSD.org/pub/FreeBSD/">ftp://ftp4.uk.FreeBSD.org/pub/FreeBSD/</ulink></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><ulink
|
||||
url="ftp://ftp5.uk.FreeBSD.org/pub/FreeBSD/">ftp://ftp5.uk.FreeBSD.org/pub/FreeBSD/</ulink></para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
|
@ -1481,6 +1486,12 @@
|
|||
<para>cvsup7.FreeBSD.org (ÏÔ×ÅÔÓÔ×ÅÎÎÙÊ
|
||||
<email>jdp@FreeBSD.org</email>), ÛÔÁÔ ÷ÁÛÉÎÇÔÏÎ</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>cvsup8.FreeBSD.org (maintainer
|
||||
<email>hostmaster@bigmirror.com</email>), Washington
|
||||
state</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
|
@ -1512,6 +1523,19 @@
|
|||
Ë ÜËÓÐÏÒÔÕ ÉÚ óûá.</para>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>äÁÎÉÑ</term>
|
||||
|
||||
<listitem>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>cvsup.dk.FreeBSD.org (ÏÔ×ÅÔÓÔ×ÅÎÎÙÊ
|
||||
<email>jesper@skriver.dk</email>)</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>çÅÒÍÁÎÉÑ</term>
|
||||
|
||||
|
|
@ -1529,6 +1553,29 @@
|
|||
</itemizedlist>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>United Kingdom</term>
|
||||
|
||||
<listitem>
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>cvsup.uk.FreeBSD.org (maintainer
|
||||
<email>joe@pavilion.net</email>)</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>cvsup2.uk.FreeBSD.org (maintainer
|
||||
<email>brian@FreeBSD.org</email>)</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>cvsup3.uk.FreeBSD.org (maintainer
|
||||
<email>ftp-admin@plig.net</email>)</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
</variablelist>
|
||||
|
||||
<para>óÌÅÄÕÀÝÉÅ <application>CVSup</application> ÓÅÒ×ÅÒÁ ÓÐÅÃÉÁÌØÎÏ
|
||||
|
|
|
|||
File diff suppressed because it is too large
Load diff
431
ru_RU.KOI8-R/books/handbook/policies/chapter.sgml
Normal file
431
ru_RU.KOI8-R/books/handbook/policies/chapter.sgml
Normal file
|
|
@ -0,0 +1,431 @@
|
|||
<!--
|
||||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/policies/chapter.sgml,v 1.1 2000/11/12 13:32:19 andy Exp $
|
||||
|
||||
Original revision: 1.18
|
||||
-->
|
||||
|
||||
<chapter id="policies">
|
||||
<title>Рекомендации и требования к исходному коду</title>
|
||||
|
||||
<para><emphasis>Текст предоставил &a.phk;.</emphasis></para>
|
||||
|
||||
<para>В этой главе описываются различные рекомендации и требования, которые
|
||||
должны соблюдаться в дереве исходных текстов FreeBSD.</para>
|
||||
|
||||
<sect1 id="policies-maintainer">
|
||||
<title><makevar>MAINTAINER</makevar> в make-файлах</title>
|
||||
|
||||
<para>Июнь 1996.</para>
|
||||
|
||||
<para>Если некоторая часть дистрибутива FreeBSD поддерживается некоторым
|
||||
человеком или группой людей, они могут сообщить об этом миру, добавив
|
||||
строчку
|
||||
|
||||
<programlisting>
|
||||
MAINTAINER= email-addresses</programlisting>
|
||||
|
||||
в файл <filename>Makefile</filename>, соответствующий этой части
|
||||
исходного кода.</para>
|
||||
|
||||
<para>Смысл этого в следующем:</para>
|
||||
|
||||
<para>Сопровождающий владеет кодом и отвечает за него. Это означает, что
|
||||
он несет ответственность за исправление ошибок и закрывает сообщения о
|
||||
проблемах, имеющих отношение к этой части кода, а в случае программного
|
||||
обеспечения, взятого из третьих источников, соответственно отвечает за
|
||||
отслеживание новых версий.</para>
|
||||
|
||||
<para>Изменения в каталогах, для которых известен сопровождающий, прежде
|
||||
чем они будут внесены, должны быть посланы ему на рассмотрение. Только
|
||||
если сопровождающий не отвечает в течение достаточно большого периода
|
||||
времени на несколько посланий по электронной почте, разрешается внести
|
||||
изменения без участия сопровождающего. Однако рекомендуется, чтобы вы
|
||||
попытались передать изменения на рассмотрение кому-либо еще, если это
|
||||
вообще возможно.</para>
|
||||
|
||||
<para>Конечно же, нельзя назначать человека или группу лиц
|
||||
сопровождающими, если они не согласны выполнять эту работу. С другой
|
||||
стороны, необязательно это должен быть конкретный коммиттер, это может
|
||||
быть и группа людей.</para>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="policies-contributed">
|
||||
<title>Программное обеспечение третьих сторон</title>
|
||||
|
||||
<para><emphasis>Текст предоставили &a.phk; и &a.obrien;. </emphasis></para>
|
||||
|
||||
<para>Июнь 1996.</para>
|
||||
|
||||
<para>Некоторые части дистрибутива FreeBSD состоят из программного
|
||||
обечпечения, которое сопровождается вне проекта FreeBSD. По
|
||||
историческим причинам мы называем такое программное обеспечение
|
||||
<emphasis>контрибуцированным</emphasis> (contributed), или третьих
|
||||
сторон. Примерами этого могут служить утилиты perl, gcc и
|
||||
patch.</para>
|
||||
|
||||
<para>За последние несколько лет для работы с таким программным
|
||||
обеспечением использовались различные методы, и все они имели свои
|
||||
достоинства и недостатки. Абсолютно подходящего метода так и не
|
||||
нашлось.</para>
|
||||
|
||||
<para>По этой причине после некоторых дебатов был выбран и признан
|
||||
<quote>официальным</quote> один из этих методов, который необходимо
|
||||
применять в будущем при импортировании такого рода программного
|
||||
обеспечения. Более того, настоятельно рекомендуется с течением времени
|
||||
перевести существующее программное обеспечение третьих сторон на этот
|
||||
метод, так как он имеет значительные преимущества перед старым методом,
|
||||
включая возможность легкого получения diff-файлов относительно
|
||||
<quote>официальных</quote> версий исходных текстов кем угодно (даже
|
||||
не имеющим доступа к cvs). Это делает данный метод гораздо проще
|
||||
в использовании при необходимости выдачи изменений изначальным
|
||||
разработчикам такого программного обеспечения.</para>
|
||||
|
||||
<para>В конце концов, однако, это касается тех, кто делает реальную
|
||||
работу. Если использование этой модели в конкретном случае не подходит
|
||||
для пакета, с которым работает человек, могут быть сделаны и
|
||||
исключения только с согласия основной команды разработчиков и при общем
|
||||
одобрении других разработчиков. Возможность сопровождения пакета в
|
||||
будущем будет являться ключевым моментом при принятии решений.</para>
|
||||
|
||||
<note>
|
||||
<para>Из-за досадных ограничений в дизайне формата файлов RCS и
|
||||
использовании веток поставщика в CVS, мелкие, тривиальные и/или
|
||||
косметические изменения <emphasis>сильно не рекомендуется</emphasis>
|
||||
в файлах, которые все еще отслеживаются в ветке поставщика. Это
|
||||
касается и <quote>исправления орфографических ошибок</quote> как
|
||||
относящихся к категории <quote>косметических</quote> и избегаемых
|
||||
для файлов с версиями 1.1.x.x. Рост объема хранилища, вызванный
|
||||
изменением в один символ, может оказаться весьма большим.</para>
|
||||
</note>
|
||||
|
||||
<para>В качестве примера того, как работает эта модель, будем
|
||||
использовать встраиваемый язык программирования
|
||||
<application>TCL</application>:</para>
|
||||
|
||||
<para>Каталог <filename>src/contrib/tcl</filename> содержит исходные
|
||||
тексты пакета в том виде, в котором они распространяются его
|
||||
создателями. Части, которые полностью не применимы во FreeBSD, могут
|
||||
быть удалены. В случае Tcl подкаталоги <filename>mac</filename>,
|
||||
<filename>win</filename> и <filename>compat</filename> были удалены
|
||||
перед операцией импортирования</para>
|
||||
|
||||
<para>Каталог <filename>src/lib/libtcl</filename> содержит только файл
|
||||
<filename>Makefile</filename> "в стиле bmake", который использует
|
||||
стандартные правила <filename>bsd.lib.mk</filename> make-файла для
|
||||
построения библиотеки и установки документации.</para>
|
||||
|
||||
<para>В каталоге <filename>src/usr.bin/tclsh</filename> размещаются
|
||||
make-файлы в стиле bmake, которые отвечают за построение и установку
|
||||
программы <command>tclsh</command> и связанных с ней справочных
|
||||
страниц при помощи стандартных правил из
|
||||
<filename>bsd.prog.mk</filename>.</para>
|
||||
|
||||
<para>Каталог <filename>src/tools/tools/tcl_bmake</filename> содержит
|
||||
несколько shell-скриптов, которые могут помочь при обновлении
|
||||
программного обеспечения tcl. Они не являются частью строящегося и
|
||||
исталлируемого программного обеспечения.</para>
|
||||
|
||||
<para>Здесь важно то, что каталог <filename>src/contrib/tcl</filename>
|
||||
создавался в соответствии с правилами: Предполагается, что он содержит
|
||||
исходнве тексты в том виде, в котором они распространяются (в
|
||||
соответствующей ветви поставщика CVS и без расширения ключевых слов
|
||||
RCS) с максимально малым количеством изменений, специфичных для
|
||||
FreeBSD. Утилита 'easy-import' на машине freefall поможет в
|
||||
импортировании, но если есть сомнения по поводу выполнения этой
|
||||
операции, то обязательно спросите совета и не действуйте слепо в
|
||||
расчете на то, что <quote>все сработает</quote>. CVS не прощает ошибок
|
||||
импортирования и для ликвидации последствий больших ошибок требуются
|
||||
значительные усилия.</para>
|
||||
|
||||
<para>Из-за ранее отмеченных ограничений дизайна веток поставщиков в CVS
|
||||
требуется, чтобы <quote>официальные</quote> патчи от разработчика
|
||||
были сначала применены к распространяемым исходным текстам, а затем
|
||||
результат снова импортирован в ветку поставщика. Официальные патчи
|
||||
никогда не должны применяться к версии, извлеченной из хранилища
|
||||
FreeBSD, а затем "коммититься", так как это привдет к рассинхронизации
|
||||
дерева производителя и усложнит импортирование будущих версий, так как
|
||||
возникнут конфликты.</para>
|
||||
|
||||
<para>Так как многие пакеты содержат файлы, имеющие значение при
|
||||
обеспечении совместимости с другими, отличными от FreeBSD архитектурами
|
||||
и окружениями, то разрешается удалять части дистрибутивного дерева,
|
||||
не представляющие интереса для FreeBSD в целях уменьшения занимаемого
|
||||
дискового пространства. Файлы, содержащие замечания о юридических
|
||||
правах и информацию о релизе, касающуюся остальных файлов, удаляться
|
||||
<emphasis>не</emphasis> должны.</para>
|
||||
|
||||
<para>Если это видится легким, то файлы <filename>Makefile</filename> в
|
||||
стиле <command>bmake</command> могут быть сгенерированы из
|
||||
дистрибутивного дерева автоматически некоторой утилитой, чем-то, что
|
||||
позволит еще проще обновляться до новой версии. Если это будет
|
||||
сделано, то обязательно поместите эту утилиту (если необходимо) в
|
||||
каталог <filename>src/tools</filename> вместе с самим портом, чтобы
|
||||
она была доступна будущим сопровождающим лицам.</para>
|
||||
|
||||
<para>В каталог <filename>src/contrib/tcl</filename> должен быть добавлен
|
||||
файл <filename>FREEBSD-upgrade</filename>, в котором нужно перечислить
|
||||
такие вещи:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Какие файлы были оставлены</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Где был взят оригинальный дистрибутив и/или на каком основном
|
||||
официальном сайте он находится.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Куда посылать патчи для разработчиков пакета</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Возможно, обзор сделанных изменений, специфичных для
|
||||
FreeBSD.</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>Однако, пожалуйста, не импортируйте
|
||||
<filename>FREEBSD-upgrade</filename> вместе с исходными текстами
|
||||
этого программного обеспечения. Вместо этого вы должны выполнить
|
||||
команды <command>cvs add FREEBSD-upgrade ; cvs ci</command> после
|
||||
первоначального импортирования. Ниже дается пример описания из
|
||||
каталога <filename>src/contrib/cpio</filename>:</para>
|
||||
|
||||
<programlisting>
|
||||
This directory contains virgin sources of the original distribution files
|
||||
on a "vendor" branch. Do not, under any circumstances, attempt to upgrade
|
||||
the files in this directory via patches and a cvs commit. New versions or
|
||||
official-patch versions must be imported. Please remember to import with
|
||||
"-ko" to prevent CVS from corrupting any vendor RCS Ids.
|
||||
|
||||
For the import of GNU cpio 2.4.2, the following files were removed:
|
||||
|
||||
INSTALL cpio.info mkdir.c
|
||||
Makefile.in cpio.texi mkinstalldirs
|
||||
|
||||
To upgrade to a newer version of cpio, when it is available:
|
||||
1. Unpack the new version into an empty directory.
|
||||
[Do not make ANY changes to the files.]
|
||||
|
||||
2. Remove the files listed above and any others that don't apply to
|
||||
FreeBSD.
|
||||
|
||||
3. Use the command:
|
||||
cvs import -ko -m 'Virgin import of GNU cpio v<version>' \
|
||||
src/contrib/cpio GNU cpio_<version>
|
||||
|
||||
For example, to do the import of version 2.4.2, I typed:
|
||||
cvs import -ko -m 'Virgin import of GNU v2.4.2' \
|
||||
src/contrib/cpio GNU cpio_2_4_2
|
||||
|
||||
4. Follow the instructions printed out in step 3 to resolve any
|
||||
conflicts between local FreeBSD changes and the newer version.
|
||||
|
||||
Do not, under any circumstances, deviate from this procedure.
|
||||
|
||||
To make local changes to cpio, simply patch and commit to the main
|
||||
branch (aka HEAD). Never make local changes on the GNU branch.
|
||||
|
||||
All local changes should be submitted to "cpio@gnu.ai.mit.edu" for
|
||||
inclusion in the next vendor release.
|
||||
|
||||
obrien@FreeBSD.org - 30 March 1997
|
||||
</programlisting>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="policies-encumbered">
|
||||
<title>Нежелательные файлы</title>
|
||||
|
||||
<para>Иногда может быть необходимо включить некоторый нежелатеьный для
|
||||
нас файл в дерево исходных текстов FreeBSD. Например, если устройство
|
||||
требует загрузки в него некоторого маленького двоичного кода перед тем,
|
||||
как устройство заработает, и мы не имеем исходных текстов этого кода,
|
||||
то говорится, что двоичный файл является нежелательным. Для включения
|
||||
нежелательных файлов в дерево исходных текстов FreeBSD имеются
|
||||
следующие соглашения.</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Любой файл, интерпретируемый или выполняемый системным(и) CPU,
|
||||
не в форме исходного кода, является нежелательным.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Любой файл с лицензией, ограничивающей более, чем BSD или GNU,
|
||||
является нежелательным.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Файл, содержащий загружаемые двоичные данные, используемые
|
||||
аппаратным обеспечением, не являются нежелательными, если только
|
||||
к нему не применимы условия (1) или (2). Он должен быть сохранен в
|
||||
нейтральном к архитектуре формате ASCII (рекомендуется применить
|
||||
утилиты file2c или uuencode).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Люой нежелательный файл требует особое согласие со стороны
|
||||
<link linkend="staff-core">основной команды разработчиков</link> до
|
||||
того, как он будет добавлен в хранилище CVS.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Нежелательные файлы помещаются в каталог
|
||||
<filename>src/contrib</filename> или
|
||||
<filename>src/sys/contrib</filename>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Части одного модуля должны храниться вместе. Нет необходимости
|
||||
разбивать их, если только нет совместного использования с кодом,
|
||||
не являющимся нежелательным.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Объектные файлы именуются
|
||||
<filename><replaceable>arch</replaceable>/<replaceable>filename</replaceable>.o.uu></filename>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Файлы ядра;</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para>Должны всегда упоминаться в
|
||||
<filename>conf/files.*</filename> (для упрощения
|
||||
построения).</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Должны всегда присутствовать в <filename>LINT</filename>,
|
||||
но <link linkend="staff-core">основная команда
|
||||
разработчиков</link> решает в каждом конкретном случае, должны
|
||||
ли они быть раскомментированы или нет. Конечно, позже <link
|
||||
linkend="staff-core">основная команда разработчиков</link>
|
||||
может изменить свое решение.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Вопрос о вхождении в состав релиза решается <link
|
||||
linkend="staff-who">инженером, ответственным за
|
||||
релиз</link>.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Файлы уровня пользователя;</para>
|
||||
|
||||
<orderedlist>
|
||||
<listitem>
|
||||
<para><link linkend="staff-core">Основная команда
|
||||
разработчиков</link> решает, должен ли код стать частью
|
||||
выполнения команды <command>make world</command>.</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para><link linkend="staff-who">Релиз-инженер</link> решает,
|
||||
войдут ли они в релиз.</para>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</listitem>
|
||||
</orderedlist>
|
||||
</sect1>
|
||||
|
||||
<sect1 id="policies-shlib">
|
||||
<title>Динамические библиотеки</title>
|
||||
|
||||
<para><emphasis>Текст предоставили &a.asami;, &a.peter;, и &a.obrien; 9
|
||||
декабря 1996.</emphasis></para>
|
||||
|
||||
<para>Если вы добавляете поддержку динамических библиотек к порту или
|
||||
другой части программного обеспечения, которая этой возможностью не
|
||||
обладает, то номера версий должны назначаться по нижеследующим
|
||||
правилам. Как правило, получающиеся номера не имеют ничего общего с
|
||||
номером релиза программного обеспечения.</para>
|
||||
|
||||
<para>При построении динамической библиотеки используются три
|
||||
принципа:</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>Начинаем с <literal>1.0</literal></para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Если есть изменение, которое имеет обратную совместимость,
|
||||
увеличиваем младший номер версии (заметьте, что системы ELF его
|
||||
игнорируют)</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>Если есть изменение, не соблюдающее совместимость, увеличиваем
|
||||
старший номер версии</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
|
||||
<para>К примеру, добавление функций и исправление ошибок приводит к
|
||||
увеличению младшего номера версии, а удаление функций, изменение
|
||||
синтаксиса вызова функции и тому подобные изменения приводят к
|
||||
изменению старшего номера версии.</para>
|
||||
|
||||
<para>Следуйте схеме нумерации версий в форме старший.младший
|
||||
(<replaceable>x</replaceable>.<replaceable>y</replaceable>). Наш
|
||||
динамический загрузчик формата a.out не умеет нормально работать с
|
||||
номерами версий в форме
|
||||
<replaceable>x</replaceable>.<replaceable>y</replaceable>.<replaceable>z</replaceable>.
|
||||
Любой номер версии после <replaceable>y</replaceable> (то есть третье
|
||||
число) полностью игнорируется при сравнении номеров версий динамических
|
||||
библиотек для определения того, с какой библиотекой осуществлять
|
||||
компоновку. Если есть две динамические библиотеки, отличающиеся только
|
||||
<quote>микро</quote>-номером версии, то <command>ld.so</command> будет
|
||||
осуществлять компоновку с наибольшим номером. Другими словами: если
|
||||
вы компонуете с <filename>libfoo.so.3.3.3</filename>, то компоновщик
|
||||
запишет в заголовках только <literal>3.3</literal> и будет выполнять
|
||||
компоновку с любой библиотекой, начинающейся с
|
||||
<replaceable>libfoo.so.3</replaceable>.<replaceable>(все, что >=
|
||||
3)</replaceable>.<replaceable>(наибольшее из
|
||||
доступного)</replaceable>.</para>
|
||||
|
||||
<note>
|
||||
<para><command>ld.so</command> всегда будет использовать наибольшую
|
||||
<quote>младшую</quote> версию. Иными словами: он будет предпочитать
|
||||
использовать <filename>libc.so.2.2</filename>, а не
|
||||
<filename>libc.so.2.0</filename>, даже если программа изначально была
|
||||
скомпонована с <filename>libc.so.2.0</filename>.</para>
|
||||
</note>
|
||||
|
||||
<para>Вдобавок наш динамический компоновщик ELF совсем не работает с
|
||||
младшими версиями. Однако все же нужно указывать старший и младший
|
||||
номер версии, а наши файлы <filename>Makefile</filename> "сделают все
|
||||
как нужно" в зависимости от типа системы.</para>
|
||||
|
||||
<para>Для библиотек не в составе портов, имеется наше соглашение на
|
||||
изменение номера версии динамической библиотеки только один раз между
|
||||
релизами. Кроме того, есть договоренность на изменение старшего
|
||||
номера динамической библиотеки только один раз между главными релизами
|
||||
ОС. А именно: X.0 на (X+1).0. Когда вы делаете изменение в системной
|
||||
библиотеке, которое требует увеличения номера версии, посмотрите
|
||||
журналы коммитов изменений в файле <filename>Makefile</filename>.
|
||||
Коммиттер отвечает за то, что первое такое изменение с момента релиза
|
||||
приведет к обновлению номера версии динамической библиотеки в файле
|
||||
<filename>Makefile</filename>, а при других последующих изменениях
|
||||
этого бы не делалось.</para>
|
||||
</sect1>
|
||||
</chapter>
|
||||
|
||||
<!--
|
||||
Local Variables:
|
||||
mode: sgml
|
||||
sgml-declaration: "../chapter.decl"
|
||||
sgml-indent-data: t
|
||||
sgml-omittag: nil
|
||||
sgml-always-quote-attributes: t
|
||||
sgml-parent-document: ("../book.sgml" "part" "chapter")
|
||||
End:
|
||||
-->
|
||||
2747
ru_RU.KOI8-R/books/handbook/security/chapter.sgml
Normal file
2747
ru_RU.KOI8-R/books/handbook/security/chapter.sgml
Normal file
File diff suppressed because it is too large
Load diff
|
|
@ -2,8 +2,8 @@
|
|||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/staff/chapter.sgml,v 1.4 2000/10/05 15:59:18 phantom Exp $
|
||||
Original revision: 1.114
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/staff/chapter.sgml,v 1.9 2000/11/23 17:33:22 phantom Exp $
|
||||
Original revision: 1.178
|
||||
-->
|
||||
|
||||
<!--
|
||||
|
|
@ -20,8 +20,8 @@
|
|||
<sect1 id="staff-core">
|
||||
<title>Core çÒÕÐÐÁ FreeBSD</title>
|
||||
|
||||
<para>Core çÒÕÐÐÁ FreeBSD ÐÒÅÄÓÔÁ×ÌÑÅÔ ÓÏÂÏÊ “óÏ×ÅÔ
|
||||
äÉÒÅËÔÏÒÏ×”, ÏÔ×ÅÔÓÔ×ÅÎÎÙÈ ÚÁ ÒÅÛÅÎÉÅ ×ÏÐÒÏÓÏ× Ó×ÑÚÁÎÎÙÈ
|
||||
<para>Core çÒÕÐÐÁ FreeBSD ÐÒÅÄÓÔÁ×ÌÑÅÔ ÓÏÂÏÊ <quote>óÏ×ÅÔ
|
||||
äÉÒÅËÔÏÒÏ×</quote>, ÏÔ×ÅÔÓÔ×ÅÎÎÙÈ ÚÁ ÒÅÛÅÎÉÅ ×ÏÐÒÏÓÏ× Ó×ÑÚÁÎÎÙÈ
|
||||
ÏÂÝÉÍÉ ÃÅÌÑÍÉ ÐÒÏÅËÔÁ É ÅÇÏ ÒÕËÏ×ÏÄÓÔ×ÏÍ É ÒÕËÏ×ÏÄÓÔ×Ï <link
|
||||
linkend="staff-who">ÏÔÄÅÌØÎÙÈ ÎÁÐÒÁ×ÌÅÎÉÊ</link> ÒÁÚ×ÉÔÉÑ ÐÒÏÅËÔÁ
|
||||
FreeBSD.</para>
|
||||
|
|
@ -33,22 +33,6 @@
|
|||
<para>&a.asami;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.jmb;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.ache;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.bde;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.gibbs;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.dg;</para>
|
||||
</listitem>
|
||||
|
|
@ -58,19 +42,11 @@
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.phk;</para>
|
||||
<para>&a.grog;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.rich;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.gpalmer;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.jdp;</para>
|
||||
<para>&a.imp;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
|
@ -78,22 +54,22 @@
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.sos;</para>
|
||||
<para>&a.msmith;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.rwatson;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.peter;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.wollman;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.joerg;</para>
|
||||
</listitem>
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
||||
<!--
|
||||
This list is sorted by last name, not by entity or tenure.
|
||||
-->
|
||||
|
||||
<sect1 id="staff-committers">
|
||||
<title>òÁÚÒÁÂÏÔÞÉËÉ FreeBSD</title>
|
||||
|
|
@ -103,18 +79,30 @@
|
|||
þÌÅÎÙ Core çÒÕÐÐÙ ÔÁËÖÅ Ñ×ÌÑÀÔÓÑ ÒÁÚÒÁÂÏÔÞÉËÁÍÉ.</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>&a.akiyama;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.jmas;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.will;</para>
|
||||
<para>&a.will;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.ugen;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.toshi;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.babkin;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.dbaker;</para>
|
||||
</listitem>
|
||||
|
|
@ -122,11 +110,15 @@
|
|||
<listitem>
|
||||
<para>&a.jhb;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.mbarkah;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.dougb;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.stb;</para>
|
||||
</listitem>
|
||||
|
|
@ -142,31 +134,51 @@
|
|||
<listitem>
|
||||
<para>&a.jb;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.nbm;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.jmb;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.torstenb;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.wilko;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.jake;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.dburr;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.adrian;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.charnier;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.jon;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.luoqi;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.ache;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.ejc;</para>
|
||||
</listitem>
|
||||
|
|
@ -176,17 +188,17 @@
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.gclarkii;</para>
|
||||
<para>&a.cjh;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.archie;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.chris;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.alc;</para>
|
||||
</listitem>
|
||||
|
|
@ -195,6 +207,10 @@
|
|||
<para>&a.cracauer;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.dec;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.adam;</para>
|
||||
</listitem>
|
||||
|
|
@ -202,15 +218,23 @@
|
|||
<listitem>
|
||||
<para>&a.bsd;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.jwd;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.dillon;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.mdodd;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.gad;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.dufault;</para>
|
||||
</listitem>
|
||||
|
|
@ -247,6 +271,10 @@
|
|||
<para>&a.se;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.bde;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.jasone;</para>
|
||||
</listitem>
|
||||
|
|
@ -256,17 +284,21 @@
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.jedgar;</para>
|
||||
<para>&a.jedgar;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.green;</para>
|
||||
<para>&a.green;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.fenner;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.lioux;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.jfieber;</para>
|
||||
</listitem>
|
||||
|
|
@ -284,21 +316,21 @@
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.dirk;</para>
|
||||
<para>&a.dirk;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.shige;</para>
|
||||
<para>&a.shige;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.billf;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.gallatin;</para>
|
||||
<para>&a.gallatin;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.patrick;</para>
|
||||
</listitem>
|
||||
|
|
@ -307,20 +339,24 @@
|
|||
<para>&a.tg;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.gibbs;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.brandon;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.gioria;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.gioria;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.graichen;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.cg;</para>
|
||||
<para>&a.cg;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
|
@ -343,6 +379,10 @@
|
|||
<para>&a.mharo;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.dannyboy;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.thepish;</para>
|
||||
</listitem>
|
||||
|
|
@ -379,16 +419,24 @@
|
|||
<para>&a.pho;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.horikawa;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.hosokawa;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.jeh;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.hsu;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.foxfair;</para>
|
||||
<para>&a.foxfair;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
|
@ -398,11 +446,7 @@
|
|||
<listitem>
|
||||
<para>&a.mph;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.imura;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.shin;</para>
|
||||
</listitem>
|
||||
|
|
@ -419,6 +463,10 @@
|
|||
<para>&a.mjacob;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.keith;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.gj;</para>
|
||||
</listitem>
|
||||
|
|
@ -427,10 +475,22 @@
|
|||
<para>&a.nsj;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.trevor;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.phk;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.joe;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.cokane;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.kato;</para>
|
||||
</listitem>
|
||||
|
|
@ -438,7 +498,11 @@
|
|||
<listitem>
|
||||
<para>&a.kris;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.kiri;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.andreas;</para>
|
||||
</listitem>
|
||||
|
|
@ -456,11 +520,11 @@
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.reg;</para>
|
||||
<para>&a.alex;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.grog;</para>
|
||||
<para>&a.reg;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
|
@ -474,15 +538,15 @@
|
|||
<listitem>
|
||||
<para>&a.lile;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.kevlo;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.imp;</para>
|
||||
<para>&a.scottl;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.ade;</para>
|
||||
</listitem>
|
||||
|
|
@ -496,7 +560,11 @@
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.gehenna;</para>
|
||||
<para>&a.bmah;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.dwmalone;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
|
@ -516,19 +584,27 @@
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.tedm;</para>
|
||||
<para>&a.sanpei;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.bmilekic;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.non;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.jim;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.marcel;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.dan;</para>
|
||||
<para>&a.dan;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
|
@ -539,6 +615,10 @@
|
|||
<para>&a.markm;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.rich;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.knu;</para>
|
||||
</listitem>
|
||||
|
|
@ -571,10 +651,26 @@
|
|||
<para>&a.danny;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.okazaki;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.ljo;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.onoe;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.marko;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.gpalmer;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.fsmp;</para>
|
||||
</listitem>
|
||||
|
|
@ -583,6 +679,10 @@
|
|||
<para>&a.smpatel;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.cp;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.wpaul;</para>
|
||||
</listitem>
|
||||
|
|
@ -591,14 +691,22 @@
|
|||
<para>&a.alfred;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.roam;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.wes;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.cpiazza;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.jdp;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.bp;</para>
|
||||
</listitem>
|
||||
|
|
@ -656,21 +764,29 @@
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.asmodai;</para>
|
||||
<para>&a.asmodai;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.ps;</para>
|
||||
<para>&a.ps;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.sada;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.hrs;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.wsanchez;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.sos;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.nsayer;</para>
|
||||
</listitem>
|
||||
|
|
@ -688,21 +804,45 @@
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.simokawa;</para>
|
||||
<para>&a.gshapiro;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.simokawa;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.vanilla;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.shafeeq;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.demon;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.msmith;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.ben;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.benno;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.des;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.sobomax;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.dcs;</para>
|
||||
</listitem>
|
||||
|
|
@ -720,21 +860,17 @@
|
|||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.karl;</para>
|
||||
<para>&a.sumikawa;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.sumikawa;</para>
|
||||
<para>&a.murray;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.murray;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.gsutter;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.unfurl;</para>
|
||||
</listitem>
|
||||
|
|
@ -771,6 +907,10 @@
|
|||
<para>&a.ume;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.rv;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.hoek;</para>
|
||||
</listitem>
|
||||
|
|
@ -779,12 +919,20 @@
|
|||
<para>&a.nectar;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.jayanth;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.swallace;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.rwatson;</para>
|
||||
<para>&a.takawata;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.assar;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
|
|
@ -795,21 +943,38 @@
|
|||
<para>&a.nate;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.wollman;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.joerg;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.kbyanc;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.yokota;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.andy;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.phantom;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.jmz;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.issei;</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
|
||||
|
|
@ -895,6 +1060,8 @@
|
|||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<![ %not.published; [
|
||||
|
||||
<varlistentry>
|
||||
<term>òÅÄÁËÔÏÒ óÐÉÓËÁ éÚÍÅÎÅÎÉÊ Web ÓÅÒ×ÅÒÁ</term>
|
||||
|
||||
|
|
@ -903,6 +1070,8 @@
|
|||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
]]>
|
||||
|
||||
<varlistentry>
|
||||
<term>òÅÄÁËÔÏÒ ÓÐÉÓËÁ çÒÕÐÐ ðÏÌØÚÏ×ÁÔÅÌÅÊ</term>
|
||||
|
||||
|
|
@ -941,14 +1110,6 @@
|
|||
<title>ëÔÏ ÚÁ þÔÏ ïÔ×ÅÔÓÔ×ÅÎÅÎ</title>
|
||||
|
||||
<variablelist>
|
||||
<varlistentry>
|
||||
<term>ðÒÉÎÃÉÐÉÁÌØÎÁÑ áÒÈÉÔÅËÔÕÒÁ FreeBSD</term>
|
||||
|
||||
<listitem>
|
||||
<para>&a.dg;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><ulink
|
||||
url="http://www.FreeBSD.org/ru/docproj/docproj.html">òÕËÏ×ÏÄÉÔÅÌØ
|
||||
|
|
@ -972,6 +1133,7 @@
|
|||
|
||||
<listitem>
|
||||
<para>&a.dcs;</para>
|
||||
<para>&a.jhb;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
|
@ -983,14 +1145,6 @@
|
|||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>óÅÔÅ×ÁÑ ÐÏÄÄÅÒÖËÁ</term>
|
||||
|
||||
<listitem>
|
||||
<para>&a.wollman;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term><link linkend="eresources-mail">Postmaster</link></term>
|
||||
|
||||
|
|
@ -1020,7 +1174,7 @@
|
|||
âÅÚÏÐÁÓÎÏÓÔÉ</ulink></term>
|
||||
|
||||
<listitem>
|
||||
<para>&a.imp;</para>
|
||||
<para>&a.kris;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
|
@ -1032,8 +1186,6 @@
|
|||
<para>&a.peter;</para>
|
||||
|
||||
<para>ðÏÍÏÛÎÉË: &a.jdp;</para>
|
||||
|
||||
<para>íÅÖÄÕÎÁÒÏÄÎÙÊ (óÒÅÄÓÔ×Á ûÉÆÒÏ×ÁÎÉÑ): &a.markm;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
|
|
@ -1046,6 +1198,14 @@
|
|||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>óÔÁÎÄÁÒÔÙ</term>
|
||||
|
||||
<listitem>
|
||||
<para>&a.wollman;</para>
|
||||
</listitem>
|
||||
</varlistentry>
|
||||
|
||||
<varlistentry>
|
||||
<term>ðÒÅÄÓÔÁ×ÉÔÅÌØ XFree86 Project, Inc.</term>
|
||||
|
||||
|
|
@ -1084,29 +1244,30 @@
|
|||
|
||||
<sect1 id="staff-ru-committers">
|
||||
<title>ïÆÉÃÉÁÌØÎÙÅ ÕÞÁÓÔÎÉËÉ ðÒÏÅËÔÁ òÕÓÓËÏÊ äÏËÕÍÅÎÔÁÃÉÉ FreeBSD</title>
|
||||
|
||||
<para>.üÔÏ ÌÀÄÉ, ËÏÔÏÒÙÅ ÉÍÅÀÔ ÐÒÁ×Á ÄÏÓÔÕÐÁ Ë òÅÐÏÚÉÔÏÒÉÀ ðÒÏÅËÔÁ
|
||||
|
||||
<para>üÔÏ ÌÀÄÉ, ËÏÔÏÒÙÅ ÉÍÅÀÔ ÐÒÁ×Á ÄÏÓÔÕÐÁ Ë òÅÐÏÚÉÔÏÒÉÀ ðÒÏÅËÔÁ
|
||||
òÕÓÓËÏÊ äÏËÕÍÅÎÔÁÃÉÉ FreeBSD É ÚÁÎÉÍÁÀÔÓÑ ÐÅÒÅ×ÏÄÏÍ ÓÕÝÅÓÔ×ÕÀÝÅÊ
|
||||
ÄÏËÕÍÅÎÔÁÃÉÉ ÎÁ ÒÕÓÓËÉÊ ÑÚÙË.</para>
|
||||
|
||||
<para>(× ÁÌÆÁ×ÉÔÎÏÍ ÐÏÒÑÄËÅ, ÏÔÓÏÒÔÉÒÏ×ÁÎÏ ÐÏ ÆÁÍÉÌÉÉ):</para>
|
||||
|
||||
<itemizedlist>
|
||||
<listitem>
|
||||
<para>&a.ru.andy;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.ru.danfe;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.ru.phantom;</para>
|
||||
</listitem>
|
||||
|
||||
|
||||
<listitem>
|
||||
<para>&a.ru.ru;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.ru.andy;</para>
|
||||
</listitem>
|
||||
|
||||
<listitem>
|
||||
<para>&a.ru.phantom;</para>
|
||||
</listitem>
|
||||
|
||||
</itemizedlist>
|
||||
</sect1>
|
||||
</appendix>
|
||||
|
|
|
|||
|
|
@ -1,6 +1,6 @@
|
|||
#
|
||||
# $FreeBSD: doc/ru_RU.KOI8-R/books/porters-handbook/Makefile,v 1.1 2000/10/17 17:25:01 phantom Exp $
|
||||
# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/porters-handbook/Makefile,v 1.2 2000/09/17 15:15:41 phantom Exp $
|
||||
# $FreeBSD$
|
||||
# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/porters-handbook/Makefile,v 1.3 2000/11/15 17:21:30 phantom Exp $
|
||||
#
|
||||
# Build the FreeBSD Porter's Handbook.
|
||||
#
|
||||
|
|
|
|||
|
|
@ -2,7 +2,8 @@
|
|||
The FreeBSD Russian Documentation Project
|
||||
|
||||
$FreeBSD$
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/porters-handbook/book.sgml,v 1.38 2000/10/16 15:47:03 andy Exp $
|
||||
$FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/porters-handbook/book.sgml,v 1.41 2000/11/15 17:00:03 phantom Exp $
|
||||
|
||||
Original revision: 1.124
|
||||
-->
|
||||
|
||||
|
|
@ -365,8 +366,8 @@ lib/X11/oneko/mouse.xpm
|
|||
программного обеспечения, оказавшегося в нем.</para>
|
||||
</note>
|
||||
|
||||
<para>Мы посмотрим на ваш порт, вернет его обратно, если это будет
|
||||
нужно, и включим его в дерево. Ваше имя также появится в списке
|
||||
<para>Мы посмотрим на ваш порт, при необходимости вернём его обратно, а
|
||||
затем включим порт в наше дерево. Ваше имя также появится в списке
|
||||
“Людей, внесших свой вклад” в Руководстве и других
|
||||
файлах. Это ли не круто?!? <!-- smiley -->:-)</para>
|
||||
|
||||
|
|
@ -3671,7 +3672,7 @@ CFLAGS = -Wall -Werror
|
|||
<para>Пожалуйста, не создавайте дополнительных копий лицензии GNU
|
||||
General Public License в нашей системе.</para>
|
||||
|
||||
<para>Будьте внимательны с юридическими вопросами! Не делайте из на
|
||||
<para>Будьте внимательны с юридическими вопросами! Не делайте из нас
|
||||
нелегальных распространителей ПО!</para>
|
||||
</sect1>
|
||||
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue