ADD(1M) 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.