MINIX3 операционная система
ФлагСайт русскоязычного сообщества разработчиков и пользователей операционной системы MINIX 3
  Навигация


Операционная система  MINIX 3

Новая система инициализации для ОС MINIX 3

1.1. Общее описание

Новая система инициализации максимально приближена к аналогам FreeBSD, Linux и т.п.

Это значит, что для всех запускаемых демонов и сервисов в каталогах /etc/rc.d и /usr/local/rc.d должны быть скрипты инициализации. Параметры для запуска и останова сервисов берутся из файла /etc/rc.conf. При загрузке и останове система сама производит останов и запуск необходимых сервисов.


1.2. Загрузка системы

При включени компьютера, после загрузки ядра Minix 3 вызывается сервис init. Он в числе прочего вызывает файл /etc/rc с параметром start. Этот файл (/etc/rc) является по сути обычным шелл скриптом. Он выполняет первичную инициализацию системы. Проверяет и монтирует файловые системы и т.п. Данный скрипт остался неизменным из старой версии. Единственное его отличие, в том, что в новой системе он в конце вместо /usr/etc/rc вызывает файл /etc/rc.sysinit


1.3 ./etc/rc.sysinit

/etc/rc.sysinit является обычным шелл скриптом. При загрузке системы он сначала очищает временные файлы, потом загружает генератор случайных чисел, потом устанавливает системные шрифты и карты клавиатуры, загружает сервис update, проверяет, необходимо ли загрузить сеть, и загружает ее. В конце он загружает syslogd. Потом проверяется параметр DAEMONS (из /etc/rc.conf) и если он не пустой, для каждого из перечисленных в нем сервисов выполняется загрузка.


Прои останове он выгружает генератор случайных чисел и отдает команду service shutdown.

Для загрузки и выгрузки сервисов и демонов, /etc/rc.sysinit использует персональные скрипты инициализации этих сервисов находящиеся в каталоге /etc/rc.d


2.1. Использование скриптов инициализации

В каталоге /etc/rc.d/ находятся персональные скрипты инициализации отдельных сервисов и демонов. Для программ устанавливаемых отдельно, тойже цели служет катклог /usr/local/etc/rc.d/. Все скрипты являются исполняемыми sh скриптами.


2.2. Запуск и Останов сервисов

Каждый из таких скриптов должен принимать первым параметром start или stop. В первом случае скрипт запустит сервис, во втором остановит. Кроме того некоторые из скриптов могут принмать в качестве параметра restart и другие.


Пользователь в процесе работы в системе имеет возможность запускать и останавливать сервисы и демоны, вызывая соответственно /etc/rc.d/service_name start или /etc/rc.d/service_name stop.


2.3. Конфигурационный файл

Параметры для скриптов инициализации хранятся в /etc/rc.conf. Этот файл имеет формат обычного текстового файла, в котором перечислены параметры. Каждый из параметров начинается с отдельной строки, и имеет вид:


PARAM_NAME=«VALUE»


где PARAM_NAME — имя параметра, а VAULE — его значение.


В данной версии системы инициализации есть только один глобальный параметр, который применяется для всех скриптов. Это параметр USERCOLOR. Его значения могут быть равны

YES и NO. Этот параметр указывает, следует ли использовать выделение цветом при запуске и останове сервисов.


Остальные параметры примееняемые в этом файле относятся к конкретным скриптам и сервисам и будут описаны ниже.


2.4. /etc/rc.d/random

Этот скрипт предназначен для запуска и останова генератора случайных чисел. Кроме того он выполняет сохранение и восстановления случайных данных. Этот скрипт автоматически вызывается при загрузке и останове системы. !!!ВНИМАНИЕ!!! Данный сервис категорически нежелательно останавливать во время работы системы. Многие другие сервисы зависят от него. В случае неверного сохранения случайных данных система может рухнуть. В результате эксперементов выяснилось что неостарожное обращение с данным сервисом может убить систему на столько что остальные сервисы перестанут загружаться. Почему так происходит неясно, будем надеятся на разъяснения разработчиков по этому поваду.


2.5. /etc/rc.d/consolefont

Этот скрипт предназначен для установки системного шрифта. Автоматически вызывается при старте системы. В качестве параметра берет переменную CONSOLEFONT из /etc/rc.conf

В качестве значения этой переменной используется имя одного из шрифтов находящихся в каталоге /usr/lib/fonts. Например для шрифта /usr/lib/fonts/cp866.fnt запись в /etc/rc.conf будет следующей:


CONSOLEFONT=«cp866»


2.6. /etc/rc.d/keymap

Этот скрипт предназначен для установки карты клавиатуры. Автоматически вызывается при старте системы. В качестве параметра берет переменную KEYMAP из /etc/rc.conf

В качестве значения этой переменной используется имя одной из карт клавиатуры находящихся в каталоге /usr/lib/keymaps. Например для карты /usr/lib/keymaps/russian-cp866.map запись в /etc/rc.conf будет следующей:


KEYMAP=«russian-cp866»


2.7. /etc/rc.d/net

Этот скрипт предназначен для поднятия и настройки сетевого интерфейса. Если переменная NETWORK файла /etc/rc.conf равна YES, то данный скрипт будет стартовать автоматически при загрузке системы.


В первую очередь скрипт смотрит содержимое /etc/inet.conf. Он берет оттуда название драйвера сетевой карты который необходимо загрузить. Формат этого файла можно посмотреть в man inet(8). Потом стартует сервис inet.


Далее проверяется значение переменной CONFIG_NET_IP файла /etc/rc.conf. Если оно равно dhcp, то запускаются демоны dhcpd и nonamed пытаясь определить автоматическую конфигурацию сетевого интерфейса.


Когда необходимо чтобы сеть имела статическое значение ip адреса и шлюза значение переменной CONFIG_NET_IP будет равно соответствующим параметрам ifconfig. Например для айпиадреса 192.168.0.1 с маской 255.255.255.0 будет так:


CONFIG_NET_IP=«-h 192.168.0.1 -n 255.255.255.0»


Шлюз в этом случае задается через переменную CONFIG_NET_ROUTE.


CONFIG_NET_ROUTE=«192.168.0.254»


Примечани: Не забудте убедиться что /etc/rsolv.conf содержит сылку на днс сервер в случае настройки сети не по dhcp


2.8. Остальные.

Остальные сервисы и демоны запускаются темже образом. Для каждого из них необходимо созать скрипт в /etc/rc.d по аналогии с одинм из существующих. Если необходимо чтобы ваш скрипт запускался во время запуска системы, можно воспользоваться переменной DAEMONS файла /etc/rc.conf. Например:


DAEMONS=«sshd ftp»


Означает что после загрузки всех стандартных демонов и сервисов, будут загружены sshd и ftp. Единственное условие, чтобы скрипты выполняющие загрузку оных, находились в /etc/rc.d или /usr/local/etc/rc.d и имели теже названия. Система инициализации сама определит в каком из двух каталогов находится данный скрипт инициализации.


3.1. Информация для разработчиков

В каталоге /etc/rc.d кроме всего прочего находится файл functions содержащий описание функций и переменных используемых при инициилизации системы. Этот файл инклюдится во все скрипты так или иначе использующие инициализацию.


3.2. Возможные недоработки

  1. Из-за вывода дебаг сообщений при загрузке некоторых сервисов (таких например как драйвера сетевой карты), может немного косячить вывод сообщений. Решением этого могло бы стать перенаправление дебаг вывода в отдельную консоль предназначеную специально для этого. Как это реализовать к сожалению не знаю.

  2. Не определяется автоматически размеры консоли. Пока выставлено статически ширина в 80 символов.


3.3. Примечания по установке

Распакуйте скрипты в каталог /etc. Исправте скрипт /etc/rc в одной из последних строчек чтобы вместо запуска /usr/etc/rc вызывался sh /etc/rc.sysinit $action. Убедитесь что все скрипты (кроме functions) в каталоге /etc/rc.d имеют права на выолнение.


4.1. Файлы

Скрипты

4.2. Скриншот

www.minix3.ru Copyright © 2006-2008
Раскраски яблоки смотрите на сайте. Сумку converse купить в Москве. | Камера видеонаблюдения установка, установка систем видеонаблюдения в алматы. | Композитная черепица запорожье смотри здесь.