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 c9f4f708fc..9a0a648cdc 100644
--- a/ru_RU.KOI8-R/books/handbook/advanced-networking/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/advanced-networking/chapter.sgml
@@ -1,4537 +1,4571 @@
АндрейЗахватовПеревод на русский язык: Сложные вопросы работы в сетиКраткий обзорЭта глава охватывает множество различных сетевых тематик
повышенной сложности.После чтения этой главы вы будете знать:Основные понятия о маршрутизации и маршрутах.Как настроить IEEE 802.11 и &bluetooth;.Как заставить FreeBSD работать в качестве сетевого
моста.Как настроить загрузку по сети для бездисковой машины.Как настроить трансляцию сетевых адресов.Как соединить два компьютера посредством PLIP.Как настроить IPv6 на машине FreeBSD.
- Как настроить ATM в &os; 5.X.
+ Как настроить ATM.Перед чтением этой главы вы должны:Понимать основы работы скриптов
/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;.BGPRIPOSPFAlHoangПредоставил Настройка статических маршрутовРучная настройкаПредположим, что у нас есть следующая сеть:
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;.Маршрутизация многоадресного трафикамаршрутизация многоадресного трафикапараметры ядра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.enable=1
-&prompt.root; sysctl net.link.ether.bridge.config="wi0,xl0"
+&prompt.root; sysctl net.link.ether.bridge.config="wi0 xl0"
&prompt.root; sysctl net.inet.ip.forwarding=1В версиях &os;, предшествующих 5.2, вместо указанных нужно
использовать следующие параметры:&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Теперь необходимо настроить адаптер беспроводной сети.
Следующая команда заставит адаптер работать в режиме точки
доступа:
&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Практически все адаптеры беспроводной связи 802.11b на данный
момент во FreeBSD поддерживаются. Большинство адаптеров,
построенных на основе Prism, Spectrum24, Hermes, Aironet и Raylink,
будут работать в качестве адаптера беспроводной сети в режиме
IBSS (ad-hoc, одноранговая сеть и BSS).Клиенты 802.11a и 802.11gДрайвер устройства &man.ath.4; поддерживает 802.11a и 802.11g.
Если ваша карта основана на чипсете Atheros, вы можете использовать
этот драйвер.К сожалению, все еще много производителей, не предоставляющих
схематику своих драйверов сообществу open source, поскольку
эта информация считается торговым секретом. Следовательно,
у разработчиков FreeBSD и других операционных систем остается
два варианта: разработать драйверы долгим и сложным методом
обратного инжиниринга, или использовать существующие драйверы
для платформ µsoft.windows;. Большинство разработчиков
FreeBSD выбрали второй способ.Благодаря усилиям Билла Пола (wpaul), начиная
с FreeBSD 5.3-RELEASE существует прозрачная
поддержка Network Driver Interface Specification (NDIS).
FreeBSD NDISulator (известный также как Project Evil)
преобразует бинарный драйвер &windows; так, что он работает
так же как и в &windows;. Эта возможность всё ещё относительно
нова, но в большинстве тестов она работает адекватно.NDISзагрузчик NDISдрайверы &windows;Microsoft WindowsMicrosoft Windowsдрайверы устройствKLD (загружаемый объект ядра)Для использования NDISulator потребуются три вещи:Исходные тексты ядраБинарный драйвер &windowsxp;
(расширение .SYS)Файл конфигурации бинарного драйвера &windowsxp;
(расширение .INF)Вам может потребоваться компиляция драйвера оболочки мини порта
&man.ndis.4;. Под root:&prompt.root; cd /usr/src/sys/modules/ndis
-&prompt.root; make && make install
+&prompt.root; make && make installОпределите местоположение файлов для вашей карты. Обычно
их можно найти на входящем в комплект CD или на Web-сайте
поставщика. В нашем примере используются файлы
W32DRIVER.SYS и
W32DRIVER.INF.Следующий шаг это компиляция бинарного драйвера в
загружаемый модуль ядра. Чтобы сделать это, сначала зайдите в
каталог модуля if_ndis и с правами
root скопируйте туда драйверы
&windows;:&prompt.root; cd /usr/src/sys/modules/if_ndis
&prompt.root; cp /path/to/driver/W32DRIVER.SYS ./
&prompt.root; cp /path/to/driver/W32DRIVER.INF ./Теперь используйте утилиту ndiscvt для
создания заголовка определения драйвера
ndis_driver_data.h перед сборкой
модуля:&prompt.root; ndiscvt -i W32DRIVER.INF -s W32DRIVER.SYS -o ndis_driver_data.hПараметры и задают
соответственно файл настройки и бинарный файл. Мы используем
параметр , поскольку
Makefile при создании модуля будет
обращаться именно к этому файлу.Некоторым драйверам &windows; для работы требуются
дополнительные файлы. Вы можете включить их параметром
ndiscvt . Обратитесь
к странице справочной системы &man.ndiscvt.8; за
дополнительной информацией.Наконец, соберите и установите модуль драйвера:&prompt.root; make && make installДля использования драйвера необходимо загрузить соответствующие
модули:&prompt.root; kldload ndis
&prompt.root; kldload if_ndisПервая команда загружает оболочку драйвера мини-порта NDIS,
вторая загружает собственно сетевой интерфейс. Проверьте
&man.dmesg.8; на предмет ошибок загрузки. Если все прошло
хорошо, вывод должен быть примерно таким:ndis0: <Wireless-G PCI Adapter> mem 0xf4100000-0xf4101fff irq 3 at device 8.0 on pci1
ndis0: NDIS API version: 5.0
ndis0: Ethernet address: 0a:b1:2c:d3:4e:f5
ndis0: 11b rates: 1Mbps 2Mbps 5.5Mbps 11Mbps
ndis0: 11g rates: 6Mbps 9Mbps 12Mbps 18Mbps 36Mbps 48Mbps 54MbpsНачиная с этого момента вы можете использовать устройство
ndis0 как любое другое беспроводное
устройство (например, wi0);
в этой ситуации применима информация, приведенная в начале этой
главы.PavLucistnikТекст предоставил
- pav@oook.cz
+ pav@FreeBSD.orgBluetoothBluetoothВведение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
+
+ Стек протоколов Bluetooth запускается вручную во &os; 6.0, и во
+ &os; 5.X, перед 5.5. Это делается автоматически через &man.devd.8;
+ во &os; 5.5, 6.1 и в более новых версиях.
+
Скопируйте файл
/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: 8
+ HCIHost 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:
+ пары на удалённом устройстве.
+
+ Во &os; 5.5, 6.1 и в более новых, следующая строка может быть
+ добавлена к /etc/rc.conf, чтобы
+ hcsecd запускался автоматически во время старта
+ системы:
+
+ hcsecd_enable="YES"
+
+ Ниже даётся пример выдачи протокола
+ команды 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;:
+ сервером &man.sdpd.8;. Во &os; 5.5, 6.1 и в более новых, следующая строка
+ может быть добавлена в файл /etc/rc.conf:
+
+ sdpd_enable="YES"
+
+ После этого sdpd даемон может быть запущен
+ с помощью:
+
+ &prompt.root; /etc/rc.d/sdpd start
+
+ Во &os; 6.0, и во &os; 5.X перед 5.5,
+ sdpd не интегрирован в скрипты загрузки
+ системы. Он должен запускаться автоматически командой:&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 telecom/devinfo.txt devinfo-t39.txt
Success, response: OK, Success (0x20)
obex> put 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 который доступен в виде порта
comms/hcidump. Утилита
hcidump похожа на &man.tcpdump.1;. Она
может быть использована для вывода на терминал содержимого
Bluetooth-пакетов и сбрасывать пакеты Bluetooth в файл.StevePetersonТекст создал МостыВведениеподсеть IPсетевой мостИногда полезно разделить одну физическую сеть (такую, как
сегмент Ethernet) на два отдельных сегмента сети без необходимости
создания подсетей IP и использования маршрутизатора для соединения
сегментов. Устройство, которое соединяет две сети на такой манер,
называется сетевым мостом (bridge).
Система FreeBSD с двумя сетевыми адаптерами может выступать в роли
моста.Мост работает на основе изучения адресов уровня MAC (адресов
Ethernet) устройств на каждом из своих сетевых интерфейсах.
Он перенаправляет трафик между двумя сетями, только когда адреса
отправителя и получателя находятся в разных сетях.По многим параметрам мост работает также, как коммутатор Ethernet
с малым количеством портов.Ситуации, когда можно использовать мостыНа сегодняшний день есть две ситуации, когда можно использовать
мост.Большой трафик в сегментеПервая ситуация возникает, когда ваша физическая сеть перегружена
трафиком, но по каким-то соображениям вы не хотите разделять сеть
на подсети и соединять их с помощью маршрутизатора.Давайте рассмотрим в качестве примера газету, в которой
редакторский и производственный отделы находятся в одной и той же
подсети. Пользователи в редакторском отделе все используют сервер
A для служб доступа к файлам, а пользователи
производственного отдела используют сервер B. Для
объединения всех пользователей используется сеть Ethernet, а высокая
нагрузка на сеть замедляет работу.Если пользователи редакторского отдела могут быть собраны в
одном сегменте сети, а пользователи производственного отдела в
другом, то два сетевых сегмента можно объединить мостом. Только
сетевой трафик, предназначенный для интерфейсов с
другой стороны моста, будет посылаться в другую сеть,
тем самым снижая уровень нагрузки на каждый сегмент сети.Сетевой экран с возможностями фильтрации/ограничения
пропускной способности трафикасетевой экранNATВторой распространённой ситуацией является необходимость в
обеспечении функций сетевого экрана без трансляции
сетевых адресов (NAT).Для примера можно взять маленькую компанию, которая подключена
к своему провайдеру по каналу DSL или ISDN. Для неё провайдер
выделил 13 глобально доступных IP-адресов для имеющихся в сети 10
персональных компьютеров. В такой ситуации использование сетевого
экрана на основе маршрутизатора затруднено из-за проблем с
разделением на подсети.маршрутизаторDSLISDNБрандмауэр на основе моста может быть настроен и включен
между маршрутизаторами DSL/ISDN без каких-либо проблем с
IP-адресацией.Настройка мостаВыбор сетевого адаптераДля работы моста требуются по крайней мере два сетевых адаптера.
К сожалению, не все сетевые адаптеры во FreeBSD 4.0 поддерживают
функции моста. Прочтите страницу Справочника по &man.bridge.4; для
выяснения подробностей о поддерживаемых адаптерах.Перед тем, как продолжить, сначала установите и протестируйте
два сетевых адаптера.Изменения в конфигурации ядрапараметры ядраBRIDGEДля включения поддержки функций сетевого моста в ядре, добавьте
строчкуoptions BRIDGEв файл конфигурации вашего ядра, и перестройте ядро.Поддержка функций брандмауэрабрандмауэрЕсли вы планируете использовать мост в качестве
брандмауэра, вам нужно также добавить опцию
IPFIREWALL.
Прочтите , содержащую общую
информацию о настройке моста в качестве брандмауэра.Если вам необходимо обеспечить прохождение не-IP пакетов (таких,
как ARP) через мост, то имеется опция брандмауэра,
которую можно задать. Это опция
IPFIREWALL_DEFAULT_TO_ACCEPT. Заметьте, что при
этом правило, используемое брандмауэром по умолчанию, меняется
на разрешительное для всех пакетов. Перед тем, как задавать эту
опцию, убедитесь, что вы понимаете работу вашего набора
правил.Поддержка функций ограничения пропускной способностиЕсли вы хотите использовать мост в качестве машины,
ограничивающей пропускную способность, то добавьте в файл
конфигурации ядра опцию DUMMYNET. Дополнительную
информацию можно почерпнуть из страницы Справочника по
&man.dummynet.4;.Включение функций мостаДобавьте строкуnet.link.ether.bridge.enable=1в файл /etc/sysctl.conf для включения функций
моста во время работы системы, и строку:net.link.ether.bridge.config=if1,if2для включения функций моста для указанных интерфейсов (замените
if1 и if2 на
имена двух ваших сетевых интерфейсов). Если вы хотите, чтобы
проходящие через мост пакеты фильтровались посредством &man.ipfw.8;,
вы должны также добавить строчку:net.link.ether.bridge.ipfw=1Для версий &os;, предшествующих &os; 5.2-RELEASE, нужно
использовать следующие строки:net.link.ether.bridge=1
net.link.ether.bridge_cfg=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; 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-адрес
отправителя и порт таким образом, что когда данные принимаются
обратно, он может определить расположение источника начальных данных
и переслать их машине, которая запрашивала данные изначально.совместное использование доступа в ИнтернетNATЧаще всего NAT используется для организации так называемого
Совместного Использования Интернет.НастройкаИз-за исчерпания пространства адресов в IPv4 и увеличения
количества пользователей высокоскоростных каналов связи, таких, как
кабельное подключение или DSL, необходимость в решении по Совместному
Использованию Интернет растёт. Возможность подключить несколько
компьютеров через единственное соединение и IP-адрес делает
&man.natd.8; подходящим решением.Чаще всего у пользователя имеется машина, подключенная к кабельному
каналу или каналу DSL с одним IP-адресом и есть желание использовать
этот единственный подключенный компьютер для организации доступа в
Интернет другим компьютерам в локальной сети.Для этого машина FreeBSD, находящаяся в Интернет, должна выступать
в роли шлюза. Эта шлюзовая машина должна иметь два сетевых
адаптера—один для подключения к маршрутизатору Интернет, а
другой для подключения к ЛВС. Все машины в локальной сети
подключаются через сетевой концентратор или коммутатор.
+
+ Существует много способов подсоединить локальную сеть к
+ Internet через шлюз &os;. Этот пример показывает шлюз c
+ двумя сетевыми картами.
+
+
_______ __________ ________
| | | | | |
| Hub |-----| Client B |-----| Router |----- Internet
|_______| |__________| |________|
|
____|_____
| |
| Client A |
|__________|Структура сетиПодобная конфигурация часто используется для совместного
использования доступа в Интернет. Одна из подключенных к локальной
сети машин подключается к Интернет. Остальные машины работают с
Интернет посредством этой шлюзовой машины.ядронастройкаНастройкаВ файле конфигурации ядра должны присутствовать следующие
параметры:options IPFIREWALL
options IPDIVERTДополнительно, если это нужно, можно добавить следующее: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,
а Web-сервер работает на клиенте B. Чтобы это
работало, соединения, принимаемые на портах 6667 (IRC) и 80 (Web),
должны перенаправляться на соответствующие машины.Программе &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 по параллельному портуPLIPPLIP позволяет нам работать с 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 и так далее) и технология
+ стали применяться адресные пространства для частных сетей (RFC1918)
+ (10.0.0.0/8,
+ 172.16.0.0/12 и 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
+&prompt.root; ifconfig gif0 tunnel MY_IPv4_ADDR MY_IPv4_REMOTE_TUNNEL_ENDPOINT_ADDR
+&prompt.root; ifconfig gif0 inet6 alias MY_ASSIGNED_IPv6_TUNNEL_ENDPOINT_ADDR MY_IPv6_REMOTE_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: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"Настройка туннелирования IPv6Если сервер будет обеспечивать маршрутизацию между вашей сетью и
остальным миром, то в файле /etc/rc.conf
понадобится следующая строка:ipv6_gateway_enable="YES"Распространение маршрутов и автоматическая настройка
хостовЭтот раздел поможет вам настроить &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
+ Асинхронный режим передачи (ATM)Классическая настройка 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 37e8065f35..829adfd487 100644
--- a/ru_RU.KOI8-R/books/handbook/basics/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/basics/chapter.sgml
@@ -1,2625 +1,2639 @@
ChrisShumwayПереписал АлексейЗелькинПеревод на русский язык: АлексейДокучаевДенисПеплинОсновы UNIXКраткий обзорВ этой главе мы попытаемcя раскрыть основные принципы и команды
операционной системы FreeBSD. Большая часть нижеизложенного
материала в более или менее равной степени применима к любой
&unix;-подобной операционной системе. Если вы уверены, что не найдете
здесь ничего нового для себя, можете смело пропустить эту главу.
Если же вы новичок, мы настоятельно рекомендуем внимательно
прочесть это главу.Прочитав эту главу, вы узнаете:Как использовать виртуальные консоли
FreeBSD.Как работают права доступа на файлы в &unix; и как следует
интерпретировать флаги файлов в ОС &os;.Иерархия каталогов &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; подобных операционных системах), эта задача решается путем
+ &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
- Том
- Родес
+ Tom
+ RhodesТекст предоставил Флаги файлов в &os;Кроме уже описанных прав доступа к файлам, &os; поддерживает
использование флагов файлов. Эти флаги обеспечивают
дополнительный уровень защиты и контроля над файлами, но не могут
применяться к каталогам.Эти флаги добавляют дополнительные возможности контроля над
файлами, обеспечивая (при определенных условиях) невозможность их
- удаления даже пользователю root.
+ удаления или изменения даже пользователю root.
Файловые флаги изменяются при помощи утилиты &man.chflags.1;
посредством простого интерфейса. К примеру, чтобы установить
системный признак неудаляемости на файл file1,
выполните следующую команду:&prompt.root; chflags sunlink file1Чтобы отключить флаг неудаляемости, просто выполните предыдущую
команду с ключом no перед параметром
. Вот так:&prompt.root; chflags nosunlink file1Чтобы просмотреть флаги этого файла, воспользуйтесь командой
&man.ls.1; с параметрами :&prompt.root; ls -lo file1Результат выполнения команды должен выглядеть примерно так:-rw-r--r-- 1 trhodes trhodes sunlnk 0 Mar 1 05:54 file1Некоторые флаги могут быть установлены или сняты с файлов только
пользователем root. В остальных случаях эти флаги
может установить владелец файла. Для получения дополнительной
информации мы рекомендуем изучить содержимое справки по командам
&man.chflags.1; и &man.chflags.2;.Структура каталоговиерархия каталоговФайловая система FreeBSD является ключевым моментом в понимании
устройства всей системы. Самым важным понятием является, несомненно,
корневой каталог, обозначаемый символом /.
Корневой каталог монтируется самым первым на этапе загрузки и содержит
все необходимое, чтобы подготовить систему к загрузке в
многопользовательский режим. Корневой каталог также содержит точки
монтирования всех других файловых систем.Точкой монтирования называется каталог, который будет
- соответствовать корню примонтированой файловой системы. Стандартные
- точки монтирования включают /usr,
+ соответствовать корню примонтированой файловой системы.
+ Более детально это описывается в .
+ Стандартные точки монтирования включают /usr,
/var, /tmp,
/mnt и
/cdrom. Эти каталоги обычно перечислены в
файле /etc/fstab, в котором указаны файловые
системы и их точки монтирования. Большинство файловых систем,
описанных в /etc/fstab монтируются автоматически
из скрипта &man.rc.8;, если только для них не указана опция
. Более детальная информация находится в
.Полное описание иерархии файловой системы есть в &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/Виртуальная файловая система, отображающая
текущие процессы (см. &man.procfs.5;,
&man.mount.procfs.8;)./rescue/Статически слинкованные программы для восстановления
после сбоев. Обратитесь к &man.rescue.8;./root/Домашний каталог пользователя
root./sbin/Системные утилиты и утилиты администрирования,
необходимые для работы как в однопользовательском,
так и в многопользовательском режимах./stand/Программы, необходимые для работы в автономном
режиме (например, при установке системы)./tmp/
- Временный каталог (часто монтируется как
- &man.mfs.8;; обычно содержимое этого каталога
- теряется во время перезагрузки системы).
+ Временные файлы. Содержимое
+ /tmp обычно
+ теряется во время перезагрузки системы. Файловая
+ система в памяти часто монтируется в
+ /tmp. Это
+ может быть автоматизированно с помощью переменных
+ относительно tmpmfs из &man.rc.conf.5; (или же с
+ помощью записи в /etc/fstab;
+ обращайтесь к &man.mdmfs.8;, или в случае
+ FreeBSD 4.X к &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. Это
+ может быть автоматизированно с помощью переменных
+ относительно varmfs из &man.rc.conf.5; (или же с
+ помощью записи в /etc/fstab;
+ обращайтесь к &man.mdmfs.8;, или в случае
+ FreeBSD 4.X к &man.mfs.8;).
/var/log/Различные файлы системных журналов./var/mail/Почтовые ящики пользователей./var/spool/Файлы очередей печати, почты, и пр./var/tmp/
- Временные файлы, которые необходимо сохранять между
- перезагрузками операционной системы.
+ Временные файлы, которые обычно сохраняются во время
+ перезагрузки системы, если только
+ /var не является
+ файловой системой в памяти./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; попытается проверять их параллельно (если,
конечно, это возможно физически).Обратитесь к &man.fstab.5; за дополнительной информацией
о формате файла /etc/fstab и различных
опциях монтирования.Команда mountfilesystemsmountingКоманда &man.mount.8; используется, как следует из ее имени,
для монтирования файловых систем.Пример использования (простейший случай):&prompt.root; mount устройствоточка-монтированияПеречислим основные опции, которые может принимать команда
&man.mount.8; (полный список смотрите на странице
справочника):Опции монтированияСмонтировать все файловые системы, перечисленные в
файле /etc/fstab. Исключение
составляют помеченные как noauto,
перечисленные после опции и уже
смонтированные.Сделать все, кроме самого системного вызова mount.
Эта опция полезна вместе с флагом
для определения того, что на самом деле пытается сделать
&man.mount.8;.Монтировать поврежденный раздел (опасно!),
или форсировать отмену всех запросов на запись при
изменении режима монтирования с
чтение-запись на только
чтение.Монтировать файловую систему в режиме только
для чтения. То же самое, что и указание
аргумента (
для &os; версий старше, чем 5.2) для опции
.fstypeМонтировать файловую систему как систему указанного
типа, или, в случае опции , только
файловые системы данного типа.По умолчанию, тип файловой системы –
ufs.Обновить опции монтирования для файловой
системы.Выдавать более подробную информацию.Монтировать файловую систему в режиме
чтение-запись.Опция принимает разделенные запятыми
аргументы, включая нижеперечисленные:nodevНе обращать внимание на специальные файлы устройств
на файловой системе (то есть не считать их файлами
устройств). Весьма полезная опция для повышения
безопасности системы.noexecЗапрет на исполнение бинарных файлов на файловой
системе (тоже полезная опция для повышения безопасности
системы).nosuidИгнорировать setuid и setgid биты на файловой системе
(еще одна полезная опция для повышения безопасности
системы).Команда 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Самым простым в изучении и использовании, по-видимому, можно
назвать ee, что расшифровывается как
easy editor, т.е. простой редактор. Чтобы
начать редактировать какой-либо файл, наберите в командной строке
ee filename, где
filename имя
редактируемого файла. Например, для редактирования файла
/etc/rc.conf, наберите ee
/etc/rc.conf. В верхней части экрана вы увидите список
основных команд редактора. Символ каретки (^)
означает клавишу Ctrl, таким образом,
^e означает комбинацию клавиш
Ctrle. Чтобы выйти из редактора, нажмите
клавишу Esc, затем Enter.
Если остались какие-либо не сохраненные
данные, вам потребуется подтвердить выход, сохранив результат
работы или оставив файл без изменения.vieditorsviemacseditorsemacsВ 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Содержимое системного справочника для удобства разделено на
несколько разделов:Пользовательские команды.Системные вызовы и коды ошибок.Функции стандартных библиотек.Драйверы устройств.Форматы файлов.Развлечения и игры.Дополнительная информация.Команды системного администрирования.Для разработчиков ядра.В некоторых случаях (не так уж редко), страницы, относящиеся к
одной и той же команде, находятся в различных разделах справочника.
Например, есть команда chmod и системный вызов
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/desktop/chapter.sgml b/ru_RU.KOI8-R/books/handbook/desktop/chapter.sgml
index 1cb2ef0083..a69c93571c 100644
--- a/ru_RU.KOI8-R/books/handbook/desktop/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/desktop/chapter.sgml
@@ -1,1246 +1,1116 @@
ChristopheJunietПредоставил ДенисПеплинПеревод на русский язык: Приложения для настольного компьютераКраткий обзорFreeBSD может работать с широким кругом приложений для настольного
компьютера (десктопа), таких как браузеры и текстовые процессоры.
Большинство из них доступны в качестве пакетов или могут быть автоматически
собраны из коллекции портов. Многим новым пользователям хотелось
бы видеть эти приложения на своем компьютере. В этой главе показано
как без усилий установить некоторые популярные приложения для
настольного компьютера из пакетов или из коллекции портов.Обратите внимание, что при установке программ из портов они
компилируются из исходных текстов. Это может занять очень много
времени, в зависимости от того, что вы собираете, и от скорости
процессора вашего компьютера (компьютеров). Большинство программ,
имеющихся в коллекции портов, могут быть установлены из
прекомпилированных пакетов, если сборка из исходных текстов занимает
недопустимо много времени.Поскольку FreeBSD обеспечивает двоичную совместимость с Linux,
многие приложения, первоначально разработанные для Linux, доступны и на
вашем компьютере. Настоятельно рекомендуется прочитать
перед установкой любого из приложений
Linux. Названия многих портов, использующих двоичную совместимость
с Linux, начинаются с linux-. Помните это при поиске
отдельного порта, например с помощью &man.whereis.1;. Далее в статье
подразумевается, что вы включили бинарную совместимость с Linux
перед установкой какого-либо приложения Linux.Вот несколько категорий, о которых пойдет речь в этой главе:Браузеры (такие как Mozilla,
Opera,
Firefox,
Konqueror)Бизнес приложения (такие как
KOffice,
AbiWord,
GIMP,
OpenOffice.org)Программы просмотра документов (такие как
&acrobat.reader;,
gv,
Xpdf,
GQview)Финансовые программы (такие как
GnuCash,
Gnumeric,
Abacus)Перед прочтением этой главы вам потребуется:Узнать, как устанавливать дополнительные программы
сторонних производителей ().Узнать, как устанавливать программы Linux
().Чтобы получить дополнительную информацию о настройке
мультимедиа среды, прочтите . Если
вам нужна электронная почта, обратитесь к
.БраузерыbrowserswebFreeBSD поставляется без предустановленного браузера.
Вместо этого, в категории
www
коллекции портов содержится множество готовых к установке браузеров.
Если у вас нет времени компилировать все (в некоторых случаях
это может занять очень много времени), многие из них доступны в
виде пакетов.В KDE и
GNOME уже есть HTML браузеры.
Обратитесь к за подробной информацией об
установке этих полноценных десктопов.Если вы ищете облегченный браузер, попробуйте
www/dillo,
www/links, или
www/w3m из коллекции портов.Этот раздел рассказывает о следующих приложениях:Название приложенияПотребность в ресурсахУстановка из портовОсновные зависимостиMozillaбольшаятяжелаяGtk+OperaмалаялегкаяДоступны версии для FreeBSD и Linux. Для Linux версии
необходимо наличие Linux Binary Compatibility и
linux-openmotifFirefoxсредняятяжелаяGtk+KonquerorсредняятяжелаяБиблиотеки KDEMozillaMozillaMozilla это возможно наиболее
подходящий браузер для десктопа FreeBSD. Он современный,
стабильный и полностью портирован на FreeBSD. Его достоинство
в высокой совместимости со стандартами HTML. В нем есть
почтовая и новостная программы. В нем даже найдется редактор HTML,
если вам потребуется самостоятельно написать несколько веб-страничек.
Пользователи &netscape; найдут общие черты с
Communicator, поскольку оба браузера
имеют одну основу.На медленных компьютерах с частотой CPU меньше 233MHz или
с памятью меньше 64MB, Mozilla
требует слишком много ресурсов, чтобы быть удобной в использовании.
Вместо нее вы можете обратить внимание на браузер
Opera, описанный ниже в этой
главе.Если вы не можете или не хотите компилировать
Mozilla по какой-то причине, команда
FreeBSD GNOME уже сделала это для вас. Просто установите
пакет из сети с помощью:&prompt.root; pkg_add -r mozillaЕсли пакет недоступен, но у вас достаточно времени и
места на диске, вы можете скачать исходные тексты для
Mozilla, скомпилировать их и установить
в вашу систему. Это делается так:&prompt.root; cd /usr/ports/www/mozilla
&prompt.root; make install cleanПорт Mozilla проверяет правильность
установки путем запуска регистрации chrome
с привилегиями пользователя root.
Если вы хотите загрузить некоторые дополнения, например курсоры мыши,
потребуется запустить Mozilla под
root для их правильной установки.После завершения установки
Mozilla, больше не требуется работать под
root. Вы можете запустить
Mozilla в качестве браузера, набрав:&prompt.user; mozillaВы можете также запустить непосредственно программу чтения почты и
новостей, как показано ниже:&prompt.user; mozilla -mailTomRhodesПредоставил Mozilla и &java;Установка Mozilla проста, но
к сожалению, установка Mozilla с
поддержкой дополнений, таких как &java; и
¯omedia; &flash; отнимает и время и место на диске.Первое, что нужно сделать — загрузить файлы, которые
будут использоваться с Mozilla. Зайдите
с помощью имеющегося веб браузера на
и
создайте учетную запись на этом веб-сайте. Сохраните имя пользователя и
пароль, они могут понадобиться в будущем. Загрузите копию файлов
jdk-1_5_0-bin-scsl.zip (JDK 5.0
SCSL Binaries) и jdk-1_5_0-src-scsl.zip (JDK 5.0
SCSL Source) и поместите их в каталог
/usr/ports/distfiles, поскольку порт не может
загрузить их автоматически в связи с лицензионными ограничениями.
Загрузите с этого же сайта java environment,
,
файл j2sdk-1_4_2_08-linux-i586.bin.
Как и предыдущий, этот файл должен находиться в каталоге
/usr/ports/distfiles/. Загрузите копию
java patchkit с
и поместите ее в /usr/ports/distfiles/.
Наконец, установите порт
java/jdk15
при помощи стандартной команды
make install clean.Запустите Mozilla и выберите пункт
About Plug-ins в меню
Help. В списке установленных плагинов должен
присутствовать плагин &java;.Mozilla и ¯omedia; &flash; pluginПлагина ¯omedia; &flash; для &os; не существует.
Тем не менее, есть решение (обертка, wrapper) для запуска плагина
для Linux. Это решение также поддерживает плагины для
&adobe; &acrobat;, RealPlayer и других.Установите порт
www/linuxpluginwrapper.
Он требует для работы достаточно большого порта
emulators/linux_base.
Следуя инструкциям, исправьте файл
/etc/libmap.conf! Примеры конфигураций вы
можете найти в каталоге
/usr/local/share/examples/linuxpluginwrapper/.Установите порт www/mozilla,
если Mozilla еще не установлена.Теперь просто запустите Mozilla:&prompt.user; mozilla &И войдите в пункт About Plug-ins меню
Help. Должен появиться список со всеми доступными
плагинами.Плагин linuxpluginwrapper работает
- только на архитектуре i386.
+ только на архитектуре &i386;.
OperaOperaOpera это очень быстрый,
полноценный и совместимый со стандартами браузер. Он поставляется
в двух вариантах: родная для FreeBSD версия и версия,
- запускаемая в режиме эмуляции Linux.
- Для каждой операционной системы есть бесплатная версия
- браузера, показывающая баннеры, и версия без
- баннеров, которую можно купить на веб сайте Opera.
+ запускаемая в режиме эмуляции Linux.
Для работы в сети с помощью FreeBSD версии
Opera установите
пакет:&prompt.root; pkg_add -r operaНа некоторых серверах FTP нет всех пакетов, но те же результаты
можно получить с помощью коллекции портов, набрав:&prompt.root; cd /usr/ports/www/opera
&prompt.root; make install cleanДля установки Linux версии
Opera, замените
opera на
linux-opera в примере выше. Версия для Linux
полезна в ситуации, когда требуются плагины, доступные только
для Linux, такие как Adobe
&acrobat.reader;. Во всех других отношениях
версии для FreeBSD и Linux являются функционально
идентичными.FirefoxFirefoxFirefox это браузер следующего
поколения, основанный на коде Mozilla.
Mozilla это полный набор приложений,
таких как браузер, почтовый клиент, чат клиент и многое другое.
Firefox это всего лишь браузер,
что делает его меньше и быстрее.Установите пакет, выполнив:&prompt.root; pkg_add -r firefoxВы можете также использовать коллекцию портов, если предпочитаете
сборку из исходных текстов:&prompt.root; cd /usr/ports/www/firefox
&prompt.root; make install cleanKonquerorKonquerorKonqueror это часть
KDE, но может быть использован
и отдельно от KDE, путем
установки x11/kdebase3.
Konqueror это гораздо больше
чем просто браузер, это также менеджер файлов и программа
просмотра мультимедиа.Konqueror поставляется с набором
плагинов, доступных из misc/konq-plugins.Konqueror поддерживает также
&flash;, документация How To для него
доступна по адресу .Бизнес приложенияВ начале работы новые пользователи зачастую стремятся найти
хороший офисный пакет или удобный текстовый процессор.
Хотя некоторые десктопы,
такие как KDE, поставляются с готовым
офисным пакетом, приложения по умолчанию не существует. В FreeBSD
есть все необходимое, кроме графической среды.Этот раздел описывает следующие приложения:Название приложенияПотребность в ресурсахУстановка из портовОсновные зависимостиKOfficeмалаятяжелаяKDEAbiWordмалаялегкаяGtk+ или GNOMEThe GimpмалаятяжелаяGtk+OpenOffice.orgбольшаяочень тяжелая
- GCC 3.1, &jdk; 1.3, Mozilla
+ &jdk; 1.4, MozillaKOfficeKOfficeофисный пакетKOfficeСообщество KDE предоставляет графическую среду с офисным
пакетом, который может быть использован вне
KDE. Он включает четыре стандартных
компонента, встречающиеся и в других офисных пакетах.
Текстовый процессор KWord,
программа электронных таблиц KSpread,
KPresenter для создания презентаций
и программа векторной графики
Kontour.Перед установкой последней версии
KOffice, убедитесь в наличии
свежей версии KDE.Для установки KOffice из пакета,
выполните следующую команду:&prompt.root; pkg_add -r kofficeЕсли пакет недоступен, используйте коллекцию портов.
Например, для установки
KOffice для
KDE3, выполните:&prompt.root; cd /usr/ports/editors/koffice-kde3
&prompt.root; make install cleanAbiWordAbiWordAbiWord это свободно распространяемый
текстовый процессор, по внешнему виду и поведению очень похожий
на µsoft; Word. Он подходит для
набора документов, писем, отчетов, напоминаний и так далее. Он
очень быстр, содержит много новшеств и очень удобен в
использовании.AbiWord может импортировать и
экспортировать множество файловых форматов, включая патентованный
Microsoft .doc.AbiWord доступен в виде пакета.
Вы можете установить его так:&prompt.root; pkg_add -r abiwordЕсли пакет недоступен, он может быть собран из коллекции портов,
которая должна быть свежей. Это можно сделать командой:&prompt.root; cd /usr/ports/editors/abiword
&prompt.root; make install cleanGIMPGIMPДля создания и редактирования изображений есть продвинутая
программа GIMP. Она может быть
использована как простая программа рисования и как программа
обработки фотографий. Поддерживается большое количество
плагинов и предоставлен интерфейс для скриптов.
GIMP может читать и записывать файлы
многих форматов. Есть интерфейс со сканерами и планшетами.Вы можете установить пакет, выполнив эту команду:&prompt.root; pkg_add -r gimpЕсли на вашем сервере FTP нет этого пакета, вы можете использовать
коллекцию портов. Категория
graphics
коллекции портов содержит также раздел
Руководство Gimp. Здесь показано, как
его установить:&prompt.root; cd /usr/ports/graphics/gimp
&prompt.root; make install clean
&prompt.root; cd /usr/ports/graphics/gimp-manual-pdf
&prompt.root; make install cleanКатегория
graphics
коллекции портов содержит версию GIMP
для разработчиков в
graphics/gimp-devel.
HTML версия
Руководства Gimp находятся в
graphics/gimp-manual-html.OpenOffice.orgOpenOffice.orgофисный пакетOpenOffice.orgOpenOffice.org включает все обязательные
компоненты полноценного офисного пакета: текстовый процессор,
программу электронных таблиц, программу управления презентациями и программу
векторной графики. Интерфейс пользователя очень похож на другие
офисные пакеты, возможен импорт и экспорт различных популярных
файловых форматов. Приложение доступно в вариантах для множества
разных языков, включая интерфейсы, проверку орфографии и словари.Текстовый процессор
OpenOffice.org использует чистый XML
формат файлов для увеличения переносимости и гибкости.
Программа для работы с текстовыми таблицами предоставляет
макроязык и может работать с внешними базами данных.
OpenOffice.org уже стабильна и
существует в версиях для &windows;, &solaris;, Linux, FreeBSD,
и &macos; X. Дополнительную
информацию об OpenOffice.org можно
найти на веб сайте
- OpenOffice. Получить специфичную для FreeBSD информацию и
+ OpenOffice.org. Получить специфичную для FreeBSD информацию и
загрузить пакеты можно с веб сайта команды портирования
OpenOffice на FreeBSD (FreeBSD OpenOffice
+ url="http://porting.openoffice.org/freebsd/">FreeBSD OpenOffice.org
Porting Team).Для установки OpenOffice.org,
выполните:&prompt.root; pkg_add -r openofficeЭта операция должна работать для любого релиза (-RELEASE) &os;.
Если вы используете иные версии (-STABLE, -CURRENT), нужный пакет
- может быть загружен с сайта группы поддержки OpenOffice и затем
+ может быть загружен с сайта группы поддержки OpenOffice.org и затем
установлен при помощи &man.pkg.add.1;. На сайте вы найдете как
последний стабильный релиз, так и текущую версию, находящуюся в
разработке.
- После установки пакета запустите программу настройки и
- выберите .
- Запустите эту команду из под пользователя, который будет
- использовать OpenOffice.org:
+ После установки пакета просто наберите следующую команду для
+ запуска OpenOffice.org:
- &prompt.user; openoffice-setup
+ &prompt.user; openoffice.org
+
+
+ Во время первого запуска, вам будут заданы несколько вопросов
+ и в вашей домашней директории будет создан каталог
+ .openoffice.org2.
+ Если пакеты OpenOffice.org
недоступны, можно выбрать компиляцию порта. Однако, вы должны
помнить, что это потребует много места на диске и компиляция
будет довольно долгой.
- &prompt.root; cd /usr/ports/editors/openoffice-1.1
+ &prompt.root; cd /usr/ports/editors/openoffice.org-2.0
&prompt.root; make install clean
- Потом запустите настройку под пользователем, который будет
- использовать OpenOffice.org и выберите
- :
-
- &prompt.user; cd /usr/ports/editors/openoffice
-&prompt.user; make install-user
-
- Если вы хотите использовать локализованную версию, вот доступные
- порты:
-
-
-
-
-
-
-
- Язык
- Порт
-
-
-
-
-
- Арабский
- arabic/openoffice-1.1
-
-
-
- Венгерский
- hungarian/openoffice-1.1
-
-
-
- Голландский
- editors/openoffice-1.1-nl
-
-
-
- Греческий
- editors/openoffice-1.1-el
-
-
-
- Датский
- editors/openoffice-1.1-dk
-
-
-
- Испанский
- editors/openoffice-1.1-es
-
-
-
- Итальянский
- editors/openoffice-1.1-it
-
-
-
- Каталанский
- editors/openoffice-1.1-ca
-
-
-
- Китайский (традиционный)
- chinese/openoffice-1.1-zh_TW
-
-
-
- Китайский (упрощенный)
- chinese/openoffice-1.1-zh_CN
-
-
-
- Корейский
- korean/openoffice-1.1
-
-
-
- Немецкий
- german/openoffice-1.1
-
-
-
- Польский
- polish/openoffice-1.1
-
-
-
- Португальский (Бразилия)
- portuguese/openoffice-1.1-pt_BR
-
-
-
- Португальский
- portuguese/openoffice-1.1-pt_PT
-
-
-
- Русский
- russian/openoffice-1.1
-
-
-
- Словацкий
- editors/openoffice-1.1-sk
-
-
-
- Словенский
- editors/openoffice-1.1-sl_SI
-
-
-
- Турецкий
- editors/openoffice-1.1-tr
-
-
-
- Финский
- editors/openoffice-1.1-fi
-
-
-
- Французский
- french/openoffice-1.1
-
-
-
- Чешский
- editors/openoffice-1.1-cs
-
-
-
- Шведский
- editors/openoffice-1.1-se
-
-
-
- Эстонский
- editors/openoffice-1.1-et
-
-
-
- Японский
- japanese/openoffice-1.1
-
-
-
-
+
+ Если вы хотите собрать локализованную версию, то вместо
+ предыдущей командной строки используйте следующее:
+
+ &prompt.root; make LOCALIZED_LANG=your_language install clean
+
+ Вам следует изменить
+ your_language на корректный ISO
+ код языка. Список поддерживаемых языковых кодов доступен в
+ файле files/Makefile.localized, расположенный
+ в директории порта.
+
+
+ После того, как это было сделано
+ OpenOffice.org может быть запущен
+ командой:
+
+ &prompt.user; openoffice.org
+
Программы просмотра документовНекоторые новые форматы документов приобрели большую популярность.
Стандартные программы для их просмотра могут отсутствовать в
базовой системе. В этом разделе мы увидим, как их установить.В разделе говорится о следующих приложениях:Название приложенияПотребность в ресурсахУстановка из портовОсновные зависимости&acrobat.reader;малаялегкаяLinux Binary CompatibilitygvмалаялегкаяXaw3dXpdfмалаялегкаяFreeTypeGQviewмалаялегкаяGtk+ или GNOME&acrobat.reader;Acrobat ReaderPDFпросмотрСейчас многие документы распространяются в формате PDF,
аббревиатура для Portable Document Format. Одна
из рекомендованных программ для просмотра этого типа документов, это
&acrobat.reader;, выпущенный Adobe
для Linux. Поскольку FreeBSD может запускать исполняемые файлы Linux,
он доступен также и для FreeBSD.Для установки &acrobat.reader; 7
из Коллекции портов выполните:&prompt.root; cd /usr/ports/print/acroread7
&prompt.root; make install cleanПакет acroread7 недоступен из-за лицензионных ограничений.gvgvPDFпросмотрPostScriptпросмотрgv это программа просмотра &postscript;
и PDF. Она разработана на основе ghostview,
но выглядит лучше благодаря библиотеке Xaw3d.
Она быстра, а ее интерфейс несложен. У gv
есть множество функций, таких как выбор ориентации, размера бумаги,
масштаба и сглаживание. Почти любая операция может быть выполнена как
с клавиатуры, так и мышью.Для установки gv из пакета,
выполните:&prompt.root; pkg_add -r gvЕсли вы не можете получить пакет, используйте коллекцию
портов:&prompt.root; cd /usr/ports/print/gv
&prompt.root; make install cleanXpdfXpdfPDFпросмотрЕсли вам нужна небольшая программа просмотра PDF под FreeBSD,
Xpdf это легкая и эффективная
программа. Она требует очень небольшого количества ресурсов
и очень стабильна. Используются стандартные шрифты X,
&motif; или другие пакеты для X
не нужны.Для установки пакета Xpdf,
выполните эту команду:&prompt.root; pkg_add -r xpdfЕсли пакет недоступен, или вы предпочитаете коллекцию портов,
выполните:&prompt.root; cd /usr/ports/graphics/xpdf
&prompt.root; make install cleanПосле завершения установки вы можете запустить
Xpdf и использовать правую кнопку мыши
для активации меню.GQviewGQviewGQview это программа для работы с
изображениями. Вы можете просмотреть файл одним кликом, запустить
внешний редактор, получить миниатюры и многое другое. Еще
в нем есть слайд-шоу и несколько основных файловых операций. Вы можете
управлять коллекциями изображений и легко находить дубликаты.
В GQview изображения можно просматривать во
весь экран, его можно адаптировать к разным языкам.Если вы хотите установить пакет
GQview, выполните:&prompt.root; pkg_add -r gqviewЕсли пакет недоступен, или вы предпочитаете использовать коллекцию
портов, выполните:&prompt.root; cd /usr/ports/graphics/gqview
&prompt.root; make install cleanФинансовые программыЕсли по каким-то причинам вам нужно управлять своими финансами на
десктопе FreeBSD, есть несколько мощных и простых в
использовании приложений. Некоторые из них совместимы с широко
распространенными форматами файлов, такими как документы
Quicken
или Excel.В этом разделе говорится о следующих приложениях:Название приложенияПотребность в ресурсахУстановка из портовОсновные зависимостиGnuCashмалаятяжелаяGNOMEGnumericмалаятяжелаяGNOMEAbacusмалаялегкаяTcl/TkGnuCashGnuCashGnuCash это часть проекта
GNOME, который стремится предоставить
дружественные к пользователю приложения с широким набором функций.
С GnuCash вы можете отслеживать доходы и
расходы, банковские счета или акции. Интуитивный интерфейс программы
не мешает ей оставаться очень профессиональной.GnuCash предоставляет интеллектуальный
журнал записей, иерархическую систему учетных записей, множество
клавиатурных сокращений и метод автозавершения. Он может разбивать
одну транзакцию на несколько частей, детализируя ее.
GnuCash может импортировать и присоединять файлы
Quicken QIF. Он также работает с основными
международными форматами дат и валютами.Для установки GnuCash в вашу
систему, выполните:&prompt.root; pkg_add -r gnucashЕсли пакет недоступен, вы можете использовать коллекцию
портов:&prompt.root; cd /usr/ports/finance/gnucash
&prompt.root; make install cleanGnumericGnumericэлектронная таблицаGnumericGnumeric это электронная таблица, часть
графической среды GNOME.
Она использует удобное автоматическое угадывание
ввода пользователя в зависимости от формата ячейки и систему
автозаполнения для множества последовательностей. Она может
импортировать файлы нескольких популярных форматов, таких как
Excel,
Lotus 1-2-3, или
Quattro Pro.
Gnumeric работает с диаграммами через
math/guppi. В ней множество
встроенных функций, можно использовать обычные форматы ячеек:
число, валюта, дата, время и многие другие.Для установки Gnumeric из
пакета, введите:&prompt.root; pkg_add -r gnumericЕсли пакет недоступен, вы можете использовать коллекцию портов:&prompt.root; cd /usr/ports/math/gnumeric
&prompt.root; make install cleanAbacusAbacusэлектронная таблицаAbacusAbacus это небольшая и простая в
использовании программа электронных таблиц. В ней много
встроенных функций из нескольких областей, таких как статистика,
финансы и математика. Она может импортировать и экспортировать файлы
Excel. Abacus
также может печатать &postscript;.Для установки Abacus из пакета,
выполните:&prompt.root; pkg_add -r abacusЕсли пакет недоступен, вы можете использовать коллекцию портов,
выполнив:&prompt.root; cd /usr/ports/deskutils/abacus
&prompt.root; make install cleanИтогиХотя FreeBSD популярна в основном среди провайдеров из-за
стабильности и высокой производительности, на сегодняшний день она
вполне готова к использованию в качестве десктопа.
С несколькими тысячами приложений, доступных в виде
пакетов или
портов,
вы можете создать прекрасный десктоп, отвечающий всем вашим
потребностям.После первой установки десктопа, вы можете попробовать сделать шаг
вперед с misc/instant-workstation.
Этот мета-порт позволяет вам собрать типичный набор
портов для рабочей станции. Вы можете настроить его, редактируя
/usr/ports/misc/instant-workstation/Makefile.
Следуйте синтаксису существующего файла при добавлении и удалении
портов, соберите порт как обычно. В конечном итоге, вы можете
создать большой пакет, соответствующий вашему собственному десктопу,
и установить его на другие рабочие станции!Вот небольшой обзор всех графических приложений, о которых говорилось
в этой главе:Имя приложенияИмя пакетаИмя портаMozillamozillawww/mozillaOperalinux-operawww/linux-operaFirefoxfirefoxwww/firefoxKOfficekoffice-kde3editors/koffice-kde3AbiWordabiwordeditors/abiwordThe GIMPgimpgraphics/gimp1OpenOffice.orgopenofficeeditors/openoffice&acrobat.reader;acroreadprint/acroread7gvgvprint/gvXpdfxpdfgraphics/xpdfGQviewgqviewgraphics/gqviewGnuCashgnucashfinance/gnucashGnumericgnumericmath/gnumericAbacusabacusdeskutils/abacus
diff --git a/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml b/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml
index 674a0eb1a4..ecfa6c3f24 100644
--- a/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/linuxemu/chapter.sgml
@@ -1,3460 +1,3469 @@
JimMockРеструктурировал и частично обновил Brian N.HandyПервоначально предоставил RichMurpheyАлексейДокучаевПеревод на русский язык: ВалерийКравчукПеревод на русский язык и редактирование: Двоичная совместимость с LinuxКраткий обзорLinux - бинарная совместимостьдвоичная совместимостьLinuxFreeBSD предоставляет двоичную совместимость с несколькими другими
&unix;–подобными операционными системами, включая Linux.
Возможно, вы спрашиваете себя, зачем FreeBSD нужно уметь работать
с приложениями, написанными для Linux? Ответ на этот вопрос достаточно
прост: многие компании и разработчики производят программное
обеспечение только для Linux, так как эта операционная система очень
быстро завоевала огромную популярность в компьютерном мире.
Пользователям же FreeBSD приходится обращаться к этим компаниям и
разработчикам с просьбами выпустить версии своих программ специально
для FreeBSD. Проблема в том, что большинство производителей
программного обеспечения не осознают, насколько бы увеличился их рынок
сбыта, выпускай они также FreeBSD–версии, и продолжают разрабатывать
только под Linux. Что же делать пользователям FreeBSD? В этой
ситуации на помощь приходит двоичная совместимость FreeBSD с
Linux.Вкратце, эта совместимость позволяет пользователям FreeBSD
работать с 90% приложений для Linux без каких-либо модификаций
последних. Среди этих приложений:
&staroffice;, Linux–версия
&netscape;,
&adobe; &acrobat;,
RealPlayer,
VMware,
&oracle;, WordPerfect,
Doom, Quake,
и многие другие. Есть сведения, что в некоторых ситуациях эти
Linux–программы показывали более высокую производительность при
работе под FreeBSD, чем под Linux.Конечно, существуют некоторые особенности Linux, которые не
поддерживаются в полной мере под FreeBSD. Например, не будут
работать приложения Linux, использующие специфичные
вызовы &i386;, такие как переключение в виртуальный режим 8086.При чтении этой главы вы узнаете:Как включить двоичную совместимость с Linux в
вашей системе.Как установить дополнительные совместно используемые
(shared) библиотеки Linux.Как установить приложения Linux в систему FreeBSD.Детали реализации совместимости с Linux в ОС FreeBSD.Перед прочтением этой главы вам потребуется:Узнать как устанавливать дополнительное
программное обеспечение сторонних разработчиков
().УстановкаKLD (загружаемый объект ядра)Двоичная совместимость с Linux не включена по умолчанию.
Простейший способ включения этой функциональности заключается
в загрузке KLD–объекта linux (Kernel
LoaDable object). Вы можете загрузить этот модуль,
набрав следующее, как пользователь root:&prompt.root; kldload linuxЕсли вы хотите, чтобы совместимость с Linux была включена
постоянно, необходимо добавить в /etc/rc.conf
следующую строку:linux_enable="YES"Для проверки того, загружен ли модуль, может быть использована
команда &man.kldstat.8;:&prompt.user; kldstat
Id Refs Address Size Name
1 2 0xc0100000 16bdb8 kernel
7 1 0xc24db000 d000 linux.koпараметры ядраLINUXЕсли по какой-либо причине вы не хотите или не можете загрузить
KLD, вы можете статически включить поддержку Linux в ядро,
добавив опцию options COMPAT_LINUX в файл
конфигурации ядра. Затем соберите и установите новое ядро,
следуя описанию в .Установка необходимых библиотек LinuxLinuxустановка библиотек LinuxУстановить все требуемые библиотеки можно двумя путями: либо
используя порт linux_base,
либо установив их вручную.Установка с помощью порта linux_baseколлекция портовЭтот метод является самым простым, и мы рекомендуем
воспользоваться именно им. Процесс аналогичен установке любого
другого порта из Коллекции Портов.
Просто выполните следующие команды:&prompt.root; cd /usr/ports/emulators/linux_base
&prompt.root; make install distcleanТеперь вы можете работать с приложениями для Linux. Некоторые
программы, возможно, будут сообщать о несоответствии подверсий
некоторых системных библиотек. Однако обычно это не
вызывает каких-либо неудобств.Возможно наличие нескольких версий порта emulators/linux_base, соответствующих
различным версиям разных дистрибутивов Linux. Вы должны
установить порт, наиболее близко соответствующий требованиям
приложений Linux, которые будут установлены.Установка библиотек вручнуюЕсли у вас не установлена коллекция портов, можно
установить требуемые библиотеки вручную. Вам понадобятся
совместно используемые библиотеки для Linux, которые нужны программам, и
runtime–компоновщик. Вам также потребуется создать теневой
корневой каталог, /compat/linux, где
будут расположены Linux–библиотеки. Если Linux–программе нужно
загрузить какую–либо совместно используемую библиотеку, FreeBSD сперва будет
пытаться найти ее в этом дереве. Так, если программа загружает,
например, /lib/libc.so, FreeBSD попытается
открыть /compat/linux/lib/libc.so, и если
такого файла не существует, будет пытаться открыть
/lib/libc.so. Разделяемые библиотеки должны
находиться в теневом дереве, а не в каталогах, выдаваемых
загрузчиком Linux ld.so.Обычно вам придется добавлять совместно используемые библиотеки, от
которых зависят Linux–программы, только при нескольких первых
установках приложений Linux на вашу систему FreeBSD. По мере
работы, у вас в системе накопится достаточный набор совместно используемых
библиотек Linux для запуска новых Linux-программ без
дополнительных действий.Как установить дополнительные совместно используемые библиотекисовместно используемые библиотекиЧто, если при установленном linux_base
порте ваше приложение все равно сообщает об отсутствии необходимой
библиотеки? Как узнать, какая именно нужна библиотека и где ее
взять? В принципе, есть два способа. Вам необходимо иметь
привилегии пользователя root для их
осуществления.Если у вас есть доступ к машине, на которой установлен Linux,
узнайте, какие библиотеки использует Linux–приложение, и просто
скопируйте из на свою машину. Рассмотрим следующий пример:Допустим, вы скачали по FTP Linux–версию
Doom и установили ее на Linux–машине.
Вы можете узнать, какие совместно используемые библиотеки нужны
Doom, с помощью команды
ldd linuxdoom:&prompt.user; ldd linuxdoom
libXt.so.3 (DLL Jump 3.1) => /usr/X11/lib/libXt.so.3.1.0
libX11.so.3 (DLL Jump 3.1) => /usr/X11/lib/libX11.so.3.1.0
libc.so.4 (DLL Jump 4.5pl26) => /lib/libc.so.4.6.29символические ссылкиВам потребуются все файлы, перечисленные в последнем
столбце. Скопируйте их в дерево /compat/linux
на вашей системе, а также создайте символические ссылки на эти
файлы с именами из первого столбца, соответственно. В итоге,
у вас в системе FreeBSD должны быть следующие файлы:/compat/linux/usr/X11/lib/libXt.so.3.1.0
/compat/linux/usr/X11/lib/libXt.so.3 -> libXt.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3.1.0
/compat/linux/usr/X11/lib/libX11.so.3 -> libX11.so.3.1.0
/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Учтите, что если у вас уже есть совместно используемая библиотека
Linux с соответствующим первому столбцу результатов
ldd основным номером версии, вам не
обязательно копировать файл, указанный в последнем столбце,
в вашу систему. Уже существующий файл должен подойти.
Рекомендуется, однако, все равно скопировать совместно используемую
библиотеку, если ее версия новее. Предыдущую версию
библиотеки можно удалить, если вы создали символическую ссылку
на новую. Итак, если у вас в системе есть следующие
библиотеки:/compat/linux/lib/libc.so.4.6.27
/compat/linux/lib/libc.so.4 -> libc.so.4.6.27и какое-либо приложение требует библиотеку более поздней
версии, судя по результатам команды
ldd:libc.so.4 (DLL Jump 4.5pl26) -> libc.so.4.6.29Если версии немного отличаются в последней цифре,
копировать /lib/libc.so.4.6.29
необязательно, так как программа, скорее всего, будет
нормально работать и с немного устаревшей версией.
Тем не менее, вы можете заменить
libc.so:/compat/linux/lib/libc.so.4.6.29
/compat/linux/lib/libc.so.4 -> libc.so.4.6.29
Символические ссылки важны только
для Linux–программ. Runtime–компоновщик FreeBSD
самостоятельно подберет правильные номера версий библиотек,
и вам не нужно об этом беспокоиться.
Установка двоичных файлов Linux ELFLinuxдвоичные файлы ELFДля ELF-файлов иногда требуется сделать так называемый
branding (маркировать его). Если попытаться
- запустить немаркированный ELF-файл, вы получите следующее сообщение
+ запустить не маркированный ELF-файл, вы получите следующее сообщение
об ошибке:&prompt.user; ./моя-linux-elf-программа
ELF binary type not known
AbortЧтобы помочь ядру FreeBSD отличить ELF-файл FreeBSD от
двоичного файла Linux, используется утилита &man.brandelf.1;:&prompt.user; brandelf -t Linux моя-linux-elf-программаGNU toolchainВ настоящее время набор инструментальных средств GNU
(GNU toolchain) помещает необходимую маркировочную информацию
в двоичные ELF-файлы автоматически, поэтому необходимость
в этом действии возникает всё реже.Конфигурирование распознавания имен хостовЕсли DNS не работает или вы получаете это сообщение:resolv+: "bind" is an invalid keyword resolv+:
"hosts" is an invalid keywordто вам нужно создать (изменить) файл
/compat/linux/etc/host.conf, содержащий:order hosts, bind
multi onТаким образом, вы указываете, то сначала производится поиск в
файле /etc/hosts, а только затем запрашивается
DNS. Когда файл /compat/linux/etc/host.conf
отсутствует, Linux–приложения находят файл
/etc/host.conf для FreeBSD и сообщают о
несовместимом синтаксисе. Если вы не настраивали сервер имен
с помощью файла /etc/resolv.conf, уберите
bind из файла
/compat/linux/etc/host.conf.
- Murray
- Stokely
- Обновил для Mathematica 4.X
-
-
-
-
- Bojan
- Bistrovic
- Объединено с работой
+ Boris
+ Hollas
+ Обновил для Mathematica 5.X Установка &mathematica;приложенияMathematicaНиже описано, как установить Linux–версию пакета
- &mathematica; 4.X
+ &mathematica; 5.X
на систему FreeBSD.
- Linux–версия &mathematica; отлично
- работает под FreeBSD, однако
- выполняемые файлы, поставляемые Wolfram, должны быть маркированы
- утилитой &man.brandelf.1;, чтобы FreeBSD знала о необходимости
- использования Linux ABI для их выполнения.
-
- Linux–версию пакета &mathematica;
+ Linux версия &mathematica;
или &mathematica; for Students
можно заказать непосредственно в компании Wolfram по адресу
.
- Маркировка двоичных файлов Linux
-
- Двоичные файлы Linux находятся в каталоге
- Unix на компакт-диске с дистрибутивом
- &mathematica; от Wolfram.
- Скопируйте этот каталог (вместе со всеми подкаталогами) на ваш
- жесткий диск, чтобы промаркировать (утилитой &man.brandelf.1;)
- двоичные файлы Linux перед инсталляцией:
-
- &prompt.root; mount /cdrom
-&prompt.root; cp -rp /cdrom/Unix/ /localdir/
-&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Kernel/Binaries/Linux/*
-&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/FrontEnd/Binaries/Linux/*
-&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Installation/Binaries/Linux/*
-&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Graphics/Binaries/Linux/*
-&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/Converters/Binaries/Linux/*
-&prompt.root; brandelf -t Linux /localdir/Files/SystemFiles/LicenseManager/Binaries/Linux/mathlm
-&prompt.root; cd /localdir/Installers/Linux/
-&prompt.root; ./MathInstaller
-
- Вы также можете установить марку ELF Linux по умолчанию для всех
- немаркированных двоичных файлов с помощью команды:
+ Использование установщика &mathematica;
+
+ Сначала вы должны указать &os;, что Linux бинарники от
+ &mathematica; используют Linux
+ ABI. Самый простой путь сделать это—установить марку
+ ELF Linux по умолчанию для всех немаркированных двоичных
+ файлов с помощью команды:&prompt.root; sysctl kern.fallback_elf_brand=3
- FreeBSD будет считать, что все немаркированные двоичные
+ &os; будет считать, что все немаркированные двоичные
ELF-файлы используют Linux ABI, и вы сможете
запустить MathInstaller прямо с CDROM.
+
+ Теперь, скопируйте файл MathInstaller на
+ ваш жёсткий диск:
+
+ &prompt.root; mount /cdrom
+&prompt.root; cp /cdrom/Unix/Installers/Linux/MathInstaller /localdir/
+
+ и в этом файле замените /bin/sh в
+ в первой строке на /compat/linux/bin/sh.
+ Этим мы убедимся, что установщик будет выполняться Linux
+ версией &man.sh.1;. Дальше, замените все вхождения
+ Linux) на FreeBSD) с
+ помощью текстового редактора или с помощью скрипта,
+ представленного ниже, в следующей главе. Это укажет
+ установщику &mathematica;,
+ вызывающему uname -s для определения
+ операционной системы, относиться к &os;, как к Linux
+ подобной операционной системе. Теперь, запуск
+ MathInstaller установит
+ &mathematica;.
- Получение пароля к пакету &mathematica;
+ Modifying the &mathematica; Executables
+
+ Скрипты командной оболочки, которые
+ &mathematica; создала во
+ время установки должны быть измененены перед тем, как
+ вы сможете использовать их. Если вы выбрали
+ /usr/local/bin в
+ качестве директории для помещения исполняемых файлов
+ &mathematica;, то вы обнаружите
+ в этом каталоге ссылки на файлы math,
+ mathematica, Mathematica, и
+ MathKernel. В каждом из них замените
+ Linux) на FreeBSD) с
+ помощью текстового редактора или с помощью следующего скрипта
+ командной оболочки:
+
+ #!/bin/sh
+cd /usr/local/bin
+for i in math mathematica Mathematica MathKernel
+ do sed 's/Linux)/FreeBSD)/g' $i > $i.tmp
+ sed 's/\/bin\/sh/\/compat\/linux\/bin\/sh/g' $i.tmp > $i
+ rm $i.tmp
+ chmod a+x $i
+done
+
- Прежде чем запускать &mathematica;,
- вам необходимо получить от компании Wolfram пароль, соответствующий
- идентификатору машины.
+
+ Получение пароля к пакету &mathematica;EthernetMAC-адрес
- После того, как вы установили необходимые библиотеки и
- распаковали файлы &mathematica;,
- получите идентификатор машины, запустив
- программу mathinfo в
- инсталляционном каталоге. Идентификатор машины зависит от
- MAC-адреса вашей первой Ethernet-карты.
-
- &prompt.root; cd /localdir/Files/SystemFiles/Installation/Binaries/Linux
-&prompt.root; mathinfo
-disco.example.com 7115-70839-20412
+ Когда вы запустите &mathematica;
+ в первый раз, у вас будет запрошен пароль. Если вы еще не получили
+ пароль от Wolfram, запустите программу mathinfo
+ в директории установки для получения вашего machine ID.
+ Этот machine ID основан исключительно на MAC адресе вашей первичной
+ Ethernet карты, так что, вы не сможете использовать вашу копию
+ &mathematica; на разных машинах.При регистрации по электронной почте, по телефону или по факсу
- вы сообщаете идентификатор машины, а в ответ
- получаете пароль, состоящий из нескольких групп чисел. Введите
- этот пароль при первом запуске
- &mathematica;, как и для
- любой другой платформы.
+ вы сообщаете machine ID, а в ответ
+ получаете пароль, состоящий из нескольких групп чисел.Использование интерфейса &mathematica; по сети&mathematica; использует специальные
шрифты для отображения некоторых символов, которые отсутствуют в
стандартных шрифтах (символы интегралов, сумм, греческий алфавит и
другие). Протокол X требует, чтобы эти шрифты были установлены
локально. Это означает, что вы должны
скопировать эти шрифты с компакт-диска или хоста, на котором
установлена &mathematica;, на вашу
машину. Обычно эти шрифты находятся в каталоге
/cdrom/Unix/Files/SystemFiles/Fonts
компакт-диска или в каталоге
/usr/local/mathematica/SystemFiles/Fonts на
диске. Собственно файлы со шрифтами находятся в подкаталогах
Type1 и X. О том, как их
использовать, читайте ниже.Можно просто скопировать их в один из существующих каталогов
шрифтов в каталоге /usr/X11R6/lib/X11/fonts.
В этом случае придётся отредактировать файл
fonts.dir, добавив в него названия шрифтов и
изменив число шрифтов в первой строке. Можно также запустить
программу &man.mkfontdir.1;, находясь в том каталоге,
куда вы скопировали шрифты.Есть альтернативный способ: скопировать каталоги в
/usr/X11R6/lib/X11/fonts:&prompt.root; cd /usr/X11R6/lib/X11/fonts
&prompt.root; mkdir X
&prompt.root; mkdir MathType1
&prompt.root; cd /cdrom/Unix/Files/SystemFiles/Fonts
&prompt.root; cp X/* /usr/X11R6/lib/X11/fonts/X
&prompt.root; cp Type1/* /usr/X11R6/lib/X11/fonts/MathType1
&prompt.root; cd /usr/X11R6/lib/X11/fonts/X
&prompt.root; mkfontdir
&prompt.root; cd ../MathType1
&prompt.root; mkfontdirТеперь добавьте каталоги с новыми шрифтами в путь к
шрифтам:&prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/X
&prompt.root; xset fp+ /usr/X11R6/lib/X11/fonts/MathType1
&prompt.root; xset fp rehashЕсли вы используете сервер &xorg;,
то можно просто прописать эти
каталоги в файле xorg.conf.Для сервера &xfree86;,
файл конфигурации XF86Config.шрифтыЕсли на вашем компьютере нет каталога
/usr/X11R6/lib/X11/fonts/Type1, замените
MathType1 на Type1 в
предыдущем примере.AaronKaplanПредоставил RobertGetschmannБлагодарности: Установка &maple;приложенияMaple&maple; — коммерческая
математическая программа, аналогичная
&mathematica;. Это программное обеспечение
надо купить у , а потом
зарегистрироваться там для получения файла лицензии. Для установки
этого программного обеспечения в ОС FreeBSD используется следующая
последовательность простых шагов.Выполните скрипт командного интерпретатора
INSTALL из дистрибутива. Выберите
опцию RedHat, когда будет предложено программой
установки. Обычно установка выполняется в каталог /usr/local/maple.Если вы этого ещё не сделали, купите лицензию на
&maple; в компании Maple Waterloo
Software ()
и скопируйте ее в файл
/usr/local/maple/license/license.dat.Установите диспетчер лицензий
FLEXlm, выполнив скрипт установки
INSTALL_LIC, входящий в состав
&maple;. Укажите основное имя хоста
вашей машины для сервера лицензий.Исправьте файл
/usr/local/maple/bin/maple.system.type
с помощью следующего патча: ----- snip ------------------
*** maple.system.type.orig Sun Jul 8 16:35:33 2001
--- maple.system.type Sun Jul 8 16:35:51 2001
***************
*** 72,77 ****
--- 72,78 ----
# the IBM RS/6000 AIX case
MAPLE_BIN="bin.IBM_RISC_UNIX"
;;
+ "FreeBSD"|\
"Linux")
# the Linux/x86 case
# We have two Linux implementations, one for Red Hat and
----- snip end of patch -----Учтите, что после "FreeBSD"|\ не должно
быть никаких пробелов.Этот патч заставляет &maple;
распознавать FreeBSD как тип Linux-системы.
Скрипт командного интерпретатора bin/maple
вызывает скрипт bin/maple.system.type,
который, в свою очередь, вызывает uname -a для
получения имени операционной системы. В зависимости от имени ОС
он определяет, какие двоичные модули использовать.Запустите сервер лицензий.Следующий скрипт, установленный в файл
/usr/local/etc/rc.d/lmgrd.sh, обеспечивает
удобный способ запуска lmgrd: ----- snip ------------
#! /bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/X11R6/bin
PATH=${PATH}:/usr/local/maple/bin:/usr/local/maple/FLEXlm/UNIX/LINUX
export PATH
LICENSE_FILE=/usr/local/maple/license/license.dat
LOG=/var/log/lmgrd.log
case "$1" in
start)
- lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2
+ lmgrd -c ${LICENSE_FILE} 2>> ${LOG} 1>&2
echo -n " lmgrd"
;;
stop)
- lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2
+ lmgrd -c ${LICENSE_FILE} -x lmdown 2>> ${LOG} 1>&2
;;
*)
- echo "Usage: `basename $0` {start|stop}" 1>&2
+ echo "Usage: `basename $0` {start|stop}" 1>&2
exit 64
;;
esac
exit 0
----- snip ------------Выполните тестовый запуск
&maple;:&prompt.user; cd /usr/local/maple/bin
&prompt.user; ./xmapleПрограмма должна запуститься и работать. Не забудьте написать
в Maplesoft и сообщить, что хотели бы видеть версию специально
для FreeBSD!Типичные проблемыРаботать с диспетчером лицензий
FLEXlm может быть непросто.
Дополнительную документацию по нему можно найти на сайте .lmgrd очень требователен к
файлу лицензии и выдает дамп памяти при выявлении любых проблем.
Правильный файл лицензии должен иметь следующий вид:# =======================================================
# License File for UNIX Installations ("Pointer File")
# =======================================================
SERVER chillig ANY
#USE_SERVER
VENDOR maplelmg
FEATURE Maple maplelmg 2000.0831 permanent 1 XXXXXXXXXXXX \
PLATFORMS=i86_r ISSUER="Waterloo Maple Inc." \
ISSUED=11-may-2000 NOTICE=" Technische Universitat Wien" \
SN=XXXXXXXXXСерийный номер и ключ забиты символами 'X'.
chillig – имя хоста.Редактирование файла лицензий возможно, если только не
трогать строку FEATURE (которая защищена
лицензионным ключом).Установка &matlab;приложенияMATLABЭтот документ описывает процесс установки Linux-версии
&matlab; версии 6.5 на систему
&os;. Эта программа работает вполне нормально, за исключением
&java.virtual.machine; (см.
).Linux-версию &matlab; можно приобрести
непосредственно в компании The MathWorks на сайте . Не забудьте получить
файл лицензии или инструкции по его созданию. По ходу дела дайте
знать производителю, что хотели бы увидеть версию их ПО специально
для &os;.Процесс установки &matlab;Для установки &matlab; выполните
следующие шаги:Вставьте инсталляционный CD и смонтируйте его.
Станьте пользователем root, как рекомендует
скрипт установки. Для запуска скрипта установки наберите:&prompt.root; /compat/linux/bin/sh /cdrom/installЗапускается графический инсталлятор. Если вы получаете
сообщения о невозможности открыть дисплей, наберите
setenv HOME ~USER,
где USER – пользователь, от
имени которого выполнена команда &man.su.1;.
При запросе корневого каталога
&matlab;, наберите:
/compat/linux/usr/local/matlab.Чтобы упростить набор остальных команд в ходе установки,
выполните в командном интерпретаторе следующую команду:
set MATLAB=/compat/linux/usr/local/matlabОтредактируйте файл лицензии в соответствии с инструкциями
в полученной лицензии &matlab;.Этот файл можно подготовить заранее с помощью любого
текстового редактора и скопировать его в
$MATLAB/license.dat до того, как
инсталлятор попросит его отредактировать.Завершите процесс установки.В этот момент ваша установка &matlab;
завершена. Следующие шаги позволяют связать
эту программу с вашей системой &os;.Запуск диспетчера лицензийСоздайте символические ссылки для скриптов диспетчера
лицензий:&prompt.root; ln -s $MATLAB/etc/lmboot /usr/local/etc/lmboot_TMW
&prompt.root; ln -s $MATLAB/etc/lmdown /usr/local/etc/lmdown_TMWСоздайте файл запуска
/usr/local/etc/rc.d/flexlm.sh.
Представленный ниже пример – измененная версия входящего
в дистрибутив файла $MATLAB/etc/rc.lm.glnx86.
Изменены местонахождения файлов и диспетчер лицензий запускается
под эмулятором Linux.#!/bin/sh
case "$1" in
start)
if [ -f /usr/local/etc/lmboot_TMW ]; then
/compat/linux/bin/sh /usr/local/etc/lmboot_TMW -u username && echo 'MATLAB_lmgrd'
fi
;;
stop)
if [ -f /usr/local/etc/lmdown_TMW ]; then
/compat/linux/bin/sh /usr/local/etc/lmdown_TMW > /dev/null 2>&1
fi
;;
*)
echo "Usage: $0 {start|stop}"
exit 1
;;
esac
exit 0Этот файл надо сделать выполняемым:&prompt.root; chmod +x /usr/local/etc/rc.d/flexlm.shВы также должны заменить username
именем пользователя в вашей системе (но не
root).Запустите диспетчер лицензий с помощью команды:&prompt.root; /usr/local/etc/rc.d/flexlm.sh startСвязь с &java; Runtime EnvironmentИзмените ссылку &java; Runtime
Environment (JRE) так, чтобы он ссылалась на версию, работающую
в &os;:&prompt.root; cd $MATLAB/sys/java/jre/glnx86/
&prompt.root; unlink jre; ln -s ./jre1.1.8 ./jreСоздание скрипта запуска &matlab;Поместите следующий скрипт запуска в файл
/usr/local/bin/matlab:
#!/bin/sh
/compat/linux/bin/sh /compat/linux/usr/local/matlab/bin/matlab "$@"Затем выполните команду
chmod +x /usr/local/bin/matlab.В зависимости от версии
emulators/linux_base, при
выполнении этого скрипта могут быть выданы сообщения об ошибках.
Чтобы избежать этого, отредактируйте файл
/compat/linux/usr/local/matlab/bin/matlab
и измените строку вида:if [ `expr "$lscmd" : '.*->.*'` -ne 0 ]; then(в версии 13.0.1 это строка 410) на следующую строку:if test -L $newbase; thenСоздание скрипта остановки &matlab;Следующие действия необходимы для решения проблемы с
некорректным завершением работы &matlab;.Создайте файл
$MATLAB/toolbox/local/finish.m и поместите
в него одну строку:! $MATLAB/bin/finish.sh$MATLAB — литерал.В том же каталоге находятся файлы
finishsav.m и
finishdlg.m, которые позволяют
сохранять рабочее пространство перед выходом. Если вы
используете любой из них, вставьте представленную выше
строку сразу после команды save.Создайте файл
$MATLAB/bin/finish.sh, который будет
содержать следующий скрипт:#!/usr/compat/linux/bin/sh
(sleep 5; killall -1 matlab_helper) &
exit 0Сделайте этот файл выполняемым:&prompt.root; chmod +x $MATLAB/bin/finish.shИспользование &matlab;В этот момент все готово для выполнения команды
matlab и начала использования этой программы.MarcelMoolenaarПредоставил Установка &oracle;приложенияOracleВведениеНиже описан процесс установки &oracle;
8.0.5 и &oracle; 8.0.5.1 Enterprise
Edition для Linux на систему FreeBSD.Установка Linux–средыУдостоверьтесь, что порты
emulators/linux_base и
devel/linux_devtools установлены
на вашей системе. Если у вас возникнут трудности с этими портами,
воспользуйтесь пакетами или более ранними их версиями из
Коллекции Портов.Если вы хотите использовать интеллектуальный агент (intelligent
agent), придется также установить пакет TCL от Red Hat:
tcl-8.0.3-20.i386.rpm. Универсальная команда
для установки пакетов с помощью официального порта
RPM
(archivers/rpm):&prompt.root; rpm -i --ignoreos --root /compat/linux --dbpath /var/lib/rpm пакетУстановка этого пакета должна
пройти без каких-либо ошибок.Создание среды &oracle;Прежде чем вы сможете установить
&oracle;, необходимо настроить
соответствующую среду. В этом документе описано, что
специально нужно сделать, чтобы запустить
&oracle; для Linux под FreeBSD –
это не пересказ официального руководства по установке
&oracle;.Настройка ядранастройка ядраКак описано в руководстве по установке
&oracle;, необходимо
установить максимальный размер совместно используемой (shared) памяти. Не используйте
SHMMAX под FreeBSD. SHMMAX
просто вычисляется, исходя из SHMMAXPGS и
PGSIZE. Следовательно, нужно задавать
SHMMAXPGS. За информацией о прочих опциях
обратитесь к официальному руководству. Пример настроек:options SHMMAXPGS=10000
options SHMMNI=100
options SHMSEG=10
options SEMMNS=200
options SEMMNI=70
options SEMMSL=61Установите эти опции в зависимости от того, как и для чего
вы будете использовать &oracle;.Не забудьте добавить следующие строки в файл конфигурации
ядра:options SYSVSHM # совместно используемая память SysV
options SYSVSEM # семафоры SysV
options SYSVMSG # межпроцессное взаимодействие SysVУчетная запись &oracle;Создайте специальную учетную запись
oracle, как и любую другую учетную запись.
Единственное отличие в том, что для oracle
необходимо указать командный интерпретатор Linux.
Добавьте /compat/linux/bin/bash в
/etc/shells и установите для
oracle командный интерпретатор
/compat/linux/bin/bash.Переменные средыКроме стандартных переменных среды
&oracle;, таких как
ORACLE_HOME и ORACLE_SID, вам нужно
будет установить следующие переменные среды:ПеременнаяЗначениеLD_LIBRARY_PATH$ORACLE_HOME/libCLASSPATH$ORACLE_HOME/jdbc/lib/classes111.zipPATH/compat/linux/bin
/compat/linux/sbin
/compat/linux/usr/bin
/compat/linux/usr/sbin
/bin
/sbin
/usr/bin
/usr/sbin
/usr/local/bin
$ORACLE_HOME/binЖелательно устанавливать все переменные среды в файле
.profile. Вот реальный пример:ORACLE_BASE=/oracle; export ORACLE_BASE
ORACLE_HOME=/oracle; export ORACLE_HOME
LD_LIBRARY_PATH=$ORACLE_HOME/lib
export LD_LIBRARY_PATH
ORACLE_SID=ORCL; export ORACLE_SID
ORACLE_TERM=386x; export ORACLE_TERM
CLASSPATH=$ORACLE_HOME/jdbc/lib/classes111.zip
export CLASSPATH
PATH=/compat/linux/bin:/compat/linux/sbin:/compat/linux/usr/bin
PATH=$PATH:/compat/linux/usr/sbin:/bin:/sbin:/usr/bin:/usr/sbin
PATH=$PATH:/usr/local/bin:$ORACLE_HOME/bin
export PATHУстановка &oracle;Из-за небольшой несовместимости с Linux–эмулятором, вам нужно
будет создать подкаталог .oracle в каталоге
/var/tmp прежде, чем можно будет начать
установку. Сделайте ее владельцем пользователя
oracle.
Если вы все сделали правильно, то установка
&oracle; должна пройти без проблем. Если
какие-либо трудности все же возникли, проверьте еще раз все
конфигурационные файлы и/или целостность дистрибутива
&oracle;. После окончания установки
&oracle; примените патчи,
описанные в следующих двух подразделах.Одна из часто возникающих проблем — неправильно
установленный адаптер TCP-протокола. В результате, невозможно
запустить процессы прослушивания TCP. Вот решение проблемы:&prompt.root; cd $ORACLE_HOME/network/lib
&prompt.root; make -f ins_network.mk ntcontab.o
&prompt.root; cd $ORACLE_HOME/lib
&prompt.root; ar r libnetwork.a ntcontab.o
&prompt.root; cd $ORACLE_HOME/network/lib
&prompt.root; make -f ins_network.mk installНе забудьте повторно запустить root.sh!Изменение root.shПри установке &oracle;
необходимо выполнить некоторые действия от имени
пользователя root. Они записаны в
скрипте командного интерпретатора root.sh,
который находится в каталоге orainst.
Перед запуском, примените к нему следующий патч (исправляет
местонахождение утилиты chown), либо запускайте его в командном
интерпретаторе Linux.*** orainst/root.sh.orig Tue Oct 6 21:57:33 1998
--- orainst/root.sh Mon Dec 28 15:58:53 1998
***************
*** 31,37 ****
# This is the default value for CHOWN
# It will redefined later in this script for those ports
# which have it conditionally defined in ss_install.h
! CHOWN=/bin/chown
#
# Define variables to be used in this script
--- 31,37 ----
# This is the default value for CHOWN
# It will redefined later in this script for those ports
# which have it conditionally defined in ss_install.h
! CHOWN=/usr/sbin/chown
#
# Define variables to be used in this scriptЕсли вы устанавливаете &oracle;
не с компакт–диска, можно изменить исходный файл
root.sh. Он называется
rthd.sh и находится в каталоге
orainst.Изменение genclntshСкрипт genclntsh используется для того,
чтобы создать единую совместно используемую клиентскую библиотеку,
которая используется для создания демонстраций. Примените
следующий патч, чтобы закомментировать определение переменной
PATH:*** bin/genclntsh.orig Wed Sep 30 07:37:19 1998
--- bin/genclntsh Tue Dec 22 15:36:49 1998
***************
*** 32,38 ****
#
# Explicit path to ensure that we're using the correct commands
#PATH=/usr/bin:/usr/ccs/bin export PATH
! PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# each product MUST provide a $PRODUCT/admin/shrept.lst
--- 32,38 ----
#
# Explicit path to ensure that we're using the correct commands
#PATH=/usr/bin:/usr/ccs/bin export PATH
! #PATH=/usr/local/bin:/bin:/usr/bin:/usr/X11R6/bin export PATH
#
# each product MUST provide a $PRODUCT/admin/shrept.lstЗапуск &oracle;Теперь, если вы все сделали правильно, то можете использовать
&oracle; так же, как и в системе
Linux.HolgerKippПредоставил ValentinoVaschettoИсходную версию преобразовал в SGML Установка &sap.r3;приложенияSAP R/3Инсталляции систем &sap; на базе FreeBSD
не будут поддерживаться службой поддержки &sap; — они
предоставляют поддержку только на сертифицированных платформах.ПредисловиеЭтот документ описывает возможный способ установки системы
&sap.r3; с
СУБД &oracle; Database на машине с ОС
FreeBSD, включая установку FreeBSD и
&oracle;. Будут описаны две
разные конфигурации:&sap.r3; 4.6B (IDES) с
&oracle; 8.0.5 на FreeBSD 4.3-STABLE&sap.r3; 4.6C с
&oracle; 8.1.7 на FreeBSD 4.5-STABLEХотя в этом документе мы пытаемся подробно описать все важные
шаги, он не заменяет руководства по установке
&oracle; и
&sap.r3;.По специфическим вопросам &sap; и
&oracle; обратитесь к документации,
поставляемой в составе &sap.r3;
Linux edition, а также к другим источникам информации об
&oracle; и
&sap; OSS.Программное обеспечениеДля установки &sap; были использованы
следующие диски CD-ROM:&sap.r3; 4.6B, &oracle; 8.0.5ИмяНомерОписаниеKERNEL51009113SAP Kernel Oracle /
Installation / AIX, Linux, SolarisRDBMS51007558Oracle / RDBMS 8.0.5.X /
LinuxEXPORT151010208IDES / DB-Export /
Диск 1 из 6EXPORT251010209IDES / DB-Export /
Диск 2 из 6EXPORT351010210IDES / DB-Export /
Диск 3 из 6EXPORT451010211IDES / DB-Export /
Диск 4 из 6EXPORT551010212IDES / DB-Export /
Диск 5 из 6EXPORT651010213IDES / DB-Export /
Диск 6 из 6Кроме того, мы использовали CD &oracle; 8
Server (Опытная версия 8.0.5 для Linux,
ядро версии 2.0.33), который не обязательно понадобится, и
FreeBSD 4.3-STABLE (она вышла всего через несколько дней после 4.3
RELEASE).&sap.r3; 4.6C SR2, &oracle; 8.1.7ИмяНомерОписаниеKERNEL51014004SAP Kernel Oracle /
SAP Kernel Version 4.6D / DEC, LinuxRDBMS51012930Oracle 8.1.7/ RDBMS /
LinuxEXPORT151013953Release 4.6C SR2 / Export
/ Диск 1 из 4EXPORT151013953Release 4.6C SR2 / Export
/ Диск 2 из 4EXPORT151013953Release 4.6C SR2 / Export
/ Диск 3 bp 4EXPORT151013953Release 4.6C SR2 / Export
/ Диск 4 из 4LANG151013954Release 4.6C SR2 /
Language / DE, EN, FR / Диск 1 из 3В зависимости от языков, которые необходимо установить,
могут потребоваться дополнительные CD. Здесь мы использовали
только немецкий и английский языки, поэтому потребовался только
первый языковой CD. Обратите внимание, что номера всех
EXPORT CD идентичны. Все три языковых CD тоже имеют один номер
(это отличается от нумерации CD в версии 4.6B IDES). На момент
написания этого раздела (20.03.2002) установленное ПО работало
на FreeBSD 4.5-STABLE.Примечания по &sap;Прочитайте следующие документы перед установкой
&sap.r3; — они пригодятся в ходе
установки:&sap.r3; 4.6B, &oracle; 8.0.5НомерНазвание0171356SAP Software on Linux: Essential
Comments0201147INST: 4.6C R/3 Inst. on UNIX -
Oracle0373203Update / Migration Oracle 8.0.5 -->
8.0.6/8.1.6 LINUX0072984Release of Digital UNIX 4.0B for
Oracle0130581R3SETUP step DIPGNTAB terminates0144978Your system has not been installed
correctly0162266Questions and tips for R3SETUP on Windows
NT / W2K&sap.r3; 4.6C, &oracle; 8.1.7НомерНазвание0015023Initializing table TCPDB (RSXP0004)
(EBCDIC)0045619R/3 with several languages or
typefaces0171356SAP Software on Linux: Essential
Comments0195603RedHat 6.1 Enterprise version:
Known problems0212876The new archiving tool SAPCAR0300900Linux: Released DELL Hardware0377187RedHat 6.2: important remarks0387074INST: R/3 4.6C SR2 Installation on
UNIX0387077INST: R/3 4.6C SR2 Inst. on UNIX -
Oracle0387078SAP Software on UNIX: OS Dependencies
4.6C SR2Требования к аппаратному обеспечениюСледующего оборудования достаточно для установки
&sap.r3; System. Для производственного
использования необходима более точная оценка параметров:Компонент4.6B4.6CПроцессор2 x 800MHz &pentium; III2 x 800MHz &pentium; IIIПамять1GB ECC2GB ECCОбъем дисков50-60GB (IDES)50-60GB (IDES)Для производственного использования рекомендуются процессоры
&xeon; с большим кешем, высокоскоростной доступ к дискам (SCSI,
аппаратный RAID-контроллер), USV и ECC-RAM. Большой объем дискового
пространства связан с заранее сконфигурированной системой IDES,
которая создает 27 Гбайт файлов базы данных по ходу установки.
Этого пространства также достаточно для исходных производственных
систем и прикладных данных.&sap.r3; 4.6B, &oracle; 8.0.5Было использовано следующее стандартное оборудование:
двухпроцессорная материнская плата с двумя процессорами
&pentium; III 800 MHz, SCSI-контроллером &adaptec; 29160
Ultra160 (для работы с 40/80 Гбайт стримером DLT и приводом
CDROM), &mylex; &acceleraid; (2 канала, firmware 6.00-1-00 с
32 Мбайт RAM). К RAID-контроллеру &mylex; подключены два диска
по 17 Гбайт (зеркалированы) и четыре диска по 36 Гбайт
(RAID уровня 5).&sap.r3; 4.6C, &oracle; 8.1.7Для этой установки был использован &dell; &poweredge; 2500:
двухпроцессорная плата с двумя процессорами &pentium; III
1000 MHz (256 Кбайт кеш), 2 Гбайта PC133 ECC SDRAM,
PERC/3 DC PCI RAID-контроллер со 128 Мбайтами и приводом
EIDE DVD-ROM. К RAID-контроллеру подключены два диска по
18 Гбайт (зеркалированы) и четыре диска по 36 Гбайт
(RAID уровня 5).Установка FreeBSDСначала надо установить FreeBSD. Есть несколько способов сделать
это (FreeBSD 4.3 была установлена по FTP,
FreeBSD 4.5 — непосредственно с RELEASE CD); подробнее
см. .Компоновка дисковДля простоты диски при установке
&sap.r3; 46B и &sap.r3; 46C
SR2 использовались одинаково. Изменились только
имена устройств, поскольку установка выполнялась на разное
оборудование (/dev/da и
/dev/amr, соответственно, так что при
использовании AMI &megaraid; будут задействованы устройства
/dev/amr0s1a вместо /dev/da0s1a):Файловая системаРазмер (в блока по 1 Кбайту)Размер (Гбайт)Смонтирована в/dev/da0s1a1.016.3031//dev/da0s1b6swap/dev/da0s1e2.032.6232/var/dev/da0s1f8.205.3398/usr/dev/da1s1e45.734.36145/compat/linux/oracle/dev/da1s1f2.032.6232/compat/linux/sapmnt/dev/da1s1g2.032.6232/compat/linux/usr/sapКонфигурируем и инициализируем заранее два логических диска
с помощью ПО RAID &mylex; или PERC/3. Программы конфигурирования
можно запустить в ходе загрузки BIOS.Обратите внимание, что использованная компоновка дисков
немного отличается от рекомендованной &sap;, поскольку &sap;
рекомендует монтировать подкаталоги
&oracle; (и некоторые другие)
отдельно — мы решили просто создать подкаталоги.make world и новое ядроЗагрузите последние исходные коды ветки -STABLE. Пересоздайте
систему и ваше специализированное ядро после необходимых изменений
в файле конфигурации ядра. В него надо включить
параметры ядра, требуемые
для &sap.r3; и
&oracle;.Установка среды LinuxУстановка базовой системы LinuxСначала необходимо установить порт
linux_base
(от имени пользователя root):&prompt.root; cd /usr/ports/emulators/linux_base
&prompt.root; make install distcleanУстановка среды разработки LinuxСреда разработки Linux необходима, если вы хотите установить
&oracle; в ОС FreeBSD, как описано в
:&prompt.root; cd /usr/ports/devel/linux_devtools
&prompt.root; make install distcleanСреда разработки Linux была установлена только для
&sap.r3; 46B IDES. Она не нужна, если
сервер &oracle; не перекомпоновывается
в системе FreeBSD. Именно так и происходит, если вы используете
tar-архив (tarball) &oracle; с
Linux-системы.Установка необходимых пакетов RPMRPMДля запуска программы R3SETUP необходима
поддержка модулей PAM. В ходе первой установки
&sap; на ОС FreeBSD 4.3-STABLE мы
попытались установить PAM со всеми необходимыми пакетами и,
в конце концов, принудительно установили пакет PAM, что и
сработало. Для &sap.r3; 4.6C SR2 мы
сразу принудительно установили PAM RPM, что тоже сработало,
так что похоже, что пакеты, от которых декларирована зависимость,
не нужны:&prompt.root; rpm -i --ignoreos --nodeps --root /compat/linux --dbpath /var/lib/rpm \
pam-0.68-7.i386.rpmЧтобы &oracle; 8.0.5 мог запустить
интеллектуального агента, нам также пришлось установить пакет
RedHat Tcl tcl-8.0.5-30.i386.rpm (иначе
перекомпоновка в ходе установки &oracle;
не выполнится). Есть и другие проблемы с перекомпоновкой
&oracle;, но это проблема
&oracle; на Linux, не связанная с
особенностями FreeBSD.Дополнительные советыМожет также иметь смысл добавить linprocfs
в /etc/fstab; подробнее об этом см. на
странице справочника &man.linprocfs.5;. Еще можно установить
параметр kern.fallback_elf_brand=3 в файле
/etc/sysctl.conf.Создание среды &sap.r3;Создание необходимых файловых систем и точек монтированияДля простой установки достаточно создать следующие файловые
системы:точка монтированияразмер в Гбайтах/compat/linux/oracle45 GB/compat/linux/sapmnt2 GB/compat/linux/usr/sap2 GBТакже необходимо создать несколько ссылок. В противном случае,
инсталлятор &sap; будет выдавать
сообщения об ошибках, поскольку он проверяет созданные ссылки:&prompt.root; ln -s /compat/linux/oracle /oracle
&prompt.root; ln -s /compat/linux/sapmnt /sapmnt
&prompt.root; ln -s /compat/linux/usr/sap /usr/sapВозможные сообщения об ошибках в ходе установки (в данном
случае, для установки System PRD и
&sap.r3; 4.6C SR2):INFO 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:200
Checking existence of symbolic link /usr/sap/PRD/SYS/exe/dbg to
/sapmnt/PRD/exe. Creating if it does not exist...
WARNING 2002-03-19 16:45:36 R3LINKS_IND_IND SyLinkCreate:400
Link /usr/sap/PRD/SYS/exe/dbg exists but it points to file
/compat/linux/sapmnt/PRD/exe instead of /sapmnt/PRD/exe. The
program cannot go on as long as this link exists at this
location. Move the link to another location.
ERROR 2002-03-19 16:45:36 R3LINKS_IND_IND Ins_SetupLinks:0
can not setup link '/usr/sap/PRD/SYS/exe/dbg' with content
'/sapmnt/PRD/exe'Создание пользователей и каталоговДля системы &sap.r3; необходимы два
пользователя и три группы. Имена пользователей зависят от
идентификатора системы &sap; (SID),
который состоит из трех букв. Некоторые из этих идентификаторов
зарезервированы &sap; (например,
SAP и NIX. Полный
список см. в документации &sap;).
Для установки IDES мы использовали IDS,
а для установки 4.6C SR2 — PRD, поскольку
эта система предназначалась для промышленного использования.
Поэтому нам понадобились следующие группы (идентификаторы групп
могут отличаться, мы просто указали наши значения, использованные
при установке):идентификатор группыимя группыописание100dbaАдминистратор базы данных101sapsysСистема &sap;102operОператор базы данныхДля стандартной установки
&oracle; используется только группа
dba. В качестве группы
oper используется та же группа
dba (подробнее об этом см. в
документации &oracle; и
&sap;).Нам также нужны следующие пользователи:идентификатор пользователяимя пользователяобщий вид именигруппадополнительные группыописание1000idsadm/prdadmsidadmsapsysoperАдминистратор &sap;1002oraids/oraprdorasiddbaoperАдминистратор &oracle;Добавление пользователей с помощью &man.adduser.8;
требует следующих параметров для Администратора &sap;
(обратите внимание на командный интерпретатор и начальный
каталог):Name: sidadm
Password: ******
Fullname: SAP Administrator SID
Uid: 1000
Gid: 101 (sapsys)
Class:
Groups: sapsys dba
HOME: /home/sidadm
Shell: bash (/compat/linux/bin/bash)а для Администратора &oracle;:Name: orasid
Password: ******
Fullname: Oracle Administrator SID
Uid: 1002
Gid: 100 (dba)
Class:
Groups: dba
HOME: /oracle/sid
Shell: bash (/compat/linux/bin/bash)Для него также надо указать группу
oper, если вы используете обе группы,
dba и oper.Создание каталоговЭти каталоги обычно создаются в отдельных файловых системах.
Впрочем, все зависит от ваших требований. Мы решили создавать их
как обычные каталоги, поскольку в любом случае они находятся на
одном массиве RAID 5:Сначала мы установим владельцев и права для ряда каталогов (от
имени пользователя root):&prompt.root; chmod 775 /oracle
&prompt.root; chmod 777 /sapmnt
&prompt.root; chown root:dba /oracle
&prompt.root; chown sidadm:sapsys /compat/linux/usr/sap
&prompt.root; chmod 775 /compat/linux/usr/sapЗатем, мы создадим каталоги от имени пользователя
orasid. Все они
будут размещены в каталоге
/oracle/SID:&prompt.root; su - orasid
&prompt.root; cd /oracle/SID
&prompt.root; mkdir mirrlogA mirrlogB origlogA origlogB
&prompt.root; mkdir sapdata1 sapdata2 sapdata3 sapdata4 sapdata5 sapdata6
&prompt.root; mkdir saparch sapreorg
&prompt.root; exitДля установки &oracle; 8.1.7
потребуется несколько дополнительных каталогов:&prompt.root; su - orasid
&prompt.root; cd /oracle
&prompt.root; mkdir 805_32
&prompt.root; mkdir client stage
&prompt.root; mkdir client/80x_32
&prompt.root; mkdir stage/817_32
&prompt.root; cd /oracle/SID
&prompt.root; mkdir 817_32Каталог client/80x_32 должен иметь
точно такое имя. Не заменяйте x числом или
другим символом.На третьем шаге мы создаем каталоги от имени пользователя
sidadm:&prompt.root; su - sidadm
&prompt.root; cd /usr/sap
&prompt.root; mkdir SID
&prompt.root; mkdir trans
&prompt.root; exitЗаписи в файле /etc/servicesДля системы &sap.r3; необходим ряд
записей в файле /etc/services, которые не
будут правильно созданы при установке под FreeBSD. Пожалуйста,
добавьте следующие записи (потребуются, по крайней мере, записи,
соответствующие номеру экземпляра — в данном случае,
00. Не повредит добавить все записи, от
00 до 99, для
dp, gw, sp
и ms). Если вы собираетесь использовать
SAProuter или вам необходим доступ к
&sap; OSS, потребуется также запись для
99, поскольку порт 3299 обычно используется
для процесса SAProuter в целевой
системе:
sapdp00 3200/tcp # SAP Dispatcher. 3200 + Instance-Number
sapgw00 3300/tcp # SAP Gateway. 3300 + Instance-Number
sapsp00 3400/tcp # 3400 + Instance-Number
sapms00 3500/tcp # 3500 + Instance-Number
sapmsSID 3600/tcp # SAP Message Server. 3600 + Instance-Number
sapgw00s 4800/tcp # SAP Secure Gateway 4800 + Instance-NumberНеобходимые локалилокальСистеме &sap; нужны, по крайней
мере, две локали, не входящие в стандартную установку RedHat.
&sap; предлагает необходимые пакеты RPM для загрузки со своего
FTP-сервера (который доступен только для клиентов с доступом к
OSS). См. список необходимых пакетов RPM в заметке
0171356.Можно также просто создать соответствующие ссылки
(например, с de_DE и
en_US), но мы не рекомендуем это для
производственной системы (хотя это и сработало для системы
IDES безо всяких проблем). Необходимы следующие локали:de_DE.ISO-8859-1
en_US.ISO-8859-1Создайте ссылки следующим образом:&prompt.root; cd /compat/linux/usr/share/locale
&prompt.root; ln -s de_DE de_DE.ISO-8859-1
&prompt.root; ln -s en_US en_US.ISO-8859-1Если их не будет, в ходе установки возникнет ряд проблем.
Если их просто проигнорировать (установив STATUS
для соответствующих шагов равным OK в файле
CENTRDB.R3S), нельзя будет зарегистрироваться
в системе &sap; без дополнительных
усилий.Настройка ядранастройка ядраСистемам &sap.r3; надо много
ресурсов. Поэтому мы добавили следующие параметры в файл
конфигурации ядра:# Для пожирателей памяти (SAP и Oracle):
options MAXDSIZ="(1024*1024*1024)"
options DFLDSIZ="(1024*1024*1024)"
# Необходимые опции System V.
options SYSVSHM #совместно используемая память в стиле SYSV
options SHMMAXPGS=262144 #макс. количество страниц совместно используемой
#options SHMMAXPGS=393216 #use this for the 46C inst.parameters
options SHMMNI=256 #макс. количество идентификаторов совместно используемой
options SHMSEG=100 #макс. количество сегментов разд. памяти на процесс
options SYSVMSG #очереди сообщений в стиле SYSV
options MSGSEG=32767 #макс. количество сегментов сообщений в системе
options MSGSSZ=32 #размер сегмента сообщений. ДОЛЖЕН быть степенью 2
options MSGMNB=65535 #макс. символов на очередь сообщений
options MSGTQL=2046 #макс. количество сообщений в системе
options SYSVSEM #семафоры в стиле SYSV
options SEMMNU=256 #количество структур UNDO семафоров
options SEMMNS=1024 #количество семафоров в системе
options SEMMNI=520 #количество идентификаторов семафоров
options SEMUME=100 #количество ключей UNDOМинимальные значения указаны в документации, поставляемой
вместе с &sap;. Поскольку описания для Linux нет, дополнительную
информацию см. в разделе HP-UX (32-bit). Поскольку в системе, на
которую устанавливалась версия 4.6C SR2, оперативной памяти больше, сегменты совместно используемой можно сделать больше как для
&sap;, так и для
&oracle;, поэтому задайте большее
количество страниц совместно используемой памяти.При стандартной установке FreeBSD 4.5 на &i386;,
задайте значения MAXDSIZ и DFLDSIZ не более 1 Гбайта. В противном
случае могут выдаваться странные ошибки вроде
ORA-27102: out of memory и
Linux Error: 12: Cannot allocate
memory.Установка &sap.r3;Подготовка дисков CDROM &sap;В ходе установки придется монтировать и демонтировать
много дисков CDROM. При наличии достаточного количества приводов
CDROM, можно смонтировать их все. Мы же решили скопировать
содержимое дисков CDROM в соответствующие каталоги:/oracle/SID/sapreorg/имя_cdгде имя_cd — одно из следующих
KERNEL,
RDBMS, EXPORT1,
EXPORT2, EXPORT3,
EXPORT4, EXPORT5 и
EXPORT6 для установки 4.6B/IDES, и
KERNEL, RDBMS,
DISK1, DISK2,
DISK3, DISK4 и
LANG для установки 4.6C SR2. Все имена
файлов на смонтированных дисках должны быть в верхнем регистре,
в противном случае, используйте при монтировании опцию
. Поэтому используйте следующие команды:&prompt.root; mount_cd9660 -g /dev/cd0a /mnt
&prompt.root; cp -R /mnt/* /oracle/SID/sapreorg/имя_cd
&prompt.root; umount /mntЗапуск скрипта установкиСначала надо подготовить каталог install:&prompt.root; cd /oracle/SID/sapreorg
&prompt.root; mkdir install
&prompt.root; cd installЗатем запускается скрипт установки, который скопирует почти
все необходимые файлы в каталог
install:&prompt.root; /oracle/SID/sapreorg/KERNEL/UNIX/INSTTOOL.SHДистрибутив IDES (4.6B) включает полностью настроенную
демонстрационную систему &sap.r3;, поэтому он включает шесть
дисков EXPORT CD, а не три. В этот момент шаблон установки
CENTRDB.R3S предназначен для установки
стандартного центрального экземпляра
(&r3; и базы данных), а не для
установки центрального экземпляра IDES, поэтому необходимо
скопировать соответствующий файл CENTRDB.R3S
из каталога EXPORT1, иначе
команда R3SETUP запросит только три диска
EXPORT CDs.Более новый релиз &sap; 4.6C SR2
включает четыре диска EXPORT CD. Шаги установки определяет файл
параметров CENTRAL.R3S. В отличие от
прежних релизов, больше нет отдельных шаблонов установки для
центрального экземпляра с базой данных или без нее.
&sap; использует отдельный шаблон для
установки базы данных. Для перезапуска установки в дальнейшем,
однако, достаточно перезапустить исходный файл.В ходе установки и после нее &sap;
требует, чтобы команда hostname возвращала
только имя компьютера, не уточнённое именем домена. Поэтому либо
задайте имя хоста в соответствии с этим требованием, либо
настройте псевдоним с помощью команды
alias hostname='hostname -s' для пользователей
orasid и
sidadm (и для
пользователя root, про крайней мере,
в ходе шагов по установке, выполняемых от имени
root). Можно также изменить
файлы .profile и .login
для обоих пользователей, которые создаются в ходе установки
&sap;.Запуск R3SETUP 4.6BПроверьте, что переменная среды LD_LIBRARY_PATH
установлена правильно:&prompt.root; export LD_LIBRARY_PATH=/oracle/IDS/lib:/sapmnt/IDS/exe:/oracle/805_32/libВыполните команду R3SETUP от имени
пользователя root из каталога установки:&prompt.root; cd /oracle/IDS/sapreorg/install
&prompt.root; ./R3SETUP -f CENTRDB.R3SСкрипт затем задает ряд вопросов (стандартные ответы даны
в скобках, а затем представлены реальные ответы):ВопросСтандартное значениеОтветEnter SAP System ID[C11]IDSEnterEnter SAP Instance Number[00]EnterEnter SAPMOUNT Directory[/sapmnt]EnterEnter name of SAP central host[troubadix.domain.de]EnterEnter name of SAP db host[troubadix]EnterSelect character set[1] (WE8DEC)EnterEnter Oracle server version (1) Oracle 8.0.5, (2) Oracle 8.0.6, (3) Oracle 8.1.5, (4) Oracle 8.1.61EnterExtract Oracle Client archive[1] (Yes, extract)EnterEnter path to KERNEL CD[/sapcd]/oracle/IDS/sapreorg/KERNELEnter path to RDBMS CD[/sapcd]/oracle/IDS/sapreorg/RDBMSEnter path to EXPORT1 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT1Directory to copy EXPORT1 CD[/oracle/IDS/sapreorg/CD4_DIR]EnterEnter path to EXPORT2 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT2Directory to copy EXPORT2 CD[/oracle/IDS/sapreorg/CD5_DIR]EnterEnter path to EXPORT3 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT3Directory to copy EXPORT3 CD[/oracle/IDS/sapreorg/CD6_DIR]EnterEnter path to EXPORT4 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT4Directory to copy EXPORT4 CD[/oracle/IDS/sapreorg/CD7_DIR]EnterEnter path to EXPORT5 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT5Directory to copy EXPORT5 CD[/oracle/IDS/sapreorg/CD8_DIR]EnterEnter path to EXPORT6 CD[/sapcd]/oracle/IDS/sapreorg/EXPORT6Directory to copy EXPORT6 CD[/oracle/IDS/sapreorg/CD9_DIR]EnterEnter amount of RAM for SAP + DB850Enter (in Megabytes)Service Entry Message Server[3600]EnterEnter Group-ID of sapsys[101]EnterEnter Group-ID of oper[102]EnterEnter Group-ID of dba[100]EnterEnter User-ID of sidadm[1000]EnterEnter User-ID of orasid[1002]EnterNumber of parallel procs[2]EnterЕсли вы не скопировали диски в разные каталоги,
инсталлятор &sap; не сможет найти
необходимые CD (идентифицируемые файлом
LABEL.ASC на диске) и попросит затем
вставить и смонтировать CD, и подтвердить или ввести точку
его монтирования.Файл CENTRDB.R3S может содержать
ошибки. В нашем случае, он снова запросил EXPORT4 CD, но
указал корректный ключ (6_LOCATION, затем 7_LOCATION и т.д.),
так что, можно просто продолжать вводить корректные
значения.За исключением нескольких упомянутых ниже проблем, все
должно идти нормально до момента, когда придется устанавливать
программное обеспечение для работы с базой данных &oracle;.Запуск R3SETUP 4.6C SR2Проверьте, что переменная среды LD_LIBRARY_PATH
установлена правильно. Это значение отличается от использованного
при установке версии 4.6B с
&oracle; 8.0.5:&prompt.root; export LD_LIBRARY_PATH=/sapmnt/PRD/exe:/oracle/PRD/817_32/libВыполните команду R3SETUP от имени
пользователя root из каталога установки:&prompt.root; cd /oracle/PRD/sapreorg/install
&prompt.root; ./R3SETUP -f CENTRAL.R3SСкрипт затем задаст ряд вопросов (стандартные значения
даны в скобках, а затем идут реальные ответы):ВопросСтандартное значениеОтветEnter SAP System ID[C11]PRDEnterEnter SAP Instance Number[00]EnterEnter SAPMOUNT Directory[/sapmnt]EnterEnter name of SAP central host[majestix]EnterEnter Database System ID[PRD]PRDEnterEnter name of SAP db host[majestix]EnterSelect character set[1] (WE8DEC)EnterEnter Oracle server version (2) Oracle 8.1.72EnterExtract Oracle Client archive[1] (Yes, extract)EnterEnter path to KERNEL CD[/sapcd]/oracle/PRD/sapreorg/KERNELEnter amount of RAM for SAP + DB20441800Enter (in Megabytes)Service Entry Message Server[3600]EnterEnter Group-ID of sapsys[100]EnterEnter Group-ID of oper[101]EnterEnter Group-ID of dba[102]EnterEnter User-ID of oraprd[1002]EnterEnter User-ID of prdadm[1000]EnterLDAP support3Enter (no support)Installation step completed[1] (continue)EnterChoose installation service[1] (DB inst,file)EnterПока создание пользователей дает сообщение об ошибке при
установке на стадиях OSUSERDBSID_IND_ORA (создание пользователя
orasid) и
OSUSERSIDADM_IND_ORA (создание пользователя
sidadm).За исключением некоторых упомянутых далее проблем, все
должно идти нормально до момента, когда придется устанавливать
программное обеспечение для работы с базой данных &oracle;.Установка &oracle; 8.0.5Описания возможных проблем с Linux и Сервером
&oracle; см. в соответствующих файлах
&sap; Notes и &oracle; Readme. Большинство,
если не все проблемы, связаны с несовместимыми библиотеками.Подробнее об установке &oracle;
см. в разделе Установка
&oracle;.Установка &oracle; 8.0.5 с помощью orainstЕсли надо использовать &oracle;
8.0.5, для успешной перекомпоновки понадобится
несколько дополнительных библиотек, поскольку
&oracle; 8.0.5 был скомпонован со
старой версией glibc (RedHat 6.0), но уже RedHat 6.1 использует
новую библиотеку glibc. Так что, для успешной перекомпоновки
нужно установить следующие дополнительные пакеты:compat-libs-5.2-2.i386.rpmcompat-glibc-5.2-2.0.7.2.i386.rpmcompat-egcs-5.2-1.0.3a.1.i386.rpmcompat-egcs-c++-5.2-1.0.3a.1.i386.rpmcompat-binutils-5.2-2.9.1.0.23.1.i386.rpmДополнительную информацию см. в файлах &sap; Notes или &oracle;
Readme. Если установить эти пакеты не
представляется возможным (на момент установки у нас не было
времени, чтобы это проверить), можно использовать исходные двоичные
модули или перекомпонованные двоичные модули с исходной системы
RedHat.Для компиляции интеллектуального агента должен быть
установлен пакет RedHat Tcl. Если вы не можете найти пакет
tcl-8.0.3-20.i386.rpm, подойдет и более
новый, вроде tcl-8.0.5-30.i386.rpm для
RedHat 6.1.За исключением перекомпоновки, установка выполняется
просто:&prompt.root; su - oraids
&prompt.root; export TERM=xterm
&prompt.root; export ORACLE_TERM=xterm
&prompt.root; export ORACLE_HOME=/oracle/IDS
&prompt.root; cd $ORACLE_HOME/orainst_sap
&prompt.root; ./orainstНажимайте на всех экранах клавишу Enter,
пока программное обеспечение не будет установлено, убрав только
пометку выбора с &oracle; On-Line Text Viewer,
поскольку этого компонента для Linux сейчас нет.
&oracle; затем захочет
перекомпоновать модули с помощью
i386-glibc20-linux-gcc
вместо имеющихся gcc, egcs
или i386-redhat-linux-gcc.Из-за нехватки времени мы решили использовать двоичные
модули из версии &oracle; 8.0.5
PreProduction после того, как первая попытка
заставить работать версию с RDBMS CD провалилась, — попытки
найти и загрузить требуемые пакеты RPM нам показались настоящим
кошмаром.Установка &oracle; 8.0.5 Pre-production Release для
Linux (ядро 2.0.33)Эту установку выполнить очень легко. Монтируем CD, запускаем
инсталлятор. Затем он запрашивает местонахождение начального
каталога &oracle; и копирует туда двоичные модули. Мы, однако,
не удаляли остатки прежних попыток установить RDBMS.В конечном итоге, базу данных &oracle;
удалось запустить без проблем.Установка tar-архива &oracle; 8.1.7 для LinuxСоздайте tar-архив oracle81732.tgz
каталога установки на Linux-системе и разархивируйте его в
каталог /oracle/SID/817_32/.Продолжение установки &sap.r3;Сначала проверьте настройку среды для пользователей
idsamd (sidadm) и
oraids (orasid). У
них обоих должны теперь быть файлы .profile,
.login и .cshrc,
использующие hostname. Если имя хоста в системе
полностью уточнено, надо заменить hostname
командой hostname -s во всех трех файлах.Загрузка базы данныхПотом команду R3SETUP можно либо
перезапустить, либо продолжить (в зависимости от того, была
ли завершена ее работа). R3SETUP затем
создает табличные пространства и загружает данные (для 46B
IDES — с дисков от EXPORT1 до EXPORT6, для 46C —
с дисков от DISK1 до DISK4) в базу данных с помощью утилиты
R3load.После завершения загрузки базы данных (это может занять
несколько часов), будет запрошено несколько паролей. Для тестовых
установок можно использовать хорошо известные стандартные
пароли (но если защита важна — используйте другие!):ВопросОтветEnter Password for sapr3sapEnterConfirum Password for sapr3sapEnterEnter Password for syschange_on_installEnterConfirm Password for syschange_on_installEnterEnter Password for systemmanagerEnterConfirm Password for systemmanagerEnterМы столкнулись с несколькими проблемами с
dipgntab при установке 4.6B.Процесс прослушиванияЗапустите процесс прослушивания
(&oracle; Listener) от имени
пользователя orasid
следующим образом:&prompt.user; umask 0; lsnrctl startВ противном случае, вы можете получить сообщение об
ошибке ORA-12546, поскольку у сокетов
будут неправильные права доступа. См. &sap; Note 072984.Обновление таблиц MNLSЕсли вы планируете использовать в системе
&sap; языки, для которых не
подходит кодировка Latin-1, придется изменить таблицы
Multi National Language Support. Эта процедура описана в
&sap; OSS Notes 15023 и 45619. Если же нет, можете пропустить
этот вопрос в ходе установки &sap;.Если вам не нужна поддержка MNLS, все равно необходимо
проверить таблицу TCPDB и инициализировать ее, если это еще не
было сделано. Дополнительную информацию см. в &sap; Note 0015023
и 0045619.Шаги после установкиЗапрос лицензионного ключа &sap.r3;Вы должны запросить ваш лицензионный ключ
&sap.r3;. Это необходимо, поскольку
временная лицензия, использованная в ходе установки, действительна
только четыре недели. Сначала получите ключ оборудования.
Зарегистрируйтесь как пользователь idsadm
и вызовите команду saplicense:&prompt.root; /sapmnt/IDS/exe/saplicense -getПри вызове команды saplicense без
параметров будет выдан список опций. После получения
лицензионного ключа, его можно установить с помощью
команды:&prompt.root; /sapmnt/IDS/exe/saplicense -installЗатем вас попросят ввести следующие значения:SAP SYSTEM ID = SID, 3 символа
CUSTOMER KEY = ключ оборудования, 11 символов
INSTALLATION NO = установка, 10 цифр
EXPIRATION DATE = yyyymmdd, обычно - "99991231"
LICENSE KEY = лицензионный ключ, 24 символаСоздание пользователейСоздайте пользователя в клиенте 000 (некоторые задачи
обязательно надо выполнять из клиента 000, от имени пользователя,
отличающегося от sap* и
ddic). В качестве имени пользователя мы
обычно выбираем wartung (или
service, по английски). Требуются профили
sap_new и sap_all. Для
дополнительной защиты надо изменить пароли стандартных
пользователей на всех клиентах (в том числе, пользователей
sap* и ddic).Конфигурирование системы передачи, профиля, режимов работы и т.п.В клиенте 000, от имени пользователя, отличающегося от
ddic и sap*,
выполните, как минимум, следующее:ЗадачаТранзакцияСконфигурируйте систему передачи, например, как Stand-Alone Transport Domain EntitySTMSСоздайте/Отредактируйте профиль для системыRZ10Сконфигурируйте режимы работы и экземплярыRZ04Эти и другие шаги, которые надо выполнить после установки,
подробно описаны в руководствах по установке
&sap;.Редактирование initsid.sap (initIDS.sap)Файл /oracle/IDS/dbs/initIDS.sap
содержит профиль резервного копирования
&sap;. Здесь надо задать размер
используемой ленты, тип сжатия и т.д. Чтобы можно было
использовать sapdba /
brbackup, мы изменили следующие значения:compress = hardware
archive_function = copy_delete_save
cpio_flags = "-ov --format=newc --block-size=128 --quiet"
cpio_in_flags = "-iuv --block-size=128 --quiet"
tape_size = 38000M
tape_address = /dev/nsa0
tape_address_rew = /dev/sa0Объяснения:compress: мы использовали ленту HP DLT1,
которая поддерживает аппаратное сжатие.archive_function: этот параметр задает
стандартное поведение для сохранения архивных журналов &oracle;:
новые журнальные файлы сохраняются на ленту, уже сохраненные
файлы журнала сохраняются еще раз, а затем удаляются. Это
предотвращает многочисленные проблемы, если потребуется
восстановить базу данных, а одна из архивных лент окажется
сбойной.cpio_flags: по умолчанию используется
, что устанавливает размер блока 5120 байт.
Для лент DLT компания HP рекомендует размер блока не меньше
32 Кбайт, поэтому мы использовали значение
для задания размера блока
64 Кбайта. Опция необходима,
поскольку у нас есть индексные дескрипторы (inodes) с номерами
больше 65535. Последняя опция, необходима
потому, что иначе команда brbackup выдает
сообщение об ошибке, как только команда cpio
выдаст количество сохраненных блоков.cpio_in_flags: флаги, необходимые для
загрузки данных с ленты. Формат распознается автоматически.tape_size: обычно этот параметр задает
реальную ёмкость ленты. Из соображений надежности (мы используем
аппаратное сжатие), задано значение несколько меньше
фактического.tape_address: устройство без перемотки
для использования в команде cpio.tape_address_rew: устройство с
перемоткой для использования в команде
cpio.Проблемы конфигурирования после установкиСледующие параметры &sap; надо
настроить после установки (примеры для IDES 46B,
1 Гбайт памяти):ИмяЗначениеztta/roll_extension250000000abap/heap_area_dia300000000abap/heap_area_nondia400000000em/initial_size_MB256em/blocksize_kB1024ipc/shm_psize_4070000000&sap; Note 0013026:ИмяЗначениеztta/dynpro_area2500000&sap; Note 0157246:ИмяЗначениеrdisp/ROLL_MAXFS16000rdisp/PG_MAXFS30000При указанных выше параметрах в системе с 1 Гбайт
памяти можно обнаружить примерно следующее использование
памяти:Mem: 547M Active, 305M Inact, 109M Wired, 40M Cache, 112M Buf, 3492K FreeПроблемы в ходе установкиПерезапуск R3SETUP после устранения проблемыR3SETUP останавливается при выявлении
ошибки. Если вы просмотрели соответствующие журнальные файлы и
исправили ошибку, придется запускать R3SETUP
снова, обычно выбирая REPEAT как опцию для последнего шага,
на котором команда R3SETUP выдала сообщение
об ошибке.Для перезапуска команды R3SETUP просто
запустите её с соответствующим файлом
R3S:&prompt.root; ./R3SETUP -f CENTRDB.R3Sдля 4.6B или с файлом&prompt.root; ./R3SETUP -f CENTRAL.R3Sдля 4.6C, независимо от того, произошла ли ошибка
при работе с файлом CENTRAL.R3S или
DATABASE.R3S.На некоторых стадиях команда R3SETUP
предполагает, что запущены и работают процессы как сервера
базы данных, так и &sap; (поскольку
эти шаги уже выполнены). Если возникнут ошибки и, например,
запустить сервер базы данных не получится, придется вручную
запускать сервер базы данных и &sap;
после исправления ошибок и до повторного запуска
R3SETUP.Не забудьте также снова запустить процесс прослушивания
&oracle; (как пользователь
orasid с помощью
команды umask 0; lsnrctl start), если он тоже
был остановлен (например, из-за необходимой перезагрузки
системы).OSUSERSIDADM_IND_ORA в ходе R3SETUPЕсли R3SETUP выдает сообщения об
ошибках на этом этапе, отредактируйте используемый при этом
файл шаблона R3SETUP
(CENTRDB.R3S (4.6B), либо
CENTRAL.R3S или
DATABASE.R3S (4.6C)).
Найдите раздел [OSUSERSIDADM_IND_ORA] или
поищите единственную запись STATUS=ERROR и
отредактируйте следующие значения:HOME=/home/sidadm (было пусто)
STATUS=OK (был статус ERROR)
Затем надо снова перезапустить
R3SETUP.OSUSERDBSID_IND_ORA в ходе R3SETUPВозможно, команда R3SETUP также выдаст
сообщения об ошибке на этой стадии. Ошибка здесь аналогична
возникающей на стадии OSUSERSIDADM_IND_ORA. Просто отредактируйте
используемый файл шаблона R3SETUP
(CENTRDB.R3S (4.6B), либо
CENTRAL.R3S или
DATABASE.R3S (4.6C)).
Найдите раздел [OSUSERDBSID_IND_ORA] или поищите
единственную запись STATUS=ERROR и
отредактируйте следующее значение в этом разделе:STATUS=OKЗатем перезапустите R3SETUP.oraview.vrf FILE NOT FOUND в ходе установки &oracle;Вы не сняли выбор с &oracle; On-Line Text
Viewer перед началом установки. Он помечен для
установки, хотя этот продукт и не доступен сейчас для Linux.
Снимите пометку с этого продукта в меню установки
&oracle; и перезапустите
установку.TEXTENV_INVALID в ходе R3SETUP, RFC или запуска SAPguiЕсли возникает эта ошибка, не найдена нужная локаль.
&sap; Note 0171356 перечисляет необходимые пакеты RPM, которые
надо установить (например, saplocales-1.0-3,
saposcheck-1.0-1 для RedHat 6.1). Если
игнорировать все ошибки и менять STATUS
соответствующих шагов с ERROR на
OK (в файле CENTRDB.R3S)
каждый раз, когда R3SETUP сообщает об
ошибке и просто перезапуск ать R3SETUP, система
&sap; не будет правильно
сконфигурирована, и вы затем не сможете подключиться к системе
с помощью SAPgui, хотя запустить
систему и получится. Попытка подключения с помощью старой
Linux-версии SAPgui приведет к выдаче
следующих сообщений:Sat May 5 14:23:14 2001
*** ERROR => no valid userarea given [trgmsgo. 0401]
Sat May 5 14:23:22 2001
*** ERROR => ERROR NR 24 occured [trgmsgi. 0410]
*** ERROR => Error when generating text environment. [trgmsgi. 0435]
*** ERROR => function failed [trgmsgi. 0447]
*** ERROR => no socket operation allowed [trxio.c 3363]
SpeicherzugriffsfehlerЭто связано с тем, что система
&sap.r3; не может корректно назначить
локаль и сама не была надлежащим образом сконфигурирована
(не хватает записей в некоторых таблицах базы данных). Чтобы
можно было подключиться к &sap;,
добавьте следующие записи в файл DEFAULT.PFL
(см. Note 0043288):abap/set_etct_env_at_new_mode = 0
install/collate/active = 0
rscp/TCP0B = TCP0BПерезапустите систему &sap;. Теперь
вы можете подключиться к системе, хотя специфические для страны
языковые установки могут работать не так, как предполагалось.
После исправления настроек страны (и добавления соответствующих
локалей) эти записи можно удалить из файла
DEFAULT.PFL и перезапустить систему &sap;.ORA-00001Эта ошибка возникает только с
&oracle; 8.1.7 на FreeBSD 4.5.
Причина в том, что сервер &oracle;
не может правильно проинициализироваться и аварийно завершает
работу, оставляя не освобожденными в системе семафоры и
совместно используемую память. При следующей попытке запустить сервер
базы данных выдается ошибка ORA-00001.Найдите оставшиеся семафоры и сегменты памяти с помощью
команды ipcs -a и удалите с помощью
ipcrm.ORA-00445 (фоновый процесс PMON не запущен)Эта ошибка произошла с &oracle; 8.1.7.
Она выдается, если сервер был запущен с помощью обычного
скрипта startsap (например,
startsap_majestix_00) от имени пользователя
prdadm.Возможный способ обхода – запускать сервер базы данных
от имени пользователя oraprd с помощью
svrmgrl:&prompt.user; svrmgrl
SVRMGR> connect internal;
SVRMGR> startup;
SVRMGR> exitORA-12546 (запускайте процесс прослушивания с правильными правами)Запускайте процесс прослушивания
&oracle; от имени пользователя
oraids следующими командами:&prompt.root; umask 0; lsnrctl startВ противном случае, вы можете получить сообщение об ошибке
ORA-12546, поскольку сокеты не будут иметь
нужных прав доступа. См. &sap; Note 0072984.ORA-27102 (не хватает памяти)Эта ошибка произошла при попытке использовать значения
MAXDSIZ и DFLDSIZ больше
1 Гбайта (1024x1024x1024). Кроме того, мы получили
Linux Error 12: Cannot allocate memory.[DIPGNTAB_IND_IND] в ходе R3SETUPВ общем случае, см. &sap; Note 0130581
(прекращается работа R3SETUP на шаге
DIPGNTAB). В ходе установки
IDES-версии по каким-то причинам процесс установки использовал
вместо правильного имени системы &sap;,
IDS, пустую строку, "". Это
приводит к небольшим проблемам при доступе к каталогам, поскольку пути
генерируются динамически на базе SID
(в данном случае, IDS). Поэтому вместо обращения к:/usr/sap/IDS/SYS/...
/usr/sap/IDS/DVMGS00используются следующие пути:/usr/sap//SYS/...
/usr/sap/D00Чтобы продолжить установку мы создали ссылку и дополнительный
каталог:&prompt.root; pwd
/compat/linux/usr/sap
&prompt.root; ls -l
total 4
drwxr-xr-x 3 idsadm sapsys 512 May 5 11:20 D00
drwxr-x--x 5 idsadm sapsys 512 May 5 11:35 IDS
-lrwxr-xr-x 1 root sapsys 7 May 5 11:35 SYS -> IDS/SYS
+lrwxr-xr-x 1 root sapsys 7 May 5 11:35 SYS -> IDS/SYS
drwxrwxr-x 2 idsadm sapsys 512 May 5 13:00 tmp
drwxrwxr-x 11 idsadm sapsys 512 May 4 14:20 transМы также нашли документы &sap; Notes (0029227 и 0008401),
описывающие это поведение. Мы не столкнулись с подобными
проблемами при установке
&sap; 4.6C.[RFCRSWBOINI_IND_IND] в ходе R3SETUPВ ходе установки &sap; 4.6C,
эта ошибка возникла в результате другой ошибки, произошедшей
ранее по ходу установки. В данном случае придется просмотреть
соответствующие журнальные файлы и устранить исходную
проблему.Если после просмотра журнальных файлов выявлена только эта
ошибка (проверьте &sap; Notes), можно поменять
STATUS соответствующего шага с ERROR на OK (в файле
CENTRDB.R3S) и перезапустить
R3SETUP. После установки надо
выполнить отчет RSWBOINS из транзакции SE38.
Дополнительную информацию о стадиях RFCRSWBOINI
и RFCRADDBDIF см. в &sap; Note 0162266.[RFCRADDBDIF_IND_IND] в ходе R3SETUPЗдесь применяются те же ограничения: проверьте путем просмотра
журнальных файлов, что эта ошибка не вызвана какими-то предыдущими
проблемами.Если подтверждается, что применим документ &sap; Note 0162266,
просто поменяйте STATUS соответствующего
шага с ERROR на OK (в
файле CENTRDB.R3S) и перезапустите R3SETUP. После установки надо выполнить
отчет RADDBDIF из транзакции SE38.sigaction sig31: File size limit exceededЭто сообщение об ошибке выдается в ходе запуска процессов
&sap;disp+work.
Если &sap; запускается скриптом
startsap, запускаются отдельные подпроцессы,
выполняющие грязную работу по запуску всех остальных процессов
&sap;. В результате, сам скрипт
не получит уведомления, если что-то пойдет не так.Чтобы проверить, нормально ли запустились процессы
&sap;, посмотрите на состояние
процессов с помощью команды ps ax |
grep SID, которая выдаст
список всех процессов &oracle; и
&sap;. Если похоже, что некоторых
процессов не хватает или вы не можете подключиться к системе
&sap;, просмотрите соответствующие
журнальные файлы, которые можно найти в каталоге
/usr/sap/SID/DVEBMGSnr/work/.
Надо просматривать файлы dev_ms и
dev_disp.Сигнал 31 выдается, если объем памяти, совместно используемой
&oracle; и
&sap;, превосходит заданный в файле
конфигурации ядра, и от него можно избавиться, указав большее
значение:# большее значение для производственных систем 46C:
options SHMMAXPGS=393216
# меньшее значение, достаточное для 46B:
#options SHMMAXPGS=262144Сбой при запуске saposcolЕсть ряд проблем с программой saposcol
(версии 4.6D). Система &sap; использует
saposcol для сбора данных о производительности
системы. Эта программа не нужна для использования системы
&sap;, так что проблему можно отнести
к несерьезным. Более старые версии (4.6B) работают, но собирают
не все данные (многие вызовы просто возвращают 0, например,
для использования процессора).Дополнительные сведенияЕсли вы интересуетесь, как обеспечивается двоичная совместимость
с Linux, этот раздел для вас. Большинство материала взято из
электронного письма, адресованного Terry Lambert
tlambert@primenet.com в &a.chat; (ID письма:
<199906020108.SAA07001@usr09.primenet.com>).Как все это устроено?загрузчик выполняемых классовFreeBSD поддерживает абстракцию, называемую загрузчик
выполняемых классов. Фактически, он является первой
стадией системного вызова &man.execve.2;.На самом деле, FreeBSD имеет список загрузчиков вместо
одного, завершающийся загрузчиком #! для
запуска любых командных интерпретаторов и скриптов.Исторически сложилось, что единственный загрузчик в &unix;
системах проверял магическое число (чаще всего первые
4 или 8 байт файла), чтобы определить, известен ли формат
двоичного файла системе, и если да, то вызвал соответствующий
загрузчик.Если файл не опознавался системой как двоичный, системный
вызов &man.execve.2; возвращал ошибку, и текущий командный
интерпретатор начинал выполнять файл как скрипт.По умолчанию скрипт выполнялся текущим командным
интерпретатором.Позднее, &man.sh.1; был модифицирован, так, чтобы проверять
первые два символа в файле, и если они оказывались
:\n, то файл выполнялся как сценарий для
&man.csh.1; (утверждается, что SCO были первыми, кто сделал
эту модификацию).FreeBSD сейчас ведет себя по-другому: пробегает по списку
загрузчиков,включающему специальный загрузчик #!,
который вызывает нужный интерпретатор, указанный после этих символов
до следующего пробела, или /bin/sh, если
не нашел подходящего.ELFДля поддержки Linux ABI FreeBSD ищет магическое число,
соответствующее двоичному файлу ELF (на этой стадии не различаются
FreeBSD, &solaris;, Linux или любая другая ОС поддерживающая формат
ELF).SolarisДалее, ELF-загрузчик определяет марку (brand)
двоичного файла ELF (специальный комментарий в ELF-файле,
отсутствующий в двоичных файлах ELF SVR4/&solaris;).Соответственно, Linux программы должны быть
маркированы для Linux (например, с
помощью утилиты &man.brandelf.1;):&prompt.root; brandelf -t Linux fileКогда это сделано, загрузчик ELF выявит марку
Linux в файле.ELFbrandingКогда ELF-загрузчик находит маркуLinux, он заменяет соответствующий указатель в
структуре proc. Все системные вызовы
индексируются через этот указатель (в традиционной &unix; системе это
массив структур sysent[], содержащий системные
вызовы). Кроме того, процесс помечается для специальной обработки
вектора обработчиков сигналов, а также ряда других (небольших)
исправлений, которые осуществляются специальным модулем ядра для
поддержки Linux.Вектор системных вызовов Linux содержит, среди прочего, список
записей sysent[], адреса которых находятся в
модуле ядра.При выполнении системного вызова из двоичного файла Linux,
код обработчика разыменовывает указатель на функцию системного вызова
из структуры proc, и получает точки входа
системных вызовов Linux, а не FreeBSD.Плюс ко всему, в Linux–режиме динамически изменяется
корень файловой системы при поиске файлов; фактически
так же, как и параметр union при монтировании
файловых систем (не путать с unionfs!).
Сперва, файл ищется в каталоге
/compat/linux/исходное_полное_имя
и только затем, в случае неудачи, в
/исходное_полное_имя.
Это гарантирует, что программы, которым требуются другие программы,
смогут работать (например, весь набор инструментальных средств Linux
сможет работать в среде поддержки Linux ABI). Это также дает
возможность Linux программам выполнять FreeBSD команды, если не
найдется соответствующих Linux команд. Например, можно скопировать
FreeBSD &man.uname.1; в дерево каталогов
/compat/linux, и Linux-программы не смогут
разобраться, что они работают не в Linux.Фактически, имеется ядро Linux в ядре FreeBSD; различные
базовые функции, реализующие все услуги ядра, идентичны как
в записях таблицы системных вызовов FreeBSD, так и в записях
таблицы системных вызовов Linux: операции с файловой системой,
виртуальная память, средства доставки сигналов,
System V IPC … Единственное отличие в том, что
FreeBSD-программы получают интерфейсные функции
FreeBSD, а Linux-программы получают интерфейсные
функции Linux (в большинстве более старых ОС есть только их
собственные интерфейсные функции: функции берутся из статического
глобального массива структур sysent[], а не
из массива, полученного разыменованием динамически
проинициализированного указателя в структуре
proc процесса, выполняющего вызов).Какая же реализация ABI для FreeBSD родная? Это
не имеет значения. Единственное различие (на данный момент, в
будущем все может и, вероятно, изменится), пожалуй, в том, что
функции системных вызовов FreeBSD зашиты в ядро, а для Linux они
могут быть либо статически скомпонованы в ядро, либо получаться
через модуль ядра.Да, но можно ли назвать это эмуляцией? Нет. Это реализация ABI,
а не эмуляция. Как таковой, эмулятор (или симулятор)
отсутствует.В таком случае, почему же иногда говорят об
эмуляции Linux? Чтобы насолить
FreeBSD! Фактически, причина в том, что на момент первой реализации
не существовало слова, которое бы точнее описывало этот процесс.
Нельзя было сказать, что FreeBSD запускает приложения Linux (без
перекомпиляции или загрузки соответствующего модуля ядра это
невозможно). Но надо было как-то описать, что
загружается — отсюда и эмулятор Linux.
diff --git a/ru_RU.KOI8-R/books/handbook/multimedia/chapter.sgml b/ru_RU.KOI8-R/books/handbook/multimedia/chapter.sgml
index 0abaf62b18..1acdff9eb5 100644
--- a/ru_RU.KOI8-R/books/handbook/multimedia/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/multimedia/chapter.sgml
@@ -1,1909 +1,1911 @@
MosesMooreПредоставил АлександрКоваленкоПеревод на русский язык: ДенисПеплинМультимедиаКраткий обзорFreeBSD поддерживает большое количество различных звуковых
карт, что позволяет вам насладится высококачественным звуком. Это также
дает возможность записывать и воспроизводить звуковые файлы в формате
MPEG Audio Layer 3 (MP3), WAV, Ogg Vorbis, а также во множестве других
форматов. Коллекция Портов FreeBSD также содержит ряд приложений,
позволяющих редактировать записанные звуковые файлы, добавлять звуковые
эффекты, управлять подключенными MIDI устройствами.FreeBSD может поддерживать воспроизведение видеофайлов и DVD.
Количество приложений, позволяющих кодировать, преобразовывать и
воспроизводить различные форматы видео, существенно меньше
количества приложений для работы со звуком. Например, на время написания
этого документа в Коллекции Портов FreeBSD не существовало хорошего
приложения для преобразования видео, которое могло бы быть использовано
для преобразований между разными форматами, как, например, audio/sox. Впрочем, ситуация в этой области
меняется быстро.Эта глава описывает необходимые шаги для настройки вашей звуковой
карты. Настройка и установка X11 () уже охватывает вопросы, связанные с аппаратными
установками вашей видеокарты, хотя могут быть возможности
дополнительной настройки для улучшения воспроизведения.После прочтения этой главы вы будете знать:Как настроить систему так, чтобы звуковая карта была
опознана.Методы проверки работы звуковой карты при помощи тестовых
приложений.Как исправить проблемы, возникающие при работе со звуковыми
картами.Как прослушать и создать MP3 и другие форматы.Как X сервер поддерживает видео.Некоторые проигрыватели и кодировщики видео, которые показывают
хорошие результаты.Как воспроизвести DVD, .mpg и
.avi файлы.Как скопировать информацию с CD и DVD в файлы.Как настроить ТВ тюнер.Как настроить сканер.Перед чтением этой главы вам потребуется:Узнать, как конфигурировать и устанавливать новое ядро
().Попытка смонтировать аудио CD при помощи команды
&man.mount.8; как минимум, сообщит об ошибке и, как максимум, может
привести к панике ядра. Эти носители имеют
специальные форматы, которые отличны от обычной файловой системы
ISO.MosesMooreПредоставил MarcFonvieilleРасширил для &os; 5.X Настройка звуковой картыНастройка системыPCIISAзвуковые картыПеред тем как начать, определите модель вашей карты,
процессор, который она использует, и интерфейс карты: PCI или ISA.
FreeBSD поддерживает множество разных PCI и ISA карт.
Сверьтесь со списком поддерживаемых аудио устройств в Информации об оборудовании,
чтобы проверить, поддерживается ли ваша карта. Этот документ также
содержит информацию о том, какой драйвер поддерживает вашу
карту.ядроконфигурацияДля того, чтобы использовать звуковую карту, вы должный загрузить
соответствующий драйвер устройства. Этого можно достигнуть двумя путями.
Простейший способ – это просто загрузить соответствующий вашей карте
модуль ядра используя &man.kldload.8;, что можно сделать или из командной
строки:&prompt.root; kldload snd_emu10k1или добавлением соответствующей строки к файлу
/boot/loader.conf:snd_emu10k1_load="YES"Эти примеры приведены для звуковой карты Creative
&soundblaster; Live!. Другие имеющиеся модули драйверов
звуковых карты приведены в
/boot/defaults/loader.conf
Если вы не уверены, какой драйвер использовать, попробуйте загрузить
snd_driver:&prompt.root; kldload snd_driverЭто мета-драйвер, загружающий сразу все наиболее распространенные
драйверы сразу. Это повышает скорость поиска правильного драйвера.
Возможна также загрузка всех звуковых драйверов через
/boot/loader.conf.Для того чтобы узнать, какой именно драйвер требуется для вашей
звуковой карты, вы можете проверить содержимое файла
/dev/sndstat при помощи команды
cat /dev/sndstat.В &os; 4.X для загрузки всех звуковых драйверов вам будет
необходимо загрузить модуль snd вместо
snd_driver.Другой способ заключается в
добавлении статического драйвера в ядро. В разделе ниже дана
более подробная информация о том, что вам нужно сделать для добавления
поддержки оборудования. Более подробно о конфигурация ядра описана в
.Настройка собственного ядра с поддержкой звукаПервое, что необходимо сделать, это добавить в ядро
общий звуковой драйвер &man.sound.4;. Добавьте в
файл конфигурации ядра следующую строку:device soundВ &os; 4.X, вам необходимо использовать следующую
строку:device pcmЗатем необходимо добавить поддержку имеющейся звуковой
карты. Следовательно, нужно знать какой драйвер поддерживает
карту. Для этого сверьтесь со списком поддерживаемых
устройств из Информации об оборудовании.
Например, звуковая карта Creative &soundblaster; Live!
поддерживается драйвером &man.snd.emu10k1.4;.
Для добавления поддержки этой карты, используйте:
- device "snd_emu10k1"
+ device snd_emu10k1Прочтите страницу справочника драйвера, чтобы узнать,
какой синтаксис использовать. Информация, относящаяся
к синтаксису включения звуковых драйверов в файл конфигурации
ядра, может быть также найдена в файле
/usr/src/sys/conf/NOTES
(/usr/src/sys/i386/conf/LINT для
&os; 4.X).Не-PnP ISA карты могут потребовать включения в ядро
информации о настройках звуковой карты (IRQ, I/O port,
и т.д.). Эта информация добавляется редактированием
файла /boot/device.hints.
Во время загрузки системы &man.loader.8; прочтет этот
файл и передаст настройки ядру. Например, старая ISA не-PnP карта
Creative &soundblaster; 16 использует драйвер &man.snd.sbc.4;
совместно с snd_sb16(4). Для этой карты к файлу настройки ядра
необходимо добавить следующие строки:device snd_sbc
device snd_sb16и со следующей информацией в
/boot/device.hints:hint.sbc.0.at="isa"
hint.sbc.0.port="0x220"
hint.sbc.0.irq="5"
hint.sbc.0.drq="1"
hint.sbc.0.flags="0x15"В данном случае, карта использует порт ввода-вывода
0x220 и IRQ 5.Синтаксис, используемый в файле
/boot/device.hints, описан в справочной
странице драйвера. В &os; 4.X эти настройки записываются
непосредственно в файл конфигурации ядра. В случае ISA
карты используется такая строка:device sbc0 at isa? port 0x220 irq 5 drq 1 flags 0x15Установки, приведенные выше, используются по умолчанию.
В некоторых случаях вам может потребоваться изменить IRQ
или другие настройки в соответствии с настройками карты.
За более подробной информацией обратитесь к странице справочника
&man.snd.sbc.4;.В &os; 4.X некоторые системы со встроенной в
материнскую плату звуковой картой могут потребовать
следующей строки в файле настройки ядра:options PNPBIOSТестирование звуковой картыПосле перезагрузки модифицированного ядра, или после загрузки
необходимого модуля, звуковая карта должна появиться в буфере
системных сообщений (&man.dmesg.8;) примерно так:pcm0: <Intel ICH3 (82801CA)> port 0xdc80-0xdcbf,0xd800-0xd8ff irq 5 at device 31.5 on pci0
pcm0: [GIANT-LOCKED]
pcm0: <Cirrus Logic CS4205 AC97 Codec>Статус звуковой карты может быт проверен через файл
/dev/sndstat:&prompt.root; cat /dev/sndstat
FreeBSD Audio Driver (newpcm)
Installed devices:
pcm0: <Intel ICH3 (82801CA)> at io 0xd800, 0xdc80 irq 5 bufsz 16384
kld snd_ich (1p/2r/0v channels duplex default)Вывод этой команды для вашей системы может отличаться.
Если устройства pcm не появились, вернитесь
назад и проверьте выполненные действия. Проверьте файл настройки
ядра еще раз и убедитесь, что выбрано подходящее устройство.
Часто встречающиеся проблемы приведены в .Если всё пройдет удачно, звуковая карта заработает. Если
CD-ROM или DVD-ROM привод правильно подключён к звуковой карте, вы можете
вставить CD в привод и воспроизвести его при помощи
&man.cdcontrol.1;.&prompt.user; cdcontrol -f /dev/acd0 play 1Различные приложения, например audio/workman могут предоставить
более дружественный
пользователю интерфейс. Вы можете также установить
приложения для прослушивания звуковых файлов MP3, как например
audio/mpg123. Быстрым способом
тестирования звуковой карты является отправка данных в
файл /dev/dsp, как показано здесь:&prompt.user; cat filename > /dev/dspгде filename может быть любым
файлом. Результатом выполнения этой команды станет шум,
который означает, что звуковая карта на самом деле
работает.Пользователям &os; 4.X потребуется создать устройства
звуковой карты перед тем, как ее использовать. Если в буфере
системных сообщений карта появилась как
pcm0, вам необходимо выполнить от
root следующее:&prompt.root; cd /dev
&prompt.root; sh MAKEDEV snd0Если карта обнаружена как pcm1,
выполните то же самое, заменив
snd0 на
snd1.MAKEDEV создаст группу файлов устройств,
которые будут использоваться различными звуковыми
приложениями.Уровни громкости звука могут быть изменены командой &man.mixer.8;.
Более подробная информация находится на странице справочной системы
&man.mixer.8;.Часто встречающиеся проблемыфайлы устройствпорт ввода-выводаIRQDSPОшибкаРешениеunsupported subdevice XXОдно или более устройств не были правильно
созданы. Повторите приведенные выше шаги.sb_dspwr(XX) timed outПорт ввода-вывода указан неправильно.bad irq XXIRQ установлен неправильно. Убедитесь, что
настройки в системе и на карте одинаковы.xxx: gus pcm not attached, out of
memoryДля использования устройства недостаточно
памяти.xxx: can't open /dev/dsp!Проверьте с помощью fstat | grep
dsp, не занято ли устройство другим приложением.
Создать проблемы могут esound и
поддержка звука в KDE.MunishChopraПредоставил Использование нескольких источников звукаДостаточно часто встречается необходимость иметь несколько источников
звука, которые должны воспроизводить одновременно, например когда
esound или artsd не
поддерживают совместное использование звукового устройства с некоторым
приложением.FreeBSD позволяет делать это при помощи виртуальных
звуковых каналов, которые могут быть настроены с помощью
&man.sysctl.8;. Виртуальные каналы позволяют вам мультиплексировать
каналы воспроизведения звуковой карты, смешивая звук в ядре.Для установки количества виртуальных каналов вы можете использовать
две переменные sysctl, которые, если вы пользователь root,
могут быть установлены таким образом:&prompt.root; sysctl hw.snd.pcm0.vchans=4
&prompt.root; sysctl hw.snd.maxautovchans=4В этом примере выделяются четыре виртуальных канала, чего вполне
достаточно для повседневного использования.
hw.snd.pcm0.vchans это количество виртуальных каналов
устройства pcm0, оно может быть установлено сразу
же, как только устройство было подключено.
hw.snd.maxautovchans это количество виртуальных
каналов, которые выделяются новому аудио устройству, когда оно
подключается при помощи &man.kldload.8;. Так как модуль
pcm может быть загружен независимо от аппаратных
драйверов, hw.snd.maxautovchans может указывать
количество виртуальных каналов для любых устройств, которые будут подключены
позже.Количество виртуальных каналов не может быть изменено, если
аудио устройство занято. Вам потребуется предварительно закрыть
все программы, работающие со звуком, такие как медиа-проигрыватели
или звуковые даемоны.Если вы не используете &man.devfs.5;, необходимо будет указать
приложениям
/dev/dsp0.x, где
x это число от 0 до 3, если
hw.snd.pcm0.vchans установлено в значение 4. Для
системы, использующей &man.devfs.5;, вышеуказанные настройки будут
сделаны автоматически прозрачно для пользователя.JosefEl-RayesПредоставил Установка значений по умолчанию для каналов mixer
+
+ Это поддерживается только в &os; 5.3-RELEASE и в более поздних.
+
+
Значения по умолчанию для различных каналов mixer жестко
прописаны в исходных текстах драйвера &man.pcm.4;. Существует
множество различных приложений и даемонов, которые позволяют
устанавливать значения для mixer, которые они запоминают
и выставляют каждый раз при запуске, но это не совсем
правильное решение, нам нужны значения по умолчанию на уровне
драйвера. Они могут быть установлены путем указания
в /boot/device.hints. Например:hint.pcm.0.vol="100"Установит значение для канала volume в значение по умолчанию
100, как только будет загружен модуль &man.pcm.4;.
-
- Поддерживается начиная с &os; версии 5.3.ChernLeeПредоставил Звук MP3MP3 (MPEG Layer 3 Audio) достигает качества звука, близкого к CD, и
нет причин не воспользоваться им на вашей рабочей
станции.Проигрыватели MP3На данный момент наиболее популярным MP3-проигрывателем для
X11 является
XMMS (X Multimedia System). Скины приложения
WinAMP могут быть использованы для
XMMS так как графический интерфейс
пользователя практически идентичен интерфейсу программы
WinAMP от Nullsoft.
XMMS поддерживает также собственные
расширения.XMMS может быть установлен из порта или
пакета multimedia/xmms.Интерфейс XMMS интуитивно понятен и
включает в себя список песен, графический эквалайзер и многое другое.
Те, кто знаком с WinAMP, найдут
XMMS очень простым в использовании.Порт audio/mpg123 является
альтернативой, это MP3-проигрыватель для командной строки.mpg123 может быть запущен с указанием
звукового устройства и файла MP3 в командной строке как показано
ниже:&prompt.root; mpg123 -a /dev/dsp1.0 Foobar-GreatestHits.mp3
High Performance MPEG 1.0/2.0/2.5 Audio Player for Layer 1, 2 and 3.
Version 0.59r (1999/Jun/15). Written and copyrights by Michael Hipp.
Uses code from various people. See 'README' for more!
THIS SOFTWARE COMES WITH ABSOLUTELY NO WARRANTY! USE AT YOUR OWN RISK!
Playing MPEG stream from Foobar-GreatestHits.mp3 ...
MPEG 1.0 layer III, 128 kbit/s, 44100 Hz joint-stereo
/dev/dsp1.0 должно быть заменено соответствующим
устройством dsp для вашей системы.Копирование аудио дорожек с CDПеред тем как преобразовывать CD или дорожку CD в MP3, аудио данные
на CD должны быть скопированы на жёсткий диск. Это можно сделать путём
копирования данных CDDA (CD Digital Audio) в файл WAV.Утилита cdda2wav, которая является частью пакета
sysutils/cdrtools, может быть
использована для копирования аудио информации с CD, а также различной
связанной информации.Когда музыкальный CD находится в приводе, следующая команда может
быть выполнена под root для того,
чтобы скопировать весь CD в отдельные (один на каждую дорожку) WAV
файлы:&prompt.root; cdda2wav -D 0,1,0 -Bcdda2wav поддерживает ATAPI (IDE)
приводы CDROM. Для копирования с IDE привода, укажите имя устройства
вместо номеров SCSI. Например, для того, чтобы скопировать 7-ую
аудио дорожку с IDE-привода:&prompt.root; cdda2wav -D /dev/acd0a -t 7Параметр
указывает устройство SCSI 0,1,0,
соответственно результату работы cdrecord
-scanbus.Для того, чтобы копировать отдельные дорожки, используйте параметр
как показано ниже:&prompt.root; cdda2wav -D 0,1,0 -t 7Этот пример показывает как скопировать 7-ю дорожку музыкального CD.
Для того чтобы скопировать набор дорожек, например, с первой по
седьмую, укажите диапазон:&prompt.root; cdda2wav -D 0,1,0 -t 1+7Утилита &man.dd.1; также может быть использована для копирования
аудио дорожек на приводах ATAPI, для того, чтобы узнать больше об этом,
прочитайте .Создание файлов MP3На сегодняшний день наилучшим выбором программы для создания mp3
является lame.
Lame находится в дереве портов в подкаталоге
audio/lame.Используя скопированные файлы WAV, следующая команда преобразует
audio01.wav в
audio01.mp3:&prompt.root; lame -h -b 128 \
--tt "Foo Song Title" \
--ta "FooBar Artist" \
--tl "FooBar Album" \
--ty "2001" \
--tc "Ripped and encoded by Foo" \
--tg "Genre" \
audio01.wav audio01.mp3Частота 128 килобит является стандартом "де факто" для MP3. Многие,
однако, используют более высокие частоты для получения лучшего
качества, 160 или 192 килобита. Чем выше частота, тем больше дискового
пространства будет занимать получаемый MP3, но качество будет выше.
Параметр включает режим лучшее качество, но
меньше скорость. Параметры, начинающиеся с
указывают теги ID3, которые обычно содержат информацию о песне,
включаемую в файл MP3. О дополнительных настройках преобразования можно
узнать, прочитав страницу руководства lame.Декодирование MP3Для того, чтобы записать музыкальный CD из файлов MP3, они должны
быть преобразованы в несжатый формат WAV. Как
XMMS, так и
mpg123 поддерживают вывод MP3 в
распакованный формат файлов.Запись на диск в XMMS:Запустите XMMS:Нажмите правой кнопкой мыши в главном окне
XMMS для того, чтобы показать меню.Выберите Preferences (либо
Свойства, если у вас локализованная версия
XMMS) в
Options.Измените расширение вывода на Disk Writer Plugin
(или Расширение записи на диск, если у вас
локализованная версия XMMS).Нажмите Configure (или
Настройка, если у вас локализованная версия
XMMS).Введите (или выберите при помощи обзора) каталог, в который
следует сохранять распакованные файлы.Загрузите файл MP3 в XMMS как вы это
делаете обычно. Установите громкость на 100% и отключите
эквалайзер.Нажмите Воспроизвести —
XMMS будет выглядеть так же как и при
обычном воспроизведении MP3, но самой музыки слышно не будет. На
самом деле MP3 воспроизводится в файл.Убедитесь, что вы установили расширение вывода таким, как оно
было до этого, для того, чтобы снова слушать MP3.Запись в stdout в mpg123:Запустите mpg123 -s audio01.mp3 > audio01.pcmXMMS записывает файл в формате WAV, в то
время как mpg123 преобразовывает MP3 в
простые аудио данные PCM. Оба формата могут быть использованы
cdrecord для создания музыкальных
CD.
Для использования &man.burncd.8; вам потребуются простые аудио данные
PCM. Если же вы будете использовать файлы в формате WAV, то заметите
небольшой щелчок в начале каждой аудио дорожки, этот щелчок - заголовок
файла в формате WAV. Вы очень просто можете избавиться от него путём
удаления заголовка WAV при помощи утилиты
SoX (она может быть установлена из порта
audio/sox или соответствующего
пакета:&prompt.user; sox -t wav -r 44100 -s -w -c 2 track.wav track.rawПрочтите для того, чтобы узнать
больше о записи CD в FreeBSD.RossLippertПредоставил Воспроизведение видеоВоспроизведение видео является очень новой и быстро развивающейся
областью применения. Будьте терпеливы. Не всё будет работать так
беспроблемно, как это было со звуком.Прежде, чем вы начнёте, определите модель видеокарты и
чипсет, который она использует. Хотя &xorg;
и &xfree86;
поддерживают множество различных видеокарт, только их малая часть
показывает хорошую скорость воспроизведения видео. Для того, чтобы
получить список расширений, поддерживаемых X-сервером, который
используется вашей видеокартой, используйте команду &man.xdpyinfo.1; во
время работы X11.Неплохо также иметь небольшой файл MPEG, который бы использовался
как тестовый файл для проверки различных проигрывателей и настроек. Так
как некоторые проигрыватели DVD будут искать носитель DVD как
/dev/dvd по умолчанию или быть жёстко настроены
на него, возможно будет полезно сделать символические ссылки на
правильные устройства:&prompt.root; ln -sf /dev/acd0c /dev/dvd
&prompt.root; ln -sf /dev/racd0c /dev/rdvdДля FreeBSD 5.X, которая использует &man.devfs.5; рекомендуется
немного другой набор ссылок:&prompt.root; ln -sf /dev/acd0 /dev/dvd
&prompt.root; ln -sf /dev/acd0 /dev/rdvdОбратите внимание, природа &man.devfs.5; такова, что такие созданные
вручную ссылки не сохраняются при перезагрузке системы. Для
автоматического создания символических ссылок при каждой загрузке
системы добавьте в /etc/devfs.conf
следующие строки:link acd0 dvd
link acd0 rdvdКроме того, декодирование DVD требует доступа к специальным
функциям DVD-ROM, поэтому должен быть доступ на запись для устройств
DVD.параметры ядраCPU_ENABLE_SSEпараметры ядраUSER_LDTНекоторые из обсуждаемых портов полагаются на наличие некоторых
параметров ядра для правильной сборки. Перед тем, как собирать порты,
добавьте эти параметры в файл конфигурации ядра, пересоберите ядро и
перезагрузите систему:option CPU_ENABLE_SSEВо &os; 4.X options USER_LDT должно быть
добавлено в конфигурационный файл ядра. Этой опции
не существует во &os; 5.X и в более поздних версиях.Для того, чтобы улучшить работу разделяемой памяти X11,
рекомендуется увеличить значения некоторых переменных
&man.sysctl.8;:kern.ipc.shmmax=67108864
kern.ipc.shmall=32768Определение возможностей видеоXVideoSDLDGAСуществует несколько возможных путей отображения видео под X11. Что
именно будет действительно работать, во многом зависит от аппаратного
обеспечения. Каждый из описанных методов будет работать с различным
качеством
на разном аппаратном обеспечении. Во-вторых, воспроизведение видео в
X11, это тема, которой уделяется достаточно много внимания последнее
время, и с каждой новой версией &xorg;
или &xfree86; могут
наблюдаться значительные улучшения.Список наиболее часто используемых видеоинтерфейсов:X11: обычный вывод X11 с использованием разделяемой памяти.XVideo: расширение интерфейса X11, которое поддерживает видео в
любом объекте X11.SDL: the Simple Directmedia Layer.DGA: the Direct Graphics Access — прямой доступ для
графики.SVGAlib: низкоуровневый доступ к графике на консоли.XVideo&xorg; и
&xfree86; 4.X включают в себя
расширение, называющееся XVideo (также известное
как Xvideo, Xv и xv), которое позволяет отображать видео прямо на
объектах при помощи специального ускорения. Это расширение
предоставляет очень хорошее качество воспроизведения даже на low-end
машинах.Для того чтобы проверить, работает ли это расширение, используйте
команду xvinfo:&prompt.user; xvinfoXVideo поддерживается вашей видеокартой, если результат выглядит приблизительно так:X-Video Extension version 2.2
screen #0
Adaptor #0: "Savage Streams Engine"
number of ports: 1
port base: 43
operations supported: PutImage
supported visuals:
depth 16, visualID 0x22
depth 16, visualID 0x23
number of attributes: 5
"XV_COLORKEY" (range 0 to 16777215)
client settable attribute
client gettable attribute (current value is 2110)
"XV_BRIGHTNESS" (range -128 to 127)
client settable attribute
client gettable attribute (current value is 0)
"XV_CONTRAST" (range 0 to 255)
client settable attribute
client gettable attribute (current value is 128)
"XV_SATURATION" (range 0 to 255)
client settable attribute
client gettable attribute (current value is 128)
"XV_HUE" (range -180 to 180)
client settable attribute
client gettable attribute (current value is 0)
maximum XvImage size: 1024 x 1024
Number of image formats: 7
id: 0x32595559 (YUY2)
guid: 59555932-0000-0010-8000-00aa00389b71
bits per pixel: 16
number of planes: 1
type: YUV (packed)
id: 0x32315659 (YV12)
guid: 59563132-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x30323449 (I420)
guid: 49343230-0000-0010-8000-00aa00389b71
bits per pixel: 12
number of planes: 3
type: YUV (planar)
id: 0x36315652 (RV16)
guid: 52563135-0000-0000-0000-000000000000
bits per pixel: 16
number of planes: 1
type: RGB (packed)
depth: 0
red, green, blue masks: 0x1f, 0x3e0, 0x7c00
id: 0x35315652 (RV15)
guid: 52563136-0000-0000-0000-000000000000
bits per pixel: 16
number of planes: 1
type: RGB (packed)
depth: 0
red, green, blue masks: 0x1f, 0x7e0, 0xf800
id: 0x31313259 (Y211)
guid: 59323131-0000-0010-8000-00aa00389b71
bits per pixel: 6
number of planes: 3
type: YUV (packed)
id: 0x0
guid: 00000000-0000-0000-0000-000000000000
bits per pixel: 0
number of planes: 0
type: RGB (packed)
depth: 1
red, green, blue masks: 0x0, 0x0, 0x0Следует заметить, что перечисленные форматы (YUV2, YUV12 и т.п.) не
присутствуют в каждой реализации XVideo и их отсутствие может быть
помехой для некоторых проигрывателей.Если результат выглядит так:X-Video Extension version 2.2
screen #0
no adaptors presentто, возможно, XVideo не поддерживается для вашей видеокарты.Если XVideo не поддерживается вашей видеокартой, то это всего лишь
означает, что будет сложнее получить приемлемые для воспроизведения
видео вычислительные мощности. В зависимости от вашей видеокарты и
процессора, возможно, вы сможете получить удовлетворительный результат.
Возможно, вы должны будете прочитать о путях улучшения
производительности в .Simple Directmedia LayerSDL был задуман как уровень абстракции для разработки
кросплатформенных приложений под µsoft.windows;, BeOS и &unix;, позволяя
им эффективно использовать звук и графику. SDL предоставляет
низкоуровневые абстракции для аппаратного обеспечения, и
может быть более эффективным чем интерфейс X11.SDL есть в Коллекции портов FreeBSD: devel/sdl12.Прямой доступ для графики (DGA)DGA это расширение X11, которое позволяет программам напрямую
изменять кадровый буфер (framebuffer) без участия X-сервера. Поскольку
DGA основывается на низкоуровневом доступе к памяти, программы, которые
используют его должны исполняться от пользователя
root.Расширение DGA может быть протестировано при помощи &man.dga.1;.
Когда dga запущена, она изменяет цвета на экране при
каждом нажатии клавиш. Для того, чтобы выйти из неё, используйте
q.Порты и пакеты для работы с видеовидео портывидео пакетыЭтот раздел обсуждает программное обеспечение для работы с видео
из Коллекции Портов FreeBSD. Воспроизведение видео является
очень активной сферой разработок программного обеспечения и возможности
различных приложений могут несколько отличаться от описанных
здесь.Во-первых, важно помнить, что многие приложения для работы с
видео, которые работают на FreeBSD, были разработаны как приложения
Linux. Многие из этих приложений все еще бета-качества. Вот
некоторые проблемы, которые могут встретиться в работе видео
пакетов на FreeBSD:Приложение не может воспроизвести файл, который создало другое
приложение.Приложение не может воспроизвести файл, который создало
само.Одно и то же приложение на разных машинах, скомпилированное на
каждой машине специально для неё, воспроизводит один и тот же файл
различно.Кажущийся тривиальным фильтр, например фильтр изменения размеров
изображения, приводит к очень плохим артефактам из-за
неправильной функции изменения размера.Приложение часто не работает (оставляет core-файл).Документация не устанавливается вместе с портом и может быть
найдена лишь на сайте или в каталоге порта
work.Многие из этих приложений могут также проявлять
линуксизмы. Так, это могут быть
некоторые проблемы, связанные со способом реализации некоторых
стандартных библиотек в дистрибутивах Linux, или некоторыми
дополнительными возможностями ядра Linux, которые авторы приложений
посчитали существующими везде. Эти проблемы не всегда могут быть
обнаружены людьми,
поддерживающими порт (порты), вследствие чего могут возникнуть проблемы,
сходные с нижеперечисленными:Использование /proc/cpuinfo для того, чтобы
определить характеристики процессора.Неправильное использование нитей (threads), которое может
привести к зависанию программы при завершении вместо нормального
выхода.Программного обеспечения, которое обычно используется совместно
с данным приложением, ещё нет в Коллекции Портов FreeBSD.Таким образом, разработчики этих приложений должны сотрудничать с
людьми, поддерживающими порты, для того, чтобы минимизировать количество
обходных путей, необходимых для портирования.MPlayerMPlayer это недавно разработанный и
быстро развивающийся проигрыватель видео. Задачами команды
разработчиков MPlayer являются скорость и
гибкость при работе на Linux и других Unix-системах. Проект был начал,
когда его основатель стал сыт по горло плохой производительностью и
качеством проигрывателей того времени. Некоторые могут сказать, что
графический интерфейс был принесён в жертву рационализированному
дизайну. Однако, как
только вы привыкнете к опциям командной строки MPlayer и его управлению
с клавиатуры, всё будет хорошо.Компиляция MPlayerMPlayerсборкаMPlayer находится в multimedia/mplayer. MPlayer производит
различные тесты аппаратного обеспечения во время процесса компиляции,
в результате чего полученные исполняемые модули не могут быть
перенесены с одной системы на другую. Поэтому важно собирать его из
портов, а не использовать бинарный пакет. Также, при сборке вы можете
указать различные установки при помощи параметров командной строки
make, как описывается в
Makefile в начале сборки:&prompt.root; cd /usr/ports/multimedia/mplayer
&prompt.root; make
N - O - T - E
Take a careful look into the Makefile in order
to learn how to tune mplayer towards you personal preferences!
For example,
make WITH_GTK1
builds MPlayer with GTK1-GUI support.
If you want to use the GUI, you can either install
/usr/ports/multimedia/mplayer-skins
or download official skin collections from
http://www.mplayerhq.hu/homepage/dload.html
Параметры порта по умолчанию должны подходить большинству
пользователей. Однако, если вам необходим кодек XviD,
необходимо указать в командной строке параметр
WITH_XVID. Устройство
DVD по умолчанию также может быть указано в командной
строке параметром WITH_DVD_DEVICE,
по умолчанию используется /dev/acd0.На время написания данного документа порт
MPlayer'а собирает и устанавливает свою
документацию в формате HTML и два исполняемых файла,
mplayer и mencoder,
который является утилитой для перекодировки видео.Документация к MPlayer очень
информативна. Если читатель найдет информацию этой главы о аппаратном
обеспечении для поддержки видео и интерфейсах недостаточной, то
документация MPlayer будет очень
хорошим дополнением. Обязательно уделите время
чтению документации MPlayer, если вам
нужна информация о поддержке видео под &unix;.Использование MPlayerMPlayerиспользованиеКаждый пользователь MPlayer должен
создать подкаталог .mplayer в своем домашнем
каталоге. Для того, чтобы его создать, выполните следующие
действия:&prompt.user; cd /usr/ports/multimedia/mplayer
&prompt.user; make install-userПараметры для mplayer перечислены в страничке
руководства mplayer. За более подробной информацией вы можете обратиться
к документации в формате HTML. В этом разделе мы опишем несколько самых
распространённых случаев использования mplayer.Для того, чтобы воспроизвести файл, например
testfile.avi через один из многих видеоинтерфейсов,
используйте параметр :&prompt.user; mplayer -vo xv testfile.avi&prompt.user; mplayer -vo sdl testfile.avi&prompt.user; mplayer -vo x11 testfile.avi&prompt.root; mplayer -vo dga testfile.avi&prompt.root; mplayer -vo 'sdl:dga' testfile.aviСтоит испробовать все варианты интерфейсов, так как их
производительность зависит от множества факторов и будет заметно меняться
в зависимости от аппаратного обеспечения.Для того, чтобы воспроизвести DVD, замените
testfile.avi на , где N является номером
дорожки, с которой следует начать воспроизведение и
DEVICE файл устройства
привода DVD. Например, для того, чтобы воспроизвести дорожку 3 с
/dev/dvd:&prompt.root; mplayer -vo xv dvd://3 -dvd-device /dev/dvdУстройство DVD по умолчанию может быть определено во время
сборки порта MPlayer параметром
WITH_DVD_DEVICE. По умолчанию,
это устройство /dev/acd0. Дополнительную
информацию можно найти в Makefile порта.Для того, чтобы остановить, приостановить или продолжить
воспроизведение, воспользуйтесь привязкой клавиш, информация о которой
может быть получена посредством запуска mplayer -h, либо
на страничке документации.Дополнительные, достаточно важные параметры воспроизведения:
, которые включают полноэкранный режим и
, который улучшает производительность на
медленных системах.Для того, чтобы командная строка запуска mplayer не становилась
слишком большой, пользователь может создать файл
.mplayer/config и установить параметры по умолчанию
там:vo=xv
fs=yes
zoom=yesТакже mplayer может быть использован для
копирования дорожек DVD в .vob файлы. Для того,
чтобы скопировать вторую дорожку DVD необходимо выполнить следующую
команду:&prompt.root; mplayer -dumpstream -dumpfile out.vob dvd://2 -dvd-device /dev/dvdПолученный файл, out.vob, будет представлять
собой MPEG, с которым можно производить различные действия при помощи
программ, которые будут описаны далее в этом разделе.mencodermencoderПеред использованием
mencoder, было бы
неплохо ближе ознакомится с его параметрами, используя документацию в
формате HTML. Также существует страничка справочника mplayer, но она не
очень полезна без HTML документации. Существует бесчисленное множество
способов улучшения качества, снижения битрейта и изменения формата; и
некоторые из этих приёмов могут влиять на производительность. Ниже
приведено несколько примеров использования mencoder.
Во-первых, простое копирование:&prompt.user; mencoder input.avi -oac copy -ovc copy -o output.aviНеправильная комбинация параметров командной строки может привести к
появлению файлов, которые невозможно будет
воспроизвести даже mplayer. Поэтому, если вы хотите
скопировать изображение в файл, лучше использовать только параметр
mplayer .Для того, чтобы преобразовать input.avi в MPEG4
со звуком в формате MPEG Audio Layer 3 (MP3) (требуется audio/lame):&prompt.user; mencoder input.avi -oac mp3lame -lameopts br=192 \
-ovc lavc -lavcopts vcodec=mpeg4:vhq -o output.aviЭта команда создаст файл, воспроизводимый mplayer
и xine.input.avi может быть заменён на
и
mplayer, запущенный от
пользователя root, будет преобразовывать дорожку DVD
напрямую. Так как первый раз, скорее всего, вы будете недовольны
полученными результатами, всё же рекомендуется копировать
дорожку в файл и работать затем с файлом.Проигрыватель хinexine - это большой проект, в задачи
которого входит не только создание решения для видео все-в-одном, но и
создание базовой библиотеки с возможностью расширения путем
использования плагинов. Поставляется он как в виде порта,
так и в виде пакета, multimedia/xine.xine все еще несовершенен, но все-таки это
хорошее начало. На практике xine требует либо
быстрого процессора с быстрой видеокартой или поддержки расширения
XVideo. Графический интерфейс можно использовать, но он все еще немного
неуклюж.На время написания этого документа в поставке
xine не существовало модуля ввода, который бы
мог воспроизводить DVD, закодированные по алгоритму CSS. Существуют
сборки, в которых есть такой модуль, но ни одна из них не входит в
Коллекцию Портов FreeBSD.По сравнению с MPlayer,
xine является более дружелюбным к
пользователю, но, в то же время, скрывает более тонкие настройки и
управление от пользователя. Также xine лучше
работает на XVideo интерфейсах.По умолчанию, xine запускается с
графическим интерфейсом. Для открытия файлов используются меню.&prompt.user; xineВ качестве альтернативы можно использовать его для запуска файла
непосредственно, без GUI, следующей командой:&prompt.user; xine -g -p mymovie.aviУтилиты transcodeПриложение transcode не является
проигрывателем. Это набор инструментов для преобразования
видео и звуковых файлов. При помощи
transcode можно объединять видеофайлы,
исправлять поврежденные файлы, использовать инструменты командной строки
для работы с потоками ввода/вывода
stdin/stdout.Большое количество опций может быть указано во время
сборки порта multimedia/transcode.
Для сборки transcode мы рекомендуем
использовать следующую командную строку:&prompt.root; make WITH_OPTIMIZED_CFLAGS=yes WITH_LIBA52=yes WITH_LAME=yes WITH_OGG=yes \
WITH_MJPEG=yes -DWITH_XVID=yesПредложенных установок должно быть достаточно для
большинства пользователей.Для иллюстрации возможностей transcode
приводится пример, показывающий как сконвертировать файл
DivX формата в PAL MPEG-1 файл (PAL VCD):&prompt.user; transcode -i input.avi -V --export_prof vcd-pal -o output_vcd
&prompt.user; mplex -f 1 -o output_vcd.mpg output_vcd.m1v output_vcd.mpaИтоговый MPEG файл
output_vcd.mpg может быть проигран с помощью
MPlayer. Вы можете даже записать файл
на CD-R носитель для создания Video CD. В этом случае, вам нужно
будет установить и использовать программы multimedia/vcdimager и sysutils/cdrdao.Существует страничка справочника для transcode, но
вы также должны проконсультироваться с transcode
wiki для получения более детальной информации и
примеров.Дальнейшее чтениеРазличные пакеты видео программ для FreeBSD интенсивно
разрабатываются. Очень возможно, что в ближайшем будущем
многие обсуждаемые здесь проблемы разрешатся. Это займет время, и те, кто
желает получить максимум от аудио/видео возможностей FreeBSD, должны
будут собирать необходимые знания из нескольких списков часто задаваемых
вопросов и обучающих статей, а также использовать различные
приложения. Этот раздел существует для того, чтобы читатель мог получить
указания на несколько источников дополнительной информации.Документация
MPlayer очень содержательна в
техническом плане. Возможно, эти документы должны использоваться любым
человеком, желающим получить высокий уровень знаний о видео на &unix;
системах. Список рассылки MPlayer враждебен
для любого, кто не потрудился прочитать документацию, так что, если у вас
есть желание сообщать о найденных ошибках, прочитайте вначале
документацию.xine
HOWTO содержит главу об улучшении производительности, которая
применима к любому проигрывателю.Наконец, существует несколько многообещающих приложений, которые
читатель может испробовать:Avifile,
для которого также существует порт multimedia/avifile.Ogle, для
которого также существует порт multimedia/ogle.Xtheatermultimedia/dvdauthor, пакет с открытыми
текстами для распространения DVD контента.JosefEl-RayesПервоначально предоставил MarcFonvieilleУлучшил и адаптировал Настройка ТВ тюнеровТВ тюнерыВведениеТВ тюнеры предназначены для просмотра
широковещательного или кабельного телевидения на компьютере. Большинство
тюнеров поддерживают композитный видео вход RCA или
S-video, а некоторые из них поставляются с FM радио тюнером.&os; поддерживает PCI ТВ тюнеры, использующие
Brooktree Bt848/849/878/879 или Conexant CN-878/Fusion 878a
Video Capture Chip через драйвер &man.bktr.4;. Вы должны также
убедиться, что тюнер поддерживается; обратитесь к странице справочника
&man.bktr.4; за списком поддерживаемых тюнеров.Добавление драйвераДля использования карты потребуется загрузить драйвер
&man.bktr.4;, что можно сделать, добавив в
/boot/loader.conf следующую строку:bktr_load="YES"В качестве альтернативы, вы можете статически скомпилировать
ядро с поддержкой ТВ тюнера; добавьте следующие строки в
файл конфигурации ядра:device bktr
device iicbus
device iicbb
device smbusЭти дополнительные драйвера устройств необходимы, поскольку
компоненты карты соединены через шину I2C. Затем соберите и
установите новое ядро.Как только поддержка тюнера будет добавлена в систему, перегрузите
компьютер. Во время загрузки TV карта должна отобразить примерно
такие строки:bktr0: <BrookTree 848A> mem 0xd7000000-0xd7000fff irq 10 at device 10.0 on pci0
iicbb0: <I2C bit-banging driver> on bti2c0
iicbus0: <Philips I2C bus> on iicbb0 master-only
iicbus1: <Philips I2C bus> on iicbb0 master-only
smbus0: <System Management Bus> on bti2c0
bktr0: Pinnacle/Miro TV, Philips SECAM tuner.Конечно, эти сообщения будут различаться на разном оборудовании.
Тем не менее, проверьте, что тюнер определяется правильно; возможна
перезапись параметров, определенных ядром, с помощью &man.sysctl.8;
MIB и параметров в файле настройки ядра. Например, если вы хотите
указать, что это Philips SECAM тюнер, добавьте следующую строку
к файлу настройки ядра:options OVERRIDE_TUNER=6или прямо задайте переменную &man.sysctl.8;:&prompt.root; sysctl hw.bt848.tuner=6Обратитесь к странице &man.bktr.4; и файлу
/usr/src/sys/conf/NOTES за более детальной
информацией о доступных параметрах (если вы работаете в
&os; 4.X, вместо
/usr/src/sys/conf/NOTES используйте
/usr/src/sys/i386/conf/LINT).Полезные приложенияДля использования ТВ тюнера вам потребуется установить одно из
следующих приложений:multimedia/fxtv
предоставляет возможности ТВ-в-окне и захвата
изображений/аудио/видео.multimedia/xawtv
это также приложение для ТВ тюнера, с теми же, что и у
fxtv возможностями.misc/alevt раскодирует
и отображает видеотекст/телетекст.audio/xmradio,
приложение для использования с FM радио тюнером, поставляемым
с некоторыми ТВ тюнерами.audio/wmtune, это
удобное приложение для радио тюнеров.В коллекции портов &os; можно найти и другие приложения.Решение проблемЕсли вы столкнулись с какой-либо проблемой, связанной с ТВ
тюнером, проверьте в первую очередь поддержку микросхемы захвата
видео и тюнера драйвером &man.bktr.4;, а также правильность установки
параметров. За дальнейшей поддержкой и с вопросами о ТВ тюнере
вы можете обращаться в &a.multimedia.name; и
использовать его архивы.MarcFonvieilleНаписана ДмитрийМорозовскийПеревод на русский язык: СканерысканерыВведение&os;, как и прочие современные операционные системы, поддерживает
сканеры. Стандартный доступ к сканерам обеспечивается программой
SANE (Scanner Access Now
Easy), обеспечивающей универсальный интерфейс
(API)
и доступной в коллекции портов &os;. Для общения со сканерами
SANE использует некоторые драйвера
устройств &os;.&os; поддерживает сканеры с интерфейсом как SCSI, так и USB.
Убедитесь, что ваш сканер поддерживается
SANE перед тем, как приступить к
конфигурации. Для
SANE существует список
поддерживаемых устройств где находится информация
о поддержке сканера и статусе этой поддержки.
Кроме того, страница справочника &man.uscanner.4; также перечисляет
поддерживаемые устройства.Конфигурация ядраКак уже отмечалось, поддерживаются как SCSI, так и USB сканеры.
В зависимости от интерфейса вашего сканера требуется поддержка разных
драйверов устройств.USBСтандартное ядро GENERIC включает в себя
драйвера, необходимые для поддержки USB сканеров. Если вы
компилируете собственное ядро, убедитесь, что в его конфигурации
присутствуют строкиdevice usb
device uhci
device ohci
device uscannerВ зависимости от чипсета USB, встроенного в вашу материнскую
плату, потребуется лишь один из драйверов device
uhci или device ohci, однако, наличие
обеих строк в конфигурации ядра никому не повредит.Если вы не хотите перестраивать ядро, и при этом ваше ядро не
является стандартным (GENERIC), вы можете
загрузить модуль драйвера поддержки сканеров &man.uscanner.4;
при помощи команды &man.kldload.8;:&prompt.root; kldload uscannerДля автоматической загрузки модуля при старте системы добавьте
в файл /boot/loader.conf строкуuscanner_load="YES"После перезагрузки с новым ядром или загрузки модуля подключите
ваш USB сканер. В буфере системных сообщений (&man.dmesg.8;) должно
появиться сообщение о найденном устройстве, например:uscanner0: EPSON EPSON Scanner, rev 1.10/3.02, addr 2В данном случае сканер будет использовать устройство
/dev/uscanner0.В &os; 4.X для корректного распознавания некоторых USB
устройств должен быть запущен даемон USB (&man.usbd.8;).
Для этого добавьте строку usbd_enable="YES"
в файл конфигурации системы /etc/rc.conf.
SCSIЕсли ваш сканер имеет интерфейс SCSI, важно знать, к какому
контроллеру он подключен. В зависимости от контроллера потребуются
различные драйвера в файле конфигурации ядра. Стандартное ядро
GENERIC поддерживает большинство
распространенных SCSI-контроллеров. Внимательно прочитайте файл
NOTES (в &os; 4.X файл
LINT) и добавьте необходимые строки в файл
конфигурации вашего ядра. Помимо строки для драйвера адаптера,
вам потребуются следующие строки:device scbus
device passПосле сборки и загрузки нового ядра, в буфере системных
сообщений должны появиться строки о вашем сканере, например:pass2 at aic0 bus 0 target 2 lun 0
pass2: <AGFA SNAPSCAN 600 1.10> Fixed Scanner SCSI-2 device
pass2: 3.300MB/s transfersЕсли сканер не был включен в момент загрузки, его можно
принудительно опознать, выполнив сканирование SCSI шины при
помощи команды &man.camcontrol.8;:&prompt.root; camcontrol rescan all
Re-scan of bus 0 was successful
Re-scan of bus 1 was successful
Re-scan of bus 2 was successful
Re-scan of bus 3 was successfulПосле этого сканер должен появиться в списке устройств:&prompt.root; camcontrol devlist
<IBM DDRS-34560 S97B> at scbus0 target 5 lun 0 (pass0,da0)
<IBM DDRS-34560 S97B> at scbus0 target 6 lun 0 (pass1,da1)
<AGFA SNAPSCAN 600 1.10> at scbus1 target 2 lun 0 (pass3)
<PHILIPS CDD3610 CD-R/RW 1.00> at scbus2 target 0 lun 0 (pass2,cd0)Более подробная информация о устройствах SCSI доступна на
страницах справочника &man.scsi.4; и &man.camcontrol.8;.Конфигурация SANEСистема SANE состоит из двух частей:
аппаратной поддержки (backend, graphics/sane-backends) и программной
поддержки (frontend, graphics/sane-frontends). Первая часть
обеспечивает собственно доступ к сканеру. Список
поддерживаемых устройствSANE
содержит информацию о необходимом вам аппаратном модуле.
Вторая часть обеспечивает графический интерфейс для сканирования
(xscanimage).В первую очередь следует установить порт или пакет graphics/sane-backends, после чего при
помощи команды sane-find-scanner проверить
поддержку сканера системой SANE:&prompt.root; sane-find-scanner -q
found SCSI scanner "AGFA SNAPSCAN 600 1.10" at /dev/pass3В выводе должны присутствовать интерфейс сканера и имя
используемого устройства. Производитель и модель сканера могут
отсутствовать: это нормально.Некоторым USB сканерам может потребоваться загрузка прошивки.
Подробности смотрите в страницах справочника драйвера сканера,
&man.sane-find-scanner.1; и &man.sane.7;.Теперь необходимо убедиться, что сканер опознан программой
графического интерфейса. В состав системы
SANE входит утилита &man.scanimage.1;,
позволяющая работать со сканером из командной строки. Опция
используется для показа информации
о сканере:&prompt.root; scanimage -L
device `snapscan:/dev/pass3' is a AGFA SNAPSCAN 600 flatbed scannerОтсутствие сообщений или сообщение об отсутствии устройств
означает, что утилита &man.scanimage.1; не смогла идентифицировать
сканер. В этом случае вам потребуется отредактировать файл
конфигурации аппаратного модуля и указать устройство, используемое
сканером. Все файлы настройки находятся в каталоге
/usr/local/etc/sane.d/.
Такие проблемы присущи некоторым моделям USB сканеров.
Например, в случае USB сканера, описанного в , утилита
sane-find-scanner выдаст следующую информацию:
&prompt.root; sane-find-scanner -q
found USB scanner (UNKNOWN vendor and product) at device /dev/uscanner0Сканер обнаружен корректно, он использует интерфейс USB
и доступен через устройство /dev/uscanner0.
Теперь попробуем идентифицировать его:&prompt.root; scanimage -L
No scanners were identified. If you were expecting something different,
check that the scanner is plugged in, turned on and detected by the
sane-find-scanner tool (if appropriate). Please read the documentation
which came with this software (README, FAQ, manpages).Поскольку сканер не идентифицирован, нам потребуется изменить
файл конфигурации
/usr/local/etc/sane.d/epson.conf.
В нашем примере использован сканер &epson.perfection; 1650, так что
мы знаем, что будет использоваться драйвер epson.
Не забудьте прочитать комментарии в файле конфигурации. Требуемые
изменения весьма просты: закомментируйте все строки, описывающие
интерфейсы, не соответствующие интерфейсу вашего сканера (в нашем
случае, все строки, начинающиеся со scsi: наш
сканер использует интерфейс USB), и добавьте в конец файла строку,
содержащую интерфейс и имя использованного устройства.
Мы добавим строкуusb /dev/uscanner0Пожалуйста, прочтите комментарии в файле конфигурации, а также
страницы справочника для более полной информации. Теперь мы можем
проверить, что наш сканер опознан:&prompt.root; scanimage -L
device `epson:/dev/uscanner0' is a Epson GT-8200 flatbed scannerНаш USB сканер опознан. Не столь важно, что имя и номер модели
не совпадают, главное, что используются правильные имя устройства
и драйвер: `epson:/dev/uscanner0'.После того как команда scanimage -L опознала
сканер, конфигурация завершена. Все готово к сканированию.Хотя утилита &man.scanimage.1; позволяет производить сканирование
из командной строки, как правило, для сканирования предпочтительнее
использовать графический интерфейс. Для этого в состав
SANE входит простая, но эффективная
утилита xscanimage (graphics/sane-frontends).Другой популярной программой графического интерфейса к сканеру
является Xsane (graphics/xsane). Эта программа
поддерживает такие расширенные возможности, как разные режимы
сканирования (фотокопия, факс и т.п.), цветокоррекцию, потоковое
сканирование и другие. Оба приложения пригодны для использования
в качестве плагинов сканирования для GIMP.
Доступ к сканеру для других пользователейВсе описанные операции выполнялись нами с привилегиями
суперпользователя (root). Вам может
потребоваться дать доступ к сканеру другим пользователям.
Для этого необходимо разрешить доступ на чтение и запись
к файлу устройства, обслуживающему сканер. В нашем примере
USB сканер использует устройство /dev/uscanner0,
принадлежащее группе operator.
Добавление пользователя joe в группу
operator разрешит ему использовать сканер:
&prompt.root; pw groupmod operator -m joeЗа подробностями обращайтесь к странице справочника &man.pw.8;.
Вам также потребуется установить нужные права доступа (0660 или 0664)
к устройству /dev/uscanner0, поскольку по
умолчанию группа operator может лишь
читать из него. Это достигается добавлением следующей строки
в файл /etc/devfs.rules:[system=5]
add path uscanner0 mode 660Затем добавьте в файл конфигурации системы
/etc/rc.conf такую строку (после чего
перезагрузите систему):devfs_system_ruleset="system"Подробную информацию о правах на файлы устройств вы найдете
на странице справочника &man.devfs.8;. В &os; 4.X группа
operator по умолчанию имеет права как
на чтение, так и на запись, к устройству
/dev/uscanner0.Разумеется, по соображениям безопасности, вы должны как следует
подумать, прежде чем добавлять пользователя в другие группы,
в особенности в группу operator.