ADD(1M)

НАЗВАНИЕ
add - добавление драйвера устройства или модуля потока к ядру ОС UNIX

СИНТАКСИС


  /etc/add  [-o вых_файл] [-m master_файл] [-d dfile_файл] [-u ядро]

  [-t целевой_файл] [-s адрес_таблицы_имен] [-l] об ектный_файл ...

ОПИСАНИЕ
Утилита add обеспечивает все действия по добавлению драйверов устройств и/или модулей потоков к работающему ядру ОС UNIX. Действия эти состоят в следующем:

  1. Программа addconf [см. config(1M)] читает master_файл и dfile_файл и генерирует конфигурационные файлы conf.c и low.s, которые компилируются.
  2. Генерируется инструкция по загрузке.
  3. Редактируются связи между файлами conf.o, low.o, ядром и об ектными_файлами. Инструкция по загрузке информирует редактор связей ld(1), что ядро не надо загружать, то есть что используется только таблица имен UNIX-ядра для разрешения внешних ссылок. В данном случае редактор связей служит лишь для вычисления размера выполняемого файла, который будет порождаться позднее. Вычисленный размер передается следующему шагу.
  4. Программа addkern -a [см. addkern(1M)] выделяет пространство в физической и виртуальной памяти и возвращает адрес, по которому позднее выполняемый файл расположится в виртуальной памяти ядра.
  5. Этот адрес выдается на стандартный вывод и помещается в инструкцию по загрузке, придавая ей окончательный вид.
  6. Все связи редактируются снова с помощью инструкции по загрузке, в которой уже фиксирован адрес.
  7. Программа download(1M) загружает собранный выполняемый файл в виртуальную память ядра. Если специфицирован адрес_таблицы_имен, то имена из выполняемого файла вставляются в эту таблицу.
  8. Вызов addkern -x делает драйверы устройств и/или модули потоков известными для UNIX-ядра. В нем модифицируются таблицы, вставляются вектора прерываний, и, если требуется, вызываются функции инициализации. Вследствие этого на системную консоль могут выводиться некоторые сообщения.
  9. Если система к этому времени еще не завершила аварийно свою работу, то будет выдано сообщение об успешной установке новой версии.
Опциям утилиты 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.