ADD(1M)
НАЗВАНИЕ
add - добавление драйвера устройства или модуля потока
к ядру ОС UNIX
СИНТАКСИС
/etc/add [-o вых_файл] [-m master_файл] [-d dfile_файл] [-u ядро]
[-t целевой_файл] [-s адрес_таблицы_имен] [-l] об ектный_файл ...
ОПИСАНИЕ
Утилита add обеспечивает все действия по добавлению
драйверов устройств и/или модулей потоков к работающему
ядру ОС UNIX. Действия эти состоят в следующем:
- Программа addconf [см. config(1M)] читает master_файл и dfile_файл и генерирует конфигурационные
файлы conf.c и low.s, которые компилируются.
- Генерируется инструкция по загрузке.
- Редактируются связи между файлами conf.o, low.o,
ядром и об ектными_файлами. Инструкция по загрузке
информирует редактор связей ld(1), что ядро не надо загружать, то есть что используется только таблица имен UNIX-ядра для разрешения внешних ссылок.
В данном случае редактор связей служит лишь для
вычисления размера выполняемого файла, который будет порождаться позднее. Вычисленный размер передается следующему шагу.
- Программа addkern -a [см. addkern(1M)] выделяет
пространство в физической и виртуальной памяти и
возвращает адрес, по которому позднее выполняемый
файл расположится в виртуальной памяти ядра.
- Этот адрес выдается на стандартный вывод и помещается в инструкцию по загрузке, придавая ей окончательный вид.
- Все связи редактируются снова с помощью инструкции
по загрузке, в которой уже фиксирован адрес.
- Программа download(1M) загружает собранный выполняемый файл в виртуальную память ядра. Если специфицирован адрес_таблицы_имен, то имена из выполняемого файла вставляются в эту таблицу.
- Вызов addkern -x делает драйверы устройств и/или
модули потоков известными для UNIX-ядра. В нем модифицируются таблицы, вставляются вектора прерываний, и, если требуется, вызываются функции инициализации. Вследствие этого на системную консоль могут выводиться некоторые сообщения.
- Если система к этому времени еще не завершила аварийно свою работу, то будет выдано сообщение об
успешной установке новой версии.
Опциям утилиты add приписан следующий смысл:
-o вых_файл | Задает имя выполняемого файла, порождаемого ld(1).
Если имя не специфицировано, то оно определяется
по имени первого об ектного_файла. |
-m master_файл | Задает имя master_файла для программы addconf. По
умолчанию используется имя master. |
-d dfile_файл | Задает имя dfile_файла для программы addconf. По
умолчанию используется имя dfile. |
-u ядро | Задает имя ядра для разрешения внешних ссылок. По
умолчанию используется имя /unix. |
-t целевой_файл | Задает имя целевого_файла для программы download.
По умолчанию используется /dev/kmem. |
-s адрес_таблицы_имен | Адрес_таблицы_имен передается программе download. |
-l | Пропустить первую из перечисленных выше фаз и использовать существующие файлы conf.o и low.o. |
Вслед за этими опциями должны идти об ектные_файлы
драйверов устройств и модулей потоков. Утилита add сохраняет все опции и имена об ектных модулей в файле
.add. Не заданные в программе опции читаются из этого
файла. Если он не существует, то опции принимают значения по умолчанию. Такой способ получения опций позволяет задать все опции только один раз. При последующих
выполнениях должны вводиться только новые или измененные опции, а все остальные берутся из файла .add.
Утилита add использует addkern(1M) и, следовательно,
может вызываться только суперпользователем.
ФАЙЛЫ
.add
/tmp/addldinstr Промежуточная инструкция по загрузке.
СМ. ТАКЖЕ
addkern(1M), config(1M), download(1M).
ДИАГНОСТИКА
Утилита add написана на языке shell. В процессе ее работы могут поступать сообщения от используемых программ.
ПРЕДОСТЕРЕЖЕНИЯ
Используйте add только в однопользовательском режиме.
Использование add может вызвать аварийный отказ Вашей
системы.
Использовать add рекомендуется только лучшим специалистам (гуру) по операционной системе UNIX.