diff --git a/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml b/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml index 332019aa0e..1ae52ea2d5 100644 --- a/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/boot/chapter.sgml @@ -1,843 +1,843 @@ Андрей Захватов Перевод на русский язык: Процесс загрузки FreeBSD Описание загрузка начальная загрузка Процесс включения компьютера и загрузки операционной системы называется процессом первоначальной загрузки, или просто загрузкой. Процесс загрузки FreeBSD предоставляет большие возможности по гибкой настройке того, что происходит при запуске системы, позволяя вам выбирать из различных операционных систем, установленных на одном и том же компьютере, или даже из различных версий той же самой операционной системы или установленного ядра. Эта глава подробно описывает параметры, которые вы можете изменить для настройки процесса загрузки FreeBSD. Под этим подразумевается все, что происходит до начала работы ядра FreeBSD, обнаружения устройств и запуска &man.init.8;. Если вы не совсем уверены, то это происходит, когда выводимый текст меняет цвет с ярко-белого на серый. После чтения этой главы вы будете знать: Из каких частей состоит система начальной загрузки FreeBSD, и как эти части взаимодействуют. Параметры, которые вы можете передать компонентам начальной загрузки FreeBSD для управления этим процессом. Основы работы &man.device.hints.5; Только для x86 Эта глава описывает процесс загрузки FreeBSD только для систем на основе архитектуры Intel x86. Проблема загрузки Включение компьютера и запуск операционной системы приводят к интересной дилемме. По определению до запуска операционной системы компьютер не умеет ничего. В том числе и не знает, как запускать программы с диска. Так что компьютер не может запустить программу с диска без операционной системы, но программы операционной системы находятся на диске, но как запустить операционную систему? Эта проблема имеет параллели с одной проблемой из книги Приключения барона Мюнхаузена. Герой провалился в болото, и вытащил сам себя, ухватив за волосы и потянув. В эпоху начала компьютеризации термин начальная загрузка применялся к механизму, используемому для загрузки операционной системы, и затем был сокращен до просто загрузки. На оборудовании архитектуры x86 за загрузку операционной системы отвечает BIOS (Basic Input/Output System). Для этого BIOS ищет на жестком диске MBR (Master Boot Record), которая должна располагаться в определенном месте на диске. BIOS может загрузить и запустить MBR, и предполагается, что MBR может взять на себя остальную работу, связанную с загрузкой операционной системой. BIOS Basic Input/Output System BIOS Если на вашем диске установлена только одна операционная система, то стандартной MBR будет достаточно. Такая MBR выполняет поиск на диске первого загрузочного слайса, после чего запускает с этого слайса код загрузки оставшейся части операционной системы. Если на ваших дисках установлено несколько операционных систем, то вы можете установить другую MBR, ту, что может выдать список различных операционных систем и позволит вам выбрать одну из них для загрузки. FreeBSD поставляется с одной из такой MBR, которую можно установить; другие производители операционных систем также предоставляют свои MBR. Оставшаяся часть системы начальной загрузки FreeBSD разделяется на три этапа. Первый этап запускается из MBR, и он знает достаточно для перевода компьютера в особое состояние и загрузки второго этапа. Второй этап может делать несколько больше до запуска третьего этапа. Третий этап заканчивает работу по загрузке операционной системы. Работа разделена на эти три этапа, потому что стандарты ПК ограничивают размеры программ, которые могут быть запущены на первом и втором этапах. Последовательное выполнение работ позволяет FreeBSD получить более гибкий загрузчик. ядро init Затем стартует ядро, которое начинает опознавать устройства и выполняет их инициализацию. После завершения процесса своей загрузки, ядро передает управление пользовательскому процессу с именем &man.init.8;, который выполняет проверку дисков на возможность использования. Затем &man.init.8; запускает пользовательский процесс настройки ресурсов, который монтирует файловые системы, выполняет настройку сетевых адаптеров для работы в сети и вообще осуществляет запуск всех процессов, обычно выполняемых в системе FreeBSD при загрузке. MBR и первый, второй и третий этапы загрузки MBR, <filename>/boot/boot0</filename> Master Boot Record (MBR) MBR для FreeBSD находится в /boot/boot0. Это копия MBR, так как настоящая MBR должна располагаться в специальном месте диска, вне области FreeBSD. boot0 очень прост, так как программа в MBR может иметь размер, не превышающий 512 байт. Если вы установили MBR FreeBSD и несколько операционных систем на ваш жесткий диск, то во время загрузки вы увидите нечто похожее на следующее: Образец экрана <filename>boot0</filename> F1 DOS F2 FreeBSD F3 Linux F4 ?? F5 Drive 1 Default: F2 Известно, что другие операционные системы, в частности, &windows; 95, записывают поверх существующей MBR свою собственную. Если так случилось в вашем случае, или же вы хотите заменить существующую MBR на MBR от FreeBSD, то воспользуйтесь следующей командой: &prompt.root; fdisk -B -b /boot/boot0 device Здесь device является устройством, с которого вы загружаетесь, таким, как ad0 в случае первого диска IDE, ad2 в случае первого диска IDE на втором контроллере IDE, da0 для первого диска SCSI и так далее. Однако если вы используете Linux и предпочитаете, чтобы процесс загрузки управлялся через LILO, вы можете отредактировать файл /etc/lilo.conf для FreeBSD или выбрать в процессе установки FreeBSD. Если вы установили менеджер загрузки FreeBSD, то вы можете снова загрузить Linux и изменить конфигурационный файл /etc/lilo.conf для LILO, добавив следующий параметр: other=/dev/hdXY table=/dev/hdb loader=/boot/chain.b label=FreeBSD который позволит загружать FreeBSD и Linux посредством LILO. В нашем примере мы используем XY для обозначения номера диска и раздела. Если вы используете диск SCSI, то вам может потребоваться заменить /dev/hdXY на что-то типа /dev/sdXY, где снова используется обозначение XY. Строка может быть опущена, если обе операционные системы располагаются на одном и том же диске. Вы можете теперь запустить /sbin/lilo -v для того, чтобы ваши изменения были восприняты системой, что должно быть подтверждено сообщениями на экране. Этап первый, <filename>/boot/boot1</filename>, и этап второй, <filename>/boot/boot2</filename> Концептуально первый и второй этапы загрузки являются частями одной и той же программы, в той же самой области диска. Из-за ограничений на объем дискового пространства они были разделены на две, но вы всегда должны устанавливать их вместе. Они располагаются в загрузочном секторе загрузочного слайса, то есть там, где boot0 или любая другая программа из MBR ожидает найти программу, которую следует запустить для продолжение процесса загрузки. Файлы в каталоге /boot являются копиями реальных файлов, которые хранятся вне файловой системы FreeBSD. boot1 очень прост, так как он тоже может иметь размер, не превышающий 512 байт, и знает достаточно о метке диска FreeBSD, хранящей информацию о слайсе, для того, чтобы найти и запустить boot2. boot2 устроен несколько более сложно, и умеет работать с файловой системой FreeBSD в объёме, достаточном для нахождения в ней файлов, и может предоставлять простой интерфейс для выбора и передачи управления ядру или загрузчику. Так как загрузчик устроен гораздо более сложно, и дает удобный и простой способ настройки процесса загрузки, boot2 обычно запускает его, однако раньше его задачей был запуск непосредственно самого ядра. Образец экрана <filename>boot2</filename> >> FreeBSD/i386 BOOT Default: 0:ad(0,a)/kernel boot: Если вам когда-либо понадобится заменить установленные boot1 и boot2, то используйте утилиту &man.disklabel.8;: &prompt.root; disklabel -B diskslice Здесь diskslice являются диском и слайсом, с которых вы загружаетесь, такие, как ad0s1 в случае первого слайса на первом диске IDE. Режим Dangerously Dedicated Если вы используете только имя диска, к примеру, ad0, в команде &man.disklabel.8; вы создадите диск в режиме эксклюзивного использования, без слайсов. Это, скорее всего, вовсе не то, что вы хотите сделать, так что дважды проверьте параметры команды &man.disklabel.8;, прежде, чем нажать Return. Третий этап, <filename>/boot/loader</filename> загрузчик Передача управления загрузчику является последним, третьим этапом в процессе начальной загрузки, а сам загрузчик находится в файловой системе, обычно как /boot/loader. Загрузчик являет собой удобный в использовании инструмент для настройки при помощи простого набора команд, управляемого более мощным интерпретатором с более сложным набором команд. Процесс работы загрузчика Во время инициализации загрузчик пытается произвести поиск консоли, дисков и определить, с какого диска он был запущен. Соответствующим образом он задаёт значения переменных и запускает интерпретатор, которому могут передаваться пользовательские команды как из скрипта, так и в интерактивном режиме. загрузчик конфигурация загрузчика Затем загрузчик читает файл /boot/loader.rc, который по умолчанию использует файл /boot/defaults/loader.conf, устанавливающий подходящие значения по умолчанию для переменных и читает файл /boot/loader.conf для изменения в этих переменных. Затем с этими переменными работает loader.rc, загружающий выбранные модули и ядро. И наконец, по умолчанию загрузчик выдерживает 10-секундную паузу, ожидая нажатия клавиши, и загружает ядро, если этого не произошло. Если ожидание было прервано, пользователю выдается приглашение, которое воспринимает простой набор команд, с помощью которых пользователь может изменить значения переменных, выгрузить все модули, загрузить модули и окончательно продолжить процесс загрузки или перезагрузить машину. Встроенные команды загрузчика Далее следуют наиболее часто используемые команды загрузчика. Полное описание всех имеющихся команд можно найти на странице справки о команде &man.loader.8;. autoboot секунды Продолжает загрузку ядра, если не будет прерван в течение указанного в секундах промежутка времени. Он выводит счетчик, и по умолчанию выдерживается интервал в 10 секунд. boot -параметры имя ядра Продолжить процесс загрузки указанного ядра, если оно было указано, и с указанными параметрами, если они были указаны. boot-conf Повторно провести тот же самый процесс автоматической настройки модулей на основе переменных, что был произведен при загрузке. Это имеет смысл, если до этого вы выполнили команду unload, изменили некоторые переменные, например, наиболее часто меняемую kernel. help тема Вывод сообщений подсказки из файла /boot/loader.help. Если в качестве темы указано слово index, то выводится список имеющихся тем. include имя файла Выполнить файл с указанным именем. Файл считывается и его содержимое интерпретируется строчка за строчкой. Ошибка приводит к немедленному прекращению выполнения команды include. load тип имя файла Загружает ядро, модуль ядра или файл указанного типа с указанным именем. Все аргументы после имени файла передаются в файл. ls маршрут Выводит список файлов по указанному маршруту или в корневом каталоге, если маршрут не был указан. Если указан параметр , будут выводиться и размеры файлов. lsdev Выводится список всех устройств, с которых могут быть загружены модули. Если указан параметр , выводится дополнительная информация. lsmod Выводит список загруженных модулей. Если указан параметр , то выводится дополнительная информация. more имя файла Вывод указанного файла с паузой при выводе каждой строки LINES. reboot Выполнить немедленную перезагрузку машины. set переменная set переменная=значение Задает значения переменных окружения загрузчика. unload Удаление из памяти всех загруженных модулей. Примеры использования загрузчика Вот несколько примеров практического использования загрузчика: однопользовательский режим Чтобы просто загрузить ваше ядро обычным образом, но в однопользовательском режиме: boot -s Для выгрузки обычных ядра и модулей, а потом просто загрузить ваше старое (или другое) ядро: kernel.old unload load kernel.old Вы можете использовать kernel.GENERIC для обозначения стандартного ядра, поставляемого на установочном диске, или kernel.old для обращения к ранее установленному ядру (после того, как, например, вы обновили или отконфигурировали новое ядро). Для загрузки ваших обычных модулей с другим ядром используйте такие команды: unload set kernel="kernel.old" boot-conf Для загрузки скрипта конфигурации ядра (автоматизированный скрипт, который выполняет то, что вы обычно делаете в конфигураторе ядра во время загрузки): load -t userconfig_script /boot/kernel.conf Взаимодействие с ядром во время загрузки ядро взаимодействия во время загрузки Как только ядро окажется загруженным при помощи загрузчика (обычный способ) или boot2 (минуя загрузчик), оно проверяет флаги загрузки, если они есть, и действует соответствующим образом. ядро флаги загрузки Флаги загрузки ядра Вот наиболее часто используемые флаги загрузки: во время инициализации ядра запрашивать устройство для его монтирования в качестве корневой файловой системы. загрузка с компакт-диска. запустить UserConfig для конфигурации ядра во время загрузки после загрузки перейти в однопользовательский режим во время запуска ядра выводить более подробную информацию Есть и другие флаги загрузки, обратитесь к странице справочника по &man.boot.8; для выяснения подробной информации по ним. Tom Rhodes Текст предоставил device.hints Хинты устройств Эта функция присутствует только во FreeBSD 5.0 и последующих версиях, но не в более ранних. Во время начального запуска системы загрузчик &man.loader.8; производит чтение файла &man.device.hints.5;. В этом файле хранится необходимая для загрузки ядра информация, задаваемая в виде переменных, которую иногда называют хинтами для устройств (device hints). Эти хинты устройств используются драйверами устройств для их конфигурации. Хинты для устройств могут быть также заданы в приглашении начального загрузчика Стадии 3. Переменные могут быть добавлены при помощи команды set, удалены посредством unset и просмотрены командой show. В этот момент могут быть также переопределены переменные, заданные в файле /boot/device.hints. Хинты для устройств, введённые в начальном загрузчике, не сохраняются, и при следующей перезагрузке будут утеряны. После загрузки системы для выдачи значений всех переменных можно воспользоваться командой &man.kenv.1;. Синтаксически в файле /boot/device.hints в каждой строке определяется по одной переменной, в качестве метки начала комментария используется стандартный символ #. Строки строятся следующим образом: hint.driver.unit.keyword="value" Синтаксис для начального загрузчика Стадии 3 таков: set hint.driver.unit.keyword=value driver определяет имя драйвера устройства, unit соответствует порядковому номеру модуля устройства, а keyword является ключевым словом хинта. В качестве ключевых слов могут применяться следующие опции: at: задаёт шину, к которой подключено устройство. port: задаёт начальный адрес используемого диапазона ввода/вывода (I/O). irq: задаёт используемый номер запроса на прерывание. drq: задаёт номер канала DMA. maddr: задаёт физический адрес памяти, занимаемый устройством. flags: устанавливает различные битовые флаги для устройства. disabled: если установлено в значение 1, то устройство не используется. Драйверы устройств могут поддерживать (и даже требовать) другие хинты, здесь не перечисленные, поэтому рекомендуется просматривать справочные страницы по этим драйверам. Для получения дополнительной информации обратитесь к страницам справки по &man.device.hints.5;, &man.kenv.1;, &man.loader.conf.5; и &man.loader.8;. init Init: инициализация управления процессами После того, как ядро завершит загрузку, оно передает управление пользовательскому процессу &man.init.8;, который расположен в файле /sbin/init или в файле, маршрут к которому указан в переменной init_path загрузчика. Процесс автоматической перезагрузки Процесс автоматической перезагрузки проверяет целостность имеющихся файловых систем. Если это не так, и утилита &man.fsck.8; не может исправить положение, то &man.init.8; переводит систему в однопользовательский режим для того, чтобы системный администратор сам разобрался с возникающими проблемами. Однопользовательский режим однопользовательский режим консоль В этот режим можно перейти во время процесса автоматической перезагрузки, при ручной загрузке с параметром или заданием переменной boot_single для программы loader. Этот режим может быть также вызван запуском программы &man.shutdown.8; без параметров перезагрузки () или останова () из многопользовательского режима. Если режим доступа к системной консоли console установлен в файле /etc/ttys в insecure, то система выведет запрос на ввод пароля пользователя root перед переходом в однопользовательский режим. Незащищённая консоль в <filename>/etc/ttys</filename> # name getty type status comments # # Если консоль помечена как "insecure", то init будет запрашивать пароль # пользователя root при переходе в однопользовательский режим. console none unknown off insecure Обозначение консоли как insecure означает, что вы считаете физический доступ к консоли незащищённым, и хотите, чтобы только тот, кто знает пароль пользователя root, мог воспользоваться однопользовательским режимом, но это не значит, что вы хотите работать с консолью небезопасным способом. Таким образом, если вы хотите добиться защищённости, указывайте insecure, а не secure. Многопользовательский режим многопользовательский режим Если &man.init.8; определит, что ваши файловые системы находятся в полном порядке, или после того, как пользователь выйдет из однопользовательского режима, система перейдет в многопользовательский режим, работа в котором начинается с настройки ресурсов системы. файлы rc Настройка ресурсов (rc) Система настройки ресурсов считывает настройки, применяемые по умолчанию, из файла /etc/defaults/rc.conf, а настройки, специфичные для конкретной системы, из /etc/rc.conf, после чего осуществляется монтирование файловых систем, перечисленных в файле /etc/fstab, запуск сетевых служб, различных системных даемонов и, наконец, выполнение скриптов запуска дополнительно установленных пакетов. Страница справочника по &man.rc.8; является хорошим источником информации о системе настройки ресурсов, так же, как и самостоятельное изучение скриптов. Процесс остановки системы shutdown Во время контролируемого процесса остановки системы через утилиту &man.shutdown.8; программа &man.init.8; будет пытаться запустить скрипт /etc/rc.shutdown, после чего будет посылать всем процессам сигнал TERM, а затем и KILL тем процессам, которые ещё не завершили свою работу. Для выключения машины с FreeBSD на аппаратных платформах и системах, которые поддерживают управление электропитанием, просто воспользуйтесь командой shutdown -p now для немедленного отключения электропитания. Чтобы просто перезагрузить систему FreeBSD, воспользуйтесь командой shutdown -r now. Для запуска команды &man.shutdown.8; вам необходимо быть пользователем root или членом группы operator. Кроме того, можно также воспользоваться командами &man.halt.8; и &man.reboot.8;, пожалуйста, обратитесь к соответствующим страницам справки и справочной странице по команде &man.shutdown.8; для получения дополнительной информации. Для управления электропитанием требуется наличие поддержки &man.acpi.4; в ядре или в виде загруженного модуля при использовании FreeBSD 5.X, а для FreeBSD 4.X необходима поддержка &man.apm.4;. diff --git a/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml b/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml index b46e8322d2..7a0403bc7f 100644 --- a/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml +++ b/ru_RU.KOI8-R/books/handbook/kernelconfig/chapter.sgml @@ -1,1768 +1,1775 @@ Jim Mock Обновил и реструктурировал Jake Hamby Предоставил Александром Коваленко Переведено Настройка ядра FreeBSD Краткий обзор kernel сборка собственного ядра Ядро — это основная часть операционной системы &os;. Оно ответственно за управление памятью, параметры безопасности, работу с сетью, доступ к дискам и многое другое. Несмотря на то, что &os; становится всё более динамически конфигурируемой, иногда приходится собирать собственное ядро. После прочтения этой главы вы узнаете: Почему вам может понадобиться сборка собственного ядра. Как написать файл конфигурации ядра или изменить существующий. Как использовать файл конфигурации ядра для того, чтобы создать и собрать новое ядро. Как установить новое ядро. Как создать записи в /dev, которые могут оказаться необходимы. Что делать, если что-то не работает или работает не так, как должно. Все команды, приводимые в этой главе в качестве примера, должны выполняться от пользователя root. Зачем собирать собственное ядро? Традиционно в &os; использовалось так называемое монолитное ядро. Это означает, что ядро — это одна большая программа, которая поддерживает фиксированный набор устройств и в случае, если необходимо изменить его поведение, требуется сборка нового ядра и перезагрузка компьютера уже с новым ядром. На сегодняшний день &os; быстро продвигается к модели, в которой большая часть функциональности содержится в модулях, которые могут быть при необходимости динамически загружены и выгружены из ядра. Это позволяет ядру использовать устройства, которые внезапно появились в системе (например, устройства PCMCIA в лэптопе) или добавлять новую функциональность в ядро, которая не была необходима в момент первоначальной сборки ядра. Такой подход известен как модульность ядра. Несмотря на это, всё ещё иногда бывает необходимо, чтобы некоторая функциональность была вкомпилирована в ядро статически. В некоторых случаях это продиктовано тем, что эта функциональность настолько сильно привязана к ядру, что не может быть динамически загружаемой. В других случаях это может быть просто потому, что никто не уделил время написанию динамически загружаемого модуля для этой функциональности. Сборка собственного ядра — один из наиболее важных ритуалов, через который должен пройти практически любой пользователь BSD. Несмотря на длительность этого процесса, ваша &os; останется только в выигрыше. В отличие от ядра GENERIC, которое должно поддерживать широкий спектр аппаратного обеспечения, собственное ядро содержит поддержку аппаратного обеспечения только вашего компьютера. Это может давать следующие преимущества: Меньшее время загрузки. Поскольку ядро будет пытаться определить только то аппаратное обеспечение, которое установлено в вашем компьютере, время, которое потребуется системе для загрузки, может значительно уменьшиться. Уменьшение использования памяти. Собственное ядро часто использует меньше памяти, чем ядро GENERIC, что очень важно, поскольку ядро всегда находится в физической памяти. Именно по этой причине собственное ядро особенно полезно при использовании систем с малым объемом оперативной памяти. Поддержка дополнительного аппаратного обеспечения. Собственное ядро позволяет вам добавить поддержку устройств, отсутствующих в ядре GENERIC. Сборка и установка собственного ядра kernel сборка / установка Во-первых, давайте сделаем краткий обзор каталога, в котором будет происходить сборка ядра. Все каталоги, которые будут упоминаться, будут относительными по отношению к основному каталогу /usr/src/sys, который также доступен как каталог /sys. Этот каталог содержит множество подкаталогов, представляющих собой различные части ядра, но наиболее важным для нас будет каталог arch/conf, в котором вы будете редактировать конфигурационный файл ядра и в котором находится каталог compile, где будет собираться ваше ядро. arch может быть i386, alpha, amd64, ia64, powerpc, sparc64 или pc98 (альтернативная ветвь аппаратного обеспечения, популярная в Японии). Все, что находится внутри каталога определенной архитектуры, относится только к этой архитектуре; остальной код является машинно независимым и общим для всех платформ, на которые &os; может быть потенциально портирована. Обратите внимание на логическую структуру каталогов, в которой каждое поддерживаемое устройство, каждая файловая система и каждая опция размещается в своём собственном каталоге. Версии &os; до 5.X поддерживали только архитектуры i386, alpha и pc98. В примерах этой главы подразумевается, что вы используете архитектуру i386. Если это не так, измените каталоги, указанные в примерах, в соответствии с архитектурой вашей системы. Если в вашей системе отсутствует каталог /usr/src/sys, это означает, что исходные тексты ядра не были установлены. Наиболее простой способ установить их - запустить sysinstall (/stand/sysinstall в &os; версий старше, чем 5.2) как root, выбрать Configure, потом Distributions, потом src, потом sys. Если вы испытываете отвращение к sysinstall и у вас есть доступ к официальному &os; CDROM, вы также можете установить исходные тексты при помощи командной строки: &prompt.root; mount /cdrom &prompt.root; mkdir -p /usr/src/sys &prompt.root; ln -s /usr/src/sys /sys &prompt.root; cat /cdrom/src/ssys.[a-d]* | tar -xzvf - Затем, перейдите в каталог arch/conf и скопируйте файл конфигурации GENERIC в файл с выбранным вами именем. Например: &prompt.root; cd /usr/src/sys/i386/conf &prompt.root; cp GENERIC MYKERNEL По традиции имя состоит из букв в верхнем регистре, и если вы поддерживаете несколько компьютеров &os; на различном оборудовании, хорошая идея добавлять это имя к имени хоста. Мы назвали ядро MYKERNEL в этом примере. Помещение файла конфигурации ядра в /usr/src может быть плохой идеей. Если вы испытываете проблемы, их можно решить удалив /usr/src и начав все с начала. После этого обычно требуется несколько секунд, чтобы понять, что вы удалили собственный файл настройки ядра. Не редактируйте непосредственно GENERIC, он может быть также перезаписан и при следующем обновлении дерева исходных текстов, и изменения ядра будут потеряны. Вы можете сохранить файл конфигурации ядра в другом месте, а затем создать символическую ссылку на этот файл в каталоге i386. Например: &prompt.root; cd /usr/src/sys/i386/conf &prompt.root; mkdir /root/kernels &prompt.root; cp GENERIC /root/kernels/MYKERNEL &prompt.root; ln -s /root/kernels/MYKERNEL Теперь отредактируйте файл MYKERNEL в своём любимом текстовом редакторе. Если вы только начинаете, единственным доступным редактором скорее всего будет vi, который слишком сложен для того, чтобы описать его здесь, но в библиографии перечислено множество книг, в которых его использование хорошо освещено. Однако &os; предоставляет более простой редактор ee, который, если вы — новичок, подойдёт вам больше всего. Не стесняйтесь изменять строки комментариев в начале файла, с тем, чтобы отобразить вашу конфигурацию или изменения, которые вы сделали по сравнению с GENERIC. SunOS Если вам приходилось собирать ядро для &sunos; или какой-либо другой операционной системы типа BSD, многое из того, что содержится в этом файле будет очень знакомо вам. Если же вы, напротив, использовали другую операционную систему, такую как DOS, файл конфигурации GENERIC может показаться вам крайне сложным, поэтому следуйте инструкциям в разделе Конфигурационный файл медленно и внимательно. Если вы синхронизируете дерево исходных текстов с деревом проекта &os;, не забудьте свериться с файлом /usr/src/UPDATING перед обновлением. В этом файле описаны все важные вопросы и области исходного кода, требующие особого внимания. /usr/src/UPDATING всегда соответствует версии ваших исходных текстов &os;, поэтому является более актуальным источником информации, чем это руководство. Теперь вы должны скомпилировать ядро. Существует два способа, которые позволяют это сделать. Какой из них выбрать, зависит от того, почему вам понадобилось пересобирать ядро и версии &os;, которую вы используете. Если вы установили только исходные тексты ядра, используйте способ 1. Если вы используете &os; версии более ранней, чем 4.0 и вы не обновляете систему до &os; 4.0 или выше, используя make buildworld, используйте способ 1. Если вы собираете новое ядро, не обновляя исходные тексты (возможно, для того, чтобы добавить новую опцию, например IPFIREWALL), вы можете использовать любой способ. Если вы пересобираете ядро как часть процесса make buildworld, используйте способ 2. cvsup CTM CVS анонимный Если вы не обновляли дерево исходных текстов с момента последнего успешного завершения цикла buildworld-installworld, (то есть не запускали CVSup, CTM, или не использовали anoncvs), возможно использование последовательности config, make depend, make, make install. Способ 1. Сборка ядра <quote>традиционным</quote> способом Запустите &man.config.8; для того, чтобы сгенерировать исходные тексты ядра. &prompt.root; /usr/sbin/config MYKERNEL Перейдите в каталог, в котором будет собираться ядро. Запущенный как показано выше &man.config.8; выведет имя этого каталога. &prompt.root; cd ../compile/MYKERNEL Для &os; версий более ранних, чем 5.0, вместо этого используйте: &prompt.root; cd ../../compile/MYKERNEL Соберите ядро. &prompt.root; make depend &prompt.root; make Установите новое ядро. &prompt.root; make install Способ 2. Сборка ядра <quote>новым</quote> способом. Перейдите в каталог /usr/src. &prompt.root; cd /usr/src Соберите ядро. &prompt.root; make buildkernel KERNCONF=MYKERNEL Установите новое ядро. &prompt.root; make installkernel KERNCONF=MYKERNEL В &os; 4.2 и в более ранних, вам будет необходимо заменить KERNCONF= на KERNEL=. 4.2-STABLE, исходные тексты которой были обновлены до 2 февраля 2001 года, не понимает параметра KERNCONF=. /boot/kernel.old Новое ядро будет скопировано в каталог /boot/kernel как /boot/kernel/kernel, а старое ядро будет перемещено в /boot/kernel.old/kernel. Теперь перезагрузите систему для того, чтобы использовать новое ядро. Если что-то пойдёт не так, вы можете обратиться к разделу Решение проблем в конце этой главы, который может оказаться полезен. Не забудьте прочитать раздел, который объясняет как исправить ситуацию, когда ядро не загружается. В &os; 4.X и более ранних, ядро устанавливается в /kernel, модули в /modules, а старое ядро сохраняется в /kernel.old. Другие файлы, относящиеся к процессу загрузки, такие как загрузчик (&man.loader.8;) и его конфигурационные файлы, размещаются в /boot. Модули сторонних производителей могут быть помещены в /modules, хотя пользователи должны знать, что очень важно, чтобы модули были синхронизированы с собранным ядром. Модули, не рассчитанные на работу с собранным ядром, могут вызвать нестабильность и некорректность работы. Если вы добавили новые устройства (такие, как звуковая карта) и используете &os; 4.X или более ранние версии, то, возможно, вам понадобится создать некоторые файлы устройств в каталоге /dev перед тем, как вы сможете их использовать. За дополнительной информацией вы можете обратиться к разделу Создание файлов устройств далее в этой главе. Joel Dahl Обновил для &os; 5.X Конфигурационный файл ядро NOTES ядро LINT NOTES LINT ядро конфигурационный файл Формат конфигурационного файла достаточно прост. Каждая строка представляет собой ключевое слово и один или более аргументов. Для простоты большинство строк содержат только один аргумент. Всё, что следует за символом # является комментарием и игнорируется. Следующие разделы описывают каждый параметр, в основном в порядке, в котором они появляются в GENERIC, хотя некоторые родственные параметры сгруппированы вместе в одном разделе (например Работа с сетью), даже если на самом деле они разбросаны по всему файлу GENERIC. За полным списком архитектурно-зависимых параметров и устройств обратитесь к файлу NOTES в том же каталоге, что и GENERIC. Архитектурно независимые параметры находятся в /usr/src/sys/conf/NOTES. NOTES не существует в &os; 4.X. Детальное описание параметров и устройств из GENERIC находится в файле LINT. В 4.X LINT служит двум целям: предоставить справочное руководство для выбора параметров ядра при сборке ядра по умолчанию и предоставить конфигурацию ядра с параметрами, установленными в значения, отличные от значений по умолчанию (настолько много параметров, насколько это возможно). Это было сделано по той причине, что такая конфигурация хорошо помогала (и все еще помогает) при тестировании нового кода и изменений в существующем коде, поскольку этот код и изменения могут конфликтовать с другими частями ядра. Однако, инфраструктура конфигурации ядра в 5.X прошла через множество серьезных изменений; Одно из таких изменений – перемещение параметров конфигурации драйверов в hints, и теперь они могут быть изменены и загружены динамически во время загрузки системы, а в LINT их больше нет. По этой и другим причинам LINT был переименован в NOTES и в основном по-прежнему соответствует своему назначению: информирование пользователей о доступных параметрах. В &os; 5.X и более поздних версиях вы все еще можете создать собираемый LINT, выполнив: &prompt.root; cd /usr/src/sys/i386/conf && make LINT kernel конфигурационный файл Это пример конфигурационного файла ядра GENERIC с различными дополнительными комментариями, которые могут понадобиться для ясности. Этот пример должен совпадать с вашей копией в /usr/src/sys/i386/conf/GENERIC практически полностью. # # GENERIC -- Generic kernel configuration file for &os;/i386 # # For more information on this file, please read the handbook section on # Kernel Configuration Files: # # http://www.&os;.org/doc/en_US.ISO8859-1/books/handbook/kernelconfig-config.html # # The handbook is also available locally in /usr/share/doc/handbook # if you've installed the doc distribution, otherwise always see the # &os; World Wide Web server (http://www.FreeBSD.org/) for the # latest information. # # An exhaustive list of options and more detailed explanations of the # device lines is also present in the ../../conf/NOTES and NOTES files. # If you are in doubt as to the purpose or necessity of a line, check first # in NOTES. # # $FreeBSD: /repoman/r/ncvs/src/sys/i386/conf/GENERIC,v 1.413 2004/08/11 01:34:18 rwatson Exp $ Следующие параметры обязательны для любого ядра, которое вы будете собирать: параметры ядра machine machine i386 Это архитектура машины. Она должна быть одной из следующих: alpha, amd64, i386, ia64, pc98, powerpc, или sparc64. параметры ядра cpu cpu I486_CPU cpu I586_CPU cpu I686_CPU Эта опция указывает тип процессора, который используется в вашей системе. В конфигурационном файле может быть несколько вхождений этой опции (например, если вы не уверены, какой из типов процессора необходимо использовать — I586_CPU или I686_CPU), но для собственного ядра лучше указывать только тот тип процессора, который установлен в вашей системе. Если вы не уверены, какой тип необходимо использовать вам, вы можете воспользоваться файлом /var/run/dmesg.boot, чтобы увидеть протокол загрузки системы. параметры ядра cpu type Поддержка типа I386_CPU все ещё существует в исходных текстах &os;, но по умолчанию отключена в ветках -STABLE и -CURRENT. Это означает, что для того, чтобы установить &os; на систему с процессором i386, вы можете использовать следующие способы: Установить более раннюю версию &os; и пересобрать систему из исходных текстов в соответствии с . Собрать систему и ядро на более новой машине и установить на 386 используя уже собранные файлы в /usr/obj (за дополнительной информацией можете обратиться к ). Сделать собственный релиз &os;, который включает поддержку I386_CPU в ядре установочного CD-ROM. Первый из этих способов, возможно, наиболее простой из всех предложенных, но вам понадобится много дискового пространства, что может быть затруднительно для систем класса 386. параметры ядра ident ident GENERIC Этот параметр определяет метку ядра. Необходимо, чтобы она соответствовала названию файла конфигурации ядра, например MYKERNEL, если вы следовали инструкциям в предыдущих примерах. Значение, которое вы присвоите параметру ident будет выводиться в процессе загрузки, поэтому полезно давать новым ядрам другие имена для того, чтобы отличать их от обычного ядра (например, если вы хотите собрать экспериментальное ядро). параметры ядра maxusers maxusers n Параметр maxusers определяет размеры многих важных системных таблиц. Это число должно быть приблизительно равно количеству пользователей, одновременно использующих вашу систему. Начиная с &os; 4.5, система автоматически настроит этот параметр если в конфигурационном файле вы установили его в значение 0Алгоритм автоматической настройки устанавливает maxusers равным количеству памяти в системе, минимум 32 и максимум 384.. В &os; 5.X и выше, maxusers по умолчанию равен 0, если не установлено другое значение. Если вы используете &os; версии более ранней, чем 4.5, или хотите самостоятельно управлять этим значением, рекомендуется устанавливать значение maxusers равным минимум 4, особенно если вы используете X Window System или компиляторы. Причина этого кроется в том, что одной из основных таблиц, размер которой определяет maxusers, является максимальное количество процессов, которое устанавливается равным 20 + 16 * maxusers, таким образом, если вы установите maxusers равным 1, то получите возможность выполнять максимум 36 одновременных процессов, включая 18 или около того процессов, которые система запускает при загрузке, и 15 или около того вы создадите, когда запустите X Window System. Даже такая простая задача, как чтение страницы справочной системы (&man.man.1;), потребует запуска девяти процессов, для того, чтобы использовать фильтры, распаковать и просмотреть её. Установка maxusers в значение 64 позволит запускать до 1044 одновременных процессов, что должно быть достаточно для большинства применений. Однако, если вы видите ошибку proc table full, когда пытаетесь запустить программу или поддерживаете сервер с большим количеством пользователей (такой, как ftp.FreeBSD.org), вы всегда можете увеличить это число и пересобрать ядро. maxusers не ограничивает количество пользователей, которые могут зайти на вашу машину. Он просто устанавливает размеры различных таблиц в разумные значения, учитывая максимальное количество пользователей, которое будет у вас в системе и как много процессов будет запускать каждый из них. Параметр ядра, который действительно ограничивает количество одновременных удалённых сессий и окон X терминала, это pseudo-device pty 16. С &os; 5.X, вам не нужно беспокоиться об этом номере, поскольку драйвер &man.pty.4; автоклонируемый; используйте в файле конфигурации строку device pty. # Floating point support - do not disable. device npx npx — это интерфейс к модулю операций с плавающей точкой в &os;, который может использовать как аппаратный сопроцессор, так и программную эмуляцию. Этот параметр является обязательным. # Pseudo devices device loop # Network loopback Стандартное устройство обратной связи для TCP/IP. Если вы запускаете telnet или FTP на localhost (он же 127.0.0.1), то соединение пройдёт через это устройство. Этот параметр обязателен. В &os; 4.X вам потребуется использовать pseudo-device loop. Все остальные параметры более или менее опциональны. Обращайте внимание на информацию о каждой опции, которая размещается рядом с ней. #To statically compile in device wiring instead of /boot/device.hints #hints "GENERIC.hints" # Default places to look for devices. В &os; 5.X и более поздних &man.device.hints.5; используются для настройки параметров драйверов устройств. Путь по умолчанию, который &man.loader.8; будет проверять при загрузке - /boot/device.hints. Используя опцию hints вы можете вкомпилировать эти параметры статически в ваше ядро. В этом случае не требуется создавать файл device.hints в каталоге /boot. #makeoptions DEBUG=-g # Build kernel with gdb(1) debug symbols Обычный процесс сборки &os; не включает генерацию отладочной информации при сборке ядра и удаляет большую часть вспомогательной информации (symbols) после того как ядро слинковано для того, чтобы сэкономить немного места. Если вы собираетесь проводить тестирование ядер в ветви -CURRENT или разрабатывать собственные правки для ядра &os;, возможно вам потребуется раскомментировать эту строку. Тем самым вы включите использования опции , которая включает генерацию отладочной информации &man.gcc.1;. Того же самого эффекта можно добиться используя опцию &man.config.8; , в случае, если вы используете традиционный способ сборки ядра (обратитесь к за дополнительной информацией). options SCHED_4BSD # 4BSD scheduler Традиционный планировщик &os;. В зависимости от загруженности системы, вы можете повысить производительность, используя новый планировщик &os; ULE, который был специально разработан для SMP, но отлично работает также и на однопроцессорных системах. Если вы хотите попробовать этот планировщик, замените SCHED_4BSD на SCHED_ULE в файле конфигурации ядра. options INET # InterNETworking Поддержка сетевых возможностей. Оставьте эту опцию включенной, даже если вы не планируете подключаться к сети. Большинство программ требуют, чтобы работал хотя бы интерфейс обратной связи (loopback) (т.е. создание сетевых соединений внутри вашего ПК), так что эта опция в принципе является обязательной. options INET6 # IPv6 communications protocols Включает поддержку коммуникационных протоколов IPv6. options FFS # Berkeley Fast Filesystem Включает поддержку основной файловой системы. Не удаляйте эту опцию, если вы планируете загружаться с жесткого диска. + options SOFTUPDATES # Enable FFS Soft Updates support + + Этот параметр включает в ядре технологию Soft Updates, которая + повышает скорость записи на диски. Несмотря на то, что эта технология + включена в ядре, она должна быть включена для отдельных дисков. + Просмотрите вывод команды &man.mount.8; чтобы определить, включены ли + Soft Updates для дисков вашей системы. Если вы не увидите параметр + soft-updates, вам будет необходимо активировать его + при помощи команды &man.tunefs.8; (для существующих файловых систем) или + команды &man.newfs.8; (для новых файловых систем). + options UFS_ACL # Support for access control lists Этот параметр, присутствующий только в &os; 5.X, включает в ядре поддержку списков управления доступом (ACL). Основывается на использовании расширенных атрибутов и UFS2, детальное описание вы сможете найти в . ACL включены по умолчанию и не должны выключаться в случае, если они ранее использовались на файловой системе, так как это удалит списки управления доступом и изменит то, как защищены файлы, непредсказуемым образом. options UFS_DIRHASH # Improve performance on big directories Эта опция включает функциональность, которая повышает скорость дисковых операций на больших каталогах в обмен на использование дополнительной памяти. Для большого сервера или рабочей станции рекомендуется оставить ее включенной, и выключить для системы, для которой более приоритетна память, чем скорость доступа к дискам, например для брандмауэра. - options SOFTUPDATES # Enable FFS Soft Updates support - - Этот параметр включает в ядре технологию Soft Updates, которая - повышает скорость записи на диски. Несмотря на то, что эта технология - включена в ядре, она должна быть включена для отдельных дисков. - Просмотрите вывод команды &man.mount.8; чтобы определить, включены ли - Soft Updates для дисков вашей системы. Если вы не увидите параметр - soft-updates, вам будет необходимо активировать его - при помощи команды &man.tunefs.8; (для существующих файловых систем) или - команды &man.newfs.8; (для новых файловых систем). - options MD_ROOT # MD is a potential root device Этот параметр включает поддержку использования дисков в памяти для корневой файловой системы. параметры ядра NFS параметры ядра NFS_ROOT options NFSCLIENT # Network Filesystem Client options NFSSERVER # Network Filesystem Server options NFS_ROOT # NFS usable as /, requires NFSCLIENT Сетевая файловая система. Если вы не планируете монтировать разделы с файлового сервера &unix; через TCP/IP, вы можете исключить этот параметр из конфигурационного файла ядра. параметры ядра MSDOSFS options MSDOSFS # MSDOS Filesystem Файловая система &ms-dos;. Если вы не собираетесь монтировать форматированный в DOS раздел жесткого диска в момент загрузки, вы можете безопасно закомментировать этот параметр. Необходимый модуль будет автоматически загружен, когда вы в первый раз смонтируете раздел DOS, так, как это описано ниже. Кроме того, замечательный пакет emulators/mtools позволяет получить доступ к DOS дискетам без необходимости монтировать и размонтировать их (и не требует наличия MSDOSFS). options CD9660 # ISO 9660 Filesystem Файловая система ISO 9660 для компакт-дисков. Если у вас нет привода CDROM или вы будете лишь изредка монтировать компакт-диски с данными, закомментируйте эту строку, так как необходимый модуль будет загружен автоматически при первом монтировании компакт-диска с данными. Для использования звуковых компакт-дисков эта файловая система не потребуется. options PROCFS # Process filesystem Файловая система процессов. Это виртуальная файловая система монтируемая в /proc, которая позволяет таким приложениям, как &man.ps.1; выдавать вам больше информации о запущенных процессах. В &os; 5.X и выше, использование PROCFS не требуется, так как большинство мониторинговых и отладочных инструментов было адаптировано для работы без PROCFS: в отличие от &os; 4.X, новые системы &os; 5.X по умолчанию не монтируют файловую систему процессов. Более того, ядра 6.X-CURRENT, которые используют PROCFS, должны также включать поддержку PSEUDOFS: options PSEUDOFS # Pseudo-filesystem framework PSEUDOFS недоступна в &os; 4.X. options GEOM_GPT # GUID Partition Tables. Этот параметр делает возможным наличие большого количества разделов на одном диске. options COMPAT_43 # Compatible with BSD 4.3 [KEEP THIS!] Совместимость с 4.3BSD. Не выключайте эту опцию; некоторые приложения будут вести себя странно, если этой опции не будет в ядре. options COMPAT_FREEBSD4 # Compatible with &os;4 Эта опция требуется в &os; 5.X для платформ &i386; и Alpha для поддержки приложений, собранных на более старых версиях &os;, которые используют старые интерфейсы вызовов. Рекомендуется использовать данную опцию на всех системах на платформах &i386; и Alpha, на которых могут запускаться старые приложения; платформы, поддержка которых появилась только в &os; 5.X, например ia64 и &sparc64;, не требуют этой опции. options SCSI_DELAY=15000 # Delay (in ms) before probing SCSI Этот параметр заставляет ядро приостановиться на 15 секунд перед тем, как идентифицировать каждое устройство SCSI в вашей системе. Если у вас установлены только жесткие диски IDE, вы можете игнорировать эту опцию, в противном случае, возможно, вы захотите уменьшить это число, например до 5 секунд, для того, чтобы ускорить загрузку. Естественно, что если вы сделаете это, а у &os; появятся проблемы с распознанием ваших устройств SCSI, необходимо будет увеличить этот параметр. options KTRACE # ktrace(1) support Включает поддержку трассировки процессов, что удобно при отладке. options SYSVSHM # SYSV-style shared memory Этот параметр предоставляет поддержку разделяемой памяти System V. Наиболее распространенное применение этого — расширение XSHM в X, которое многие приложения, интенсивно работающие с графикой, будут автоматически использовать для повышения скорости работы. Если вы используете X, эта опция будет необходима. options SYSVMSG # SYSV-style message queues Поддержка сообщений System V. Этот параметр добавляет в ядро всего лишь несколько сотен байт. options SYSVSEM # SYSV-style semaphores Поддержка семафоров System V. Не настолько часто используемая возможность, но в ядро добавляет всего несколько сотен байт. Команда &man.ipcs.1; с параметром покажет все процессы, которые используют любую из этих возможностей System V. options _KPOSIX_PRIORITY_SCHEDULING # POSIX P1003_1B real-time extensions Расширения реального времени, добавленные 1993 &posix;. Определенные приложения из коллекции используют их, например &staroffice;. options KBD_INSTALL_CDEV # install a CDEV entry in /dev Этот параметр относится к клавиатуре. Он добавляет CDEV в /dev. options AHC_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~128k to driver. options AHD_REG_PRETTY_PRINT # Print register bitfields in debug # output. Adds ~215k to driver. Распечатка регистров для облегчения отладки. options ADAPTIVE_GIANT # Giant mutex is adaptive. Giant — имя механизма защиты (спящего мьютекса) для крупных наборов ресурсов ядра. На нынешний момент Giant представляется фактически непригодным для использования в связи с серьезными потерями в производительности, и активно заменяется на механизмы, защищающие отдельные ресурсы ядра. Параметр ADAPTIVE_GIANT включает Giant в число адаптивных мьютексов: в случае, когда нить ядра нуждается в Giant, а он уже захвачен нитью, выполняющейся на другом процессоре, первая нить будет продолжать выполнение и ждать освобождения Giant. В норме нить должна была бы уснуть, пока не настанет очередной момент ее выполнения. Если вы не уверены, оставьте этот параметр в покое. kernel options SMP device apic # I/O APIC Устройство apic разрешает использование набора I/O APIC для распределения прерываний. Оно может быть использовано как с однопроцессорными, так и с многопроцессорными ядрами (для последних наличие apic является обязательным). Для поддержки многопроцессорности добавьте строку options SMP. device isa Все компьютеры, поддерживаемые &os;, имеют хотя бы одно устройство ISA. Не удаляйте эту строку, даже если в вашем компьютере нет слотов ISA. Для архитектуры IBM PS/2 (Микроканальная Архитектура (MCA)), &os; предоставляет ограниченную поддержку данной шины. За дальнейшей информацией о поддержке MCA обратитесь к файлу /usr/src/sys/i386/conf/NOTES. device eisa Включите эту опцию если у вас материнская плата EISA. Это включает автоопределение и конфигурирование поддержки всех устройств на шине EISA. device pci Включите этот параметр, если у вас материнская плата с поддержкой PCI. Это включит автоопределение карт PCI и проксирование из шины PCI в шину ISA. - device agp - Включите эту опцию, если у вас есть AGP карта в системе. Это включит - поддержку AGP и AGP GART для тех карт, которые поддерживают эту - возможность. # Floppy drives device fdc Контроллер флоппи-диска. # ATA and ATAPI devices device ata Этот драйвер поддерживает все устройства ATA и ATAPI. Вам необходима только одна строка device ata в ядре для того, чтобы обнаружить все PCI устройства ATA/ATAPI в современных машинах. device atadisk # ATA disk drives Эта строка необходима вместе с device ata для поддержки дисков ATA. device ataraid # ATA RAID drives Эта строка необходима вместе с device ata для поддержки дисков ATA RAID. device atapicd # ATAPI CDROM drives Поддержка приводов ATAPI CDROM. Используется вместе с device ata. device atapifd # ATAPI floppy drives Поддержка флоппи-приводов ATAPI. Используется вместе с device ata. device atapist # ATAPI tape drives Поддержка ленточных приводов ATAPI (стримеров). Используется вместе с device ata. options ATA_STATIC_ID # Static device numbering Заставляет драйвер нумеровать устройства статически; в противном случае происходит динамическая нумерация. # SCSI Controllers device ahb # EISA AHA1742 family device ahc # AHA2940 and onboard AIC7xxx devices device ahd # AHA39320/29320 and onboard AIC79xx devices device amd # AMD 53C974 (Teckram DC-390(T)) device isp # Qlogic family device mpt # LSI-Logic MPT-Fusion #device ncr # NCR/Symbios Logic device sym # NCR/Symbios Logic (newer chipsets) device trm # Tekram DC395U/UW/F DC315U adapters device adv # Advansys SCSI adapters device adw # Advansys wide SCSI adapters device aha # Adaptec 154x SCSI adapters device aic # Adaptec 15[012]x SCSI adapters, AIC-6[23]60. device bt # Buslogic/Mylex MultiMaster SCSI adapters device ncv # NCR 53C500 device nsp # Workbit Ninja SCSI-3 device stg # TMC 18C30/18C50 Контроллеры SCSI. Закомментируйте те, которых у вас в системе нет. Если у вас в системе исключительно IDE устройства, вы можете удалить все эти строки. # SCSI peripherals device scbus # SCSI bus (required for SCSI) device ch # SCSI media changers device da # Direct Access (disks) device sa # Sequential Access (tape etc) device cd # CD device pass # Passthrough device (direct SCSI access) device ses # SCSI Environmental Services (and SAF-TE) Периферийные устройства SCSI. Опять-таки, закомментируйте те, которых у вас в системе нет, или, если у вас в наличии исключительно IDE, можете удалить все. USB &man.umass.4; драйвер (и некоторые другие драйверы) используют подсистему SCSI, хотя и не являются настоящими SCSI устройствами. Следовательно, вам необходимо сохранить поддержку SCSI, если какой-либо из этих драйверов включен в конфигурацию ядра. # RAID controllers interfaced to the SCSI subsystem device amr # AMI MegaRAID +device arcmsr # Areca SATA II RAID device asr # DPT SmartRAID V, VI and Adaptec SCSI RAID device ciss # Compaq Smart RAID 5* device dpt # DPT Smartcache III, IV - See NOTES for options device hptmv # Highpoint RocketRAID 182x device iir # Intel Integrated RAID device ips # IBM (Adaptec) ServeRAID device mly # Mylex AcceleRAID/eXtremeRAID device twa # 3ware 9000 series PATA/SATA RAID # RAID controllers device aac # Adaptec FSA RAID device aacp # SCSI passthrough for aac (requires CAM) device ida # Compaq Smart RAID device mlx # Mylex DAC960 family device pst # Promise Supertrak SX6000 device twe # 3ware ATA RAID Поддерживаемые RAID-контроллеры. Если у вас нет таковых, можете их закомментировать или удалить эти строки. # atkbdc0 controls both the keyboard and the PS/2 mouse device atkbdc # AT keyboard controller Контроллер клавиатуры (atkbdc) предоставляет средства ввода/вывода для клавиатуры AT и PS/2 устройств. Этот контроллер необходим драйверу клавиатуры (atkbd) и PS/2 устройств (psm). device atkbd # AT keyboard Драйвер atkbd вместе с контроллером atkbdc предоставляет доступ к клавиатуре AT 84 или улучшенной клавиатуре AT, которая подключена к контроллеру AT клавиатуры. device psm # PS/2 mouse Используйте это устройство, если ваша мышь включается в порт PS/2. device vga # VGA video card driver Драйвер видеокарты. # splash screen/screen saver device splash # Splash screen and screen saver support Заставка при загрузке. Хранители экрана также требуют этого устройства. В &os; 4.X используйте строку pseudo-device splash. # syscons is the default console driver, resembling an SCO console device sc sc — это драйвер консоли по умолчанию, который имитирует консоль SCO. Так как большая часть консольных полноэкранных приложений обращаются к консоли через терминальную библиотеку termcap, вас не должно волновать, будете ли вы использовать этот драйвер, либо драйвер vt, который является VT220-совместимым драйвером консоли. Если у вас возникнут какие-либо проблемы с приложениями, работающими с этим драйвером консоли, установите переменную окружения TERM в значение scoansi. # Enable this for the pcvt (VT220 compatible) console driver #device vt #options XSERVER # support for X server on a vt console #options FAT_CURSOR # start with block cursor VT220-совместимый драйвер консоли, обратно совместимый с VT100/102. Он работает лучше на некоторых лэптопах, у которых возникают проблемы несовместимости с sc. Также, установите переменную окружения TERM в значение vt100 или vt220. Этот драйвер также может быть полезен в случаях подключения к большому количеству различных машин через сеть, на которых параметры для устройства sc для termcap или terminfo могут отсутствовать — vt100 присутствует практически на любой платформе. + device agp + + Включите эту опцию, если у вас есть AGP карта в системе. Это включит + поддержку AGP и AGP GART для тех карт, которые поддерживают эту + возможность. + APM # Power management support (see NOTES for more options) #device apm Поддержка Advanced Power Management. Чаще всего используется в лэптопах, хотя в ядре GENERIC &os; 5.X и выше отключена по умолчанию. # Add suspend/resume support for the i8254. device pmtimer Устройство таймера для управления энергопотреблением, APM и ACPI. # PCCARD (PCMCIA) support # PCMCIA and cardbus bridge support device cbb # cardbus (yenta) bridge device pccard # PC Card (16-bit) bus device cardbus # CardBus (32-bit) bus Поддержка PCMCIA. Включите ее, если вы используете лэптоп. # Serial (COM) ports device sio # 8250, 16[45]50 based serial ports Четыре последовательных порта, которые известны как COM порты в мире &ms-dos;/&windows; Если у вас есть внутренний модем на COM4 и последовательный порт COM2, вам понадобится поменять IRQ модема на 2 (по непонятным техническим причинам IRQ2 = IRQ9) для того, чтобы получить к нему доступ из &os;. Если у вас есть многопортовая карта с последовательными портами, ознакомьтесь с &man.sio.4; чтобы узнать корректные значения для добавления в /boot/device.hints. Некоторые видеокарты (в частности те, что используют чипы S3) используют адреса ввода/вывода в форме 0x*2e8 и, так как многие дешевые последовательные карты не полностью раскодируют шестнадцатибитное пространство адресов ввода/вывода, они конфликтуют с этими картами, в итоге COM4 оказывается практически недоступным. Каждый последовательный порт требует уникального IRQ (кроме тех случаев, когда вы используете мультипортовую карту, которая поддерживает совместное использование прерываний), поэтому значения IRQ по умолчанию для COM3 и COM4 не могут быть использованы. # Parallel port device ppc Интерфейс параллельного порта на шине ISA. device ppbus # Parallel port bus (required) Поддержка шины параллельного порта. device lpt # Printer Поддержка принтеров на параллельном порту. Все три последних устройства необходимы для поддержка принтеров на параллельном порту. device plip # TCP/IP over parallel Драйвер TCP/IP через параллельный порт. device ppi # Parallel port interface device Поддержка ввода/вывода общего назначения (geek port) + IEEE1284 ввода/вывода. #device vpo # Requires scbus and da zip drive Драйвер привода Iomega Zip. Требует наличия scbus и da. Наилучшая производительность достигается с портами в режиме EPP 1.9. #device puc Раскомментируйте это устройство, если у вас есть простая последовательная или параллельная PCI карта, поддерживаемая драйвером &man.puc.4;. # PCI Ethernet NICs. device de # DEC/Intel DC21x4x (Tulip) device em # Intel PRO/1000 adapter Gigabit Ethernet Card device ixgb # Intel PRO/10GbE Ethernet Card device txp # 3Com 3cR990 (Typhoon) device vx # 3Com 3c590, 3c595 (Vortex) Драйвера сетевых карт PCI. Закомментируйте или удалите драйвера тех карт, которые отсутствуют в вашей системе. # PCI Ethernet NICs that use the common MII bus controller code. # NOTE: Be sure to keep the 'device miibus' line in order to use these NICs! device miibus # MII bus support Поддержка шины MII требуется для некоторых PCI 10/100 Ethernet карт, которые используют MII-совместимые передатчики или реализуют интерфейс управления передатчиком, который имитирует MII. Добавление device miibus в конфигурационный файл ядра включает поддержку стандартного API miibus и всех драйверов PHY, включая стандартный для тех PHY, которые не обрабатываются специфическим образом конкретным драйвером. - device dc # DEC/Intel 21143 and various workalikes -device miibus # MII bus support -device bfe # Broadcom BCM440x 10/100 Ethernet + device bfe # Broadcom BCM440x 10/100 Ethernet device bge # Broadcom BCM570xx Gigabit Ethernet device dc # DEC/Intel 21143 and various workalikes device fxp # Intel EtherExpress PRO/100B (82557, 82558) +device lge # Level 1 LXT1001 gigabit ethernet +device nge # NatSemi DP83820 gigabit ethernet device pcn # AMD Am79C97x PCI 10/100 (precedence over 'lnc') device re # RealTek 8139C+/8169/8169S/8110S device rl # RealTek 8129/8139 device sf # Adaptec AIC-6915 (Starfire) device sis # Silicon Integrated Systems SiS 900/SiS 7016 device sk # SysKonnect SK-984x & SK-982x gigabit Ethernet device ste # Sundance ST201 (D-Link DFE-550TX) device ti # Alteon Networks Tigon I/II gigabit Ethernet device tl # Texas Instruments ThunderLAN device tx # SMC EtherPower II (83c170 EPIC) +device vge # VIA VT612x gigabit ethernet device vr # VIA Rhine, Rhine II device wb # Winbond W89C840F device xl # 3Com 3c90x (Boomerang, Cyclone) Драйвера, которые используют контроллер шины MII. # ISA Ethernet NICs. pccard NICs included. device cs # Crystal Semiconductor CS89x0 NIC # 'device ed' requires 'device miibus' device ed # NE[12]000, SMC Ultra, 3c503, DS8390 cards device ex # Intel EtherExpress Pro/10 and Pro/10+ device ep # Etherlink III based cards device fe # Fujitsu MB8696x based cards device ie # EtherExpress 8/16, 3C507, StarLAN 10 etc. device lnc # NE2100, NE32-VL Lance Ethernet cards device sn # SMC's 9000 series of Ethernet chips device xe # Xircom pccard Ethernet # ISA devices that use the old ISA shims #device le Драйвера сетевых карт ISA. Ознакомьтесь с файлом /usr/src/sys/i386/conf/NOTES, чтобы узнать, какие сетевые карты каким драйвером поддерживаются. # Wireless NIC cards device wlan # 802.11 support device an # Aironet 4500/4800 802.11 wireless NICs. device awi # BayStack 660 and others device wi # WaveLAN/Intersil/Symbol 802.11 wireless NICs. #device wl # Older non 802.11 Wavelan wireless NIC. Поддержка различных беспроводных карт. device mem # Memory and kernel memory devices Устройства системной памяти. device io # I/O device Этот параметр позволяет процессу получение привилегий ввода/вывода. Он полезен для написания пользовательских программ, работающих с оборудованием непосредственно. Необходим для работы X Window system. device random # Entropy device Генератор случайных чисел для криптографической защиты. device ether # Ethernet support ether необходим лишь в случае, если у вас есть сетевая карта. Он включает поддержку стандартного кода протокола Ethernet. В &os; 4.X используйте строку pseudo-device ether. device sl # Kernel SLIP sl — это поддержка SLIP. SLIP был практически вытеснен PPP, который легче настраивается, лучше подходит для соединений модем-модем и имеет больше возможностей. В &os; 4.X используйте строку pseudo-device sl. device ppp # Kernel PPP Поддержка PPP в ядре для соединений dial-up. Также существует версия PPP, реализованного как приложение, использующее tun, и предлагающее большую гибкость и большее количество возможностей, как, например, соединение при необходимости (наличии обращения к сети). В &os; 4.X используйте строку pseudo-device ppp. device tun # Packet tunnel. Используется пользовательским программным обеспечением PPP. Обратитесь к разделу PPP этой книги за дальнейшей информацией. В &os; 4.X используйте строку pseudo-device tun. device pty # Pseudo-ttys (telnet etc) псевдо-терминал или имитированный порт для входа. Используется входящими telnet и rlogin-сессиями, приложением xterm и некоторыми другими приложениями, такими как Emacs. В &os; 4.X используйте строку pseudo-device pty number. Число после pty определяет количество pty, которое необходимо создать. Если вам необходимо более, чем стандартное (16) количество окон xterm и/или удаленных входов, увеличьте это число в соответствии с вашими потребностями, но не более чем до 256. device md # Memory disks Псевдоустройства дисков в памяти. В &os; 4.X используйте строку pseudo-device md device gif # IPv6 and IPv4 tunneling Поддержка туннелирования IPv6 через IPv4, IPv4 через IPv6, IPv4 через IPv4 и IPv6 через IPv6. Начиная с &os; 4.4 устройство gif является автоклонируемым и вы должны использовать строку pseudo-device gif. Более ранним версиям &os; 4.X требуется номер, например pseudo-device gif 4. device faith # IPv6-to-IPv4 relaying (translation) Это псевдоустройство захватывает пакеты, которые были посланы ему и перенаправляет их даемону трансляции IPv4/IPv6. В &os; 4.X используйте строку pseudo-device faith 1 # The `bpf' device enables the Berkeley Packet Filter. # Be aware of the administrative consequences of enabling this! +# Note that 'bpf' is required for DHCP. device bpf # Berkeley packet filter Фильтр пакетов Berkeley. Это псевдоустройство позволяет переводить сетевые интерфейсы в неразборчивый (promiscuous) режим, в котором перехватывается любой пакет в широковещательной сети (например ethernet). Эти пакеты могут быть сохранены на диск и/или исследованы при помощи &man.tcpdump.1;. В &os; 4.X используйте строку pseudo-device bpf. Устройство &man.bpf.4; также используется программой &man.dhclient.8; для того, чтобы получить адрес шлюза по умолчанию и т.п. Если вы используете DCHP, не удаляйте эту опцию. # USB support device uhci # UHCI PCI->USB interface device ohci # OHCI PCI->USB interface +#device ehci # EHCI PCI->USB interface (USB 2.0) device usb # USB Bus (required) #device udbp # USB Double Bulk Pipe devices device ugen # Generic device uhid # Human Interface Devices device ukbd # Keyboard device ulpt # Printer device umass # Disks/Mass storage - Requires scbus and da device ums # Mouse device urio # Diamond Rio 500 MP3 player device uscanner # Scanners # USB Ethernet, requires mii device aue # ADMtek USB Ethernet device axe # ASIX Electronics USB Ethernet +device cdce # Generic USB over Ethernet device cue # CATC USB Ethernet device kue # Kawasaki LSI USB Ethernet device rue # RealTek RTL8150 USB Ethernet Поддержка различных USB устройств. # FireWire support device firewire # FireWire bus code device sbp # SCSI over FireWire (Requires scbus and da) device fwe # Ethernet over FireWire (non-standard!) Поддержка различных устройств Firewire. За дальнейшей информацией о дополнительных устройствах, поддерживаемых &os;, обратитесь к файлу /usr/src/sys/i386/conf/NOTES. Конфигурации с большим количеством оперативной памяти (<acronym>PAE</acronym>) Расширения физического адресного пространства (Physical Address Extensions (PAE)) Конфигурации с большим количеством оперативной памяти Машины с большим количеством оперативной памяти, в которых требуется более 4 гигабайт в пользовательском адресном пространстве и адресном пространстве ядра (User+Kernel Virtual Address, KVA) в обычном случае не смогут использовать более 4 гигабайт. Для решения этой проблемы Intel добавили поддержку 36-битной адресации в &pentium; Pro и более поздних моделях процессоров. Расширение физического адресного пространства (PAE) в процессорах &intel; &pentium; Pro и более поздних позволяет использовать до 64 гигабайт оперативной памяти. &os; имеет поддержку этой возможности посредством опции ядра , доступной в &os; 4.9-RELEASE, &os; 5.1-RELEASE и более поздних. В связи с ограничениями архитектуры Intel, не делается никакого различия между памятью ниже или выше 4 гигабайт. Память, размещенная выше 4 гигабайт, просто добавляется к доступной памяти. Для того, чтобы включить PAE в ядре, просто добавьте приведенную строку в конфигурационный файл ядра: options PAE Поддержка PAE в &os; существует только для процессоров &intel; IA-32. Также следует заметить, что PAE в &os; не было полностью протестировано и должно считаться находящимся в состоянии бета-тестирования по сравнению с другими, стабильными возможностями &os;. Поддержка PAE в &os; имеет следующие ограничения: Процесс не может получить доступ к более, чем 4 гигабайтам пространства VM. KLD модули не могут быть загружены в ядро с включенной поддержкой PAE из-за разницы в окружении для сборки модулей и самого ядра. Драйверы устройств, которые не используют интерфейс &man.bus.dma.9;, приведут к повреждению информации в ядре с включенным PAE. Не рекомендуется использовать такие драйверы. По этой причине в &os; 5.X включен конфигурационный файл ядра PAE, из которого удалены все драйверы, о которых известно, что они не работают при включенной поддержке PAE. Некоторые системные переменные определяют использование ресурсов памяти по количеству доступной физической памяти. Такие переменные могут привести к ненужному чрезмерному выделению памяти из-за особенностей работы системы PAE. Один из таких примеров — переменная , которая управляет максимальным количеством vnode, разрешенных в ядре. Рекомендуется установить эту и подобные ей переменные вручную в адекватные значения. Возможно, понадобится увеличить пространство виртуальных адресов ядра (KVA) или уменьшить какую-либо переменную (см. выше), значение которой было неоправданно велико и могло привести к исчерпанию KVA. Для этого может быть использована опция ядра . В случае сомнений относительно производительности и стабильности рекомендуется обратиться к странице руководства &man.tuning.7;. Страница руководства &man.pae.4; содержит свежую информацию о поддержке PAE в &os;. Создание файлов устройств файлы устройств MAKEDEV Если вы работаете с &os; 5.0 или старше, вы можете пропустить этот раздел. Эти версии используют &man.devfs.5; для выделения файлов устройств прозрачно для пользователя. Практически все устройства в ядре имеют соответствующий файл, называемый node, в каталоге /dev. Они выглядят как обычные файлы, но на самом деле это специальные точки входа в ядро, которые необходимы приложениям для доступа к устройствам. Скрипт /dev/MAKEDEV, который выполняется при первой установке операционной системы, создает практически все поддерживаемые файлы устройств. Однако он не создаёт их все, таким образом, когда вы добавляете поддержку нового устройства, следует убедиться, что соответствующие файлы есть в /dev, и если их там нет, создать их. Вот простой пример: Предположим, вы добавили поддержку привода IDE CD-ROM в ядро. Строка, которую вы добавили: device acd0 Это означает, что вам необходимо проверить наличие файлов, название которых начинаются строкой acd0 в каталоге /dev, за которой, возможно, следует буква, например c, или предшествует r, что означает, что это сырое (raw) устройство, которое используется для прямого доступа к аппаратному устройству. Если оказывается, что таких файлов в каталоге нет, вы должны перейти в каталог /dev и набрать: MAKEDEV &prompt.root; sh MAKEDEV acd0 Когда скрипт завершит работу, вы увидите, что файлы acd0c и racd0c созданы, соответственно скрипт отработал корректно. Для звуковых карт нижеследующая команда создает необходимые файлы: &prompt.root; sh MAKEDEV snd0 Если вы создаете файлы устройств для таких устройств, как звуковые карты и если другие люди имеют доступ к вашей машине, было бы не лишним защитить их от использования извне при помощи добавления их в файл /etc/fbtab. За дальнейшей информацией обратитесь к странице руководства &man.fbtab.5;. Следуйте этой простой процедуре для любых других устройств, которые отсутствуют в ядре GENERIC и которые не имеют соответствующих файлов в /dev. Все контроллеры SCSI используют одинаковый набор файлов в /dev, поэтому вам не нужно создавать их. Кроме того, сетевые карты и псевдоустройства SLIP и PPP не имеют вхождений в /dev, поэтому и о них вы не должны беспокоиться. Решение проблем Существует пять категорий проблем, которые могут возникнуть при сборке собственного ядра. Вот они: Не удаётся отработать команде config: Если команда &man.config.8; не может отработать, то, скорее всего, вы допустили где-нибудь маленькую ошибку. К счастью, &man.config.8; выведет номер проблемной строки, поэтому вы можете быстро найти строку, содержащую ошибку. Например, если вы видите: config: line 17: syntax error Убедитесь, что опция введена верно путём сравнения с файлом GENERIC или другим источником. Не удаётся отработать команде make: Если не удаётся отработать команде make, обычно это означает ошибку в описании конфигурации ядра, которая не достаточно тривиальна для того, чтобы &man.config.8; мог обнаружить её. Опять-таки, просмотрите файл конфигурации, и, если вы все еще не можете решить проблему, напишите письмо в &a.questions;, включив в письмо файл конфигурации ядра. Скорее всего проблема будет решена быстро. Не удаётся установить новое ядро: Если ядро собралось без проблем, но не удалось его установить (команда make install или make installkernel сообщила об ошибке), первое, что необходимо проверить, не запущена ли ваша система с уровнем безопасности 1 или выше (обратитесь к &man.init.8;). Процедура установки пробует снять флаг неизменяемости с текущего ядра и установить этот флаг для нового ядра. Так как на уровне безопасности 1 и выше запрещено снятие флага неизменяемости для всех файлов в системе, установка должна производиться на уровне безопасности 0 и ниже. Информация выше применима только к &os; 4.X и более ранним версиям. &os; 5.X, как и более поздние версии, не устанавливает этот флаг на ядро и ошибка при установке ядра возможно указывает на более фундаментальную проблему. Ядро не загружается: Если ваше новое ядро не загружается или ему не удаётся обнаружить ваши устройства — не паникуйте! К счастью, в &os; существует отличный механизм для восстановления после установки несовместимого ядра. Просто выберите ядро, которое хотите загрузить, в загрузчике &os;. Доступ к нему вы можете получить, когда система делает обратный отсчёт от 10 в меню загрузки. Нажмите любую клавишу, кроме Enter, введите unload и наберите boot /boot/kernel.old/kernel, или используйте любое другое ядро, которое загрузится без проблем. Во время переконфигурирования ядра всегда полезно оставлять копию ядра, о котором известно, что оно рабочее. После загрузки с рабочим ядром вы можете проверить ваш файл конфигурации и попробовать собрать ядро опять. Очень полезным в данном случае окажется файл /var/log/messages, в котором, среди других записей, имеются сообщения ядра от каждой успешной загрузки. Также, команда &man.dmesg.8; выведет сообщения ядра от текущей загрузки. Если у вас возникли проблемы со сборкой ядра, убедитесь, что вы сохранили ядро GENERIC или другое рабочее ядро под другим именем, чтобы оно не было удалено при следующей сборке. Вы не можете использовать kernel.old, потому что при установке нового ядра kernel.old перезаписывается последним установленным ядром, которое может оказаться нерабочим. Также, как можно скорее переместите рабочее ядро в /boot/kernel, так как некоторые команды, такие как &man.ps.1; будут работать некорректно. Для этого просто переместите каталог, содержащий работоспособное ядро: &prompt.root; mv /boot/kernel /boot/kernel.bad &prompt.root; mv /boot/kernel.good /boot/kernel В версиях &os; до 5.X, для восстановления работоспособного ядра используйте команду: &prompt.root; chflags noschg /kernel Если вы обнаружите, что не можете этого сделать, скорее всего вы работаете на уровне безопасности (&man.securelevel.8;) большем нуля. Отредактируйте переменную kern_securelevel в файле /etc/rc.conf, установите её в -1 и перезагрузитесь. Вы можете установить её в предыдущее состояние, когда будете довольны своим новым ядром. И, если вы захотите закрыть ваше новое ядро или любой другой файл, таким образом, что он не сможет быть перемещен или изменен, используйте следующую команду: &prompt.root; chflags schg /kernel Ядро работает, но &man.ps.1; больше не работает: Если вы установили версию ядра отличную от той, с которой были собраны ваши системные утилиты, например, ядро от 5.X на системе 4.X, большая часть системных команд, таких как &man.ps.1; и &man.vmstat.8; не будут больше работать. Вам потребуется перекомпилировать и установить систему той же версии исходных текстов, что и ядро. Это одна из причин, по которой не следует использовать версию ядра, отличную от версии всей остальной системы. diff --git a/ru_RU.KOI8-R/books/handbook/preface/preface.sgml b/ru_RU.KOI8-R/books/handbook/preface/preface.sgml index d6ddaf64f5..e607d9986b 100644 --- a/ru_RU.KOI8-R/books/handbook/preface/preface.sgml +++ b/ru_RU.KOI8-R/books/handbook/preface/preface.sgml @@ -1,667 +1,676 @@ Предисловие Целевая аудитория Люди, которые используют FreeBSD с недавнего времени, найдут, что первая часть этой книги проводит читателя через процесс установки FreeBSD и кратко освещает идеи и традиции, на которых базируется &unix;. Работа с этой частью требует несколько большего, чем просто желание исследовать – необходима возможность принимать к сведению новые идеи. Вторая, много большая часть Руководства, является всеобъемлющим справочником о всех темах, которые могут интересовать администраторов FreeBSD. Некоторые из глав этой части могут рекомендовать вам предварительное чтение других документов, о чём упоминается в кратком обзоре в начале каждой главы. Список рекомендуемой дополнительной литературы вы можете найти в . Изменения по сравнению со второй редакцией Третья редакция является кульминацией более чем двух лет работы отдельных членов проекта документации FreeBSD. Вот основные изменения в новой редакции: , Настройка и оптимизация, была расширена новой информацией о ACPI управлении питанием и ресурсами, системной утилите cron и дополнительных параметрах оптимизации ядра. , Безопасность, была расширена новой информацией о виртуальных частных сетях (VPN), списках контроля доступа файловой системы (ACL), и сообщениях безопасности. , Принудительный контроль доступа (MAC), новая глава этой редакции. Она описывает, что такое MAC и как этот механизм может быть использован для защиты системы FreeBSD. , Устройства хранения, была расширена новой информацией о устройствах хранения USB, образах файловой системы, квотах файловой системы, файловых системах в файлах и в сети, зашифрованных дисковых разделах. , Менеджер дискового пространства Vinum, новая глава этой редакции. В ней описано как использовать Vinum, менеджер логических томов, который предоставляет независимые от устройств логические диски и программные уровни RAID-0, RAID-1 и RAID-5. К , PPP и SLIP, был добавлен раздел о решении проблем. , Электронная почта, была расширена новой информацией об использовании альтернативных транспортных агентов, SMTP аутентификации, UUCP, fetchmail, procmail, и другими разделами повышенной сложности. , Сетевые серверы, появилась в этой редакции. Эта главы включает информацию о установке Apache HTTP Server, FTPd, и настройке Samba сервера для клиентов Microsoft Windows. Некоторые разделы были перемещены сюда из , Сложные вопросы работы в сети. , Сложные вопросы работы в сети, была расширена новой информацией об использовании устройств Bluetooth в FreeBSD, настройке беспроводных сетей, и сетях Asynchronous Transfer Mode (ATM). Был добавлен глоссарий, объединяющий информацию о технических терминах, используемых в книге. Множество эстетических улучшений были внесены в таблицы и иллюстрации этой книги. Изменения во второй редакции Вторая редакция является кульминацией более чем двухлетней работы членов Проекта документации FreeBSD. Нижеследующий список перечисляет все значительные изменения, внесенные в эту редакцию: Был добавлен полный указатель тем. Все ASCII-иллюстрации были заменены на графические. Был добавлен стандартный краткий обзор к каждому разделу для того, чтобы читатель мог получить представление о содержании раздела и о том, что необходимо знать для его изучения. Содержимое было логически реорганизовано на три части: В Начале, Системное администрирование и Приложения. (Установка FreeBSD) была полностью переписана, добавлено большое количество снимков экрана, чтобы облегчить понимание текста для новых пользователей. (Основы &unix;) была расширена и содержит дополнительную информацию о процессах, даемонах и сигналах. (Установка приложений: порты и пакеты) была расширена и содержит дополнительную информации об управлении бинарными пакетами. (X Window System) была полностью переписана и обращает больше внимания на современные технологии для рабочего стола, такие, как KDE и GNOME на &xfree86; 4.X. (Процесс загрузки FreeBSD) была расширена. (Устройства хранения) была составлена из того, что раньше было двумя различными главами: Диски и Резервное копирование. Мы считаем, что данные темы будут проще и более полно описаны как одна глава. Был добавлен раздел о программном и аппаратном RAID. (Последовательные коммуникации) была полностью реорганизована и обновлена для FreeBSD 4.X/5.X. (PPP и SLIP) была существенно обновлена. Было добавлено множество новых разделов в (Сложные вопросы работы в сети). (Электронная почта) была расширена, теперь она включает больше информации о настройке sendmail. (Работа с приложениями, написанными для &linux;) была дополнена включением информации об установке &oracle; и &sap.r3;. Следующие новые темы были рассмотрены в этой, второй, редакции: Настройка и оптимизация (). Мультимедиа () Структура этой книги Эта книга разбита на пять частей. В первой части, В начале, рассматривается установка и основные навыки использования FreeBSD. Предполагается, что читатель освоит эти разделы последовательно, возможно пропуская разделы, в которых обсуждаются уже знакомые для него темы. Вторая часть, Общие задачи, рассказывает о некоторых наиболее часто используемых возможностях FreeBSD. Этот раздел и все последующие могут быть прочитаны не по порядку. Каждая глава начинается с краткого обзора, который описывает, о чём говорится в ней и что читатель должен будет знать для прочтения этой главы. Это сделано для того, чтобы случайно встретивший этот материал читатель мог найти разделы, которые его интересуют. В третьей части, Системное администрирование, рассмотрены вопросы администрирования. В четвертой части, Сетевые коммуникации, охвачены темы, связанные с серверами и сетью. Пятая часть содержит приложения и справочную информацию. , Введение Знакомит пользователя с FreeBSD. Рассказывает об истории проекта FreeBSD, его задачах и модели разработки. , Установка Проводит пользователя через весь процесс установки. Обсуждаются также некоторые более сложные вопросы установки, такие как установка по последовательной консоли. , Основы &unix; Рассказывает об основных командах и функциональности операционной системы FreeBSD. Если вы знакомы с &linux; или другой &unix;-подобной операционной системой, возможно, вы пропустите эту главу. , Установка приложений: порты и пакеты Рассказывает о процессе установки программного обеспечения сторонних производителей с использованием Коллекции Портов FreeBSD и стандартных бинарных пакетов. , X Window System Описывает X Window System вообще и использование - &xfree86; под управлением FreeBSD в + X11 под управлением FreeBSD в частности. Также описывает популярные окружения рабочего стола, такие как KDE и GNOME. , Приложения для настольного компьютера Перечисляет некоторые популярные приложения для рабочей станции, такие как веб-браузеры и офисные пакеты и описывает процесс их установки на FreeBSD. , Мультимедиа Показывает, как настроить поддержку воспроизведения звука и видео на вашей системе. Также описывает некоторые примеры приложений для воспроизведения звука и видео. , Настройка ядра FreeBSD Объясняет, почему вам может понадобиться перенастроить ядро и детально описывает процесс настройки, сборки и установки нового ядра. , Печать Рассказывает об управлении принтерами в FreeBSD, включая информацию об титульных страницах, учёте использования принтеров и первоначальной настройке. , Двоичная совместимость с &linux; Описывает возможности &linux;-совместимости в FreeBSD. Также предоставляет детальные инструкции по установке многих популярных приложений для &linux;, таких как: &oracle;, &sap.r3; и &mathematica;. , Настройка и оптимизация Описывает всевозможные параметры настройки FreeBSD, которые может использовать системный администратор для оптимальной настройки системы. Также описывает различные конфигурационные файлы, используемые в FreeBSD и расположение этих файлов на диске. , Процесс загрузки &os; Рассказывает о процессе загрузки FreeBSD и объясняет, как управлять этим процессом при помощи различных настроек. , Пользователи и основы управления учётными записями Рассказывает о создании и управлении пользовательскими учётными записями. Также обсуждает установку ограничений ресурсов для пользователей и другие задачи управления пользователями. , Безопасность Описывает множество различных утилит, которые помогут вам поддерживать FreeBSD в безопасном, надёжном состоянии, включая - Kerberos, IPsec, OpenSSH и брандмауэры. + Kerberos, IPsec и OpenSSH. , Принудительный контроль доступа (MAC) Описывает что такое принудительный контроль доступа (Mandatory Access Control, MAC) и как этот механизм может быть использован для защиты системы FreeBSD. , Устройства хранения Описывает как управлять накопителями информации и файловыми системами в FreeBSD, включая физические диски, массивы RAID, оптические и ленточные носители, диски в оперативной памяти и сетевые файловые системы. , Менеджер дискового пространства Vinum Рассказывает как использовать Vinum, менеджер логических разделов, при помощи которого можно создавать и использовать независимые от устройств хранения логические диски и программно реализовывать RAID-0, RAID-1 и RAID-5. , Локализация — I18N/L10N использование и настройка Описывает использование FreeBSD с языками, отличными от английского. Рассказывает о локализации на уровне системы и отдельных приложений. , На переднем крае разработок Объясняет различия между FreeBSD-STABLE, FreeBSD-CURRENT и FreeBSD-RELEASE. Рассказывает, кому из пользователей будет полезно отслеживать версию системы в разработке и вкратце описывает этот процесс. , Последовательные соединения Объясняет, как подключать терминалы и модемы к вашей системе FreeBSD, как в серверном, так и в клиентском режиме. , PPP и SLIP Описывает использование PPP, SLIP или PPP через Ethernet для соединения с удалёнными системами при помощи FreeBSD. , Электронная почта Описывает использование различных компонентов почтового сервера и более углублённо рассматривает простые вопросы конфигурации для наиболее популярного программного обеспечения почтовых серверов: sendmail. , Сетевые серверы Предоставляет детальные инструкции и примеры файлов настройки для использования компьютера с FreeBSD в качестве файлового сервера (NFS), сервера доменных имен (DNS), сервера сетевой информационной системы (⋼), или сервера точного времени (ntpd). + + , Брандмауэры + + Описывает принципы, на которых основаны программные + брандмауэры, и содержит детали конфигурирования различных + брандмауэров, доступных в FreeBSD. + + + , Сложные вопросы работы в сети Рассматривает множество вопросов работы с сетью, включая совместный доступ компьютеров вашей локальной сети к интернет, расширенные вопросы маршрутизации, беспроводные соединения, bluetooth, ATM, IPv6 и многое другое. , Получение FreeBSD Перечисляет различные источники, из которых можно получить FreeBSD на CDROM или DVD, равно как и различные сайты в интернет, с которых можно скачать и установить FreeBSD. , Библиография Эта книга касается многих различных тем, которые могут сподвигнуть вас на более детальное изучение. Библиография перечисляет множество отличных книг, упоминаемых в тексте. , Ресурсы в интернет Описывает множество форумов, доступных для пользователей FreeBSD, где можно задать вопросы и поучаствовать в технических обсуждениях FreeBSD. , Ключи PGP Содержит ключи PGP некоторых разработчиков FreeBSD. Договоренности, используемые в этой книге Для того чтобы обеспечить целостность и простоту чтения текста в данной книге, мы применяем некоторые договорённости. Типографические договорённости Наклонный шрифт Наклонный шрифт используется для имен файлов, адресов в интернет (URL), выделенного текста и первого применения технических терминов. - Моноширинный шрифт + Моноширинный шрифт - Моноширинных шрифт используется для сообщений + Моноширинных шрифт используется для сообщений об ошибках, команд, имен пользователей, названий групп, названий устройств, переменных и фрагментов кода. Полужирный шрифт Полужирный шрифт используется для обозначения приложений, команд и параметров. Пользовательский ввод Клавиши представляются в виде полужирного текста для того, чтобы выделяться среди остального текста. Комбинации клавиш, которые должны вводиться одновременно, разделяются символом `+', например: Ctrl Alt Del Это будет означать, что пользователь должен нажать клавиши Ctrl, Alt и Del одновременно. Комбинации клавиш, которые должны вводиться последовательно, разделяются запятыми, например: Ctrl X , Ctrl S Это будет означать, что пользователь должен нажать Ctrl и X одновременно, после чего одновременно нажать Ctrl и S. Примеры Примеры, которые начинаются с E:\> обозначают команды &ms-dos;. Если не указано обратного, эти команды могут вводиться из окна Сеанс &ms-dos; в современных системах µsoft.windows;. E:\> tools\fdimage floppies\kern.flp A: Примеры, которые начинаются с &prompt.root; обозначают команды, которые должны быть запущены с правами суперпользователя в FreeBSD. Вы можете войти в систему как пользователь root для того, чтобы ввести эти команды или войти в систему обычным пользователем и использовать &man.su.1; для того, чтобы получить привилегии суперпользователя. &prompt.root; dd if=kern.flp of=/dev/fd0 Примеры, начинающиеся с &prompt.user;, указывают, что команда должна быть исполнена с правами обычного пользователя. Если не указано обратного, используется синтаксис C-shell для установки переменных окружения и других команд. &prompt.user; top Благодарности Книга, которую вы держите в руках являет собой результат труда многих сотен людей по всему миру. Не имеет значения, присылали ли они исправления опечаток или предоставляли целые главы, их труд был полезен. Несколько компаний поддерживали разработку этого документа, оплачивая авторам их труд, оплачивая публикацию и т.д. В частности, BSDi (в последствии приобретённая компанией Wind River Systems) оплачивала труд по улучшению этой книги участникам Проекта Документации FreeBSD, что в итоге сделало возможным выпуск первой печатной версии в марте 2000 года (ISBN 1-57176-241-8). Впоследствии компания Wind River Systems оплатила работу нескольких авторов по улучшению генерации книги в удобном для печати виде и добавлению нескольких глав. Кульминация этой работы являла собой публикацию второй печатной версии в ноябре 2001 года (ISBN 1-57176-303-1). В 2003-2004 годах FreeBSD Mall, Inc заплатила нескольким контрибьюторам за улучшение Handbook при подготовке к третьей редакции.