Издательский дом ООО "Гейм Лэнд"СПЕЦВЫПУСК ЖУРНАЛА ХАКЕР #69, АВГУСТ 2006 г.

последняя битва

ЕВГЕНИЙ ЗОБНИН АКА J1M

Спецвыпуск: Хакер, номер #069, стр. 069-026-4


[стили инициализации.]

Стиль инициализационных скриптов - это первое, что различается в Linux-дистрибутивах и является общим в BSD. Существует два стиля инициализации - SystemV и BSD. SystemV-стиль пришел к нам из оригинального UNIX и основан на понятии runlevel (наиболее часто употребляемый вариант перевода: «уровень запуска»). Скрипты SystemV представляют собой набор файлов-скриптов, каждый из которых ответственен за определенный этап инициализации (это может быть монтирование файловых систем, запуск сервисов и любая другая задача). В зависимости от уровня запуска стартует только заранее определенная часть этих скриптов (например, на уровне 2 скрипты, ответственные за поднятие сети, управления не получают). Привлекательность скриптов SystemV-стиля заключается в их гибкости. Пользователь может самостоятельно контролировать поведение системы на каждом этапе загрузки. Кроме того, SystemV-стиль идеально подходит для организации параллельной загрузки сервисов. Подавляющее большинство дистрибутивов Linux используют такой стиль инициализации.

BSD-стиль, как легко догадаться из названия, изначально использовался только в BSD-системах. В скриптах BSD-стиля нет понятия runlevel, как нет и модульности. После загрузки ядра, демон init передает управление скрипту /etc/rc, и тот проводит систему через все этапы инициализации. Достоинство такого подхода в простоте реализации и управления. Недостаток - в отсутствии гибкости. С другой стороны, BSD-скрипты со временем приобрели черты SystemV- скриптов, что легко заметить по наличию каталога /etc/rc.d. Сегодня файл /etc/rc - это всего лишь обертка, нужная для того, чтобы поочередно передавать управление скриптам из этого каталога, каждый из которых, как и в случае с SystemV, выполняет свою функцию. Это придает некоторую гибкость процессу настройки инициализации.

[система пакетного менеджмента.]

Вторая отличительная черта дистрибутива Linux - это система пакетного менеджмента. Практически все существующие способы установки ПО представлены в мире Linux. Это и пакеты, разворачивающиеся прямо в дерево файловой системы (rpm, deb, tgz), и пакеты, устанавливаемые в выделенные каталоги (на подобие «Program Files» из Windows), и BSD-подобные системы портов (вроде портов Gentoo или ArchLinux), и даже модули файловой системы, применяемые в некоторых LiveCD. Опять же, выбор практически неограничен. Причем особой популярностью у дистрибьюторов Linux пользуются пакеты форматов rpm и deb. В особенности первый, который был включен в стандарт LSB (Linux Standard Base). Учитывая тот факт, что пакет rpm имеет, наверное, самый противоречивый и запутанный формат, его популярность вызывает тревогу.

Что касается BSD, то здесь мы видим обратную картину, причем картину, одинаковую во всех BSD-отпрысках. Системы пакетного менеджмента BSD-систем основаны на понятии портов. Система портов представляет собой некий фреймворк, который позволяет скомпилировать и установить любой портированный программный пакет, используя единый интерфейс. Каждый BSD'шник знает, как легко найти и установить нужную программу через систему портов. Для этого потребуется выполнить всего три незамысловатых действия (на примере FreeBSD): находясь в каталоге /usr/ports, набрать команду «make search name=имя», перейти через дерево портов в нужный каталог и выполнить команду «make install». Это все: никаких команд с непонятными флагами и километровыми man-страницами, никаких поисков пакетов в Интернете - все просто и ясно. Более того, не возбраняется и установка перекомпилированных пакетов. Для выполнения этой операции предусмотрена команда pkg_add, которая, будучи запущенной с опцией '-r', вовсе освобождает пользователя от лишних телодвижений, автоматически выкачивая сам пакет и все его зависимости из сети.

Назад на стр. 069-026-3  Содержание  Вперед на стр. 069-026-5