• Гидравлическая тележка

    гидравлическая тележка

    euro-lift.ru

  • Натяжные потолки фотопечать

    Потолки - справочник - натяжные потолки фотопечать. Реечный подвесной потолок.

    potolki2.ru





Linux Kernel (Ядро линукса) (часть 3)


Подключение модулей по требованию

Модуль может быть подключен автоматически, когда потребуется обеспечиваемая им функциональность, а затем автоматически удален.

Предположим, например, что файловая система MS-DOS не была подключена ни статически, ни динамически. Если пользователь попытается смонтировать файловую систему MS-DOS, системный вызов mount нормальным образом закончится неудачей и возвратит код ошибки, потому что MS-DOS не находится в списке file systems зарегистрированных файловых систем. Однако если при конфигурировании ядра была задана поддержка автоматического подключения модулей, Linux попытается подключить модуль MS-DOS, а затем снова просмотрит список зарегистрированных файловых систем. Если модуль был подключен успешно, системный вызов mount будет выполнен так, словно файловая система присутствовала с самого начала.

Программа modprobe

Чтобы автоматически подключить модуль, ядро создает поток для выполнения внешней программы modprobe3, которая разберется со всеми вопросами, связанными с зависимостями модулей. Зависимости обсуждались ранее: модулю для работы может потребоваться один или несколько модулей, а тем, в свою очередь, могут потребоваться еще модули. Например, модулю MS-DOS требуется другой модуль по имени fat, содержащий код, общий для всех файловых систем, основанных на FAT (File Allocation Table, Таблица размещения файлов). То есть если модуля fat еще нет, то он тоже должен быть автоматически подключен при запросе на модуль MS-DOS. Разрешение зависимостей и поиск модулей лучше всего выполнять в режиме пользователя, поскольку эти действия связаны с обращением к объектным файлам модулей в файловой системе.

Внешняя программа modprobe аналогична программе insmod, поскольку подключает модуль, указанный в командной строке. Однако программа modprobe вдобавок рекурсивно подключает все модули, используемые модулем, заданным в командной строке. Например, если пользователь вызовет modprobe для подключения модуля MS-DOS, эта программа подключит вслед за MS-DOS и модуль fat, если это будет необходимо. Программа modprobe просто проверяет зависимости модуля; фактически его подключение происходит за счет ответвления нового процесса и выполнения программы insmod.

Откуда программа modprobe знает о зависимостях модуля? При запуске системы выполняется еще одна внешняя программа по имени depmod. Она просматривает все модули, откомпилированные для работающего ядра, которые обычно хранятся в каталоге /lib/modules. Затем эта программа записывает все зависимости модулей в файл modules.dep. Программа modprobe просто сопоставляет информацию из этого файла со списком подключенных модулей, полученным из файла /ргос /modules.

Предыдущая страница | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 | Следующая страница




Возможно, Вас также заинтересует:

ОС Knoppix - это Linux без проблем

ВведениеЕсли вы цените свое время, умеете считать деньги и знаете стоимость информации, то эта книга для вас. А так как к книге прилагается компакт- диск с готовой к работе операционной системой Knoppix Live CD, то лишь достаточно вставить его в привод и перегрузить компьютер,...

Linux Kernel (Ядро линукса) (часть 1)

Спин-блокировкаСпин-блокировка необходима в многопроцессорной системе, потому что могут возникнуть другие прерывания того же типа, и другие процессоры могут приступить к их обработке. Без спин-блокировки к главному дескриптору прерывания могли бы обратиться сразу несколько процессоров. Как мы...

Linux Kernel (Ядро линукса) (часть 2)

Копирование при записи В системах Unix первых поколений создание процесса было реализовано довольно неуклюже: получив системный вызов fork о, ядро в буквальном смысле дублировало все адресное пространство родителя и присваивало копию процессу-потомку. Такая операция...

Linux Kernel (Ядро линукса) (часть 3)

Буферы блоков и головы буферовУ каждого буфера есть дескриптор голова буфера, имеющий тип buffer head. Этот дескриптор содержит всю информацию, необходимую ядру для работы с блоком, так что перед обработкой блока ядро обязательно проверяет голову...