diff --git a/ru_RU.KOI8-R/books/handbook/eresources/chapter.sgml b/ru_RU.KOI8-R/books/handbook/eresources/chapter.sgml
index bcd102f421..60fe234b88 100644
--- a/ru_RU.KOI8-R/books/handbook/eresources/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/eresources/chapter.sgml
@@ -1,1667 +1,1683 @@
ДенисПеплинПеревод на русский язык: Ресурсы в интернетВысокая скорость прогресса FreeBSD делает непрактичным использование
печатных изданий для информирования о последних разработках. Электронные
ресурсы это лучший, а зачастую и единственный способ информирования
о новых возможностях. Поскольку FreeBSD основывается на усилиях
добровольцев, сообщество пользователей само по себе зачастую выполняет
роль службы технической поддержки, а электронная почта и
новости USENET это наиболее эффективный способ обращения к этому
сообществу.Наиболее важная контактная информация сообщества пользователей
FreeBSD показана ниже. Если вам известно о других ресурсах, не
упомянутых здесь, пожалуйста отправьте информацию о них в
&a.doc;, чтобы мы могли включить в этот документ.Списки рассылкиХотя многие участники разработки FreeBSD читают USENET, мы не можем
всегда гарантировать, что ответим на ваши вопросы в краткий срок
(или вообще), если вы отправите их только в группы
comp.unix.bsd.freebsd.*. Вопросы, отправленные
в соответствующий список рассылки, достигнут и нас и обширной аудитории
FreeBSD, что несомненно гарантирует лучшую (или как минимум более
быструю) поддержку.Все сообщения в приведенные ниже списки рассылки должны быть
составлены только на английском языке.Описание каждой рассылки дано в конце этого документа.
Пожалуйста, прочтите описание перед подпиской или отправкой
почты в любой из списков. Большинство наших подписчиков
получают многие сотни относящихся к FreeBSD сообщений каждый день,
и определяя правила использования рассылок мы стремимся удержать
высокое соотношение сигнал к шуму. При меньшем
соотношении списки рассылки перестанут быть эффективной средой общения
участников проекта.Архивы поддерживаются для всех списков рассылки и поиск по ним
организован на WWW
сервере FreeBSD. Поиск в архиве по ключевым словам
дает отличный способ получения ответов на часто задаваемые вопросы
и должен быть выполнен перед отправкой вопроса.Списки рассылкиОбщие списки: Ниже представлены общие
списки рассылки, к которым каждый может (и приглашается)
присоединиться:СписокНазначение&a.cvsall.name;Изменения, вносимые в дерево исходных текстов
FreeBSD&a.advocacy.name;В защиту FreeBSD&a.announce.name;Важные события и вехи проекта&a.arch.name;Обсуждения архитектуры и дизайна системы&a.bugbusters.name;Обсуждения, относящиеся к поддержке базы данных
сообщений о проблемах FreeBSD и соответствующим
инструментам&a.bugs.name;Сообщения о проблемах&a.chat.name;Не-технические темы, относящиеся к сообществу
FreeBSD&a.config.name;Разработка инструментов установки и настройки
FreeBSD&a.current.name;Обсуждения, относящиеся к использованию
&os.current;&a.isp.name;Вопросы использования FreeBSD провайдерами&a.jobs.name;Вакансии и резюме, относящиеся к FreeBSD,
с полной и частичной занятостью&a.newbies.name;Рассылка FreeBSD для новых пользователей&a.policy.name;Публикация правил FreeBSD Core team. Только для чтения,
малое количество сообщений&a.questions.name;Вопросы пользователей и техническая поддержка&a.security-notifications.name;Уведомления безопасности&a.stable.name;Обсуждения, относящиеся к использованию
&os.stable;&a.test.name;Рассылка для отправки тестовых сообщений (вместо
обычных списков рассылкиТехнические списки: Следующие списки
предназначены для технических обсуждений. Вам необходимо внимательно
прочитать описание перед подпиской или отправкой почты в один из
этих списков, поскольку они предназначены для использования внутри
проекта.СписокНазначение&a.acpi.name;Разработка ACPI и системы управления
энергопотреблением&a.afs.name;Портирование AFS на FreeBSD&a.aic7xxx.name;Разработка драйверов для &adaptec; AIC 7xxx&a.alpha.name;Портирование FreeBSD на Alpha&a.amd64.name;Портирование FreeBSD на системы AMD64&a.apache.name;Обсуждение портов, относящихся к
Apache&a.arm.name;Портирование FreeBSD на процессоры &arm;&a.atm.name;Использование ATM сетей с FreeBSD&a.audit.name;Проект аудита исходных текстов&a.binup.name;Дизайн и разработка системы бинарных обновлений&a.cluster.name;Использование FreeBSD в кластерах&a.cvsweb.name;Поддержка CVSweb&a.database.name;Обсуждение использования и разработки баз данных
под FreeBSD&a.doc.name;Создание относящихся к FreeBSD документов&a.emulation.name;Эмуляция других систем, таких как
Linux/DOS/&windows;&a.firewire.name;Техническое обсуждение FreeBSD &firewire;
(iLink, IEEE 1394)&a.fs.name;Файловые системы&a.geom.name;Относящиеся к GEOM обсуждения и реализации&a.gnome.name;Портирование GNOME
и приложений GNOME&a.hackers.name;Общее техническое обсуждение&a.hardware.name;Общее обсуждение оборудования для
FreeBSD&a.i18n.name;Интернационализация FreeBSD&a.ia32.name;FreeBSD на платформе IA-32 (&intel; x86)&a.ia64.name;Портирование FreeBSD на будущие системы Intel
IA64&a.ipfw.name;Технические обсуждения, относящиеся к переработке
кода IP брандмауэра&a.isdn.name;Разработчики ISDN&a.java.name;Разработчики &java; и люди, портирующие &jdk; на
FreeBSD&a.kde.name;Портирование KDE и
приложений KDE&a.lfs.name;Портирование LFS на FreeBSD&a.libh.name;Второе поколение программы установки системы и
пакетов&a.mips.name;Портирование FreeBSD на &mips;&a.mobile.name;Обсуждение портативных компьютеров&a.mozilla.name;Портирование Mozilla на
FreeBSD&a.multimedia.name;Мультимедиа приложения&a.newbus.name;Технические обсуждения архитектуры шины&a.net.name;Обсуждения, относящиеся к сети и исходному тексту
TCP/IP&a.openoffice.name;Портирование OpenOffice.org и
&staroffice; на FreeBSD&a.performance.name;Вопросы оптимизации производительности для
быстрых/работающих под большой нагрузкой серверов&a.perl.name;Поддержка различных относящихся к
perl портов&a.platforms.name;Относится к портам для платформ не-Intel
архитектуры&a.ports.name;Обсуждения коллекции портов&a.ports-bugs.name;Обсуждения относящихся к портам ошибок/PR&a.ppc.name;Портирование FreeBSD на &powerpc;&a.qa.name;Обсуждение гарантий качества (Quality Assurance),
обычно перед релизом&a.realtime.name;Разработка расширений реального времени для FreeBSD&a.scsi.name;Подсистема SCSI&a.security.name;Сообщения безопасности, касающиеся FreeBSD&a.small.name;Использование FreeBSD во встроенных приложениях&a.smp.name;Обсуждение [не]симметричной мультипроцессорной
архитектуры&a.sparc.name;Портирование FreeBSD на системы, основанные на
&sparc;&a.standards.name;Соответствие FreeBSD стандартам C99 и &posix;&a.threads.name;Потоки в FreeBSD&a.testing.name;Тестирование производительности и стабильности
FreeBSD&a.tokenring.name;Поддержка Token Ring в FreeBSD
+
+ &a.usb.name;
+ Обсуждение поддержки USB в &os;
+
+
&a.vuxml.name;Обсуждение инфраструктуры VuXML&a.x11.name;Сопровождение и поддержка X11 в FreeBSDОграниченные списки: Следующие списки
рассылки предназначены для более специализированной (и более
официальной) аудитории и вероятно не могут заинтересовать широкую
публику. Вероятно хорошей идеей будет сначала наладить общение
в технических списках рассылки перед присоединением к ограниченным
спискам, так вы сможете освоить этику общения.СписокНазначение&a.hubs.name;Люди, поддерживающие зеркала (поддержка
инфраструктуры)&a.usergroups.name;Координация групп пользователей&a.vendors.name;Координация поставщиков перед релизом&a.www.name;Ответственные за www.FreeBSD.orgДайджест рассылки: Все вышеприведенные
списки доступны в формате дайджеста. После подписки на рассылку,
вы можете изменить параметры дайджеста в разделе настроек учетной
записи.CVS рассылки: Следующие рассылки
предназначены для людей, заинтересованных в просмотре сообщений
об изменении в различных областях дерева исходных текстов.
Это списки только для чтения и вы не должны
отправлять туда почту.РассылкаОбласть исходного текстаОписание области исходного текста&a.cvsall.name;/usr/(CVSROOT|doc|ports|projects|src)Все изменения в любой области дерева исходных текстов
(надмножество других списков рассылки cvs)&a.cvs-doc.name;/usr/(doc|www)Все изменения в дереве исходных текстов
документации и веб сервера&a.cvs-ports.name;/usr/portsВсе изменения в дереве портов&a.cvs-projects.name;/usr/projectsВсе изменения в дереве проектов&a.cvs-src.name;/usr/srcВсе изменения в дереве исходных текстов системыКак подписатьсяДля подписки на рассылку, нажмите на название списка рассылки
выше или воспользуйтесь ссылкой &a.mailman.lists.link; и
нажмите на имя рассылки, которой вы заинтересовались. Страница
списка рассылки содержит все необходимые инструкции по
подписке.Для отправки сообщения в выбранный список рассылки, отправьте
письмо в <listname@FreeBSD.org>.
Это письмо будет разослано участникам рассылки по всему миру.Для отписки от рассылки, нажмите на ссылку, находящуюся внизу
каждого письма, отправляемого через список рассылки. Возможна
также отписка путем отправки письма на
freebsd-[listname]-unsubscribe@FreeBSD.org.Напоминаем, что обсуждение в технических списках рассылки
должно оставаться в рамках технической темы. Если вас интересует
только получение важных анонсов, мы предлагаем подписаться на
рассылку с небольшим трафиком &a.announce.name;.Описание рассылокВсе списки рассылки FreeBSD имеют
определенные основные правила, которых должен придерживаться каждый
использующий их. Несоблюдение этих правил приведет к отправлению
двух (2) предупреждений от FreeBSD Postmaster
postmaster@FreeBSD.org, после которых, после третьего
нарушения, подписчик будет удален из всех списков рассылки
FreeBSD и дальнейшие его сообщения будут отфильтровываться.
Мы сожалеем, что эти правила и меры вообще необходимы, но современный
интернет это довольно суровая среда и многие его механизмы довольно
слабы.Основные правила:Тема любого сообщения должна соответствовать назначению
списка рассылки, в который это сообщение отправляется. Например,
если список рассылки посвящен техническим вопросам, сообщение
должно быть техническим. Продолжающееся обсуждение вне темы, или
флейм только понижают ценность рассылки для всех ее участников
и поэтому не разрешаются. Для обсуждений вне какой-либо
определенной темы необходимо использовать &a.chat;, специально
для этого предназначенный.Ни одно сообщение не должно отправляться более чем в 2
рассылки, отправка сообщения в 2 рассылки должна выполняться
только при наличии простой и очевидной причины для дублирования
сообщения. В большинстве рассылок подписчикам уже приходит
много избыточного материала, и за исключением редких случаев
(скажем, -stable & -scsi), на самом деле нет
причины отправлять сообщение более чем в один список рассылки.
Если сообщение отправлено вам так, что в поле
Cc находятся несколько списков рассылки,
необходимо урезать поле Cc перед отправкой
ответа. Именно вы отвечаете за собственные
сообщения, независимо от того, кто был автором исходного
письма.Персональные нападки и профанация (в контексте аргументов) не
разрешены, это относится и к пользователям, и к разработчикам.
Грубые нарушения сетевой этики, такие как цитирование или
пересылка личной переписки без специального на то разрешения,
осуждаются но специальные меры в этом случае не принимаются.
Однако, существует несколько специальных
случаев, когда такие письма не отвечают назначению списка рассылки
и, следовательно, могут повлечь отправку предупреждения (или
исключение из списка рассылки).Реклама не-FreeBSD продуктов или сервисов строго запрещена и
исключение из списка рассылки последует незамедлительно, если
станет очевидным, что это спам.Описания рассылок:&a.acpi.name;Разработка ACPI и системы управления
энергопотреблением&a.afs.name;Andrew File SystemЭтот список предназначен для обсуждения портирования
и использования AFS от CMU/Transarc&a.announce.name;Важные события / вехи проектаЭтот список рассылки предназначен для тех, кто интересуется
только периодическими анонсами значительных событий FreeBSD.
Сюда включаются анонсы снэпшотов и других релизов, а также
новых возможностей FreeBSD. Рассылка может содержать призыв
к добровольцам и т.п. Это строго модерируемый список рассылки
с малым объемом трафика.&a.arch.name;Обсуждение архитектуры и
дизайна системыЭта рассылка предназначена для обсуждения архитектуры
FreeBSD. Сообщения в основном строго технические.
Примеры подходящих тем:Как изменить систему сборки для одновременной сборки
нескольких по-разному настроенных систем.Что необходимо исправить в VFS для включения слоев
Heidemann.Как необходимо изменить интерфейс драйверов устройств
для использования одних и тех же драйверов на множестве
шин и архитектур.Как написать сетевой драйвер.&a.audit.name;Проект аудита исходных текстовЭто список рассылки для проекта аудита исходных текстов
FreeBSD. Хотя первоначально он предназначался для изменений,
связанных с безопасностью, его назначение было расширено для
пересмотра всех изменений кода.В эту рассылку отправляется большой объем исправлений,
и она вероятно не представляет интереса для обычного
пользователя FreeBSD. Обсуждения безопасности, не относящиеся
к определенному изменению в коде, ведутся в freebsd-security.
Разработчикам предлагается отправлять изменения в этот список
рассылки для просмотра, особенно если эти изменения затрагивают
части кода, ошибки в которых могут повлечь нарушение
целостности системы.&a.binup.name;Проект бинарного обновления
FreeBSDЭтот список предназначен для обсуждений системы бинарного
обновления системы, или binup.
В этой рассылке обсуждаются вопросы дизайна, детали реализации,
исправления, сообщения об ошибках, сообщения о статусе, запросы
на расширение функциональности, протоколы коммитов, и все, что
относится к binup.&a.bugbusters.name;Координация усилий по обработке сообщений о
проблемахНазначение этой рассылки в координации и предоставлении
места для обсуждения для лиц, обслуживающих базу данных
сообщений о проблемах (bugmeister, bugbusters) и для всех
сторон, интересующихся базой данных PR. Эта рассылка не
предназначена для обсуждения отдельных проблем, исправлений
или PR.&a.bugs.name;Сообщения об ошибкахЭтот список рассылки предназначен для отправки сообщений об
ошибках в FreeBSD. Когда это возможно, сообщения должны
отправляться с использованием &man.send-pr.1; или через
WEB интерфейс
к send-pr.&a.chat.name;Не-технические темы, относящиеся к сообществу
FreeBSDВ эту рассылку входят все темы, не подходящие для других
рассылок, с не-технической, социальной информацией.
Она включает обсуждения на темы:
кто пьет слишком много кофе, где варят
лучшее пиво, кто варит пиво в своем подвале, и так далее.
Нерегулярные анонсы важных событий (такие как будущие встречи,
свадьбы, дни рождения, новая работа и т.д.) могут быть
опубликованы в технических рассылках, но ответы должны
отправляться в -chat.&a.core.name;Команда FreeBSD coreЭто внутренний список рассылки, используемый членами
core. Сообщения в эту рассылку могут быть отправлены
по серьезной, имеющей отношение к FreeBSD причине, которая
требует рассмотрения на самом высоком уровне.&a.current.name;Обсуждения, касающиеся использования
&os.current;Это список рассылки для пользователей &os.current;. Он
включает предупреждения о новых возможностях, вносимых в
-CURRENT, влияющих на пользователей, и инструкции относительно
действий, которые должны быть предприняты для поддержки
-CURRENT. Всякий, работающий с CURRENT,
должен подписаться на эту рассылку. Это технический список
рассылки, все сообщения должны быть строго техническими.&a.cvsweb.name;FreeBSD CVSweb ProjectТехнические обсуждения использования, разработки и поддержки
FreeBSD-CVSweb.&a.doc.name;Проект документированияЭтот список рассылки предназначен для обсуждения вопросов
и проектов, относящихся к созданию документации для FreeBSD.
Члены этой рассылки все вместе обозначаются как
The FreeBSD Documentation Project. Это открытая
рассылка; присоединяйтесь и участвуйте!&a.firewire.name;&firewire; (iLink, IEEE 1394)Это список рассылки, предназначенный для обсуждения дизайна
и реализации подсистемы &firewire; (также известной как
IEEE 1394 или iLink) в FreeBSD. Соответствующие темы
относятся к стандартам, устройствам шины и их протоколам,
наборам плат/карт/чипов адаптера, а также архитектуре и
реализации кода для их правильной поддержки.&a.fs.name;Файловые системыОбсуждения, относящиеся к файловым системам FreeBSD. Это
технический список рассылки, предназначенный только для
технических обсуждений.&a.geom.name;GEOMОбсуждения, относящиеся к GEOM и связанным с GEOM реализациям.
Это технический список рассылки, предназначенный только для
технических обсуждений.&a.gnome.name;GNOMEОбсуждения, относящиеся к десктопу
GNOME для системы FreeBSD.
Это технический список рассылки, предназначенный только для
технических обсуждений.&a.ipfw.name;IP брандмауэрЭто форум для технических обсуждений, относящихся к
редизайну кода IP брандмауэра в FreeBSD.
Это технический список рассылки, предназначенный только для
технических обсуждений.&a.ia64.name;Портирование FreeBSD на IA64Это технический список рассылки для тех, кто активно
работает над портированием FreeBSD на платформу IA-64
от Intel, предназначенный для поднятия вопросов или обсуждения
альтернативных решений. Те, кто интересуется обсуждаемыми
проблемами, также приглашаются к участию в рассылке.&a.isdn.name;ISDN соединенияЭто список рассылки для обсуждения разработки поддержки
ISDN для FreeBSD.&a.java.name;Разработка &java;Этот список рассылки предназначен для обсуждения ключевых
приложений &java; для FreeBSD, а также портирования и
поддержки &jdk;.&a.jobs.name;Предложение и поиск работыЭто форум для публикации вакансий и резюме, относящихся
к &os;. Например, если вы ищете работу, относящеюся к
&os;, или у вас есть работа, связанная с &os;, вы можете
разместить соответствующую информацию именно здесь. Эта
рассылка не предназначена для обсуждения
общих вопросов
о приеме на работу, поскольку форумы на соответствующие
темы уже существуют на других сайтах.Имейте ввиду, что эта рассылка, как и другие рассылки
на FreeBSD.org, распространяется по всему миру. Поэтому вам
необходимо четко указать свое местоположение и область,
с которой возможны телекоммуникации или помощь в
перемещении.Письма должны быть составлены только в открытых форматах
— предпочтителен чистый текст, но Portable Document
Format (PDF), HTML, и некоторые другие
форматы могут быть прочитаны многими. Закрытые форматы,
такие как µsoft; Word (.doc)
будут отброшены сервером почтовой рассылки.&a.kde.name;KDEОбсуждения, относящиеся к KDE в
системах FreeBSD. Это технический список рассылки,
предназначенный только для технических обсуждений.&a.hackers.name;Технические обсужденияЭто форум для технических обсуждений, относящихся к
FreeBSD. Это в основном технический список рассылки. Он
предназначен для тех, кто активно работает над FreeBSD, и
служит для поднятия вопросов или обсуждения альтернативных
решений. Те, кто интересуется обсуждаемыми вопросами, также
приглашаются к участию в обсуждении. Это технический список
рассылки, предназначенный только для технических
обсуждений.&a.hardware.name;Общее обсуждение оборудования
FreeBSDОбщее обсуждение типов оборудования, на котором
работает FreeBSD, различных проблем и предложений относительно
того, какое оборудование можно покупать а какое нет.&a.hubs.name;Сайты зеркалАнонсы и обсуждения для поддерживающих зеркала
FreeBSD.&a.isp.name;Вопросы использования FreeBSD
провайдерамиЭтот список рассылки предназначен для обсуждения тем,
имеющих значение для провайдеров, использующих FreeBSD.
Это технический список рассылки, предназначенный только для
технических обсуждений.&a.newbies.name;Обсуждение деятельности новых
пользователейЭта рассылка охватывает всю деятельность новых
пользователей, которая не обсуждается где-то еще. Сюда
включаются: независимое обучение и техника решения проблем,
поиск и использование ресурсов и запрос помощи где-то еще,
как использовать списки рассылки и какие из них использовать,
разговоры на общие темы, обсуждение ошибок, хвастовство,
обмен идеями, истории, моральная (но не техническая) поддержка,
активное участие в сообществе FreeBSD. Мы сообщаем о своих
проблемах и отправляем запросы на поддержку в freebsd-questions,
а freebsd-newbies используем для встречи с темы, кто делает
то же, что и мы, будучи новыми пользователями.&a.openoffice.name;OpenOffice.orgОбсуждения, относящиеся к портированию и поддержке
OpenOffice.org и
&staroffice;.&a.performance.name;Обсуждения оптимизации или повышения скорости
FreeBSDЭтот список рассылки существует как место для обсуждения
тем, имеющих отношение к производительности FreeBSD,
хакерами, администраторами, и/или заинтересованными сторонами.
Приемлемые темы включают обсуждения установок FreeBSD, которые
находятся под высокой нагрузкой и сталкиваются с проблемами
производительности, или преодоление ограничений FreeBSD.
Заинтересованным сторонам, собирающимся работать над улучшением
производительности FreeBSD, настоятельно рекомендуется
подписаться на эту рассылку. Это техническая рассылка,
идеально подходящая для пользователей, хакеров или
администраторов, заинтересованных в скорости, стабильности
и расширяемости FreeBSD. Это не рассылка вопросов-и-ответов,
заменяющая чтение документации, а место, где можно внести свой
вклад или получить информацию по еще незатронутой
теме, связанной с производительностью.&a.platforms.name;Портирование на не-Intel
платформыКросс-платформенные вопросы FreeBSD, общее обсуждение и
предложения для не-Intel портов FreeBSD. Это технический
список рассылки, предназначенный только для технических
обсуждений.&a.policy.name;Правила core teamЭто рассылка с малым количеством сообщений, только для
чтения, предназначенная для публикации решений FreeBSD
Core Team.&a.ports.name;Обсуждения
portsОбсуждения, относящиеся к коллекции портов
FreeBSD, (/usr/ports), инфраструктуры
портов и общих усилий по координации портов.
Это технический список рассылки, предназначенный только для
технических обсуждений.&a.ports-bugs.name;Обсуждение проблем в
portsОбсуждения, относящиеся к сообщениям о проблемах для
коллекции портов FreeBSD
(/usr/ports), предлагаемых портов, или
изменений к портам. Это технический список рассылки,
предназначенный только для технических обсуждений.&a.questions.name;Вопросы пользователейЭто список рассылки по вопросам о FreeBSD. Вы не должны
отправлять вопросы как сделать в технические
рассылки, если только не уверены, что ваш вопрос чисто
технический.&a.scsi.name;Подсистема SCSIЭто список рассылки для тех, кто работает над подсистемой
SCSI для FreeBSD. Это технический список рассылки,
предназначенный только для технических обсуждений.&a.security.name;Вопросы безопасностиВопросы безопасности FreeBSD (DES, Kerberos, известные
проблемы безопасности и исправления, и т.п.). Это технический
список рассылки, предназначенный только для технических
обсуждений. Обратите внимание, что это не рассылка
вопросов-и-ответов, но дополнения в FAQ (И вопрос И ответ)
приветствуются.&a.security-notifications.name;Уведомления безопасностиУведомления о проблемах безопасности FreeBSD и исправления.
Эта рассылка не предназначена для обсуждений. Для обсуждения
предназначена рассылка FreeBSD-security.&a.small.name;Использование FreeBSD во встроенных
приложенияхВ этой рассылке обсуждаются темы, связанные с необычно
малыми и встроенными установками FreeBSD. Это технический
список рассылки, предназначенный только для технических
обсуждений.&a.stable.name;Обсуждения, касающиеся использования
&os.stable;Этот список рассылки предназначен для пользователей
&os.stable;. Он включает предупреждения о новых возможностях,
добавляемых в -STABLE, и влияющих на пользователей, и инструкции
по действиям, которые необходимы для поддержки системы в
состоянии -STABLE. Всякий, использующий STABLE,
должен подписаться на эту рассылку. Это технический список
рассылки, предназначенный только для технических
обсуждений.&a.standards.name;Соответствие C99 и POSIXЭто форум для технических обсуждений, относящихся к
соответствию FreeBSD стандартам C99 и POSIX.
+
+ &a.usb.name;
+
+
+ Обсуждение поддержки USB в &os;
+
+ Это форум для технических обсуждений, относящихся к
+ поддержке в &os; устройств с интерфейсом USB.
+
+
+
&a.usergroups.name;Список координации групп
пользователейЭтот список рассылки предназначен для обсуждения вопросов
координаторами каждой группы пользователей и назначенным
членом Core Team. Обсуждения в этой рассылке ограничены
темой встреч и координацией проектов, относящихся к группам
пользователей.&a.vendors.name;ПоставщикиОбсуждения, относящиеся к координации между FreeBSD Project
и поставщиками программного и аппаратного обеспечения для
FreeBSD.Фильтрация списков рассылкиСписки рассылки &os; фильтруются различными способами для
предотвращения распространения спама, вирусов, и другой нежелательной
почты. Действия по фильтрации, описанные в этом разделе,
не включают всех используемых для фильтрации списков рассылки
проекта действий.Только определенные типы вложений разрешены в списках рассылки.
Все вложения с типами MIME содержимого, не входящие в список ниже,
будут вырезаться перед тем, как письмо будет отправлено в список
рассылки.application/octet-streamapplication/pdfapplication/pgp-signatureapplication/x-pkcs7-signaturemessage/rfc822multipart/alternativemultipart/relatedmultipart/signedtext/htmltext/plaintext/x-difftext/x-patchНекоторые из списков рассылки могут пропускать вложения
других типов MIME, но список выше применим к большинству
рассылок.Если письмо содержит как HTML, так и только текстовую версию,
версия HTML будет удалена. Если письмо содержит только HTML
версию, она будет конвертирована в простой текст.Новостные группы UsenetВ дополнение к двум относящимся к FreeBSD группам новостей,
существуют множество других, где обсуждается FreeBSD или куда
помещается другая информация, относящаяся к пользователям FreeBSD.
Архивы
с поиском по ключевому слову доступны для некоторых из
этих новостных групп благодаря Warren Toomey
wkt@cs.adfa.edu.au.Относящиеся к BSD новостные группыcomp.unix.bsd.freebsd.announcecomp.unix.bsd.freebsd.miscde.comp.os.unix.bsd (German)fr.comp.os.bsd (French)it.comp.os.freebsd (Italian)Другие интересные &unix; новостные группыcomp.unixcomp.unix.questionscomp.unix.admincomp.unix.programmercomp.unix.shellcomp.unix.user-friendlycomp.security.unixcomp.sources.unixcomp.unix.advocacycomp.unix.misccomp.bugs.4bsdcomp.bugs.4bsd.ucb-fixescomp.unix.bsdX Window Systemcomp.windows.x.i386unixcomp.windows.xcomp.windows.x.appscomp.windows.x.announcecomp.windows.x.intrinsicscomp.windows.x.motifcomp.windows.x.pexcomp.emulators.ms-windows.wineСерверы World Wide Web
&chap.eresources.www.inc;
Адреса EmailСледующие группы пользователей предоставляют для своих участников
почтовые адреса. Приведенные в списке администраторы оставляют за собой
право удалить адреса при любом злоупотреблении.ДоменВозможностиГруппа пользователейАдминистраторukug.uk.FreeBSD.orgТолько пересылкаfreebsd-users@uk.FreeBSD.orgLee Johnston
lee@uk.FreeBSD.orgShell доступСледующие группы пользователей предоставляют shell доступ для тех,
кто активно поддерживает проект FreeBSD. Приведенные в списке
администраторы оставляют за собой право закрыть учетную запись при
любом злоупотреблении.ХостДоступВозможностиАдминистраторstorm.uk.FreeBSD.orgТолько SSHCvs только для чтения, место для личной странички,
почта&a.brian;dogma.freebsd-uk.eu.orgTelnet/FTP/SSHEmail, место для сайта, Anonymous FTPLee Johnston
lee@uk.FreeBSD.org
diff --git a/ru_RU.KOI8-R/books/handbook/introduction/chapter.sgml b/ru_RU.KOI8-R/books/handbook/introduction/chapter.sgml
index d77b600f3d..2b51cf7fa2 100644
--- a/ru_RU.KOI8-R/books/handbook/introduction/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/introduction/chapter.sgml
@@ -1,969 +1,969 @@
JimMockИсправил, реорганизовал и частично
переписал АлексейЗелькинПеревод на русский язык: ДенисПеплинВведениеКраткий обзорМы благодарим вас за интерес к FreeBSD! Следующая глава
расскажет о некоторых аспектах проекта FreeBSD, таких как история,
цели, модель разработки, и прочее.Из этой главы вы узнаете:Какое отношение имеет FreeBSD к другим операционным
системам.Историю проекта FreeBSD.Цели проекта FreeBSD.Основы модели разработки FreeBSD с открытыми исходными
текстами.И конечно, откуда появилось имя FreeBSD.Добро пожаловать во FreeBSD!4.4BSD-LiteFreeBSD это основанная на 4.4BSD-Lite операционная система для
компьютеров Intel (x86 и &itanium;), AMD64,
Alpha и Sun &ultrasparc;. Ведется
работа по портированию и на другие архитектуры. Вы можете также
прочесть о истории FreeBSD,
или о текущем релизе. Если вы
заинтересованы в помощи проекту (кодом, аппаратным обеспечением,
деньгами), прочтите статью Помощь
FreeBSD.Что может FreeBSD?FreeBSD имеет заслуживающие внимания особенности. Некоторые из
них:приоритетная многозадачностьПриоритетная многозадачность с
динамическим регулированием приоритетов плавно и правильно
приспособится и справедливо распределит ресурсы компьютера между
приложениями и пользователями, даже при тяжелейших нагрузках.
многопользовательская доступностьМногопользовательская доступность которая
позволяет множеству людей использовать FreeBSD совместно для ряда
задач. Это значит, например, что системная периферия, такая как
принтеры и ленточные устройства, правильно распределена между
пользователями в системе или сети, и что лимиты каждого ресурса
могут быть установлены пользователям или группам пользователей,
защищая критические системные ресурсы от перегрузок.TCP/IP стекМощный TCP/IP стек с поддержкой
промышленных стандартов, таких как SLIP, PPP, NFS, DHCP и NIS.
Это говорит о том, что FreeBSD может легко функционировать
с другими системами предприятия, предоставляя жизненно важные
функции, такие как NFS (удалённый доступ к файлам) и услуги
электронной почты или представить вашу организацию в Internet с сервисами
WWW, FTP, маршрутизации и брандмауэра (сетевая безопасность).
защита памятиЗащита памяти гарантирует, что
приложения (или пользователи) не смогут чинить препятствия
друг другу. Фатальная ошибка в выполнении одного приложения
не скажется на работоспособности всей системы.FreeBSD 32-х битная операционная система
(64 бита на Alpha, &itanium;, AMD64, и
&ultrasparc;) и была создана
именно такой.X Window SystemXFree86Промышленный стандарт X Window System
(X11R6) предоставляет графический интерфейс пользователя (GUI) для
большинства VGA карт и мониторов и поставляется с полными исходными
текстами.двоичная совместимостьLinuxдвоичная совместимостьSCOдвоичная совместимостьSVR4двоичная совместимостьBSD/OSдвоичная совместимостьNetBSDДвоичная совместимость с большинством
программ, созданных для Linux, SCO, SVR4, BSDI и NetBSD.Тысячи готовых к использованию
приложений доступны из FreeBSD коллекций
портов и пакетов.
Зачем искать что-то в сети, когда вы можете найти
всё прямо здесь?Тысячи других
легко-адаптируемых приложений доступны в
Internet. FreeBSD в исходных текстах совместима с большинством
популярных коммерческих &unix; систем и, таким образом, большинство
приложений требуют несколько достаточно мелких (если требуют),
изменений для сборки.виртуальная памятьВиртуальная память с поддержкой
сброса неиспользуемых страниц по требованию и
объединенные VM/буферный кэш спроектированы
так, чтобы максимально эффективно удовлетворить приложения с
огромными аппетитами к памяти и, в то же время, сохранить
интерактивность остальных пользователей.симметричная многопроцессорность (SMP)Поддержка симметричной многопроцессорности (SMP) для машин с
несколькими процессорами.компиляторыCкомпиляторыC++компиляторыFORTRANПолный комплект инструментов для разработчика:
C, C++,
Fortran и Perl.
Множество дополнительных языков для прочих исследований
и разработки также доступны из коллекций портов и пакетов.исходный текстИсходные тексты всей системы
означают, что вы имеете великолепную возможность контролировать
ваше окружение. Зачем выбирать закрытые решения и уповать на милость
производителя, когда вы можете иметь по-настоящему открытую
систему?Обширная online
документация.И многое-многое другое!4.4BSD-LiteComputer Systems Research Group (CSRG)U.C. BerkeleyFreeBSD основана на 4.4BSD-Lite от Computer
Systems Research Group (CSRG) Калифорнийского Университета, Беркли,
и имеет в себе характерные черты модели развития BSD-систем.
В дополнении к прекрасной работе предоставленной
CSRG, Проект FreeBSD тратит многие тысячи часов для
тонкой настройки системы для максимальной производительности и надёжности
в условиях максимально приближенным к боевым.
Когда большинство коммерческих гигантов только пытаются достичь такого
уровня возможностей, производительности и надежности операционных
систем для PC, FreeBSD может предложить все это прямо
сейчас!Применение FreeBSD в действительности ограничено только вашими
фантазиями. От разработки программного обеспечения до автоматизации
производства, от контроля за качеством товара до
коррекции азимутов удалённых спутниковых антенн; эти задачи можно
решить с помощью коммерческих &unix; систем, но скорее всего они
решаемы и с помощью FreeBSD! FreeBSD столь же многогранно
полезна, как и буквально тысячи высококачественных приложений разработанных
исследовательскими центрами и университетами во всём мире, доступные
за минимальную цену или даже бесплатно. Коммерческие приложения также доступны
и появляются ежедневно в больших количествах.Исходя из того, что исходные тексты FreeBSD всегда доступны,
система может быть оптимизирована в почти невероятной степени
для специальных приложений или проектов, а это, в большинстве
своём, невозможно при использовании операционных систем от большинства
коммерческих производителей. Вот несколько примеров того, как люди
используют FreeBSD:Internet сервисы: мощнейший TCP/IP
стек делает FreeBSD идеальной платформой для большинства
Internet приложений таких как:FTP серверыFTP серверыweb серверыWorld Wide Web серверы (как стандартные, так и безопасные
[SSL])фильтрация пакетовIP маскарадингСерверы фильтрации пакетов и шлюзы NAT
(IP маскарадинг)электронная почтаСерверы электронной почтыUSENETСерверы новостей USENET и BBSи многое другое...Вы можете начать своё знакомство с FreeBSD, используя недорогую
машину класса 386 PC, а впоследствии увеличить её мощь до сервера масштаба
предприятия с четырьмя процессорами Xeon и RAID контроллером.Образование: Вы студент и ваше
образование связано с компьютерами или другими инженерными
расчётами? Нет лучшего пути начать изучение операционных
систем, архитектуры компьютера и работы в сети, чем покорить
вершины FreeBSD. Количество доступных CAD, математических
и графических пакетов также делают её чрезвычайно полезной
для выполнения другой не менее важной
работы.Исследования: С исходными текстами,
которые доступны для всей системы, FreeBSD это превосходная платформа
как для исследования операционных систем, так и исследования
других областей компьютерных наук. Свободная природа FreeBSD
предоставляет возможность удалённым группам сотрудничать, обмениваться
идеями и совместными разработками, не беспокоясь
о наличии специальных лицензий или ограничений,
которые могут обсуждаться в открытых форумах.маршрутизаторDNS серверРабота в сети: Нужен новый маршрутизатор?
Сервер имён (DNS)? Брандмауэр, защищающий от проникновения
извне в вашу сеть? FreeBSD может превратить давно списанный и
пылящийся в углу 386й или 486й PC в мощный маршрутизатор
с возможностью фильтрации пакетов.X Window SystemXFree86X Window SystemAccelerated-XРабочая станция X Window: FreeBSD прекрасный
выбор, если вам нужен недорогой X-терминал. Можно использовать
свободно распространяемый &xfree86; сервер или один из
коммерческих серверов, поставляемых Xi Graphics. В отличии от
X терминала, на FreeBSD можно запускать множество приложений
локально, если требуется, таким образом перенеся часть нагрузки
с центрального сервера. FreeBSD может быть загружена на бездисковой
станции, что делает рабочую станцию более дешёвой и
простой в администрировании.GNU набор для разработкиРазработка программного обеспечения: Базовая
поставка FreeBSD распространяется с полным набором инструментов для
разработки, включая знаменитые компилятор GNU C/C++ и
отладчик.FreeBSD доступна как в исходных текстах, так и в бинарном виде
на CDROM, DVD и через анонимный доступ к FTP. Смотрите
для уточнений.Кто использует FreeBSD?ПользователиКрупные сайты, работающие под FreeBSDFreeBSD используется в качестве платформы на некоторых крупнейших
сайтах в интернет, включая:Yahoo!Yahoo!ApacheApacheBlue Mountain ArtsBlue Mountain
ArtsPair NetworksPair
NetworksSony JapanSony
JapanNetcraftNetcraftWeathernewsWeathernewsSupervaluSupervaluTELEHOUSE AmericaTELEHOUSE
AmericaSophos Anti-VirusSophos
Anti-VirusJMA WiredJMA Wiredи на многих других.О Проекте FreeBSDВ следующей части рассказывается о том, что из себя представляет проект,
включая краткую историю, цели проекта и модель разработки
проекта.JordanHubbardПредоставил Краткая история FreeBSD386BSD PatchkitHubbard, JordanWilliams, NateGrimes, RodПроект FreeBSDисторияПроект FreeBSD возник в первой половине 1993 года,
частично как результат развития Неофициального комплекта
исправлений к 386BSD (patchkit) , последними 3-мя координаторами
этого проекта: Nate Williams, Rod Grimes и мною.386BSDНашей главной задачей было привести промежуточный
снэпшот 386BSD в порядок, исправив множество проблем, которые
механизм patchkit не мог решить. Некоторое из вас возможно помнят
раннее название этого проекта: 386BSD 0.5 или
386BSD Interim.Jolitz, Bill386BSD была операционной системой Била Джоилца, который
на тот момент находился строго говоря, в состоянии полного
пренебрежения к ней. Так как patchkit разрастался, его
поддержание становилось более неудобным день от дня, мы
пришли к единодушному соглашению что что-то нужно делать
и решили помочь Биллу путем предоставления промежуточных
очистных снэпшотов. Эти планы были грубо
оборваны, когда Билл внезапно решил прекратить поддержку
проекта без всяких ясных комментариев, что должно быть
сделано.Greenman, DavidWalnut Creek CDROMНам потребовалось немного времени, чтобы прийти к решению
продолжать следовать той же цели, даже без поддержки Билла,
и мы приняли имя FreeBSD приобретенное Дэвидом
Гринмэном. Наши начальные цели были определены после консультаций
с пользователями существовавшей системы, и как только стало
понятно, что проект на пути к тому, чтобы стать реальностью, я
связался с Walnut Creek CDROM с идеями о путях последующего
улучшения каналов распространения FreeBSD для множества
пользователей без доступа к Internet. Walnut Creek CDROM не только
поддержал идею распространения FreeBSD на CD, но также пошел
далеко вперед и предоставил проекту компьютер для работы
и быстрый доступ к Internet. Без почти беспрецедентной веры
Walnut Creek CDROM в этот в то время полностью неизвестный проект,
вряд ли FreeBSD зашел бы так далеко и так быстро, как сегодня.4.3BSD-LiteNet/2U.C. Berkeley386BSDFree Software FoundationПервым дистрибутивом, распространяемым как на CDROM, так и в сети,
стал FreeBSD 1.0, выпущенный в декабре 1993 года. Эта версия была
выполнена на основе ленты 4.3BSD-Lite (Net/2)
из Калифорнийского Университета в Беркли, с многочисленными
добавлениями из проекта 386BSD и Фонда Свободного Программного
Обеспечения. Это был довольно внушительный успех для
первого предложения, и мы закрепили его с выходом FreeBSD
1.1 RELEASE в мае 1994 года.NovellU.C. BerkeleyNet/2AT&TВ это же время, на горизонте сгустились тучи в связи с назревающим
скандалом между Novell и Калифорнийским Университетом, Беркли.
Это был вяло-текущий судебный процесс о легальности версии
Net/2 из Беркли. Обстоятельства тяжбы с Калифорнийским Университетом
заключались в том, что большие куски Net/2 были загромождены
кодом, права на который принадлежат Novell, которая в свою очередь,
получила их (права на код) ранее от AT&T. Чтоб вернуть
благословение Novell, Беркли выпустил версию
4.4BSD-Lite, которая
была объявлена полностью свободной и
всем пользователям Net/2 было рекомендовано переключится на ее
использование. Это также касалось FreeBSD, и проекту было дано
время до конца Июля 1994 года для прекращения распространения его
продукта базирующегося на Net/2. На этих условиях проекту было
разрешено выпустить последний релиз до окончания срока, это
был FreeBSD 1.1.5.1.Тогда FreeBSD приступил к сложной задаче буквально
полному изобретению себя из абсолютно новой и довольно
неполной системы 4.4BSD-Lite. Lite был
в прямом смысле light (легким) потому, что CSRG Berkeley удалил
большие куски кода, необходимого для создания реально
загружающейся системы (по причине различных лицензионных
требований), и фактически порт 4.4BSD для платформы Intel
был очень неполным. Проекту потребовалось время почти до
ноября 1994 года для того, чтобы выполнить этот переход и
на этом этапе FreeBSD 2.0 была опубликована в сети и
на CDROM (в конце декабря). Несмотря на множество острых
углов в этой версии, она пользовалась значительным успехом
и была продолжена более устойчивой и простой в установке
FreeBSD 2.0.5, выпущенной в июне 1995 года.Мы выпустили FreeBSD 2.1.5 в августе 1996, и она стала достаточно
популярной среди большого количества ISP и коммерческих
производителей, чтобы выпустить еще один релиз из ветви 2.1-STABLE. Это была
FreeBSD 2.1.7.1, вышедшая в феврале 1997 и завершившая главную
ветвь разработки 2.1-STABLE. Сейчас в режиме поддержки, в эту ветвь
(RELENG_2_1_0) вносятся только расширения безопасности и другие
критически важные исправления.FreeBSD 2.2 была ответвлена от основной линии разработки
(-CURRENT) в ноябре 1996 как ветвь RELENG_2_2,
а первая полная версия (2.2.1) появилась в апреле 1997.
Последующие версии ветви 2.2 появлялись летом и в конце 97 года,
а последняя версия (2.2.8) вышла в ноябре 1998.
Первая официальная версия 3.0 была подготовлена к выходу в
октябре 1998, завершив развитие ветви 2.2 Третье ветвление произошло 20 января 1999 года, появились
ветви 4.0-CURRENT и 3.X-STABLE. Из ветви 3.X-STABLE были получены: 3.1 -
15 февраля 1999, 3.2 - 15 мая 1999, 3.3 - 16 сентября 1999,
3.4 - 20 декабря 1999, 3.5 - 24 июня 2000, за которым последовал
через несколько дней немного обновленный 3.5.1, который содержал
несколько исправлений в области безопасности Kerberos. Это был последний
релиз из ветви 3.X.Последнее на данный момент ветвление было выполнено 13 марта 2000
года, в результате чего появилась ветвь 4.X-STABLE, в настоящее время
считающейся текущей -stable ветвью. Из этой ветви
было выпущено несколько релизов: 4.0-RELEASE был представлен
в марте 2000 года, самый свежий &rel2.current;-RELEASE был выпущен
&rel2.current.date;. Из ветви 4.X-stable (RELENG_4) будут выпущены
и следующие релизы.Долгожданный 5.0-RELEASE был анонсирован 19 января 2003 года.
Он стал кульминацией приблизительно трех лет работы, с этого
релиза начался курс FreeBSD на расширенную поддержку
мультипроцессорности и потоков в приложениях, была также представлена
поддержка платформ &ultrasparc; и ia64. За этим
релизом последовал релиз 5.1 в июне 2003 года. Помимо множества
новых возможностей, релизы 5.X принесли также существенные улучшения
внутренней архитектуры системы. Однако, вместе с этими
преимуществами, в систему пришло огромное количество нового и
мало протестированного кода. По этой причине, релизы 5.X
считаются Новыми технологическими, а 4.X релизы
Продуктивными. Со временем 5.X будут объявлены
стабильными, и начнется работа над новой ветвью, 6.0-CURRENT.На данный момент, долговременные разработки и проекты продолжаются в ветке
5.X-CURRENT, и по ходу разработки будут доступны снэпшот-релизы
5.X на CDROM (и, конечно же, в сети), постоянно выкладываемые на
сервер снэпшотов как промежуточные результаты.JordanHubbardПредоставил Цели Проекта FreeBSDПроект FreeBSDцелиЦелью Проекта FreeBSD является предоставление программного
обеспечения, которое может быть использовано для любых целей
и без дополнительных ограничений. Многие из нас вносят значительный
вклад в код (и проект) и совершенно не требуют за это
какой-либо финансовой компенсации сейчас и в последствии, хотя мы
определенно не собираемся отказываться от нее. Мы верим, что первая
и основная наша миссия это предоставление кода для всех,
кому он необходим, и для любых целей, поэтому этот код становится
все более и более распространен и предоставляет самые широкие
возможности. Это, я верю, является одной из основных целей Свободного
Программного Обеспечения и мы с энтузиазмом
поддерживаем ее.GNU General Public License (GPL)GNU Lesser General Public License (LGPL)BSD CopyrightТот код в нашем дереве исходных текстов, который попадает
под Общую Публичную Лицензию GNU (GPL) или Общую Публичную
Лицензию Библиотек GNU (LGPL), предоставляется с дополнительными
условиями, хотя они обеспечивают только возможность доступа
а не его ограничение. По причине дополнительных
сложностей, которые могут появится при коммерческом использовании GPL
продуктов, мы предпочитаем ПО, предоставленное под более свободной
лицензией BSD, когда это возможно.SatoshiAsamiПредоставил Модель Разработки FreeBSDПроект FreeBSDмодель разработкиРазработка FreeBSD это очень открытый и гибкий процесс —
FreeBSD, буквально выражаясь, создан из кода, предоставленного
сотнями людей со всего мира, в чем вы можете убедится взглянув
на список этих
людей. Мы постоянно
ищем новых разработчиков и новые идеи, и тот, кто заинтересован
в более тесном взаимодействии и хочет принять участие в проекте,
должен просто связаться с нами в рассылке &a.hackers.name;. Для тех кто
желает использовать FreeBSD в различных областях для работы,
доступен &a.announce;.Если участвуете в процессе разработки FreeBSD независимо или
тесно сотрудничая с нами, полезно знать следующее:CVS РепозиторийCVSрепозиторийConcurrent Versions SystemCVSГлавное дерево исходных текстов FreeBSD поддерживается
с помощью
CVS
(Concurrent Versions System), свободно доступной системой
контроля исходных текстов, которая поставляется вместе
с FreeBSD. Основной
CVS
репозиторий располагается на компьютере, находящемся
в городе Санта Клара, Калифорния (США), откуда и распространяется
на множество зеркал по всему миру. Дерево CVS, содержащее ветви
-CURRENT и -STABLE,
может быть легко скопировано на ваш локальный компьютер.
Обратитесь к разделу Синхронизация
дерева исходных текстов за информацией об этом
процессе.Список коммиттеровкоммиттерыКоммиттеры
это люди, которые имеют доступ на запись
к главному дереву CVS, и имеют право вносить изменения
в главное дерево исходных текстов FreeBSD (термин
коммиттер появился от названия
команды &man.cvs.1; commit, которая
используется для внесения изменений в CVS репозиторий).
Лучший способ для предоставления ваших изменений на
рассмотрение коммиттеров - это использование команды
&man.send-pr.1;. Если что-то произошло с системой, вы можете
достучаться до них посылкой письма по адресу
&a.committers.name;.CORE группа FreeBSD core teamCORE группа FreeBSD
могла бы быть эквивалентом Совета Директоров, если бы
Проект FreeBSD был компанией. Главная задача CORE группы —
убедиться, что проект в целом в хорошем состоянии
и движется в правильном направлении. Приглашение
постоянных и ответственных разработчиков присоединится к группе
коммиттеров одна из функций CORE группы, также как приглашение
новых членов в CORE группу по мере того, как другие уходят.
Нынешний состав группы был выбран из рядов коммиттеров
путем общего голосования в июле 2004 года.
Выборы проходят каждые 2 года.
Некоторые члены CORE группы имеют особые
области ответственности, это
означает, что они являются ответственными за работу
отдельной большой части системы.
За полным списком разработчиков FreeBSD и областей их
ответственности обращайтесь к Списку
участников.Большинство членов CORE группы являются волонтерами
и не получают никакой финансовой выгоды от участии в проекте,
поэтому вы не должны рассматривать их работу как
гарантированную поддержку. Аналогия с
советом директоров не очень точна и вероятно гораздо
правильнее будет сказать, что это люди, которые посвятили себя
FreeBSD, пожертвовав личной жизнью!Внешняя помощьучастникиПоследней, но однозначно не менее значимой, наибольшей
группой разработчиков являются пользователи, которые
предоставляют комментарии и исправления ошибок нам на почти
постоянной основе. Основной путь участвовать в
не централизованной разработке это подписка на &a.hackers;,
где обсуждаются подобные вещи. Обратитесь к за дальнейшей информацией о различных
списках рассылки FreeBSD.Список
контрибьюторов FreeBSD
очень длинный и постоянно растет, поэтому
почему бы вам не присоединится к нему предоставив что-нибудь
FreeBSD сегодня?Предоставление кода не единственный способ помочь
проекту; для более-менее полного списка вещей, которые
необходимо сделать пожалуйста обратитесь к веб сайту проекта
FreeBSD.Вообще говоря, наша модель разработки организована как нечеткий
набор концентрированных колец. Централизованная модель разработана
для удобства пользователей FreeBSD, которые
получают простую систему контроля за одной
центральной базой кода, и позволяет не оставить за бортом проекта
потенциальных помощников! Мы желаем предоставить стабильную
операционную систему с большим количеством когерентных
прикладных программ, которые
пользователи смогут легко установить и использовать — наша модель
работает очень хорошо для этой задачи.Мы все приглашаем тех, кто хотел бы присоединится к нам как
разработчик FreeBSD, выделить немного времени и привнести свой взнос
в постоянный успех FreeBSD!Текущая Версия FreeBSDNetBSDOpenBSD386BSDFree Software FoundationU.C. BerkeleyComputer Systems Research Group (CSRG)FreeBSD - это свободно доступный, основанный на 4.4BSD-Lite
релиз с полными исходными текстами для компьютерных систем, основанных на Intel
&i386;, &i486;, &pentium;,
&pentium; Pro,
&celeron;,
&pentium; II,
&pentium; III,
&pentium; 4 (или совместимыми),
&xeon;, DEC Alpha и
Sun &ultrasparc;.
В основном он основан на
программном обеспечении от группы CSRG, U.C. Berkley, с некоторым
дополнениями из NetBSD, OpenBSD, 386BSD и Free Software
Foundation.Со времен FreeBSD версии 2.0 в конце 94, производительность,
возможности, и стабильность FreeBSD выросла многократно. Самое
большое изменение это полное обновление системы виртуальной памяти
с объединенным VM/файловым буферизованным кэшем, который не только
увеличивает производительность, но и уменьшает количество
используемой памяти, делая 5 MB конфигурацию более доступным
минимумом. Другие улучшения включают в себя полную поддержку NIS
(клиент и сервер), поддержка транзакций TCP, поддержка
"звонка-по-запросу" в PPP, встроенная поддержка DHCP, улучшенная
подсистема SCSI, поддержка ISDN, ATM, FDDI, Fast и Gigabit Ethernet
(1000 Mbit) адаптеров, улучшенная поддержка последних версий
контролеров Adaptec и многие тысячи исправленных ошибок.В дополнение к базовой системе, FreeBSD предоставляет
коллекцию портированого ПО, включающую в себя тысячи популярных
программ. На время подготовки этого документа она включала в себя
более &os.numports; портов! В коллекцию входят множество программ от
http (WWW) серверов, до игр, языков программирования, текстовых
редакторов и всего прочего. Полная коллекция портов
требует приблизительно &ports.size; дискового пространства, потому что
порт представляет собой изменения оригинальных
исходных текстов. Это сильно упрощает нам процесс обновления
портов, и очень сильно уменьшает количество занимаемого
дискового места по сравнению со старой (1.0) коллекцией портов.
Для того, чтобы скомпилировать и установить программу,
необходимо всего лишь войти в каталог порта
программы, набрать make install и дать
системе сделать все остальное. Исходные тексты для каждого порта,
который вы устанавливаете, загружаются автоматически с CDROM или
локального FTP сервера, поэтому вам нужно только дисковое
пространство для сборки тех портов, которые вам необходимы. Почти каждый
порт также предоставляется как пред-компилированный
пакет, который может быть установлен с помощью
простой команды (pkg_add) теми, кто предпочитает не компилировать порты
из исходных текстов. Дополнительная информация о пакетах и портах
находится здесь: .Множество дополнительных документов, которые вы можете найти
очень полезными в процессе установки и использования FreeBSD,
находятся в каталоге /usr/share/doc
на любой машине, работающей под управлением современной версии FreeBSD. Вы
можете просматривать локально установленные документы с помощью
любого браузера, поддерживающего HTML, используя следующие ссылки:Руководство FreeBSD/usr/share/doc/ru_RU.KOI8-R/books/handbook/index.htmlFreeBSD FAQ (Часто задаваемые вопросы)/usr/share/doc/ru_RU.KOI8-R/books/faq/index.htmlВы также можете просмотреть основные (и наиболее часто обновляемые)
копии на http://www.FreeBSD.org/ru/.
+ url="http://www.FreeBSD.org/ru/index.html">http://www.FreeBSD.org/ru/.
diff --git a/ru_RU.KOI8-R/books/handbook/multimedia/chapter.sgml b/ru_RU.KOI8-R/books/handbook/multimedia/chapter.sgml
index db596129a5..3140f946ef 100644
--- a/ru_RU.KOI8-R/books/handbook/multimedia/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/multimedia/chapter.sgml
@@ -1,1602 +1,1904 @@
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.В &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/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;
со следующей строкой, добавленной к файлу настройки ядра:device sbcи со следующей информацией в
/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Значения по умолчанию для различных каналов 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-проигрывателем для
&xfree86; является
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 или дорожку CD в MP3, аудиоданные
+ Перед тем как преобразовывать CD или дорожку CD в MP3, аудио данные
на CD должны быть скопированы на жёсткий диск. Это можно сделать путём
копирования данных CDDA (CD Digital Audio) в файл WAV.Утилита cdda2wav, которая является частью пакета
sysutils/cdrtools, может быть
- использована для копирования аудиоинформации с CD, а также различной
+ использована для копирования аудио информации с CD, а также различной
связанной информации.Когда музыкальный CD находится в приводе, следующая команда может
быть выполнена под root для того,
чтобы скопировать весь CD в отдельные (один на каждую дорожку) WAV
файлы:&prompt.root; cdda2wav -D 0,1,0 -Bcdda2wav поддерживает ATAPI (IDE)
приводы CDROM. Для копирования с IDE привода, укажите имя устройства
вместо номеров SCSI. Например, для того, чтобы скопировать 7-ую
- аудиодорожку с IDE-привода:
+ аудио дорожку с 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, для того, чтобы узнать больше об этом,
+ аудио дорожек на приводах ATAPI, для того, чтобы узнать больше об этом,
прочитайте .Создание (encoding) файлов 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. Оба формата могут быть использованы
+ простые аудио данные PCM. Оба формата могут быть использованы
cdrecord для создания музыкальных
CD.
- Для использования &man.burncd.8; вам потребуются простые аудиоданные
+ Для использования &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 требует доступа к специальным
функциям DVD-ROM, поэтому должен быть доступ на запись для устройств
DVD.параметры ядраoptions CPU_ENABLE_SSEпараметры ядраoptions USER_LDTНекоторые из обсуждаемых портов полагаются на наличие некоторых
параметров ядра для правильной сборки. Перед тем, как собирать порты,
добавьте эти параметры в файл конфигурации ядра, пересоберите ядро и
перезагрузите систему:option CPU_ENABLE_SSE
option USER_LDToption 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
+ 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 это расширение &xfree86; которое позволяет программам напрямую
изменять кадровый буфер (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 не является
проигрывателем. Это набор инструментов для преобразования
.avi и .mpg файлов. При помощи
transcode можно объединять видеофайлы,
исправлять поврежденные файлы, использовать инструменты командной строки
для работы с потоками ввода/вывода
stdin/stdout.Так же, как и MPlayer,
transcode является очень экспериментальным
программным продуктом, который необходимо собирать из порта multimedia/transcode. Этот порт имеет огромное
количество параметров для команды make при сборке.
Рекомендуется:&prompt.root; make WITH_LIBMPEG2=yesЕсли вы планируете установить multimedia/avifile, то добавьте параметр
WITH_AVIFILE в строку запуска make
как показано ниже:&prompt.root; make WITH_AVIFILE=yes WITH_LIBMPEG2=yesНиже приводятся два примера использования
transcode для преобразования видео, в результате
которого изменяется размер изображения. Первый пример преобразовывает
данные в openDIVX AVI файл, в то время как второй использует более
переносимый формат MPEG.&prompt.user; transcode -i input.vob -x vob -V -Z 320x240 \
-y opendivx -N 0x55 -o output.avi&prompt.user; transcode -i input.vob -x vob -V -Z 320x240 \
-y mpeg -N 0x55 -o output.tmp
&prompt.user; tcmplex -o output.mpg -i output.tmp.m1v -p output.tmp.mpa -m 1Существует страничка справочника для transcode, но
для различных утилит tc* (таких как
tcmplex), которые тоже устанавливаются в систему,
документации очень немного. Тем не менее, для получение краткой справки
по использованию команд, может быть задан параметр
.По сравнению с mencoder,
transcode работает заметно медленнее, но имеет больше
шансов создать более переносимый файл, который можно будет воспроизвести
на большем количестве систем. Например MPEG,
созданные при помощи transcode, воспроизводятся в
&windows.media; Player и Apple
&quicktime;.Дальнейшее чтениеРазличные пакеты видео программ для 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; и
использовать его архивы.
- Image Scanners *
+
+
+
+ Marc
+ Fonvieille
+ Написана
+
+
+
+
+
+ Дмитрий
+ Морозовский
+ Перевод на русский язык:
+
+
+
+
+ Сканеры
+
+ сканеры
+
+
+
+ Введение
+
+ &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)
+
+ More details about SCSI devices, are available in the
+ &man.scsi.4; and &man.camcontrol.8; manual pages.
+
+
+
+
+ Конфигурация 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; не смогла идентифицировать
+ сканер. В этом случае вам потребуется отредактировать файл
+ конфигурации аппаратного модуля и указать устройство, используемое
+ сканером. Такие проблемы присущи некоторым моделям 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.
+
+
diff --git a/ru_RU.KOI8-R/books/handbook/network-servers/chapter.sgml b/ru_RU.KOI8-R/books/handbook/network-servers/chapter.sgml
index 84443faa39..9f2f424ffa 100644
--- a/ru_RU.KOI8-R/books/handbook/network-servers/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/network-servers/chapter.sgml
@@ -1,5175 +1,5177 @@
MurrayStokelyРеорганизовал АндрейЗахватовПеревод на русский язык: Сетевые серверыКраткий обзорЭта глава посвящена некоторым наиболее часто используемым сетевым
службам систем &unix;. Мы опишем, как установить, настроить,
протестировать и поддерживать многие различные типы сетевых сервисов.
Для облегчения вашей работы в главу включены
примеры конфигурационных файлов.После чтения этой главы вы будете знать:Как управлять даемоном inetd.Как настроить сетевую файловую систему.Как настроить сетевой сервер информации для совместного
использования учётных записей пользователей.Как настроить автоматическое конфигурирование сетевых параметров
при помощи DHCP.Как настроить сервер имён.Как настроить Apache HTTP
сервер.Как настроить файловый и принт сервер для &windows;
клиентов с использованием Samba.Как синхронизировать дату и время, а также настроить сервер
времени с протоколом NTP.Перед чтением этой главы вы должны:Понимать основы работы скриптов
/etc/rc.Свободно владеть основными сетевыми терминами.Знать как устанавливать дополнительные программы сторонних
разработчиков ().ChernLeeТекст предоставил Супер-серверinetdОбзор&man.inetd.8; называют также супер-сервером
Интернет, потому что он управляет соединениями к многим
сервисам. Когда
inetd принимает соединение, он определяет,
для какой программы предназначено соединение, запускает соответствующий
процесс и предоставляет ему сокет, ссылка на который передается
- процессу в качестве стандартных уствойств ввода, вывода и сообщения об
+ процессу в качестве стандартных устройств ввода, вывода и сообщения об
ошибках. Запуск одного экземпляра
inetd уменьшает общую нагрузку на систему по
сравнению с запуском каждого даемона индивидуально в выделенном
режиме.В первую очередь inetd используется для
вызова других даемонов, но несколько простых протоколов, таких, как
chargen, auth и
daytime, обслуживаются
непосредственно.Этот раздел посвящен основам настройки
inetd посредством его параметров командной
строки и его конфигурационного файла,
/etc/inetd.conf.Настройкиinetd инициализируется посредством
системы /etc/rc.conf. Параметр
inetd_enable по умолчанию установлен в
NO, однако часто включается утилитой
sysinstall при выборе профиля среднего
уровня безопасности. Указание
inetd_enable="YES" или
inetd_enable="NO" в файле
/etc/rc.conf может задать или запретить запуск
inetd во время загрузки.Кроме того, через inetd_flags даемону
inetd могут быть переданы различные
параметры командной строки.Параметры командной строкиФормат вызова inetd:-dВключение отладочной информации.-lВключение регистрации успешных соединений.-wВключение механизма TCP Wrapping для внешних служб (по
умолчанию включено).-WВключение механизма TCP Wrapping для внутренних служб,
которые встроены в inetd (по
умолчанию включено).-c maximumОпределение максимального числа одновременных запусков каждой
службы; по умолчание не ограничено. Может быть переопределено
индивидуально для каждой службы при помощи параметра
.-C rateОпределение по умолчанию максимального количества раз,
которое служба может быть вызвана с одного IP-адреса в минуту; по
умолчанию не ограничено. Может быть переопределено для каждой
службы параметром
.-R rateОпределяет максимальное количество раз, которое служба может
быть вызвана в минуту; по умолчанию 256. Частота, равная 0,
не ограничивает число вызовов.-aЗадает один IP-адрес, к которому делается привязка.
Альтернативно может быть указано имя хоста, и в этом случае
используется соответствующий этому имени хоста адрес IPv4 или
IPv6. Обычно имя хоста задается, когда
inetd запускается в окружении
&man.jail.8;, и в этом случае имя хоста соответствует этому
&man.jail.8;-окружению.Если используется формат с именем хоста и требуется привязка
как для IPv4, так и для IPv6, то для каждой привязки требуется
запись с соответствующим типом протокола для каждой службы в
файле /etc/inetd.conf. К примеру, службе
на основе TCP потребуется две записи, в одной для протокола
используется tcp4, а в другой
используется tcp6.-pЗадает альтернативный файл для хранения ID процесса.Эти параметры могут быть переданы в
inetd при помощи
inetd_flags в файле
/etc/rc.conf. По умолчанию значение
inetd_flags установлено в -wW,
что включает механизм TCP wrapping для внутренних и внешних служб
inetd. Новичкам эти параметры изменять и
даже задавать их в файле /etc/rc.conf не
нужно.Внешняя служба является даемоном вне
inetd, который запускается при получении
соединения к нему. С другой стороны, внутренней службой является
услуга, которую inetd предоставляет
сам.inetd.confНастройка inetd управляется через файл
/etc/inetd.conf.Если в файле /etc/inetd.conf делались
изменения, то inetd можно заставить считать
его конфигурационный файл повторно, послав сигнал HangUP процессу
inetd, как показано здесь:Посылка сигнала HangUP процессу
inetd&prompt.root; kill -HUP `cat /var/run/inetd.pid`В каждой строке конфигурационного файла описывается отдельный
даемон. Комментариям в файле предшествует знак #. Файл
/etc/inetd.conf имеет такой формат:service-name
socket-type
protocol
{wait|nowait}[/max-child[/max-connections-per-ip-per-minute]]
user[:group][/login-class]
server-program
server-program-argumentsПример записи для даемона ftpd,
использующего IPv4:ftp stream tcp nowait root /usr/libexec/ftpd ftpd -lservice-nameЭто имя сервиса, предоставляемого конкретным даемоном. Оно
должно соответствовать сервису, указанному в файле
/etc/services. Здесь определяется, какой
порт должен обслуживать inetd. При
создании нового сервиса он должен помещаться сначала в файл
/etc/services.socket-typestream, dgram,
raw либо seqpacket.
stream должен использоваться для
ориентированных на соединение даемонов TCP, когда как
dgram используется для даемонов, использующих
транспортный протокол UDP.protocolОдно из следующих:ПротоколОписаниеtcp, tcp4TCP IPv4udp, udp4UDP IPv4tcp6TCP IPv6udp6UDP IPv6tcp46TCP как для IPv4, так и для v6udp46UDP как для IPv4, так и для v6{wait|nowait}[/max-child[/max-connections-per-ip-per-minute]] определяет, может ли даемон,
вызванный из inetd, работать с
собственным сокетом, или нет. Сокеты типа
должны использовать параметр , когда как
даемоны с потоковыми
сокетами, которые обычно многопоточны, должны использовать
. обычно передает
много сокетов одному даемону, когда как
порождает даемон для каждого нового сокета.Максимальное число порожденных даемонов, которых может
создать inetd, может быть задано
параметром . Если нужно ограничение в
десять экземпляров некоторого даемона, то после параметра
нужно задать
/10.Кроме , может быть задействован
другой параметр, ограничивающий максимальное число соединений от
одного источника.
служит именно
для этого. Здесь значение, равное десяти, будет ограничивать
любой заданный IP-адрес на выполнение десяти попыток подключения
к некоторому сервису в минуту. Это полезно для предотвращения
намеренного или ненамеренного расходования ресурсов и атак типа
Denial of Service (DoS) на машину.В этом поле или
обязательны. и
опциональны.Многопоточный даемон типа stream без ограничений
или
будет
определен просто вот так: nowait.Тот же самый даемон с ограничением в максимум десять даемонов
будет определен так: nowait/10.Наконец, та же конфигурация с ограничением в двадцать
соединений на IP-адрес в минуту и общим ограничением в максимум
десять порожденных даемонов выглядит так:
nowait/10/20.Эти параметры, используемые все со значениями по умолчанию
даемоном fingerd, имеют такой
вид:finger stream tcp nowait/3/10 nobody /usr/libexec/fingerd fingerd -suserЭто имя пользователя, под которым должен
работать соответствующий даемон. Чаще всего даемоны работают
как пользователь root. Для обеспечения
безопасности некоторые серверы запускаются как пользователь
daemon или как пользователь с минимальными
правами nobody.server-programПолный маршрут к даемону, который будет выполняться при
установлении соединения. Если даемон является сервисом,
предоставляемым самим inetd, то нужно
задать ключевое слово .server-program-argumentsЭтот параметр работает вместе с параметром
, задавая параметры, начиная с
argv[0], передаваемые даемону при запуске.
Если в командной
строке задано mydaemon -d, то
mydaemon -d будет являться значением для
. И снова, если даемон
является внутренней службой, то здесь нужно использовать
.БезопасностьВ зависимости от схемы безопасности, выбранной при установке,
многие из даемонов inetd могут оказаться по
умолчанию включенными. Если нет особой нужды в некотором даемоне, то
выключите его! Поместите знак # перед ненужным даемоном
в /etc/inetd.conf
и пошлите сигнал для inetd.
Некоторые даемоны, такие, как fingerd,
вообще нежелательны, потому что они дают атакующему слишком много
информации.Некоторые даемоны не заботятся о безопасности и имеют большие
таймауты для соединений или вообще их не имеют. Это позволяет
атакующему неспешно устанавливать соединения к конкретному даемону,
истощая имеющиеся ресурсы. Может оказаться полезным задать для
некоторых даемонов ограничения
и
.По умолчанию механизм TCP wrapping включен. Обратитесь к
справочной странице по &man.hosts.access.5; для получения более
подробной информации о задании ограничений TCP для различных даемонов,
запускаемых посредством inetd.Разноеdaytime,
time,
echo,
discard,
chargen и
auth все являются услугами, предоставляемыми
самим inetd.Сервис auth предоставляет
идентификационные сетевые услуги
(ident, identd)
и поддается настройке.Обратитесь к справочной странице по &man.inetd.8; для получения
более подробной информации.TomRhodesРеорганизация и улучшения BillSwingleТекст создал Network File System (NFS)NFSКроме поддержки многих прочих типов файловых систем, во FreeBSD
встроена поддержка сетевой файловой системы (Network File System),
известной как NFS. NFS позволяет
системе использовать каталоги и файлы совместно с другими машинами,
посредством сети. Посредством NFS пользователи и
программы могут получать доступ к файлам на удалённых системах точно так
же, как если бы это были файлы на собственных дисках.Вот некоторые из наиболее заметных преимуществ, которые даёт
использование NFS:Отдельно взятые рабочие станции используют меньше собственного
дискового пространства, так как совместно используемые данные могут
храниться на одной отдельной машине и быть доступными для других
машин в сети.Пользователям не нужно иметь домашние каталоги, отдельные
для каждой машины в вашей сети. Домашние каталоги могут
располагаться на сервере NFS и их можно сделать
доступными отовсюду в сети.Устройства хранения информации, такие, как дискеты, приводы
CD-ROM и устройства &iomegazip;, могут использоваться другими машинами в
сети. Это может привести к уменьшению переносимых устройств хранения
информации в сети.Как работает NFSNFS строится по крайней мере из двух основных
частей: сервера и одного или большего количества клиентов. Клиент
обращается к данным, находящимся на сервере, в режиме удалённого
доступа. Для того, чтобы это нормально функционировало, нужно
настроить и запустить несколько процессов.В &os; 5.X, утилита portmap была
заменена на утилиту rpcbind.
Таким образом, при
использовании &os; 5.X пользователю необходимо заменить в
последующих примерах все команды portmap
на rpcbind.На сервере работают следующие даемоны:NFSсерверфайл серверunix клиентыportmapmountdnfsdДаемонОписаниеnfsdДаемон NFS, обслуживающий запросы от
клиентов NFS.mountdДаемон монтирования NFS, который
выполняет запросы, передаваемые ему от &man.nfsd.8;.portmapДаемон отображения портов позволяет клиентам
NFS определить порт, используемый сервером
NFS.Клиент может запустить также даемон, называемый
nfsiod. nfsiod
обслуживает запросы, поступающие от сервера от сервера
NFS. Он необязателен, увеличивает
производительность, однако для нормальной и правильной работы не
требуется. Для получения дополнительной информации обратитесь к
разделу справочной системы о &man.nfsiod.8;.Настройка NFSNFSнастройкаНастройка NFS является достаточно незамысловатым
процессом. Все процессы, которые должны быть запущены, могут быть
запущены во время загрузки посредством нескольких модификаций в
вашем файле /etc/rc.conf.Проверьте, что на NFS-сервере в файле
/etc/rc.conf имеются такие строки:portmap_enable="YES"
nfs_server_enable="YES"
nfs_server_flags="-u -t -n 4"
mountd_flags="-r"mountd запускается автоматически, если включена
функция сервера NFS.На клиенте убедитесь, что в файле /etc/rc.conf
присутствует такой параметр:nfs_client_enable="YES"Файл /etc/exports определяет, какие
файловые системы на вашем сервере NFS будут
экспортироваться (иногда их называют совместно
используемыми). Каждая строка в
/etc/exports задаёт файловую систему, которая
будет экспортироваться и какие машины будут иметь к ней доступ. Кроме
машин, имеющих доступ, могут задаваться другие параметры, влияющие на
характеристики доступа. Имеется полный набор параметров,
которые можно использовать, но здесь пойдёт речь лишь о некоторых из
них. Описания остальных параметров можно найти на страницах справочной
системы по &man.exports.5;.Вот несколько примерных строк из файла
/etc/exports:NFSпримеры экспортированияВ следующих примерах даётся общая идея того, как экспортировать
файловые системы, хотя конкретные параметры могут отличаться в
зависимости от ваших условий и конфигурации сети. К примеру, чтобы
экспортировать каталог /cdrom для трёх машин,
находящихся в том же самом домене, что и сервер (поэтому отсутствует
доменное имя для каждой машины) или для которых имеются записи в
файле /etc/hosts. Флаг
указывает на использование экспортируемой файловой
системы в режиме только чтения. С этим флагом удалённая система не
сможет никоим образом изменить экспортируемую файловую систему./cdrom -ro host1 host2 host3В следующей строке экспортируется файловая система
/home, которая становится доступной трем хостам,
указанным по их IP-адресам. Это полезно, если у вас есть собственная
сеть без настроенного сервера DNS. Как вариант,
файл /etc/hosts может содержать внутренние имена
хостов; пожалуйста, обратитесь к справочную систему по &man.hosts.5;
для получения дополнительной информации. Флаг
позволяет рассматривать подкаталоги в
качестве точек монтирования. Другими словами, это не монтирование
подкаталогов, но разрешение клиентам монтировать только каталоги,
которые им требуются или нужны./home -alldirs 10.0.0.2 10.0.0.3 10.0.0.4В строке, приведённой ниже, файловая система
/a экспортируется таким образом, что она доступна
двум клиентам из других доменов. Параметр
позволяет пользователю
root удалённой системы осуществлять запись на
экспортируемую файловую систему как пользователь
root. Если параметр
-maproot=root не задан,
то даже если пользователь имеет права доступа root
на удалённой системе, он не сможет модифицировать
файлы на экспортированной файловой системе./a -maproot=root host.example.com box.example.orgДля того, чтобы клиент смог обратиться к экспортированной файловой
системе, он должен иметь права сделать это. Проверьте, что клиент
указан в вашем файле /etc/exports.В файле /etc/exports каждая строка содержит
информацию об экспортировании для отдельной файловой системы для
отдельно взятого хоста. Удалённый хост может быть задан только
один раз для каждой файловой системы, и может иметь
только одну запись, используемую по умолчанию, для каждой локальной
файловой системы. К примеру, предположим, что
/usr является отдельной файловой системой.
Следующий /etc/exports будет некорректен:/usr/src client
/usr/ports clientОдна файловая система, /usr, имеет две
строки, задающие экспортирование для одного и того же хоста,
client. Правильный формат в этом случае таков:/usr/src /usr/ports clientСвойства отдельной файловой системы, экспортируемой некоторому
хосту, должны задаваться в одной строке. Строки без указания клиента
воспринимаются как отдельный хост. Это ограничивает то, как вы можете
экспортировать файловые системы, но для большинства это не
проблема.Ниже приведён пример правильного списка экспортирования, где
/usr и /exports являются
локальными файловыми системами:# Экспортируем src и ports для client01 и client02, но
# только client01 имеет права пользователя root на них
/usr/src /usr/ports -maproot=root client01
/usr/src /usr/ports client02
# Клиентские машины имеют пользователя root и могут монтировать всё в
# каталоге /exports. Кто угодно может монтировать /exports/obj в режиме чтения
/exports -alldirs -maproot=root client01 client02
/exports/obj -roВы должны перезапустить mountd после того, как
изменили /etc/exports, чтобы изменения вступили в
силу. Это может быть достигнуто посылкой сигнала HUP процессу
mountd:&prompt.root; kill -HUP `cat /var/run/mountd.pid`Как вариант, при перезагрузке FreeBSD всё настроится правильно.
Хотя выполнять перезагрузку вовсе не обязательно. Выполнение следующих
команд пользователем root запустит всё, что
нужно.На сервере NFS:&prompt.root; portmap
&prompt.root; nfsd -u -t -n 4
&prompt.root; mountd -rНа клиенте NFS:&prompt.root; nfsiod -n 4Теперь всё должно быть готово к реальному монтированию удалённой
файловой системы. В приводимых примерах сервер будет носить имя
server, а клиент будет носить имя
client. Если вы только хотите
временно смонтировать удалённую файловую систему, или всего лишь
протестировать ваши настройки, то просто запустите команды, подобные
приводимым здесь, работая как пользователь root на
клиентской машине:NFSмонтирование&prompt.root; mount server:/home /mntПо этой команде файловая система /home на
сервере будет смонтирована в каталог /mnt на
клиенте. Если всё настроено правильно, вы сможете войти в каталог
/mnt на клиенте и увидеть файлы, находящиеся на
сервере.Если вы хотите автоматически монтировать удалённую файловую
систему при каждой загрузке компьютера, добавьте файловую систему в
/etc/fstab. Вот пример:server:/home /mnt nfs rw 0 0На страницах справочной системы по &man.fstab.5; перечислены все
доступные параметры.Практическое использованиеУ NFS есть много вариантов практического
применения. Ниже приводится несколько наиболее широко распространённых
способов её использования:NFSиспользованиеНастройка несколько машин для совместного использования CDROM
или других носителей. Это более дешёвый и зачастую более удобный
способ установки программного обеспечения на несколько машин.В больших сетях может оказаться более удобным настроить
центральный сервер NFS, на котором размещаются
все домашние каталоги пользователей. Эти домашние каталоги могут
затем экспортироваться в сеть так, что пользователи всегда будут
иметь один и тот же домашний каталог вне зависимости от того, на
какой рабочей станции они работают.Несколько машин могут иметь общий каталог
/usr/ports/distfiles. Таким образом, когда
вам нужно будет установить порт на несколько машин, вы сможете быстро
получить доступ к исходным текстам без их загрузки на каждой
машине.WylieStilwellТекст предоставил ChernLeeТекст переписал Автоматическое монтирование с
amdamdдаемон автоматического монтирования&man.amd.8; (даемон автоматического монтирования) автоматически
монтирует удалённую файловую систему,
как только происходит обращение к файлу или каталогу в этой файловой
системе. Кроме того, файловые системы, которые были неактивны
некоторое время, будут автоматически размонтированы даемоном
amd. Использование
amd является простой альтернативой
статическому монтированию, так как в последнем случае обычно всё должно
быть описано в файле /etc/fstab.amd работает, сам выступая как сервер
NFS для каталогов /host и
/net. Когда происходит обращение к файлу в одном
из этих каталогов, amd ищет соответствующий
удаленный ресурс для монтирования и автоматически его монтирует.
/net используется для монтирования экспортируемой
файловой системы по адресу IP, когда как каталог
/host используется для монтирования ресурса по
удаленному имени хоста.Обращение к файлу в каталоге
/host/foobar/usr укажет
amd на выполнение попытки монтирования
ресурса /usr, который находится на хосте
foobar.Монтирование ресурса при помощи
amdВы можете посмотреть доступные для монтирования ресурсы
отдалённого хоста командой showmount. К примеру,
чтобы посмотреть ресурсы хоста с именем foobar, вы
можете использовать:&prompt.user; showmount -e foobar
Exports list on foobar:
/usr 10.10.10.0
/a 10.10.10.0
&prompt.user; cd /host/foobar/usrКак видно из примера, showmount показывает
/usr как экспортируемый ресурс. При переходе в
каталог /host/foobar/usr даемон
amd пытается разрешить имя хоста
foobar и автоматически смонтировать требуемый
ресурс.amd может быть запущен из скриптов
начальной загрузки, если поместить такую строку в файл
/etc/rc.conf:amd_enable="YES"Кроме того, даемону amd могут быть
переданы настроечные флаги через параметр
amd_flags. По умолчанию
amd_flags настроен следующим образом:amd_flags="-a /.amd_mnt -l syslog /host /etc/amd.map /net /etc/amd.map"Файл /etc/amd.map задает опции, используемые
по умолчанию при монтировании экспортируемых ресурсов. В файле
/etc/amd.conf заданы настройки некоторых более
сложных возможностей amd.Обратитесь к справочным страницам по &man.amd.8; и &man.amd.conf.5;
для получения более полной информации.JohnLindТекст предоставил Проблемы взаимодействия с другими системамиНекоторые сетевые адаптеры для систем PC с шиной ISA имеют
ограничения, которые могут привести к серьезным проблемам в сети, в
частности, с NFS. Эти проблемы не специфичны для FreeBSD, однако
эту систему они затрагивают.Проблема, которая возникает практически всегда при работе по сети
систем PC (FreeBSD) с высокопроизводительными рабочими станциями,
выпущенными такими производителями, как Silicon Graphics, Inc. и Sun
Microsystems, Inc. Монтирование по протоколу NFS будет работать
нормально, и некоторые операции также будут выполняться успешно, но
неожиданно сервер окажется недоступным для клиент, хотя запросы к и
от других систем будут продолжаться обрабатываться. Такое встречается
с клиентскими системами, не зависимо от того, является ли клиент
машиной с FreeBSD или рабочей станцией. Во многих системах при
возникновении этой проблемы нет способа корректно завершить работу
клиента. Единственным выходом зачастую является холодная перезагрузка
клиента, потому что ситуация с NFS не может быть разрешена.Хотя правильным решением является установка более
производительного и скоростного сетевого адаптера на систему FreeBSD,
имеется простое решение, приводящее к удовлетворительным результатам.
Если система FreeBSD является сервером, укажите
параметр на клиенте при монтировании. Если
система FreeBSD является клиентом, то смонтируйте
файловую систему NFS с параметром . Эти
параметры могут быть заданы в четвертом поле записи в файле
fstab клиента при автоматическом монтировании,
или при помощи параметра в команде &man.mount.8; при
монтировании вручную.Нужно отметить, что имеется также другая проблема, ошибочно
принимаемая за приведенную выше, когда серверы и клиенты NFS находятся
в разных сетях. Если это тот самый случай,
проверьте, что ваши маршрутизаторы пропускают
нужную информацию UDP, в противном случае вы
ничего не получите, что бы вы ни предпринимали.В следующих примерах fastws является именем хоста
(интерфейса) высокопроизводительной рабочей станции, а
freebox является именем хоста (интерфейса) системы
FreeBSD со слабым сетевым адаптером. Кроме того,
/sharedfs будет являться экспортируемой через NFS
файловой системой (обратитесь к страницам справочной системы по команде
&man.exports.5;), а /project будет точкой
монтирования экспортируемой файловой системы на клиенте. В любом
случае, отметьте, что для вашего приложения могут понадобиться
дополнительные параметры, такие, как ,
или .Пример системы FreeBSD (freebox) как клиента
в файле /etc/fstab на машине
freebox:fastws:/sharedfs /project nfs rw,-r=1024 0 0Команда, выдаваемая вручную на машине
freebox:&prompt.root; mount -t nfs -o -r=1024 fastws:/sharedfs /projectПример системы FreeBSD в качестве сервера в файле
/etc/fstab на машине
fastws:freebox:/sharedfs /project nfs rw,-w=1024 0 0Команда, выдаваемая вручную на машине
fastws:&prompt.root; mount -t nfs -o -w=1024 freebox:/sharedfs /projectПрактически все 16-разрядные сетевые адаптеры позволят работать
без указанных выше ограничений на размер блоков при чтении и
записи.Для тех, кто интересуется, ниже описывается, что же происходит в
при появлении этой ошибки, и объясняется, почему ее невозможно
устранить. Как правило, NFS работает с блоками размером
8 килобайт (хотя отдельные фрагменты могут иметь меньшие
размеры). Так, пакет Ethernet имеет максимальный размер около
1500 байт, то
блок NFS разбивается на несколько пакетов Ethernet, хотя
на более высоком уровне это все тот же единый блок, который должен быть
принят, собран и подтвержден как один блок.
Высокопроизводительные рабочие станции могут посылать пакеты, которые
соответствуют одному блоку NFS, сразу друг за другом, насколько это
позволяет делать стандарт. На слабых, низкопроизводительных адаптерах
пакеты, пришедшие позже, накладываются поверх ранее пришедших пакетов
того же самого блока до того, как они могут быть переданы хосту и
блок как единое целое не может быть собран или подтвержден. В
результате рабочая станция входит в ситуацию таймаута и пытается
повторить передачу, но уже с полным блоком в 8 КБ, и процесс будет
повторяться снова, до бесконечности.Задав размер блока меньше размера пакета Ethernet, мы достигаем
того, что любой полностью полученный пакет Ethernet может быть
подтвержден индивидуально, и избежим тупиковую ситуацию.Наложение пакетов может все еще проявляться, когда
высокопроизводительные рабочие станции сбрасывают данные на PC-систему,
однако повторение этой ситуации не обязательно с более скоростными
адаптерами с блоками NFS. Когда происходит наложение,
затронутые блоки будут переданы снова, и скорее всего, они будут
получены, собраны и подтверждены.BillSwingleТекст создал EricOgrenВнёс добавления UdoErdelhoffNetwork Information System (NIS/YP)Что это такое?NISSolarisHP-UXAIXLinuxNetBSDOpenBSDNIS,
что является сокращением от Network Information Services
(Сетевые Информационные Службы), которые были разработаны компанией
Sun Microsystems для централизованного администрирования систем &unix;
(изначально &sunos;). В настоящее время эти службы практически стали
промышленным стандартом; все основные &unix;-подобные системы
(&solaris;, HP-UX, &aix;, Linux, NetBSD, OpenBSD, FreeBSD и так далее)
поддерживают NIS.yellow pagesNISNIS
первоначально назывались Yellow Pages (или yp), но из-за
проблем с торговым знаком Sun изменила это название. Старое название
(и yp) всё ещё часто употребляется.NISдоменыЭто система клиент/сервер на основе вызовов RPC, которая позволяет
группе машин в одном домене NIS совместно использовать общий набор
конфигурационных файлов. Системный администратор может настроить
клиентскую систему NIS только с минимальной настроечной информацией, а
затем добавлять, удалять и модифицировать настроечную информацию из
одного места.Windows NTЭто похоже на систему доменов &windowsnt;; хотя их внутренние
реализации не так уж и похожи, основные функции сравнимы.Термины/программы, о которых вы должны знатьСуществует несколько терминов и некоторое количество
пользовательских программ, которые будут нужны, когда вы будете
пытаться сделать NIS во FreeBSD, и в случае создания сервера, и
в случае работы в качестве клиента NIS:portmapТерминОписаниеИмя домена NISГлавный сервер NIS и все его клиенты (включая вторичные
серверы), имеют доменное имя NIS. Как и в случае с именем
домена &windowsnt;, имя домена NIS не имеет ничего общего с
DNS.portmapДля обеспечения работы RPC (Remote Procedure Call,
Удалённого Вызова Процедур, сетевого протокола, используемого
NIS), должен быть запущен даемон portmap.
Если даемон portmap не запущен, невозможно
будет запустить сервер NIS, или работать как
NIS-клиент.ypbindСвязывает
NIS-клиента с его NIS-сервером. Он определяет имя NIS-домена
системы, и при помощи RPC подключается к серверу.
ypbind является основой клиент-серверного
взаимодействия в среде NIS; если на клиентской машине
программа ypbind перестанет работать, то
эта машина не сможет получить доступ к серверу NIS.ypservПрограмма ypserv, которая должна
запускаться только на серверах NIS: это и есть
сервер NIS. Если &man.ypserv.8; перестанет работать, то
сервер не сможет отвечать на запросы NIS (к счастью, на этот
случай предусмотрен вторичный сервер). Есть несколько
реализаций NIS (к FreeBSD это не относится), в которых не
производится попыток подключиться к другому серверу, если ранее
используемый сервер перестал работать. Зачастую единственным
средством, помогающим в этой ситуации, является перезапуск
серверного процесса (или сервера полностью) или процесса
ypbind на клиентской машине.rpc.yppasswddПрограмма rpc.yppasswdd, другой
процесс, который запускается только на главных NIS-серверах:
это даемон, позволяющий клиентам NIS изменять свои
пароли NIS. Если этот даемон не запущен, то пользователи
должны будут входить на основной сервер NIS и там менять свои
пароли.Как это работает?В системе NIS существует три типа хостов: основные (master)
серверы, вторичные (slave) серверы и клиентские машины. Серверы
выполняют роль централизованного хранилища информации о конфигурации
хостов. Основные серверы хранят оригиналы этой информации, когда как
вторичные серверы хранят ее копию для обеспечения избыточности.
Клиенты связываются с серверами, чтобы предоставить им эту
информацию.Информация во многих файлах может совместно использоваться
следующим образом. Файлы master.passwd,
group и hosts используются
совместно через NIS. Когда процессу, работающему на клиентской машине,
требуется информация, как правило, находящаяся в этих файлах локально,
то он делает запрос к серверу NIS, с которым связан.Типы машинNISглавный серверОсновной сервер NIS.
Такой сервер, по аналогии с первичным контроллером домена
&windowsnt;, хранит файлы, используемые всеми клиентами NIS. Файлы
passwd, group и
различные другие файлы, используемые клиентами NIS, находятся
на основном сервере.Возможно использование одной машины в качестве сервера для
более чем одного домена NIS. Однако, в этом введении такая
ситуация не рассматривается, и предполагается менее масштабное
использование NIS.NISвторичный серверВторичные серверы NIS. Похожие на
вторичные контроллеры доменов &windowsnt;, вторичные серверы
NIS содержат копии оригинальных файлов данных NIS. Вторичные
серверы NIS обеспечивают избыточность, что нужно в критичных
приложениях. Они также помогают распределять нагрузку на
основной сервер: клиенты NIS всегда подключаются к тому серверу
NIS, который ответил первым, в том числе и к вторичным
серверам.NISклиентКлиенты NIS.
Клиенты NIS, как и большинство рабочих станций &windowsnt;,
аутентифицируются на сервере NIS (или на контроллере домена
&windowsnt; для рабочих станций &windowsnt;) во время
входа в систему.Использование NIS/YPВ этом разделе приводится пример настройки NIS.В этом разделе предполагается, что вы работаете с FreeBSD 3.3
или выше. Указания, приводимые здесь, скорее всего,
будут работать с любой версией FreeBSD, выше,
чем 3.0, однако нет гарантий, что это на самом деле так.ПланированиеДавайте предположим, что вы являетесь администратором в маленькой
университетской лаборатории. В настоящий момент в этой лаборатории
с 15 машинами отсутствует единая точка администрирования; на каждой
машине имеются собственные файлы /etc/passwd и
/etc/master.passwd. Эти файлы синхронизируются
друг с другом только вручную; сейчас, когда вы добавляете
пользователя в лаборатории, вы должны выполнить команду
adduser на всех 15 машинах. Понятно, что такое
положение вещей нужно исправлять, так что вы решили перевести
сеть на использование NIS, используя две машины в качестве
серверов.Итак, конфигурация лаборатории сейчас выглядит примерно
так:Имя машиныIP-адресРоль машиныellington10.0.0.2Основной сервер NIScoltrane10.0.0.3Вторичный сервер NISbasie10.0.0.4Факультетская рабочая станцияbird10.0.0.5Клиентская машинаcli[1-11]10.0.0.[6-17]Другие клиентские машиныЕсли вы определяете схему NIS первый раз, ее нужно хорошо
обдумать. Вне зависимости от размеров вашей сети, есть несколько
ключевых моментов, которые требуют принятия решений.Выбор имени домена NISNISимя доменаЭто имя не должно быть именем домена, которое
вы использовали. Более точно это имя называется именем
домена NIS. Когда клиент рассылает запросы на получение
информации, он включает в них имя домена NIS, частью которого
является. Таким способом многие сервера в сети могут указать,
какой сервер на какой запрос должен отвечать. Думайте о домене
NIS как об имени группы хостов, которые каким-то образом
связаны.Некоторые организации в качестве имени домена NIS используют
свой домен Интернет. Это не рекомендуется, так как может вызвать
проблемы в процессе решения сетевых проблем. Имя домена NIS должно
быть уникальным в пределах вашей сети и хорошо, если оно будет
описывать группу машин, которые представляет. Например,
художественный отдел в компании Acme Inc. может находиться в
домене NIS с именем acme-art. В нашем примере
положим, что мы выбрали имя test-domain.SunOSНесмотря на это, некоторые операционные системы (в частности,
&sunos;) используют свое имя домена NIS в качестве имени домена
Интернет. Если одна или более машин в вашей сети имеют такие
ограничения, вы обязаны использовать имя
домена Интернет в качестве имени домена NIS.Требования к серверуЕсть несколько вещей, которые нужно иметь в виду при выборе
машины для использования в качестве сервера NIS. Одной из
обескураживающей вещью, касающейся NIS, является уровень
зависимости клиентов от серверов. Если клиент не может
подключиться к серверу своего домена NIS, зачастую машину просто
становится нельзя использовать. Отсутствие информации о
пользователях и группах приводит к временной остановке работы
большинства систем. Зная это, вы должны выбрать машину, которая
не должна подвергаться частым перезагрузкам и не используется
для разработки. Сервер NIS в идеале должен быть отдельно стоящей
машиной, единственным целью в жизни которой является быть сервером
NIS. Если вы работаете в сети, которая не так уж сильно загружена,
то можно поместить сервер NIS на машине, на которой запущены и
другие сервисы, просто имейте в виду, что если сервер NIS
становится недоступным, то это негативно отражается на
всех клиентах NIS.Серверы NISОригинальные копии всей информации NIS хранится на единственной
машине, которая называется главным сервером NIS. Базы данных,
которые используются для хранения информации, называются картами NIS.
Во FreeBSD эти карты хранятся в
/var/yp/[domainname], где
[domainname] является именем обслуживаемого
домена NIS. Один сервер NIS может поддерживать одновременно
несколько доменов, так что есть возможность иметь несколько таких
каталогов, по одному на каждый обслуживаемый домен. Каждый домен
будет иметь свой собственный независимый от других набор карт.Основной и вторичный серверы обслуживают все запросы NIS с
помощью даемона ypserv. ypserv
отвечает за получение входящих запросов от клиентов NIS,
распознавание запрашиваемого домена и отображение имени в путь к
соответствующему файлы базы данных, а также передаче информации из
базы данных обратно клиенту.Настройка основного сервера NISNISнастройка сервераНастройка основного сервера NIS может оказаться сравнительно
простой, в зависимости от ваших потребностей. В поставку FreeBSD
сразу включена поддержка NIS. Все, что вам нужно, это добавить
следующие строки в файл /etc/rc.conf, а
FreeBSD сделает за вас всё остальное..nisdomainname="test-domain"
В этой строке задается имя домена NIS, которое будет
test-domain, еще до настройки сети
(например, после перезагрузки).nis_server_enable="YES"
Здесь указывается FreeBSD на запуск процессов серверов NIS,
когда дело доходит до сетевых настроек.nis_yppasswdd_enable="YES"
Здесь указывается на запуск даемона
rpc.yppasswdd, который, как это отмечено
выше, позволит пользователям менять свой пароль NIS с
клиентской машины.В зависимости от ваших настроек NIS, вам могут понадобиться
дополнительные строки. Обратитесь к разделу о серверах NIS,
которые являются и клиентами NIS ниже для получения
подробной информации.А теперь всё, что вам нужно сделать, это запустить команду
/etc/netstart, работая как администратор. По
ней произойдет настройка всего, при этом будут использоваться
значения, заданные в файле /etc/rc.conf.Инициализация карт NISNISкартыКарты NIS являются файлами баз данных,
которые хранятся в каталоге /var/yp.
Они генерируются из конфигурационных файлов, находящихся в каталоге
/etc основного сервера NIS, за одним
исключением: файл /etc/master.passwd.
На это есть весомая причина, вам не нужно распространять пароли
пользователя root и других административных
пользователей на все серверы в домене NIS. По этой причине, прежде
чем инициализировать карты NIS, вы должны сделать вот что:&prompt.root; cp /etc/master.passwd /var/yp/master.passwd
&prompt.root; cd /var/yp
&prompt.root; vi master.passwdВы должны удалить все записи, касающиеся системных
пользователей (bin, tty,
kmem, games и так далее), а
также записи, которые вы не хотите распространять клиентам NIS
(например, root и другие пользователи с UID,
равным 0 (администраторы)).Проверьте, чтобы файл
/var/yp/master.passwd был недоступен для
записи ни для группы, ни для остальных пользователей (режим
доступа 600)! Воспользуйтесь командой chmod,
если это нужно.Tru64 UNIXКогда с этим будет покончено, самое время инициализировать
карты NIS! В поставку FreeBSD включен скрипт с именем
ypinit, который делает это (обратитесь к его
справочной странице за дополнительной информацией). Отметьте, что
этот скрипт имеется в большинстве операционных систем &unix;, но не
во всех. В системе Digital Unix/Compaq Tru64 UNIX он называется
ypsetup. Так как мы генерируем карты для
главного сервера NIS, то при вызове программы
ypinit мы передаем ей параметр
. Для генерации карт NIS в предположении, что
вы уже сделали шаги, описанные выше, выполните следующее:ellington&prompt.root; ypinit -m test-domain
Server Type: MASTER Domain: test-domain
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] n
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
At this point, we have to construct a list of this domains YP servers.
rod.darktech.org is already known as master server.
Please continue to add any slave servers, one per line. When you are
done with the list, type a <control D>.
master server : ellington
next host to add: coltrane
next host to add: ^D
The current list of NIS servers looks like this:
ellington
coltrane
Is this correct? [y/n: y] y
[..вывод при генерации карт..]
NIS Map update completed.
ellington has been setup as an YP master server without any errors.Программа ypinit должна была создать файл
/var/yp/Makefile из
/var/yp/Makefile.dist. При создании этого
файла предполагается, что вы работаете в окружении с единственным
сервером NIS и только с машинами FreeBSD. Так как в домене
test-domain имеется также и вторичный сервер,
то вы должны отредактировать файл
/var/yp/Makefile:ellington&prompt.root; vi /var/yp/MakefileВы должны закомментировать строку, в которой указаноNOPUSH = "True"(она уже не раскомментирована).Настройка вторичного сервера NISNISвторичный серверНастройка вторичного сервера NIS осуществляется ещё проще,
чем настройка главного сервера. Войдите на вторичный сервер и
отредактируйте файл /etc/rc.conf точно также,
как вы делали это ранее. Единственным отличием является то, что
при запуске программы ypinit мы теперь должны
использовать опцию . Применение опции
требует также указание имени главного сервера
NIS, так что наша команда должна выглядеть так:coltrane&prompt.root; ypinit -s ellington test-domain
Server Type: SLAVE Domain: test-domain Master: ellington
Creating an YP server will require that you answer a few questions.
Questions will all be asked at the beginning of the procedure.
Do you want this procedure to quit on non-fatal errors? [y/n: n] n
Ok, please remember to go back and redo manually whatever fails.
If you don't, something might not work.
There will be no further questions. The remainder of the procedure
should take a few minutes, to copy the databases from ellington.
Transferring netgroup...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byuser...
ypxfr: Exiting: Map successfully transferred
Transferring netgroup.byhost...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byuid...
ypxfr: Exiting: Map successfully transferred
Transferring passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring group.bygid...
ypxfr: Exiting: Map successfully transferred
Transferring group.byname...
ypxfr: Exiting: Map successfully transferred
Transferring services.byname...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring rpc.byname...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.byname...
ypxfr: Exiting: Map successfully transferred
Transferring master.passwd.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byname...
ypxfr: Exiting: Map successfully transferred
Transferring networks.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring netid.byname...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byaddr...
ypxfr: Exiting: Map successfully transferred
Transferring protocols.bynumber...
ypxfr: Exiting: Map successfully transferred
Transferring ypservers...
ypxfr: Exiting: Map successfully transferred
Transferring hosts.byname...
ypxfr: Exiting: Map successfully transferred
coltrane has been setup as an YP slave server without any errors.
Don't forget to update map ypservers on ellington.Теперь у вас должен быть каталог с именем
/var/yp/test-domain. Копии карт главного
сервера NIS должны быть в этом каталоге. Вы должны удостовериться,
что этот каталог обновляется. Следующие строки в
/etc/crontab вашего вторичного сервера должны
это делать:20 * * * * root /usr/libexec/ypxfr passwd.byname
21 * * * * root /usr/libexec/ypxfr passwd.byuidЭти две строки заставляют вторичный сервер синхронизировать
свои карты с картами главного сервера. Хотя эти строчки не
обязательны, так как главный сервер делает попытки передать все
изменения в своих картах NIS на свои вторичные серверы, но из-за
того, что информация для входа в систему настолько жизненно важна для
систем, зависящих от сервера, что выполнение регулярных обновлений
является совсем не плохой идеей. Это ещё более важно в загруженных
сетях, в которых обновления карт могут не всегда завершаться
успешно.А теперь точно также запустите команду
/etc/netstart на вторичном сервере, по которой
снова выполнится запуск сервера NIS.Клиенты NISКлиент NIS выполняет так называемую привязку к конкретному
серверу NIS при помощи даемона ypbind.
ypbind определяет домен, используемый в системе
по умолчанию (тот, который устанавливается по команде
domainname), и начинает широковещательную рассылку
запросов RPC в локальной сети. В этих запросах указано имя домена,
к серверу которого ypbind пытается осуществить
привязку. Если сервер, который был настроен для обслуживания
запрашиваемого домена, получит широковещательный запрос, он ответит
ypbind, который, в свою очередь запомнит адрес
сервера. Если имеется несколько серверов (например, главный и
несколько вторичных), то ypbind будет использовать
адрес первого ответившего. С этого момента клиентская система будет
направлять все свои запросы NIS на этот сервер. Время от времени
ypbind будет пинать сервер для
проверки его работоспособности.
Если на один из тестовых пакетов не удастся получить ответа за
разумное время, то ypbind пометит этот домен как
домен, с которым связка разорвана, и снова начнет процесс посылки
широковещательных запросов в надежде найти другой сервер.Настройка клиента NISNISнастройка клиентаНастройка машины с FreeBSD в качестве клиента NIS достаточно
проста.Отредактируйте файл /etc/rc.conf,
добавив туда следующие строки для того, чтобы задать имя домена
NIS и запустить ypbind во время запуска
сетевых служб:nisdomainname="test-domain"
nis_client_enable="YES"Для импортирования всех возможных учётных записей от сервера
NIS, удалите все записи пользователей из вашего файла
/etc/master.passwd и воспользуйтесь
командой vipw для добавления следующей строки
в конец файла:+:::::::::Эта строчка даст всем пользователям с корректной учетной
записью в картах учетных баз пользователей доступ к этой
системе. Есть множество способов настроить ваш клиент NIS,
изменив эту строку. Посмотрите ниже текст, касающийся сетевых групп, чтобы
получить более подробную информацию. Дополнительная информация
для изучения находится в книге издательства O'Reilly под
названием Managing NFS and NIS.Вы должны оставить хотя бы одну локальную запись (то есть
не импортировать ее через NIS) в вашем
/etc/master.passwd и эта запись должна
быть также членом группы wheel. Если
с NIS что-то случится, эта запись может использоваться для
удаленного входа в систему, перехода в режим администратора и
исправления неисправностей.Для импортирования всех возможных записей о группах с
сервера NIS, добавьте в ваш файл
/etc/group такую строчку:+:*::После завершения выполнения этих шагов у вас должно получиться
запустить команду ypcat passwd и увидеть
карту учетных записей сервера NIS.Безопасность NISВ общем-то любой пользователь, зная имя вашего домена, может
выполнить запрос RPC к &man.ypserv.8; и получить содержимое ваших карт
NIS. Для предотвращения такого неавторизованного обмена &man.ypserv.8;
поддерживает так называемую систему securenets, которая может
использоваться для ограничения доступа к некоторой группе хостов. При
запуске &man.ypserv.8; будет пытаться загрузить информацию, касающуюся
securenets, из файла /var/yp/securenets.Имя каталога зависит от параметра, указанного вместе с опцией
. Этот файл содержит записи, состоящие из
указания сети и сетевой маски, разделенных пробелом. Строчки,
начинающиеся со знака #, считаются комментариями.
Примерный файл securenets может иметь примерно такой вид:# allow connections from local host -- mandatory
127.0.0.1 255.255.255.255
# allow connections from any host
# on the 192.168.128.0 network
192.168.128.0 255.255.255.0
# allow connections from any host
# between 10.0.0.0 to 10.0.15.255
# this includes the machines in the testlab
10.0.0.0 255.255.240.0Если &man.ypserv.8; получает запрос от адреса, который соответствует
одному из этих правил, он будет отрабатывать запрос обычным образом.
Если же адрес не подпадает ни под одно правило, запрос будет
проигнорирован и в журнал будет записано предупреждающее сообщение. Если
файл /var/yp/securenets не существует,
ypserv будет обслуживать соединения от любого
хоста.Программа ypserv также поддерживает пакет программ
tcpwrapper от Wietse Venema. Это позволяет
администратору для ограничения доступа вместо
/var/yp/securenets использовать конфигурационные
файлы tcpwrapper.Хотя оба этих метода управления доступом обеспечивают некоторую
безопасность, они, как основанные на проверке привилегированного
порта, оба подвержены атакам типа IP spoofing. Весь
сетевой трафик, связанный с работой NIS, должен блокироваться вашим
межсетевым экраном.Серверы, использующие файл /var/yp/securenets,
могут быть не в состоянии обслуживать старых клиентов NIS с древней
реализацией протокола TCP/IP. Некоторые из этих реализаций при
рассылке широковещательных запросов устанавливают все биты машинной
части адреса в ноль и/или не в состоянии определить маску подсети при
вычислении адреса широковещательной рассылки. Хотя некоторые из этих
проблем могут быть решены изменением конфигурации клиента, другие
могут привести к отказу от использования
/var/yp/securenets.Использование /var/yp/securenets на сервере
с такой архаичной реализацией TCP/IP является весьма плохой идеей, и
приведёт к потере работоспособности NIS в большой части вашей
сети.tcpwrapperИспользование пакета tcpwrapper увеличит
время отклика вашего сервера NIS. Дополнительной задержки может
оказаться достаточно для возникновения таймаутов в клиентских
программах, особенно в загруженных сетях или с медленными серверами
NIS. Если одна или более ваших клиентских систем страдают от таких
проблем, вы должны преобразовать такие клиентские системы во вторичные
серверы NIS и сделать принудительную их привязку к самим себе.Запрет входа некоторых пользователейВ нашей лаборатории есть машина basie, о которой
предполагается, что она является исключительно факультетской рабочей
станцией. Мы не хотим исключать эту машину из домена NIS, однако
файл passwd на главном сервере NIS содержит
учетные записи как для работников факультета, так и студентов. Что мы
можем сделать?Есть способ ограничить вход некоторых пользователей на этой машине,
даже если они присутствуют в базе данных NIS. Чтобы это сделать, вам
достаточно добавить
-username в конец файла
/etc/master.passwd на клиентской машине, где
username является именем пользователя,
которому вы хотите запретить вход. Рекомендуется сделать это с помощью
утилиты vipw, так как vipw
проверит ваши изменения в /etc/master.passwd, а
также автоматически перестроит базу данных паролей по окончании
редактирования. Например, если мы хотим запретить пользователю
bill осуществлять вход на машине
basie, то мы сделаем следующее:basie&prompt.root; vipw[add -bill to the end, exit]
vipw: rebuilding the database...
vipw: done
basie&prompt.root; cat /etc/master.passwd
root:[password]:0:0::0:0:The super-user:/root:/bin/csh
toor:[password]:0:0::0:0:The other super-user:/root:/bin/sh
daemon:*:1:1::0:0:Owner of many system processes:/root:/sbin/nologin
operator:*:2:5::0:0:System &:/:/sbin/nologin
bin:*:3:7::0:0:Binaries Commands and Source,,,:/:/sbin/nologin
tty:*:4:65533::0:0:Tty Sandbox:/:/sbin/nologin
kmem:*:5:65533::0:0:KMem Sandbox:/:/sbin/nologin
games:*:7:13::0:0:Games pseudo-user:/usr/games:/sbin/nologin
news:*:8:8::0:0:News Subsystem:/:/sbin/nologin
man:*:9:9::0:0:Mister Man Pages:/usr/share/man:/sbin/nologin
bind:*:53:53::0:0:Bind Sandbox:/:/sbin/nologin
uucp:*:66:66::0:0:UUCP pseudo-user:/var/spool/uucppublic:/usr/libexec/uucp/uucico
xten:*:67:67::0:0:X-10 daemon:/usr/local/xten:/sbin/nologin
pop:*:68:6::0:0:Post Office Owner:/nonexistent:/sbin/nologin
nobody:*:65534:65534::0:0:Unprivileged user:/nonexistent:/sbin/nologin
+:::::::::
-bill
basie&prompt.root;UdoErdelhoffТекст предоставил Использование сетевых группсетевые группыСпособ, описанный в предыдущем разделе, работает достаточно хорошо,
если вам нужны особые правила для очень малой группы пользователей или
машин. В более крупных сетях вы забудете о
запрете входа определенных пользователей на важные машины или даже
будете настраивать каждую машину по отдельности, теряя таким образом
главное преимущество использования NIS:
централизованное администрирование.Ответом разработчиков NIS на эту проблему являются
сетевые группы. Их назначение и смысл можно
сравнить с обычными группами, используемыми в файловых системах &unix;.
Главное отличие заключается в отсутствии числового идентификатора и
возможности задать сетевую группу включением как пользователей, так и
других сетевых групп.Сетевые группы были разработаны для работы с большими, сложными
сетями с сотнями пользователей и машин. С одной стороны, хорошо, если
вам приходится с такой ситуацией. С другой стороны, эта сложность
делает невозможным описание сетевых групп с помощью простых примеров.
Пример, используемый в дальнейшем, демонстрирует эту проблему.Давайте предположим, что успешное внедрение системы NIS в вашей
лаборатории заинтересовало ваше руководство. Вашим следующим заданием
стало расширение домена NIS для включения в него некоторых других
машин студенческого городка. В двух таблицах перечислены имена
новых машин и пользователей, а также их краткое описание.Имена пользователейОписаниеalpha, betaОбычные служащие IT-департаментаcharlie, deltaПрактиканты IT-департаментаecho, foxtrott, golf, ...Обычные сотрудникиable, baker, ...Проходящие интернатуруИмена машинОписаниеwar, death, famine, pollutionВаши самые важные серверы. Только служащим IT позволяется
входить на эти машины.pride, greed, envy, wrath, lust, slothМенее важные серверы. Все сотрудники департамента IT могут
входить на эти машины.one, two, three, four, ...Обычные рабочие станции. Только
реально нанятым служащим позволяется
использовать эти машины.trashcanОчень старая машина без каких-либо критичных данных. Даже
проходящим интернатуру разрешено ее использовать.Если вы попытаетесь реализовать эти требования, ограничивая
каждого пользователя по отдельности, то вам придется добавить на каждой
машине в файл passwd по одной строчке
-user для каждого пользователя, которому
запрещено входить на эту систему. Если вы забудете даже одну строчку,
у вас могут начаться проблемы. Гораздо проще делать это правильно во
время начальной установки, однако вы постепенно будете
забывать добавлять строчки для новых пользователей во время
повседневной работы. В конце концов, Мерфи был оптимистом.Использование в этой ситуации сетевых групп дает несколько
преимуществ. Нет необходимости описывать по отдельности каждого
пользователя; вы ставите в соответствие пользователю одну или
несколько сетевых групп и разрешаете или запрещаете вход всем членам
сетевой группы. Если вы добавляете новую машину, вам достаточно
определить ограничения на вход для сетевых групп. Если добавляется
новый пользователь, вам достаточно добавить его к одной или большему
числу сетевых групп. Эти изменения независимы друг от друга: нет
больше комбинаций для каждого пользователя и машины.
Если настройка вашей системы NIS тщательно спланирована, то для
разрешения или запрещения доступа к машинам вам нужно будет
модифицировать единственный конфигурационный файл.Первым шагом является инициализация карты NIS по имени netgroup.
Программа &man.ypinit.8; во FreeBSD по умолчанию этой карты не
создаёт, хотя реализация NIS будет её поддерживает, как только она
будет создана. Чтобы создать пустую карту, просто наберитеellington&prompt.root; vi /var/yp/netgroupи начните добавлять содержимое. Например, нам нужно по крайней
мере четыре сетевых группы: сотрудники IT, практиканты IT, обычные
сотрудники и интернатура.IT_EMP (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
USERS (,echo,test-domain) (,foxtrott,test-domain) \
(,golf,test-domain)
INTERNS (,able,test-domain) (,baker,test-domain)IT_EMP, IT_APP и так далее
являются именами сетевых групп. Несколько слов в скобках служат для
добавления пользователей в группу. Три поля внутри группы обозначают
следующее:Имя хоста или хостов, к которым применимы последующие записи.
Если имя хоста не указано, то запись применяется ко всем хостам.
Если же указывается имя хоста, то вы получите мир темноты, ужаса
и страшной путаницы.Имя учетной записи, которая принадлежит этой сетевой
группе.Домен NIS для учетной записи. Вы можете импортировать в вашу
сетевую группу учетные записи из других доменов NIS, если вы один
из тех несчастных, имеющих более одного домена NIS.Каждое из этих полей может содержать шаблоны, подробности даны в
странице справочника по &man.netgroup.5;.сетевые группыНе нужно использовать имена сетевых групп длиннее 8 символов,
особенно если в вашем домене NIS имеются машины, работающие под
управлением других операционных систем. Имена чувствительны к
регистру; использование заглавных букв для имен сетевых групп
облегчает распознавание пользователей, имен машин и сетевых
групп.Некоторые клиенты NIS (отличные от FreeBSD) не могут работать
с сетевыми группами, включающими большое количество записей.
Например, в некоторых старых версиях &sunos; возникают проблемы, если
сетевая группа содержит более 15 записей. Вы
можете обойти это ограничение, создав несколько подгрупп с 15 или
меньшим количеством пользователей и настоящую сетевую группу,
состоящую из подгрупп:BIGGRP1 (,joe1,domain) (,joe2,domain) (,joe3,domain) [...]
BIGGRP2 (,joe16,domain) (,joe17,domain) [...]
BIGGRP3 (,joe31,domain) (,joe32,domain)
BIGGROUP BIGGRP1 BIGGRP2 BIGGRP3Вы можете повторить этот процесс, если вам нужно иметь более 225
пользователей в одной сетевой группе.Активация и распространение вашей карты NIS проста:ellington&prompt.root; cd /var/yp
ellington&prompt.root; makeЭто приведет к созданию трех карт NIS
netgroup, netgroup.byhost и
netgroup.byuser. Воспользуйтесь утилитой
&man.ypcat.1; для проверки доступности ваших новых карт NIS:ellington&prompt.user; ypcat -k netgroup
ellington&prompt.user; ypcat -k netgroup.byhost
ellington&prompt.user; ypcat -k netgroup.byuserВывод первой команды должен соответствовать содержимому файла
/var/yp/netgroup. Вторая команда не выведет
ничего, если вы не зададите сетевые группы, специфичные для хоста.
Третья команда может использоваться пользователем для получения
списка сетевых групп.Настройка клиента достаточно проста. Чтобы настроить сервер
war, вам достаточно запустить &man.vipw.8;
и заменить строку+:::::::::на+@IT_EMP:::::::::Теперь только данные, касающиеся пользователей, определенных в
сетевой группе IT_EMP, импортируются в
базу паролей машины war и только этим
пользователям будет разрешен вход.К сожалению, это ограничение также касается и функции ~ командного
процессора и всех подпрограмм, выполняющих преобразование между
именами пользователей и их числовыми ID. Другими
словами, команда cd ~user
работать не будет, команда ls -l будет выдавать
числовые идентификаторы вместо имён пользователей, а
find . -user joe -print работать откажется, выдавая
сообщение No such user. Чтобы это исправить,
вам нужно будет выполнить импорт всех записей о пользователях
без разрешения на вход на ваши серверы.Это можно сделать, добавив еще одну строку в файл
/etc/master.passwd. Эта строка должна
содержать:+:::::::::/sbin/nologin, что означает
Произвести импортирование всех записей с заменой командного
процессора на /sbin/nologin в импортируемых
записях. Вы можете заменить любое поле в строке с паролем,
указав значение по умолчанию в вашем
/etc/master.passwd.Проверьте, что строка
+:::::::::/sbin/nologin помещена после
+@IT_EMP:::::::::. В противном случае все
пользовательские записи, импортированные из NIS, будут иметь
/sbin/nologin в качестве оболочки.После этого изменения при появлении нового сотрудника IT вам будет
достаточно изменять только одну карту NIS. Вы можете применить
подобный метод для менее важных серверов, заменяя
старую строку +::::::::: в их файлах
/etc/master.passwd на нечто, подобное
следующему:+@IT_EMP:::::::::
+@IT_APP:::::::::
+:::::::::/sbin/nologinСоответствующие строки для обычных рабочих станций могут иметь
такой вид:+@IT_EMP:::::::::
+@USERS:::::::::
+:::::::::/sbin/nologinИ все было прекрасно до того момента, когда через несколько
недель изменилась политика: Департамент IT начал нанимать интернатуру.
Интернатуре в IT позволили использовать обычные рабочие станции и
менее важные серверы; практикантам позволили входить на главные
серверы. Вы создали новую сетевую группу IT_INTERN, добавили в нее
новую интернатуру и начали изменять настройки на всех и каждой
машине... Как говорит старая мудрость: Ошибки в
централизованном планировании приводят к глобальному
хаосу.Возможность в NIS создавать сетевые группы из других сетевых
групп может использоваться для предотвращения подобных ситуаций. Одним
из вариантов является создание сетевых групп на основе ролей.
Например, вы можете создать сетевую группу с именем
BIGSRV для задания ограничений на вход на
важные серверы, другую сетевую группу с именем
SMALLSRV для менее важных серверов и третью
сетевую группу под названием USERBOX для
обычных рабочих станций. Каждая из этих сетевых групп содержит
сетевые группы, которым позволено входить на эти машины. Новые записи
для вашей карты NIS сетевой группы должны выглядеть таким
образом:BIGSRV IT_EMP IT_APP
SMALLSRV IT_EMP IT_APP ITINTERN
USERBOX IT_EMP ITINTERN USERSЭтот метод задания ограничений на вход работает весьма хорошо,
если вы можете выделить группы машин с одинаковыми ограничениями. К
сожалению, такая ситуация может быть исключением, но не правилом. В
большинстве случаев вам нужна возможность определять ограничения на
вход индивидуально для каждой машины.Задание сетевых групп в зависимости от машин является другой
возможностью, которой можно воспользоваться при изменении политики,
описанной выше. При таком развитии событий файл
/etc/master.passwd на каждой машине содержит две
строки, начинающиеся с +. Первая из них добавляет
сетевую группу с учётными записями, которым разрешено входить на эту
машину, а вторая добавляет все оставшиеся учетные записи с
/sbin/nologin в качестве командного процессора.
Хорошей идеей является использование ИМЕНИ МАШИНЫ заглавными буквами
для имени сетевой группы. Другими словами, строки должны иметь такой
вид:+@BOXNAME:::::::::
+:::::::::/sbin/nologinКак только вы завершите эту работу для всех ваших машин, вам не
нужно будет снова модифицировать локальные версии
/etc/master.passwd. Все будущие изменения могут
быть выполнены изменением карты NIS. Вот пример возможной карты
сетевой группы для этого случая с некоторыми полезными
дополнениями:# Сначала определяем группы пользователей
IT_EMP (,alpha,test-domain) (,beta,test-domain)
IT_APP (,charlie,test-domain) (,delta,test-domain)
DEPT1 (,echo,test-domain) (,foxtrott,test-domain)
DEPT2 (,golf,test-domain) (,hotel,test-domain)
DEPT3 (,india,test-domain) (,juliet,test-domain)
ITINTERN (,kilo,test-domain) (,lima,test-domain)
D_INTERNS (,able,test-domain) (,baker,test-domain)
#
# Теперь задаем несколько групп на основе ролей
USERS DEPT1 DEPT2 DEPT3
BIGSRV IT_EMP IT_APP
SMALLSRV IT_EMP IT_APP ITINTERN
USERBOX IT_EMP ITINTERN USERS
#
# И группы для специальных задач
# Открыть пользователям echo и golf доступ к антивирусной машине
SECURITY IT_EMP (,echo,test-domain) (,golf,test-domain)
#
# Сетевые группы, специфичные для машин
# Наши главные серверы
WAR BIGSRV
FAMINE BIGSRV
# Пользователю india необходим доступ к этому серверу
POLLUTION BIGSRV (,india,test-domain)
#
# Этот очень важен и ему требуются большие ограничения доступа
DEATH IT_EMP
#
# Антивирусная машина, упомянутая выше
ONE SECURITY
#
# Ограничить машину единственным пользователем
TWO (,hotel,test-domain)
# [...далее следуют другие группы]Если вы используете какие-либо базы данных для управления
учетными записями ваших пользователей, вы должны смочь создать первую
часть карты с помощью инструментов построения отчетов вашей базы
данных. В таком случае новые пользователи автоматически получат
доступ к машинам.И последнее замечание: Не всегда бывает разумно использовать
сетевые группы на основе машин. Если в студенческих лабораториях вы
используете несколько десятков или даже сотен одинаковых машин, то
вам нужно использовать сетевые группы на основе ролей, а не основе
машин, для того, чтобы размеры карты NIS оставались в разумных
пределах.Важные замечанияЕсть некоторые действия, которые нужно будет выполнять по-другому,
если вы работаете с NIS.Каждый раз, когда вы собираетесь добавить пользователя в
лаборатории, вы должны добавить его только на
главном сервере NIS и обязательно перестроить карты
NIS. Если вы забудете сделать это, то новый
пользователь не сможет нигде войти, кроме как на главном сервере
NIS. Например, если в лаборатории нам нужно добавить нового
пользователя jsmith, мы делаем вот что:&prompt.root; pw useradd jsmith
&prompt.root; cd /var/yp
&prompt.root; make test-domainВместо pw useradd jsmith вы можете также
запустить команду adduser jsmith.Не помещайте административные учетные записи в карты
NIS. Вам не нужно распространять административных
пользователей и их пароли на машины, которые не должны иметь доступ
к таким учётным записям.Сделайте главный и вторичные серверы NIS безопасными
и минимизируйте их время простоя. Если кто-то либо
взломает, либо просто отключит эти машины, то люди без права
входа в лабораторию с легкостью получат доступ.Это основное уязвимое место в любой централизованно
администрируемой системе. Если вы не
защищаете ваши серверы NIS, вы будете иметь дело с толпой
разозлённых пользователей!Совместимость с NIS v1ypserv из поставки FreeBSD имеет
встроенную поддержку для обслуживания клиентов NIS v1. Реализация
NIS
во FreeBSD использует только протокол NIS v2, хотя другие реализации
имеют поддержку протокола v1 для совместимости со старыми системами.
Даемоны ypbind, поставляемые с такими
системами, будут пытаться осуществить привязку к серверу NIS v1, даже
если это им не нужно (и они будут постоянно рассылать широковещательные
запросы в поиске такого сервера даже после получения ответа от сервера
v2). Отметьте, что хотя имеется поддержка обычных клиентских вызовов,
эта версия ypserv не отрабатывает запросы на передачу карт v1;
следовательно, она не может использоваться в качестве главного или
вторичного серверов вместе с другими серверами NIS, поддерживающими
только протокол v1. К счастью, скорее всего, в настоящий момент
такие серверы практически не используются.Серверы NIS, которые также являются клиентами NISОсобое внимание следует уделить использованию
ypserv в домене со
многими серверами, когда серверные машины являются также клиентами
NIS.
Неплохо бы заставить серверы осуществить привязку к самим себе,
запретив рассылку запросов на привязку и возможно, перекрестную
привязку друг к другу. Если один сервер выйдет из строя, а другие
будут зависеть от него, то в результате могут возникнуть странные
ситуации. Постепенно все клиенты попадут в таймаут и попытаются
привязаться к другим серверам, но полученная задержка может быть
значительной, а странности останутся, так как серверы снова могут
привязаться друг к другу.Вы можете заставить хост выполнить привязку к конкретному серверу,
запустив команду ypbind с флагом
. Если вы не хотите делать это вручную каждый
раз при перезагрузке
вашего сервера NIS, то можете добавить в файл
/etc/rc.conf такие строки:nis_client_enable="YES" # run client stuff as well
nis_client_flags="-S NIS domain,server"Дополнительную информацию можно найти на странице справки по
&man.ypbind.8;.Форматы паролейNISформаты паролейОдним из общих вопросов, которые возникают в начале работы с NIS,
является вопрос совместимости форматов паролей. Если ваш сервер NIS
использует пароли, зашифрованные алгоритмом DES, то он будет
поддерживать только тех клиентов, что также используют DES. К
примеру, если в вашей сети имеются клиенты NIS, использующие &solaris;,
то вам, скорее всего, необходимо использовать пароли с шифрованием по
алгоритму DES.Чтобы понять, какой формат используют ваши серверы и клиенты,
загляните в файл /etc/login.conf. Если хост
настроен на использование паролей, зашифрованных по алгоритму DES,
то класс default будет содержать запись вроде
следующей:default:\
:passwd_format=des:\
:copyright=/etc/COPYRIGHT:\
[Последующие строки опущены]Другими возможными значениями для passwd_format
являются blf и md5 (для паролей,
шифруемых по стандартам Blowfish и MD5 соответственно).Если вы внесли изменения в файл
/etc/login.conf, то вам также нужно перестроить
базу данных параметров входа в систему, что достигается запуском
следующей команды пользователем root:&prompt.root; cap_mkdb /etc/login.confФормат паролей, которые уже находятся в файле
/etc/master.passwd, не будет изменён до тех пор,
пока пользователь не сменит свой пароль после
перестроения базы данных параметров входа в систему.После этого, чтобы удостовериться в том, что пароли зашифрованы
в том формате, который выбран вами, нужно проверить, что строка
crypt_default в /etc/auth.conf
указывает предпочтение выбранного вами формата паролей. Для этого
поместите выбранный формат первым в списке. Например, при
использовании DES-шифрования паролей строка будет выглядеть так:crypt_default = des blf md5Выполнив вышеперечисленные шаги на каждом из серверов и клиентов
NIS, работающих на FreeBSD, вы можете обеспечить их согласованность
относительно используемого в вашей сети формата паролей. Если у вас
возникли проблемы с аутентификацией клиента NIS, начать
её решать определённо стоит отсюда. Запомните: если вы хотите
использовать сервер NIS в гетерогенной сети, вам, наверное, нужно
будет использовать DES на всех системах в силу того, что это
минимальный общий стандарт.GregSutterТекст написал Автоматическая настройка сети (DHCP)Что такое DHCP?Dynamic Host Configuration ProtocolDHCPInternet Software Consortium (ISC)DHCP, или Dynamic Host Configuration Protocol (Протокол
Динамической Конфигурации Хостов), описывает порядок, по которому
система может подключиться к сети и получить необходимую информацию
для работы в ней. Во FreeBSD используется реализация DHCP от ISC
(Internet Software Consortium), так что вся информация, описывающая
особенности, зависящие от реализации, относится к дистрибутиву
ISC.Что описывается в этом разделеВ этом разделе описываются компоненты системы ISC DHCP как со стороны
клиента, так и со стороны сервера. Программа, работающая на клиентской
стороне, dhclient, интегрирована в поставку FreeBSD,
а серверная часть доступна в виде порта net/isc-dhcp3-server. Кроме ссылок ниже,
много полезной информации находится на страницах справочной системы,
описывающих &man.dhclient.8;, &man.dhcp-options.5; и
&man.dhclient.conf.5;.Как это работаетUDPКогда на клиентской машине выполняется программа
dhclient, являющаяся клиентом DHCP, она начинает
широковещательную рассылку запросов на получение настроечной информации.
По умолчанию эти запросы делаются на 68 порт UDP. Сервер отвечает на UDP
67, выдавая клиенту адрес IP и другую необходимую информацию, такую, как
сетевую маску, маршрутизатор и серверы DNS. Вся эта информация даётся в
форме аренды DHCP и верна только определенное время (что
настраивается администратором сервера DHCP). При таком подходе
устаревшие адреса IP тех клиентов, которые больше не подключены к сети,
могут автоматически использоваться повторно.Клиенты DHCP могут получить от сервера очень много информации.
Подробный список находится в странице Справочника
&man.dhcp-options.5;.Интеграция с FreeBSDКлиент DHCP от ISC, dhclient, полностью
интегрирован во FreeBSD. Поддержка клиента DHCP есть как в программе
установки, так и в самой системе, что исключает необходимость в
знании подробностей конфигурации сети в любой сети, имеющей сервер
DHCP. Утилита dhclient включена во все версии
FreeBSD, начиная с 3.2.sysinstallDHCP поддерживается утилитой sysinstall.
При настройке сетевого интерфейса из программы
sysinstall первый
вопрос, который вам задается: Do you want to try DHCP
configuration of this interface? (Хотите ли вы попробовать
настроить этот интерфейс через DHCP?). Утвердительный ответ
приведёт к запуску программы dhclient, и при удачном
его выполнении к автоматическому заданию информации для настройки
интерфейса.Есть две вещи, которые вы должны сделать для того, чтобы ваша
система использовала DHCP при загрузке:DHCPтребованияУбедитесь, что устройство bpf
включено в компиляцию вашего ядра. Чтобы это сделать, добавьте
строчку device bpf
(pseudo-device bpf в &os; 4.X)
в конфигурационный
файл ядра и перестройте ядро. Более подробная информация о
построении ядер имеется в .Устройство bpf уже является частью
ядра GENERIC, которое поставляется вместе с
FreeBSD, так что, если вы не используете другое ядро, то вам и
не нужно его делать для того, чтобы работал DHCP.Те, кто беспокоится о безопасности, должны иметь в виду, что
устройство bpf является также тем самым
устройством, которое позволяет работать программам-снифферам
пакетов (хотя для этого они должны быть запущены пользователем
root). Наличие устройства
bpfнеобходимо для
использования DHCP, но если вы чересчур беспокоитесь о
безопасности, то вам нельзя добавлять устройство
bpf в ядро только для того, чтобы
в неопределённом будущем использовать DHCP.Отредактируйте ваш файл /etc/rc.conf,
включив в него следующее:ifconfig_fxp0="DHCP"Обязательно замените fxp0 на имя интерфейса,
который вы хотите настраивать динамически, как это описано в .Если dhclient в вашей системе находится в другом
месте или если вы хотите задать дополнительные параметры для
dhclient, то также укажите следующее (изменив так,
как вам нужно):dhcp_program="/sbin/dhclient"
dhcp_flags=""DHCPсерверСервер DHCP, dhcpd, включён как часть порта
net/isc-dhcp3-server в коллекцию
портов. Этот порт содержит DHCP-сервер от ISC и документацию.ФайлыDHCPконфигурационные файлы/etc/dhclient.confdhclient требует наличия конфигурационного
файла, /etc/dhclient.conf. Как правило, файл
содержит только комментарии, а настройки по умолчанию достаточно
хороши. Этот настроечный файл описан на страницах справочной
системы по &man.dhclient.conf.5;./sbin/dhclientdhclient скомпонован статически и находится
в каталоге /sbin. На страница Справочника
&man.dhclient.8; дается более подробная информация о
dhclient./sbin/dhclient-scriptdhclient-script является специфичным для
FreeBSD скриптом настройки клиента DHCP. Он описан в
&man.dhclient-script.8;, но для нормального функционирования
никаких модификаций со стороны пользователя не требуется./var/db/dhclient.leasesВ этом файле клиент DHCP хранит базу данных выданных к
использованию адресов в виде журнала. На странице
&man.dhclient.leases.5; дается гораздо более подробное
описание.Дополнительная литератураПолное описание протокола DHCP дается в RFC 2131. Кроме
того, дополнительная информация есть на сервере .Установка и настройка сервера DHCPЧему посвящён этот разделЭтот раздел даёт информацию о том, как настроить систему
FreeBSD для работы в качестве сервера DHCP на основе реализации
пакета DHCP от ISC (Internet Software Consortium).Серверная часть пакета не поставляется как часть FreeBSD, так
что вам потребуется установить порт net/isc-dhcp3-relay для получения
этого сервиса. Обратитесь к для получения
более полной информации об использовании коллекции портов.Установка сервера DHCPDHCPустановкаДля того, чтобы настроить систему FreeBSD на работу в качестве
сервера DHCP, вам необходимо обеспечить присутствие устройства
&man.bpf.4;, вкомпилированного в ядро. Для этого
добавьте строку device bpf
(pseudo-device bpf в &os; 4.X) в файл
конфигурации вашего ядра. Для получения более полной информации о
построении ядер, обратитесь к .Устройство bpf уже входит в состав
ядра GENERIC, поставляемого с FreeBSD, так что
вам не нужно создавать собственное ядро для обеспечения работы
DHCP.Те, кто обращает особое внимание на вопросы безопасности,
должны заметить, что bpf является тем
устройством, что позволяет нормально работать снифферам пакетов
(хотя таким программам требуются привилегированный доступ).
Наличие устройства bpfобязательно для использования DHCP, но если
вы очень обеспокоены безопасностью, наверное, вам не нужно
включать bpf в ваше ядро только потому,
что в отдалённом будущем вы собираетесь использовать DHCP.Следующим действием, которое вам нужно выполнить, является
редактирование примерного dhcpd.conf, который
устанавливается в составе порта net/isc-dhcp3-server. По умолчанию это
файл /usr/local/etc/dhcpd.conf.sample, и вы
должны скопировать его в файл
/usr/local/etc/dhcpd.conf перед тем, как его
редактировать.Настройка сервера DHCPDHCPdhcpd.confdhcpd.conf состоит из деклараций
относительно подсетей и хостов, и проще всего описывается на
примере:option domain-name "example.com";
option domain-name-servers 192.168.4.100;
option subnet-mask 255.255.255.0;
default-lease-time 3600;
max-lease-time 86400;
ddns-update-style none;
subnet 192.168.4.0 netmask 255.255.255.0 {
range 192.168.4.129 192.168.4.254;
option routers 192.168.4.1;
}
host mailhost {
hardware ethernet 02:03:04:05:06:07;
fixed-address mailhost.example.com;
}Этот параметр задаёт домен, который будет выдаваться
клиентам в качестве домена, используемого по умолчанию при
поиске. Обратитесь к страницам справочной системы по
&man.resolv.conf.5; для получения дополнительной информации о
том, что это значит.Этот параметр задаёт список разделённых запятыми серверов
DNS, которые должен использовать клиент.Маска сети, которая будет выдаваться клиентам.Клиент может запросить определённое время, которое будет
действовать выданная информация. В противном случае сервер
выдаст настройки с этим сроком (в секундах).Это максимальное время, на которое сервер будет выдавать
конфигурацию. Если клиент запросит больший срок, он будет
подтверждён, но будет действовать только
max-lease-time секунд.Этот параметр задаёт, будет ли сервер DHCP пытаться
обновить DNS при выдаче или освобождении конфигурационной
информации. В реализации ISC этот параметр является
обязательным.Это определение того, какие IP-адреса должны использоваться
в качестве резерва для выдачи клиентам. IP-адреса между и
включая границы, будут выдаваться клиентам.Объявление маршрутизатора, используемого по умолчанию,
который будет выдаваться клиентам.Аппаратный MAC-адрес хоста (чтобы сервер DHCP мог
распознать хост, когда тот делает запрос).Определение того, что хосту всегда будет выдаваться один и
тот же IP-адрес. Заметьте, что указание здесь имени хоста
корректно, так как сервер DHCP будет разрешать имя хоста
самостоятельно до того, как выдать конфигурационную
информацию.Как только вы закончите составлять свой
dhcpd.conf, вы можете продолжить работу
запуском сервера при помощи следующей команды:&prompt.root; /usr/local/etc/rc.d/isc-dhcpd.sh startЕсли в будущем вам понадобится сделать изменения в настройке
вашего сервера, то важно заметить, что посылка сигнала
SIGHUP приложению
dhcpdне приведёт к
перезагрузке настроек, как это бывает для большинства даемонов.
Вам нужно послать сигнал SIGTERM для остановки
процесса, а затем перезапустить его при помощи вышеприведённой
команды.ФайлыDHCPконфигурационный файлы/usr/local/sbin/dhcpddhcpd скомпонован статически и
расположен в каталоге /usr/local/sbin.
Страницы справочной системы &man.dhcpd.8;,
устанавливаемые портом, содержат более полную информацию о
dhcpd./usr/local/etc/dhcpd.confdhcpd требует наличия
конфигурационного файла,
/usr/local/etc/dhcpd.conf, до того, как
он будет запущен и начнёт предоставлять сервис клиентам.
Необходимо, чтобы этот файл содержал все данные, которая
будет выдаваться обслуживаемым клиентам, а также информацию о
работе сервера. Этот конфигурационный файл описывается на
страницах справочной системы &man.dhcpd.conf.5;, которые
устанавливаются портом./var/db/dhcpd.leasesСервер DHCP ведёт базу данных выданной информации в этом
файле, который записывается в виде протокола. Страницы
справочной системы &man.dhcpd.leases.5;, устанавливаемые портом,
дают гораздо более подробное описание./usr/local/sbin/dhcrelaydhcrelay используется в сложных
ситуациях, когда сервер DHCP пересылает запросы от клиента
другому серверу DHCP в отдельной сети. Если вам нужна такая
функциональность, то установите порт net/isc-dhcp3-server. На страницах
справочной системы &man.dhcrelay.8;, которые устанавливаются
портом, даётся более полное описание.ChernLeeТекст предоставил Domain Name System (DNS)ОбзорBINDПо умолчанию во FreeBSD используется одна из версий программы BIND
(Berkeley Internet Name Domain), являющейся самой распространенной
реализацией протокола DNS. DNS - это протокол, при помощи которого
имена преобразуются в IP-адреса и наоборот. Например, в ответ на
запрос о www.FreeBSD.org будет получен IP-адрес
веб-сервера Проекта FreeBSD, а запрос о
ftp.FreeBSD.org возвратит IP-адрес соответствующей
машины с FTP-сервером. Точно также происходит и обратный процесс.
Запрос, содержащий IP-адрес машины, возвратит имя хоста. Для
выполнения запросов к DNS вовсе не обязательно иметь в системе
работающий сервер имён.DNSВ сети Интернет DNS управляется через достаточно сложную систему
авторизированных корневых серверов имён, и других менее крупных
серверов имён, которые содержат и кэшируют информацию о конкретных
доменах.В этом документа рассматривается BIND 8.x, так как это стабильная
версия, используемая во FreeBSD. BIND 9.x может быть установлен как
порт net/bind9.Протокол DNS стандартизован в RFC1034 и RFC1035.На данный момент пакет BIND поддерживается Internet Software
Consortium .Используемая терминологияДля понимания этого документа нужно понимать значения некоторых
терминов, связанных с работой DNS.
- ресолвер
+ резолверобратный DNSкорневая зонаТерминОпределениеПрямой запрос к DNS (forward DNS)Преобразование имён хостов в адреса IPОриджин (origin)Обозначает домен, покрываемый конкретным файлом
зоныnamed, bind, сервер
имёнОбщеупотребительные названия для обозначения пакета BIND,
обеспечивающего работу сервера имён во FreeBSD.
- Ресолвер
+ РезолверСистемный процесс, посредством которого машина обращается
к серверу имён для получения информации о зонеОбратный DNS (reverse DNS)Операция, обратная прямому запросу к DNS; преобразование
адресов IP в имена хостовКорневая зонаНачало иерархии зон Интернет. Все зоны находятся под
корневой зоной, подобно тому, как все файлы располагаются ниже
корневого каталога.ЗонаОтдельный домен, поддомен или часть DNS, управляемая
одним сервером.зоныпримерыПримеры зон:. является корневой зонойorg. является зоной ниже корневой зоныexample.org является зоной под зоной
org.foo.example.org. является поддоменом,
зоной под зоной example.org.1.2.3.in-addr.arpa является зоной, в которую
включены все IP-адреса, формирующие пространство адресов
3.2.1.*.Как можно видеть, уточняющая часть имени хоста появляется слева.
Например, example.org. более точен, чем
org., также, как org. более
точен, чем корневая зона. Расположение каждой части имени хоста сильно
похоже на файловую систему: каталог /dev
расположен в корневой файловой системе, и так далее.Причины, по которым вам может понадобиться сервер имёнСервера имён обычно используются в двух видах: авторитетный сервер
имён и кэширующий сервер имён.Авторитетный сервер имён нужен, когда:нужно предоставлять информацию о DNS остальному миру, отвечая
на запросы авторизированно.зарегистрирован домен, такой, как
example.org и в этом домене требуется
поставить имена машин в соответствие с их адресами IP.блоку адресов IP требуется обратные записи DNS (IP в имена
хостов).резервный (slave) сервер имён должен отвечать на запросы о
домене, когда основной не работает или не доступен.Кэширующий сервер имён нужен, когда:локальный сервер DNS может кэшировать информацию и отвечать на
запросы быстрее, чем это происходит при прямом опросе внешнего
сервера имён.требуется уменьшение общего сетевого трафика (DNS
составляет около 5% всего трафика Интернет, или чуть
больше).Например, когда кто-нибудь запрашивает информацию о
- www.FreeBSD.org, то обычно ресолвер обращается к
+ www.FreeBSD.org, то обычно резолвер обращается к
серверу имён вашего провайдера, посылает запрос и ожидает ответа. С
локальным кэширующим сервером DNS запрос во внешний мир будет делаться
всего один раз. Каждый дополнительный запрос не будет посылаться за
пределы локальной сети, потому что информация уже имеется в
кэше.Как это работаетВо FreeBSD даемон BIND, по очевидным причинам, называется
named.ФайлОписаниеnamedдаемон BINDndcпрограмма управления даемоном сервера имён/etc/namedbкаталог, в котором располагается вся информация о зонах
BIND/etc/namedb/named.confконфигурационный файл для даемонаФайлы зон обычно располагаются в каталоге
/etc/namedb и содержат информацию о зоне DNS,
за которую отвечает сервер имён.Запуск BINDBINDзапускТак как сервер имён BIND устанавливается по умолчанию, его
настройка сравнительно проста.Чтобы даемон named запускался во
время загрузки, поместите в /etc/rc.conf
следующую строку:named_enable="YES"Для запуска даемона вручную (после его настройки):&prompt.root; ndc startКонфигурационные файлыBINDконфигурационные файлыИспользование make-localhostОбязательно выполните следующие команды:&prompt.root; cd /etc/namedb
&prompt.root; sh make-localhostдля того, чтобы правильно создать файл
/etc/namedb/localhost.rev локальной обратной
зоны для loopback-интерфейса./etc/namedb/named.conf// $FreeBSD$
//
// Refer to the named(8) manual page for details. If you are ever going
// to setup a primary server, make sure you've understood the hairy
// details of how DNS is working. Even with simple mistakes, you can
// break connectivity for affected parties, or cause huge amount of
// useless Internet traffic.
options {
directory "/etc/namedb";
// In addition to the "forwarders" clause, you can force your name
// server to never initiate queries of its own, but always ask its
// forwarders only, by enabling the following line:
//
// forward only;
// If you've got a DNS server around at your upstream provider, enter
// its IP address here, and enable the line below. This will make you
// benefit from its cache, thus reduce overall DNS traffic in the
Internet.
/*
forwarders {
127.0.0.1;
};
*/Как и говорится в комментариях, если вы хотите получить эффект от
использования кэша провайдера, то можно включить раздел
forwarders. В обычном случае сервер имён будет
рекурсивно опрашивать определённые серверы имён Интернет до тех пор,
пока не получит ответ на свой запрос. При включении этого раздела
он будет автоматически опрашивать сервер имён вашего провайдера (или
тот, который здесь указан), используя преимущества его кэша.
наличия нужной информации. Если соответствующий сервер имён провайдера
работает быстро и имеет хороший канал связи, то в результате такой
настройки вы можете получить хороший результат.
127.0.0.1 здесь
работать не будет. Измените
его на IP-адрес сервера имён провайдера./*
* If there is a firewall between you and name servers you want
* to talk to, you might need to uncomment the query-source
* directive below. Previous versions of BIND always asked
* questions using port 53, but BIND 8.1 uses an unprivileged
* port by default.
*/
// query-source address * port 53;
/*
* If running in a sandbox, you may have to specify a different
* location for the dumpfile.
*/
// dump-file "s/named_dump.db";
};
// Note: the following will be supported in a future release.
/*
host { any; } {
topology {
127.0.0.0/8;
};
};
*/
// Setting up secondaries is way easier and the rough picture for this
// is explained below.
//
// If you enable a local name server, don't forget to enter 127.0.0.1
// into your /etc/resolv.conf so this server will be queried first.
// Also, make sure to enable it in /etc/rc.conf.
zone "." {
type hint;
file "named.root";
};
zone "0.0.127.IN-ADDR.ARPA" {
type master;
file "localhost.rev";
};
zone
"0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.IP6.INT" {
type master;
file "localhost.rev";
};
// NB: Do not use the IP addresses below, they are faked, and only
// serve demonstration/documentation purposes!
//
// Example secondary config entries. It can be convenient to become
// a secondary at least for the zone where your own domain is in. Ask
// your network administrator for the IP address of the responsible
// primary.
//
// Never forget to include the reverse lookup (IN-ADDR.ARPA) zone!
// (This is the first bytes of the respective IP address, in reverse
// order, with ".IN-ADDR.ARPA" appended.)
//
// Before starting to setup a primary zone, better make sure you fully
// understand how DNS and BIND works, however. There are sometimes
// unobvious pitfalls. Setting up a secondary is comparably simpler.
//
// NB: Don't blindly enable the examples below. :-) Use actual names
// and addresses instead.
//
// NOTE!!! FreeBSD runs BIND in a sandbox (see named_flags in rc.conf).
// The directory containing the secondary zones must be write accessible
// to BIND. The following sequence is suggested:
//
// mkdir /etc/namedb/s
// chown bind:bind /etc/namedb/s
// chmod 750 /etc/namedb/sДополнительная информация о запуске BIND в ограниченном окружении
находится в соответствующем
разделе./*
zone "example.com" {
type slave;
file "s/example.com.bak";
masters {
192.168.1.1;
};
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "s/0.168.192.in-addr.arpa.bak";
masters {
192.168.1.1;
};
};
*/Это примеры описаний прямой и обратной зон из файла
named.conf для вторичных серверов.Для каждого новой зоны, которую будет обслуживать сервер имён,
в файл named.conf должна быть добавлена
запись.К примеру, самая простая запись для домена example.org может выглядеть вот так:zone "example.org" {
type master;
file "example.org";
};Зона является первичной, что отражается в поле
, и информация о зоне хранится в файле
/etc/namedb/example.org, что указывается в
поле .zone "example.org" {
type slave;
file "example.org";
};В случае вторичной зоны информация о ней передается с основного
сервера имён для заданной зоны и сохраняется в указанном файле. Если
и когда основной сервер имён выходит и строя или недосягаем, то
скачанная информация о зоне будет находиться на вторичных серверах и
они смогут обслуживать эту зону.Файлы зонПример файла зоны example.org
для основного
сервера (располагающийся в файле
/etc/namedb/example.org) имеет такой
вид:$TTL 3600
example.org. IN SOA ns1.example.org. admin.example.org. (
5 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
86400 ) ; Minimum TTL
; DNS Servers
@ IN NS ns1.example.org.
@ IN NS ns2.example.org.
; Machine Names
localhost IN A 127.0.0.1
ns1 IN A 3.2.1.2
ns2 IN A 3.2.1.3
mail IN A 3.2.1.10
@ IN A 3.2.1.30
; Aliases
www IN CNAME @
; MX Record
@ IN MX 10 mail.example.org.Заметьте, что все имена хостов, оканчивающиеся на .,
задают полное имя, тогда как все имена без символа . на
конце считаются заданными относительно origin. Например,
www преобразуется в
www.origin.
В нашем воображаемом файле ориджином является
example.org., так что
www преобразуется в
www.example.org.Файл зоны имеет следующий формат:recordname IN recordtype valueDNSзаписиНаиболее часто используемые записи DNS:SOAначало зоны ответственностиNSавторитативный сервер именAадрес хостаCNAMEканоническое имя для алиасаMXобмен почтойPTRуказатель на доменное имя (используется в обратных
зонах DNS)example.org. IN SOA ns1.example.org. admin.example.org. (
5 ; Serial
10800 ; Refresh after 3 hours
3600 ; Retry after 1 hour
604800 ; Expire after 1 week
86400 ) ; Minimum TTL of 1 dayexample.org.имя домена, а также ориджин для этого файла зоны.ns1.example.org.основной/авторитативный сервер имён для этой зоны.admin.example.org.человек, отвечающий за эту зону, адрес электронной почты с
подменённым символом @. (admin@example.org
становится admin.example.org)5последовательный номер файла. При каждом изменении файла
зоны это число должно увеличиваться. В настоящее время для
нумерации многие администраторы предпочитают формат
ггггммддвв. 2001041002
будет означать, что
файл последний раз изменялся 10.04.2001, а последнее число
02
означает, что это была вторая модификация файла за день.
Последовательный номер важен, так как он служит для того, чтобы
вторичные серверы узнавали об обновлении зоны.@ IN NS ns1.example.org.Это NS-запись. Такие записи должны иметься для
всех серверов имён, которые будут отвечать за зону. Символ
@, используемый здесь, преобразуется в
example.org. Этот
символ @ соответствует ориджину.localhost IN A 127.0.0.1
ns1 IN A 3.2.1.2
ns2 IN A 3.2.1.3
mail IN A 3.2.1.10
@ IN A 3.2.1.30Записи типа A служат для обозначения имён машин. Как это видно
выше, имя ns1.example.org будет
преобразовано в
3.2.1.2. И снова здесь используется
символ ориджина @, обозначая, что
example.org будет преобразовано
в 3.2.1.30.www IN CNAME @Записи с каноническими именами обычно используются для присвоения
машинам псевдонимов. В этом примере www является
псевдонимом для машины, соответствующей ориджину, то есть
example.org (3.2.1.30).
Записи CNAME могут использоваться для присвоения
псевдонимов именам хостов или для использования одного имени
несколькими машинами по очереди.MX record@ IN MX 10 mail.example.org.MX-запись указывает, какие почтовые серверы
отвечают за обработку входящей электронной почты для зоны. mail.example.org является именем почтового
сервера, а 10 обозначает приоритет этого почтового сервера.Можно иметь несколько почтовых серверов с приоритетами 3, 2 и 1.
Почтовый сервер, пытающийся доставить почту для example.org,
сначала попробует связаться с машиной, имеющий MX-запись с самым
большим приоритетом, затем с приоритетом поменьше и так далее, до тех
пор, пока почта не будет отправлена.Для файлов зон in-addr.arpa (обратные записи DNS) используется тот
же самый формат, отличающийся только использованием записей
PTR вместо A или
CNAME.$TTL 3600
1.2.3.in-addr.arpa. IN SOA ns1.example.org. admin.example.org. (
5 ; Serial
10800 ; Refresh
3600 ; Retry
604800 ; Expire
3600 ) ; Minimum
@ IN NS ns1.example.org.
@ IN NS ns2.example.org.
2 IN PTR ns1.example.org.
3 IN PTR ns2.example.org.
10 IN PTR mail.example.org.
30 IN PTR example.org.В этом файле дается полное соответствие имён хостов IP-адресам в
нашем описанном ранее вымышленном домене.Кэширующий сервер имёнBINDкэширующий сервер имёнКэширующий сервер имён - это сервер имён, не отвечающий ни
за какую зону. Он просто выполняет запросы от своего имени и сохраняет
результаты для последующего использования. Для настройки такого
сервера достаточно исключить все описания зон из стандартной
конфигурации сервера имён.Запуск named в песочницеBINDработа в песочницеchrootДля дополнительной безопасности вам может потребоваться запускать
&man.named.8; с правами непривилегированного пользователя и настроить
его на выполнение &man.chroot.8; в каталог-песочницу. Это позволит
сделать недоступным для даемона named все,
что расположено вне песочницы. Если named
будет взломан, то это поможет уменьшить возможный ущерб. По умолчанию
во FreeBSD имеются пользователь и группа с именами
bind, которые предназначены именно для такого
использования.Многие рекомендуют вместо настройки
named на использование
chroot, запускать named
внутри &man.jail.8;. В этом разделе такой подход не
рассматривается.Так как named не сможет обратиться ни к
чему вне песочницы (например, совместно используемым библиотекам,
сокетам протоколов и так далее), то нужно выполнить несколько шагов,
чтобы named смог работать нормально. В
следующем списке предполагается, что каталогом песочницы является
/etc/namedb и что вы не делали никаких изменений
в содержимом этого каталога. Выполните следующие шаги, работая как
пользователь root:Создайте все каталоги, которые ожидает увидеть
named:&prompt.root; cd /etc/namedb
&prompt.root; mkdir -p bin dev etc var/tmp var/run master slave
&prompt.root; chown bind:bind slave var/*Программе named нужен доступ с
правом записи в эти каталоги, так что это все, что мы ей
предоставим.Измените и создайте базовые файлы зоны и настроек:&prompt.root; cp /etc/localtime etc
&prompt.root; mv named.conf etc && ln -sf etc/named.conf
&prompt.root; mv named.root master
&prompt.root; sh make-localhost && mv localhost.rev localhost-v6.rev master
&prompt.root; cat > master/named.localhost
$ORIGIN localhost.
$TTL 6h
@ IN SOA localhost. postmaster.localhost. (
1 ; serial
3600 ; refresh
1800 ; retry
604800 ; expiration
3600 ) ; minimum
IN NS localhost.
IN A 127.0.0.1
^DЭто позволит программе named
протоколировать правильное время в &man.syslogd.8;.syslogлог файлыDNSЕсли вы используете &os; версии ранее 4.9-RELEASE, то постройте
статически скомпонованную копию
named-xfer и скопируйте её в
песочницу:&prompt.root; cd /usr/src/lib/libisc
&prompt.root; make cleandir && make cleandir && make depend && make all
&prompt.root; cd /usr/src/lib/libbind
&prompt.root; make cleandir && make cleandir && make depend && make all
&prompt.root; cd /usr/src/libexec/named-xfer
&prompt.root; make cleandir && make cleandir && make depend && make NOSHARED=yes all
&prompt.root; cp named-xfer /etc/namedb/bin && chmod 555 /etc/namedb/bin/named-xferПосле установки статически скомпонованного
named-xfer, во избежание появления старых копий
библиотек и программ в дереве исходного кода, требуется некоторая
зачистка:&prompt.root; cd /usr/src/lib/libisc
&prompt.root; make cleandir
&prompt.root; cd /usr/src/lib/libbind
&prompt.root; make cleandir
&prompt.root; cd /usr/src/libexec/named-xfer
&prompt.root; make cleandirИногда при выполнении этого шага возникают ошибки. Если
это случилось, выполните такую команду:&prompt.root; cd /usr/src && make cleandir && make cleandirи удалите ваше дерево /usr/obj:&prompt.root; rm -fr /usr/obj && mkdir /usr/objПри этом из вашего дерева исходных текстов будет удалён
весь мусор, и повторение вышеописанных шагов
должно выполниться успешно.Если вы используете &os; 4.9-RELEASE или более позднюю версию,
то копия named-xfer в каталоге
/usr/libexec по умолчанию является статически
скомпонованной, и вы можете просто скопировать её в песочницу при
помощи команды &man.cp.1;.Создайте файл устройства dev/null,
который named может видеть и писать в
него:&prompt.root; cd /etc/namedb/dev && mknod null c 2 2
&prompt.root; chmod 666 nullСоздайте символическую ссылку
/var/run/ndc на
/etc/namedb/var/run/ndc:&prompt.root; ln -sf /etc/namedb/var/run/ndc /var/run/ndcЭто просто для того, чтобы не задавать опцию
при каждом запуске &man.ndc.8;. Так как
содержимое каталога /var/run удаляется
при загрузке, и если это
показалось вам полезным, то вы можете добавить эту команду
в crontab для root
с использованием параметра
. Обратитесь к справочной странице по
&man.crontab.5; для получения более полной информации
относительно этого.syslogлог файлыnamedНастройте &man.syslogd.8; на создание дополнительного
протоколирующего сокета log, в который
может писать named. Для этого добавьте
-l /etc/namedb/dev/log к переменной
syslogd_flags из файла
/etc/rc.conf.chrootЗадайте запуск named и выполнение
chroot в песочницу, добавив следующее в
/etc/rc.conf:named_enable="YES"
named_flags="-u bind -g bind -t /etc/namedb /etc/named.conf"Заметьте, что конфигурационный файл
/etc/named.conf именуется по полному
имени относительно песочницы, то есть в
вышеприведённой строке указывается файл, который на самом деле
является файлом
/etc/namedb/etc/named.conf.Следующим шагом является редактирование файла
/etc/namedb/etc/named.conf так, чтобы
named знал, какую зону загружать и где найти
их на диске. Далее следует прокомментированный пример (все, что
специально не прокомментировано, ничем не отличается от настройки
сервера DNS, работающего не в песочнице):options {
directory "/";
named-xfer "/bin/named-xfer";
version ""; // Не выдавайте версию BIND
query-source address * port 53;
};
// управляющий сокет ndc
controls {
unix "/var/run/ndc" perm 0600 owner 0 group 0;
};
// Далее следуют зоны:
zone "localhost" IN {
type master;
file "master/named.localhost";
allow-transfer { localhost; };
notify no;
};
zone "0.0.127.in-addr.arpa" IN {
type master;
file "master/localhost.rev";
allow-transfer { localhost; };
notify no;
};
zone "0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.ip6.int" {
type master;
file "master/localhost-v6.rev";
allow-transfer { localhost; };
notify no;
};
zone "." IN {
type hint;
file "master/named.root";
};
zone "private.example.net" in {
type master;
file "master/private.example.net.db";
allow-transfer { 192.168.10.0/24; };
};
zone "10.168.192.in-addr.arpa" in {
type slave;
masters { 192.168.10.2; };
file "slave/192.168.10.db";
};В директиве directory указан каталог
/, так как все файлы, которые нужны для
named, находятся внутри этого каталога
(вспомните, что это равнозначно обычному
пользовательскому /etc/namedb).Задает полный путь к двоичному выполнимому файлу
named-xfer (внутри границ видимости
named). Это необходимо, так как
named компилируется с тем, чтобы
брать named-xfer по умолчанию из
/usr/libexec.Задает имя файла (относительно директивы
directory выше), в котором
named может найти файл зоны для этой
зоны.Задает имя файла (относительно директивы
directory выше), в котором
named должен записывать копию файла
зоны для этой зоны после успешной передачи ее с основного сервера.
Вот почему нам нужно изменить владельца каталога
slave на bind на этапах
настроек выше.После выполнения шагов выше либо перезагрузите ваш сервер, либо
перезапустите &man.syslogd.8; и запустите &man.named.8;, не забыв
использовать новые опции, заданные в syslogd_flags и
named_flags. Теперь
named должен заработать в песочнице!БезопасностьХотя BIND является самой распространенной реализацией DNS, всегда
стоит вопрос об обеспечении безопасности. Время от времени
обнаруживаются возможные и реальные бреши в безопасности.Весьма полезно прочесть сообщения безопасности CERT и подписаться на
&a.security-notifications; для того, чтобы быть в курсе
текущих проблем с обеспечением безопасности Internet и FreeBSD.Если возникают проблемы, то наличие последних исходных текстов и
свежеоткомпилированного named
не помешает.Дополнительная литератураСправочная информация по BIND/named:
&man.ndc.8;, &man.named.8; и
&man.named.conf.5;
Официальная страница ISC BIND
FAQ по BIND
Книга издательства O'Reilly DNS and BIND 4th
EditionRFC1034 - Domain
Names - Concepts and FacilitiesRFC1035 - Domain
Names - Implementation and SpecificationTomRhodesАвтор: DmitryMorozovskyПеревод на русский язык: BIND9 and &os;bind9установка&os; начиная с версии 5.3 содержит в базовой поставке
сервер DNS BIND9.
Среди прочих нововведений стоит отметить новые возможности, связанные
с безопасностью, новую организацию файлов конфигурации и автоматическое
использование опции &man.chroot.8;. Первая часть этой главы посвящена
обсуждению новых возможностей и их использования, вторая описывает
процесс обновления сервера DNS при переходе на &os; 5.3. Мы будем
ссылаться на сервер BIND как &man.named.8;.
Мы подразумеваем, что читатель знаком с терминологией, описываемой в
предыдущей главе.Файлы конфигурации для named в настоящее время
располагаются в каталоге
/var/named/etc/namedb/ и требуют
модификации перед началом использования сервера. Большая часть работы
по конфигурации сервера DNS происходит именно в этом каталоге.Конфигурация основной (Master) зоныДля создания основной зоны перейдите в каталог
/var/named/etc/namedb/
и выполните команду&prompt.root; sh make-localhostПри удачном стечении обстоятельств в каталоге
master появится два новых файла:
localhost.rev для локального домена и
localhost-v6.rev для локальной зоны
IPv6. В поставляемом стандартном файле
конфигурации named.conf уже есть ссылки на оба
файла зон.Конфигурация зависимой (Slave) ЗоныДополнительные домены и поддомены могут быть добавлены как
зависимые зоны. В большинстве случаев достаточно просто скопировать
файл master/localhost.rev в каталог
slave и изменить копию.
- После изменения файлов зон нажно добавить ссылки на них в
+ После изменения файлов зон нужно добавить ссылки на них в
основной файл конфигурации named.conf, например,
так:zone "example.com" {
type slave;
file "slave/example.com";
masters {
10.0.0.1;
};
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "slave/0.168.192.in-addr.arpa";
masters {
10.0.0.1;
};
};Отметим, что использованный в этом примере IP
адрес является адресом, с которого будут копироваться файлы зон;
этот адрес не обязательно является публичным сервером
DNS.Стартовая конфигурация системыДля автоматического запуска даемона named
при загрузке системы добавьте в файл стартовой конфигурации
rc.conf строкуnamed_enable="YES"Есть и другие параметры конфигурации, но эта строка —
минимально необходима. Список параметров можно найти на странице
справочника &man.rc.conf.5;. Если запуск named
не разрешен в rc.conf, сервер можно запустить
вручную командой&prompt.root; /etc/rc.d/named startBIND9: вопросы безопасности&os автоматически запускает named
в ограниченном пространстве &man.chroot.8;; кроме того, существует
еще несколько средств, помогающих защитить сервис
DNS от возможных атак.Списки ограничения доступаДля ограничения доступа к зонам могут применяться списки
доступа. Для этого опишите для домена список IP
адресов, которым разрешены запросы к содержимому доменной зоны, и
используйте имя этого списка в конфигурации зоны.
Вот пример описания списка ограничения доступа:acl "example.com" {
192.168.0.0/24;
};
zone "example.com" {
type slave;
file "slave/example.com";
masters {
10.0.0.1;
};
allow-query { example.com; };
};
zone "0.168.192.in-addr.arpa" {
type slave;
file "slave/0.168.192.in-addr.arpa";
masters {
10.0.0.1;
};
allow-query { example.com; };
};Версия сервераРазрешать всем запросы о версии вашего DNS
сервера может быть не самой лучшей идеей: возможный злоумышленник
может воспользоваться ей для выяснения известных ошибок и
уязвимостей и применить их вашего сервера. Для предотвращения этого
в раздел options файла конфигурации
named.conf можно вписать строку, скрывающую
версию сервера:options {
directory "/etc/namedb";
pid-file "/var/run/named/pid";
dump-file "/var/dump/named_dump.db";
statistics-file "/var/stats/named.stats";
version "None of your business";MurrayStokelyПредоставил Apache HTTP сервервеб сервернастройкаApacheОбзор&os; используется в качестве платформы для многих из самых
нагруженных серверов в мире. Большинство серверов в интернет
используют Apache HTTP сервер.
Пакеты Apache должны быть включены
в поставку FreeBSD. Если вы не установили их во вместе с
системой, воспользуйтесь портами www/apache13 или www/apache2.Как только Apache был успешно
установлен, его необходимо настроить.В этом разделе рассказывается о версии 1.3.X
Apache HTTP сервера, поскольку
эта версия наиболее широко используется в &os;.
Apache 2.X
содержит много новых технологий, но здесь они не обсуждаются.
За дополнительной информацией о
Apache 2.X, обращайтесь к .НастройкаApacheфайл настройкиВ &os; основной файл настройки Apache HTTP сервера
устанавливается в
/usr/local/etc/apache/httpd.conf.
Это обычный текстовый &unix; файл настройки с строками
комментариев, начинающимися с символа #.
Исчерпывающее описание всех возможных параметров настройки
находится за пределом рассмотрения этой книги, поэтому
здесь будут описаны только наиболее часто модифицируемые
директивы.ServerRoot "/usr/local"Указывает верхний каталог установки
Apache по
умолчанию. Бинарные файлы находятся в
bin и
sbin, подкаталоги
расположены относительно корневого каталога сервера, файлы
настройки находятся в
etc/apache.ServerAdmin you@your.addressАдрес, на который должны будут отправляться
сообщения о проблемах с сервером. Этот адрес
выводится на некоторые генерируемые сервером
страницы, например с сообщениями об ошибках.ServerName www.example.comServerName позволяет вам устанавливать имя хоста,
которое отправляется обратно клиентам, если оно
отличается от того, с которым настроен хост
(например, использование www вместо реального
имени хоста).DocumentRoot "/usr/local/www/data"DocumentRoot: Каталог, внутри которого будут храниться
документы. По умолчанию, все запросы обрабатываются внутри
этого каталога, но символические ссылки и синонимы могут
использоваться для указания на другие каталоги.Хорошей идеей будет сделать резервные копии настроек
Apache перед внесением изменений. Как только вы будете
удовлетворены первоначальной настройкой, можно запускать
Apache.Запуск ApacheApacheзапуск или остановкаApache не запускается из
inetd, как это делают многие
другие сетевые серверы. Он настроен для автономного запуска,
чтобы обеспечивать большую производительность при обработке
HTTP запросов от браузеров клиентов. Для упрощения запуска,
остановки и перезапуска сервера существует shell скрипт.
Для запуска Apache в первый раз
просто выполните:&prompt.root; /usr/local/sbin/apachectl startВы можете остановить сервер в любой момент, выполнив:&prompt.root; /usr/local/sbin/apachectl stopПосле внесения любых изменений в файл настроек, вам потребуется
перезапустить сервер:&prompt.root; /usr/local/sbin/apachectl restartДля запуска Apache при старте системы,
добавьте в /etc/rc.conf следующую строку:apache_enable="YES"Если вы хотите передать программе Apachehttpd дополнительные параметры командной
при загрузке системы, они могут быть помещены в дополнительную
строку rc.conf:apache_flags=""Теперь, когда веб сервер запущен, вы можете просмотреть свой веб
сайт, задав в строке браузера адрес
http://localhost/. По умолчанию отображается
веб страница
/usr/local/www/data/index.html.Виртуальный хостингApache поддерживает два различных
типа виртуального хостинга (Virtual Hosting). Первый метод
основан на именах (Name-based Virtual Hosting). Он использует
полученные от клиента заголовки HTTP/1.1 для определения имени
хоста. Это позволяет многим различным доменам использовать
один и тот же IP адрес.Для настройки Apache на использование
этого типа хостинга добавьте в httpd.conf
запись подобную следующей:NameVirtualHost *Если веб сервер назывался www.domain.tld и
вы хотите настроить виртуальный домен для
www.someotherdomain.tld, необходимо добавить
в httpd.conf следующие записи:<VirtualHost *>
ServerName www.domain.tld
DocumentRoot /www/domain.tld
<VirtualHost>
<VirtualHost *>
ServerName www.someotherdomain.tld
DocumentRoot /www/someotherdomain.tld
</VirtualHost>Замените адреса и пути к документам на те, что вы будете
использовать.За дополнительной информацией по настройке виртуальных хостов
обращайтесь к официальной документации
Apache: Модули ApacheApacheмодулиСуществуют множество различных модулей
Apache,
которые добавляют функциональность к основному
серверу. Коллекция портов FreeBSD предоставляет
простой способ установки Apache
с некоторыми наиболее популярными дополнительными
модулями.mod_sslвеб серверзащитаSSLкриптографияМодуль mod_ssl использует
библиотеку OpenSSL для
сильной криптографии через протоколы Secure Sockets Layer
(SSL v2/v3) и Transport Layer Security (TLS v1).
Этот модуль содержит все необходимое для запроса
подписанного сертификата из центра сертификации
для защищенного веб сервера на &os;.Если вы еще не установили
Apache, версия
Apache с
mod_ssl может быть установлена
через порт www/apache13-modssl.
+ role="package">www/apache13-modssl.
+ Поддержка SSL также присутствует и включена по умолчанию
+ для порта www/apache2.
mod_perlPerlПроект интеграции
Apache/Perl объединяет мощь
языка программирования Perl и HTTP сервера
Apache.
С модулем mod_perl возможно
написание модулей Apache
полностью на Perl. Кроме того, постоянно
запущенный встроенный в сервер интерпретатор
позволяет не тратить ресурсы на запуск внешнего
интерпретатора и время на запуск Perl.Если вы еще не установили Apache,
его версия с модулем mod_perl может
быть установлена через
порт www/apache13-modperl.PHPPHPPHP, сокращение от PHP: Hypertext
Preprocessor это широко используемый Open Source
скриптовый язык общего назначения, который в основном
предназначен для веб разработки и может быть встроен в
HTML. Его синтаксис был взят от C, &java;, и Perl и язык
легок в изучении. Основное преимущество языка в том, что
он позволяет веб разработчикам создавать веб страницы быстро,
но есть и множество других возможностей.PHP может быть установлен из порта lang/php5.MurrayStokelyПредоставил Файл сервер и печать для µsoft.windows; клиентов
(Samba)Samba серверMicrosoft Windowsфайл серверWindows клиентыпринт серверWindows клиентыОбзорSamba это популярный пакет
программ с открытыми исходными текстами, которая предоставляет
файловые и принт-сервисы µsoft.windows; клиентам.
Эти клиенты могут подключаться и использовать файловое
пространство FreeBSD, как если бы это был локальный диск,
или принтеры FreeBSD, как если бы это были локальные
принтеры.Пакет Samba должен быть включен
в поставку FreeBSD. Если вы не установили
Samba при первой установке системы,
ее можно установить из порта или пакета net/samba3.НастройкаФайл настройки Samba по умолчанию
устанавливается в
/usr/local/etc/smb.conf.default. Этот файл
необходимо скопировать в
/usr/local/etc/smb.conf и отредактировать
перед использованием Samba.В файле smb.conf находится информация,
необходимая для работы Samba,
например определение принтеров и общих каталогов,
которые будут использоваться совместно с &windows; клиентами.
В пакет Samba входит программа с
веб интерфейсом, называемая swat,
которая дает простой способ редактирования файла
smb.conf.Использование Samba Web Administration Tool (SWAT)Программа веб администрирования Samba (Samba Web
Administration Tool, SWAT) запускается как даемон из
inetd. Следовательно, в
/etc/inetd.conf необходимо снять комментарий
перед тем, как использовать swat для
настройки Samba:swat stream tcp nowait/400 root /usr/local/sbin/swatКак описано в ,
после изменения настроек inetd
необходимо отправить HangUP сигнал.Как только swat был включен
inetd.conf, вы можете использовать
браузер для подключения к .
Сначала необходимо зарегистрироваться с системной
учетной записью root.После успешного входа на основную страницу настройки
Samba, вы можете просмотреть
документацию или начать настройку, нажав на кнопку
Globals. Раздел Globals
соответствует переменным,
установленным в разделе [global] файла
/usr/local/etc/smb.conf.Глобальные настройкиНезависимо от того, используете ли вы
swat, или редактируете
/usr/local/etc/smb.conf непосредственно,
первые директивы, которые вы скорее всего встретите при
настройке Samba, будут
следующими:workgroupИмя домена или рабочей группы NT для компьютеров,
которые будут получать доступ к этому серверу.netbios nameNetBIOSУстанавливает имя NetBIOS, под которым будет
работать Samba сервер. По
умолчанию оно устанавливается
равным первому компоненту DNS имени хоста.server stringУстанавливает строку, которая будет показана командой
net view и некоторыми другими сетевыми
инструментами, которые отображают строку описания
сервера.Настройки безопасностиДве из наиболее важных настроек в
/usr/local/etc/smb.conf отвечают за
выбор модели безопасности и за формат паролей для
клиентов. Эти параметры контролируются следующими
директивами:securityДва наиболее часто используемых параметра это
security = share и security
= user. Если имена пользователей для клиентов
совпадают с их именами на компьютере &os;, вы возможно
захотите включить безопасность уровня пользователя (user).
Это политика безопасности по умолчанию, она требует,
чтобы клиент авторизовался перед доступом к совместно
используемым ресурсам.На уровне безопасности share клиенту не требуется
входить на сервер перед подключением к ресурсу.
Эта модель безопасности использовалась по умолчанию
в старых версиях Samba.passdb backendNIS+LDAPSQL база данныхSamba поддерживает
несколько различных подсистем аутентификации. Вы можете
аутентифицировать клиентов с помощью LDAP, NIS+,
базы данных SQL, или через модифицированный файл
паролей. Метод аутентификации по умолчанию
smbpasswd, и здесь рассматривается
только он.Предполагая, что используется подсистема по умолчанию
smbpasswd, необходимо создать файл
/usr/local/private/smbpasswd, чтобы
Samba могла аутентифицировать
клиентов. Если вы хотите разрешить всем учетным записям
&unix; доступ с &windows; клиентов, используйте следующую
команду:
- &prompt.root; cat /etc/passwd | grep -v "^#" | make_smbpasswd > /usr/local/private/smbpasswd
+ &prompt.root; grep -v "^#" /etc/passwd | make_smbpasswd > /usr/local/private/smbpasswd
&prompt.root; chmod 600 /usr/local/private/smbpasswdОбратитесь к документации на Samba
за дополнительной информацией о параметрах настройки.
Основные настройки, рассмотренные здесь, достаточны для
первого запуска Samba.Запуск SambaДля запуска Samba при
загрузке системы, добавьте в /etc/rc.conf
следующую строку:samba_enable="YES"Затем вы можете запустить Samba в
любой момент, набрав:&prompt.root; /usr/local/etc/rc.d/samba.sh start
Starting SAMBA: removing stale tdbs :
Starting nmbd.
Starting smbd.Samba состоит из трех
отдельных даемонов. Вы можете видеть, что
nmbd и smbd
запускаются скриптом samba.sh.
Если вы включили сервис разрешения имен winbind
в smb.conf, то увидите также
запуск даемона winbindd.Вы можете остановить Samba в любой
момент, набрав:&prompt.root; /usr/local/etc/rc.d/samba.sh stopSamba это сложный программный
набор с функциональностью, позволяющей полную интеграцию в сети
µsoft.windows;. За дальнейшей информацией о функциях,
выходящих за рамки описанной здесь базовой установки,
обращайтесь к .MurrayStokelyПредоставил Протокол передачи файлов (FTP)FTP серверОбзорПротокол передачи файлов (File Transfer Protocol, FTP) дает
пользователям простой путь передачи файлов на и с FTP сервера. В &os;
серверная программа FTP,
ftpd, включена в базовую систему.
Это упрощает настройку и администрирование FTP сервера в
FreeBSD.НастройкаНаиболее важный шаг заключается в определении того,
каким учетным записям будет позволено получать доступ
к FTP серверу. В обычной системе FreeBSD есть множество
системных учетных записей, используемых различными даемонами,
но пользователям должно быть запрещен вход с использованием
этих учетных записей. В файле /etc/ftpusers
находится список пользователей, которым запрещен доступ по
FTP. По умолчанию он включает упомянутые системные учетные
записи, но в него можно добавить и определенных пользователей,
которым будет запрещен доступ по FTP.Вам может понадобиться ограничить доступ определенных
пользователей без полного запрета использования FTP.
Это можно сделать через файл /etc/ftpchroot.
В нем находится список пользователей и групп, к которым
применяется ограничение доступа. На странице справочника
&man.ftpchroot.5; дана подробная информация, и она не будет
дублироваться здесь.Если вы захотите разрешить анонимный FTP доступ на
сервер, в системе &os; необходимо создать пользователя
ftp. Этот пользователь сможет
входить на FTP сервер с именем пользователя
ftp или anonymous,
с любым паролем (существует соглашение об использовании
почтового адреса пользователя в качестве пароля).
FTP сервер выполнит &man.chroot.2; при входе пользователя
anonymous для ограничения доступа только домашним каталогом
пользователя ftp.Существуют два текстовых файла, определяющих сообщение,
отправляемое FTP клиентам. Содержимое файла
/etc/ftpwelcome будет выведено пользователям
перед приглашением на вход. После успешного входа
будет выведено содержимое файла /etc/ftpmotd.
Обратите внимание, что путь к этому файлу задается относительно
домашнего каталога пользователя, так что анонимным пользователям
будет отправляться ~ftp/etc/ftpmotd.Как только FTP сервер был правильно настроен, он должен
быть включен в /etc/inetd.conf. Все, что
необходимо, это удалить символ комментария
# из начала существующей строки
ftpd:ftp stream tcp nowait root /usr/libexec/ftpd ftpd -lКак описано в ,
сигнал HangUP должен быть отправлен inetd
после того, как этот файл настройки был изменен.Теперь вы можете войти на FTP сервер, введя:&prompt.user; ftp localhostПоддержкаsyslogлог файлыFTPДля протоколирования даемон ftpd
использует сообщения &man.syslog.3;. По умолчанию, &man.syslog.3;
поместит сообщения, относящиеся к FTP, в файл
/var/log/xferlog. Местоположение
лог файла FTP может быть изменено путем изменения следующей
строки в файле /etc/syslog.conf:ftp.info /var/log/xferlogУчитывайте потенциальные проблемы, возникающие с
анонимным FTP сервером. В частности, вы должны дважды
подумать, прежде чем позволить анонимным пользователям
загружать файлы на сервер. Вы можете обнаружить, что
FTP сайт стал форумом, на котором происходит обмен
нелицензионным коммерческим программным обеспечением
или чем-то еще хуже. Если вам необходимо разрешить
анонимную выгрузку файлов на FTP, права должны быть настроены
таким образом, чтобы эти файлы не могли прочитать другие
анонимные пользователи до их рассмотрения администратором.TomHukinsТекст предоставил Синхронизация часов через NTPNTPОбзорС течением времени часы компьютера имеют тенденцию отставать.
Network Time
Protocol - Сетевой Протокол Времени (NTP) является одним из способов
вести точное время.Многие сервисы Интернет опираются или сильно зависят от точности
часов компьютеров. К примеру, веб-сервер может получать запрос на
посылку файла, который был недавно модифицирован. В локальной сети
необходимо, чтобы часы компьютеров, совместно использующих файлы,
были синхронизированы, чтобы время модификации файлов устанавливалось
правильно. Такие службы, как
&man.cron.8;, также зависят от правильности установки системных
часов, поскольку запускают команды в определенное время.NTPntpdFreeBSD поставляется с сервером NTP &man.ntpd.8;, который можно
использовать для опроса других серверов NTP для установки часов на
вашей машине или предоставления услуг точного времени.Выбор подходящих серверов NTPNTPвыбор серверовДля синхронизации ваших часов вам нужно найти для использования
один или большее количество серверов NTP. Ваш сетевой администратор
или провайдер могут иметь сервер NTP для этой цели—обратитесь к
ним, так ли это в вашем случае. Существует онлайн список
общедоступных серверов NTP, которым можно воспользоваться для
поиска ближайшего к вам сервера NTP. Не забудьте выяснить политику
выбранного вами сервера и спросить разрешения, если это
требуется.Выбор нескольких несвязанных серверов NTP является хорошей идеей в
том случае, если один из используемых вами серверов станет недоступным
или его часы неточны. &man.ntpd.8; использует ответы, которые он
получает от других серверов с умом—он делает предпочтение
надежным серверам.Настройка вашей машиныNTPнастройкаБазовая конфигурацияntpdateЕсли вам нужно только синхронизировать ваши часы при загрузке
машины, вы можете воспользоваться утилитой &man.ntpdate.8;. Это
может подойти для некоторых настольных машин, которые часто
перезагружаются и только требуют изредка синхронизироваться, но
на большинстве машин должен работать &man.ntpd.8;.Использование &man.ntpdate.8; при загрузке также хорошо для
машин, на которых запущен даемон &man.ntpd.8;. Программа
&man.ntpd.8; изменяет время постепенно, тогда как &man.ntpdate.8;
устанавливает время вне
зависимости от того, насколько велика разница между текущим временем
машины и точным временем.Для включения &man.ntpdate.8; во время загрузки, добавьте строчку
ntpdate_enable="YES" в файл
/etc/rc.conf. Вам также потребуется указать
все серверы, с которыми вы хотите синхронизироваться, и все
параметры, которые передаются в &man.ntpdate.8;, в
ntpdate_flags.NTPntp.confОбщие настройкиNTP настраивается в файле /etc/ntp.conf,
формат которого описан в &man.ntp.conf.5;. Вот простой
пример:server ntplocal.example.com prefer
server timeserver.example.org
server ntp2a.example.net
driftfile /var/db/ntp.driftПараметр server задает, какие серверы будут
использоваться, по одному в каждой строке. Если сервер задан с
аргументом prefer, как ntplocal.example.com, то этому серверу отдается
предпочтение перед остальными. Ответ от предпочтительного сервера
будет отброшен, если он значительно отличается от ответов других
серверов, в противном случае он будет использоваться безотносительно
к другим ответам. Аргумент prefer обычно
используется для серверов NTP, о которых известно, что они очень
точны, такими, на которых используется специальное оборудование
точного времени.Параметр driftfile задает файл, который
используется для хранения смещения частоты системных часов.
Программа &man.ntpd.8; использует его для автоматической компенсации
естественного смещения часов, позволяя ему поддерживать достаточно
правильную настройку, даже если он на некоторый период отключается от
внешнего источника информации о времени.Параметр driftfile задает, какой файл
используется для сохранения информации о предыдущих ответах от
серверов NTP, которые вы используете. Этот файл содержит внутреннюю
информацию для NTP. Он не должен изменяться никакими другими
процессами.Управление доступом к вашему серверуПо умолчанию ваш сервер NTP будет доступен всем хостам в
Интернет. Параметр restrict в файле
/etc/ntp.conf позволяет вам контролировать,
какие машины могут обращаться к вашему серверу.Если вы хотите запретить всем машинам обращаться к вашему серверу
NTP, добавьте следующую строку в
файл /etc/ntp.conf:restrict default ignoreЕсли вы хотите разрешить синхронизировать свои часы с вашим
сервером только машинам в вашей сети, но запретить им настраивать
сервер или быть равноправными участниками синхронизации времени, то
вместо указанной добавьте строчкуrestrict 192.168.1.0 mask 255.255.255.0 notrust nomodify notrapгде 192.168.1.0 является адресом
IP вашей сети, а 255.255.255.0 её
сетевой маской./etc/ntp.conf может содержать несколько
директив restrict. Для получения подробной
информации обратитесь к подразделу Access Control
Support (Поддержка Управления Доступом) в
&man.ntp.conf.5;.Запуск сервера NTPДля того, чтобы сервер NTP запускался при загрузке, добавьте строку
xntpd_enable="YES" в файл
/etc/rc.conf. Если вы хотите передать
дополнительные опции в &man.ntpd.8;, то отредактируйте параметр
xntpd_flags в файле
/etc/rc.conf.Для запуска сервера без перезагрузки вашей машины, выполните
команду ntpd, не забыв задать дополнительные
параметры из переменной xntpd_flags в файле
/etc/rc.conf. К примеру:&prompt.root; ntpd -p /var/run/ntpd.pidВо &os; 5.X различные параметры из
/etc/rc.conf были переименованы. В частности,
в списке параметров вам необходимо заменить каждую строчку
xntpd на ntpd.Использование ntpd с временным подключением к
ИнтернетДля нормальной работы программе &man.ntpd.8; не требуется
постоянное подключение к Интернет. Однако если ваше временное
подключение к Интернет настроено для дозвона по требованию, хорошо бы
запретить трафику NTP вызывать дозвон или поддерживать соединение
постоянно. Если вы используете пользовательский PPP, то можете
воспользоваться директивами filter в файле
/etc/ppp/ppp.conf. К примеру: set filter dial 0 deny udp src eq 123
# Prevent NTP traffic from initiating dial out
set filter dial 1 permit 0 0
set filter alive 0 deny udp src eq 123
# Prevent incoming NTP traffic from keeping the connection open
set filter alive 1 deny udp dst eq 123
# Prevent outgoing NTP traffic from keeping the connection open
set filter alive 2 permit 0/0 0/0Более подробную информацию можно найти в разделе PACKET
FILTERING (ФИЛЬТРАЦИЯ ПАКЕТОВ) в &man.ppp.8;, а примеры в
/usr/share/examples/ppp/.Некоторые провайдеры Интернет блокируют трафик по портам с
маленькими номерами, что приводит к неработоспособности NTP, так как
ответы никогда не достигают вашей машины.Дополнительная литератураДокументация по серверу NTP может быть найдена в каталоге
/usr/share/doc/ntp/ в формате HTML.
diff --git a/ru_RU.KOI8-R/books/handbook/vinum/chapter.sgml b/ru_RU.KOI8-R/books/handbook/vinum/chapter.sgml
index ed5e1ac65d..32675c158e 100644
--- a/ru_RU.KOI8-R/books/handbook/vinum/chapter.sgml
+++ b/ru_RU.KOI8-R/books/handbook/vinum/chapter.sgml
@@ -1,1413 +1,1425 @@
GregLeheyИзначально написано ДмитрийМорозовскийПеревод на русский язык: Менеджер дискового пространства VinumКраткая аннотацияКакие бы диски у вас ни были, они всегда будут подвержены
ограничениям:Слишком маленькиеСлишком медленныеНедостаточно надежныеДля того, чтобы обойти эти ограничения, можно использовать
несколько (и, возможно, избыточное число) дисков.В дополнение к поддержке разнообразных контроллеров RAID, базовая
система FreeBSD включает Менеджер дискового пространства
Vinum — драйвер, реализующий поддержку виртуальных дисков.
Vinum позволяет более гибко оперировать дисковым пространством,
повысить производительность и надежность дисковой подсистемы за счет
реализации моделей RAID-0, RAID-1 и RAID-5, а также их комбинаций.
В данной главе кратко рассматриваются потенциальные проблемы
традиционной системы хранения данных и методы их решения при помощи
Vinum.
Диски слишком малыVinumRAIDSoftwareVinum (произносится Винум,
с ударением на первом слоге) — так называемый
Менеджер дисковых томов — представляет
собой виртуальный дисковый драйвер, призванный решить три вышеописанные
проблемы. Взглянем на них более подробно. Предлагаются
(и реализованы) следующие пути:Объемы дисков растут, тем не менее, растут и требования к объемам
систем хранения данных. Вы запросто можете оказаться в ситуации, когда
требуемый объем файловой системы превышает размеры доступных
дисков. Надо признать, что в настоящее время данная проблема стоит не
так остро, как 10 лет назад, но тем не менее она существует. Некоторые
системы выходят из этого тупика посредством создания мета-устройств,
распределяющих хранящиеся данные по нескольким дискам.Ограниченная пропускная способностьСовременным системам часто необходим одновременный доступ ко многим
данным. В частности, крупный FTP или HTTP-сервер может обслуживать
тысячи одновременных соединений, поступающих по нескольким
100 Mbit/s каналам во внешний мир, что ощутимо превышает скорость
передачи данных большинства дисков.Современные диски могут передавать данные со скоростями до
70 MB/s; однако, эти цифры труднодостижимы в случае, когда к диску
обращается большое число независимых процессов, каждый из которых
может получить лишь часть этого значения. Интересным будет
взглянуть на проблему с точки зрения дисковой подсистемы: важным
параметром в нашем случае будет загрузка подсистемы фактом передачи
фрагмента данных, а именно время, в течение которого диски, участвующие в
передаче, будут заняты.При любом запросе диск сначала должен спозиционировать головки,
дождаться подхода к головкам первого сектора из необходимых, и лишь затем
выполнить обращение. Данная операция может рассматриваться как
атомарная: нет никакого смысла ее прерывать.
Рассмотрим типичный запрос на передачу 10 kB информации. Современные
высокопроизводительные диски подводят головки в нужную позицию в среднем
за 3.5 миллисекунды. Самые быстрые диски вращаются со скоростью
15000 об/мин, так что среднее время на подход первого сектора к
головке (rotational latency, половина времени одного оборота) составит
еще 2 миллисекунды. При линейной скорости передачи данных в
70 MB/s собственно чтение/запись займет около
150 микросекунд — исчезающе мало по сравнению с временем
позиционирования. В нашем случае, эффективная скорость передачи данных
падает почти до 1 MB/s и, очевидно, сильно зависит от размера
передаваемого блока.Традиционным и очевидным решением этой проблемы является принцип
больше шпинделей: вместо использования одного большого
диска можно применить несколько дисков меньшего размера. Диски
позиционируют головки и передают данные независимо, так что эффективная
пропускная способность возрастает примерно во столько раз, сколько дисков
мы применяем.Точная цифра, разумеется, будет несколько ниже: диски могут передавать
данные параллельно, но у нас нет средства обеспечить строго равномерное
распределение нагрузки по всем дискам. Нагрузка на один диск неизбежно
будет больше чем на другой.disk concatenationVinumсцепленные диски (concatenation)Равномерность распределения нагрузки на диски серьезно зависит от
способа распределения по ним данных. В терминах дальнейшего обсуждения,
будет удобно представить пространство хранения набором большого
количества секторов с данными, которые адресуются по номеру, подобно
страницам в книге. Наиболее очевидным методом будет поделить виртуальный
диск на группы расположенных последовательно секторов размером с
физический диск (которые будут подобны разделам книги). Этот метод
называется конкатенацией или сцеплением
(concatenation); его преимуществом является то, что он не
налагает никаких ограничений на размеры применяемых дисков. Конкатенация
эффективна, если нагрузка на дисковое пространство распределена
равномерно. В случае концентрации нагрузки в малой области диска
увеличение производительности не будет заметно. Организация секторов на
сцепленных единицах хранения показана на .disk stripingVinumstriping (перемежение)Альтернативным подходом будет разделение адресного пространства на
компоненты одного, сравнительно небольшого размера, и расположение их
последовательно на разных устройствах. Например, первая группа из 256
секторов будет расположены на первом физическом диске,
вторая — на следующем и т.д. n+1-я группа попадает на первый
диск вслед за первой. Такое расположение называется
перемежающимся (striping) или
RAID-0.
RAIDRAID — сокращение от термина
Redundant Array of Inexpensive Disks (массив недорогих дисков с
резервированием); различные виды RAID
предоставляют разные формы защиты от сбоев. RAID-0,
вообще говоря, не является RAID, поскольку не
обеспечивает резервирования..
Перемежение требует дополнительных усилий для нахождения нужного блока
данных и может приводить к дополнительным нагрузкам на подсистемы
ввода-вывода, если передаваемый блок пересекает границу stripe (тем самым
попадая на разные диски), зато обеспечивает более равномерное
распределение нагрузки по физическим дискам. Распределение блоков по
физическим дискам в случае striping иллюстрируется
.Целостность данныхНаконец, слабым местом современных дисков является их ограниченная
надежность. Несмотря на то, что за последние несколько лет она ощутимо
выросла, из всех компонентов сервера отказ дисков наиболее вероятен.
Отказ может привести к катастрофическим
результатам: замена отказавшего диска и восстановление данных может
занять несколько дней.disk mirroringVinumзеркалирование (mirroring)RAID-1Традиционным путем решения проблемы надежности является
зеркалирование (mirroring), обеспечивающее
хранение всей информации в двух копиях на различных физических
носителях. С момента изобретения аббревиатуры RAID
эту технику также называют RAID уровня 1 или просто
RAID-1. Любой запрос на запись в таком томе
приводит к записи в оба подтома, чтение может производиться из любой
половины, так что данные остаются доступны в случае отказа одного из
дисков.Зеркалирование имеет два слабых места:Цена: требуется вдвое больше дисков.Проблемы с производительностью: запись производится на оба
диска, требуя вдвое большей пропускной способности шины.
Производительность чтения не уменьшается, более того, часто
увеличивается.RAID-5Альтернативным решением является хранение контрольных сумм
(четности), реализованное в RAID уровней
2, 3, 4 и 5. Наиболее интересен RAID-5. В
реализации Vinum, это вариант организации тома с перемежением, при
котором один из блоков в страйпе выделяется для хранения четности
остальных n-1 блоков. Как требует спецификация
RAID-5, положение блока четности меняется от страйпа
к страйпу.По сравнению с зеркалированием преимуществом RAID-5
является гораздо меньшее требование к объему дисков. Скорость чтения
сравнима с чтением в случае томов с перемежением, а вот запись
происходит ощутимо медленнее (примерно вчетверо медленнее чтения). При
отказе одного из дисков массив продолжает работать в "деградировавшем"
режиме: запросы на чтение с оставшихся дисков производятся обычным
образом, а блоки с отказавшего диска перевычисляются из данных
остальных блоков страйпа.
Объекты VinumДля обеспечения необходимой функциональности Vinum использует
четырехуровневую иерархию объектов:"Видимая снаружи" сущность — виртуальный диск,
называемый томом (volume). Тома в основном
аналогичны дискам &unix;, хотя имеются и мелкие различия. На тома
нет ограничений по размеру.Тома образуются из наборов (plex), каждый
из которых представляет полное адресное пространство тома. Данный
уровень иерархии, таким образом, реализует избыточность. Наборы
являются аналогами отдельных дисков в зеркалированном массиве;
содержимое наборов идентично.Поскольку Vinum работает в среде подсистемы хранения данных
&unix;, многодисковые наборы можно было бы реализовать на базе
дисковых разделов &unix;. На практике, подобная реализация
недостаточно гибка (диски &unix; могут иметь весьма ограниченное
число разделов). Вместо этого Vinum вводит еще один
уровень абстракции: единый дисковый раздел &unix;
(drive в терминах Vinum) делится на
непрерывные области, называемые поддисками
(subdisk), которые и будут "строительным материалом" для
наборов.Поддиски, как уже упоминалось, располагаются внутри
приводов (drive) Vinum, существующих
дисковых разделов &unix;. Привод может содержать неограниченное
количество поддисков. Небольшая область в начале привода
зарезервирована под хранение информации о конфигурации и состоянии
Vinum; все остальное пространство пригодно для хранения
данных.Сейчас мы опишем, как эта иерархия обеспечивает необходимую
функциональность для Vinum.Размер томаНаборы могут состоять из большого количества поддисков,
распределенных по разным приводам Vinum. Стало быть, размеры отдельных
дисков не ограничивают размер набора, а следовательно, и тома.ИзбыточностьVinum реализует избыточность посредством связывания с томом
нескольких наборов. Содержимое каждого набора является полной копией
содержимого тома. Количество наборов в томе может быть от одного до
восьми.Хотя набор представляет данные тома целиком, отдельные части
содержимого тома могут быть представлены не всеми наборами.
Во-первых, для некоторых частей набора поддиски могут быть не
определены; во-вторых, часть набора может быть потеряна из-за отказа
диска. До тех пор, пока хотя бы один набор может обеспечить данные для
полного адресного пространства тома, том полностью функционален.ПроизводительностьVinum поддерживает как конкатенацию, так и перемежение на уровне
наборов:Сцепленный набор использует пространство
поддисков последовательно, склеивая их "встык".Набор с перемежением разбивает данные по
поддискам в соответствии с размером страйпа. Поддисков должно быть
по меньшей мере два (чтобы отличить набор от сцепленного), и все
они должны быть одинакового размера.Организация наборов: что выбрать?Vinum, распространяемый с FreeBSD версии &rel.current; поддерживает
два вида организации наборов:Сцепленные наборы наиболее гибки в использовании: они могут
содержать любое количество поддисков произвольного размера. Такой
набор может быть расширен "на лету" путем добавления дополнительных
поддисков. Поддержка сцепленных наборов требует меньших затрат
процессорного времени, чем поддержка наборов с перемежением (хотя
различие вряд ли поддается измерению).
С другой стороны, они наиболее чувствительны к концентрации
нагрузки в одной области тома, при которой один из дисков принимает
на себя всю нагрузку, а остальные бездействуют.Основным преимуществом наборов с перемежением
(RAID-0) является распределение "горячих точек"
нагрузки; вы можете даже полностью уравнять ее, выбрав оптимальный
размер страйпа (около 256 kB). Недостатки такой
организации — более сложный код и ограничения на поддиски:
все они должны быть строго одного размера. Кроме того, процесс
добавления поддиска в набор с перемежением "на ходу" является
настолько нетривиальной задачей, что в настоящее время Vinum не
поддерживает эту операцию. Дополнительное (тривиальное)
ограничение состоит в том, что набор с перемежением должен
содержать как минимум два поддиска, иначе он будет неотличим от
сцепленного.Преимущества и недостатки различных методов организации наборов
описаны в .
Методы организации наборов VinumТип набораПоддисков, мин.Расширяется "на лету"Поддиски строго одного размераПрименениесцепленный (concatenated)1данетКрупные системы хранения, требующие максимальной
гибкости и умеренной производительностис перемежением (striped)2нетдаВысокая производительность, в том числе в случае
параллельного доступа к данным
Несколько примеровVinum ведет базу данных конфигурации, в которой
описаны все объекты Vinum в отдельной системе. Начальная конфигурация
создается пользователем при помощи системной утилиты &man.vinum.8; из
одного или нескольких конфигурационных файлов. Копия конфигурации
хранится в начале каждого дискового раздела (привода) Vinum. Все копии
обновляются при изменении состояния томов, поэтому после перезапуска
состояние объектов Vinum восстанавливается.Конфигурационный файлКонфигурационный файл описывает объекты Vinum. Описание простого
тома может быть таким:
drive a device /dev/da3h
volume myvol
plex org concat
sd length 512m drive aЗдесь описываются четыре объекта Vinum:Строка drive объявляет дисковый раздел
(привод) и его местоположение на физическом
диске. Приводу дано символьное имя a.
Разделение символьных имен и имен устройств дает возможность
перемещать физические диски (например, по разным контроллерам, или
менять их местами) без изменения конфигурации.Строка volume описывает том.
Единственным требуемым параметром является имя тома
myvol.Строка plex определяет набор.
Единственный обязательный параметр — метод организации
набора, в нашем случае concat (сцепленный).
Давать набору имя в явном виде не обязательно: Vinum автоматически
сгенерирует имя набора из имени тома и суффикса
.px, где
x — номер набора в томе. В нашем
случае набор будет называться myvol.p0.Наконец, строка sd описывает поддиск.
Минимальными требованиями к его описанию являются имя
привода, на котором он будет располагаться, и
его размер. Как и в случае набора, имя указывать не обязательно:
имя поддиска будет построено добавлением
.sx к имени набора, где
x будет номером поддиска в наборе. Наш
поддиск получит имя myvol.p0.s0.В результате обработки такого конфигурационного файла &man.vinum.8;
выдаст нам следующее:
&prompt.root; vinum -> create config1
Configuration summary
Drives: 1 (4 configured)
Volumes: 1 (4 configured)
Plexes: 1 (8 configured)
Subdisks: 1 (16 configured)
D a State: up Device /dev/da3h Avail: 2061/2573 MB (80%)
V myvol State: up Plexes: 1 Size: 512 MB
P myvol.p0 C State: up Subdisks: 1 Size: 512 MB
S myvol.p0.s0 State: up PO: 0 B Size: 512 MBНа этом кратком листинге показан формат вывода &man.vinum.8;.
Графически созданный нами том представлен на
.Этот и последующие рисунки изображают том, содержащий один или
несколько наборов, каждый из которых, в свою очередь, состоит из одного
или нескольких поддисков. В первом тривиальном примере том состоит из
одного набора, представленного одним поддиском.Построенный нами только что том не имеет никаких преимуществ перед
обычным дисковым разделом. Он содержит единственный набор, так что не
обеспечивает избыточность; набор состоит из одного поддиска, поэтому
методика распределения дисковых блоков ничем не отличается от дискового
раздела. В последующих параграфах мы рассмотрим более интересные
конфигурации.Повышаем надежность: зеркалированиеНадежность тома может быть повышена при помощи зеркалирования.
Планируя зеркалированный том, важно не забыть о том, чтобы поддиски
каждого набора располагались на разных физических дисках, чтобы отказ
одного из них не привел к выходу из строя более чем одного набора. Вот
конфигурация, определяющая зеркалированный том:
drive b device /dev/da4h
volume mirror
plex org concat
sd length 512m drive a
plex org concat
sd length 512m drive bКак мы видим, нет необходимости вновь описывать привод
a, поскольку Vinum сохраняет состояние уже
сконфигурированных объектов. После обработки этих определений
конфигурация будет выглядеть так:
Drives: 2 (4 configured)
Volumes: 2 (4 configured)
Plexes: 3 (8 configured)
Subdisks: 3 (16 configured)
D a State: up Device /dev/da3h Avail: 1549/2573 MB (60%)
D b State: up Device /dev/da4h Avail: 2061/2573 MB (80%)
V myvol State: up Plexes: 1 Size: 512 MB
V mirror State: up Plexes: 2 Size: 512 MB
P myvol.p0 C State: up Subdisks: 1 Size: 512 MB
P mirror.p0 C State: up Subdisks: 1 Size: 512 MB
P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB
S myvol.p0.s0 State: up PO: 0 B Size: 512 MB
S mirror.p0.s0 State: up PO: 0 B Size: 512 MB
S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB иллюстрирует структуру
полученного тома.В данном примере каждый набор содержит все 512 MB адресного
пространства тома. Как и в предыдущем случае, каждый набор состоит
из одного поддиска.Оптимизируем производительностьЗеркалированный том из предыдущего примера гораздо более
отказоустойчив, чем обычный том, но его производительность ниже:
каждый запрос на запись выливается в две операции физической записи,
что вдвое увеличивает необходимую пропускную способность шины дисковой
подсистемы. Увеличение производительности требует иного подхода:
вместо зеркалирования данные распределяются (перемежением) по
максимальному количеству физических дисков. Следующий пример
конфигурации создает том с перемежением на четырех дисках:
drive c device /dev/da5h
drive d device /dev/da6h
volume stripe
plex org striped 512k
sd length 128m drive a
sd length 128m drive b
sd length 128m drive c
sd length 128m drive dКак и ранее, нет необходимости переопределять уже
сконфигурированные приводы. Общий вид базы конфигурации Vinum после
создания нового тома будет таким:
Drives: 4 (4 configured)
Volumes: 3 (4 configured)
Plexes: 4 (8 configured)
Subdisks: 7 (16 configured)
D a State: up Device /dev/da3h Avail: 1421/2573 MB (55%)
D b State: up Device /dev/da4h Avail: 1933/2573 MB (75%)
D c State: up Device /dev/da5h Avail: 2445/2573 MB (95%)
D d State: up Device /dev/da6h Avail: 2445/2573 MB (95%)
V myvol State: up Plexes: 1 Size: 512 MB
V mirror State: up Plexes: 2 Size: 512 MB
V striped State: up Plexes: 1 Size: 512 MB
P myvol.p0 C State: up Subdisks: 1 Size: 512 MB
P mirror.p0 C State: up Subdisks: 1 Size: 512 MB
P mirror.p1 C State: initializing Subdisks: 1 Size: 512 MB
P striped.p1 State: up Subdisks: 1 Size: 512 MB
S myvol.p0.s0 State: up PO: 0 B Size: 512 MB
S mirror.p0.s0 State: up PO: 0 B Size: 512 MB
S mirror.p1.s0 State: empty PO: 0 B Size: 512 MB
S striped.p0.s0 State: up PO: 0 B Size: 128 MB
S striped.p0.s1 State: up PO: 512 kB Size: 128 MB
S striped.p0.s2 State: up PO: 1024 kB Size: 128 MB
S striped.p0.s3 State: up PO: 1536 kB Size: 128 MBНовосозданный том представлен на
. Плотность заштрихованных участков
показывает расположение страйпов в адресном пространстве набора (от
светлых к темным).Отказоустойчивость и производительность одновременно
При наличии достаточного количества дисков можно создать том,
сочетающий повышенную отказоустойчивость и высокую производительность
по сравнению со стандартными дисковыми разделами &unix;. Типичная
конфигурация может быть такой:
volume raid10
plex org striped 512k
sd length 102480k drive a
sd length 102480k drive b
sd length 102480k drive c
sd length 102480k drive d
sd length 102480k drive e
plex org striped 512k
sd length 102480k drive c
sd length 102480k drive d
sd length 102480k drive e
sd length 102480k drive a
sd length 102480k drive bКак вы можете заметить, поддиски второго набора смещены на два
привода относительно поддисков первого. В результате даже при запросе
на запись, пересекающем границы страйпа, не возникнет двух обращений к
одному физическому диску. отражает структуру нового
тома.Правила именования объектовКак уже было описано, Vinum автоматически именует создаваемые
наборы и поддиски, хотя эти имена и могут быть переопределены. На самом
деле, мы не рекомендовали бы переопределять стандартные имена: опыт с
дисковым менеджером VERITAS показал, что гибкость в именовании объектов
не дает ощутимого преимущества, а запутать пользователя может.Имена объектов могут состоять из любых непробельных символов.
Впрочем, рекомендуем ограничиться буквами, цифрами и подчеркиваниями.
Имена томов, наборов и поддисков могут быть до 64 символов длиной;
максимальная длина имени привода — 32 символа.Для объектов Vinum в иерархии /dev/vinum
создаются файлы устройств. Приведенный выше пример конфигурации создаст
следующий набор устройств:Управляющие устройства
/dev/vinum/control и
/dev/vinum/controld, используемые системной
утилитой &man.vinum.8; и даемоном Vinum соответственно.Блоковые и символьные устройства для каждого из томов.
Основные устройства, используемые Vinum'ом. Блоковые устройства
именуются в соответствии с именами томов; символьные, в соответствии
с традицией именования устройств BSD, имеют префикс
r. Таким образом, вышеописанная конфигурация
будет включать блоковые устройства
/dev/vinum/myvol,
/dev/vinum/mirror,
/dev/vinum/striped,
/dev/vinum/raid5 и
/dev/vinum/raid10,
и символьные устройства
/dev/vinum/rmyvol,
/dev/vinum/rmirror,
/dev/vinum/rstriped,
/dev/vinum/rraid5 и
/dev/vinum/rraid10.Каталог /dev/vinum/drive
с записями для каждого привода. В реальности, каждая запись является
символьной ссылкой на соответствующий файл дискового
устройства.Каталог /dev/vinum/volume
с записями для томов. В нем содержатся поддиректории для каждого
набора, внутри которых, в свою очередь, имеются поддиректории для
каждого из поддисков.Каталоги
/dev/vinum/plex,
/dev/vinum/sd и
/dev/vinum/rsd,
содержащие блочные устройства для наборов, блочные и символьные
устройства для каждого из поддисков.Например, для конфигурации, описываемой как
drive drive1 device /dev/sd1h
drive drive2 device /dev/sd2h
drive drive3 device /dev/sd3h
drive drive4 device /dev/sd4h
volume s64 setupstate
plex org striped 64k
sd length 100m drive drive1
sd length 100m drive drive2
sd length 100m drive drive3
sd length 100m drive drive4после обработки &man.vinum.8;, созданный набор устройств в каталоге
/dev/vinum будет таким:
brwx------ 1 root wheel 25, 0x40000001 Apr 13 16:46 Control
brwx------ 1 root wheel 25, 0x40000002 Apr 13 16:46 control
brwx------ 1 root wheel 25, 0x40000000 Apr 13 16:46 controld
drwxr-xr-x 2 root wheel 512 Apr 13 16:46 drive
drwxr-xr-x 2 root wheel 512 Apr 13 16:46 plex
crwxr-xr-- 1 root wheel 91, 2 Apr 13 16:46 rs64
drwxr-xr-x 2 root wheel 512 Apr 13 16:46 rsd
drwxr-xr-x 2 root wheel 512 Apr 13 16:46 rvol
brwxr-xr-- 1 root wheel 25, 2 Apr 13 16:46 s64
drwxr-xr-x 2 root wheel 512 Apr 13 16:46 sd
drwxr-xr-x 3 root wheel 512 Apr 13 16:46 vol
/dev/vinum/drive:
total 0
lrwxr-xr-x 1 root wheel 9 Apr 13 16:46 drive1 -> /dev/sd1h
lrwxr-xr-x 1 root wheel 9 Apr 13 16:46 drive2 -> /dev/sd2h
lrwxr-xr-x 1 root wheel 9 Apr 13 16:46 drive3 -> /dev/sd3h
lrwxr-xr-x 1 root wheel 9 Apr 13 16:46 drive4 -> /dev/sd4h
/dev/vinum/plex:
total 0
brwxr-xr-- 1 root wheel 25, 0x10000002 Apr 13 16:46 s64.p0
/dev/vinum/rsd:
total 0
crwxr-xr-- 1 root wheel 91, 0x20000002 Apr 13 16:46 s64.p0.s0
crwxr-xr-- 1 root wheel 91, 0x20100002 Apr 13 16:46 s64.p0.s1
crwxr-xr-- 1 root wheel 91, 0x20200002 Apr 13 16:46 s64.p0.s2
crwxr-xr-- 1 root wheel 91, 0x20300002 Apr 13 16:46 s64.p0.s3
/dev/vinum/rvol:
total 0
crwxr-xr-- 1 root wheel 91, 2 Apr 13 16:46 s64
/dev/vinum/sd:
total 0
brwxr-xr-- 1 root wheel 25, 0x20000002 Apr 13 16:46 s64.p0.s0
brwxr-xr-- 1 root wheel 25, 0x20100002 Apr 13 16:46 s64.p0.s1
brwxr-xr-- 1 root wheel 25, 0x20200002 Apr 13 16:46 s64.p0.s2
brwxr-xr-- 1 root wheel 25, 0x20300002 Apr 13 16:46 s64.p0.s3
/dev/vinum/vol:
total 1
brwxr-xr-- 1 root wheel 25, 2 Apr 13 16:46 s64
drwxr-xr-x 3 root wheel 512 Apr 13 16:46 s64.plex
/dev/vinum/vol/s64.plex:
total 1
brwxr-xr-- 1 root wheel 25, 0x10000002 Apr 13 16:46 s64.p0
drwxr-xr-x 2 root wheel 512 Apr 13 16:46 s64.p0.sd
/dev/vinum/vol/s64.plex/s64.p0.sd:
total 0
brwxr-xr-- 1 root wheel 25, 0x20000002 Apr 13 16:46 s64.p0.s0
brwxr-xr-- 1 root wheel 25, 0x20100002 Apr 13 16:46 s64.p0.s1
brwxr-xr-- 1 root wheel 25, 0x20200002 Apr 13 16:46 s64.p0.s2
brwxr-xr-- 1 root wheel 25, 0x20300002 Apr 13 16:46 s64.p0.s3Заметим, что, несмотря на то что наборы и поддиски не рекомендуется
называть каким-либо специальным образом, приводы Vinum должны быть
поименованы. Именование позволяет отвязать приводы от физических
устройств, и при этом обеспечить их автоматическое распознавание. Имена
приводов могут достигать длины в 32 символа.Создание файловых системТома с точки зрения системы аналогичны дискам, за одним малым
исключением: в отличие от дисков &unix;, тома Vinum не содержат таблиц
разделов. В результате
потребовалось модифицировать некоторые утилиты работы с дисками, в
первую очередь &man.newfs.8;, которая ранее использовала последний
символ имени тома для определения идентификатора раздела. Например,
дисковое устройство может именоваться
/dev/ad0a — первый раздел
(a) первого (0) IDE-диска
(ad) — или
/dev/da2h — восьмой раздел
(h) третьего (2) диска SCSI
(da). Том Vinum может называться, например,
/dev/vinum/concat — как легко
видеть, имя тома никак не связано с именем раздела.Обычно &man.newfs.8; пытается интерпретировать имя раздела и
сообщает об ошибке при невозможности такой интерпретации:&prompt.root; newfs /dev/vinum/concat
newfs: /dev/vinum/concat: can't figure out file system partitionДальнейшее относится к версиям FreeBSD до 5.0:Для создания файловых систем на томе Vinum следует использовать
опцию &man.newfs.8; :&prompt.root; newfs -v /dev/vinum/concatСоздание конфигурации VinumСтандартное (GENERIC) ядро FreeBSD не включает
Vinum. Хотя и можно собрать специальное ядро с включенной поддержкой
Vinum, этот вариант не рекомендуется. Обычный способ активизации
Vinum — загрузка модуля для ядра (kld). При
этом, явно использовать команду &man.kldload.8; нет необходимости: при
старте утилита &man.vinum.8; проверит наличие поддержки Vinum в ядре и
при необходимости загрузит модуль автоматически.АктивацияVinum хранит конфигурационную информацию на дисковых разделах
в той же форме, что используется в файлах конфигурации при создании
объектов. Впрочем, в них применяются некоторые ключевые слова, не
разрешенные в файлах конфигурации. Например, хранимая на диске база
может выглядеть так:volume myvol state up
volume bigraid state down
plex name myvol.p0 state up org concat vol myvol
plex name myvol.p1 state up org concat vol myvol
plex name myvol.p2 state init org striped 512b vol myvol
plex name bigraid.p0 state initializing org raid5 512b vol bigraid
sd name myvol.p0.s0 drive a plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 0b
sd name myvol.p0.s1 drive b plex myvol.p0 state up len 1048576b driveoffset 265b plexoffset 1048576b
sd name myvol.p1.s0 drive c plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 0b
sd name myvol.p1.s1 drive d plex myvol.p1 state up len 1048576b driveoffset 265b plexoffset 1048576b
sd name myvol.p2.s0 drive a plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 0b
sd name myvol.p2.s1 drive b plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 524288b
sd name myvol.p2.s2 drive c plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1048576b
sd name myvol.p2.s3 drive d plex myvol.p2 state init len 524288b driveoffset 1048841b plexoffset 1572864b
sd name bigraid.p0.s0 drive a plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 0b
sd name bigraid.p0.s1 drive b plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 4194304b
sd name bigraid.p0.s2 drive c plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 8388608b
sd name bigraid.p0.s3 drive d plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 12582912b
sd name bigraid.p0.s4 drive e plex bigraid.p0 state initializing len 4194304b driveoff set 1573129b plexoffset 16777216bВидно, что каждый объект имеет явно описанное имя, а поддиски
еще и явное положение на приводе (и то и другое может, хотя это и не
рекомендуется, устанавливаться пользователем). Помимо этого, для
каждого объекта хранится его состояние (и установка состояния
напрямую пользователю недоступна). Vinum не хранит в
конфигурационных базах информацию о приводах: она создается при
сканировании дисковых разделов, помеченных как Vinum. Это дает
возможность Vinum правильно идентифицировать диски при смене имени
устройства.Автоматическая активацияДля автоматического старта Vinum при загрузке системы добавьте
следующую строку в файл конфигурации системы
/etc/rc.conf:start_vinum="YES" # set to YES to start vinumЕсли в вашей системе нет файла
/etc/rc.conf, создайте его с таким содержимым.
Данная строка вызовет активацию kld модуля Vinum
при загрузке, а также старт всех объектов, упомянутых в конфигурации
Vinum. Активация Vinum происходит до монтирования файловых систем,
так что возможны автоматическая проверка (&man.fsck.8;) и
монтирование файловых систем на томах Vinum.При старте с помощью команды vinum start,
Vinum читает базы конфигурации с одного из приводов. В нормальной
ситуации все приводы содержат идентичную информацию о конфигурации,
так что не имеет значения, какой именно диск будет читаться. В
случае краха Vinum определяет, какая копия является наиболее свежей,
в дальнейшем использует ее, а также обновляет ее на оставшихся
приводах.Vinum для корневой файловой системыСервер, все информационные файловые системы которого дублированы,
хотелось бы оснастить и зеркалированной корневой файловой системой.
Создание такой конфигурации не вполне тривиально по сравнению с
зеркалированием прочих файловых систем:Корневая файловая система должна быть доступна для чтения
в самом начале процесса загрузки, так что инфраструктура Vinum
должна к этому моменту уже работать.Том с корневой файловой системой содержит, помимо прочего,
системный загрузчик и ядро, которые должны читаться "родными"
(native) утилитами компьютера (BIOS для машин архитектуры PC);
обеспечить поддержку ими тонкостей Vinum зачастую невозможно.
В данном разделе термин корневой том означает
том Vinum, содержащий корневую файловую систему. Неплохой идеей является
назвать такой том "root", хотя это, разумеется, и
необязательно. Все наши примеры, впрочем, будут использовать именно это
имя. Активизация Vinum на ранней стадии процесса загрузкиДля обеспечения этого необходимо следующее:Vinum должен быть доступен ядру еще на этапе загрузки.
Метод, описанный в ,
неприменим; на самом деле, параметр start_vinumне должен быть установлен. Одним из вариантов
является сборка ядра с поддержкой Vinum, что возможно, но, как
правило, нежелательно. Более удобный вариант — загрузка
модуля ядра Vinum при помощи /boot/loader
(), для чего в файл
/boot/loader.conf следует добавить
строкуvinum_load="YES"Vinum должен быть активирован достаточно рано, поскольку
требуется предоставить том для корневой файловой системы. По
умолчанию Vinum в ядре не начинает поиск приводов, содержащих
информацию о томах Vinum, до команды администратора (или одного из
стартовых скриптов) vinum start.Данный раздел описывает необходимые действия для FreeBSD
версии 5.x и старше. Шаги, необходимые в случае FreeBSD версии 4.x,
описаны ниже: .Строкаvinum.autostart="YES"в файле /boot/loader.conf, указывает
Vinum автоматически просканировать все диски
для сбора информации о томах в процессе загрузки ядра.Обращаем ваше внимание, что нет необходимости как-либо
специально сообщать ядру, где находится корневая файловая система.
Загрузчик (/boot/loader) найдет необходимое
имя устройства в
/etc/fstab и передаст его ядру. В момент
монтирования корневой файловой системы ядро передаст имя устройства
соответствующему драйверу для декодирования (трансляции в пару
идентификаторов устройств — major/minor device
number).Загрузчик должен прочесть корневой том VinumВ настоящее время начальный загрузчик FreeBSD ограничен размером
всего в 7.5 KB, и этот размер фактически исчерпан (загрузчик должен
уметь прочесть файл /boot/loader с файловой
системы формата UFS и передать ему управление). Невозможно разместить
в загрузчике внутренние структуры Vinum, чтобы он мог считать настройку
Vinum и самостоятельно определить элементы загрузочного тома.
Поэтому, для создания у
загрузчика иллюзии, что загрузка происходит со стандартного раздела
"a" требуются некоторые дополнительные
ухищрения.Для того, чтобы такая загрузка вообще была возможной, корневой том
должен отвечать следующим требованиям:быть только зеркалированным (ни перемежение, ни RAID5
невозможны);содержать ровно один поддиск на каждом из наборов.Заметим, что возможно (и является, вообще говоря, основной целью),
чтобы корневой том содержал несколько наборов, каждый с копией корневой
файловой системы. В процессе загрузки, впрочем, используется только
одна из копий (на этапе поиска начального загрузчика и его
конфигурационных файлов, ядра, модулей и т.п. до момента монтирования
корневой файловой системы). Для обеспечения возможности загрузки
поддиск каждого из наборов должен быть отображен в псевдо-раздел
"a". Вообще говоря, эти псевдо-разделы не обязаны
находиться на одних и тех же местах дисков; тем не менее, во избежание
излишней путаницы, рекомендуется создавать тома с одинаково устроенными
дисками для зеркалирования.Для создания псевдо-разделов "a" необходимо
для каждого из дисков, содержащих копию корневого тома, проделать
следующее:Определить положение (смещение от начала устройства) и размер
поддиска, являющегося частью корневого тома:&prompt.root; vinum l -rv rootОтметим, что все размеры и смещения в терминах Vinum указаны
в байтах. Для получения номеров блоков, используемых в утилите
disklabel, все числа надо поделить
на 512.Выполнить команду&prompt.root; disklabel -e devnameдля каждого из дисков, на котором будет расположен корневой
том. devname будет или именем диска
(например, da0) для дисков без таблицы
слайсов, или именем слайса (ad0s1).Если на устройстве уже есть раздел "a"
(скорее всего, это предыдущая инкарнация корневой файловой
системы), он должен быть переименован (чтобы быть доступным в
будущем, на всякий случай; при этом стартовый загрузчик больше не
должен выбирать его по умолчанию). Не забудьте, что активный
(например, смонтированный) раздел не может быть переименован, так
что переименование нужно производить или загрузившись с диска
Fixit, или в два шага (для конфигурации с
зеркалированием сначала переименовать раздел на втором диске,
затем, после перезагрузки, на первом).Затем, адрес начала нового раздела "a"
вычисляется как сумма начального смещения раздела Vinum и
подсчитанного выше адреса поддиска внутри привода. Совместно с
вычисленным размером эти значения вносятся в поля
"offset" и "size" строки
"a" &man.disklabel.8;; Поле
"fstype" должно быть 4.2BSD.
Значения полей "fsize",
"bsize" и "cpg" желательно
заполнить в соответствии с имеющейся файловой системой, хотя
в обсуждаемом контексте это и не строго обязательно.Как можно заметить, новосозданный раздел
"a" располагается внутри раздела Vinum. Утилита
disklabel разрешает разделам пересекаться только
в случае, если один из них корректно описан как имеющий тип
"vinum".Готово! Сконструированный псевдо-раздел
"a" создан на каждом из устройств, содержащих
реплики корневого тома. Крайне важно проверить результат
еще раз, выполнив команду&prompt.root; fsck -n /dev/devnameaСледует помнить, что все файлы, содержащие загрузочную
конфигурацию, должны быть построены в соответствии с новой корневой
файловой системой; скорее всего, эта информация не будет соответствовать текущему
положению вещей. В особенности, следует обратить внимание на
содержимое файлов /etc/fstab и
/boot/loader.conf.После перезагрузки начальный загрузчик должен определить данные
новой корневой файловой системы на основе Vinum и действовать в
соответствии с ними. В завершение процесса инициализации ядра, после
упоминания всех определившихся устройств, должно появиться сообщение
вида:Mounting root from ufs:/dev/vinum/rootПример конфигурации корневой файловой системы на базе VinumПосле создания корневого тома, вывод команды
vinum l -rv root будет примерно таким:
...
Subdisk root.p0.s0:
Size: 125829120 bytes (120 MB)
State: up
Plex root.p0 at offset 0 (0 B)
Drive disk0 (/dev/da0h) at offset 135680 (132 kB)
Subdisk root.p1.s0:
Size: 125829120 bytes (120 MB)
State: up
Plex root.p1 at offset 0 (0 B)
Drive disk1 (/dev/da1h) at offset 135680 (132 kB)
Из этой информации нас более всего интересует смещение в
135680 байт относительно раздела
/dev/da0h. После деления на 512 получим 265
дисковых блоков для утилиты disklabel. Аналогичным
образом, размер тома составит 245760 512-байтных блоков. Так же
устроена реплика тома на диске
/dev/da1h.Разметка разделов (disklabel) будет выглядеть примерно так:
...
8 partitions:
# size offset fstype [fsize bsize bps/cpg]
a: 245760 281 4.2BSD 2048 16384 0 # (Cyl. 0*- 15*)
c: 71771688 0 unused 0 0 # (Cyl. 0 - 4467*)
h: 71771672 16 vinum # (Cyl. 0*- 4467*)
Как уже отмечалось, размер ("size")
псевдо-раздела "a" соответствует значению,
вычисленному ранее; смещение ("offset") равно сумме
смещения поддиска внутри раздела Vinum ("h") и
смещения самого этого раздела относительно начала диска (слайса). Так
мы избегаем проблем, описанных ниже (). Заметим также, что раздел
"a" целиком размещен внутри раздела
"h", описывающего все данные Vinum на этом
диске.Заметим, что в описанном примере все дисковое пространство отдано
Vinum. Корневого раздела, существовавшего до настройки Vinum, нет,
поскольку это вновь установленный диск, предназначенный для
использования исключительно в Vinum.Проблемы и их устранениеЕсли что-то пошло не так, должен быть путь для восстановления
доступа к информации. Далее описаны некоторые известные проблемные
ситуации и способы их устранения.Загрузчик работает, но система не грузитсяЕсли по каким-то причинам система не может завершить загрузку,
загрузчик может быть прерван нажатием пробела в течение первых 10 (по
умолчанию) секунд. Вы можете посмотреть переменные загрузчика (такие
как vinum.autostart) при помощи команды
show и изменить их содержимое командами
set и unset.Если единственной проблемой было отсутствие загруженного
модуля ядра Vinum, поможет просто команда
load vinum.Процесс загрузки должен быть продолжен командой
boot -as. Параметры заставят
ядро спросить о корневой файловой системе (параметр
) и остановить процесс загрузки в
однопользовательском (параметр ) режиме. При этом
корневая файловая система будет смонтирована в режиме "только для
чтения" (read-only). В результате, даже если будет смонтирован лишь
один набор из многонаборного тома, риска рассинхронизации наборов
нет.Ответом на приглашение ввести адрес корневой файловой системы
может быть имя любого устройства, указывающего на файловую систему,
пригодную для загрузки. При корректно построенной карте файловых
систем (/etc/fstab) значением по умолчанию
должно быть что-то вроде ufs:/dev/vinum/root.
Распространенной альтернативой будет, например,
ufs:da0d (раздел, содержащий корневую файловую
систему в эпоху "до Vinum"). Будьте осторожны, монтируя в качестве
корневой файловой системы раздел "a", ссылающийся
внутрь привода Vinum. В зеркалированном томе смонтируется только
часть файловой системы. Если вам потребуется изменить ее
содержимое, необходимо будет также удалить и создать заново остальные
наборы тома в конфигурации Vinum, иначе они будут содержать
несинхронизированные данные.Работает только основной загрузчикЕсли /boot/loader не загружается,
а основной загрузчик все еще пригоден к работе (в
начале процесса загрузки появляется одиночный минус в первой колонке экрана),
можно попытаться прервать основной загрузчик нажатием пробела в этот
момент. При этом загрузка будет остановлена на второй стадии
(см. ). Можно
попробовать загрузиться с другого раздела, например, содержащего
предыдущую копию корневой файловой системы (бывший раздел
"a", см. выше).Ничего не грузится, загрузчик падаетЭто происходит, когда загрузчик на диске затерт Vinum'ом.
К сожалению, Vinum оставляет лишь 4 KB в начале своего раздела
до записи своих управляющих блоков. Две стадии первоначального
загрузчика в совокупности с меткой диска BSD (disklabel) требуют
8 KB. Так что попытка создать раздел Vinum по смещению 0 диска
или слайса, который должен быть загруженным, затрет загрузчик.Что хуже, попытка разрешить описанную ситуацию посредством
загрузки с диска Fixit и перезаписи начального
загрузчика при помощи команды disklabel -B (как
описано в ) приведет к тому, что
загрузчик затрет управляющий заголовок Vinum, и тот не сможет найти
свой диск. Хотя собственно конфигурация Vinum при этом не
потеряется, и все данные могут быть восстановлены посредством
создания объектов на их предыдущих местах, очень сложно окончательно
исправить ситуацию. Весь раздел Vinum должен быть смещен по
крайней мере на 4 KB, так чтобы загрузчики и заголовок Vinum
более не пересекались.Отличия для FreeBSD версий 4.XВ системах под управлением FreeBSD 4.X отсутствуют некоторые
функции ядра, необходимые для автоматического сканирования дисков
Vinum'ом; кроме того, код, определяющий номера устройств корневой
файловой системы, недостаточно продвинут для того, чтобы понимать
конструкции вида /dev/vinum/root. Требуется
приложение дополнительных усилий.Во-первых, в файле /boot/loader.conf должен
быть явно указан список дисков, которые Vinum будет сканировать:vinum.drives="/dev/da0 /dev/da1"Важно, чтобы были описаны все приводы, на которых могут встретиться
данные Vinum. Не произойдет ничего плохого, если будет описано
больше дисков, чем необходимо. Также, нет нужды
описывать все слайсы и/или разделы (Vinum сканирует их
автоматически).Поскольку подпрограммы разбора имени корневой файловой системы
и определения номеров устройств воспринимают только
классические имена, такие как
/dev/ad0s1a, для них не подходят имена типа
/dev/vinum/root. Имя корневого тома должно
быть сообщено Vinum отдельно. Для этого служит переменная загрузчика
vinum.root. Соответствующая строка в файле
/boot/loader.conf будет выглядеть так:vinum.root="root"Процедура инициализации ядра выглядит так: перед определением
корневого устройства для загрузки проверяется, не установил ли
какой-либо модуль соответствующий параметр ядра. В случае
положительного ответа и при совпадении основного
(major) номера устройства драйвера и установленной файловой системы
автоопределение прекращается, что дает возможность передать продолжение
процесса загрузки и монтирование корневого тома Vinum.Следует отметить, впрочем, что обработчик ответа на запрос имени
корневой файловой системы (boot -a) не может
разобрать имя тома Vinum. Можно ввести имя устройства, отличное от
устройства Vinum (в этом случае произойдет стандартная процедура
разбора, так что можно указать, например,
ufs:da0d). Имена же, подобные
ufs:vinum/root не могут быть распознаны.
Единственным выходом из этой ситуации будет перезагрузка и введение
имени устройства заново (префикс /dev/ в
ответе на запрос askroot всегда можно опустить).
+
+
+