diff --git a/ru_RU.KOI8-R/books/handbook/advanced-networking/Makefile b/ru_RU.KOI8-R/books/handbook/advanced-networking/Makefile
index 3f331d3ece..822026e66e 100644
--- a/ru_RU.KOI8-R/books/handbook/advanced-networking/Makefile
+++ b/ru_RU.KOI8-R/books/handbook/advanced-networking/Makefile
@@ -1,17 +1,17 @@
#
# Build the Handbook with just the content from this chapter.
#
# $FreeBSD$
-# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/advanced-networking/Makefile,v 1.1 2001/07/11 16:40:07 phantom Exp $
-# Original revision: 1.1
+# $FreeBSDru: frdp/doc/ru_RU.KOI8-R/books/handbook/advanced-networking/Makefile,v 1.2 2004/09/01 13:36:38 den Exp $
+# Original revision: 1.2
#
CHAPTERS= advanced-networking/chapter.sgml
VPATH= ..
MASTERDOC= ${.CURDIR}/../${DOC}.${DOCBOOKSUFFIX}
DOC_PREFIX?= ${.CURDIR}/../../../..
.include "../Makefile"
diff --git a/ru_RU.KOI8-R/books/handbook/advanced-networking/chapter.sgml b/ru_RU.KOI8-R/books/handbook/advanced-networking/chapter.sgml
index b6abf5ceca..4b5af55d44 100644
--- a/ru_RU.KOI8-R/books/handbook/advanced-networking/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/advanced-networking/chapter.sgml
@@ -1,4391 +1,4391 @@
АндрейЗахватовПеревод на русский язык: Сложные вопросы работы в сетиКраткий обзорЭта глава охватывает множество различных сетевых тематик
повышенной сложности.После чтения этой главы вы будете знать:Основные понятия о маршрутизации и маршрутах.Как настроить IEEE 802.11 и &bluetooth;.Как заставить FreeBSD работать в качестве сетевого
моста.Как настроить загрузку по сети для бездисковой машины.Как настроить трансляцию сетевых адресов.Как соединить два компьютера посредством PLIP.Как настроить IPv6 на машине FreeBSD.Как настроить ATM в &os; 5.X.Перед чтением этой главы вы должны:Понимать основы работы скриптов
/etc/rc.Свободно владеть основными сетевыми терминами.Знать как настраивать и устанавливать новое ядро FreeBSD
().Знать как устанавливать дополнительное программное
обеспечение сторонних разработчиков
().CoranthGryphonТекст предоставил Сетевые шлюзы и маршрутымаршрутизацияшлюзподсетьЧтобы некоторая машина могла найти в сети другую, должен иметься
механизм описания того, как добраться от одной машине к другой. Такой
механизм называется маршрутизацией.
Маршрут задаётся
парой адресов: адресом назначения (destination) и
сетевым шлюзом (gateway). Эта пара указывает на то, что
если Вы пытаетесь соединиться с адресом назначения,
то вам нужно устанавливать связь через сетевой шлюз.
Существует три типа адресов назначения: отдельные хосты, подсети и
маршрут по умолчанию (default). Маршрут по
умолчанию (default route) используется, если не подходит ни один
из других маршрутов. Мы поговорим немного подробнее о маршрутах по
умолчанию позже. Также имеется и три типа сетевых шлюзов: отдельные
хосты, интерфейсы (также называемые подключениями
(links)) и аппаратные адреса Ethernet (MAC-адреса).ПримерДля иллюстрации различных аспектов маршрутизации мы будем
использовать следующий пример использования команды
netstat:&prompt.user; netstat -r
Routing tables
Destination Gateway Flags Refs Use Netif Expire
default outside-gw UGSc 37 418 ppp0
localhost localhost UH 0 181 lo0
test0 0:e0:b5:36:cf:4f UHLW 5 63288 ed0 77
10.20.30.255 link#1 UHLW 1 2421
example.com link#1 UC 0 0
host1 0:e0:a8:37:8:1e UHLW 3 4601 lo0
host2 0:e0:a8:37:8:1e UHLW 0 5 lo0 =>
host2.example.com link#1 UC 0 0
224 link#1 UC 0 0маршрут по умолчаниюВ первых двух строках задаются маршрут по умолчанию (который
будет описан в следующем
разделе) и маршрут на localhost.устройство loopbackИнтерфейс (колонка Netif), который указан в
этой таблице маршрутов для использования с
localhost и который назван
lo0, имеет также второе название, устройство
loopback. Это значит сохранение всего трафика для указанного адреса
назначения внутри, без посылки его по сети, так как он все равно
будет направлен туда, где был создан.EthernetMAC адресСледующими выделяющимися адресами являются адреса, начинающиеся с
0:e0:.... Это аппаратные адреса Ethernet,
или MAC-адреса. FreeBSD будет автоматически распознавать любой хост
(в нашем примере это test0) в локальной сети Ethernet
и добавит маршрут для этого хоста, указывающий непосредственно на
интерфейс Ethernet, ed0. С этим типом
маршрута также связан параметр таймаута (колонка
Expire), используемый в случае неудачной попытки
услышать этот хост в течении некоторого периода времени. Если такое
происходит, то маршрут до этого хоста будет автоматически удалён.
Такие хосты поддерживаются
при помощи механизма, известного как RIP (Routing Information
Protocol), который вычисляет маршруты к хостам локальной сети при
помощи определения кратчайшего расстояния.подсетьFreeBSD добавит также все маршруты к подсетям для локальных
подсетей (10.20.30.255 является
широковещательным адресом для подсети 10.20.30, а имя example.com является именем домена, связанным
с этой подсетью). Назначение link#1 соответствует
первому адаптеру Ethernet в машине. Отметьте отсутствие
дополнительного интерфейса для этих строк.В обеих этих группах (хосты и подсети локальной сети) маршруты
конфигурируются автоматически даемоном, который называется
routed. Если он не запущен, то будут
существовать только статически заданные (то есть введенные явно)
маршруты.Строка host1 относится к нашему хосту, который
известен по адресу Ethernet. Так как мы являемся посылающим хостом,
FreeBSD знает, что нужно использовать loopback-интерфейс
(lo0) вместо того, чтобы осуществлять
посылку в интерфейс Ethernet.Две строки host2 являются примером того, что
происходит при использовании алиасов в команде &man.ifconfig.8;
(обратитесь к разделу об Ethernet для объяснения того, почему мы это
делаем). Символ => после интерфейса
lo0 указывает на то, что мы используем не
просто интерфейс loopback (так как это адрес, обозначающий локальный
хост), но к тому же это алиас. Такие маршруты появляются только
на хосте, поддерживающем алиасы; для всех остальных хостов в локальной
сети для таких маршрутов будут показаны просто строчки
link#1.Последняя строчка (подсеть назначения 224) имеет отношение к многоадресной посылке,
которая будет рассмотрена в другом разделе.И наконец, различные атрибуты каждого маршрута перечисляются в
колонке Flags. Ниже приводится краткая таблица
некоторых из этих флагов и их значений:UUp: Маршрут актуален.HHost: Адресом назначения является отдельный хост.GGateway: Посылать все для этого адреса назначения на
указанную удаленную систему, которая будет сама определять
дальнейший путь прохождения информации.SStatic: Маршрут был настроен вручную, а не автоматически
сгенерирован системой.CClone: Новый маршрут сгенерирован на основе указанного для
машин, к которым мы подключены. Такой тип маршрута обычно
используется для локальных сетей.WWasCloned: Указывает на то, что маршрут был автоматически
сконфигурирован на основе маршрута в локальной
сети (Clone).LLink: Маршрут включает ссылку на аппаратный адрес
Ethernet.Маршруты по умолчаниюмаршрут по умолчаниюКогда локальной системе нужно установить соединение с удаленным
хостом, она обращается к таблице маршрутов для того, чтобы определить,
существует ли такой маршрут. Если удаленный хост попадает в подсеть,
для которой известен способ ее достижения (маршруты типа Cloned), то
система определяет возможность подключиться к ней по этому
интерфейсу.Если все известные маршруты не подходят, у системы имеется
последняя возможность: маршрут default. Это маршрут
с особым типом сетевого шлюза (обычно единственным, присутствующим
в системе), и в поле флагов он всегда помечен как c.
Для хостов в локальной сети этот сетевой шлюз указывает на машину,
имеющую прямое подключение к внешнему миру (неважно, используется ли
связь по протоколу PPP, канал DSL, кабельный модем, T1 или какой-то
другой сетевой интерфейс).Если вы настраиваете маршрут по умолчанию на машине, которая сама
является сетевым шлюзом во внешний мир, то маршрутом по умолчанию
будет являться сетевой шлюз у Вашего провайдера Интернет (ISP).Давайте взглянем на примеры маршрутов по умолчанию. Вот типичная
конфигурация:
[Local2] <--ether--> [Local1] <--PPP--> [ISP-Serv] <--ether--> [T1-GW]
Хосты Local1 и Local2 находятся в
нашей сети. Local1 подключён к ISP через
коммутируемое соединение по протоколу PPP. Этот компьютер с сервером
PPP подключён посредством локальной сети к другому шлюзовому компьютеру
через внешний интерфейс самого ISP к Интернет.Маршруты по умолчанию для каждой из ваших машин будут
следующими:ХостМаршрут по умолчаниюИнтерфейсLocal2Local1EthernetLocal1T1-GWPPPЧасто задаётся вопрос Почему (или каким образом) в качестве
шлюза по умолчанию для машины Local1 мы указываем
T1-GW, а не сервер провайдера, к которому
подключаемся?.Запомните, что из-за использования PPP-интерфейсом адреса в сети
провайдера Интернет с вашей стороны соединения, маршруты для всех
других машин в локальной сети провайдера будут сгенерированы
автоматически. Таким образом, вы уже будете знать, как достичь машины
T1-GW, так что нет нужды в промежуточной точке при
посылке трафика к серверу ISP.В локальных сетях адрес X.X.X.1 часто используется в качестве адреса
сетевого шлюза. Тогда (при использовании того же самого примера)
если пространство адресов класса C вашей локальной сети было задано
как 10.20.30, а ваш провайдер использует
10.9.9, то маршруты по умолчанию будут
такие:ХостМаршрут по умолчаниюLocal2 (10.20.30.2)Local1 (10.20.30.1)Local1 (10.20.30.1, 10.9.9.30)T1-GW (10.9.9.1)Вы можете легко задать используемый по умолчанию маршрутизатор
посредством файла /etc/rc.conf. В нашем примере
на машине Local2 мы добавили такую строку в файл
/etc/rc.conf:defaultrouter="10.20.30.1"Это также возможно сделать и непосредственно из командной строки
при помощи команды &man.route.8;:&prompt.root; route add default 10.20.30.1Для получения дополнительной информации об управлении таблицами
маршрутизации, обратитесь к справочной странице по команде
&man.route.8;.Хосты с двойным подключениемхосты с двойным подключениемЕсть еще один тип подключения, который мы должны рассмотреть, и это
случай, когда хост находится в двух различных сетях. Технически,
любая машина, работающая как сетевой шлюз (в примере выше
использовалось PPP-соединение), считается хостом с двойным
подключением. Однако этот термин реально используется для описания
машины, находящейся в двух локальных сетях.В одном случае у машины имеется два адаптера Ethernet, каждый
имеющий адрес в разделенных подсетях. Как альтернативу можно
рассмотреть вариант с одним Ethernet-адаптером и использованием
алиасов в команде &man.ifconfig.8;. В первом случае используются два
физически разделённые сети Ethernet, в последнем имеется один
физический сегмент сети, но две логически разделённые подсети.В любом случае таблицы маршрутизации настраиваются так, что для
каждой подсети эта машина определена как шлюз (входной маршрут) в
другую подсеть. Такая конфигурация, при которой машина выступает в
роли маршрутизатора между двумя подсетями, часто используется, если
нужно реализовать систему безопасности на основе фильтрации пакетов или
функций межсетевого экрана в одном или обоих направлениях.Если вы хотите, чтобы эта машина действительно перемещала пакеты
между двумя интерфейсами, то вам нужно указать FreeBSD на включение
этой функции. Обратитесь к следующей главе, чтобы узнать, как это
сделать.Построение маршрутизаторамаршрутизаторСетевой маршрутизатор является обычной системой, которая
пересылает пакеты с одного интерфейса на другой. Стандарты Интернет и
хорошая инженерная практика не позволяют Проекту FreeBSD включать эту
функцию по умолчанию во FreeBSD. Вы можете включить эту возможность,
изменив значение следующей переменной в YES в файле
&man.rc.conf.5;:gateway_enable=YES # Set to YES if this host will be a gatewayЭтот параметр изменит значение &man.sysctl.8;-переменной
net.inet.ip.forwarding в
1. Если вам временно нужно выключить маршрутизацию,
вы можете на время сбросить это значение в 0.Вашему новому маршрутизатору нужна информация о маршрутах для того,
чтобы знать, куда пересылать трафик. Если ваша сеть достаточно проста,
то вы можете использовать статические маршруты. С FreeBSD также
поставляется стандартный даемон BSD для маршрутизации &man.routed.8;,
который умеет работать с RIP (как версии 1, так и версии 2) и IRDP.
Поддержка BGP v4, OSPF v2 и других сложных протоколов маршрутизации
имеется в пакете net/zebra. Также
существуют и коммерческие продукты, применяемые как более комплексное
решение проблемы маршрутизации в сети, такие как
&gated;.BGPRIPOSPFДаже когда FreeBSD настроена таким образом, она не полностью
соответствует стандартным требованиям Интернет для маршрутизаторов.
Однако для обычного использования такое неполное соответствие
достаточно.AlHoangПредоставил Настройка статических маршрутовРучная настройкаПредположим, что у нас есть следующая сеть:
INTERNET
| (10.0.0.1/24) Default Router to Internet
|
|Interface xl0
|10.0.0.10/24
+------+
| | RouterA
| | (FreeBSD gateway)
+------+
| Interface xl1
| 192.168.1.1/24
|
+--------------------------------+
Internal Net 1 | 192.168.1.2/24
|
+------+
| | RouterB
| |
+------+
| 192.168.2.1/24
|
Internal Net 2
В этом сценарии, RouterA это наш
компьютер с &os;, который выступает в качестве
маршрутизатора в сеть Интернет. Его маршрут по умолчанию
настроен на 10.0.0.1, что позволяет ему
соединяться с внешним миром. Мы будем предполагать, что
RouterB уже правильно настроен и
знает все необходимые маршруты (на этом рисунке все
просто; добавьте на RouterB маршрут
по умолчанию, используя 192.168.1.1 в качестве шлюза).Если мы посмотрим на таблицу маршрутизации
RouterA, то увидим примерно следующее:&prompt.user; netstat -nr
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
default 10.0.0.1 UGS 0 49378 xl0
127.0.0.1 127.0.0.1 UH 0 6 lo0
10.0.0/24 link#1 UC 0 0 xl0
192.168.1/24 link#2 UC 0 0 xl1С текущей таблицей маршрутизации RouterA
не сможет достичь внутренней сети 2 (Internal Net 2).
Один из способов обхода этой проблемы — добавление
маршрута вручную. Следующая команда добавляет
внутреннюю сеть 2 к таблице маршрутизации
RouterA с 192.168.1.2 в качестве следующего
узла:&prompt.root; route add -net 192.168.2.0/24 192.168.1.2Теперь RouterA сможет достичь любого хоста
в сети
192.168.2.0/24.Постоянная конфигурацияПредыдущий пример прекрасно подходит для настройки статического
маршрута в работающей системе. Однако, проблема заключается в
том, что маршрутная информация не сохранится после перезагрузки
&os;. Способ сохранения добавленного маршрута заключается в
добавлении его в файл /etc/rc.conf:# Добавление статического маршрута в Internal Net 2
static_routes="internalnet2"
route_internalnet2="-net 192.168.2.0/24 192.168.1.2"В переменной static_routes находятся
строки, разделенные пробелами. Каждая строка означает имя
маршрута. В примере выше в static_routes
есть только одна строка, это
internalnet2. Затем мы добавили
переменную
route_internalnet2,
куда помещены все параметры, которые необходимо передать
команде &man.route.8;. В примере выше была использована
команда:&prompt.root; route add -net 192.168.2.0/24 192.168.1.2поэтому нам потребуется
"-net 192.168.2.0/24 192.168.1.2".Как было сказано выше, мы можем добавить в
static_routes более чем одну строку.
Это позволит создать несколько статических маршрутов.
В следующем примере показано добавление маршрутов для сетей 192.168.0.0/24 и 192.168.1.0/24 (этот маршрутизатор не
показан на рисунке выше:static_routes="net1 net2"
route_net1="-net 192.168.0.0/24 192.168.0.1"
route_net2="-net 192.168.1.0/24 192.168.1.1"Распространение маршрутовраспространение маршрутовМы уже говорили о том, как мы задаем наши маршруты во внешний мир,
но не упоминали о том, как внешний мир находит нас.Мы уже знаем, что таблицы маршрутизации могут быть настроены так,
что весь трафик для некоторого диапазона адресов (в нашем примере это
подсеть класса C) может быть направлен заданному хосту в той сети,
которая будет перенаправлять входящие пакеты дальше.При получении адресного пространства, выделенного Вашей сети,
Ваш провайдер настроит свои таблицы маршрутизации так, что весь трафик
для Вашей подсети будет пересылаться по PPP-соединению к Вашей сети.
Но как серверы по всей стране узнают, что Ваш трафик нужно посылать
Вашему ISP?Существует система (подобная распределению информации DNS), которая
отслеживает все назначенные пространства адресов и определяет точку
подключения к магистрали Интернет. Магистралью называют
главные каналы, по которым идет трафик Интернет внутри страны и по
всему миру. Каждая магистральная машина имеет копию основного набора
таблиц, согласно которой трафик для конкретной сети направляется по
конкретному магистральному каналу, и затем, передаваясь по цепочке
провайдеров, он достигает вашей сети.Задачей вашего провайдера является объявить на магистрали о том,
что он отвечает за подключение (и поэтому на него указывает маршрут)
вашей сети. Этот процесс называется распространением маршрута.Устранение неполадокtracerouteИногда с распространением маршрута возникают проблемы, и некоторые
сайты не могут к вам подключиться. Наверное, самой полезной командой
для определения точки неверной работы маршрутизации является
&man.traceroute.8;. Она также полезна и когда вы сами не можете
подключиться к удаленной машине (то есть команда &man.ping.8; не
срабатывает).Команда &man.traceroute.8; запускается с именем удаленного хоста, с
которым вы хотите установить соединение, в качестве параметра. Она
показывает промежуточные сетевые шлюзы по пути следования, в конце
концов достигая адрес назначения или прерывая свою работу из-за
отсутствия соединения.За дополнительной информацией обратитесь к странице Справочника по
&man.traceroute.8;.Маршрутизация многоадресного трафикаmulticastoptions MROUTINGFreeBSD изначально поддерживает как приложения, работающие с
многоадресным трафиком, так и его маршрутизацию. Такие приложения не
требуют особой настройки FreeBSD; обычно они работают сразу.
Для маршрутизации многоадресного трафика требуется, чтобы поддержка
этого была включена в ядро:options MROUTINGКроме того, даемон многоадресной маршрутизации, &man.mrouted.8;,
должен быть настроен посредством файла
/etc/mrouted.conf на использование туннелей и
DVMRP. Дополнительную информацию о настройки
многоадресного трафика
можно найти на страницах справочной системы, посвящённых даемону
&man.mrouted.8;.EricAndersonТекст предоставил АндрейЗахватовПеревёл на русский язык Беспроводные сетибеспроводные сети802.11беспроводные сетиВведениеБыло бы весьма полезным иметь возможность использовать компьютер
без хлопот, связанных с постоянно подключенным сетевым кабелем.
FreeBSD может использоваться как клиент беспроводной сети, и даже
в качестве точки доступа к ней.Режимы работы беспроводной связиСуществуют два варианта конфигурации устройств беспроводного
доступа 802.11: BSS и IBSS.Режим BSSРежим BSS является наиболее часто используемым. Режим BSS также
называют режимом инфраструктуры. В этом режиме несколько точек
доступа беспроводной сети подключаются к проводной сети передачи
данных. Каждое беспроводная сеть имеет собственное имя. Это имя
является идентификатором SSID сети.Клиенты беспроводной сети подключаются к этим точкам доступа
беспроводной сети. Стандарт IEEE 802.11 определяет протокол,
используемый для связи в беспроводных сетях. Клиент сети
беспроводного доступа может подключаться к некоторой сети, если
задан её SSID. Клиент может также подключаться к любой сети, если
SSID не задан.Режим IBSSРежим IBSS, также называемый ad-hoc, предназначен для соединений
точка-точка. На самом деле существуют два типа режима ad-hoc. Один
из них является режимом IBSS, называемый также режимом ad-hoc или
IEEE ad-hoc. Этот режим определён стандартами IEEE 802.11. Второй
режим называется демонстрационным режимом ad-hoc, или Lucent ad-hoc
(или, иногда неправильно, режимом ad-hoc). Это старый,
существовавший до появления 802.11, режим ad-hoc, и он должен
использоваться только для старых сетей. В дальнейшем мы не будем
рассматривать ни один из режимов ad-hoc.Режим инфраструктурыТочки доступаТочки доступа представляют собой беспроводные сетевые устройства,
позволяющие одному или большему количеству клиентов беспроводной сети
использовать эти устройства в качестве центрального сетевого
концентратора. При использовании точки доступа все клиенты работают
через неё. Зачастую используются несколько точек доступа для полного
покрытия беспроводной сетью некоторой зоны, такой, как дом, офис или
парк.Точки доступа обычно имеют несколько подключений к сети: адаптер
беспроводной связи и один или большее количество сетевых
ethernet-адаптеров для подключения к остальной части сети.Точки доступа могут быть либо приобретены уже настроенными, либо
вы можете создать собственную при помощи FreeBSD и поддерживаемого
адаптера беспроводной связи. Несколько производителей выпускают
точки беспроводного доступа и адаптеры беспроводной связи с
различными возможностями.Построение точки доступа с FreeBSDбеспроводные сетиточка доступаТребованияДля того, чтобы создать беспроводную точку доступа на FreeBSD,
вам нужно иметь совместимый адаптер беспроводной связи. На данный
момент поддерживаются адаптеры только на основе набора микросхем
Prism. Вам также потребуется поддерживаемый FreeBSD адаптер
проводной сети (найти такой будет нетрудно, FreeBSD поддерживает
множество различных устройств). В этом руководстве мы будем
полагать, что вы будете строить сетевой мост (&man.bridge.4;) для
пропуска всего трафика между устройством беспроводной связи и
сетью, подключенной к обычному Ethernet-адаптеру.Функциональность hostap, которая используется FreeBSD для
организации точки доступа, работает лучше всего с некоторыми
версиями микрокода. Адаптеры Prism 2 должны использовать микрокод
версии 1.3.4 или более новый. Адаптеры Prism 2.5 и Prism 3 должны
использовать микрокод версии 1.4.9. Более старые версии микрокода
могут работать нормально, а могут и некорректно. В настоящее время
единственным способом обновления адаптеров является использование
утилит обновления для &windows;, которые можно получить у
производителя ваших адаптеров.НастройкаПервым делом убедитесь, что ваша система распознаёт адаптер
беспроводной связи:&prompt.root; ifconfig -a
wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7
inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
ether 00:09:2d:2d:c9:50
media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps)
status: no carrier
ssid ""
stationname "FreeBSD Wireless node"
channel 10 authmode OPEN powersavemode OFF powersavesleep 100
wepmode OFF weptxkey 1На данном этапе не беспокойтесь о деталях, просто убедитесь,
что выдаётся нечто, указывающее на установленный адаптер
беспроводной связи. Если при этом у вас есть проблемы с
недоступностью интерфейса беспроводной связи, и вы используете
PC Card, то обратитесь к страницам справочной системы, описывающим
&man.pccardc.8; и &man.pccardd.8; для получения более полной
информации.Теперь вам нужно загрузить модуль для подготовки той части
FreeBSD, что отвечает за организацию сетевых мостов, для работы
с точкой доступа. Для загрузки модуля &man.bridge.4; просто
выполните следующую команду:&prompt.root; kldload bridgeПри загрузке модуля никаких сообщений об ошибках быть не
должно. Если это всё же произошло, вам может потребоваться
вкомпилировать код для модуля &man.bridge.4; в ядро. В этом вам
должен помочь раздел этого Руководства об организации сетевых
мостов.Теперь, когда вы завершили с той частью, что касается
организации сетевого моста, нам нужно указать ядру FreeBSD, какие
интерфейсы должны объединяться в сетевом мосте. Это мы делаем
при помощи &man.sysctl.8;:&prompt.root; sysctl net.link.ether.bridge=1
&prompt.root; sysctl net.link.ether.bridge_cfg="wi0,xl0"
&prompt.root; sysctl net.inet.ip.forwarding=1Во &os; 5.2-RELEASE и последующих версиях нужно
использовать вместо указанных следующие параметры:&prompt.root; sysctl net.link.ether.bridge.enable=1
&prompt.root; sysctl net.link.ether.bridge.config="wi0,xl0"
&prompt.root; sysctl net.inet.ip.forwarding=1Теперь необходимо настроить адаптер беспроводной сети.
Следующая команда заставит адаптер работать в режиме точки
доступа:
&prompt.root; ifconfig wi0 ssid my_net channel 11 media DS/11Mbps mediaopt hostap up stationname "FreeBSD AP"Строчка &man.ifconfig.8; активизирует интерфейс
wi0, конфигурирует его SSID как
my_net, а имя станции как
FreeBSD AP.
переводит адаптер в
режим 11Mbps и нужен только для того, чтобы сработал параметр
. Параметр переводит интерфейс в режим точки доступа.
Параметр задаёт использование канала
802.11b. Страница справки по команде &man.wicontrol.8; перечисляет
корректные значения каналов для ваших нужд.Теперь у вас должна получиться полнофункциональная работающая
точка доступа. Настоятельно советуем прочесть страницы справочной
по &man.wicontrol.8;, &man.ifconfig.8;, и &man.wi.4; для
получения дополнительной информации.Также полагаем, что вы прочтёте следующий раздел о
шифровании.Информация о состоянииПосле того, как точка доступа сконфигурирована и начала свою
работу, операторам может понадобиться видеть клиентов, связанных
с этой точкой. В любой момент оператор может набрать:&prompt.root; wicontrol -l
1 station:
00:09:b7:7b:9d:16 asid=04c0, flags=3<ASSOC,AUTH>, caps=1<ESS>, rates=f<1M,2M,5.5M,11M>, sig=38/15Это показывает, что имеется одна связанная станция с
перечисленными характеристиками. Выдаваемое значение сигнала должно
использоваться только как сравнительный индикатор его силы. Его
перевод в dBm или другие единицы измерения различаются в разных
версиях микрокода.КлиентыКлиент в беспроводной сети представляет собой систему, которая
обращается к точке доступа или непосредственно к другому
клиенту.Как правило, клиенты беспроводной сети имеют только один сетевой
адаптер, а именно адаптер беспроводной сети.Существует несколько различных способов конфигурации клиента
беспроводной сети. Они основаны на различных режимах работы в
беспроводной сети, обычно BSS (режим инфраструктуры, который требует
точки доступа) или IBSS (ad-hoc или режим одноранговой сети). В
нашем примере мы будем использовать самый популярный их них, режим
BSS, для связи с точкой доступа.ТребованияСуществует только одно жёсткое условие для настройки FreeBSD в
качестве клиента беспроводной сети. Вам нужен адаптер беспроводной
связи, поддерживаемый FreeBSD.Конфигурация FreeBSD как клиента беспроводной сетиПеред тем, как подключиться к беспроводной сети, вам нужно
будет узнать о ней несколько вещей. В этом примере мы подключаемся
к сети, которая называется my_net,
и шифрование в ней отключено.В этом примере мы не используем шифрование, но
это небезопасно. В следующем разделе вы узнаете, как её включить,
почему это так важно, и почему некоторые технологии шифрования всё
же не могут полностью обеспечить вашу информационную
безопасность.Удостоверьтесь, что ваш адаптер распознаётся во FreeBSD:&prompt.root; ifconfig -a
wi0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet6 fe80::202:2dff:fe2d:c938%wi0 prefixlen 64 scopeid 0x7
inet 0.0.0.0 netmask 0xff000000 broadcast 255.255.255.255
ether 00:09:2d:2d:c9:50
media: IEEE 802.11 Wireless Ethernet autoselect (DS/2Mbps)
status: no carrier
ssid ""
stationname "FreeBSD Wireless node"
channel 10 authmode OPEN powersavemode OFF powersavesleep 100
wepmode OFF weptxkey 1Теперь мы можем изменить настройки адаптера на те, что соответствуют
нашей сети:&prompt.root; ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_netЗамените 192.168.0.20 и 255.255.255.0 на правильные IP-адрес и
сетевую маску в вашей проводной сети. Запомните, что наша точка
доступа выступает в роли моста для данных между беспроводной и
проводной сетями, так что они будут доступны для других устройств,
находящихся в сети, как будто они тоже находятся в проводной
сети.Как только вы это выполнили, то сможете получить ping от хостов
в проводной сети, как будто вы подключены посредством обычных
проводов.Если вы столкнулись с проблемами при работе в беспроводной
сети, удостоверьтесь, что вы ассоциированы (подключены) с точкой
доступа:&prompt.root; ifconfig wi0должна выдать некоторую информацию, и вы должны увидеть:status: associatedЕсли статус не будет соответствовать
associated, это
может значить, что вы оказались вне зоны досягаемости точки
доступа, включили шифрование или, возможно, имеются проблемы с
конфигурацией.Шифрованиебеспроводные сетишифрованиеШифрование в беспроводной сети имеет важное значение, потому что
у вас нет больше возможности ограничить сеть хорошо защищённой
областью. Данные вашей беспроводной сети вещаются по всей
окрестности, так что любой заинтересовавшийся может их считать. Вот
здесь используется шифрование. Шифруя данные, посылаемые в
эфир, вы делаете их прямой перехват гораздо более сложным для всех
любопытных.Двумя наиболее широко применяемыми способами шифрации данных
между вашим клиентом и точкой доступа являются WEP
и &man.ipsec.4;.WEPWEPWEP является сокращением от Wired Equivalency Protocol
(Протокол Соответствия Проводной сети). WEP является попыткой
сделать беспроводные сети такими же надёжными и безопасными, как
проводные. К сожалению, он был взломан и сравнительно легко
поддаётся вскрытию. Это означает также, что он не тот протокол,
на который следует опираться, когда речь идёт о шифровании
критически важных данных.Он лучше, чем ничего, так что используйте следующую команду для
включения WEP в вашей новой точке доступа FreeBSD:&prompt.root; ifconfig wi0 inet up ssid my_net wepmode on wepkey 0x1234567890 media DS/11Mbps mediaopt hostapВы можете включить WEP на клиенте следующей командой:&prompt.root; ifconfig wi0 inet 192.168.0.20 netmask 255.255.255.0 ssid my_net wepmode on wepkey 0x1234567890Отметьте, что вы должны заменить
0x1234567890 на более уникальный ключ.IPsec&man.ipsec.4; является гораздо более надёжным и мощным
средством шифрования данных в сети. Этот метод определённо
является предпочтительным для шифрования данных в беспроводной
сети. Более детально ознакомиться с безопасностью и применением
&man.ipsec.4; вы можете в разделе об IPsec этого Руководства.УтилитыИмеется несколько утилит, которые можно использовать для
настройки и отладки вашей беспроводной сети, и здесь мы попытаемся
описать некоторые из них и что они могут делать.Пакет bsd-airtoolsПакет bsd-airtools представляет
собой полный набор инструментов, включая инструменты для проверки
беспроводной сети на предмет взлома WEP-ключа,
обнаружения точки доступа и тому подобное.Утилиты bsd-airtools можно
установить из порта net/bsd-airtools. Информацию
об установке портов можно найти в Главе
этого Руководства.Программа dstumbler является инструментом,
предназначенным для обнаружения точки доступа и выдачи отношения
уровня сигнала к шуму. Если у вас с трудом получается запустить
точку доступа, dstumbler может помочь вам
начать.Для тестирования информационной безопасности вашей беспроводной
сети, вы можете воспользоваться набором dweputils
(dwepcrack, dwepdump и
dwepkeygen), который может помочь
понять, является ли WEP подходящим решением для обеспечения ваших
потребностей в информационной безопасности.Утилиты wicontrol,
ancontrol и
raycontrolЭто инструменты, которые могут быть использованы для
управления поведением
адаптера беспроводной связи в сети. В примере выше мы выбирали
&man.wicontrol.8;, так как нашим адаптером беспроводной сети был
интерфейс wi0. Если у вас установлено
устройство беспроводного доступа от Cisco, этим интерфейсом будет
an0, и тогда вы будете
использовать &man.ancontrol.8;.Команда ifconfigifconfigКоманда &man.ifconfig.8; может использоваться для установки
многих из тех параметров, что задаёт &man.wicontrol.8;, однако
работа с некоторыми параметрами в ней отсутствует. Обратитесь к
&man.ifconfig.8; для выяснения параметров и опций командной
строки.Поддерживаемые адаптерыТочки доступаЕдинственными адаптерами, которые на данный момент
поддерживаются в режиме BSS (как точка доступа), являются те
устройства, что сделаны на основе набора микросхем Prism 2, 2.5
или 3). Полный список можно увидеть в &man.wi.4;.КлиентыПрактически все адаптеры беспроводной связи 802.11b на данный
момент во FreeBSD поддерживаются. Большинство адаптеров,
построенных на основе Prism, Spectrum24, Hermes, Aironet и Raylink,
будут работать в качестве адаптера беспроводной сети в режиме
IBSS (ad-hoc, одноранговая сеть и BSS).PavLucistnikТекст предоставил pav@oook.czBluetoothBluetoothВведениеBluetooth является беспроводной технологией для создания
персональных сетей на расстоянии не более 10 метров, работающей на
частоте 2.4 ГГц, которая не подлежит лицензированию. Обычно такие
сети формируются из портативных устройств, таких, как сотовые телефоны,
КПК и лаптопы. В отличие от Wi-Fi, другой популярной беспроводной
технологии, Bluetooth предоставляет более высокий уровень сервиса,
например, файловые серверы типа FTP, передачу файлов, голоса, эмуляцию
последовательного порта и другие.Стек протоколов Bluetooth во &os; реализован на основе технологии
Netgraph (обратитесь к &man.netgraph.4;). Широкий спектр USB-устройств
Bluetooth поддерживается драйвером &man.ng.ubt.4;. Устройства
Bluetooth на основе набора микросхем Broadcom BCM2033 поддерживается
драйвером &man.ng.bt3c.4;. Устройства Bluetooth, работающие через
последовательные и UART-порты, поддерживаются драйверами &man.sio.4;,
&man.ng.h4.4; и &man.hcseriald.8;. В этом разделе описывается
использование Bluetooth-устройств, подключаемых через USB. Поддержка
Bluetooth имеется во &os; 5.0 и более новых версиях системы.Подключение устройстваПо умолчанию драйверы устройств Bluetooth поставляются в виде
модулей ядра. Перед подключением устройства вам необходимо подгрузить
драйвер в ядро:&prompt.root; kldload ng_ubtЕсли Bluetooth-устройство в момент запуска системы подключено, то
загружайте модуль из файла
/boot/loader.conf:ng_ubt_load="YES"Подключите ваше USB-устройство. На консоли (или в журнале
syslog) появится примерно такое сообщение:ubt0: vendor 0x0a12 product 0x0001, rev 1.10/5.25, addr 2
ubt0: Interface 0 endpoints: interrupt=0x81, bulk-in=0x82, bulk-out=0x2
ubt0: Interface 1 (alt.config 5) endpoints: isoc-in=0x83, isoc-out=0x3,
wMaxPacketSize=49, nframes=6, buffer size=294Скопируйте файл
/usr/share/examples/netgraph/bluetooth/rc.bluetooth
в какое-нибудь подходящее место, например, в файл
/etc/rc.bluetooth. Этот скрипт используется для
запуска и остановки работы Bluetooth-стека. Перед отключением
устройства рекомендуется остановить его работы, хотя (обычно) это не
фатально. При запуске стека вы получите сообщения, подобные
следующим:&prompt.root; /etc/rc.bluetooth start ubt0
BD_ADDR: 00:02:72:00:d4:1a
Features: 0xff 0xff 0xf 00 00 00 00 00
<3-Slot> <5-Slot> <Encryption> <Slot offset>
<Timing accuracy> <Switch> <Hold mode> <Sniff mode>
<Park mode> <RSSI> <Channel quality> <SCO link>
<HV2 packets> <HV3 packets> <u-law log> <A-law log> <CVSD>
<Paging scheme> <Power control> <Transparent SCO data>
Max. ACL packet size: 192 bytes
Number of ACL packets: 8
Max. SCO packet size: 64 bytes
Number of SCO packets: 8HCIHost Controller Interface (HCI)Host Controller Interface (HCI) предоставляет интерфейс для
управления контроллером передатчика и менеджером соединений, а также
доступ к данным о состоянии оборудования и его управляющим регистрам.
Этот интерфейс предоставляет унифицированный метод доступа к
передающим возможностям Bluetooth. Уровень HCI на управляющей машине
обменивается данными и командами с микрокодом HCI в оборудовании
Bluetooth. Драйвер для Host Controller Transport Layer (то есть
физической шины) предоставляет обоим слоям HCI возможность обмениваться
данными друг с другом.Для одного Bluetooth-устройства создаётся один узел Netgraph типа
hci. HCI-узел обычно подключается к узлу драйвера
устройства Bluetooth (входящий поток) и к узлу L2CAP (исходящий поток).
Все операции с HCI должны выполняться на узле HCI, но не на узле
драйвера устройства. В качестве имени по умолчанию для узла HCI
используется devicehci. Дополнительные подробности
можно найти на справочной странице &man.ng.hci.4;.Одной из самой часто выполняемой задач является обнаружение
Bluetooth-устройств в радиусе RF-доступности. Эта операция называется
опросом (inquiry). Опрос и другие операции,
связанные с HCI, выполняются при помощи утилиты &man.hccontrol.8;.
Пример ниже показывает, как найти доступные устройства Bluetooth.
Список таких устройств должен быть получен в течение нескольких секунд.
Заметьте, что удалённые устройства будут отвечать на опрос, если только
они находятся в режиме обнаруживаемости
(discoverable).&prompt.user; hccontrol -n ubt0hci inquiry
Inquiry result, num_responses=1
Inquiry result #0
BD_ADDR: 00:80:37:29:19:a4
Page Scan Rep. Mode: 0x1
Page Scan Period Mode: 00
Page Scan Mode: 00
Class: 52:02:04
Clock offset: 0x78ef
Inquiry complete. Status: No error [00]BD_ADDR является уникальным адресом устройства
Bluetooth, вроде MAC-адресов сетевых адаптеров. Этот адрес необходим
для дальнейшей работы с устройством. Адресу BD_ADDR можно присвоить
удобное для чтения имя. Файл /etc/bluetooth/hosts
содержит информацию об известных хостах Bluetooth. В следующем примере
показано, как получить имя, назначенное удалённому устройству:&prompt.user; hccontrol -n ubt0hci remote_name_request 00:80:37:29:19:a4
BD_ADDR: 00:80:37:29:19:a4
Name: Pav's T39Если вы выполните опрос на другом Bluetooth-устройстве, но ваш
компьютер будет опознан как your.host.name (ubt0).
Имя, назначаемое локальному устройству, может быть в любой момент
изменено.Система Bluetooth предоставляет услуги по соединениям типа
точка-точка (при этом задействованы только два устройства Bluetooth)
или точка-ко-многим-точкам. В последнем случае соединение используется
совместно несколькими устройствам Bluetooth. В следующем примере
показывается, как получить список активных для локального устройства
соединений:&prompt.user; hccontrol -n ubt0hci read_connection_list
Remote BD_ADDR Handle Type Mode Role Encrypt Pending Queue State
00:80:37:29:19:a4 41 ACL 0 MAST NONE 0 0 OPENИдентификатор соединения (connection handle)
полезен, когда необходимо прекратить соединение. Заметьте, что обычно
нет нужды делать это вручную. Стек будет автоматически разрывать
неактивные соединения.&prompt.root; hccontrol -n ubt0hci disconnect 41
Connection handle: 41
Reason: Connection terminated by local host [0x16]Обратитесь к помощи посредством hccontrol help
для получения полного списка доступных HCI-команд. Большинство команд
HCI для выполнения не требуют прав администратора системы.L2CAPLogical Link Control and Adaptation Protocol (L2CAP)Протокол L2CAP (Logical Link Control and Adaptation Protocol)
предоставляет услуги по работе с данными, как ориентированные на
соединения, так и без ориентации на них, протоколам более высокого
уровня с возможностями мультиплексирования и обеспечением операций по
сегментации и обратной сборке. L2CAP позволяет протоколам более
высокого уровня и приложениям передавать и получать пакеты данных
L2CAP длиной до 64 Кбайт.L2CAP основан на концепции каналов. Каналом
является логическое соединение поверх соединения по радиоканалу.
Каждый канал привязан к некоторому протоколу по принципу
многие-к-одному. Несколько каналов могут быть привязаны к одному и
тому же протоколу, но канал не может быть привязан к нескольким
протоколам. Каждый пакет L2CAP, получаемый каналом, перенаправляется
к соответствующему протоколу более высокого уровня. Несколько каналов
могут совместно использовать одно и то же радиосоединение.Для одного Bluetooth-устройства создается один узел Netgraph типа
l2cap. Узел L2CAP обычно подключается к узлу
Bluetooth HCI (нижестоящий) и узлам Bluetooth-сокетов (вышестоящие).
По умолчанию для узла L2CAP используется имя
devicel2cap. Для получения дополнительной информации
обратитесь к справочной странице по &man.ng.l2cap.4;.Полезной является программа &man.l2ping.8;, которая может
использоваться для проверки связи с другими устройствами. Некоторые
реализации Bluetooth могут не возвращать все данные, посылаемые им,
так что 0 bytes в следующем примере - это
нормально.&prompt.root; l2ping -a 00:80:37:29:19:a4
0 bytes from 0:80:37:29:19:a4 seq_no=0 time=48.633 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=1 time=37.551 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=2 time=28.324 ms result=0
0 bytes from 0:80:37:29:19:a4 seq_no=3 time=46.150 ms result=0Утилита &man.l2control.8; используется для выполнения различных
операций с узлами L2CAP. В этом примере показано, как получить список
логических соединений (каналов) и перечень радиосоединений локального
устройства:&prompt.user; l2control -a 00:02:72:00:d4:1a read_channel_list
L2CAP channels:
Remote BD_ADDR SCID/ DCID PSM IMTU/ OMTU State
00:07:e0:00:0b:ca 66/ 64 3 132/ 672 OPEN
&prompt.user; l2control -a 00:02:72:00:d4:1a read_connection_list
L2CAP connections:
Remote BD_ADDR Handle Flags Pending State
00:07:e0:00:0b:ca 41 O 0 OPENЕщё одним диагностическим инструментом является &man.btsockstat.1;.
Она выполняет действия, подобные тем, что обычно выполняет
&man.netstat.1;, но со структурами данных, связанных с работой в сети
Bluetooth. В примере ниже описывается то же самое логическое
соединение, что и с &man.l2control.8; выше.&prompt.user; btsockstat
Active L2CAP sockets
PCB Recv-Q Send-Q Local address/PSM Foreign address CID State
c2afe900 0 0 00:02:72:00:d4:1a/3 00:07:e0:00:0b:ca 66 OPEN
Active RFCOMM sessions
L2PCB PCB Flag MTU Out-Q DLCs State
c2afe900 c2b53380 1 127 0 Yes OPEN
Active RFCOMM sockets
PCB Recv-Q Send-Q Local address Foreign address Chan DLCI State
c2e8bc80 0 250 00:02:72:00:d4:1a 00:07:e0:00:0b:ca 3 6 OPENRFCOMMПротокол RFCOMMПротокол RFCOMM эмулирует последовательные порты поверх протокола
L2CAP. Он основан на ETSI-стандарте TS 07.10. RFCOMM представляет
собой простой транспортный протокол, с дополнительными возможностями по
эмуляции 9 цепей последовательных портов RS-232 (EIATIA-232-E).
Протокол RFCOMM поддерживает одновременно до 60 соединений (каналов
RFCOMM) между двумя устройствами Bluetooth.В рамках RFCOMM полный коммуникационный маршрут включает два
приложения, работающие на разных устройствах (конечные коммуникационные
точки) с коммуникационным сегментом между ними. RFCOMM предназначен
для сокрытия приложений, использующих последовательные порты устройств,
в которых они расположены. Коммуникационный сегмент по сути является
Bluetooth-связью от одного устройства к другому (прямое
соединение).RFCOMM имеет дело с соединением между устройствами в случае прямого
соединения, или между устройством и модемом в сетевом случае. RFCOMM
может поддерживать и другие конфигурации, такие, как модули, работающие
через беспроводную технологию Bluetooth с одной стороны и
предоставляющие проводное соединение с другой стороны.Во &os; протокол RFCOMM реализован на уровне сокетов
Bluetooth.pairingPairing of DevicesПо умолчанию связь Bluetooth не аутентифицируется, поэтому любое
устройство может общаться с любым другим. Устройство Bluetooth
(например, сотовый телефон) может задать обязательность аутентификации
для предоставления определённого сервиса (в частности, услугу доступа
по коммутируемой линии). Bluetooth-аутентификация обычно выполняется
через PIN-коды. PIN-код представляет из себя
ASCII-строку длиной до 16 символов. Пользователь обязан ввести один и
тот же PIN-код на обоих устройствах. Как только он введёт PIN-код,
оба устройства сгенерируют ключ связи. После
этого ключ может быть сохранён либо в самом устройстве, либо на
постоянном носителе. В следующий раз оба устройства будут использовать
ранее сгенерированный ключ соединения. Процедура, описанная выше,
носит название подгонки пары (pairing). Заметьте,
что если ключ связи потерян любой из сторон, то подбор пары должен быть
повторен.За обработку всех запросов на Bluetooth-аутентификацию отвечает
даемон &man.hcsecd.8;. По умолчанию файл конфигурации называется
/etc/bluetooth/hcsecd.conf. Пример раздела,
содержащего информацию о сотовом телефоне с явно заданным PIN-кодом
1234 приведен ниже:device {
bdaddr 00:80:37:29:19:a4;
name "Pav's T39";
key nokey;
pin "1234";
}Кроме длины, на PIN-коды не накладывается никаких ограничений.
Некоторые устройства (например, Bluetooth-гарнитуры) могут иметь
фиксированный встроенный PIN-код. Параметр
позволяет запустить &man.hcsecd.8; как нефоновый процесс, что облегчает
просмотр происходящих событий. Задайте получение парного ключа на
удалённом устройстве и инициируйте Bluetooth-соединение с этим
устройством. Удалённое устройство должно подтвердить получение пары и
запросить PIN-код. Введите тот же самый код, что находится в
hcsecd.conf. Теперь ваш ПК и удалённое устройство
спарены. Альтернативным способом является инициация процесса создания
пары на удалённом устройстве. Ниже даётся пример выдачи протокола
команды hcsecd:hcsecd[16484]: Got Link_Key_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', link key doesn't exist
hcsecd[16484]: Sending Link_Key_Negative_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Got PIN_Code_Request event from 'ubt0hci', remote bdaddr 0:80:37:29:19:a4
hcsecd[16484]: Found matching entry, remote bdaddr 0:80:37:29:19:a4, name 'Pav's T39', PIN code exists
hcsecd[16484]: Sending PIN_Code_Reply to 'ubt0hci' for remote bdaddr 0:80:37:29:19:a4SDPService Discovery Protocol (SDP)Протокол обнаружения сервисов SDP даёт возможность клиентским
приложениям осуществлять поиск услуг, предоставляемых серверными
приложениями, а также характеристик этих услуг. В перечень атрибутов
сервиса включается тип класса предлагаемого сервиса и информация о
механизме или протоколе, требуемом для использования сервиса.SDP подразумевает коммуникации между SDP-сервером и SDP-клиентом.
Сервер поддерживает список сервисов, в котором описываются параметры
сервисов, связанных с сервером. Каждая запись об услуге содержит
информацию об одном сервисе. Клиент может запросить информацию об
определённом сервисе, обслуживаемом SDP-сервером, выдавая SDP-запрос.
Если клиент или приложение, связанное с клиентом, решат воспользоваться
сервисом, то для его использования необходимо открыть отдельное
соединение к устройству, предоставляющему сервис. SDP предоставляет
механизм обнаружения услуг и их параметров, но не даёт механизма
использования этих сервисов.Обычно SDP-клиент выполняет поиск услуг на основе некоторых
желаемых характеристик услуг. Однако иногда возникает необходимость
выяснить полный перечень типов услуг, предоставляемых SDP-сервером,
не имея никакой информации об имеющихся сервисах. Такой процесс
всех предлагаемых сервисов называется обзором
(browsing).Bluetooth SDP сервер &man.sdpd.8; и клиент с интерфейсом
командной строки &man.sdpcontrol.8; включены в стандартную поставку
&os;. В следующем примере показано, как выполнять
запрос на SDP-обзор.&prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec browse
Record Handle: 00000000
Service Class ID List:
Service Discovery Server (0x1000)
Protocol Descriptor List:
L2CAP (0x0100)
Protocol specific parameter #1: u/int/uuid16 1
Protocol specific parameter #2: u/int/uuid16 1
Record Handle: 0x00000001
Service Class ID List:
Browse Group Descriptor (0x1001)
Record Handle: 0x00000002
Service Class ID List:
LAN Access Using PPP (0x1102)
Protocol Descriptor List:
L2CAP (0x0100)
RFCOMM (0x0003)
Protocol specific parameter #1: u/int8/bool 1
Bluetooth Profile Descriptor List:
LAN Access Using PPP (0x1102) ver. 1.0
... и так далее. Заметьте, что каждый сервис имеет перечень
атрибутов (например, канал RFCOMM). В зависимости от сервиса вам может
потребоваться где-то сохранить эти атрибуты. Некоторые реализации
Bluetooth не поддерживают просмотр сервисов и могут возвращать пустой
список. В этом случае возможен поиск конкретной услуги. В примере
ниже показано, как выполнить поиск службы OBEX Object Push
(OPUSH):&prompt.user; sdpcontrol -a 00:01:03:fc:6e:ec search OPUSHВо &os; предоставление сервисов клиентам Bluetooth осуществляется
сервером &man.sdpd.8;:&prompt.root; sdpdПриложение на локальном сервере, желающее предоставить сервис
Bluetooth удаленным клиентам, регистрирует сервис через локального
даемона SDP. Пример такого приложения — &man.rfcomm.pppd.8;.
После запуска оно регистрирует Bluetooth LAN сервис через локального
даемона SDP.Список сервисов, зарегистрированных через локальный SDP сервер,
может быть получен путем выдачи запроса на просмотр SDP через
локальный контрольный канал:&prompt.root; sdpcontrol -l browseДоступ к сети по коммутируемой линии связи (DUN) и по протоколу
PPP (LAN)Модуль работы с коммутируемым доступом к сети (DUN - Dial-Up
Networking) в большинстве случаев используется с модемами и сотовыми
телефонами. Этот модуль покрывает следующие случаи:сотовый телефон или модем используется вместе с компьютером
в качестве беспроводного модема для подключения к серверу
коммутируемого доступа в Интернет, или другой коммутируемой
услуге;сотовый телефон или модем используется компьютером для приёма
входящих соединений.Модуль доступа к сети по протоколу PPP (Network Access with
PPP - LAN) может использоваться в следующих ситуациях:доступ к ЛВС для одного Bluetooth-устройства;доступ к ЛВС для нескольких Bluetooth-устройств;связь между двумя ПК (при помощи протокола PPP поверх
эмулируемого последовательного канала связи).Во &os; оба случая реализуются при помощи сервисных программ
&man.ppp.8; и &man.rfcomm.pppd.8; - это обработчик, преобразующий
RFCOMM-соединения Bluetooth в нечто, с чем может работать PPP. Перед
тем, как использовать любой модуль, в файле
/etc/ppp/ppp.conf должна быть создана новая
PPP-метка. Примеры использования можно найти в справочной странице к
&man.rfcomm.pppd.8;.В следующем примере &man.rfcomm.pppd.8; будет использоваться для
открытия RFCOMM-соединения к удалённому устройству с BD_ADDR
00:80:37:29:19:a4 на DUN RFCOMM-канале. Реальный номер RFCOMM-канала
будет получаться с удалённого устройства через SDP. Возможно указать
RFCOMM-канал вручную, и в этом случае &man.rfcomm.pppd.8; не будет
выполнять SDP-запрос. Для нахождения RFCOMM-канала на удалённом
устройстве используйте утилиту &man.sdpcontrol.8;.&prompt.root; rfcomm_pppd -a 00:80:37:29:19:a4 -c -C dun -l rfcomm-dialupДля того, чтобы организовать сервис Network Access with PPP (LAN),
необходимо запустить сервер &man.sdpd.8;. В файле
/etc/ppp/ppp.conf должна быть создана новая запись
для клиентов LAN. Примеры можно найти в справке по
&man.rfcomm.pppd.8;. Наконец, запустите RFCOMM PPP сервер на
существующем номере канала RFCOMM. Сервер RFCOMM PPP автоматически
зарегистрирует Bluetooth LAN сервис через локальный SDP даемон.
В примере ниже показано, как запустить сервер RFCOMM PPP.&prompt.root; rfcomm_pppd -s -C 7 -l rfcomm-serverOBEXOBEX Object Push (OPUSH) ProfileOBEX является широко используемым протоколом для простой передачи
файлов между мобильными устройствами. В основном он используется в
коммуникациях через инфракрасный порт для передачи файлов между
ноутбуками или КПК, а также для пересылки визитных
карточек или календарных планов между сотовыми телефонами и
другими устройствами с персональными информационными
менеджерами.Сервер и клиент OBEX реализованы в виде пакета стороннего
разработчика obexapp, который доступен
в виде порта comms/obexapp.Клиент OBEX используется для посылки или приёма объектов с сервера
OBEX. Объектом, к примеру, может быть визитная карточка или
указание. Клиент OBEX может получить номер RFCOMM-канала, указав
вместо него имя сервиса. Поддерживаются следующие имена сервиса: IrMC,
FTRN и OPUSH. Канал RFCOMM можно задать его номером. Ниже даётся
пример сеанса OBEX, где с сотового телефона забирается объект с
информацией об устройстве, а новый объект (визитная карточка)
передаётся в каталог сотового телефона.&prompt.user; obexapp -a 00:80:37:29:19:a4 -C IrMC
obex> get
get: remote file> telecom/devinfo.txt
get: local file> devinfo-t39.txt
Success, response: OK, Success (0x20)
obex> put
put: local file> new.vcf
put: remote file> new.vcf
Success, response: OK, Success (0x20)
obex> di
Success, response: OK, Success (0x20)Для того, чтобы предоставить сервис OBEX Push, должен быть запущен
сервер &man.sdpd.8;. Должен быть создан
корневой каталог, в котором будут сохраняться все поступающие объекты.
По умолчанию корневым каталогом является
/var/spool/obex. Наконец, запустите OBEX
сервер на существующем номере канала RFCOMM. OBEX сервер
автоматически зарегистрирует сервис OBEX Object Push через локального
даемона SDP. В примере ниже показано, как запустить
OBEX-сервер.&prompt.root; obexapp -s -C 10Профиль последовательного порта (SPP)Профиль последовательного порта (SPP - Serial Port Profile) позволяет
Bluetooth-устройствам осуществлять эмуляцию последовательного порта
RS232 (или подобного). Этот профиль покрывает случаи, касающиеся
работы унаследованных приложений с Bluetooth в качестве замены
кабельному соединению, при это используется абстракция виртуального
последовательного порта.Утилита &man.rfcomm.sppd.1; реализует профиль
последовательного порта. В качестве виртуального последовательного порта
используется псевдотерминал. В примере ниже показано, как подключиться
к сервису Serial Port удалённого устройства. Заметьте, что вы не
указываете RFCOMM-канал - &man.rfcomm.sppd.1; может получить его с
удалённого устройства через SDP. Если вы хотите переопределить это,
укажите RFCOMM-канал явно в командной строке.&prompt.root; rfcomm_sppd -a 00:07:E0:00:0B:CA -t /dev/ttyp6
rfcomm_sppd[94692]: Starting on /dev/ttyp6...После подключения псевдотерминал можно использовать как
последовательный порт:&prompt.root; cu -l ttyp6Решение проблемУдалённое устройство не подключаетсяНекоторые старые Bluetooth-устройства не поддерживают
переключение ролей. По умолчанию, когда &os; подтверждает новое
соединение, она пытается выполнить переключение роли и стать ведущим
устройством. Устройства, которые это не поддерживают, не смогут
подключиться. Заметьте, что переключение ролей выполняется при
установлении нового соединения, поэтому невозможно выяснить,
поддерживает ли удалённое устройство переключение ролей. На
локальной машине имеется возможность отключить переключение ролей при
помощи HCI-параметра:&prompt.root; hccontrol -n ubt0hci write_node_role_switch 0Что-то идёт не так, можно ли посмотреть, что в точности
происходит?Да, можно. Воспользуйтесь пакетом
hcidump-1.5 стороннего разработчика,
который доступен для загрузки с . Утилита
hcidump похожа на &man.tcpdump.1;. Она
может быть использована для вывода на терминал содержимого
Bluetooth-пакетов и сбрасывать пакеты Bluetooth в файл.StevePetersonТекст создал МостыВведениеподсеть IPсетевой мостИногда полезно разделить одну физическую сеть (такую, как
сегмент Ethernet) на два отдельных сегмента сети без необходимости
создания подсетей IP и использования маршрутизатора для соединения
сегментов. Устройство, которое соединяет две сети на такой манер,
называется сетевым мостом (bridge).
Система FreeBSD с двумя сетевыми адаптерами может выступать в роли
моста.Мост работает на основе изучения адресов уровня MAC (адресов
Ethernet) устройств на каждом из своих сетевых интерфейсах.
Он перенаправляет трафик между двумя сетями, только когда адреса
отправителя и получателя находятся в разных сетях.По многим параметрам мост работает также, как коммутатор Ethernet
с малым количеством портов.Ситуации, когда можно использовать мостыНа сегодняшний день есть две ситуации, когда можно использовать
мост.Большой трафик в сегментеПервая ситуация возникает, когда ваша физическая сеть перегружена
трафиком, но по каким-то соображениям вы не хотите разделять сеть
на подсети и соединять их с помощью маршрутизатора.Давайте рассмотрим в качестве примера газету, в которой
редакторский и производственный отделы находятся в одной и той же
подсети. Пользователи в редакторском отделе все используют сервер
A для служб доступа к файлам, а пользователи
производственного отдела используют сервер B. Для
объединения всех пользователей используется сеть Ethernet, а высокая
нагрузка на сеть замедляет работу.Если пользователи редакторского отдела могут быть собраны в
одном сегменте сети, а пользователи производственного отдела в
другом, то два сетевых сегмента можно объединить мостом. Только
сетевой трафик, предназначенный для интерфейсов с
другой стороны моста, будет посылаться в другую сеть,
тем самым снижая уровень нагрузки на каждый сегмент сети.Межсетевой экран с возможностями фильтрации/ограничения
пропускной способности трафикамежсетевой экрантрансляция сетевых адресовВторой распространенной ситуацией является необходимость в
обеспечении функций межсетевого экрана без трансляции
сетевых адресов (NAT).Для примера можно взять маленькую компанию, которая подключена
к своему провайдеру по каналу DSL или ISDN. Для неё провайдер выделил
13 глобально доступных IP-адресов для имеющихся в сети 10 персональных
компьютеров. В такой ситуации использование межсетевого экрана
на основе маршрутизатора затруднено из-за проблем с разделением на
подсети.маршрутизаторDSLISDNМежсетевой экран на основе моста может быть настроен и включен
между маршрутизаторами DSL/ISDN без каких-либо проблем с
IP-адресацией.Настройка мостаВыбор сетевого адаптераДля работы моста требуются по крайней мере два сетевых адаптера.
К сожалению, не все сетевые адаптеры во FreeBSD 4.0 поддерживают
функции моста. Прочтите страницу Справочника по &man.bridge.4; для
выяснения подробностей о поддерживаемых адаптерах.Перед тем, как продолжить, сначала установите и протестируйте
два сетевых адаптера.Изменения в конфигурации ядрапараметры ядраoptions BRIDGEДля включения поддержки функций моста в ядре, добавьте
строчкуoptions BRIDGEв файл конфигурации вашего ядра, и перестройте ядро.Поддержка функций межсетевого экранамежсетевой экранЕсли вы планируете использовать мост в качестве межсетевого
экрана, вам нужно также добавить опции
IPFIREWALL и PFIL_HOOKS.
Прочтите , содержащий общую
информацию о настройке моста в качестве межсетевого экрана.Если вам необходимо обеспечить прохождение не-IP пакетов (таких,
как ARP) через мост, то имеется опция межсетевого
экрана, которую можно задать. Это опция
IPFIREWALL_DEFAULT_TO_ACCEPT. Заметьте, что при
этом правило, используемое межсетевым экраном по умолчанию, меняется
на разрешительное для всех пакетов. Перед тем, как задавать эту
опцию, убедитесь, что вы понимаете работу вашего набора
правил.Поддержка функций ограничения пропускной способностиЕсли вы хотите использовать мост в качестве машины,
ограничивающей пропускную способность, то добавьте в файл
конфигурации ядра опцию DUMMYNET. Дополнительную
информацию можно почерпнуть из страницы Справочника по
&man.dummynet.4;.Включение функций мостаДобавьте строкуnet.link.ether.bridge=1в файл /etc/sysctl.conf для включения функций
моста во время работы системы, и строку:net.link.ether.bridge_cfg=if1,if2для включения функций моста для указанных интерфейсов (замените
if1 и if2 на
имена двух ваших сетевых интерфейсов). Если вы хотите, чтобы
проходящие через мост пакеты фильтровались посредством &man.ipfw.8;,
вы должны добавить строчку:net.link.ether.bridge_ipfw=1Во &os; 5.2-RELEASE и последующих версиях нужно использовать
вместо указанных следующие строки:net.link.ether.bridge.enable=1
net.link.ether.bridge.config=if1,if2
net.link.ether.bridge.ipfw=1Дополнительные замечанияЕсли вы хотите осуществлять удалённый доступ на мост через
&man.ssh.1; из сети, то корректно назначить одному из сетевых
адаптеров IP-адрес. Общепринято, что назначение адреса обоим сетевым
адаптерам является не самой хорошей идеей.Если в вашей сети присутствует несколько мостов, не должно быть
более одного маршрута между любыми двумя рабочими станциями. С
технической точки зрения это означает отсутствие поддержки протокола
spanning tree.Сетевой мост может увеличить задержки в замерах командой
&man.ping.8;, особенно для трафика между двумя разными
сегментами.Jean-FrançoisDockèsТекст обновил AlexDupreРеорганизовал и улучшил Работа с бездисковыми станциямиработа без дискаМашина с FreeBSD может загружаться по сети и работать без наличия
локального диска, используя файловые системы, монтируемые с сервера NFS.
Кроме стандартных конфигурационных файлов, не нужны никакие модификации
в системе. Такую систему легко настроить, потому что все необходимые
элементы уже готовы:Имеется по крайней мере два возможных способа загрузки ядра по
сети:PXE: Система &intel; Preboot eXecution
Environment является формой загрузочного ПЗУ, встроенного в
некоторые сетевые адаптеры или материнские платы. Обратитесь к
справочной странице по &man.pxeboot.8; для получения более полной
информации.Порт Etherboot (net/etherboot) генерирует код,
который может применяться в ПЗУ для загрузки ядра по сети. Код
может быть либо прошит в загрузочный PROM на сетевом адаптере,
либо загружен с локальной дискеты (или винчестера), или с
работающей системы &ms-dos;. Поддерживаются многие сетевые
адаптеры.Примерный скрипт
(/usr/share/examples/diskless/clone_root)
облегчает создание и поддержку корневой файловой системы рабочей
станции на сервере. Скрипт, скорее всего, потребует некоторых
настроек, но он позволит вам быстро начать работу.Стандартные файлы начального запуска системы, располагающиеся в
/etc, распознают и поддерживают загрузку системы
в бездисковом варианте.Подкачка, если она нужна, может выполняться через файл NFS либо
на локальный диск.Существует много способов настройки бездисковой рабочей станции. При
этом задействованы многие компоненты, и большинство из них могут быть
настроены для удовлетворения ваших вкусов. Далее будет описаны варианты
полной настройки системы, при этом упор будет делаться на простоту и
совместимость с стандартной системой скриптов начальной загрузки FreeBSD.
Описываемая система имеет такие характеристики:Бездисковые рабочие станции совместно используют
файловую систему / в режиме только
чтения, а также используют /usr совместно тоже
в режиме только чтения.Корневая файловая система является копией
стандартной корневой системы FreeBSD (обычно сервера), с некоторыми
настроечными файлами, измененными кем-то специально для бездисковых
операций или, возможно, для рабочей станции, которой она
предназначена.Части корневой файловой системы, которые
должны быть доступны для записи, перекрываются файловыми системами
&man.mfs.8; (&os; 4.X) или &man.md.4; (&os; 5.X).
Любые изменения будут потеряны при перезагрузках
системы.Ядро передается и загружается посредством
Etherboot или PXE,
и в некоторых ситуациях может быть использован любой из
этих методов.Как описано, эта система не защищена. Она должна располагаться в
защищенной части сети, а другие хосты не должны на нее
полагаться.Вся информация этого раздела была протестирована с
релизами &os; 4.9-RELEASE и 5.2.1-RELEASE. Текст структурирован
преимущественно для использования с 4.X. Отличия
для 5.X упоминаются особо.Общая информацияНастройка бездисковых рабочих станций относительно проста,
но в то же время легко сделать ошибку. Иногда сложно
диагностировать эти ошибки по нескольким причинам.
Например:Параметры компиляции могут по-разному проявлять
себя во время работы.Сообщения об ошибках бывают загадочны или вовсе
отсутствуют.В данной ситуации некоторые знания, касающиеся используемых
внутренних механизмов, очень полезны при разрешении проблем,
которые могут возникнуть.Для выполнения успешной загрузки необходимо произвести
несколько операций:Компьютеру необходимо получить начальные параметры, такие
как собственный IP адрес, имя исполняемого файла, корневой
каталог. Для этого используются протоколы DHCP
или BOOTP. DHCP это совместимое расширение
BOOTP, используются те же номера портов и основной формат
пакетов.Возможна настройка системы для использования только BOOTP.
Серверная программа &man.bootpd.8; включена в основную систему
&os;.Тем не менее, у DHCP есть множество
преимуществ над BOOTP (лучше файлы настройки, возможность
использования PXE, плюс многие другие
преимущества, не относящиеся непосредственно к бездисковым
операциям), и мы в основном будем описывать настройку
DHCP, с эквивалентными примерами
для &man.bootpd.8;, когда это возможно. Пример
конфигурации будет использовать пакет
ISC DHCP (релиз
3.0.1.r12 был установлен на тестовом сервере).Компьютеру требуется загрузить в локальную память одну
или несколько программ. Используются TFTP
или NFS. Выбор между
TFTP или NFS
производится во время компилирования в нескольких местах.
Часто встречающаяся ошибка это указание имен файлов для
другого протокола: TFTP обычно
загружает все файлы с одного каталога сервера, и принимает
имена файлов относительно этого каталога. NFS
нужны абсолютные пути к файлам.Необходимо инициализировать и выполнить возможные
промежуточные программы загрузки и ядро. В этой области
существует несколько важных вариаций:PXE загрузит &man.pxeboot.8;,
являющийся модифицированной версией загрузчика
третьей стадии &os;. &man.loader.8; получит большинство
параметров, необходимых для старта системы, и оставит
их в окружении ядра до контроля передачи. В этом
случае возможно использование ядра
GENERIC.Etherboot, непосредственно
загрузит ядро, с меньшей подготовкой. Вам потребуется
собрать ядро со специальными параметрами.PXE и Etherboot
работают одинаково хорошо с системами 4.X. Поскольку ядро
5.X обычно позволяет &man.loader.8; выполнить больше
предварительной работы, метод PXE на системах
5.X предпочтителен.Если ваш BIOS и сетевые карты поддерживают
PXE, используйте его. Однако, все же возможен
запуск системы 5.X с Etherboot.Наконец, компьютеру требуется доступ к файловым системам.
NFS используется во всех случаях.Обратитесь также к странице справочника &man.diskless.8;.Инструкции по настройкеКонфигурация с использованием ISC DHCPDHCPбездисковые конфигурацииСервер ISC DHCP может обрабатывать
как запросы BOOTP, так и запросы DHCP.Начиная с релиза 4.9, ISC DHCP 3.0
не включается в поставку системы. Сначала вам нужно будет
установить порт net/isc-dhcp3-server
или соответствующий пакет.После установки ISC DHCP ему для
работы требуется конфигурационный файл (обычно называемый
/usr/local/etc/dhcpd.conf). Вот
прокомментированный пример, где хост margaux
использует Etherboot, а хост
corbieres использует
PXE:
default-lease-time 600;
max-lease-time 7200;
authoritative;
option domain-name "example.com";
option domain-name-servers 192.168.4.1;
option routers 192.168.4.1;
subnet 192.168.4.0 netmask 255.255.255.0 {
use-host-decl-names on;
option subnet-mask 255.255.255.0;
option broadcast-address 192.168.4.255;
host margaux {
hardware ethernet 01:23:45:67:89:ab;
fixed-address margaux.example.com;
next-server 192.168.4.4;
filename "/data/misc/kernel.diskless";
option root-path "192.168.4.4:/data/misc/diskless";
}
host corbieres {
hardware ethernet 00:02:b3:27:62:df;
fixed-address corbieres.example.com;
next-server 192.168.4.4;
filename "pxeboot";
option root-path "192.168.4.4:/data/misc/diskless";
}
}
Этот параметр указывает dhcpd посылать
значения деклараций host как имя хоста для
бездисковой машины. Альтернативным способом было бы добавление
option host-name
margaux внутри объявлений
host.Директива next-server определяет сервер
TFTP или NFS,
используемый для получения загрузчика или файла ядра
(по умолчанию используется тот же самый хост, на котором
расположен сервер DHCP).Директива filename определяет файл,
который Etherboot или
PXE будут загружать для следующего шага
выполнения. Он должен быть указан в соответствии с
используемым методом передачи.
Etherboot может быть скомпилирован
для использования NFS или
TFTP. &os; порт по умолчанию использует
NFS. PXE использует
TFTP, поэтому здесь применяются
относительные пути файлов (это может зависеть от настроек
TFTP сервера, но обычно довольно типично).
Кроме того, PXE загружает
pxeboot, а не ядро. Существуют другие
интересные возможности, такие как загрузка
pxeboot из каталога
/boot &os; CD-ROM
(поскольку &man.pxeboot.8; может загружать
GENERIC ядро, это делает возможной
загрузку с удаленного CD-ROM).Параметр root-path определяет путь к
корневой файловой системе, в обычной нотации
NFS. При использовании
PXE, можно оставить IP хоста отключенным,
если параметр ядра BOOTP не используется. Затем
NFS сервер может использоваться так же,
как и TFTP.Настройка с использованием BOOTPBOOTPбездисковые конфигурацииДалее описана эквивалентная конфигурация с использованием
bootpd (для одного клиента).
Она будет располагаться в
/etc/bootptab.Пожалуйста, отметьте, что Etherboot
должен быть откомпилирован с нестандартной опцией
NO_DHCP_SUPPORT для того, чтобы можно было
использовать BOOTP, и что для работы PXE
необходим DHCP.
Единственным очевидным
преимуществом bootpd является его
наличие в поставке системы.
.def100:\
:hn:ht=1:sa=192.168.4.4:vm=rfc1048:\
:sm=255.255.255.0:\
:ds=192.168.4.1:\
:gw=192.168.4.1:\
:hd="/tftpboot":\
:bf="/kernel.diskless":\
:rp="192.168.4.4:/data/misc/diskless":
margaux:ha=0123456789ab:tc=.def100
Подготовка программы загрузки при помощи
EtherbootEtherbootСайт
Etherboot содержит
подробную документацию, в основном предназначенную для систем
Linux, но несомненно, она полезна. Далее будет просто кратко
описано, как вы должны использовать
Etherboot в системе FreeBSD.Сначала вы должны установить пакет или порт net/etherboot.Вы можете изменить настройку
Etherboot (например, для использования
TFTP вместо NFS) путем
редактирования файла Config
в каталоге исходных текстов
Etherboot.В нашей ситуации мы будем использовать загрузочную дискету. Для
других методов (PROM или программа &ms-dos;) пожалуйста, обратитесь к
документации по Etherboot.Для создания загрузочной дискеты, вставьте дискету в дисковод на
машине, где установлен Etherboot, затем
перейдите в каталог src в дереве
Etherboot и наберите:
&prompt.root; gmake bin32/devicetype.fd0devicetype зависит от типа адаптера
Ethernet на бездисковой рабочей станции. Обратитесь к файлу
NIC в том же самом каталоге для определения
правильного значения для
devicetype.Загрузка с PXEПо умолчанию, &man.pxeboot.8; загружает ядро через
NFS. Он может быть скомпилирован для
использования вместо него TFTP путем
указания параметра LOADER_TFTP_SUPPORT в
/etc/make.conf. Смотрите комментарии в
/etc/defaults/make.conf (или
/usr/share/examples/etc/make.conf систем
5.X) с инструкциями.Есть два не документированных параметра
make.conf, которые могут быть полезны для
настройки бездискового компьютера с последовательной консолью:
BOOT_PXELDR_PROBE_KEYBOARD, и
BOOT_PXELDR_ALWAYS_SERIAL (последняя существует
только в &os; 5.X).Для использования PXE при загрузке компьютера
вам обычно потребуется выбрать параметр Boot from
network (загрузка по сети) в настройках
BIOS, или нажать функциональную клавишу во
время загрузки PC.Настройка серверов TFTP и NFSTFTPбездисковые конфигурацииNFSбездисковые конфигурацииЕсли вы используете PXE или
Etherboot, настроенные для
использования TFTP, вам нужно включить
tftpd на файловом сервере:Создайте каталог, файлы которого будет обслуживать
tftpd, например,
/tftpboot.Добавьте в ваш /etc/inetd.conf такую
строчку:tftp dgram udp wait root /usr/libexec/tftpd tftpd -l -s /tftpbootБывает, что некоторым версиям PXE
требуется TCP-вариант
TFTP. В таком случае добавьте вторую
строчку, заменяющую
dgram udp на stream
tcp.Укажите inetd на повторное чтение своего
конфигурационного файла:&prompt.root; kill -HUP `cat /var/run/inetd.pid`Вы можете поместить каталог tftpboot в любом
месте на сервере. Проверьте, что это местоположение указано как в
inetd.conf, так и в
dhcpd.conf.Во всех случаях, вам также нужно включить
NFS и экспортировать
соответствующую файловую систему на сервере
NFS.Добавьте следующее в
/etc/rc.conf:nfs_server_enable="YES"Экспортируйте файловую систему, в которой расположен
корневой каталог для бездисковой рабочей станции, добавив
следующую строку в /etc/exports (подправьте
точку монтирования и замените margaux
corbieres
именами бездисковых рабочих станций):/data/misc -alldirs -ro margaux corbieresУкажите mountd на повторное чтение
настроечного файла. На самом деле если вам потребовалось на
первом шаге включить NFS в /etc/rc.conf, то
вам нужно будет выполнить перезагрузку.&prompt.root; kill -HUP `cat /var/run/mountd.pid`Построение ядра для бездисковой рабочей станциибездисковые конфигурациинастройка ядраПри использовании Etherboot, вам
потребуется создать конфигурационный файл ядра для бездискового
клиента со
следующими параметрами (вдобавок к обычным):
options BOOTP # Use BOOTP to obtain IP address/hostname
options BOOTP_NFSROOT # NFS mount root filesystem using BOOTP info
Вам может потребоваться использовать
BOOTP_NFSV3, BOOT_COMPAT
и BOOTP_WIRED_TO
(посмотрите LINT в 4.X или
NOTES в 5.X).Эти имена параметров сложились исторически, и могут немного
ввести в заблуждение, поскольку включают необязательное
использование DHCP и BOOTP в ядре (возможно
включение обязательного использования BOOTP
или DHCP use).Постройте ядро (обратитесь к ) и
скопируйте его в каталог, указанный в
dhcpd.conf.При использовании PXE, сборка ядра
с вышеприведенными параметрами не является совершенно необходимой
(хотя желательна). Включение этих параметров приведет к
выполнению большинства DHCP запросов во время
загрузки ядра, с небольшим риском несоответствия новых значений
и значений, полученных &man.pxeboot.8; в некоторых особых
случаях. Преимущество использования в том, что в качестве
побочного эффекта будет установлено имя хоста. Иначе вам
потребуется установить имя хоста другим методом, например
в клиент-специфичном файле rc.conf.Для включения возможности загрузки с
Etherboot, в ядро 5.X необходимо
включить устройство hints. Вам потребуется установить
в файле конфигурации следующий параметр (см. файл
комментариев NOTES):hints "GENERIC.hints"Подготовка корневой файловой системыкорневая файловая системабездисковые конфигурацииВам нужно создать корневую файловую систему для бездисковых
рабочих станций, в местоположении, заданном как
root-path в
dhcpd.conf. В следующем разделе
описаны два способа, чтобы сделать это.Использование скрипта clone_rootЭто самый простой способ создания корневой файловой системы,
но на данный момент он не поддерживается в &os; 4.X. Этот
shell скрипт находится в
/usr/share/examples/diskless/clone_root,
и требует настройки, по крайней мере, задания того места, где
будет создана файловая система (переменная
DEST).Прочтите комментарии в начале скрипта для получения указаний.
Там описано, как строится основная файловая система, и как файлы
могут быть выборочно заменены версиями, предназначенными для работы
без диска, для подсети или для отдельной рабочей станции. Также
здесь даются примеры бездисковых файлов
/etc/fstab и
/etc/rc.conf.Файлы README в
/usr/share/examples/diskless много интересной
информации, но вместе с другими примерами из каталога
diskless они на самом деле описывают метод
настройки, который отличается от того, что используется в
clone_root и
стартовых скриптах системы из
/etc, этим несколько запутывая
дело. Используйте их только для справки, за исключением того случая,
когда вы выберете метод, ими описываемый, и тогда вам нужны
исправленные скрипты rc.Использование стандартной процедуры
make worldЭтот метод может быть применен к &os; 4.X или 5.X и
установит новую систему (не только корневую) в
DESTDIR. Все, что вам потребуется сделать,
это просто выполнить следующий скрипт:#!/bin/sh
export DESTDIR=/data/misc/diskless
mkdir -p ${DESTDIR}
cd /usr/src; make world && make kernel
cd /usr/src/etc; make distributionКак только это будет сделано, вам может потребоваться
настроить /etc/rc.conf и
/etc/fstab, помещенные в
DESTDIR, в соответствии с вашими
потребностями.Настройка области подкачкиЕсли это нужно, то файл подкачки, расположенный на сервере, можно
использовать посредством NFS. Один из методов,
используемых для этого, не поддерживается в релизах 5.X.Подкачка по NFS в &os; 4.XМестоположение и размер файла подкачки могут быть указаны
&os;-специфичными параметрами BOOTP/DHCP
128 и 129. Примеры файлов настройки для
ISC DHCP 3.0 или
bootpd приведены ниже:Добавьте следующие строки в
dhcpd.conf:
# Global section
option swap-path code 128 = string;
option swap-size code 129 = integer 32;
host margaux {
... # Standard lines, see above
option swap-path "192.168.4.4:/netswapvolume/netswap";
option swap-size 64000;
}
swap-path это путь к каталогу, где
находятся файлы подкачки. Название каждого файла имеет вид
swap.client-ip.Старые версии dhcpd использовали
синтаксис
option option-128 "..., который больше не
поддерживается.Во /etc/bootptab будет использоваться
такой синтаксис:T128="192.168.4.4:/netswapvolume/netswap":T129=0000fa00В файле /etc/bootptab размер файла
подкачки должен быть записан в шестнадцатеричном формате.На файловом сервере NFS создайте файл (или файлы)
подкачки:
&prompt.root; mkdir /netswapvolume/netswap
&prompt.root; cd /netswapvolume/netswap
&prompt.root; dd if=/dev/zero bs=1024 count=64000 of=swap.192.168.4.6
&prompt.root; chmod 0600 swap.192.168.4.6192.168.4.6 является IP-адресом
бездискового клиента.На файловом сервере NFS, в /etc/exports
добавьте такую строку:/netswapvolume -maproot=0:10 -alldirs margaux corbieresЗатем укажите mountd на повторное
чтение файла exports, как описано
ранее.Подкачка по NFS в &os; 4.XПоложение и размер файла подкачки могут быть указаны в
&os;-специфичных параметрах BOOTP/DHCP
с номерами 128 и 129. Ниже приведены примеры файлов
настройки для ISC DHCP 3.0 или
bootpd:Добавьте следующие строки к
dhcpd.conf:
# Global section
option swap-path code 128 = string;
option swap-size code 129 = integer 32;
host margaux {
... # Standard lines, see above
option swap-path "192.168.4.4:/netswapvolume/netswap";
option swap-size 64000;
}
swap-path это путь к каталогу, где
расположены файлы подкачки. Файлы называются
swap.client-ip.Старые версии dhcpd используют
синтаксис option option-128 "..., которые
более не поддерживаются./etc/bootptab вместо этого использует
следующий синтаксис:T128="192.168.4.4:/netswapvolume/netswap":T129=0000fa00В /etc/bootptab, размер
подкачки должен вычисляться в шестнадцатеричном
формате.Создайте на NFS сервере с файлами подкачки
файлы:
&prompt.root; mkdir /netswapvolume/netswap
&prompt.root; cd /netswapvolume/netswap
&prompt.root; dd if=/dev/zero bs=1024 count=64000 of=swap.192.168.4.6
&prompt.root; chmod 0600 swap.192.168.4.6192.168.4.6 это IP адрес
бездискового клиента.На файловом сервере NFS с файлами
подкачки добавьте следующую строку к
/etc/exports:/netswapvolume -maproot=0:10 -alldirs margaux corbieresЗатем заставьте mountd перечитать
конфигурационные файлы как было показано выше.Различные проблемыРабота с /usr, доступной только для
чтениябездисковые конфигурации/usr только для чтенияЕсли бездисковая рабочая станция настроена на запуск X, вам
нужно подправить настроечный файл для
XDM, который по умолчанию
помещает протокол ошибок в /usr.Использование не-FreeBSD сервераЕсли сервер с корневой файловой системой работает не под
управлением FreeBSD, вам потребуется создать корневую файловую
систему на машине FreeBSD, а затем скопировать ее в нужно место,
при помощи tar или
cpio.В такой ситуации иногда возникают проблемы со
специальными файлами в /dev из-за различной
разрядности целых чисел для старшего/младшего чисел. Решением
этой проблемы является экспортирование каталога с не-FreeBSD
сервера, монтирование его на машине с FreeBSD и запуск
скрипта MAKEDEV на машине с FreeBSD для создания
правильных файлов устройств (во FreeBSD 5.0 и более поздних версиях
используется &man.devfs.5; для создания файлов устройств прозрачно
для пользователя, запуск MAKEDEV в этих версиях
бессмысленно).ISDNISDNПолезным источником информации о технологии ISDN и его аппаратном
обеспечении является
Страница Дэна Кегела (Dan Kegel) об ISDN.Быстрое введение в ISDN:Если вы живёте в Европе, то вам может понадобиться изучить раздел
об ISDN-адаптерах.Если вы планируете использовать ISDN в основном для соединений
с Интернет через провайдера по коммутируемому, невыделенному
соединению, рекомендуется посмотреть информацию о терминальных
адаптерах. Это даст вам самую большую гибкость и наименьшее
количество проблем при смене провайдера.Если вы объединяете две локальные сети или подключаетесь к
Интернет через постоянное ISDN-соединение, рекомендуем остановить свой
выбор на отдельном мосте/маршрутизаторе.Стоимость является важным фактором при выборе вашего решения.
Далее перечислены все возможности от самого дешевого до самого дорогого
варианта.HellmuthMichaelisТекст предоставил Адаптеры ISDNISDNадаптерыРеализация ISDN во FreeBSD поддерживает только стандарт DSS1/Q.931
(или Евро-ISDN) при помощи пассивных адаптеров. Начиная с
FreeBSD 4.4 поддерживаются некоторые активные адаптеры, прошивки
которых поддерживают также другие сигнальные протоколы; также сюда
впервые включена поддержка адаптеров ISDN Primary Rate (PRI).Пакет программ isdn4bsd позволяет вам
подключаться к другим маршрутизаторам ISDN при помощи IP поверх DHLC,
либо при помощи синхронного PPP; либо при помощи PPP на уровне ядра с
isppp, модифицированного драйвера &man.sppp.4;, или
при помощи пользовательского
&man.ppp.8;. При использовании пользовательского &man.ppp.8; возможно
использование двух и большего числа B-каналов ISDN. Также имеется
приложение, работающее как автоответчик, и много утилит, таких, как
программный модем на 300 Бод.Во FreeBSD поддерживается все возрастающее число адаптеров ISDN для
ПК, и сообщения показывают, что они успешно используются по всей Европе
и других частях света.Из пассивных адаптеров ISDN поддерживаются в основном те, которые
сделаны на основе микросхем Infineon (бывший Siemens) ISAC/HSCX/IPAC
ISDN, а также адаптеры ISDN с микросхемами от Cologne Chip (только для
шины ISA), адаптеры PCI с микросхемами Winbond W6692, некоторые
адаптеры с набором микросхем Tiger300/320/ISAC и несколько адаптеров,
построенных на фирменных наборах микросхем, такие, как AVM Fritz!Card
PCI V.1.0 и AVM Fritz!Card PnP.На данный момент из активных адаптеров ISDN поддерживаются AVM B1
(ISA и PCI) адаптеры BRI и AVM T1 PCI адаптеры PRI.Документацию по isdn4bsd можно найти в
каталоге /usr/share/examples/isdn/ вашей системы
FreeBSD или на домашней
странице isdn4bsd, на которой также размещены ссылки на советы,
замечания по ошибкам и более подробную информацию, например, на руководство по
isdn4bsd.Если вы заинтересованы в добавлении поддержки для различных
протоколов ISDN, не поддерживаемых на данный момент адаптеров ISDN для
PC или каких-то других усовершенствованиях
isdn4bsd, пожалуйста, свяжитесь с
&a.hm;.Для обсуждения вопросов, связанных с установкой, настройкой и
устранением неисправностей isdn4bsd,
имеется список рассылки &a.isdn.name;.subscribe freebsd-isdnТерминальные адаптеры ISDNТерминальные адаптеры (TA) для ISDN выполняют ту же роль, что и
модемы для обычных телефонных линий.модемБольшинство TA используют стандартный набор AT-команд Hayes-модемов,
и могут использоваться в качестве простой замены для модемов.TA будут работать точно так же, как и модемы, за исключением
скорости соединения и пропускной способности, которые будут гораздо
выше, чем у вашего старого модема. Вам потребуется настроить PPP точно также, как и в случае использования
модема. Проверьте, что вы задали скорость работы последовательного
порта максимально высокой.PPPГлавным преимуществом использования TA для подключения к провайдеру
Интернет является возможность использования динамического PPP. Так
как пространство адресов IP истощается все больше, большинство
провайдеров не хочет больше выдавать вам статический IP-адрес.
Большинство же маршрутизаторов не может использовать динамическое
выделение IP-адресов.TA полностью полагаются на даемон PPP, который используете из-за
его возможностей и стабильности соединения. Это позволяет вам при
использовании FreeBSD легко заменить модем на ISDN, если у вас уже
настроено соединение PPP. Однако, в тоже время любые проблемы, которые
возникают с программой PPP, отражаются и здесь.Если вы хотите максимальной надёжности, используйте PPP на уровне параметра ядра, а не пользовательский PPP.Известно, что следующие TA работают с FreeBSD:Motorola BitSurfer и Bitsurfer ProAdtranБольшинство остальных TA, скорее всего, тоже будут работать,
производители TA прилагают все усилия для обеспечения поддержки
практически всего набора стандартных AT-команд модема.Как и в случае модемов проблемой использования внешнего TA является
потребность в хорошем последовательном адаптере на вашем
компьютере.Вы должны прочесть учебник Последовательные устройства
во FreeBSD для того, чтобы в деталях понять работу
последовательных устройств и осознать различие между асинхронными и
синхронными последовательными портами.TA, работающий со стандартным последовательным (асинхронным) портом
PC, ограничивает вас скоростью 115.2 Кбит/с, хотя реально у вас
соединение на скорости 128 Кбит/с. Чтобы использовать
128 Кбит/с, которые обеспечивает ISDN, полностью, вы должны
подключить TA к синхронному последовательному адаптеру.Не обманывайте себя, думая, что покупка встроенного TA поможет
избежать проблемы синхронности/асинхронности. Встроенные TA просто
уже имеют внутри стандартный последовательный порт PC. Все, что при
этом достигается - это экономия дополнительных последовательного
кабеля и электрической розетки.Синхронный адаптер с TA по крайней мере так же быстр, как и
отдельный маршрутизатор, а если он работает под управлением машины
класса 386 с FreeBSD, то это гораздо более гибкое решение.Выбор между использованием синхронного адаптера/TA или отдельного
маршрутизатора в большей степени является религиозным вопросом. По этому
поводу в списках рассылки была некоторая дискуссия. Рекомендуем поискать
в архивах обсуждение
полностью.Отдельные мосты/маршрутизаторы ISDNISDNотдельно стоящие мосты/маршрутизаторыМосты или маршрутизаторы ISDN не так уж специфичны для FreeBSD
или для любой другой операционной системы. Для более подробного
описания технологий маршрутизации и работы мостов, пожалуйста,
обратитесь к справочникам по сетевым технологиям.В контексте этого раздела термины маршрутизатор и сетевой мост будут
использоваться как взаимозаменяемые.Вместе с падением цен на простые мосты/маршрутизаторы ISDN, они
становятся все более популярными. Маршрутизатор ISDN представляет
собой маленькую коробочку, которая подключается непосредственно в
вашу сеть Ethernet, и поддерживает связь с другим мостом/маршрутизатором.
Всё программное обеспечение для работы по PPP и другим протоколам
встроено в маршрутизатор.Маршрутизатор обладает гораздо большей пропускной способностью, чем
стандартный TA, так как он использует полное синхронное соединение
ISDN.Основной проблемой с маршрутизаторами и мостами ISDN является то,
что их совместная работа с оборудованием других производителей может
оказаться под вопросом. Если вы собираетесь подключаться к провайдеру,
то вы должны обсудить с ним то, что вам нужно.Если вы планируете объединить два сегмента локальной сети, например,
домашнюю сеть с сетью офиса, это самое простое решение с минимальными
издержками на обслуживание. Так как вы покупаете оборудование для
обоих сторон соединения, то можете быть уверены, что связь будет
работать нормально.Например, для соединения домашнего компьютера или сети
подразделения к сети центрального офиса, может использоваться такая
настройка:Офис подразделения или домашняя сеть10 base 2Сеть построена в топологии общей шины на основе 10 base 2 Ethernet
(thinnet - тонкий Ethernet). Подключите
маршрутизатор к сетевому кабелю с помощью трансивера AUI/10BT, если
это нужно.---Рабочая станция Sun
|
---Машина с FreeBSD
|
---Windows 95
|
Отдельный маршрутизатор
|
Канал ISDN BRI10 Base 2 EthernetЕсли ваш домашний или удаленный офис представляет собой один
компьютер, то для непосредственного подключения к маршрутизатору вы
вы можете использовать витую пару с перекрестным соединениям.Центральный офис или другая локальная сеть10 base TСеть построена в топологии звезды на основе 10 Base T Ethernet
(витая пара). -------Сервер Novell
| H |
| ---Sun
| |
| U ---FreeBSD
| |
| ---Windows 95
| B |
|___---Отдельно стоящий маршрутизатор
|
Канал ISDN BRIСхема сети с ISDNОдним большим преимуществом большинства маршрутизаторов/мостов
является то, что они позволяют иметь 2 отдельных
независимых соединения PPP к 2 различным сайтам
одновременно. Это не поддерживается в большинстве
TA, кроме специальных (обычно дорогих) моделей, имеющих по два
последовательных порта. Не путайте это с балансировкой нагрузки,
MPP и так далее.Это может оказаться весьма полезной особенностью, например, если
у вас имеется постоянное ISDN-соединение в вашем офисе, и вы хотите
им воспользоваться, но не хотите задействовать дополнительный канал
ISDN на работе. Маршрутизатор, расположенный в офисе, может
использовать выделенное соединение по каналу B (64 Кбит/с) для
Интернет,
и одновременно другой канал B для отдельного соединения для передачи
данных. Второй канал B может использоваться для входящих, исходящих
и динамически распределяемых соединений (MPP и так далее) совместно с
первым каналом B для повышения пропускной способности.IPX/SPXМост Ethernet также позволяет вам передавать больше, чем просто
трафик IP. Вы сможете передавать IPX/SPX и любые другие протоколы,
которые вы используете.ChernLeeТекст предоставил Даемон преобразования сетевых адресов (natd)ОбзорnatdДаемон преобразования сетевых адресов (Network Address
Translation) во FreeBSD, широко известный как &man.natd.8;, является
даемоном, который принимает входящие IP-пакеты, изменяет адрес
отправителя на адрес локальной машины и повторно отправляет эти пакеты
в потоке исходящих пакетов. &man.natd.8; делает это, меняя IP-адрес
отправителя и порт таким образом, что когда данные принимаются
обратно, он может определить расположение источника начальных данных
и переслать их машине, которая запрашивала данные изначально.совместное использование доступа в Интернетсокрытие IPЧаще всего NAT используется для организации так называемого
Совместного Использования Интернет.НастройкаИз-за исчерпания пространства адресов в IPv4 и увеличения
количества пользователей высокоскоростных каналов связи, таких, как
кабельное подключение или DSL, необходимость в решении по Совместному
Использованию Интернет растёт. Возможность подключить несколько
компьютеров через единственное соединение и IP-адрес делает
&man.natd.8; подходящим решением.Чаще всего у пользователя имеется машина, подключенная к кабельному
каналу или каналу DSL с одним IP-адресом и есть желание использовать
этот единственный подключенный компьютер для организации доступа в
Интернет другим компьютерам в локальной сети.Для этого машина FreeBSD, находящаяся в Интернет, должна выступать
в роли шлюза. Эта шлюзовая машина должна иметь два сетевых
адаптера—один для подключения к маршрутизатору Интернет, а
другой для подключения к ЛВС. Все машины в локальной сети
подключаются через сетевой концентратор или коммутатор. _______ __________ ________
| | | | | |
| Hub |-----| Client B |-----| Router |----- Internet
|_______| |__________| |________|
|
____|_____
| |
| Client A |
|__________|Структура сетиПодобная конфигурация часто используется для совместного
использования доступа в Интернет. Одна из подключенных к локальной
сети машин подключается к Интернет. Остальные машины работают с
Интернет посредством этой шлюзовой машины.ядронастройкаНастройкаВ файле конфигурации ядра должны присутствовать следующие
параметры:options IPFIREWALL
options IPDIVERT
options PFIL_HOOKSВерсиям &os; до 5.3-RELEASE не требуется строка
options PFIL_HOOKS.Дополнительно, если это нужно, можно добавить следующее:options IPFIREWALL_DEFAULT_TO_ACCEPT
options IPFIREWALL_VERBOSEВ файле /etc/rc.conf должны быть такие
строки:gateway_enable="YES"
firewall_enable="YES"
firewall_type="OPEN"
natd_enable="YES"
natd_interface="fxp0"
natd_flags="" Указывает машине выступать в качестве шлюза. Выполнение
команды sysctl net.inet.ip.forwarding=1
приведёт к тому же самому результату.При загрузке включает использование правил межсетевого
экрана из файла /etc/rc.firewall.Здесь задается предопределенный набор правил межсетевого
экрана, который разрешает все. Посмотрите файл
/etc/rc.firewall для нахождения
дополнительных типов.Указывает, через какой интерфейс передавать пакеты
(интерфейс, подключенный к Интернет).Любые дополнительный параметры, передаваемые при запуске
даемону &man.natd.8;.При использовании вышеуказанных параметров в файле
/etc/rc.conf при загрузке будет запущена команда
natd -interface fxp0. Эту команду можно запустить и
вручную.Если для передачи &man.natd.8; набирается слишком много
параметров, возможно также использовать конфигурационный файл. В
этом случае имя настроечного файла должно быть задано добавлением
следующей строки в /etc/rc.conf:natd_flags="-f /etc/natd.conf"Файл /etc/natd.conf будет содержать перечень
конфигурационных параметров, по одному в строке. К примеру, для
примера из следующего раздела будет использоваться такой файл:redirect_port tcp 192.168.0.2:6667 6667
redirect_port tcp 192.168.0.3:80 80Для получения более полной информации о конфигурационном файле
прочтите страницу справки по &man.natd.8; относительно параметра
.Каждой машине и интерфейсу в ЛВС должен быть назначен IP-адрес из
адресного пространства частных сетей, как это определено в RFC 1918, а в
качестве маршрутизатора по умолчанию должен быть задан IP-адрес машины
с natd из внутренней сети.Например, клиенты A и B в ЛВС
имеют IP-адреса 192.168.0.2 и 192.168.0.3, а интерфейс машины с natd в
локальной сети имеет IP-адрес 192.168.0.1. Маршрутизатором по умолчанию для
клиентов A и B должна быть назначена
машина с natd, то есть 192.168.0.1. Внешний, или Интернет-интерфейс
машины с natd не требует особых
настроек для работы &man.natd.8;.Перенаправление портовМинусом использования &man.natd.8; является то, что машины в
локальной сети
недоступны из Интернет. Клиенты в ЛВС могут выполнять исходящие
соединения во внешний мир, но не могут обслуживать входящие. Это
является проблемой при запуске служб Интернет на клиентских машинах в
локальной сети. Простым решением является перенаправление некоторых
портов Интернет машины с natd на клиента
локальной сети.Пусть, к примеру, сервер IRC запущен на клиенте A,
а веб-сервер работает на клиенте B. Чтобы это
работало, соединения, принимаемые на портах 6667 (IRC) и 80 (веб),
должны перенаправляться на соответствующие машины.Программе &man.natd.8; должна быть передана команда
с соответствующими параметрами.
Синтаксис следующий: -redirect_port proto targetIP:targetPORT[-targetPORT]
[aliasIP:]aliasPORT[-aliasPORT]
[remoteIP[:remotePORT[-remotePORT]]]В примере выше аргументы должен быть такими: -redirect_port tcp 192.168.0.2:6667 6667
-redirect_port tcp 192.168.0.3:80 80При этом будут перенаправлены соответствующие порты
tcp на клиентские машины в локальной сети.Аргумент может использоваться для
указания диапазонов портов, а не конкретного порта. Например,
tcp 192.168.0.2:2000-3000 2000-3000 будет
перенаправлять все соединения, принимаемые на портах от 2000 до 3000,
на порты от 2000 до 3000 клиента A.Эти параметры можно указать при непосредственном запуске
&man.natd.8;, поместить их в параметр
natd_flags="" файла
/etc/rc.conf, либо передать через
конфигурационный файл.Для получение информации о других параметрах настройки обратитесь
к справочной странице по &man.natd.8;Перенаправление адресаперенаправление адресаПеренаправление адреса полезно, если имеется несколько адресов IP,
и они должны быть на одной машине. В этой ситуации &man.natd.8; может
назначить каждому клиенту ЛВС свой собственный внешний IP-адрес. Затем
&man.natd.8; преобразует исходящие от клиентов локальной сети пакеты,
заменяя IP-адреса на соответствующие внешние, и перенаправляет весь
трафик, входящий на некоторый IP-адрес, обратно конкретному клиенту
локальной сети. Это также называют статическим NAT. К примеру, пусть
IP-адреса 128.1.1.1, 128.1.1.2 и 128.1.1.3 принадлежат шлюзовой машине
natd. 128.1.1.1 может использоваться в качестве
внешнего IP-адреса шлюзовой машины natd,
тогда как 128.1.1.2 и 128.1.1.3 будут перенаправляться обратно
к клиентам ЛВС A и B.Синтаксис для таков:-redirect_address localIP publicIPlocalIPВнутренний IP-адрес клиента локальной сети.publicIPВнешний IP, соответствующий клиенту локальной сети.В примере этот аргумент будет выглядеть так:-redirect_address 192.168.0.2 128.1.1.2
-redirect_address 192.168.0.3 128.1.1.3Как и для , эти аргументы также
помещаются в строку natd_flags="" файла
/etc/rc.conf или передаются через конфигурационный
файл. При перенаправлении адресов нет нужды в перенаправлении портов,
потому что перенаправляются все данные, принимаемые для конкретного
IP-адреса.Внешние IP-адреса машины с natd должны
быть активизированы и являться синонимами для внешнего интерфейса.
Обратитесь к &man.rc.conf.5;, чтобы это сделать.IP по параллельному порту (PLIP)PLIPIP по параллельному портуPLIP позволяет нам работать с TCP/IP по параллельному порту. Это
полезно для машин без сетевых адаптеров или для установки на лаптопы.
В этом разделе мы обсудим:создание кабеля для параллельного порта (laplink).Соединение двух компьютеров посредством PLIP.Создание параллельного кабеляВы можете приобрести кабель для параллельного порта в большинстве
магазинов, торгующих комплектующими. Если вы его не найдете, или же
просто хотите знать, как он делается, то следующая таблица поможет вам
сделать такой кабель из обычного принтерного кабеля для параллельного
порта.
Настройка PLIPПрежде всего вы должны найти laplink-кабель. Затем
удостоверьтесь, что на обоих компьютерах в ядро включена поддержка
драйвера &man.lpt.4;:&prompt.root; grep lp /var/run/dmesg.boot
lpt0: <Printer> on ppbus0
lpt0: Interrupt-driven portУправление параллельным портом должно выполняться по прерываниям.
Во &os; 4.X в файле конфигурации ядра должна присутствовать
строка, подобная следующей:device ppc0 at isa? irq 7Во &os; 5.X файл /boot/device.hints
должен содержать следующие строки:hint.ppc.0.at="isa"
hint.ppc.0.irq="7"Затем проверьте, что файл конфигурации ядра имеет строку
device plip, или загружен ли модуль ядра
plip.ko. В обоих случаях интерфейс работы с
сетью по параллельному порту должен присутствовать на момент прямого
использования команды &man.ifconfig.8;. Во &os; 4.X это должно
быть примерно так:&prompt.root; ifconfig lp0
lp0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500а для &os; 5.X:&prompt.root; ifconfig plip0
plip0: flags=8810<POINTOPOINT,SIMPLEX,MULTICAST> mtu 1500Имя устройства, используемого для параллельного интерфейса,
во &os; 4.X
(lpX) и
&os; 5.X
(plipX).Подключите кабель laplink к параллельным интерфейсам на обоих
компьютерах.Настройте параметры сетевого интерфейса с обеих сторон, работая как
пользователь root. К примеру, если вы хотите
соединить хост host1, на котором работает
&os; 4.X, с хостом host2 под управлением
&os; 5.X: host1 <-----> host2
IP Address 10.0.0.1 10.0.0.2Настройте интерфейс на машине host1,
выполнив:&prompt.root; ifconfig plip0 10.0.0.1 10.0.0.2Настройте интерфейс на машине host2,
выполнив:&prompt.root; ifconfig lp0 10.0.0.2 10.0.0.1Теперь вы должны получить работающее соединение. Пожалуйста,
прочтите страницы руководства по &man.lp.4; и &man.lpt.4; для выяснения
деталей.Вы должны также добавить оба хоста в
/etc/hosts:127.0.0.1 localhost.my.domain localhost
10.0.0.1 host1.my.domain host1
10.0.0.2 host2.my.domainЧтобы проверить работу соединения, перейдите к каждому хосту и
выполните тестирование соединения с другой машиной посредством команды
ping. К примеру, на машине host1:&prompt.root; ifconfig lp0
lp0: flags=8851<UP,POINTOPOINT,RUNNING,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.1 --> 10.0.0.2 netmask 0xff000000
&prompt.root; netstat -r
Routing tables
Internet:
Destination Gateway Flags Refs Use Netif Expire
host2 host1 UH 0 0 lp0
&prompt.root; ping -c 4 host2
PING host2 (10.0.0.2): 56 data bytes
64 bytes from 10.0.0.2: icmp_seq=0 ttl=255 time=2.774 ms
64 bytes from 10.0.0.2: icmp_seq=1 ttl=255 time=2.530 ms
64 bytes from 10.0.0.2: icmp_seq=2 ttl=255 time=2.556 ms
64 bytes from 10.0.0.2: icmp_seq=3 ttl=255 time=2.714 ms
--- host2 ping statistics ---
4 packets transmitted, 4 packets received, 0% packet loss
round-trip min/avg/max/stddev = 2.530/2.643/2.774/0.103 msAaronKaplanПервоначальный текст написал TomRhodesРеструктуризацию и добавления внёс BradDavisРасширил IPv6IPv6 (также называемый IPng IP next generation -
следующее поколение IP) является новой версией широко известного
протокола IP (называемого также IPv4). Как и другие
современные системы *BSD, FreeBSD включает эталонную реализацию IPv6 от
KAME. Так что система FreeBSD поставляется со всем,
что вам нужно для экспериментирования с IPv6. Этот раздел посвящён
настройке и запуску в работу IPv6.В начале 1990-х люди стали беспокоиться о быстро иссякающем адресном
пространстве IPv4. Принимая во внимание темпы роста Интернет, имелись
основные проблемы:Нехватка адресов. Сегодня это не такая большая проблема, так как
стали применяться адресные пространства для частных сетей
(10.0.0.0/8, 192.168.0.0/24 и так далее) и технология
преобразования сетевых адресов (NAT - Network
Address Translation).Таблицы маршрутов становятся чересчур большими. Это всё ещё
является проблемой сегодня.IPv6 решает эти и многие другие вопросы:128-битное адресное пространство. Другими словами, теоретически
доступны 340,282,366,920,938,463,463,374,607,431,768,211,456 адреса.
Это означает плотность примерно в 6.67 * 10^27 адресов IPv6 на
квадратный метр нашей планеты.Маршрутизаторы будут хранить в своих таблицах только
агрегированные адреса сетей, что уменьшает средний размер таблицы
маршрутизации до 8192 записей.Имеется также множество других полезных особенностей IPv6, таких,
как:Автоматическая настройка адреса (RFC2462)Групповые адреса (один к нескольким из
многих)Обязательные адреса множественной рассылкиIPsec (IP security - безопасный IP)Упрощённая структура заголовкаМобильный IPМеханизмы преобразования IPv6-в-IPv4Для получения дополнительной информации посмотрите:Обзор IPv6 на сайте playground.sun.comKAME.net6bone.netОсновы адресации IPv6Существуют различные типы адресов IPv6: одноадресные (Unicast),
групповые (Anycast) и многоадресные (Multicast).Адреса типа Unicast хорошо всем известны. Пакет, посланный на
такой адрес, достигает в точности интерфейса, который этому адресу
соответствует.Адреса типа Anycast синтаксически неотличимы от адресов Unicast,
но они адресуют группу интерфейсов. Пакет, направленный такому адресу,
попадёт в ближайший (согласно метрике маршрутизатора) интерфейс.
Адреса Anycast могут использоваться только маршрутизаторами.Адреса типа Multicast идентифицируют группу интерфейсов. Пакет,
посланный на такой адрес, достигнет всех интерфейсов, привязанных к
группе многоадресного вещания.Широковещательные адреса IPv4 (обычно xxx.xxx.xxx.255) выражаются адресами
многоадресного вещания IPv6.
Зарезервированные адреса IPv6IPv6 адресДлина префикса (биты)ОписаниеЗаметки::128 битнет описанияcf. 0.0.0.0 в
IPv4::1128 битloopback адресcf. 127.0.0.1 в
IPv4::00:xx:xx:xx:xx96 битвстроенный IPv4Нижние 32 бита это адрес IPv4. Также
называется IPv4 совместимым IPv6
адресом::ff:xx:xx:xx:xx96 битАдрес IPv6, отображенный на IPv4Нижние 32 бита это адрес IPv4.
Для хостов, не поддерживающих IPv6.fe80:: - feb::10 битlink-localcf. loopback адрес в IPv4fec0:: - fef::10 битsite-localff::8 битшироковещательный001 (основание
2)3 битglobal unicastВсе global unicast адреса присваиваются из этого
пула. Первые три бита
001.
Чтение адресов IPv6Каноническая форма представляется в виде x:x:x:x:x:x:x:x, где каждый символ
x является 16-битовым шестнадцатиричным числом. К
примеру, FEBC:A574:382B:23C1:AA49:4592:4EFE:9982Часто в адресе присутствуют длинные строчки, заполненные нулями,
поэтому одна такая последовательность на адрес может быть сокращена до
::. Кроме того, до трех ведущих 0
на шестнадцатеричную четверку могут быть пропущены.
К примеру, fe80::1
соответствует канонической форме fe80:0000:0000:0000:0000:0000:0000:0001.В третьей форме последние 32 бита записываются в широко известном
(десятичном) стиле IPv4 с точками . в качестве
разделителей. Например, f2002::10.0.0.1 соответствует
(шестнадцатеричному) каноническому представлению 2002:0000:0000:0000:0000:0000:0a00:0001,
которое, в свою очередь, равнозначно записи 2002::a00:1.Теперь читатель должен понять следующую запись:&prompt.root; ifconfigrl0: flags=8943<UP,BROADCAST,RUNNING,PROMISC,SIMPLEX,MULTICAST> mtu 1500
inet 10.0.0.10 netmask 0xffffff00 broadcast 10.0.0.255
inet6 fe80::200:21ff:fe03:8e1%rl0 prefixlen 64 scopeid 0x1
ether 00:00:21:03:08:e1
media: Ethernet autoselect (100baseTX )
status: activefe80::200:21ff:fe03:8e1%rl0
является автоматически настроенным локальным адресом. Он
генерируется из MAC адреса в процессе автоматической
конфигурации.Для получения дополнительной информации о структуре адресов IPv6
обратитесь к RFC3513.Настройка подключенияНа данный момент существуют четыре способа подключиться к другим
хостам и сетям IPv6:Подключиться к экспериментальному 6boneПолучить сеть IPv6 от вышестоящего провайдера. Для получения
рекомендаций обратитесь к вашему провайдеру Интернет.Туннелировать посредством 6-в-4 (RFC3068)Использовать порт net/freenet6, если вы используете
коммутируемое соединение.Здесь мы будем рассматривать подключение к 6bone, так как на
данный момент это является самым популярным способом.Сначала взгляните на сайт 6bone и найдите ближайшую к вам точку
подключения к 6bone. Напишите ответственному и при некоторой удаче вам
дадут инструкции по настройке соединения. Обычно это касается
настройки туннеля GRE (gif).Вот типичный пример настройки туннеля &man.gif.4;:&prompt.root; ifconfig gif0 create
&prompt.root; ifconfig gif0
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
&prompt.root; ifconfig gif0 tunnel MY_IPv4_ADDRHIS_IPv4_ADDR
&prompt.root; ifconfig gif0 inet6 alias MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDRЗамените слова, написанные заглавными буквами, информацией, которую
вам дал вышестоящий узел 6bone.При этом установится туннель. Проверьте работу туннеля утилитой
&man.ping6.8; с адресом ff02::1%gif0.
Вы должны получить два положительных ответа.Если вы заинтригованы адресом ff02:1%gif0, скажем, что это адрес
многоадресного вещания. %gif0 указывает на
использование такого адреса с сетевым интерфейсом
gif0. Так как мы выполняем
ping над адресом многоадресного вещания, то другая
сторона туннеля также должна ответить.Теперь настройка маршрута к вашей вышестоящей точке подключения
6bone должна быть весьма проста:&prompt.root; route add -inet6 default -interface gif0
&prompt.root; ping6 -n MY_UPLINK&prompt.root; traceroute6 www.jp.FreeBSD.org
(3ffe:505:2008:1:2a0:24ff:fe57:e561) from 3ffe:8060:100::40:2, 30 hops max, 12 byte packets
1 atnet-meta6 14.147 ms 15.499 ms 24.319 ms
2 6bone-gw2-ATNET-NT.ipv6.tilab.com 103.408 ms 95.072 ms *
3 3ffe:1831:0:ffff::4 138.645 ms 134.437 ms 144.257 ms
4 3ffe:1810:0:6:290:27ff:fe79:7677 282.975 ms 278.666 ms 292.811 ms
5 3ffe:1800:0:ff00::4 400.131 ms 396.324 ms 394.769 ms
6 3ffe:1800:0:3:290:27ff:fe14:cdee 394.712 ms 397.19 ms 394.102 msЭта выдача будет отличаться от машины к машине. Теперь вы должны
суметь достигнуть сайта IPv6 www.kame.net и увидеть танцующую
черепаху — в случае, если ваш браузер поддерживает IPv6, как,
например, www/mozilla или
Konqueror,
который входит в x11/kdebase3,
или www/epiphany.DNS в мире IPv6Для IPv6 использовались два типа записей DNS. IETF
объявил записи A6 устаревшими. Стандартом на данный момент
являются записи AAAA.Использование записей AAAA достаточно просто. Назначение вашему
имени хоста нового адреса IPv6 достигается просто добавлением:MYHOSTNAME AAAA MYIPv6ADDRк вашему первичному файлу DNS зоны. В случае, если вы не
обслуживаете собственные зоны DNS, обратитесь к
вашему провайдеру DNS. Имеющиеся версии
bind (версий 8.3 и 9) и
dns/djbdns (с патчем IPv6)
поддерживают записи AAAA.Внесение необходимых изменений в
/etc/rc.confНастройки клиентов IPv6Эти установки помогут вам настроить компьютер, который
будет работать в сети как клиент, а не как маршрутизатор.
Для включения настройки интерфейсов через &man.rtsol.8;
при загрузке, все, что вам потребуется, это добавить
следующую строку:ipv6_enable="YES"Для статического присвоения IP адреса, такого как 2001:471:1f11:251:290:27ff:fee0:2093,
интерфейсу fxp0, добавьте:ipv6_ifconfig_fxp0="2001:471:1f11:251:290:27ff:fee0:2093"Для назначения маршрутизатором по умолчанию
2001:471:1f11:251::1,
добавьте следующую строку к
/etc/rc.conf:ipv6_defaultrouter="2001:471:1f11:251::1"Настройки маршрутизатора/шлюза IPv6Этот раздел поможет вам использовать инструкции, которые выдал
провайдер туннеля, например, 6bone, и сделать эти настройки
постоянными. Для восстановления туннеля при загрузке системы
используйте в /etc/rc.conf нижеприведенные
настройки.Задайте список туннельных интерфейсов (Generic Tunneling
interfaces), которые необходимо настроить, например
gif0:gif_interfaces="gif0"Для настройки интерфейса с локальным подключением на
MY_IPv4_ADDR к удаленной точке
REMOTE_IPv4_ADDR:
- gif_config_gif0="MY_IPv4_ADDR REMOTE_IPv4_ADDR"
+ gifconfig_gif0="MY_IPv4_ADDR REMOTE_IPv4_ADDR"Для включения IPv6 адреса, который был вам присвоен для
использования в подключении к туннелю IPv6, добавьте:ipv6_ifconfig_gif0="MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR"Затем все, что вам потребуется сделать, это добавить маршрут
по умолчанию для IPv6. Это другая сторона туннеля IPv6:ipv6_defaultrouter="MY_IPv6_REMOTE_TUNNEL_ENDPOINT_ADDR"Распространение маршрутов и автоматическая настройка
хостовЭтот раздел поможет вам настроить &man.rtadvd.8; для
распространения маршрута IPv6 по умолчанию.Для включения &man.rtadvd.8; вам понадобится добавить в
/etc/rc.conf следующую строку:rtadvd_enable="YES"Важно указать интерфейс, на котором выполняется запрос
маршрутизатора IPv6. Например, для указания &man.rtadvd.8;
использовать fxp0:rtadvd_interfaces="fxp0"Теперь мы должны создать файл настройки,
/etc/rtadvd.conf. Вот пример:fxp0:\
:addrs#1:addr="2001:471:1f11:246::":prefixlen#64:tc=ether:Замените fxp0 на интерфейс, который вы
будете использовать.Затем, замените 2001:471:1f11:246:: на префикс вашего
размещения.Если у вас выделенная подсеть /64, больше ничего менять не потребуется.
Иначе, вам потребуется изменить prefixlen#
на корректное значение.HartiBrandtПредоставил Асинхронный режим передачи (ATM) в &os; 5.XКлассическая настройка IP через ATM (PVC)Классический IP через ATM (CLIP)
это простейший метод использования асинхронного режима
передачи (Asynchronous Transfer Mode, ATM) с IP. Он может
быть использован с коммутируемыми подключениями
(switched connections, SVC) и с постоянными подключениями
(permanent connections, PVC). В этом разделе будет описано
как настроить сеть на основе PVC.Полностью объединенные конфигурацииПервый метод для настройки CLIP с
PVC это подключение каждого компьютера к каждому в сети с
выделенным PVC. Хотя настройка проста, она непрактична
для большого количества компьютеров. В примере предполагается,
что в сети есть четыре компьютера, каждый подключенный к
ATM
сети с помощью карты ATM адаптера.
Первый шаг это планирование IP адресов и ATM подключений между
компьютерами. Мы используем:ХостIP адресhostA192.168.173.1hostB192.168.173.2hostC192.168.173.3hostD192.168.173.4Для сборки полностью объединенной сети нам потребуется по
одному ATM соединению между каждой парой компьютеров:КомпьютерыVPI.VCI соединениеhostA - hostB0.100hostA - hostC0.101hostA - hostD0.102hostB - hostC0.103hostB - hostD0.104hostC - hostD0.105Значения VPI и VCI на каждом конце соединения конечно могут
отличаться, но для упрощения мы предполагаем, что они одинаковы.
Затем нам потребуется настроить ATM интерфейсы на каждом
хосте:hostA&prompt.root; ifconfig hatm0 192.168.173.1 up
hostB&prompt.root; ifconfig hatm0 192.168.173.2 up
hostC&prompt.root; ifconfig hatm0 192.168.173.3 up
hostD&prompt.root; ifconfig hatm0 192.168.173.4 upпредполагая, что ATM интерфейс называется
hatm0 на всех хостах. Теперь PVC
необходимо настроить на hostA (мы предполагаем,
что ATM коммутаторы уже настроены, вам необходимо свериться
с руководством на коммутатор за информацией по
настройке).hostA&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 100 llc/snap ubr
hostA&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 101 llc/snap ubr
hostA&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 102 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 100 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 103 llc/snap ubr
hostB&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 104 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 101 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 103 llc/snap ubr
hostC&prompt.root; atmconfig natm add 192.168.173.4 hatm0 0 105 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.1 hatm0 0 102 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.2 hatm0 0 104 llc/snap ubr
hostD&prompt.root; atmconfig natm add 192.168.173.3 hatm0 0 105 llc/snap ubrКонечно, вместо UBR может быть использован другой тип, если ATM адаптер поддерживает это. В этом случае
имя типа дополняется параметрами трафика. Помощь по
&man.atmconfig.8; может быть получена командой:&prompt.root; atmconfig help natm addили на странице справочника &man.atmconfig.8;.Та же настройка может быть выполнена через
/etc/rc.conf. Для hostA
это будет выглядеть примерно так:network_interfaces="lo0 hatm0"
ifconfig_hatm0="inet 192.168.173.1 up"
natm_static_routes="hostB hostC hostD"
route_hostB="192.168.173.2 hatm0 0 100 llc/snap ubr"
route_hostC="192.168.173.3 hatm0 0 101 llc/snap ubr"
route_hostD="192.168.173.4 hatm0 0 102 llc/snap ubr"Текущий статус всех маршрутов CLIP
может быть получен командой:hostA&prompt.root; atmconfig natm show
diff --git a/ru_RU.KOI8-R/books/handbook/basics/chapter.sgml b/ru_RU.KOI8-R/books/handbook/basics/chapter.sgml
index 9c3ae8f097..b97996028e 100644
--- a/ru_RU.KOI8-R/books/handbook/basics/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/basics/chapter.sgml
@@ -1,2549 +1,2552 @@
ChrisShumwayПереписал АлексейЗелькинПеревод на русский язык: АлексейДокучаевДенисПеплинОсновы UNIXКраткий обзоросновыВ этой главе мы попытаемcя раскрыть основные принципы и команды
операционной системы FreeBSD. Большая часть нижеизложенного
материала в более или менее равной степени применима к любой
&unix;-подобной операционной системе. Если вы уверены, что не найдете
здесь ничего нового для себя, можете смело пропустить эту главу.
Если же вы новичок, мы настоятельно рекомендуем внимательно
прочесть это главу.Прочитав эту главу, вы узнаете:Как использовать виртуальные консоли
FreeBSD.Как работают права доступа на файлы в &unix;.Иерархия каталогов &os;.Организация дисков &os;.Как монтировать и размонтировать файловые системы.Что такое процессы, даемоны и сигналы.Что такое командная оболочка (или интерпретатор команд) и
как настроить личное рабочее окружение.Как пользоваться стандартными текстовыми
редакторами.Что такое устройства и файлы устройств.Какие бинарные форматы используются в &os;.Как пользоваться справочным руководством для получения
дополнительной информации.Виртуальные консоли и терминалывиртуальные консолитерминалыFreeBSD можно использовать разными способами. Один из них —
набор команд в текстовом терминале. Используйте этот способ, и вся
гибкость и мощь систем &unix; будет в ваших руках. Этот раздел
рассказывает о терминалах, консолях и их
использовании в FreeBSD.КонсольконсольЕсли во время установки вы не настроили FreeBSD для автоматического
запуска графической среды при загрузке, система запросит ввод
логина сразу после завершения стартовых скриптов. Вы увидите примерно
следующее:Additional ABI support:.
Local package initialization:.
Additional TCP options:.
Fri Sep 20 13:01:06 EEST 2002
FreeBSD/i386 (pc3.example.org) (ttyv0)
login:В вашей системе сообщение может быть другим, но очень похожим на
это. В данный момент нас интересуют последние две строки. Вторая с
конца строка:FreeBSD/i386 (pc3.example.org) (ttyv0)В этой строке содержится немного информации о только что загруженной
системе. Это консоль FreeBSD, работающей на
Intel или совместимом процессоре x86
архитектурыЭто следует из обозначения i386. Обратите
внимание, что даже если FreeBSD работает не на процессоре
Intel 386, это обозначение будет i386.
Здесь показан не тип процессора, а его
архитектура.. Имя этого компьютера (у каждого компьютера &unix; есть
имя) pc3.example.org, и в данный момент вы видите
системную консоль — терминал
ttyv0.Наконец, последняя строка всегда:login:Здесь вам предлагается ввести имя пользователя,
чтобы войти в FreeBSD. Следующий раздел описывает способ, которым вы
можете сделать это.Вход в FreeBSDFreeBSD это многопользовательская, многопроцессорная система. Это
формальное описание системы, которая может быть использована множеством
разных людей, одновременно запускающих большое количество программ на
одном компьютере.Любой многопользовательской системе нужен способ отличать каждого
пользователя от остальных. В FreeBSD (и всех
&unix; подобных операционных системах), эта задача решается путем
входа пользователя в систему перед запуском каких-либо
программ. У каждого пользователя есть уникальное имя (имя
пользователя) и персональный, секретный ключ
(пароль). Перед тем, как разрешить пользователю
выполнять какие-либо программы, FreeBSD запрашивает их оба.стартовые скриптыСразу после загрузки FreeBSD и завершения работы стартовых
скриптовСтартовые скрипты — это программы, запускаемые
автоматически во время загрузки FreeBSD. Их основная задача
— подготовить систему к запуску других программ и запустить
настроенные сервисы, которые будут работать в фоновом режиме,
выполняя полезную работу., система предложит вам ввести имя пользователя:login:В этом примере, предположим что ваше имя пользователя
john. Введите john в этом
приглашении и нажмите Enter. Далее должно появиться
приглашение ввести пароль:login: john
Password:Введите соответствующий имени john пароль и
нажмите Enter. Пароль не виден!
Не беспокойтесь об этом. Это сделано по соображениям
безопасности.Если вы ввели пароль правильно, то сразу же войдете в FreeBSD
и можете начать выполнять команды.Вы увидите сообщение дня (MOTD, или message of
the day) за которым последует командная строка (с символом
#, $, или %).
Это означает, что вы успешно вошли в FreeBSD.Множественные консолиЗапуск команд &unix; из консоли это конечно хорошо, но FreeBSD может
выполнять множество программ одновременно, поэтому наличие одной консоли
может быть недостатком. В таком случае очень полезны виртуальные
консоли.FreeBSD может быть настроена для работы с несколькими виртуальными
консолями. Вы можете переключаться с одной виртуальной консоли на
другую, нажимая соответствующие сочетания клавиш на клавиатуре. У
каждой консоли есть свой канал вывода и FreeBSD заботится о том, чтобы
правильно перенаправить ввод с клавиатуры и вывод на монитор как только
вы переключитесь с одной консоли на другую.Для переключения между консолями зарезервированы специальные
комбинации клавишПодробное техническое описание деталей работы драйверов консолей
FreeBSD и клавиатуры можно найти в &man.syscons.4;, &man.atkbd.4;,
&man.vidcontrol.1; и &man.kbdcontrol.1;. Здесь мы не раскрываем
деталей, однако интересующиеся этим вопросом всегда могут обратиться
к страницам справочника за более детальным объяснением принципов
этой темы.. Вы можете использовать сочетания
AltF1,
AltF2, до
AltF8 чтобы
переключаться между различными виртуальными консолями в FreeBSD.При переключении от одной консоли к другой, FreeBSD заботится о
сохранении и восстановлении вывода на экран. Результатом является
иллюзия наличия множества виртуальных
экранов и клавиатур, которые могут быть использованы для ввода и запуска
команд FreeBSD. Программы, которые вы запускаете на одной виртуальной
консоли, не прекращают выполнение когда консоль становится невидимой.
Они продолжают выполняться, когда вы переключаетесь на другую
виртуальную консоль.Файл /etc/ttysВ конфигурации по умолчанию FreeBSD запускает восемь виртуальных
консолей. Тем не менее это не ограничение оборудования, и вы можете
легко настроить систему для загрузки большего или меньшего числа
виртуальных консолей. Число и параметры виртуальных консолей задаются
в файле /etc/ttys.Вы можете использовать это файл для настройки виртуальных консолей
FreeBSD. Любая не закомментированная строка в этом файле
(строка, не начинающаяся с символа #), содержит
настройки для одного терминала или виртуальной консоли. Версия этого
файла по умолчанию, поставляемая с FreeBSD, содержит настройки для
девяти
виртуальных консолей и включает восемь терминалов. Это строки, начинающиеся с
ttyv:# name getty type status comments
#
ttyv0 "/usr/libexec/getty Pc" cons25 on secure
# Virtual terminals
ttyv1 "/usr/libexec/getty Pc" cons25 on secure
ttyv2 "/usr/libexec/getty Pc" cons25 on secure
ttyv3 "/usr/libexec/getty Pc" cons25 on secure
ttyv4 "/usr/libexec/getty Pc" cons25 on secure
ttyv5 "/usr/libexec/getty Pc" cons25 on secure
ttyv6 "/usr/libexec/getty Pc" cons25 on secure
ttyv7 "/usr/libexec/getty Pc" cons25 on secure
ttyv8 "/usr/X11R6/bin/xdm -nodaemon" xterm off secureЗа детальным описанием каждой колонки этого файла и всех опций,
которые можно указать для настройки виртуальных консолей, обращайтесь
к &man.ttys.5;.Консоль в однопользовательском режимеДетальное описание однопользовательского режима
можно найти в . Стоит отметить, что
при работе FreeBSD в однопользовательском режиме есть только одна
консоль. Виртуальных консолей нет. Установки консоли в
однопользовательском режиме можно найти в файле
/etc/ttys. Обратите внимание на строку,
начинающуюся с console:# name getty type status comments
#
# If console is marked "insecure", then init will ask for the root password
# when going to single-user mode.
console none unknown off secureКак сказано в комментариях выше строки console,
можно отредактировать эту строку и изменить secure
на insecure. Если вы сделаете это, FreeBSD даже
при загрузке в однопользовательском режиме будет запрашивать пароль
root.Будьте осторожны при изменении этого значения на
insecure. Если вы забудете
пароль root, загрузка в однопользовательский
режим сильно усложнится. Это все еще возможно, но несколько
более сложно для тех, кто еще не очень освоился с процессом
загрузки FreeBSD и вызова программ.Права доступаUNIXFreeBSD является прямым потомком BSD &unix; и основывается на
некоторых ключевых концепциях &unix;. В первую очередь это, конечно,
тот факт, что FreeBSD – многопользовательская операционная система.
Это означает, что несколько пользователей могут работать одновременно,
решая различные задачи и совершенно не мешая друг другу. На системе
лежит ответственность за правильное разделение и управление такими
ресурсами как память, процессорное время, периферийные устройства и
прочее.Многопользовательская среда предполагает наличие механизма
регулирования прав доступа к любому ресурсу в системе. Существует три
типа прав доступа: на чтение, запись и исполнение. Права
сгруппированы три по три, соответственно чтение/запись/выполнение для
владельца/группы/всех остальных. Численное представление:права доступаправа на файлыЗначениеПрава доступаСписок файлов каталога0Ничего не разрешено---1Нельзя читать и писать, разрешено исполнять--x2Нельзя читать и исполнять, разрешено писать-w-3Нельзя читать, разрешено писать и исполнять-wx4Разрешено читать, нельзя писать и исполнятьr--5Разрешено читать и исполнять, нельзя писатьr-x6Разрешено читать и писать, нельзя исполнятьrw-7Разрешено всеrwxlsкаталогиВы можете использовать опцию команды
&man.ls.1; для получения подробного листинга каталога, включающего
колонку с информацией о правах на файл для владельца, группы и
всех остальных. Например, команда ls -l
в произвольном каталоге может вывести следующее:&prompt.user; ls -l
total 530
-rw-r--r-- 1 root wheel 512 Sep 5 12:31 myfile
-rw-r--r-- 1 root wheel 512 Sep 5 12:31 otherfile
-rw-r--r-- 1 root wheel 7680 Sep 5 12:31 email.txt
...Вот как выглядит первая колонка вывода
ls -l:-rw-r--r--Первый (считая слева) символ говорит обычный ли это файл, каталог,
символьное устройство, сокет или любое другое псевдофайловое
устройство. В нашем случае -, указывает на обычный
файл. Следующие три символа (в данном случае это rw-)
задают права доступа владельца файла. Затем идут права группы,
которой принадлежит файл (r--). Последняя тройка
(r--) определяет права для всех остальных. Минус
означает отсутствие каких-либо прав (т.е. нельзя ни читать, ни писать, ни
выполнять). В данном случае права установлены таким образом, что
владелец может читать и писать в файл, а группа и другие могут только
читать. Таким образом, численное представление прав
644, где каждая цифра представляет три части
прав на файл.Права на устройства контролируются аналогичным образом. В
FreeBSD все устройства представлены в виде файлов, которые можно
открывать, читать и писать в них. Эти специальные файлы содержатся в
каталоге /dev.Каталоги также являются файлами. К ним применимы
те же права на чтение, запись и выполнение. Правда, в данном случае
выполнение имеет несколько другой смысл. Когда
каталог помечен как исполнимый, это означает, что
можно зайти в него (с помощью команды
cd, change directory). Это также означает, что в данном каталоге
можно получить доступ к файлам, имена которых известны (конечно,
если собственные права на файл разрешают такой доступ).Если же требуется получить список файлов в некотором
каталоге, права доступа на него должные включать доступ на
чтение. Для того, чтобы удалить из каталога какой-либо файл,
имя которого известно, на этот каталог должны быть даны права
на запись и на исполнение.Существуют и другие права доступа, но они как правило используются
в особых случаях, например, setuid-бит на выполняемые файлы и sticky-бит
на каталоги. За дополнительными сведениями по этому вопросу обращайтесь
к &man.chmod.1;.TomRhodesПредоставил Символические обозначения правПрава доступасимволическиеСимволические обозначения, иногда называемые символическими
выражениями, используют буквы вместо восьмеричных значений для
назначения прав на файлы и каталоги. Символические выражения
используют синтаксис (кто) (действие) (права), где существуют
следующие значения:ОпцияБукваЗначение(кто)uПользователь (User)(кто)gГруппа (Group)(кто)oДругие (Other)(кто)aВсе (All, world)(действие)+Добавление прав(действие)-Удаление прав(действие)=Явная установка прав(права)rЧтение (Read)(права)wЗапись (Write)(права)xВыполнение (Execute)(права)tSticky бит(права)sSUID или SGIDЭти значения используются командой &man.chmod.1; так же
как и раньше, но с буквами. Например, вы можете использовать
следующую команду для запрета доступа других пользователей к
FILE:&prompt.user; chmod go= FILEДля изменения более чем одного набора прав можно применить список,
разделенный запятыми. Например, следующая команда удалит права группы
и всех остальных на запись в
FILE, а затем добавит права на выполнение для
всех:&prompt.user; chmod go-w,a+x FILEСтруктура каталоговиерархия каталоговФайловая система FreeBSD является ключевым моментом в понимании
устройства всей системы. Самым важным понятием является, несомненно,
корневой каталог, обозначаемый символом /.
Корневой каталог монтируется самым первым на этапе загрузки и содержит
все необходимое, чтобы подготовить систему к загрузке в
многопользовательский режим. Корневой каталог также содержит точки
монтирования всех других файловых систем.Точкой монтирования называется каталог, который будет
соответствовать корню примонтированой файловой системы. Стандартные
точки монтирования включают /usr,
/var, /mnt и
/cdrom. Эти каталоги обычно перечислены в
файле /etc/fstab, в котором указаны файловые
системы и их точки монтирования. Большинство файловых систем,
описанных в /etc/fstab монтируются автоматически
из скрипта &man.rc.8;, если только для них не указана опция
. Обратитесь к
&man.fstab.5; за дополнительной информацией о формате файла
/etc/fstab и различных опциях
монтирования.Полное описание иерархии файловой системы есть в &man.hier.7;.
Здесь же мы упомянем лишь наиболее важные каталоги.КаталогОписание/Корневой каталог файловой системы./bin/Основные утилиты, необходимые для работы как в
однопользовательском, так и в многопользовательском
режимах./boot/Программы и конфигурационные файлы, необходимые для
нормальной загрузки операционной системы./boot/defaults/Конфигурационные файлы с настройками по умолчанию,
используемые в процессе загрузки операционной системы
(см. &man.loader.conf.5;)./dev/Файлы устройств (см. &man.intro.4;)./etc/Основные конфигурационные файлы системы и
скрипты./etc/defaults/Основные конфигурационные файлы системы
с настройками по умолчанию (см. &man.rc.8;)./etc/mail/Конфигурационные файлы для систем обработки
почты (например, &man.sendmail.8;)./etc/namedb/Конфигурационные файлы для утилиты
named (см. &man.named.8;)./etc/periodic/Файлы сценариев, выполняемые ежедневно,
еженедельно и ежемесячно (см. &man.cron.8; и
&man.periodic.8;)./etc/ppp/Конфигурационные файлы для утилиты
ppp (см. &man.ppp.8;)./mnt/Пустой каталог, часто используемый системными
администраторами как временная точка
монтирования./proc/Виртуальная файловая система, отображающая
текущие процессы (см. see &man.procfs.5;,
&man.mount.procfs.8;)./root/Домашний каталог пользователя
root./sbin/Системные утилиты и утилиты администрирования,
необходимые для работы как в однопользовательском,
так и в многопользовательском режимах./stand/Программы, необходимые для работы в автономном
режиме (например, при установке системы)./tmp/Временный каталог (часто монтируется как
&man.mfs.8;; обычно содержимое этого каталога
теряется во время перезагрузки системы)./usr/Большинство пользовательских утилит и приложений./usr/bin/Пользовательские утилиты и приложения общего
назначения./usr/include/Стандартные заголовочные файлы для языка C./usr/lib/Файлы стандартных библиотек./usr/libdata/Файлы данных для различных утилит./usr/libexec/Системные даемоны и утилиты (выполняемые другими
программами)./usr/local/Локальные пользовательские приложения,
библиотеки, и т.д. Также используется по умолчанию коллекцией
портов. Внутри /usr/local
иерархия каталогов должна следовать &man.hier.7; для
/usr. Исключение составляют
каталог man, который расположен
непосредственно в /usr/local, а не
в /usr/local/share, и документация портов,
которая расположена в
share/doc/port.
/usr/obj/Архитектурно-зависимые файлы и каталоги,
образующиеся в процессе сборки системы из исходных
текстов в /usr/src./usr/ports/Коллекция портов FreeBSD (опционально)./usr/sbin/Системные утилиты и утилиты администрирования
(исполняемые пользователем)./usr/share/Архитектурно-независимые файлы./usr/src/Исходные тексты BSD и/или
программ./usr/X11R6/Утилиты, приложения и библиотеки X11R6 (X Window
System; необязательно)./var/Файлы журналов общего назначения, временные,
перемещаемые файлы и файлы очередей./var/log/Различные файлы системных журналов./var/mail/Почтовые ящики пользователей./var/spool/Файлы очередей печати, почты, и пр./var/tmp/Временные файлы, которые необходимо сохранять между
перезагрузками операционной системы./var/yp/Карты (maps) NIS.Организация дисковНаименьшая единица, которую FreeBSD использует для обращения
к файлам, это имя файла. Имена файлов чувствительны к регистру,
поэтому readme.txt и README.TXT
— два разных файла. FreeBSD не использует
расширение файла (.txt) для определения
программа это, документ или другой тип данных.Файлы хранятся в каталогах. Каталоги могут не содержать файлов,
или могут содержать много сотен файлов. Каталоги также могут
содержать другие каталоги, что позволяет создавать иерархию каталогов
один в другом. Это упрощает организацию данных.Обращение к файлам происходит путем задания имени файла или
каталога, дополняемого прямым слэшем /, за которым
может следовать имя другого каталога. Если есть каталог
foo, содержащий каталог
bar, который содержит файл
readme.txt, полное имя, или
путь к файлу будет
foo/bar/readme.txt.Каталоги хранятся в файловых системах. Каждая файловая система
содержит один каталог на верхнем уровне, называемый
корневым каталогом этой файловой системы.
Этот корневой каталог может содержать другие каталоги.Внешне это может быть похоже на те операционные системы,
которые вы возможно использовали. Есть несколько отличий:
например, &ms-dos; использует \ для разделения имен
файлов и каталогов, а &macos; использует :.FreeBSD не использует букв дисков, или других имен дисков в
пути. Вам не нужно писать c:/foo/bar/readme.txt
в FreeBSD.Вместо этого, одна файловая система назначается корневой
файловой системой. Обращение к корневому каталогу
корневой файловой системы происходит через /.
Любая другая файловая система монтируется
к корневой файловой системе. Неважно как много дисков есть в вашей
системе FreeBSD, каждый каталог будет выглядеть как расположенный
на том же диске.Предположим, у вас есть три файловых системы: A,
B, и C. Каждая файловая
система имеет один корневой каталог, в котором содержатся другие
каталоги, называемые
A1, A2 (и аналогично
B1, B2 и
C1, C2).Назовем A корневой файловой системой.
Если вы используете команду ls для просмотра
содержимого каталога, вы увидите два подкаталога, A1
и A2. Дерево каталогов выглядит так: /
|
+--- A1
|
`--- A2Файловая система должна быть примонтирована к каталогу другой
файловой системы. Предположим, что вы монтируете файловую систему
B на каталог A1. Корневой
каталог B замещается A1,
а каталоги в B отображаются соответственно: /
|
+--- A1
| |
| +--- B1
| |
| `--- B2
|
`--- A2Если потребуется, любые файлы из каталогов B1 или
B2 могут быть получены через путь
/A1/B1 или /A1/B2.
Все файлы, бывшие в /A1, временно скрыты.
Они появятся, если B будет
размонтирована с A.Если B была смонтирована на A2,
диаграмма будет выглядеть так: /
|
+--- A1
|
`--- A2
|
+--- B1
|
`--- B2а пути будут /A2/B1 и
/A2/B2 соответственно.Файловые системы могут быть смонтированы одна на другую.
Продолжая предыдущий пример, файловая система C
может быть смонтирована на каталог B1 файловой
системы B в таком порядке: /
|
+--- A1
|
`--- A2
|
+--- B1
| |
| +--- C1
| |
| `--- C2
|
`--- B2Или C может быть смонтирована прямо на
файловую систему A, на каталог A1
: /
|
+--- A1
| |
| +--- C1
| |
| `--- C2
|
`--- A2
|
+--- B1
|
`--- B2Если вы знакомы с &ms-dos;, это похоже, хотя и не идентично,
команде join.Как правило, это не должно вас интересовать. Обычно вы создаете
файловые системы во время установки FreeBSD, решаете куда их
монтировать, и ничего не меняете, пока не понадобится добавить новый
диск.Можно создать одну большую корневую файловую систему и не
создавать других. У такого подхода есть несколько
недостатков и одно преимущество.Преимущества нескольких файловых системРазличные файловые системы могут иметь различные
опции монтирования. Например,
в целях безопасности корневая файловая система может
быть смонтирована только для чтения, что делает
невозможным случайное удаление или редактирование
критически важного файла. Отделение файловых систем,
используемых пользователями для записи, таких как
/home, от других файловых
систем позволяет также монтировать их с параметром
nosuid; этот параметр отменяет
действие битов suid/
guid на исполняемых файлах,
в этой файловой системе, что потенциально повышает
безопасность.FreeBSD автоматически оптимизирует расположение файлов на
файловой системе в зависимости от того, как файловая система
используется. Файловая система, содержащая множество мелких часто
записываемых файлов, будет иметь оптимизацию отличную от таковой
для файловой системы, содержащей несколько больших файлов.
На одной большой файловой системе эта оптимизация не
работает.Файловые системы FreeBSD очень устойчивы к внезапному
отключению. Тем не менее, потеря питания в критический момент
все же может повредить структуру файловой системы. Разделение
данных на несколько файловых систем повышает шансы, что система
все-таки будет работать и делает более легким восстановление с
резервной копии.Преимущество одной файловой системыРазмер файловых систем фиксирован. Если вы создаете файловую
систему при установке FreeBSD и задаете определенный размер,
позднее вы можете обнаружить что нужен раздел большего размера.
Это не так легко сделать без резервного копирования, создания
файловых систем нового размера и последующего восстановления
сохраненных данных.В FreeBSD 4.4 и выше представлена новая команда,
&man.growfs.8;, которая позволяет увеличивать размер
файловой системы на лету, устраняя это ограничение.Файловые системы содержатся в разделах. Этот термин не имеет
того же смысла, что и при более раннем его использовании в этой главе,
из-за наследия &unix; в &os;. Каждый раздел обозначается буквой
от a до h. Каждый раздел может
содержать только одну файловую систему, это значит что файловая система
может быть описана ее точкой монтирования в файловой иерархии,
или буквой раздела, в котором она содержится.FreeBSD также использует дисковое пространство под
раздел подкачки (swap space). Подкачка позволяет
FreeBSD работать с виртуальной памятью.
ваш компьютер может работать так, как если бы у него было больше
памяти, чем есть на самом деле. Когда у FreeBSD кончается память, она
перемещает часть данных, не используемых в данный момент, в раздел
подкачки и возвращает их обратно (перемещая в подкачку что-то другое),
когда они нужны.По некоторым разделам есть определенные соглашения.РазделСоглашениеaКак правило, содержит корневую файловую системуbКак правило, содержит раздел подкачкиcКак правило, такого же размера, что и весь слайс (slice).
Это позволяет утилитам, которым нужно работать над всем
слайсом (например, сканер плохих блоков), работать с
разделом c. В обычной ситуации не нужно
создавать файловую систему на этом разделе.dРаздел d создавался для специальных
целей, хотя сейчас не используется. На настоящий момент,
некоторые утилиты могут работать некорректно при
попытке обращения к d, поэтому
sysinstall обычно не создает
раздел d.Каждый раздел-содержащий-файловую-систему хранится на том, что
во FreeBSD называется слайс (slice). Слайс
— это термин FreeBSD, то, что обычно называют разделом,
и опять же это из-за &unix; основы FreeBSD. Слайсы нумеруются с 1 по
4.слайсыразделыdangerously dedicatedНомера слайсов следуют за именем устройства, предваряемые
строчной s, начиная с 1. Так
da0s1 это первый слайс первого
SCSI устройства. Может быть только четыре физических слайса на диске,
но могут быть логические слайсы нужного типа внутри физических
слайсов. Эти дополнительные
слайсы нумеруются начиная с 5, так что
ad0s5 это первый дополнительный
слайс на первом IDE диске. Эти устройства используются файловыми
системами, занимающими весь слайсе.Слайсы, эксклюзивно выделенные (dangerously dedicated) физические устройства
и другие устройства содержат разделы,
представляемые буквами от a до h.
Эти буквы добавляются к имени устройства,
da0a это раздел a на первом
устройстве da, который эксклюзивно выделен.
ad1s3e это пятый раздел
в третьем слайсе второго IDE диска.Наконец, каждый диск идентифицирован. Имя диска начинается с
кода, обозначающего тип диска, затем идет номер, обозначающий
который это диск. В отличие от слайсов, нумерация дисков начинается
с 0. Основные коды, которые вам могут встретиться, есть в списке
.В то время, как ссылка на раздел FreeBSD требует также указания
слайса и диска, содержащего раздел, ссылка на слайс требует также
указания имени диска. Делайте это указанием имени диска,
s, номера слайса, и затем буквы раздела.
Примеры показаны в
. показывает
концептуальную модель диска, которая должна помочь прояснить
ситуацию.Для установки FreeBSD вы должны сначала настроить слайсы
дисков, затем создать разделы внутри слайсов, которые будут
использованы для FreeBSD, а затем создать файловую систему
(или подкачку) в каждом разделе и решить куда файловая система
будет смонтирована.
Коды дисковых устройствКодЗначениеadATAPI (IDE) дискdaSCSI direct access дискacdATAPI (IDE) CDROMcdSCSI CDROMfdFloppy disk
Пример имен диска, слайса, и разделаИмяЗначениеad0s1aПервый раздел (a) на первом слайсе
(s1) первого IDE диска
(ad0).da1s2eПятый раздел (e) на
втором слайсе (s2) второго SCSI диска
(da1).Концептуальная модель дискаЭта диаграмма показывает первый подключенный к системе IDE диск
с точки зрения FreeBSD. Предположим, что размер диска 4 GB, и он
содержит два 2 GB слайса (&ms-dos; разделы). Первый слайс содержит
&ms-dos; диск, C:, а второй слайс содержит
установленную FreeBSD. В этом примере в установленной FreeBSD
три раздела и раздел подкачки.В каждом из трех разделов есть файловая система. Раздел
a используется для корневой файловой системы,
e для иерархии каталогов
/var, а f для иерархии
каталогов /usr..-----------------. --.
| | |
| DOS / Windows | |
: : > First slice, ad0s1
: : |
| | |
:=================: ==: --.
| | | Partition a, mounted as / |
| | > referred to as ad0s2a |
| | | |
:-----------------: ==: |
| | | Partition b, used as swap |
| | > referred to as ad0s2b |
| | | |
:-----------------: ==: | Partition c, no
| | | Partition e, used as /var > filesystem, all
| | > referred to as ad0s2e | of FreeBSD slice,
| | | | ad0s2c
:-----------------: ==: |
| | | |
: : | Partition f, used as /usr |
: : > referred to as ad0s2f |
: : | |
| | | |
| | --' |
`-----------------' --'Монтирование и размонтирование файловых системФайловая система лучше всего представима в виде дерева, с
корнем в /. Каталоги,
/dev, /usr и прочие
– это ветви дерева, которые, в свою очередь, являются
корнями для поддеревьев, также имеющих ветви
(/usr/local), и т.д.корневая файловая системаХорошей практикой является разнесение некоторых особо важных
каталогов на разные файловые системы. Например,
/var, содержит
log/, spool/, а также
всевозможные временные файлы и нередко может занять все свободное
место на диске. Поэтому лучше смонтировать
/var отдельно, чтобы избежать переполнения
/.Часто бывает так, что некоторые разделы файловой системы
расположены на разных физических носителях (дисках, CDROM),
виртуальных или сетевых (например, сетевая
файловая система (Network File System, NFS)). В этом
случае узлы файловой иерархии будут расположены на разных
файловых системах.Файл fstabfilesystemsmounted with fstabФайловые системы, перечисленные в
/etc/fstab, монтируются автоматически в
процессе загрузки
(если, конечно, для них не
указана опция ).Формат файла /etc/fstab
следующий (файловые системы перечисляются построчно):устройство/точка-монтированиятип файловой системыопциичастота дамповпорядок проверкиустройствоИмя устройства (которое должно присутствовать), как описано в
.точка монтированияКаталог (существующий), куда следует смонтировать
файловую систему.тип файловой системыТип файловой системы, который передается программе
&man.mount.8;. По умолчанию FreeBSD использует
ufs.опцииНапример, для монтирования
файловой системы в режиме чтение-запись
или для режима только
чтение, за которыми могут следовать и другие
опции. Довольно часто используется
опция, чтобы не монтировать
автоматически файловые системы в процессе загрузки.
Об остальных опциях можно прочитать в
&man.mount.8;.частота дамповИспользуется утилитой &man.dump.8; для определения
файловых систем, с которых необходимо периодически
снимать специальные архивные копии. При отсутствии этого
параметра принимается равным нулю.порядок проверкиОпределяет порядок, в котором следует проверять
файловые системы (чаще всего, в случае некорректного
размонтирования или внезапной перезагрузки системы). Если
файловую системы не нужно проверять, этот параметр должен
быть установлен в ноль. Для корневой файловой системы
(которая должна быть проверена в первую очередь)
установите его в 1. Для всех остальных – 2 или
больше. Если две или более файловые системы имеют
одинаковое значение passno,
&man.fsck.8; попытается проверять их параллельно (если,
конечно, это возможно физически).Команда mountfilesystemsmountingКоманда &man.mount.8; используется, как следует из ее имени,
для монтирования файловых систем.Пример использования (простейший случай):&prompt.root; mount устройствоточка-монтированияПеречислим основные опции, которые может принимать команда
&man.mount.8; (полный список смотрите в странице руководства):Опции монтированияСмонтировать все файловые системы, перечисленные в
файле /etc/fstab. Исключение
составляют помеченные как noauto,
перечисленные после опции и уже
смонтированные.Сделать все кроме самого системного вызова mount.
Эта опция полезна вместе с флагом
для определения того, что на самом деле пытается сделать
&man.mount.8;.Монтировать поврежденный раздел (опасно!),
или форсировать отмену всех запросов на запись при
изменении режима монтирования с
чтение-запись на только
чтение.Монтировать файловую систему в режиме только
для чтения. То же самое, что и указание
аргумента для опции
.fstypeМонтировать файловую систему как систему указанного
типа, или, в случае опции , только
файловые системы данного типа.По умолчанию, тип файловой системы –
ufs.Обновить опции монтирования для файловой
системы.Выдавать более подробную информацию.Монтировать файловую систему в режиме
чтение-запись.Опция принимает разделенные запятыми
аргументы, включая нижеперечисленные:nodevНе обращать внимание на специальные файлы устройств
на файловой системе (то есть не считать их файлами
устройств). Весьма полезная опция для повышения
безопасности системы.noexecЗапрет на исполнение бинарных файлов на файловой
системе (тоже полезная опция для повышения безопасности
системы).nosuidИгнорировать suid- и sgid-биты на файловой системе
(еще одна полезная опция для повышения безопасности
системы).Команда umountfilesystemsunmountingКоманда &man.umount.8; принимает в качестве параметра точку
монтирования какой-либо файловой системы, имя устройства, опцию
или .Кроме того, вы можете дополнительно указать опцию
для форсированного размонтирования файловой
системы, и для получения более подробной
информации. Имейте ввиду, что это в общем случае опасно и
потому не рекомендуется, так как тем самым вы можете нарушить
работу компьютера или повредить данные на файловой системе.Опции и
используются для размонтирования всех файловых систем (разве
что вы укажете опцию ). Разница состоит в
том, что не пытается размонтировать
корневую файловую систему.ПроцессыFreeBSD является многозадачной операционной системой.
Это означает, что одновременно может быть запущена более чем одна
программа. Каждая программа, работающая в некоторый момент времени,
называется процессом. Каждая команда,
которую вы запускаете, порождает хотя бы один процесс. Есть несколько
системных процессов, запущенных все время и поддерживающих
функциональность системы.У каждого процесса есть уникальный номер, называемый
process ID, или PID, и,
как и у файлов, у каждого процесса есть владелец и группа. Информация
о владельце и группе процесса используется для определения того, какие
файлы и устройства могут быть открыты процессом с учетом прав на файлы,
о которых говорилось ранее. Также у большинства процессов есть
родительский процесс. Например, при запуске команд из оболочки,
оболочка является процессом и любая запущенная команда также является
процессом. Для каждого запущенного таким путем процесса оболочка будет
являться родительским процессом. Исключением из этого правила является
специальный процесс, называемый &man.init.8;.
init всегда первый процесс, его PID всегда 1.
init запускается автоматически ядром во время
загрузки FreeBSD.Две команды очень полезны для просмотра работающих в системе
процессов, это &man.ps.1; и &man.top.1;. Команда ps используется
для получения списка запущенных процессов и может показать их PID,
сколько памяти они используют, команду которой они были запущены и т.д.
Команда top показывает запущенные процессы и обновляет экран
каждые несколько секунд, что позволяет наблюдать за работой компьютера
в реальном времени.По умолчанию, ps показывает только принадлежащие вам
процессы. Например:&prompt.user; ps
PID TT STAT TIME COMMAND
298 p0 Ss 0:01.10 tcsh
7078 p0 S 2:40.88 xemacs mdoc.xsl (xemacs-21.1.14)
37393 p0 I 0:03.11 xemacs freebsd.dsl (xemacs-21.1.14)
48630 p0 S 2:50.89 /usr/local/lib/netscape-linux/navigator-linux-4.77.bi
48730 p0 IW 0:00.00 (dns helper) (navigator-linux-)
72210 p0 R+ 0:00.00 ps
390 p1 Is 0:01.14 tcsh
7059 p2 Is+ 1:36.18 /usr/local/bin/mutt -y
6688 p3 IWs 0:00.00 tcsh
10735 p4 IWs 0:00.00 tcsh
20256 p5 IWs 0:00.00 tcsh
262 v0 IWs 0:00.00 -tcsh (tcsh)
270 v0 IW+ 0:00.00 /bin/sh /usr/X11R6/bin/startx -- -bpp 16
280 v0 IW+ 0:00.00 xinit /home/nik/.xinitrc -- -bpp 16
284 v0 IW 0:00.00 /bin/sh /home/nik/.xinitrc
285 v0 S 0:38.45 /usr/X11R6/bin/sawfishКак вы можете видеть в данном примере, вывод &man.ps.1; организован
в несколько колонок. Идентификатор процесса PID
обсуждался ранее. PID назначаются с 1 до 99999 и опять с начала, если
последнее число будет превышено. Колонка TT показывает
терминал (tty), на котором запущена программа (можете пока забыть про
это). STAT показывает состояние программы и опять
же может быть пока проигнорирован. TIME это количество
времени центрального процессора, использованное
программой — это обычно не время, прошедшее с запуска
программы, поскольку большинство программы проводят много времени в
в ожидании некоторого события перед тем, как занять время процессора.
Наконец, COMMAND это команда, которой программа
была запущена.У &man.ps.1; есть множество различных опций, влияющих на выводимую
информацию. Один из наиболее полезных наборов опций это
auxww. позволяет показать
информацию о всех запущенных процессах, а не только тех, которыми вы
владеете. показывает имя пользователя,
владеющего процессом, и информацию об используемой памяти.
показывает информацию о процессах-даемонах и
указывает &man.ps.1; показать всю командную строку,
вместо обрезания ее, когда она станет слишком длинной, чтобы уместиться
на экран.Вывод &man.top.1; похож на только что описанный.
Обычно он выглядит так:&prompt.user; top
last pid: 72257; load averages: 0.13, 0.09, 0.03 up 0+13:38:33 22:39:10
47 processes: 1 running, 46 sleeping
CPU states: 12.6% user, 0.0% nice, 7.8% system, 0.0% interrupt, 79.7% idle
Mem: 36M Active, 5256K Inact, 13M Wired, 6312K Cache, 15M Buf, 408K Free
Swap: 256M Total, 38M Used, 217M Free, 15% Inuse
PID USERNAME PRI NICE SIZE RES STATE TIME WCPU CPU COMMAND
72257 nik 28 0 1960K 1044K RUN 0:00 14.86% 1.42% top
7078 nik 2 0 15280K 10960K select 2:54 0.88% 0.88% xemacs-21.1.14
281 nik 2 0 18636K 7112K select 5:36 0.73% 0.73% XF86_SVGA
296 nik 2 0 3240K 1644K select 0:12 0.05% 0.05% xterm
48630 nik 2 0 29816K 9148K select 3:18 0.00% 0.00% navigator-linu
175 root 2 0 924K 252K select 1:41 0.00% 0.00% syslogd
7059 nik 2 0 7260K 4644K poll 1:38 0.00% 0.00% mutt
...Вывод разбит на два раздела. Заголовок (первые пять строк)
показывает PID последнего запущенного процесса, среднее значение
загрузки системы (которое показывает насколько система занята),
время работы системы с последней перезагрузки и текущее время.
Другие цифры заголовка относятся к количеству запущенных процессов
(в данном примере 47), количеству занятой памяти и подкачки и время,
занимаемое различными состояниями процессора.Ниже идут несколько колонок, содержащих похожую на вывод &man.ps.1;
информацию. Как и раньше, это PID, время процессора, командная строка.
&man.top.1; показывает также величину занятой процессом памяти.
Это значение разбито на две колонки, одна для общего объема, а другая
для резидентного — общий объем показывает сколько всего памяти
нужно приложению, а резидентный показывает количество памяти, используемой
в данный момент. Из этого примера видно, что
&netscape; требует почти 30 MB памяти,
но в данный момент использует только 9 MB.&man.top.1; автоматически обновляет экран каждые две секунды;
это значение можно изменить опцией .Даемоны, сигналы, уничтожение процессовЕсли вы запускаете редактор, им можно легко управлять, открывать в
нем файлы и т.д. Вы можете делать это, поскольку редактор предоставляет
такие возможности и потому, что редактор присоединен к
терминалу. Некоторые программы разработаны
без поддержки интерфейса пользователя, поэтому они отсоединяются от
терминала при первой возможности. Например, веб-сервер целый день
отвечает на запросы из сети, и ему как правило не требуется ваше вмешательство.
Программы, передающие почту от сервера к серверу — другой пример
приложений этого класса.Мы называем эти программы даемонами. Даемоны это
персонажи греческой мифологии; хорошие или плохие, они были спутниками
человека и, вообще говоря, выполняли полезную работу для людей. Почти как
веб- и почтовые серверы выполняют полезную работу сегодня. Это причина,
по которой талисманом BSD долгое время является веселый даемон в тапочках и с
вилами.Есть соглашение, по которому имя программы, которая обычно запускается
как даемон, заканчивается на d. BIND
это Berkeley Internet Name Daemon (выполняемая программа называется
named), программа веб сервера
Apache называется httpd,
даемон очереди печати это lpd и так далее. Это соглашение,
а не жесткое правило; например, главный почтовый даемон для
Sendmail называется
sendmail, а не maild, как вы могли бы
предположить.Иногда может потребоваться взаимодействие с процессом даемона.
Эти можно сделать с помощью сигналов, т.е.
взаимодействовать с даемонами (или с любыми запущенными процессами),
посылая им сигнал. Есть множество различных сигналов — некоторые
из них имеют специальное значение, другие обрабатываются приложением,
реакция которого на эти сигналы должна быть описана в документации.
Вы можете посылать сигналы только тем процессам,
владельцем которых являетесь. Если вы отправите сигнал какому-то другому
процессу с помощью &man.kill.1; или &man.kill.2;, доступ будет запрещен.
Исключением из правил является пользователь root,
который может отправлять сигналы любому процессу.В некоторых случаях FreeBSD тоже посылает сигналы приложениям. Если
приложение плохо написано и пробует обратиться к области памяти, к
которой оно не должно обращаться, FreeBSD посылает процессу сигнал
нарушение сегментации (SIGSEGV).
Если приложение использует системный вызов &man.alarm.3;, чтобы получить
уведомление по истечении определенного периода времени, будет отправлен
сигнал Alarm (SIGALRM) и т.д.Два сигнала могут быть использованы для завершения процесса,
SIGTERM и SIGKILL.
SIGTERM это корректный способ завершить процесс;
процесс может поймать сигнал, определить, что его
хотят завершить, закрыть любые файлы, которые он мог открыть,
и закончить то, что он делал в момент перед закрытием. В некоторых
случаях процесс может даже игнорировать SIGTERM,
если выполняет задачу, которая не может быть прервана.SIGKILL не может быть проигнорирован процессом.
Этот сигнал говорит Меня не волнует что ты делаешь —
остановись немедленно. Если вы посылаете процессу
SIGKILL, FreeBSD сразу же остановит этот
процессНе совсем верно — есть несколько действий, которые не могут
быть прерваны. Например, если процесс пытается прочитать файл на
другом компьютере в сети, и другой компьютер по какой-то причине не
отвечает (был выключен, или в сети произошла ошибка), процесс
находится в так называемом непрерываемом состоянии.
В конце концов время ожидания закончится, обычно это происходит через
две минуты. Как только время закончится, процесс будет
уничтожен..Другие сигналы, которые возможно вам понадобятся,
SIGHUP, SIGUSR1, и
SIGUSR2. Это сигналы общего назначения,
различные приложения могут по-разному реагировать на них.Предположим, что вы изменили файл конфигурации веб сервера —
теперь нужно указать ему перечитать конфигурацию. Можно остановить
и запустить httpd, но это приведет к кратковременной
остановке сервера, которая может быть нежелательна. Большинство даемонов
написаны так, чтобы при получении сигнала SIGHUP
перечитывать файлы конфигурации. Поэтому вместо уничтожения и запуска
httpd можно послать сигнал SIGHUP.
Поскольку нет стандартного способа реагирования на этот сигнал, различные
даемоны будут вести себя по разному; прочитайте документацию на даемон
по этому вопросу.Сигналы посылаются с помощью команды &man.kill.1;, как показано в этом
примере.Отправка сигнала процессуЭтот пример показывает как послать сигнал &man.inetd.8;. Файл
конфигурации inetd/etc/inetd.conf, inetd перечитает
этот файл, если ему отправить сигнал SIGHUP.Нужно определить PID процесса, которому вы хотите отправить сигнал.
Сделайте это с помощью &man.ps.1; и &man.grep.1;. Команда &man.grep.1;
используется для поиска по заданной строке в выходном потоке. Эта
команда запускается под обычным пользователем, а &man.inetd.8; под
root, поэтому &man.ps.1; должна быть запущена с
параметром .&prompt.user; ps -ax | grep inetd
198 ?? IWs 0:00.00 inetd -wWИтак, PID &man.inetd.8; 198. В некоторых случаях в выводе команды
может также появиться grep inetd. Это из-за способа,
которым &man.ps.1; получает список запущенных процессов.Используйте &man.kill.1; для отправки сигнала. Поскольку
&man.inetd.8; запускается из под root,
нужно сначала использовать &man.su.1; для получения прав
root.&prompt.user; suPassword:
&prompt.root; /bin/kill -s HUP 198Как и большинство команд &unix;, &man.kill.1; ничего не выведет,
если отработает нормально. Если вы посылаете сигнал процессу,
которым не владеете, на экране появится kill:
PID: Operation not
permitted. При неправильно набранном PID вы или отправите
сигнал другому процессу, что может привести к неприятностям, или, если
повезет, сигнал будет отправлен на PID, который в данный момент не
используется — на экране появится kill:
PID: No such process.Зачем использовать /bin/kill?Во многих оболочках команда kill встроена;
таким образом, оболочка вместо вызова /bin/kill
сама посылает сигнал. Это может быть очень полезно, но в разных
оболочках имя сигнала указывается по-разному. Чем
пытаться выучить их все, гораздо проще использовать
/bin/kill ...
непосредственно.Отправка других сигналов очень похожа, просто замените
TERM или KILL в командной
строке на имя другого сигнала.Уничтожение процессов наугад может быть плохой идеей. В частности,
&man.init.8;, чей PID 1, имеет особое значение. Выполнение
/bin/kill -s KILL 1 — быстрый способ перегрузить
систему. Всегда дважды проверяйте параметры
запуска &man.kill.1; перед тем, как нажать
Enter.Интерпретатор командоболочкакомандная строкаПри работе с FreeBSD, в большинстве случаях для выполнения
повседневных задач используется командный интерфейс (так называемая
оболочка, shell). Основная задача интерпретатора — принимать
вводимые команды и выполнять их. Многие командные интерпретаторы имеют
встроенные средства для выполнения повседневной работы, например,
операции над файлами и каталогами, редактирование командной строки,
командные макросы и переменные окружения. Вместе с FreeBSD
поставляется несколько командных интерпретаторов, например,
sh, или Bourne Shell, и tcsh,
расширенная версия C-shell. Многие другие интерпретаторы доступны из
коллекции портов FreeBSD, например zsh и
bash.Какой из командных интерпретаторов использовать? Это дело вкуса.
Если вы программируете на C, то вам, возможно, понравится
tcsh. Если вы работали с Linux, или только начинаете
работать с интерфейсом командной строки &unix;, попробуйте
bash. Каждый из названных интерпретаторов имеет свои
особенности, которые отличат его от других, и, возможно, повлияют на ваш
выбор.Одна из наиболее часто используемых функций командного
интерпретатора – дополнение частичного имени файла до полного. Вы
можете набрать только первые несколько символов имени файла, нажать
клавишу табуляции (TAB), и командный интерпретатор автоматически завершит
имя. Например, у нас есть два файла, названные foobar и
foo.bar. Допустим, мы хотим удалить файл
foo.bar. Для этого, наберем на клавиатуре
rm fo[Tab].[Tab].Вы увидите следующее: rm foo[BEEP].bar.Здесь [BEEP] – это так называемый консольный сигнал,
оповещающий о том, что интерпретатор не в состоянии закончить имя
файла, так как по введенным вами символам невозможно однозначно
идентифицировать файл. Например, имена файлов
foobar и foo.bar оба
начинаются с fo, но после нажатия TAB можно
однозначно дополнить только до foo. Если же теперь
ввести точку (.) и вновь нажать TAB, интерпретатор
достроит имя файла целиком.переменные окруженияДополнительные возможности при работе с интерпретатором дает
использование переменных окружения. Переменные окружения это пары
переменная=значение, хранящиеся в памяти интерпретатора.
Значение переменных окружения может быть прочитано любой программой,
запущенной из командного интерпретатора, и часто содержит
настройки для многих приложений и утилит. Ниже приведены некоторые
наиболее часто встречающиеся переменные окружения и их значения:переменные окруженияПеременнаяОписаниеUSERИмя текущего пользователя.PATHКаталоги, разделенные двоеточием, для
поиска исполняемых файлов.DISPLAYСетевое имя виртуального дисплея X11, доступного для
подключения.SHELLТекущий командный интерпретатор.TERMНазвание (тип) терминала. Используется, чтобы узнать
возможности терминала.TERMCAPСписок escape-последовательностей для управления
различными функциями терминала.OSTYPEНазвание (тип) операционной системы. Например,
FreeBSD.MACHTYPEАрхитектура машины (процессора).EDITORВыбранный пользователем текстовый редактор.PAGERВыбранная пользователем утилита просмотра
файлов.MANPATHКаталоги, разделенные двоеточием, для
поиска файлов системного справочника.оболочки BourneУстановка значений переменных окружения различна для разных
оболочек. Например, в интерпретаторах C-стиля, таких как
tcsh и csh, это
setenv. В интерпретаторах Bourne, таких как
sh и bash, это
export. Например, чтобы установить или изменить
значение переменной EDITOR к значению
/usr/local/bin/emacs в csh или
tcsh, выполните команду:&prompt.user; setenv EDITOR /usr/local/bin/emacsВ оболочках Bourne:&prompt.user; export EDITOR="/usr/local/bin/emacs"Чтобы получить значение переменной, например, в командной строке,
поместите символ $ перед именем
переменной. Например, команда echo $TERM выведет
значение переменной $TERM.Командный интерпретатор воспринимает некоторые символы, называемые
метасимволами, в качестве управляющих.
Один из наиболее часто используемых – символ *,
который заменяет любое количество символов в имени файла.
Метасимволы
используются для поиска файлов по маске, например, команда
echo * делает практически тоже самое, что и
команда ls, поскольку интерпретатор вызывает команду
echo, передавая ей имена всех файлов, попадающих под маску
*.В некоторых ситуациях требуется, чтобы интерпретатор воспринимал
метасимволы как обычные, не несущие специальной смысловой нагрузки.
Этого можно достичь, поставив перед символом обратную косую черту
(\). Например, команда echo
$TERM выведет тип вашего терминала, в то же время команда
echo \$TERM выведет именно слово
$TERM, а не значение переменной
$TERM.Как изменить командный интерпретатор по умолчаниюСамым простым способом, пожалуй, будет воспользоваться командой
chsh. Если переменная EDITOR
определена, то будет загружен соответствующий текстовый редактор, иначе vi.
Вам нужно будет изменить значение
поля “Shell:” и выйти из редактора с сохранением
результатов.Можно также воспользоваться опцией команды
chsh. Например, если вы хотите изменить
интерпретатор на bash, выполните:&prompt.user; chsh -s /usr/local/bin/bashТакже можно запустить chsh без параметров и
изменить интерпретатор по умолчанию в редакторе.Интерпретатор, который вы будете использовать,
обязательно должен быть в файле
/etc/shells. Обычно, при установке
интерпретаторов из коллекции портов,
это делается автоматически. Если же это не так, вам нужно будет
самостоятельно добавить соответствующую строчку в этот файл.Например, если вы установили bash
вручную и поместили его в
каталог /usr/local/bin, нужно набрать:&prompt.root; echo "/usr/local/bin/bash" >> /etc/shellsТеперь можно смело использовать команду
chsh.Текстовые редакторытекстовые редакторыредакторыБольшинство настроек в FreeBSD производится путем редактирования
текстовых файлов. Соответственно, вам нужно будет освоиться с
каким-либо текстовым редактором. Вместе с FreeBSD поставляются лишь
некоторые из них, гораздо больше редакторов доступно из коллекции
портов.eeСамым простым в изучении и использовании, по-видимому, можно
назвать ee, что расшифровывается как
“easy editor”, т.е. “простой редактор”. Чтобы
начать редактировать какой-либо файл, наберите в командной строке
ee filename, где
filename имя
редактируемого файла. Например, для редактирования файла
/etc/rc.conf, наберите ee
/etc/rc.conf. В верхней части экрана вы увидите список
основных команд редактора. Символ каретки (^)
означает клавишу Ctrl, таким образом,
^e означает комбинацию клавиш
Ctrle. Чтобы выйти из редактора, нажмите
клавишу Esc, затем Enter.
Если остались какие-либо не сохраненные
данные, вам потребуется подтвердить выход, сохранив результат
работы или оставив файл без изменения.vieditorsviemacseditorsemacs
- В FreeBSD присутствует также мощный текстовый редактор
+ В FreeBSD присутствует также более мощный текстовый редактор
vi, а редакторы
emacs и vim
- можно найти в коллекции портов. Эти редакторы более сложны в изучении,
+ можно найти в коллекции портов (editors/emacs и editors/vim). Эти редакторы более сложны
+ в изучении,
но их возможности порой превосходят всякие ожидания! Если в
будущем вам потребуется часто редактировать большие объемы текстов,
то потраченное на изучение этих редакторов время
окупится с лихвой.Устройства и файлы устройствТермин устройство используется в основном по
отношению к аппаратному обеспечению системы, такому как диски,
принтеры, графические адаптеры, устройства ввода текста.
При загрузке FreeBSD главным образом выводит на экран информацию об
обнаруженных устройствах. Вы можете найти эти сообщения
в файле /var/run/dmesg.boot.Например, acd0 это первый диск
IDE CDROM, а kbd0 — клавиатура.В &unix; доступ к большинству этих устройств можно получить через
специальные файлы устройств, расположенные в каталоге
/dev.Создание файлов устройствПри добавлении в систему нового устройства, или добавление
поддержки дополнительных устройств, может понадобиться создать один
или несколько файлов устройств для нового оборудования.Скрипт MAKEDEVВ системах без DEVFS (это относится ко всем
версиям FreeBSD ниже 5.0), файлы устройств создаются
с помощью &man.MAKEDEV.8;, как показано ниже:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV ad1В этом примере создается соответствующий файл устройства для
вторичного IDE диска.DEVFS (DEVice File System)Device filesystem, или DEVFS, предоставляет
доступ к пространству устройств ядра через общую файловую систему.
Вместо создания и модификации файлов устройств,
DEVFS создает специальную файловую систему.Обращайтесь к &man.devfs.5; за дополнительной информацией.В FreeBSD 5.0 и выше DEVFS используется
по умолчанию.Бинарные форматыДля понимания почему &os; использует формат
&man.elf.5;, вам потребуется сначала немного узнать
о трех доминирующих исполняемых форматах для
&unix;:&man.a.out.5;Старейший и классический объектный формат
&unix;. Он использует короткий и компактный заголовок с
магическим числом в начале, которое часто используется для
описания формата (смотрите &man.a.out.5; с более подробной
информацией). Он содержит три загружаемых сегмента: .text,
.data и .bss плюс таблицу символов и таблицу строк.COFFОбъектный формат SVR3. Заголовок включает таблицу разделов,
так что могут быть сегменты кроме .text, .data и .bss.&man.elf.5;Наследник формата COFF, поддерживающий
множественные сегменты и 32-битные или 64-битные значения. Одно
важное замечание: ELF был разработан в
предположении что есть только по одному ABI на одну архитектуру.
Это предположение совершенно не верно, и не только в мире
коммерческих SYSV (в котором есть как минимум три ABI: SVR4,
Solaris, SCO).FreeBSD пытается обойти эту проблему, в частности предоставляя
утилиту для оглавления известного
исполняемого файла ELF информацией
об ABI с которым он совместим. Обратитесь к странице справочника
&man.brandelf.1; за более подробной информацией.FreeBSD имеет произошла из классического лагеря и
использовала формат &man.a.out.5;, технологию опробованную и
проверенную на многих поколениях релизов BSD, до начала ветки
3.X. Хотя собирать и запускать родные бинарные
файлы ELF (и ядро) в системе FreeBSD
можно было несколько раньше, FreeBSD вначале сопротивлялась
проталкиванию ELF как формата
по умолчанию. Почему? Когда лагерь Linux производил болезненный
переход к ELF, у него не было большого
преимущества перед исполняемым форматом a.out,
из-за негибкого, основанного на таблице переходов механизма
разделяемых библиотек, что делало создание разделяемых библиотек
очень трудным для поставщиков и разработчиков. Когда доступные
инструменты ELF предоставили решение проблемы
разделяемых библиотек, и появилась некоторая перспектива,
цена перехода была признана допустимой и он был сделан.
Механизм разделяемых библиотек FreeBSD близок по стилю к механизму
разделяемых библиотек &sunos; от Sun, и поэтому очень прост в
использовании.Итак, почему так много разных форматов?Давно, в темном далеком прошлом, оборудование было простым.
Это простое оборудование поддерживало простые, маленькие системы.
a.out был совершенно адекватен задаче представления
бинарных файлов на таких простых системах (PDP-11). Люди, портировавшие
&unix; с этих простых систем, оставили a.out
формат потому, что он был достаточен для ранних портов &unix; на
архитектуры подобные Motorola 68k, VAXen, etc.Затем какой-то смышленый инженер по оборудованию решил что если
он сможет заставить программы исполнять некоторые трюки, то сможет
несколько упростить дизайн и заставить ядро CPU работать быстрее.
Хотя это было сделано с новым типом оборудования (известного сейчас
как RISC), формат a.out не подходил для него,
и было разработано множество форматов чтобы получить
лучшую производительность на таком оборудовании по сравнению с
той, которую мог предоставить простой формат a.out.
Были изобретены форматы COFF, ECOFF
и некоторые другие малоизвестные форматы, и их ограничения были учтены
когда все похоже остановились на ELF.Кроме того, размеры программ стали огромны, а диски (и оперативная
память) остались относительно малы, поэтому появилась концепция
разделяемых библиотек. Система VM также стала более сложной.
Хотя все эти усовершенствования были выполнены с форматом
a.out, его полезность все больше и больше
уменьшалась с каждым нововведением. К тому же потребовалась
динамическая загрузка во время выполнения, или выгрузка частей
программы после выполнения стартового кода для экономии
памяти или места на диске. Языки усложнялись и потребовался
автоматический вызов кода перед главной программой. Множество
изменений было внесено в формат a.out чтобы
все это появилось и в основном работало некоторое время. Настал
момент, когда a.out не смог решить все эти
проблемы без чрезмерного увеличения размера и сложности.
В то время как ELF решил многие из этих проблем,
перевод этого формата с системы на систему болезненен. Поэтому
формату ELF пришлось подождать пока не стало
более болезненным оставаться с a.out чем
перейти на ELF.Тем временем, инструменты разработки, от которых
произошли инструменты разработки FreeBSD (особенно ассемблер и
загрузчик) развивались в двух параллельных направлениях.
Направление FreeBSD добавило разделяемые библиотеки и устранило
некоторые ошибки. Люди из GNU, написавшие эти программы,
переписали их и добавили простую поддержку сборки
кросскомпиляторов, подключения различных форматов в будущем
и так далее. Многим требовалось собрать кросскомпиляторы
для FreeBSD, и это не удалось, поскольку устаревшие исходные
тексты FreeBSD для as и
ld не подходили для этой задачи.
Новый набор инструментов GNU (binutils)
поддерживает кросскомпилирование, ELF,
разделяемые библиотеки, C++, расширения и т.д. В дополнение,
многие поставщики выпустили программы в формате
ELF и они хорошо подходят для запуска в
FreeBSD.ELF более выразителен чем
a.out позволяет базовой системе быть более
гибкой. ELF лучше поддерживается, и
предоставляет поддержку кросскомпиляторов, что важно для многих
людей. ELF может быть немного медленнее
чем a.out, но замерить это сложно.
Есть также множество деталей, отличающихся для этих двух
форматов, в том как они отображают страницы, обрабатывают
начальный код, и т.д. В этом нет ничего очень важного,
но они различаются. В настоящее время поддержка
a.out убрана из ядра GENERIC, и со
временем будет убрана из ядра как только потребность в запуске
старых программ a.out останется в прошлом.Дополнительная информацияСистемный справочник (man)страницы справочникаПожалуй, самым полным руководством по FreeBSD является
системный справочник (man). Практически каждое приложение или
утилита имеют соответствующую страницу (часто не одну), описывающую
тот или иной аспект работы программы, всевозможные опции и
настройки. Для просмотра этих страниц существует команда
man:&prompt.user; man commandЗдесь command – это команда, о которой вы
хотите получить информацию. Например, чтобы узнать побольше о команде
ls, наберите:&prompt.user; man lsСодержимое системного справочника для удобства разделено на
несколько секций:Пользовательские команды.Системные вызовы и коды ошибок.Функции стандартных библиотек.Драйверы устройств.Форматы файлов.Развлечения и игры.Дополнительная информация.Команды системного администрирования.Для разработчиков ядра.В некоторых случаях (не так уж редко), страницы, относящиеся к
одной и той же команде, находятся в различных секциях справочника.
Например, есть команда cdmod и системный вызов
chmod(). В этом случае, необходимо явно указать
man секцию, в которой нужно искать соответствующую
страницу:&prompt.user; man 1 chmodЭта команда выведет справку об утилите chmod.
По традиции, конкретная секция справочника указывается в скобках
после команды, например, &man.chmod.1; относится к утилите
chmod, а &man.chmod.2; – к соответствующему
системному вызову.Часто бывает так, что вы не знаете название команды, но имеете
представление о том, что она должна делать. В этом случае можно
попытаться найти нужную команду по ключевым словам, встречающимся в
ее описании, используя опцию программы
man:&prompt.user; man -k mailВы получите список команд, имеющих слово “mail” в
своих описаниях. Это эквивалентно использованию команды
apropos.Или например, вы видите список файлов в каталоге
/usr/bin, при этом не имея ни малейшего
представления о том, какие функции выполняет каждый их них? Просто
наберите:&prompt.user; cd /usr/bin
&prompt.user; man -f *или&prompt.user; cd /usr/bin
&prompt.user; whatis *что фактически одно и то же.Файлы GNU InfoFreeBSD поставляется с многочисленными приложениями и утилитами от
Фонда Свободного Программного Обеспечения, Free Software Foundation
(FSF). В дополнение к страницам справочника, с этими программами
поставляется обширная гипертекстовая документация в виде так называемых
info файлов, которые могут быть просмотрены с
помощью команды info, или, если установлен
emacs, в info режиме этого редактора.Чтобы воспользоваться командой &man.info.1;, просто наберите в
командной строке:&prompt.user; infoВызвать на экран краткое введение можно набрав
h. Краткий список команд можно получить набрав
?.
diff --git a/ru_RU.KOI8-R/books/handbook/bibliography/chapter.sgml b/ru_RU.KOI8-R/books/handbook/bibliography/chapter.sgml
index 3df8721dfd..27d6f175c3 100644
--- a/ru_RU.KOI8-R/books/handbook/bibliography/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/bibliography/chapter.sgml
@@ -1,602 +1,602 @@
БиблиографияТак как страницы Справочника FreeBSD предоставляют лишь описание
отдельных частей операционной системы FreeBSD, они
не очень удобны для иллюстрации объединения этих частей вместе
для того, чтобы настроить ОС и сделать ее работу более гладкой.
Для этого незаменимы хорошая книга по системному администрированию
&unix; и хорошее руководство
пользователя.Книги и журналы, специализирующиеся на FreeBSDМеждународные книги и
журналы:Using FreeBSD (на Китайском).FreeBSD for PC 98'ers (на японском), выпущено SHUWA System
Co, LTD. ISBN 4-87966-468-5 C3055 P2900E.FreeBSD (на японском), выпущено CUTT. ISBN 4-906391-22-2
C3055 P2400E.Complete
Introduction to FreeBSD (на японском), выпущено
Shoeisha Co.,
Ltd. ISBN 4-88135-473-6 P3600E.Personal UNIX Starter Kit FreeBSD (на японском), выпущено ASCII. ISBN 4-7561-1733-3 P3000E.FreeBSD Handbook (японский перевод), выпущено ASCII. ISBN 4-7561-1580-2
P3800E.FreeBSD mit Methode (на немецком), выпущено Computer und
Literatur Verlag/Vertrieb Hanser, 1998. ISBN 3-932311-31-0.FreeBSD 4 - Installieren, Konfigurieren, Administrieren
(на немецком), выпущено Computer und Literatur Verlag, 2001.
ISBN 3-932311-88-4.FreeBSD 5 - Installieren, Konfigurieren, Administrieren
(на немецком), выпущено Computer und Literatur Verlag, 2003.
ISBN 3-936546-06-1.
FreeBSD de Luxe (на немецком), выпущено
Verlag Modere Industrie,
2003. ISBN 3-8266-1343-0.
FreeBSD Install and Utilization Manual (на японском), выпущено Mainichi Communications Inc..Onno W Purbo, Dodi Maryanto, Syahrial Hubbany, Widjil Widodo
Создание Интернет
Сервера с использованием FreeBSD (на Индонезийском языке),
выпущено Elex Media
Komputindo.Книги и журналы на английском языке:Absolute
BSD: The Ultimate Guide to FreeBSD, выпущено
No Starch Press, 2002.
ISBN: 1886411743
The Complete FreeBSD, выпущено
O'Reilly, 2003.
ISBN: 0596005164The FreeBSD
Corporate Networker's Guide, выпущено
Addison-Wesley, 2000.
ISBN: 0201704811
FreeBSD: An Open-Source Operating System for Your Personal
Computer, выпущено The Bit Tree Press, 2001.
ISBN: 0971204500Teach Yourself FreeBSD in 24 Hours, выпущено
Sams, 2002.
ISBN: 0672324245FreeBSD unleashed, выпущено
Sams, 2002.
ISBN: 0672324563FreeBSD: The Complete Reference, выпущено
McGrawHill, 2003.
ISBN: 0072224096 Руководства для пользователейComputer Systems Research Group, UC Berkeley. 4.4BSD
User's Reference Manual. O'Reilly & Associates,
Inc., 1994. ISBN 1-56592-075-9Computer Systems Research Group, UC Berkeley. 4.4BSD
User's Supplementary Documents. O'Reilly &
Associates, Inc., 1994. ISBN 1-56592-076-7UNIX in a Nutshell. O'Reilly &
Associates, Inc., 1990. ISBN 093717520XMui, Linda. What You Need To Know When You Can't Find
Your UNIX System Administrator. O'Reilly &
Associates, Inc., 1995. ISBN 1-56592-104-6Ohio State
University написал
Ознакомительный Курс UNIX который доступен в Online в
HTML и PS форматах.Итальянский перевод
+ url="&url.doc.base;/it_IT.ISO8859-15/books/unix-introduction/index.html">перевод
этого документа доступен как часть FreeBSD Italian
Documentation Project.Jpman Project, Japan
FreeBSD Users Group. FreeBSD User's
Reference Manual (Японский перевод). Mainichi Communications
Inc., 1998. ISBN4-8399-0088-4 P3800E.Эдинбургский
Университет составил Online Путеводитель
для новичков в UNIX.Руководства для администраторовAlbitz, Paul and Liu, Cricket. DNS and
BIND, 4th Ed. O'Reilly & Associates, Inc., 2001.
ISBN 1-59600-158-4Computer Systems Research Group, UC Berkeley. 4.4BSD
System Manager's Manual. O'Reilly & Associates,
Inc., 1994. ISBN 1-56592-080-5Costales, Brian, et al. Sendmail, 2nd Ed.
O'Reilly & Associates, Inc., 1997. ISBN 1-56592-222-0Frisch, Æleen. Essential System
Administration, 2nd Ed. O'Reilly & Associates,
Inc., 1995. ISBN 1-56592-127-5Hunt, Craig. TCP/IP Network
Administration, 2nd Ed. O'Reilly & Associates,
Inc., 1997. ISBN 1-56592-322-7Nemeth, Evi. UNIX System Administration
Handbook. 2nd Ed. Prentice Hall, 2000. ISBN
0-13-020601-6Stern, Hal Managing NFS and NIS O'Reilly
& Associates, Inc., 1991. ISBN 0-937175-75-7Jpman Project, Japan
FreeBSD Users Group. FreeBSD System
Administrator's Manual (Japanese translation). Mainichi Communications
Inc., 1998. ISBN4-8399-0109-0 P3300E.Dreyfus, Emmanuel. Cahiers
- de l'Admin: BSD (на французском), Eyrolles, 2003.
- ISBN 2-212-11244-0
+ url="http://www.eyrolles.com/Informatique/Livre/9782212114638/">Cahiers
+ de l'Admin: BSD 2nd Ed. (на французском), Eyrolles, 2004.
+ ISBN 2-212-11463-X
Руководства для программистовAsente, Paul, Converse, Diana, and Swick, Ralph.
X Window System Toolkit. Digital Press, 1998.
ISBN 1-55558-178-1Computer Systems Research Group, UC Berkeley. 4.4BSD
Programmer's Reference Manual. O'Reilly &
Associates, Inc., 1994. ISBN 1-56592-078-3Computer Systems Research Group, UC Berkeley. 4.4BSD
Programmer's Supplementary Documents. O'Reilly &
Associates, Inc., 1994. ISBN 1-56592-079-1Harbison, Samuel P. and Steele, Guy L. Jr. C: A
Reference Manual. 4rd ed. Prentice Hall, 1995.
ISBN 0-13-326224-3Kernighan, Brian and Dennis M. Ritchie. The C
Programming Language.. PTR Prentice Hall, 1988.
ISBN 0-13-110362-9Lehey, Greg. Porting UNIX Software.
O'Reilly & Associates, Inc., 1995. ISBN 1-56592-126-7Plauger, P. J. The Standard C Library.
Prentice Hall, 1992. ISBN 0-13-131509-9Spinellis, Diomidis. Code
Reading: The Open Source Perspective.
Addison-Wesley, 2003. ISBN 0-201-79940-5Stevens, W. Richard. Advanced Programming in the UNIX
Environment. Reading, Mass. : Addison-Wesley, 1992.
ISBN 0-201-56317-7Stevens, W. Richard. UNIX Network
Programming. 2nd Ed, PTR Prentice Hall, 1998. ISBN
0-13-490012-XWells, Bill. Writing Serial Drivers for UNIX.
Dr. Dobb's Journal. 19(15), December 1994.
pp68-71, 97-99.Внутренности операционной системыAndleigh, Prabhat K. UNIX System
Architecture. Prentice-Hall, Inc., 1990. ISBN
0-13-949843-5Jolitz, William. Porting UNIX to the 386.
Dr. Dobb's Journal. January 1991-July
1992.Leffler, Samuel J., Marshall Kirk McKusick, Michael J Karels and
John Quarterman The Design and Implementation of the
4.3BSD UNIX Operating System. Reading, Mass. :
Addison-Wesley, 1989. ISBN 0-201-06196-1Leffler, Samuel J., Marshall Kirk McKusick, The Design
and Implementation of the 4.3BSD UNIX Operating System: Answer
Book. Reading, Mass. : Addison-Wesley, 1991. ISBN
0-201-54629-9McKusick, Marshall Kirk, Keith Bostic, Michael J Karels, and
John Quarterman. The Design and Implementation of the
4.4BSD Operating System. Reading, Mass. :
Addison-Wesley, 1996. ISBN 0-201-54979-4(глава 2 этой книги доступна онлайн как часть
+ url="&url.books.design-44bsd;/book.html">онлайн как часть
Проекта документирования FreeBSD, и глава 9 доступна
здесь.)Stevens, W. Richard. TCP/IP Illustrated, Volume 1:
The Protocols. Reading, Mass. : Addison-Wesley,
1996. ISBN 0-201-63346-9Schimmel, Curt. Unix Systems for Modern
Architectures. Reading, Mass. : Addison-Wesley, 1994.
ISBN 0-201-63338-8Stevens, W. Richard. TCP/IP Illustrated, Volume 3:
TCP for Transactions, HTTP, NNTP and the UNIX Domain
Protocols. Reading, Mass. : Addison-Wesley, 1996.
ISBN 0-201-63495-3Vahalia, Uresh. UNIX Internals -- The New
Frontiers. Prentice Hall, 1996. ISBN
0-13-101908-2Wright, Gary R. and W. Richard Stevens. TCP/IP
Illustrated, Volume 2: The Implementation. Reading,
Mass. : Addison-Wesley, 1995. ISBN 0-201-63354-XБезопасностьCheswick, William R. and Steven M. Bellovin. Firewalls
and Internet Security: Repelling the Wily Hacker.
Reading, Mass. : Addison-Wesley, 1995. ISBN
0-201-63357-4Garfinkel, Simson and Gene Spafford.
Practical UNIX & Internet Security.
2nd Ed. O'Reilly & Associates, Inc., 1996. ISBN
1-56592-148-8Garfinkel, Simson. PGP Pretty Good
Privacy O'Reilly & Associates, Inc., 1995. ISBN
1-56592-098-8ОборудованиеAnderson, Don and Tom Shanley. Pentium Processor
System Architecture. 2nd Ed. Reading, Mass. :
Addison-Wesley, 1995. ISBN 0-201-40992-5Ferraro, Richard F. Programmer's Guide to the EGA,
VGA, and Super VGA Cards. 3rd ed. Reading, Mass. :
Addison-Wesley, 1995. ISBN 0-201-62490-7Intel Corporation publishes documentation on their CPUs,
chipsets and standards on their developer web site,
usually as PDF files.Shanley, Tom. 80486 System Architecture.
3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
0-201-40994-1Shanley, Tom. ISA System Architecture.
3rd ed. Reading, Mass. : Addison-Wesley, 1995. ISBN
0-201-40996-8Shanley, Tom. PCI System Architecture.
4th ed. Reading, Mass. : Addison-Wesley, 1999. ISBN
0-201-30974-2Van Gilluwe, Frank. The Undocumented PC, 2nd Ed.
Reading, Mass: Addison-Wesley Pub. Co., 1996. ISBN
0-201-47950-8Messmer, Hans-Peter. The Indispensable PC Hardware Book, 4th Ed.
Reading, Mass: Addison-Wesley Pub. Co., 2002. ISBN
0-201-59616-4История &unix;Lion, John Lion's Commentary on UNIX, 6th Ed. With
Source Code. ITP Media Group, 1996. ISBN
1573980137Raymond, Eric S. The New Hacker's Dictionary, 3rd
edition. MIT Press, 1996. ISBN
0-262-68092-0. Also known as the Jargon
FileSalus, Peter H. A quarter century of UNIX.
Addison-Wesley Publishing Company, Inc., 1994. ISBN
0-201-54777-5Simon Garfinkel, Daniel Weise, Steven Strassmann. The
UNIX-HATERS Handbook. IDG Books Worldwide, Inc.,
1994. ISBN 1-56884-203-1Don Libes, Sandy Ressler Life with UNIX
— special edition. Prentice-Hall, Inc., 1989. ISBN
0-13-536657-7The BSD family tree.
или /usr/share/misc/bsd-family-tree
на современном компьютере FreeBSD.The BSD Release Announcements collection.
1997. Networked Computer Science Technical Reports
Library. Old BSD releases from the Computer Systems Research
group (CSRG).
:
The 4CD set covers all BSD versions from 1BSD to 4.4BSD and
4.4BSD-Lite2 (but not 2.11BSD, unfortunately). As well, the last
disk holds the final sources plus the SCCS files.Прочие изданияThe C/C++ Users Journal. R&D
Publications Inc. ISSN 1075-2838Sys Admin — The Journal for UNIX System
Administrators Miller Freeman, Inc., ISSN
1061-2688freeX — Das Magazin für Linux - BSD - UNIX
(на немецком) Computer- und Literaturverlag GmbH, ISSN 1436-7033
diff --git a/ru_RU.KOI8-R/books/handbook/chapters.ent b/ru_RU.KOI8-R/books/handbook/chapters.ent
index dfead5d6d9..052c7844e8 100644
--- a/ru_RU.KOI8-R/books/handbook/chapters.ent
+++ b/ru_RU.KOI8-R/books/handbook/chapters.ent
@@ -1,59 +1,62 @@
+
+
+
+
+
+
+
+
-
-
-
-
-
+
+
+
-
-
-
-
+
+
-
+
-
diff --git a/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml b/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml
index d4377bbb97..2e5ba89c31 100644
--- a/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/mirrors/chapter.sgml
@@ -1,2799 +1,2822 @@
ДенисПеплинПеревод на русский язык: Получение FreeBSDИздатели CDROM и DVDКоробочная версияFreeBSD доступна в коробочной версии (FreeBSD CD диски,
дополнительное программное обеспечение, печатная документация) от
нескольких поставщиков:CompUSA
WWW: Frys Electronics
WWW: Наборы CD и DVDНаборы FreeBSD CD и DVD доступны у множества онлайн
поставщиков:Daemon News Mall560 South State Street, Suite A2Orem, UT84058США
Телефон: +1 800 407-5170
Факс: +1 1 801 765-0877
Email: sales@bsdmall.com
WWW: FreeBSD Mall, Inc.3623 Sanford StreetConcord, CA94520-1405США
Телефон: +1 925 674-0783
Факс: +1 925 674-0821
Email: info@freebsdmall.com
WWW: FreeBSD Services Ltd11 Lapwing CloseBicesterOX26 6XRВеликобритания
WWW: Hinner EDVSt. Augustinus-Str. 10D-81825MünchenГермания
Телефон: (089) 428 419
WWW: Ikarios22-24 rue Voltaire92000NanterreФранция
WWW: Ingram Micro1600 E. St. Andrew PlaceSanta Ana, CA92705-4926США
Телефон: 1 (800) 456-8000
WWW: JMC SoftwareИрландия
Телефон: 353 1 6291282
WWW: The Linux EmporiumHilliard House, Lester WayWallingfordOX10 9TAВеликобритания
Телефон: +44 1491 837010
Факс: +44 1491 837016
WWW: Linux System Labs Australia21 Ray DriveBalwyn NorthVIC - 3104Австралия
Телефон: +61 3 9857 5918
Факс: +61 3 9857 8974
WWW: LinuxCenter.Ruул. Галерная, 55Санкт-Петербург190000Россия
Телефон: +7-812-3125208
Email: info@linuxcenter.ru
WWW: UNIXDVD.COM LTD57 Primrose AvenueSheffieldS5 6FSВеликобритания
WWW: РаспространителиЕсли вы продавец и хотите заниматься FreeBSD CDROM,
пожалуйста свяжитесь с распространителем:Cylogistics2672 Bayshore Parkway, Suite 610Mountain View, CA94043США
Телефон: +1 650 694-4949
Факс: +1 650 694-4953
Email: sales@cylogistics.com
WWW: FreeBSD Services Ltd11 Lapwing CloseBicesterOX26 6XRВеликобритания
WWW: Kudzu, LLC7375 Washington Ave. S.Edina, MN55439США
Телефон: +1 952 947-0822
Факс: +1 952 947-0876
Email: sales@kudzuenterprises.com
+
+
+ LinuxCenter.Ru
+ ул. Галерная, 55
+ Санкт-Петербург
+ 190000
+ Россия
+ Телефон: +7-812-3125208
+ Email: info@linuxcenter.ru
+ WWW:
+
+
+
Navarre Corp7400 49th Ave SouthNew Hope, MN55428США
Телефон: +1 763 535-8333
Факс: +1 763 535-0341
WWW: FTP сайтыОфициальным источником FreeBSD являются анонимные FTP
зеркала по всему миру. Сайт
имеет
хорошее подключение и поддерживает большое количество одновременных
соединений, но для вас возможно потребуется найти
ближайшее зеркало (особенно если вы решили настроить
у себя какой-то из видов зеркал).База данных зеркал
FreeBSD предпочтительнее по сравнению со списком зеркал в
Руководстве, поскольку информация в базе собирается из DNS, а не
из статического списка узлов.Кроме того, FreeBSD доступна через анонимный FTP со следующих
зеркал. Если вы выбрали получение FreeBSD через анонимный FTP,
пожалуйста выберите ближайший к вам сайт. Зеркала из списка
Основных зеркал обычно содержат полный архив
FreeBSD (все доступные на данный момент версии для каждой архитектуры),
скорость загрузки возможно будет больше с зеркала, расположенного в
вашей стране или регионе. Сайты каждой страны содержат последнюю версию для наиболее
популярных архитектур, но на них может не быть полного архива FreeBSD.
Все сайты предоставляют доступ через анонимный FTP, а некоторые
предоставляют доступ и другими методами. Для каждого сайта
приведен список методов доступа в скобках после имени хоста.
&chap.mirrors.ftp.inc;
Анонимный CVSВведениеАнонимный CVS (известный также как,
anoncvs) это возможность, предоставляемая
утилитами CVS, поставляемыми с FreeBSD для синхронизации с удаленным
CVS репозиторием. Помимо прочего, он позволяет пользователям
FreeBSD без специальных привилегий (с правами только на чтение)
выполнять CVS операции на одном из официальных anoncvs серверов
проекта FreeBSD. Для использования этой возможности, просто
установите переменную CVSROOT на соответствующий
сервер anoncvs, введите общеизвестный пароль anoncvs
в ответ на приглашение команды cvs login, а
затем используйте &man.cvs.1; для доступа к репозиторию как к
обычному локальному CVS.Команда cvs login сохраняет пароли,
использованные для авторизации на сервере CVS в файле с
именем .cvspass в каталоге
HOME. Если этот файл не существует, вы можете
получить сообщение об ошибке при первом запуске cvs
login. Просто создайте пустой файл
.cvspass и попробуйте еще раз.Хотя можно сказать, что сервисы CVSup и anoncvs
выполняют в сущности похожие функции, есть несколько отличий,
которые могут повлиять на выбор метода синхронизации.
По своей сути, CVSup гораздо
более эффективно использует сетевые ресурсы, и из двух этих
программ он более интеллектуален, но за его эффективность
приходится платить. Во-первых, для того, чтобы появилась
возможность хоть что-то получить этим методом,
CVSup потребуется установить и
настроить специальную программу, а во-вторых, этот
CVSup позволяет синхронизацию только
довольно больших частей исходных текстов, называемых
коллекциями.Anoncvs напротив может использоваться
для получения как одного файла, так и всей программы
(например ls или grep),
с помощью ссылки на имя модуля CVS. Конечно,
anoncvs хорошо подходит только при
операциях на чтение CVS репозитория, поэтому если вы намереваетесь
производить локальную разработку в одном из репозиториев
проекта FreeBSD, вам подойдет только
CVSup.Использование анонимного CVSНастройка &man.cvs.1; для использования анонимного CVS
репозитория означает установку переменной окружения
CVSROOT на один из anoncvs
серверов проекта FreeBSD. На момент написания этого документа
доступны следующие сервера:Австрия:
:pserver:anoncvs@anoncvs.at.FreeBSD.org:/home/ncvs
(Используйте cvs login и введите любой
пароль в ответ на приглашение.)Франция:
:pserver:anoncvs@anoncvs.fr.FreeBSD.org:/home/ncvs
(pserver (пароль anoncvs), ssh (нет пароля))
Германия:
:pserver:anoncvs@anoncvs.de.FreeBSD.org:/home/ncvs
(Используйте cvs login и введите пароль
anoncvs в ответ на приглашение.)Германия:
:pserver:anoncvs@anoncvs2.de.FreeBSD.org:/home/ncvs
(rsh, pserver, ssh, ssh/2022)
Япония:
:pserver:anoncvs@anoncvs.jp.FreeBSD.org:/home/ncvs
(Используйте cvs login и введите пароль
anoncvs в ответ на приглашение.)Швеция:
freebsdanoncvs@anoncvs.se.FreeBSD.org:/home/ncvs
(только ssh - без пароля)США:
:pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
(Используйте cvs login и введите пароль
anoncvs в ответ на приглашение.)Поскольку CVS позволяет выполнить check out
практически любой версии исходных текстов FreeBSD, которые
когда-либо существовали (или, в некоторых случаях, будут
существовать), вам необходимо познакомиться с флагом
&man.cvs.1; для ревизий () и с параметрами,
которые могут быть использованы с этим флагом в репозитории
проекта FreeBSD.Есть два вида тегов, теги ревизий и теги ветвей.
Теги ревизий отвечают за определенную ревизию. Их значение
остается прежним изо дня в день. Теги ветвей сопоставляются
последней ревизии определенной ветви разработки, в любой
момент времени. Поскольку теги ветвей не сопоставлены какой-то
определенной ревизии, завтра они могут означать совсем не то,
что сегодня. содержит теги ревизий, которые
могут заинтересовать пользователей. Опять же, ни один из них
не подходит для коллекции портов, поскольку в коллекции портов
нет разнообразия ревизий.Если вы указываете тег ветви, то обычно получаете последнюю
версию файлов этой ветви разработки. Если вы хотите получить
предыдущую версию, это можно сделать путем указания даты флагом
. Обратитесь к странице справочника
&man.cvs.1; за более подробной информацией.ПримерыХотя перед тем, как что-то делать, рекомендуется полностью
прочесть страницу справочника &man.cvs.1;, вот несколько кратких
примеров использования Anonymous CVS:Извлечение кода из -CURRENT (&man.ls.1;) с
последующим удалением:&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginAt the prompt, enter the passwordanoncvs.
&prompt.user; cvs co ls
&prompt.user; cvs release -d ls
&prompt.user; cvs logoutИзвлечение &man.ls.1; из ветви для 3.X-STABLE:&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginAt the prompt, enter the passwordanoncvs.
&prompt.user; cvs co -rRELENG_3 ls
&prompt.user; cvs release -d ls
&prompt.user; cvs logoutСоздание списка изменений &man.ls.1; (в виде unified diff)&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginAt the prompt, enter the passwordanoncvs.
&prompt.user; cvs rdiff -u -rRELENG_3_0_0_RELEASE -rRELENG_3_4_0_RELEASE ls
&prompt.user; cvs logoutПоиск доступных имен модулей:&prompt.user; setenv CVSROOT :pserver:anoncvs@anoncvs.FreeBSD.org:/home/ncvs
&prompt.user; cvs loginAt the prompt, enter the passwordanoncvs.
&prompt.user; cvs co modules
&prompt.user; more modules/modules
&prompt.user; cvs release -d modules
&prompt.user; cvs logoutДругие ресурсыВ изучении CVS могут помочь следующие дополнительные
ресурсы:Учебник
по CVS от Cal Poly.CVS Home,
сообщество разработки и поддержки CVS.CVSweb
это веб интерфейс к CVS проекта FreeBSD.Использование CTMCTM это метод синхронизации удаленного
дерева исходных текстов с центральным. Он был разработан для
использования с деревом исходных текстов FreeBSD, хотя может
быть полезен и для других целей. На данный момент существует очень
немного (если она вообще существует) документации по процессу создания
дельта-файлов (deltas, разница между имеющимися и актуальными
исходными текстами), поэтому обратитесь в список рассылки
&a.ctm-users.name; за
дополнительной информацией, если захотите использовать
CTM для других целей.Зачем мне может понадобиться
CTM?CTM создаст для вас локальную копию
исходных текстов FreeBSD. Существует множество разновидностей
дерева исходных текстов. Захотите ли вы поддерживать все дерево
CVS или только одну из ветвей, CTM
может предоставить вам все необходимое. Если вы разработчик
FreeBSD, но ваше соединение по TCP/IP некачественное или
отсутствует, или же вы просто хотите, чтобы изменения автоматически
отправлялись вам, CTM предназначен
для вас. Вам потребуется получать до трех изменений в день для
наиболее активных ветвей. Они будут отправляться вам по электронной
почте. Размеры обновлений всегда поддерживаются настолько малыми,
насколько это возможно. Они обычно меньше 5K, хотя случается
(раз из десяти) достигают 10-50K и время от времени даже
100K или больше.Вам также потребуется узнать о различных особенностях работы
непосредственно с исходными текстами в разработке, вместо
готовых релизов. Это в частности относится к выбору исходных
текстов ветви -CURRENT. Рекомендуется прочесть материал
На переднем крае разработок.Что потребуется для использования
CTM?Вам потребуются две вещи: программа
CTM и исходные тексты, которые требуется
обновить (до актуального состояния).Программа CTM была частью
FreeBSD все время с момента выпуска релиза 2.0, она находится
в каталоге /usr/src/usr.sbin/ctm, если
у вас есть копия исходных текстов.Если вы работаете с версией FreeBSD до 2.0, можете получить
актуальные исходные тексты CTM
непосредственно с:Дельта-файлыCTM могут приходить двумя путями,
через FTP или email. Если у вас есть доступ к интернет по FTP,
доступ к CTM может быть получен через
следующие FTP сайты:или с сайтов из списка зеркал.Зайдите по FTP в соответствующий каталог и прочтите файл
README.Если вы предпочитаете получать дельта-файлы по почте:Подпишитесь на один из списков распространения
CTM.
&a.ctm-cvs-cur.name; поддерживает все дерево CVS.
&a.ctm-src-cur.name; поддерживает главную ветвь разработки.
&a.ctm-src-4.name; поддерживает ветвь 4.X, и т.д. Если вы
не знаете, как подписаться на список, нажмите на ссылку выше или
на ссылку &a.mailman.lists.link;, а затем на ссылку соответствующего
списка. Страница списка должна содержать все необходимые инструкции
по подписке.Когда вы начнете получать обновления
CTM по почте, используйте программу
ctm_rmail для распаковки и применения обновлений.
Вы можете использовать программу ctm_rmail
непосредственно из /etc/aliases, если
хотите полностью автоматизировать процесс. Прочтите страницу
справочника ctm_rmail с более подробной
информацией.Вне зависимости от способа получения дельта-файлов
CTM, вам потребуется подписка на
список рассылки &a.ctm-announce.name;. В будущем этот список
станет единственным местом, где будут анонсироваться операции,
относящиеся к системе CTM.
Нажмите на ссылку выше и следуйте инструкциям для подписки
на эту рассылку.Использование CTM в первый
разПеред тем, как вы сможете начать использование дельта-файлов
CTM, потребуется определить
исходную точку для последующего их применения.Сначала потребуется определить, что уже имеется.
Каждый может начать с пустого (empty) каталога.
Вы должны использовать дельта-файл Empty
для создания поддерживаемого CTM дерева.
Планируется распространение стартовых дельта-файлов
на CD, но на данный момент это не делается.Поскольку дерево исходных текстов может быть объемом в десятки
мегабайт, предпочтительно начать с каких-то уже имеющихся текстов.
Если у вас есть -RELEASE CD, распакуйте исходные тексты с него.
Это снизит объем передаваемых данных.Вы можете распознать стартовый дельта-файл
по символу X, добавляемому к номеру
(например, src-cur.3210XEmpty.gz).
Обозначение перед X соответствует имеющимся
исходным текстам. Empty это пустой каталог.
Как правило файл с Empty создается через каждые
100 дельта-файлов. Между прочем, эти файлы большие! От 70 до
;) мегабайт упакованных gzip данных это
обычный размер для XEmpty.Как только вы получили основной дельта-файл, потребуются также
все дельта-файлы с последующими номерами.Повседневное использование
CTMДля применения дельта-файлов, просто выполните:&prompt.root; cd /where/ever/you/want/the/stuff
&prompt.root; ctm -v -v /where/you/store/your/deltas/src-xxx.*CTM работает с дельта-файлами,
упакованными с помощью gzip, поэтому вам не
требуется их распаковывать.Хотя весь процесс довольно безопасен,
CTM не будет изменять дерево исходных
текстов. Для проверки дельта-файла вы также можете использовать
флаг , CTM
только проверит целостность дельта-файла а также его применимость
к существующим исходным текстам.Это все. Каждый раз после получения дельта-файла, запускайте
CTM для поддержания исходных текстов
в актуальном состоянии.Не удаляйте дельта-файлы, если их сложно загрузить еще раз.
Вы возможно захотите сохранить их на всякий случай. Если вы можете
сохранить их только на дискете, используйте для создания копии
fdwrite.Сохранение локальных измененийКак разработчик вы возможно захотите поэкспериментировать и
изменить файлы в дереве исходных текстов.
CTM имеет ограниченную поддержку
локальных изменений: перед проверкой наличия файла
foo, сначала проверяется
foo.ctm. Если он присутствует,
CTM будет работать с ним вместо
foo.Такое поведение обеспечивает простой путь поддержки локальных
изменений: просто скопируйте файлы, которые вы хотите изменить,
в файлы с соответствующими именами и суффиксом
.ctm. Вы можете свободно изменять код,
а CTM будет поддерживать файлы
.ctm в актуальном состоянии.Другие интересные возможности
CTMОпределение файлов, которые будут затронуты
обновлениемВы можете определить список изменений, которые
CTM внесет в исходные тексты,
используя параметр CTM
.Это полезно, если вы хотите поддерживать лог изменений,
выполнить предварительную или последующую обработку изменяемых
файлов, или если вы просто немного параноидальны.Создание резервных копий перед обновлениемИногда вам может понадобиться сделать резервные копии всех
файлов, которые будут изменены
CTM.С параметром
CTM выполнит резервное копирование
всех изменяемых дельта-файлом CTM
файлов в backup-file.Ограничение обновлений для определенных файловИногда необходимо ограничить набор файлов, обновляемых
CTM, или даже задать обновление
нескольких определенных файлов.Вы можете управлять списком файлов, с которыми будет работать
CTM, путем указания фильтрующих
регулярных выражений с параметрами и
.Например, для извлечения свежей копии
lib/libc/Makefile из коллекции сохраненных
дельта-файлов CTM, выполните
команду:&prompt.root; cd /where/ever/you/want/to/extract/it/
&prompt.root; ctm -e '^lib/libc/Makefile' ~ctm/src-xxx.*Для каждого указанного CTM
дельта-файла, параметры и
применяются в порядке их задания в командной строке. Файл
обрабатывается CTM только если он
помечается как подходящий после обработки всех параметров
и .Дальнейшие планы для CTMМасса планов:Использовать какой-то из видов аутентификации в системе
CTM, позволяющий обнаружение
поддельных дат CTM.Доработать параметры CTM,
поскольку они могут ввести в заблуждение.РазноеСуществует набор дельта-файлов и для коллекции
ports, но интерес к нему пока не так
высок.Зеркала CTMCTM/FreeBSD доступен через анонимный
FTP с нижеприведенных зеркал. Если вы выбрали получение
CTM через анонимный FTP, используйте
ближайший к вам сервер.В случае возникновения проблем обратитесь в список рассылки
&a.ctm-users.name;.California, Bay Area, официальный источникSouth Africa, резервный сервер для старых дельта-файловTaiwan/R.O.C.Если вы не нашли ближайшего к вам зеркала, или зеркало неполно,
попробуйте воспользоваться поиском, например
alltheweb.Использование CVSupВведениеCVSup это пакет программного
обеспечения для распространения и обновления исходных текстов с
основного репозитория CVS на удаленном сервере. Исходные тексты
FreeBSD поддерживаются в репозитории CVS на центральной машине
разработки в Калифорнии. С помощью CVSup
пользователи FreeBSD легко могут поддерживать собственные исходные
тексты в актуальном состоянии.CVSup использует так называемую
опрашивающую (pull) модель обновления.
Работая по этой модели, каждый клиент запрашивает обновления с
сервера, если и когда они нужны. Сервер пассивно ожидает запросы
на обновление от своих клиентов. Таким образом, все обновления
инициируются клиентами. Сервер никогда не высылает не запрошенные
обновления. Пользователь для получения обновлений должен либо запустить
CVSup клиента вручную, либо добавить
задание в cron для настройки периодических
обновлений в автоматическом режиме.Термин CVSup, написанный с заглавными
буквами, означает весь пакет программного обеспечения. Его основные
компоненты это клиент cvsup, запускаемый на
каждом пользовательском компьютере, и сервер
cvsupd, работающий на каждом зеркале
FreeBSD.При чтении документации FreeBSD и списков рассылки вы могли
встретить указания на sup.
Sup был предшественником
CVSup, и выполнял похожие функции.
CVSup в основном используется тем же
способом, что и sup, и, фактически, использует файлы настройки,
обратно совместимые с файлами sup.
Sup более не используется проектом
FreeBSD, поскольку CVSup и быстрее и
более гибок.УстановкаПростейший способ установки CVSup
это использование прекомпилированного пакета net/cvsup из коллекции
пакетов FreeBSD. Если вы предпочтете собрать
CVSup из исходных текстов, можете
использовать вместо этого порт net/cvsup. Но имейте ввиду:
порт net/cvsup зависит от системы
Modula-3, которой потребуется существенный объем времени и
пространства на диске для загрузки и установки.Если вы собираетесь использовать
CVSup на компьютере, где нет
- установленного &xfree86;,
+ установленного &xfree86;
+ или &xorg;,
например на сервере, используйте порт, не включающий
CVSup GUI,
net/cvsup-without-gui.Настройка CVSupРабота CVSup контролируется
файлом настройки, называемым supfile.
В каталоге /usr/share/examples/cvsup/
находится несколько примеров supfile.Информация в supfile отвечает на
следующие вопросы CVSup:Какие файлы вы
хотите получить?Какие их версии
вам нужны?Откуда вы хотите
их получить?Где вы хотите
разместить их на своем компьютере?Где вы хотите
разместить файлы статуса?В следующих разделах мы составим типичный
supfile последовательным ответом на каждый из этих
вопросов. Сначала опишем общую структуру
supfile.supfile это текстовый файл. Комментарии,
начинающиеся с #, продолжаются до конца строки.
Пустые строки и строки, содержащие только комментарии,
игнорируются.Каждая из оставшихся строк описывает набор файлов, получаемых
пользователем. Строка начинается с имени коллекции,
логического объединения файлов, определяемых сервером. Имя коллекции
говорит серверу о том, какие файлы вам нужны. После имени коллекции
следуют одно или больше полей, разделенных пробелом. Эти поля
отвечают на вопросы, заданные выше. Есть два типа полей: флаги и
значения. Поле флага состоит из одного ключевого слова, например
delete или compress.
Поле значения также начинается с ключевого слова, но за ним без
пробела следует = и второе слово. Например,
release=cvs это поле значения.supfile обычно задает получение
более одной коллекции. Одним из способов построения
supfile является указание всех соответствующих
полей для каждой коллекции явно. Однако, это приводит к появлению
слишком длинных строк в supfile и это неудобно,
поскольку большинство полей одинаковы для всех коллекций
supfile. CVSup
предоставляет механизм задания значений по умолчанию для устранения
этих проблем. Строки, начинающиеся со специального имени
псевдо-коллекции *default, могут быть использованы
для установки флагов и значений, которые послужат значениями по
умолчанию для всех последующих коллекций supfile.
Значение по умолчанию может быть перезаписано для каждой
отдельной коллекции путем указания другого значения в ее собственных
параметрах. Значения по умолчанию также могут быть изменены
или расширены в любом месте supfile
дополнительными строками *default.Получив эту информацию, мы начнем строить
supfile для получения и обновления главного
дерева исходных текстов FreeBSD-CURRENT.Какие файлы вы хотите
получить?Файлы, доступные через CVSup,
организованы в именованные группы, называемые
коллекциями. Доступные коллекции описаны
в следующем разделе.
В этом примере мы получим все дерево исходных текстов системы
FreeBSD. Существует одиночная большая коллекция
src-all, которая позволит нам сделать это.
В качестве первого шага по созданию supfile,
добавим список коллекций, по одной на строку (в нашем случае,
только одну строку):src-allКакие их версии
вам нужны?С CVSup вы в принципе можете
получить любую версию исходных текстов, которая когда-либо
существовала. Это возможно, поскольку
cvsupd сервер работает непосредственно
с репозиторием CVS, который содержит все версии. Вы указываете
ту, которая вам нужна, с помощью полей tag=
и .Будьте очень осторожны при задании любых полей
tag=. Некоторые теги существуют только
в определенных коллекциях файлов. Если вы укажете
некорректный тег или ошибетесь в его написании,
CVSup удалит файлы, которые вы
возможно не хотели удалять. В частности, используйте
толькоtag=.
для коллекций ports-*.Поля tag= означают символьные имена
в репозитории. Существует два вида тегов, теги ревизий и теги
ветвей. Теги ревизий означают определенную ревизию. Они
не меняются со временем. Теги ветвей, с другой стороны,
означают последнюю ревизию заданной линии разработки в любой
момент времени. Поскольку тег ветви не относится к определенной
ревизии, он может означать завтра что-то иное чем сегодня. содержит теги ветвей, которые
могут быть интересны пользователям. Тег, указанный в
файле настройки CVSup, должен
предваряться строкой tag=
(RELENG_4 превратится в
tag=RELENG_4). Помните, что для коллекции
портов подходит только tag=..Будьте очень осторожны при наборе имен тегов.
CVSup не может отличить правильные
и неправильные теги. Если вы неправильно наберете тег,
CVSup поведет себя так, как если бы
вы указали тег, не содержащий файлов. В этом случае он удалит
существующие исходные тексты.При указании тега ветви вы получите последние версии файлов
этой ветви разработки. Если вы хотите получить какую-то из
предыдущих версий, сделайте это указав дату в поле значения
. Страница справочника &man.cvsup.1;
описывает как сделать это.В нашем примере мы хотим получить FreeBSD-CURRENT. Мы
добавим эту строку в начало
supfile:*default tag=.Существует важный специальный случай, когда не задаются
ни поле tag=, ни поле date=.
В этом случае вы получите последние версии RCS файлов
непосредственно из CVS репозитория сервера вместо получения
определенной версии. Разработчики обычно предпочитают этот
способ. Поддерживая копию репозитория в своей системе, они
получают возможность просмотра истории ревизий и проверки
последних версий файлов. Однако это достигается ценой
большего занимаемого дискового пространства.Откуда вы хотите
их получить?Мы используем поле host= для сообщения
cvsup откуда забирать обновления. Подойдет
любое из CVSup зеркал,
хотя вы должны попробовать выбрать ближайшее к вам зеркало.
В этом примере мы используем не существующий сервер,
- cvsup666.FreeBSD.org:
+ cvsup99.FreeBSD.org:
- *default host=cvsup666.FreeBSD.org
+ *default host=cvsup99.FreeBSD.orgВам потребуется подставить адрес одного из существующих хостов
перед запуском CVSup. При каждом
запуске cvsup, вы можете перезаписать
настройку хоста из командной строки, используя параметр .Где вы хотите
разместить их на своем компьютере?Поле prefix= указывает
cvsup где размещать получаемые файлы.
В этом примере, мы поместим файлы непосредственно в главное
дерево исходных текстов, /usr/src.
Каталог src уже подразумевается в
коллекциях, которые мы собираемся получить, поэтому
корректное указание таково:*default prefix=/usrГде вы хотите
разместить файлы статуса cvsup?Клиент CVSup поддерживает
определенные файлы статуса в так называемом
base каталоге. Эти файлы помогают
CVSup работать более эффективно
путем поддержки истории уже полученных обновлений. Мы будем
использовать стандартный каталог base,
- /usr/local/etc/cvsup:
+ /var/db:
- *default base=/usr/local/etc/cvsup
+ *default base=/var/dbЭтот каталог используется по умолчанию, если иное не указано
в supfile, поэтому на самом деле строка
выше не нужна.Если base каталог не существует, теперь подходящий момент
для его создания. Клиент cvsup не
запустится, если base каталог не существует.Различные настройки supfile:Существует еще одна строка, которая обычно должна
присутствовать в supfile:*default release=cvs delete use-rel-suffix compressrelease=cvs означает, что сервер должен
получать информацию из главного репозитория FreeBSD CVS.
Это обычно всегда так, но существуют несколько иных вариантов,
изложение которых выходит за пределы этой главы.delete дает
CVSup возможность удалять файлы.
Вы должны всегда указывать этот параметр, чтобы
CVSup мог поддерживать дерево
исходных текстов полностью актуальным.
CVSup удалит только те файлы, за
которые отвечает. Все другие файлы останутся
нетронутыми.use-rel-suffix это ... мистика. Если
вы действительно хотите узнать о нем, обратитесь к странице
справочника &man.cvsup.1;. Иначе просто укажите это поле и не
беспокойтесь о нем больше.compress включает использование
gzip сжатия при передаче данных. Если ваше сетевое подключение
работает со скоростью T1 или быстрее, вам возможно не
потребуется использование сжатия. Иначе оно обычно
помогает.Все это вместе:Вот полный supfile для нашего
примера:*default tag=.
-*default host=cvsup666.FreeBSD.org
+*default host=cvsup99.FreeBSD.org
*default prefix=/usr
-*default base=/usr/local/etc/cvsup
+*default base=/var/db
*default release=cvs delete use-rel-suffix compress
src-all
-
+ Файл refuseКак упомянуто выше, CVSup использует
метод опроса. В основном это означает, что
вы подключаетесь к CVSup серверу, и он
говорит Вот то, что вы можете загрузить с меня...,
и клиент отвечает OK, я возьму это, это и это.
С настройкой по умолчанию CVSup клиент
заберет каждый файл, связанный с коллекцией и тегом, выбранным
в файле настройки. Однако, это не всегда то, что вам нужно,
особенно если вы синхронизируете деревья doc,
ports, или www —
большинство людей не могут читать на пяти или четырех языках,
и следовательно им не требуются локализованные файлы. Если вы
обновляете коллекцию портов, это можно обойти путем индивидуального
указания каждой коллекции (например,
ports-astrology,
ports-biology и т.д. вместо
коллекции ports-all). Однако, поскольку для
деревьев doc и www нет
специфичных для языка коллекций, используйте одну из
замечательных возможностей CVSup:
файл refuse.Файл refuse говорит
CVSup, что он не должен забирать каждый
файл из коллекции; другими словами, он говорит клиенту
отказаться (refuse) от получения с сервера
определенных файлов. Файл refuse можно найти
(или, если у вас его еще нет, должен быть помещен) в
base/sup/.
base определен в файле
supfile; по умолчанию,
base это
- /usr/local/etc/cvsup, что означает, что по
+ /var/db, что означает, что по
умолчанию файл refuse это
- /usr/local/etc/cvsup/sup/refuse.
+ /var/db/sup/refuse.
Формат файла refuse очень прост; он содержит
имена файлов или каталогов, которые вы не хотите загружать.
Например, если вы не можете разговаривать ни на каком языке кроме
английского и русского, и вы не хотите использовать русскоязычные
приложения (или приложения на любом другом языке кроме английского),
поместите следующие строки в файл
refuse:ports/arabic
ports/chinese
ports/french
ports/german
ports/hebrew
ports/hungarian
ports/japanese
ports/korean
ports/polish
ports/portuguese
ports/russian
ports/ukrainian
ports/vietnamese
doc/da_*
doc/de_*
doc/el_*
doc/es_*
doc/fr_*
doc/it_*
doc/ja_*
doc/nl_*
doc/no_*
doc/pl_*
doc/pt_*
doc/sr_*
doc/zh_*и так далее для других языков (полный список находится на
странице FreeBSD
CVS репозитория).С этой очень полезной возможностью пользователи с
низкоскоростным подключением или с поминутной платой за подключение
смогут сохранить время, поскольку им более не потребуется загружать
файлы, которые они никогда не будут использовать. За более
подробной информацией о файлах refuse и
замечательных возможностях CVSup,
обратитесь к его справочной странице.Запуск CVSupТеперь вы готовы к тестированию обновления. Командная строка для
этого очень проста:&prompt.root; cvsup supfileгде supfile
это конечно имя supfile, который только что
был создан. При запуске под X11, cvsup
отобразит GUI интерфейс с несколькими полезными кнопками. Нажмите
кнопку go и смотрите за его работой.Поскольку в этом примере обновляется существующее дерево
/usr/src вам потребуется, запуск программы
из под root, чтобы у cvsup
были права, необходимые для обновления файлов. Если файл настройки
только что создан, и эта программа раньше никогда не использовалась,
это может действовать вам на нервы. Есть простой способ для
пробного запуска без затрагивания ваших драгоценных файлов.
Просто создайте где-нибудь пустой каталог и поместите его в качестве
дополнительного аргумента командной строки:&prompt.root; mkdir /var/tmp/dest
&prompt.root; cvsup supfile /var/tmp/destУказанный каталог будет использоваться в качестве места назначения
всех обновлений. CVSup
будет работать с файлами из /usr/src,
но не станет изменять или удалять их. Вместо этого все обновления
файлов будут помещены в /var/tmp/dest/usr/src.
При запуске таким способом CVSup оставит
также неприкосновенным каталог base. Новые версии этих файлов будут
записаны в указанный каталог. Если у вас есть права на чтение
каталога /usr/src, вам даже не потребуется
работать под root для выполнения пробного
обновления.Если вы не работаете с X11 или просто не любите GUI, добавьте
набор параметров командной строки при запуске
cvsup:&prompt.root; cvsup -g -L 2 supfileПараметр указывает
CVSup не использовать GUI. Он действует
автоматически, если вы не работаете под X11, но иначе вам потребуется
его указать.Параметр указывает
CVSup выводить информацию о каждом
производимом обновлении. Есть три уровня протоколирования,
от до . Уровень
по умолчанию 0, что означает полное отсутствие сообщений,
за исключением сообщений об ошибках.Доступно множество других параметров. Для получения их краткого
списка, наберите cvsup -H. За более подробным
описанием обратитесь к странице справочника.После проверки работоспособности обновлений вы можете организовать
регулярные запуски CVSup с помощью
&man.cron.8;. Очевидно, вы не должны позволять
CVSup использовать GUI при запуске из
&man.cron.8;.Коллекции файлов CVSupКоллекции файлов, доступные через
CVSup, организованы иерархически.
Существует несколько больших коллекций, и они разделены на несколько
меньших под-коллекций. Получение большой коллекции эквивалентно
получению каждой из ее подколлекции. Иерархические отношения
между коллекциями отражаются путем использования отступов в списке
ниже.Наиболее используемые коллекции это
src-all, и
ports-all. Другие коллекции используются
небольшими группами людей для специальных целей и
некоторые сайты зеркал могут не содержать их все.cvs-all release=cvsГлавный FreeBSD CVS репозиторий, включающий
криптографический код.distrib release=cvsФайлы, относящиеся к распространению и зеркалированию
FreeBSD.doc-all release=cvsИсходные тексты Руководства FreeBSD и другой
документации. Они не включают файлы веб-сайта
FreeBSD.ports-all release=cvsКоллекция портов FreeBSD.Если вы не хотите обновлять всю коллекцию
ports-all (все дерево портов),
а только одну из подколлекций, перечисленных ниже,
убедитесь, что вы каждый раз
обновляете подколлекцию ports-base!
При любых изменениях в инфраструктуре сборки портов
подколлекции ports-base, они могут
быть использованы настоящими портами
довольно скоро. Таким образом, если вы обновляете
только настоящие порты и они используют
некоторые новые возможности, есть большой шанс того,
что их сборка прервется с непонятным сообщением об
ошибке. Самое первое, что вы
должны сделать, это убедиться, что подколлекция
ports-base обновлена.ports-archivers
release=cvsАрхиваторы.ports-astro
release=cvsПорты для астрономии.ports-audio
release=cvsПоддержка звука.ports-base
release=cvsИнфраструктура сборки портов -
различные файлы, расположенные в подкаталогах
Mk/ и
Tools/ каталога
/usr/ports.Пожалуйста, прочтите важное
предупреждение выше: вы должны
всегда обновлять эту
подколлекцию, при каждом обновлении любой
части коллекции портов FreeBSD!ports-benchmarks
release=cvsИзмерение производительности.ports-biology
release=cvsПрограммы для биологии.ports-cad
release=cvsИнструменты САПР.ports-chinese
release=cvsПоддержка китайского языка.ports-comms
release=cvsКоммуникационные программы.ports-converters
release=cvsПреобразование кодировок.ports-databases
release=cvsБазы данных.ports-deskutils
release=cvsВещи, использовавшиеся на рабочем столе
до изобретения компьютеров.ports-devel
release=cvsУтилиты разработки.ports-dns
release=cvsПрограммы, имеющие отношение к DNS.ports-editors
release=cvsРедакторы.ports-emulators
release=cvsЭмуляторы других операционных систем.ports-finance
release=cvsФинансовые, расчетные и связанные с ними
приложения.ports-ftp
release=cvsКлиентские и серверные утилиты FTP.ports-games
release=cvsИгры.ports-german
release=cvsПоддержка немецкого языка.ports-graphics
release=cvsГрафические утилиты.ports-hungarian
release=cvsПоддержка венгерского языка.ports-irc
release=cvsIRC утилиты.ports-japanese
release=cvsПоддержка японского языка.ports-java
release=cvs&java; утилиты.ports-korean
release=cvsПоддержка корейского языка.ports-lang
release=cvsЯзыки программирования.ports-mail
release=cvsПочтовое программное обеспечение.ports-math
release=cvsМатематические программы.ports-mbone
release=cvsПриложения MBone.ports-misc
release=cvsРазличные утилиты.ports-multimedia
release=cvsМультимедийное программное обеспечение.ports-net
release=cvsСетевое программное обеспечение.ports-news
release=cvsПрограммное обеспечение новостей USENET.ports-palm
release=cvsПрограммная поддержка для
Palm.ports-polish
release=cvsПоддержка польского языка.ports-portuguese
release=cvsПоддержка португальского языка.ports-print
release=cvsПрограммы печати.ports-russian
release=cvsПоддержка русского языка.ports-security
release=cvsУтилиты безопасности.ports-shells
release=cvsОболочки командной строки.ports-sysutils
release=cvsСистемные утилиты.ports-textproc
release=cvsУтилиты обработки текста (не включают
настольные утилиты публикации).ports-vietnamese
release=cvsПоддержка вьетнамского языка.ports-www
release=cvsПрограммы, относящиеся к World Wide
Web.ports-x11
release=cvsПорты с поддержкой X window
system.ports-x11-clocks
release=cvsЧасы X11.ports-x11-fm
release=cvsФайловые менеджеры X11.ports-x11-fonts
release=cvsШрифты и шрифтовые утилиты X11.ports-x11-toolkits
release=cvsПакеты разработки приложений для X11.ports-x11-serversСерверы X11.ports-x11-wmОконные менеджеры X11.src-all release=cvsОсновные исходные тексты FreeBSD, включая
криптографический код.src-base
release=cvsРазличные файлы непосредственно из
/usr/src.src-bin
release=cvsУтилиты, которые могут
потребоваться в однопользовательском режиме
(/usr/src/bin).src-contrib
release=cvsУтилиты и библиотеки, заимствованные проектом
FreeBSD, используются почти без модификаций
(/usr/src/contrib).src-crypto release=cvsКриптографические утилиты и библиотеки,
заимствованные проектом FreeBSD, используются
почти без модификаций
(/usr/src/crypto).src-eBones release=cvsKerberos и DES
(/usr/src/eBones). Не
используются в текущих релизах FreeBSD.src-etc
release=cvsФайлы настройки системы
(/usr/src/etc).src-games
release=cvsИгры
(/usr/src/games).src-gnu
release=cvsУтилиты, попадающие под GNU Public
License (/usr/src/gnu).src-include
release=cvsФайлы заголовков
(/usr/src/include).src-kerberos5
release=cvsПакет безопасности Kerberos5
(/usr/src/kerberos5).src-kerberosIV
release=cvsПакет безопасности KerberosIV
(/usr/src/kerberosIV).src-lib
release=cvsБиблиотеки
(/usr/src/lib).src-libexec
release=cvsСистемные программы, обычно выполняемые
другими программами
(/usr/src/libexec).src-release
release=cvsФайлы, необходимые для производства релизов
FreeBSD
(/usr/src/release).src-sbin release=cvsСистемные утилиты для однопользовательского
режима
(/usr/src/sbin).src-secure
release=cvsКриптографические библиотеки и команды
(/usr/src/secure).src-share
release=cvsФайлы, которые могут быть использованы
несколькими системами
(/usr/src/share).src-sys
release=cvsЯдро
(/usr/src/sys).src-sys-crypto
release=cvsКриптографический код ядра
(/usr/src/sys/crypto).src-tools
release=cvsРазличные инструменты для поддержки FreeBSD
(/usr/src/tools).src-usrbin
release=cvsПользовательские утилиты
(/usr/src/usr.bin).src-usrsbin
release=cvsСистемные утилиты
(/usr/src/usr.sbin).www release=cvsИсходные тексты www сайта FreeBSD.distrib release=selfСобственные файлы настройки сервера
CVSup. Используются зеркалами
CVSup.gnats release=currentБаза данных отслеживания ошибок GNATS.mail-archive release=currentАрхив списков рассылки FreeBSD.www release=currentФайлы предобработки WWW сайта FreeBSD (не исходные
файлы). Используются зеркалами WWW.Дальнейшая информацияCVSup FAQ и другая информация о
CVSup находится на
Домашней
странице CVSup.Большая часть связанных с FreeBSD обсуждений
CVSup проводилась в списке рассылки
&a.hackers.name;. Новые
версии программного обеспечения анонсируются здесь и в
списке рассылки &a.announce.name;.Вопросы и сообщения об ошибках адресуйте автору программы
cvsup-bugs@polstra.com.Зеркала CVSupCVSup серверы для FreeBSD работают на
следующих сайтах:
&chap.mirrors.cvsup.inc;
Теги CVSПри получении или обновлении исходных текстов с использованием
cvs или
CVSup должен быть указан тег ревизии
Тег относится либо к определенной линии разработки &os;
либо к определенному моменту времени. Первый тип называется
тегом ветви, второй тип называется тегом
релиза.Теги ветвейВсе они, за исключением HEAD (который всегда
работает), относятся только к дереву src/.
Деревья ports/, doc/ и
www/ не имеют тегов ветвей.HEADСимволическое имя для основной ветви разработки,
FreeBSD-CURRENT. Используется по умолчанию, если тег не
указан.В CVSup, этот тег представлен
символом . (не знак пунктуации, а
символ .).В CVS тег по умолчанию используется, если тег не указан
вообще. Обычно не очень хорошей идеей является обновление
до CURRENT на машине со STABLE, только если вы не стремитесь
именно к этому.
+
+ RELENG_5
+
+
+ Ветвь разработки FreeBSD-5.X, которая станет
+ FreeBSD-STABLE после выпуска FreeBSD-5.3.
+
+
+
RELENG_5_2Ветвь релиза для FreeBSD-5.2 и FreeBSD-5.2.1, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_5_1Ветвь релиза для FreeBSD-5.1, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_5_0Ветвь релиза для FreeBSD-5.0, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_4Ветвь разработки FreeBSD-4.X, известная также как
FreeBSD-STABLE.RELENG_4_10Ветвь релиза для FreeBSD-4.10, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_4_9Ветвь релиза для FreeBSD-4.9, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_4_8Ветвь релиза для FreeBSD-4.8, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_4_7Ветвь релиза для FreeBSD-4.7, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_4_6Ветвь релиза для FreeBSD-4.6 и FreeBSD-4.6.2, используемая
только для исправлений безопасности и других критических
исправлений.RELENG_4_5Ветвь релиза для FreeBSD-4.5, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_4_4Ветвь релиза для FreeBSD-4.4, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_4_3Ветвь релиза для FreeBSD-4.3, используемая только
для исправлений безопасности и других критических
исправлений.RELENG_3Ветвь разработки для FreeBSD-3.X, известная также как
3.X-STABLE.RELENG_2_2Ветвь разработки для FreeBSD-2.2.X, известная также как
2.2-STABLE. Эта ветвь по большей части устарела.Теги релизовЭти теги относятся к определенным моментам времени, когда
были выпущены конкретные версии &os;. Процесс выпуска релизов
более детально документирован в информации о выпусках релизов
и статье о
процессе подготовки релизов. Дерево
src использует имена тегов,
начинающиеся с RELENG_. Деревья
ports и
doc используют теги, имена
которых начинаются с RELEASE.
Наконец, в дереве www
нет специальных имен для релизов.RELENG_4_10_0_RELEASEFreeBSD 4.10RELENG_5_2_1_RELEASEFreeBSD 5.2.1RELENG_5_2_0_RELEASEFreeBSD 5.2RELENG_4_9_0_RELEASEFreeBSD 4.9RELENG_5_1_0_RELEASEFreeBSD 5.1RELENG_4_8_0_RELEASEFreeBSD 4.8RELENG_5_0_0_RELEASEFreeBSD 5.0RELENG_4_7_0_RELEASEFreeBSD 4.7RELENG_4_6_2_RELEASEFreeBSD 4.6.2RELENG_4_6_1_RELEASEFreeBSD 4.6.1RELENG_4_6_0_RELEASEFreeBSD 4.6RELENG_4_5_0_RELEASEFreeBSD 4.5RELENG_4_4_0_RELEASEFreeBSD 4.4RELENG_4_3_0_RELEASEFreeBSD 4.3RELENG_4_2_0_RELEASEFreeBSD 4.2RELENG_4_1_1_RELEASEFreeBSD 4.1.1RELENG_4_1_0_RELEASEFreeBSD 4.1RELENG_4_0_0_RELEASEFreeBSD 4.0RELENG_3_5_0_RELEASEFreeBSD-3.5RELENG_3_4_0_RELEASEFreeBSD-3.4RELENG_3_3_0_RELEASEFreeBSD-3.3RELENG_3_2_0_RELEASEFreeBSD-3.2RELENG_3_1_0_RELEASEFreeBSD-3.1RELENG_3_0_0_RELEASEFreeBSD-3.0RELENG_2_2_8_RELEASEFreeBSD-2.2.8RELENG_2_2_7_RELEASEFreeBSD-2.2.7RELENG_2_2_6_RELEASEFreeBSD-2.2.6RELENG_2_2_5_RELEASEFreeBSD-2.2.5RELENG_2_2_2_RELEASEFreeBSD-2.2.2RELENG_2_2_1_RELEASEFreeBSD-2.2.1RELENG_2_2_0_RELEASEFreeBSD-2.2.0AFS сайтыAFS серверы для FreeBSD работают на следующих сайтах:ШвецияЧасть файлов:
/afs/stacken.kth.se/ftp/pub/FreeBSD/stacken.kth.se # Stacken Computer Club, KTH, Sweden
130.237.234.43 #hot.stacken.kth.se
130.237.237.230 #fishburger.stacken.kth.se
130.237.234.3 #milko.stacken.kth.seОтветственный ftp@stacken.kth.sersync сайтыСледующие сайты организуют доступ к FreeBSD через протокол rsync
Утилита rsync работает в основном тем же
путем, что и команда &man.rcp.1;, но поддерживает больше параметров
и использует протокол удаленного обновления rsync, который передает
только разницу между двумя наборами файлов, что значительно повышает
скорость синхронизации по сети. Это особенно полезно, если вы
поддерживаете зеркало сервера FreeBSD FTP, или репозитория CVS.
Пакет rsync доступен для многих
операционных систем, в FreeBSD используйте порт net/rsync или пакет.Чешская республикаrsync://ftp.cz.FreeBSD.org/Доступные коллекции:ftp: Частичное зеркало FreeBSD FTP
сервера.FreeBSD: Полное зеркало FreeBSD FTP
сервера.Германияrsync://grappa.unix-ag.uni-kl.de/Доступные соединения:freebsd-cvs: Полный FreeBSD CVS
репозиторий.Этот компьютер помимо прочих также зеркалирует CVS репозитории
проектов NetBSD и OpenBSD.Нидерландыrsync://ftp.nl.FreeBSD.org/Доступные коллекции:vol/3/freebsd-core: Полное зеркало
FreeBSD FTP сервера.Великобританияrsync://rsync.mirror.ac.uk/Доступные коллекции:ftp.FreeBSD.org: Полное зеркало
FreeBSD FTP сервера.Соединенные Штаты Америкиrsync://ftp-master.FreeBSD.org/Этот сервер может использоваться только основными зеркалами
FreeBSD.Доступные коллекции:FreeBSD: Основной архив FreeBSD
FTP сервера.acl: Основной ACL список
FreeBSD.rsync://ftp13.FreeBSD.org/Доступные коллекции:FreeBSD: Полное зеркало FreeBSD FTP
сервера.
diff --git a/ru_RU.KOI8-R/books/handbook/ports/chapter.sgml b/ru_RU.KOI8-R/books/handbook/ports/chapter.sgml
index 95b637dd3e..3bef80654a 100644
--- a/ru_RU.KOI8-R/books/handbook/ports/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/ports/chapter.sgml
@@ -1,1342 +1,1336 @@
АндрейЗахватовПеревод на русский язык: Установка приложений: порты и пакетыОбзорпортыпакетыВместе с FreeBSD в составе базового комплекта системы поставляется
богатый набор системный утилит. Однако для выполнения какой-то
реальной работы очень скоро возникает необходимость в установке
дополнительных приложений сторонних разработчиков. FreeBSD даёт две
взаимодополняющих технологии для установки программного обеспечения
сторонних разработчиков в вашу систему: Коллекция Портов FreeBSD и
бинарные пакеты с программным обеспечением. Любая из этих систем может
быть использована для установки самых последних версий ваших любимых
приложений с локальных носителей или прямо из сети.После чтения этой главы вы будете знать:Как устанавливать бинарные пакеты с программным обеспечением
сторонних разработчиков.Как строить программное обеспечение сторонних разработчиков при
помощи коллекции портов.Как удалять ранее установленные пакеты или порты.Как переопределить значения, используемые по умолчанию в
коллекции портов.Как обновить ваши порты.Обзор установки программного обеспеченияЕсли вы использовали &unix;-системы ранее, то знаете, что
стандартная процедура установки программного обеспечения сторонних
разработчиков выглядит примерно так:Загрузка программного обеспечения, которое может распространяться
в форме исходных текстов или двоичных файлов.Распаковка программного обеспечения из дистрибутивного формата
(обычно tar-архива, сжатого при помощи &man.compress.1;,
&man.gzip.1; или &man.bzip2.1;).Поиск документации (возможно, подойдут файлы
INSTALL, README
или несколько файлов из подкаталога doc/) и её
чтение в поиске описания установки программного обеспечения.Если программное обеспечение распространялось в форме исходных
текстов, его компиляция. Сюда может быть включено редактирования
файла Makefile, запуск скрипта
configure и другие работы.Тестирование и установка программного обеспечения.И это только всё проходит нормально. Если вы устанавливаете
программный пакет, который был специально перенесён на FreeBSD, то вам
может даже потребоваться редактировать код для того, чтобы он нормально
заработал.Если вы хотите, то можете продолжать устанавливать программное
обеспечение во FreeBSD традиционным способом. Однако
FreeBSD предоставляет две технологии, которые могут сохранить вам много
усилий: пакеты и порты. На момент написания таким образом были
доступны более &os.numports; сторонних приложений.Для любого конкретно взятого приложения пакет FreeBSD для такого
приложения является одним файлом, который вы должны загрузить. Пакет
содержит уже откомпилированные копии всех команд приложения, а также
все конфигурационные файлы и документацию. Сгруженным файлом пакета
можно управлять командами управления пакетами FreeBSD, такими, как
&man.pkg.add.1; &man.pkg.delete.1;, &man.pkg.info.1; и так далее.
Установка нового приложения может выполняться единственной
командой.Порт FreeBSD для приложения является набором файлов, предназначенных
для автоматизации процесса компиляции приложения из исходного
кода.Вспомните, что обычно вы должны выполнить некоторое количество
шагов, если компилируете программу самостоятельно (загрузка, распаковка,
изменение кода, компиляция, установка). Файлы, составляющие порт,
содержат всю информацию, необходимую для того, чтобы система сделала это
за вас. Вы задаёте пару простых команд, и исходный код приложения
автоматически сгружается, распаковывается, модифицируется, компилируется
и устанавливается.Действительно, система портов может также использоваться для
генерации пакетов, которые позже могут управляться командой
pkg_add и другими командами управления пакетами, о
которых скоро будет рассказано.Как пакеты, так и порты принимают во внимание
зависимости. Предположим, что вы хотите установить
приложение, которое зависит от некоторой установленной библиотеки. И
приложение, и библиотека доступны во FreeBSD в виде портов и пакетов.
Если вы используете команду pkg_add или систему
портов для добавления приложений, то в обоих случаях будет обнаружено,
что библиотека не была установлена, и сначала будет автоматически
выполнена установка библиотеки.Видя, что обе технологии весьма похожи, вы можете удивиться, почему
во FreeBSD используются обе. И пакеты, и порты имеют свои
преимущества, так что выбор используемой вами системы зависит от ваших
собственных предпочтений.Преимущества пакетовСжатый tar-архив обычно меньше, чем сжатый tar-архив, содержащий
исходный код приложения.Пакеты не требуют никакой дополнительной компиляции. Для таких
больших приложений, как Mozilla,
KDE или GNOME,
это может быть важно, в частности, если вы работаете на медленной
системе.Пакеты не требуют понимания процесса компиляции
программного обеспечения во FreeBSD.Преимущества портовПакеты обычно компилируются с консервативными параметрами,
потому что они должны работать на максимальном количестве систем.
При установке из порта вы можете изменять параметры компиляции для
того, чтобы (к примеру) генерировался код, специфичный для
процессора Pentium IV или Athlon.Некоторые приложения имеют опции времени компиляции, связанные с
тем, что они могут или не могут делать. К примеру,
Apache может быть настроен с широким
набором различных опций. При построении из порта вы можете не
принимать параметры по умолчанию, и задать их самостоятельно.В некоторых случаях для одного и того же приложения будут
иметься несколько пакетов для указания конкретных настроек.
Например, Ghostscript имеется как пакет
ghostscript и как пакет
ghostscript-nox11, в зависимости от того,
установили вы сервер X11 или нет. Такой тип грубой настройки
возможен при использовании пакетов, но быстро становится
недостижим, если приложение имеет более одного или двух параметров
времени компиляции.Условия лицензирования некоторых дистрибутивов программного
обеспечения запрещает распространение в двоичном виде. Они должны
распространяться в виде исходного кода.Некоторые не доверяют дистрибутивам в двоичном виде. При
использовании исходного кода вы по крайней мере (теоретически)
можете прочесть его и попытаться найти потенциальные проблемы
самостоятельно.Если у вас есть собственные патчи, вам нужен исходный код для
того, чтобы их применять.Некоторым нравится иметь исходный код, чтобы его можно было
смотреть и хакать, заимствовать из него (конечно, при разрешающей
лицензионном соглашении) и тому подобное.Чтобы отслеживать обновления портов, подпишитесь на
&a.ports; и &a.ports-bugs;.Перед установкой любого приложения необходимо зайти на , где находится информация
по вопросам безопасности приложений.Вы можете также установить security/portaudit, который автоматически
проверит все установленные приложения на наличие известных
уязвимостей, проверка также будет выполняться перед сборкой
какого-либо порта. Вы можете использовать portaudit
-F -a и после установки пакетов.В оставшейся части главы будет рассказано, как использовать пакеты
и порты для установки и управления программным обеспечением сторонних
разработчиков во FreeBSD.Поиск нужного вам приложенияПеред тем, как устанавливать какое-либо приложение, вам нужно знать,
что вы хотите и как называется нужное вам приложение.Список имеющихся для FreeBSD приложений постоянно растёт. К счастью,
есть несколько способов найти то, что вам нужно:На сайте FreeBSD поддерживается обновляемый список имеющихся
приложений для FreeBSD, в котором можно выполнять поиск, по адресу
http://www.FreeBSD.org/ports/. Порты разбиты на категории,
и вы можете либо выполнить поиск приложения по имени (если его
знаете), либо просмотреть список всех приложений, относящихся к
определённой категории.FreshPortsDan Langille поддерживает сайт FreshPorts по адресу .
На нём отслеживаются изменения в приложениях из дерева портов, как
только они происходят, он позволяет вам отслеживать
один или несколько портов, и может высылать оповещение по электронной
почте при их обновлении.FreshMeatЕсли вы не знаете названия нужного вам приложения, попытайтесь
воспользоваться сайтом типа FreshMeat ()
для поиска приложения, а затем возвратитесь на сайт FreeBSD, чтобы
проверить, есть ли порт для этого приложения.
+
+
+ Если вы знаете точное имя порта, и хотите определить, в какой
+ категории он находится, используйте команду &man.whereis.1;.
+ Просто наберите в приглашении whereis
+ file,
+ где file - программа,
+ которую вы хотите установить. И если она имеется в системе,
+ об этом будет сообщено, как показано ниже:
+
+ &prompt.root; whereis lsof
+lsof: /usr/ports/sysutils/lsof
+
+ Это говорит о том, что lsof (системная
+ утилита) находится в каталоге
+ /usr/ports/sysutils/lsof.
+
+
+
+ Ещё одним способом поиска некоторого порта является
+ использование встроенной возможности поиска в коллекции портов.
+ Чтобы ею воспользоваться, вы должны находиться в каталоге
+ /usr/ports. Очутившись в этом каталоге,
+ выполните команду make search
+ name=program-name, где
+ program-name – это
+ название программы, которую вы хотите найти. Например, если
+ вы ищете lsof:
+
+ &prompt.root; cd /usr/ports
+&prompt.root; make search name=lsof
+Port: lsof-4.56.4
+Path: /usr/ports/sysutils/lsof
+Info: Lists information about open files (similar to fstat(1))
+Maint: obrien@FreeBSD.org
+Index: sysutils
+B-deps:
+R-deps:
+
+ Вам следует обратить особое внимание на строчку
+ Path:, так как в ней указывается, где найти порт.
+ Остальная сообщаемая информация для установки порта не
+ нужна, поэтому здесь она описываться не будет.
+
+ Для выполнения более глубокого поиска вы можете также использовать
+ make search key=string,
+ где string
+ представляет собой некоторый текст, который ищется. При этом будет
+ выполнен поиск в именах портов, комментариях, описаниях и
+ зависимостях, и его можно использовать для поиска портов, связанных с
+ некоторой темой, если вы не знаете названия программы, которую вы
+ ищете.
+
+ В обоих этих случаях строка поиска нечувствительна к регистру.
+ Поиск LSOF приводит к тому же самому результату, что и
+ поиск lsof.
+ ChernLeeТекст предоставил Использование системы пакетовУстановка пакетапакетыустановкаpkg_addДля установки пакетов программного обеспечения для FreeBSD из
локальных файлов или с сервера в сети вы можете использовать утилиту
&man.pkg.add.1;.Загрузка пакета вручную и его локальная установка&prompt.root; ftp -a ftp2.FreeBSD.org
Connected to ftp2.FreeBSD.org.
220 ftp2.FreeBSD.org FTP server (Version 6.00LS) ready.
331 Guest login ok, send your email address as password.
230-
230- This machine is in Vienna, VA, USA, hosted by Verio.
230- Questions? E-mail freebsd@vienna.verio.net.
230-
230-
230 Guest login ok, access restrictions apply.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp>cd /pub/FreeBSD/ports/packages/sysutils/
250 CWD command successful.
ftp>get lsof-4.56.4.tgz
local: lsof-4.56.4.tgz remote: lsof-4.56.4.tgz
200 PORT command successful.
150 Opening BINARY mode data connection for 'lsof-4.56.4.tgz' (92375 bytes).
100% |**************************************************| 92375 00:00 ETA
226 Transfer complete.
92375 bytes received in 5.60 seconds (16.11 KB/s)
ftp>exit
&prompt.root; pkg_add lsof-4.56.4.tgzЕсли у вас нет исходных текстов локальных пакетов (например,
набор CD-ROM с FreeBSD), то проще всего, наверное, воспользоваться
опцией для &man.pkg.add.1;. Это приведёт к тому,
что утилита автоматически определит правильный формат объектных файлов
и релиз, а затем загрузит и установит пакет с сервера FTP.pkg_add&prompt.root; pkg_add -r lsofВ примере выше нужный пакет будет сгружен и установлен без всякого
дополнительного взаимодействия с пользователем.
Если вместо основного сайта вы хотите указать другое зеркало пакетов
&os;, то для переопределения используемых по умолчанию значений вам
необходимо задать соответствующим образом значение переменной
PACKAGESITE.
Для загрузки файлов утилита &man.pkg.add.1; использует функцию
&man.fetch.3;, которая принимает во внимание различные переменные
окружения, включая FTP_PASSIVE_MODE,
FTP_PROXY и FTP_PASSWORD. Если вы
находитесь за сетевым экраном или для работы с работы с FTP/HTTP вам
необходимо использовать прокси, то определите соответствующие
переменные. Обратитесь к справочной странице по &man.fetch.3; для
получения полного списка переменных.
Заметьте, что в примере выше вместо
lsof-4.56.4 используется lsof.
При использовании функций загрузки с сети номер версии в имени пакета
должен быть опущен. Утилита &man.pkg.add.1; автоматически загрузит
последнюю версию приложения.Файлы пакетов распространяются в форматах
.tgz и .tbz. Вы можете найти
их по адресу или
взять с дистрибутива FreeBSD на CD-ROM. Каждый CD из комплекта
FreeBSD на 4 дисках (а также PowerPak и тому подобное) содержит
пакеты в каталоге /packages. Расположение
пакетов похоже на то, как организовано дерево
/usr/ports. Каждая категория имеет собственный
каталог, и каждый пакет помещается в каталог
All.Структура каталогов системы пакетов соответствует структуре
системы портов; они взаимодействуют друг с другом для формирования
единой системы пакетов/портов.Управление пакетамипакетыуправление&man.pkg.info.1; является утилитой для вывода списка и описаний
различных установленных пакетов.pkg_info&prompt.root; pkg_info
cvsup-16.1 A general network file distribution system optimized for CV
docbook-1.2 Meta-port for the different versions of the DocBook DTD
...&man.pkg.version.1; является утилитой для вывода отчёта о версиях
всех установленных пакетов. Она сравнивает версию имеющегося пакета
с текущей версией, находящейся в дереве портов.pkg_version&prompt.root; pkg_version
cvsup =
docbook =
...Символы во второй колонке указывают сравнительную разницу в
возрасте установленной версии и версии, находящейся в локальном дереве
портов.СимволЗначение=Версия установленного пакета соответствует версии,
находящейся в локальном дереве портов.<Установленная версия старее, чем та, что имеется в
дереве портов.>Установленная версия новее чем та, что есть в дереве
портов. (Скорее всего, локальное дерево портов
устарело.)?В индексном файле портов установленный пакет не может быть
найден. (Это может случиться, например, если установленный
порт был удалён из коллекции портов или переименован.)*Имеется несколько версий пакета.Удаление пакетаpkg_deleteпакетыудалениеДля удаления ранее установленных пакетов с программным
обеспечением используйте утилиту &man.pkg.delete.1;.&prompt.root; pkg_delete xchat-1.7.1РазноеВся информация о пакете хранится в каталоге
/var/db/pkg. Список установленных файлов и
описания всех пакетов могут быть найдены среди файлов этого
каталога.Использование Коллекции ПортовВ этих разделах описаны основные приемы использования коллекции
портов для установки и удаления программ из вашей системы.Получение Коллекции ПортовПеред тем, как вы сможете устанавливать порты, вы сначала должны
установить коллекцию портов—она представляет собой в основном
набор файлов Makefile, патчей, файлов описаний, и
она размещается в каталоге /usr/ports.При установке вашей системы FreeBSD утилита
sysinstall запрашивает, требуется ли вам
установка коллекции портов. Если вы ответили отрицательно, то можете
следовать следующим указаниям для установки коллекции портов:Метод с использованием SysinstallВ этом методе повторно используется
sysinstall для ручной установки коллекции
портов.Работая как пользователь root, запустите
/stand/sysinstall так, как это показано
ниже:&prompt.root; /stand/sysinstallОпуститесь вниз и выберите
Configure, нажмите
EnterОпуститесь вниз и выберите
Distributions,
затем нажмите EnterОпуститесь вниз к пункту ports,
нажмите клавишу ПробелПоднимитесь вверх к Exit, нажмите
EnterВыберите желаемый носитель для установки, например, CDROM,
FTP и так далее.Перейдите на пункт меню Exit и
нажмите Enter.Нажмите X для выхода из
sysinstall.Альтернативный метод получения и постоянной актуализации
вашей коллекции портов заключается в использовании
CVSup. Посмотрите на файл
CVSup из портов,
/usr/share/examples/cvsup/ports-supfile.
Прочтите раздел Использование CVSup
() для получения более полной информации об
использовании CVSup и этого файла.Метод с использованием CVSupЭто быстрый способ для получения коллекции портов при помощи
CVSup. Если вы хотите поддерживать ваше
дерево портов в актуальном состоянии, или узнать больше о
CVSup, то прочтите вышеотмеченные
разделы.Установите порт net/cvsup. Обратитесь к разделу
Установка CVSup () для получения более подробной
информации.Работая как пользователь root, скопируйте
/usr/share/examples/cvsup/ports-supfile в
новое место, например, в каталог /root или в
ваш домашний каталог.Отредактируйте ports-supfile.Измените CHANGE_THIS.FreeBSD.org на
близкий к вам сервер CVSup. Посмотрите
Зеркала CVSup () для получения полного списка
зеркалирующих сайтов.Запустите
cvsup&prompt.root; cvsup -g -L 2 /root/ports-supfileПри повторных запусках этой команды все последние изменения
(кроме реального перестроения портов для вашей системы) будут
сгружаться и переноситься в вашу коллекцию портов.Установка портовпортыустановкаКогда речь заходит о коллекции портов, то первым делом вы должны
понять, что именно подразумевается под словом скелет.
По сути скелетом порта является минимальный набор файлов, который
указывает вашей системе FreeBSD, как корректно откомпилировать и
установить программу. Скелет каждого порта включает:Makefile. Makefile
содержит различные директивы, которые определяют, как приложение
должно быть откомпилировано и куда в вашей системе оно должно быть
установлено.Файл distinfo. Этот файл содержит
информацию о файлах, которые должны существовать на вашей
системе для успешной сборки порта, и их контрольные суммы, для
проверки при помощи &man.md5.1; того, что файлы в процессе загрузки
не были повреждены.Каталог files. Этот каталог
содержит патчи, использование которых необходимо для компиляции и
установки программы в вашей системе FreeBSD. Патчи - это, как
правило, маленькие файлы, в которых содержатся изменения, которые
нужно внести в какой-то конкретный файл. Они имеют обычный
текстовый формат и в основном содержат указания типа Удалить
строку 10 или Заменить строку 26 на
такую .... Патчи также называются
diff-файлами или просто диффами,
потому что они генерируются программой &man.diff.1;.Этот каталог также может содержать другие файлы, используемые
для построения порта.pkg-descr. Это более подробное,
зачастую многострочное описание программы.pkg-plist. Это список всех файлов,
которые будут установлены портом. В нем также содержатся
указания системе портов на удаление определенных файлов во
время удаления порта.В некоторых портах присутствуют и другие файлы, такие, как
pkg-message. Система портов использует эти файлы
для обработки особых ситуаций. Если вы хотите узнать более подробно
об этих файлах и о портах вообще, то обратитесь к Руководству по созданию портов для
- FreeBSD.
-
- Теперь, когда вы имеете достаточное количество информации о том,
- для чего предназначена коллекция портов, вы в состоянии установить ваш
- первый порт. Это может быть сделано двумя способами, каждый из
- которых будет описан ниже.
-
- Однако, прежде чем мы этим займёмся, вам нужно выбрать порт для
- установки. Есть несколько способов сделать это, самый простой из
- которых заключается в использовании списка портов на сайте
- FreeBSD. Вы можете просто полистать весь список портов или
- воспользоваться возможностями поиска на сайте. Каждый порт также
- включает описание, так что вы можете прочесть некоторую информацию о
- каждом из портов, прежде чем решить его установить.
-
- Другой метод заключается в использовании команды &man.whereis.1;.
- Чтобы ей воспользоваться, просто наберите
- в приглашении whereis file
- , где file - программа,
- которую вы хотите установить. И если она имеется в вашей системе, вам
- об этом будет сообщено, как показано ниже:
-
- &prompt.root; whereis lsof
-lsof: /usr/ports/sysutils/lsof
-
- Это говорит о том, что lsof (системная утилита)
- находится в каталоге
- /usr/ports/sysutils/lsof.
-
- Ещё одним способом поиска некоторого порта является использование
- встроенной возможности поиска в коллекции портов. Чтобы ею
- воспользоваться, вы должны находиться в каталоге
- /usr/ports. Очутившись в этом каталоге, выполните
- команду make search name=program-name, где
- program-name - это название программы, которую вы хотите
- найти. Например, если вы ищете lsof:
-
- &prompt.root; cd /usr/ports
-&prompt.root; make search name=lsof
-Port: lsof-4.56.4
-Path: /usr/ports/sysutils/lsof
-Info: Lists information about open files (similar to fstat(1))
-Maint: obrien@FreeBSD.org
-Index: sysutils
-B-deps:
-R-deps:
-
- Вам следует обратить особое внимание на строчку
- Path:, так как в ней указывается, где найти порт.
- Остальная сообщаемая информация для установки порта не
- нужна, поэтому здесь она описываться не будет.
-
- Для выполнения более глубокого поиска вы можете также использовать
- make search key=string,
- где string
- представляет собой некоторый текст, который ищется. При этом будет
- выполнен поиск в именах портов, комментариях, описаниях и
- зависимостях, и его можно использовать для поиска портов, связанных с
- некоторой темой, если вы не знаете названия программы, которую вы
- ищете.
-
- В обоих этих случаях строка поиска нечувствительна к регистру.
- Поиск LSOF приводит к тому же самому результату, что и
- поиск lsof.
+ url="&url.books.porters-handbook;/index.html">Руководству по созданию
+ портов для FreeBSD.
-
- Для установки портов вы должны войти в систему как пользователь
- root.
-
-
- Теперь, когда вы нашли порт, который хотите установить, можно
- выполнять реальную установку. В порт включаются инструкции
+ В порт включаются инструкции
относительно того, как выполнять построение из исходного кода, но не
сам код. Вы можете получить исходный код с CD-ROM или из Интернет.
Исходный код распространяется в том виде, какой предпочёл выбрать
разработчик. Зачастую это tar-файл, обработанный утилитой gzip, но он
может также быть упакованным каким-то другим инструментом или быть
не сжатым. Исходный код программы, в каком бы то виде он ни был,
- называется дистрибутивным (distfile). Вы можете
- получить дистрибутивный файл с CD-ROM или через Интернет.
+ называется дистрибутивным (distfile). Два метода
+ установки портов &os; описаны ниже.
+
+
+ Для установки портов вы должны войти в систему как пользователь
+ root.
+ Перед установкой любого порта необходимо убедиться в
наличии свежей коллекции портов и заглянуть на , где могут
освещаться вопросы безопасности, связанные с этим портом.Проверка на наличие уязвимостей может быть автоматически
выполнена portaudit перед установкой
нового приложения. Эту программу можно найти в коллекции портов
(security/portaudit).
Запустите portaudit -F перед установкой
нового порта для загрузки свежей базы данных уязвимостей.
Проверка безопасности и обновление базы данных должны
выполняться при повседневной проверке безопасности системы.
За дальнейшей информацией обращайтесь к страницам справочника
&man.portaudit.1; и &man.periodic.8;.Установка портов с CD-ROMпортыустановка с CD-ROMОфициальные образы CD-ROM Проекта FreeBSD больше не содержат
дистрибутивные файлы. На них есть достаточно места, которое лучше
использовать для предкомпилированных пакетов. Продукты на CD-ROM,
такие, как FreeBSD PowerPak, включают дистрибутивные файлы, и вы
можете заказать их от таких поставщиков, как FreeBSD Mall. В этом
разделе предполагается, что у вас есть такой набор CD-ROM с
FreeBSD.Вставьте ваш CD-ROM с FreeBSD в привод. Смонтируйте его в
каталог /cdrom. (Если вы используете другую
точку монтирования, то установка работать не будет.) Чтобы начать,
перейдите в каталог с портом, который вы хотите установить:&prompt.root; cd /usr/ports/sysutils/lsofОказавшись в каталоге lsof, вы увидите
структуру порта. Следующим шагом является компиляция, или построение
(build) порта. Это выполняется простой выдачей
команды make в ответ на приглашение командного
процессора. Как только вы это сделаете, то увидите выдачу,
выглядящую примерно так:&prompt.root; make
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from file:/cdrom/ports/distfiles/.
===> Extracting for lsof-4.57
...
[выдача при распаковке опущена]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===> Patching for lsof-4.57
===> Applying FreeBSD patches for lsof-4.57
===> Configuring for lsof-4.57
...
[выдача при конфигурации опущена]
...
===> Building for lsof-4.57
...
[выдача при компиляции опущена]
...
&prompt.root;Заметьте, что, как только компиляция закончится, вы снова
вернётесь к приглашению вашего командного процессора. Следующим
шагом является установка порта. Чтобы это сделать, вам нужно просто
добавить одно слово к команде make, а именно слово
install:&prompt.root; make install
===> Installing for lsof-4.57
...
[выдача при установке опущена]
...
===> Generating temporary packing list
===> Compressing manual pages for lsof-4.57
===> Registering installation for lsof-4.57
===> SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
&prompt.root;Как только вы вернулись к приглашению вашей оболочки, вы должны
суметь запустить приложение, которое только что установили. Так как
lsof является программой, которая запускается с
повышенными правами, то выдаётся предупреждение о безопасности. Во
время построения и установки портов вы должны принимать во внимание
все выдаваемые предупреждения.Вы можете сэкономить лишний шаг, просто выдав команду
make install вместо make и
последующей make install в двух отдельных
шагах.Некоторые командные процессоры для ускорения поиска выполнимых
файлов и команд кэшируют имена таких программ, которые доступны для
вызова из каталогов, перечисленных в переменной окружения
PATH. Если вы используете один из таких командных
процессоров, то перед использованием только что добавленных команд
вам может понадобиться вызвать директиву rehash
после установки порта. Это верно как для оболочек, являющихся
частями базового системного набора (например,
tcsh), так и командных процессоров, доступных в
виде портов (например, shells/zsh).Пожалуйста, будьте готовы к тому, что лицензии некоторых
портов не позволяют помещать их на CD-ROM. Это может
делаться из-за обязательности заполнения регистрационной формы
перед загрузкой или запрета на дальнейшее распространение, либо по
какой-то другой причине. Если вы хотите установить порт, которого
нет на CD-ROM, вам нужно иметь подключение к Интернет, чтобы это
сделать (обратитесь к следующему разделу).Установка портов из ИнтернетКак и в предыдущем разделе, здесь предполагается, что у вас
имеется работающее подключение к Интернет. Если это не ваш случай,
вам нужно выполнять установку с
CD-ROM либо поместить копию дистрибутивного файла в каталог
/usr/ports/distfiles вручную.Установка порта из Интернет производится точно так же, как если
бы делали её с CD-ROM. Единственным отличием между ними
является тот факт, что дистрибутивный файл сгружается из Интернет, а
не считывается с CD-ROM.Выполняются те же самые шаги:&prompt.root; make install
>> lsof_4.57D.freebsd.tar.gz doesn't seem to exist in /usr/ports/distfiles/.
>> Attempting to fetch from ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.
Receiving lsof_4.57D.freebsd.tar.gz (439860 bytes): 100%
439860 bytes transferred in 18.0 seconds (23.90 kBps)
===> Extracting for lsof-4.57
...
[выдача при распаковке опущена]
...
>> Checksum OK for lsof_4.57D.freebsd.tar.gz.
===> Patching for lsof-4.57
===> Applying FreeBSD patches for lsof-4.57
===> Configuring for lsof-4.57
...
[выдача процесса конфигурации опущена]
...
===> Building for lsof-4.57
...
[выдача компиляции опущена]
...
===> Installing for lsof-4.57
...
[выдача процедуры установки опущена]
...
===> Generating temporary packing list
===> Compressing manual pages for lsof-4.57
===> Registering installation for lsof-4.57
===> SECURITY NOTE:
This port has installed the following binaries which execute with
increased privileges.
&prompt.root;Как вы видите, единственным отличием является строка, в которой
указывается, откуда система сгружает дистрибутивный файл
порта.Для загрузки файлов система портов использует утилиту
&man.fetch.1;, которая принимает во внимание различные переменные
окружения, включая FTP_PASSIVE_MODE,
FTP_PROXY и FTP_PASSWORD. Если вы
находитесь за сетевым экраном или для работы с работы с FTP/HTTP вам
необходимо использовать прокси, то определите соответствующие
переменные. Обратитесь к справочной странице по &man.fetch.3; для
получения полного списка переменных.Пользователям, которые не могут быть постоянно подключенными
к сети, поможет команда make
fetch. Просто запустите эту
команду в каталоге самого верхнего уровня
(/usr/ports), и требуемые файлы будут сгружены.
Эта команда будут работать также и с вложенными категориями,
например: /usr/ports/net.
Заметьте, что если порт имеет зависимости от библиотек или других
портов, то он не будет также сгружать
дистрибутивные файлы этих портов. Замените
fetch на
fetch-recursive, если вы хотите выполнить
загрузку также и всех этих зависимостей порта.Вы можете построить все порты в категории за раз, запустив
команду make в каталоге верхнего уровня, как и
в вышеописанном методе с make
fetch. Однако это опасно, так как
некоторые порты не могут сосуществовать. В других случаях
некоторые порты могут устанавливать два различных файла с одним и
тем же именем.В некоторых редких случая пользователям необходимо получить
tar-архивы с сайтов, отличающихся от MASTER_SITES
(это место, откуда файлы обычно сгружаются). Вы можете
переопределять значение MASTER_SITES посредством
следующей команды:&prompt.root; cd /usr/ports/directory
&prompt.root; make MASTER_SITE_OVERRIDE= \
ftp://ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/ fetchВ этом примере мы изменили значение переменной
MASTER_SITES на
ftp.FreeBSD.org/pub/FreeBSD/ports/distfiles/.Некоторые порты позволяют (или даже требуют) задавать
параметры, которые включают или выключают построение отдельных
частей приложения, которые не нужны, некоторые параметры
безопасности, а также прочие настройки. К некоторым из них, часто
упоминаемым, относятся
пакеты www/mozilla,
security/gpgme и
mail/sylpheed-claws. При
наличии подобных параметров будет выдано сообщение.Переназначение каталогов с портами по умолчаниюИногда бывает полезным (или необходимым) использование
других каталогов с портами и дистрибутивными файлами. Для
переопределения каталогов, используемых по умолчанию, используются
переменные PORTSDIR и PREFIX.
К примеру:&prompt.root; make PORTSDIR=/usr/home/example/ports installбудет компилировать порт в каталоге
/usr/home/example/ports, а установит всё в
/usr/local.&prompt.root; make PREFIX=/usr/home/example/local installбудет компилировать его в каталоге
/usr/ports, а установит в
/usr/home/example/local.И, конечно,&prompt.root; make PORTSDIR=../ports PREFIX=../local installиспользует обе возможности (полная команда слишком длинна для
написания на этой странице, однако вы должны уловить общую
идею).Альтернативным способом является задание значений этих переменных
в параметрах вашего окружения. Обратитесь к страницам справки по
вашему командному процессору для получения инструкций о том, как это
сделать.Работа с imakeНекоторые порты, использующие imake (часть
X Window System) нормально не работают с PREFIX,
и будут пытаться установиться в дерево
/usr/X11R6. Аналогично некоторые Perl-порты
игнорируют значения PREFIX и устанавливаются в
дерево Perl. Заставить такие порты воспринимать переменную
PREFIX является сложной или невыполнимой
задачей.Удаление установленных портовпортыудалениеТеперь, когда вы знаете, как устанавливать порты, вы наверное, уже
задумывались о том, как же их удалять, просто даже на тот случай, если
вы установили один из них, а позже решили, что установили не тот порт.
Мы удалим порт из нашего предыдущего примера (а это была программа
lsof, если вы обратили внимание). Как и при
установке портов, первым делом вы должны перейти в каталог с портом,
/usr/ports/sysutils/lsof. После смены каталога вы
готовы к удалению xchat. Это делается командой
make deinstall:&prompt.root; cd /usr/ports/sysutils/lsof
&prompt.root; make deinstall
===> Deinstalling for lsof-4.57Это было достаточно легко. Вы удалили lsof из
вашей системы. Если вам захочется переустановить эту программу, то это
можно будет сделать, выдав команду make reinstall
из каталога /usr/ports/sysutils/lsof.Последовательность команд make deinstall и
make reinstall не сработает, если вы запустите
команду make clean. Если вы хотите убрать порт из
системы после зачистки каталога, используйте команду
&man.pkg.delete.1;, как это описано в разделе о пакетах Руководства.Порты и дисковое пространствопортыдисковое пространствоИспользование коллекции портов может определённо стоить вам
дискового пространства. По этой причине вы не должны забывать о
зачистке рабочих каталогов при помощи команды make
clean. При этом будет удаляться каталог
work, возникающий после построения и установки
порта. Вы можете также удалить tar-файлы из каталога
distfiles, а позже удалить установленные порты,
если они не используются.Некоторые пользователи ограничивают набор категорий портов,
помещая в файл refuse соответствующую запись.
В этом случае при запуске программы CVSup
- она не будет сгружать файлы из указанных категорий.
+ она не будет загружать файлы из указанных категорий. Дополнительную
+ информацию, относящуюся к файлу refuse, можно
+ найти в .
Обновление портовportupgradeпортыобновлениеПосле обновления коллекции портов, и перед тем, как обновить
приложение из порта, сверьтесь с файлом
/usr/ports/UPDATING. В нем дана информация
по различным вопросам и дополнительным шагам, которые
могут быть необходимы для обновления порта.Поддержание ваших портов в актуальном состоянии может оказаться
нудным занятием. К примеру, чтобы обновить порт, вам нужно перейти в
каталог с портами, построить порт, удалить старый порт, установить
новый, а затем вычистить его после построения. Представьте, сколько
действий (пять) нужно сделать! Скучно, да? Это было большой
проблемой для системных администраторов, но теперь есть утилиты,
выполняющие эти действия за нас. Например, утилита
sysutils/portupgrade сделает всё за
вас сама! Просто установите её, как обычный порт, при помощи команды
make install clean.Теперь создайте базу данных командой pkgdb -F.
Она выяснит перечень установленных портов и создаст файл базы данных
в каталоге /var/db/pkg. Теперь при вызове
команды portupgrade -a, она будет использовать эту
базу данных и файл портов INDEX. Наконец,
portupgrade загрузит, построит, сделает
резервную копию, установит и очистит порты, которые были обновлены.
portupgrade имеет массу параметров для
использования в разных ситуациях, из которых наибольшего внимания
заслуживает описываемая далее.Если вы хотите обновить только определённое приложение, но не
полностью базу данных, используйте portupgrade
pkgname, с флагом
, если portupgrade
должен отработать все пакеты, которые зависят от указанного, и
использовать флаг для отработки всех пакетов,
которые требуют указанные пакеты. Для использования при установке
пакетов, а не портов, укажите флаг , а для простой
загрузки дистрибутивных файлов без построения или установки чего бы то
ни было задайте флаг . Дополнительную информацию
можно получить на странице справки по
утилите &man.portupgrade.1;.Важно регулярно обновлять базу данных пакетов при помощи
команды pkgdb -F для восстановления целостности,
особенно когда portupgrade запрашивает
вас это сделать. Не прерывайте работы
portupgrade при обновлении базы данных
пакетов, это может привести к рассогласованию данных.Существуют и другие утилиты, которые делают подобные вещи,
посмотрите в каталоге ports/sysutils и выберите
то, что вам подходит.Действия после установкиПосле установки нового приложения вам обычно требуется прочесть
какую-либо документацию, если она есть, отредактировать нужные
конфигурационные файлы, проверить, что приложение запускается во время
загрузки системы (если это даемон), и так далее.Очевидно, что в шаги, в точности требуемые для конфигурации каждого
приложения, отличаются. Однако, если если вы только что установили
новое приложение и вам интересно, Что же дальше?, то вам
могут помочь следующие советы:Воспользуйтесь командой &man.pkg.info.1; для определения того,
куда и какие файлы были установлены. К примеру, если вы только что
установили FooPackage версии 1.0.0, то по команде&prompt.root; pkg_info -L foopackage-1.0.0 | lessбудут выведен список всех файлов, установленных пакетов.
Обратите особое внимание на файлы в каталогах
man/, которые являются справочными страницами,
etc/, которые будут являться конфигурационными
файлами, и doc/, которые будут являться более
подробной документацией.Если вы не уверены, какая версия приложения была только что
установлена, то по команде типа&prompt.root; pkg_info | grep -i foopackageбудут выведен список всех установленных пакетов, в названии
которых присутствует foopackage Замените
foopackage в командной строке на то, что вам
нужно.Как только вы определите, куда были установлены справочные
страницы приложения, просмотрите их при помощи команды &man.man.1;.
Подобным же образом просмотрите примеры конфигурационных файлов и
всю дополнительную документацию, которая была поставлена.Если у приложения имеется веб-сервер, поищите там дополнительную
документацию, ответы на часто задаваемые вопросами и так далее. Если
вы не уверены, каков адрес веб-сайта, он может быть указан в выводе
команды&prompt.root; pkg_info foopackage-1.0.0Строка WWW:, если она есть, должна содержать
URL Web-сайта приложения.Порты, которые должны запускаться при загрузке системы (такие,
как серверы Internet), как правило, устанавливают примерный скрипт в
каталог /usr/local/etc/rc.d. Вы должны
просмотреть скрипт на предмет его корректности и отредактировать или
переименовать его, если это нужно. Обратитесь к разделу о Запуске сервисов для
получения более полной информации.Обработка нерабочих портовЕсли вы встретили порт, который у вас не работает, есть несколько
вещей, которые вы можете сделать, а именно:Исправьте его! В Руководстве по созданию
+ url="&url.books.porters-handbook;/index.html">Руководстве по созданию
портов содержится подробная информация об инфраструктуре
Портов, так что вы сможете исправить иногда
встречающиеся порты с ошибками или даже создать собственные!Надавите—только по электронной
почте! Сначала пошлите письмо человеку, сопровождающему
порт. Наберите команду make maintainer или
прочтите Makefile, чтобы найти его адрес. Не
забудьте указать имя и версию порта (скопировав строчку
$FreeBSD: из файла
Makefile) и включите в письмо весь
вывод, предшествующий возникновению ошибки.
Если вы не получили ответа от этого человека, то можете
воспользоваться командой &man.send-pr.1; для посылки
сообщения об ошибке.Загрузите пакет с ближайшего к вам FTP-сервера.
Основная коллекция пакетов находится на сервере
ftp.FreeBSD.org в каталоге
с пакетами, но первым делом проверьте
местное зеркало! Это, скорее всего, будет работать, и сделать это,
кроме того, будет гораздо быстрее, чем пытаться компилировать порты
из исходного кода. Воспользуйтесь программой &man.pkg.add.1; для
установки пакета в вашей системе.