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


Монтирование корневой файловой системы

Монтирование корневой файловой системы является важнейшей частью инициализации системы. Это довольно сложная процедура, потому что ядро Linux позволяет корневой файловой системе находиться в разных местах, например, в разделе жесткого диска, на дискете, в удаленной файловой системе, доступной через NFS, или даже на ramdisk (являющемся фиктивным блочным устройством, хранящимся в оперативной памяти).

Для простоты описания предположим, что корневая файловая система хранится в разделе жесткого диска (в конце концов, это самый распространенный случай). Когда загружается операционная система, ядро находит в переменной root dev старший номер диска, который содержит корневую файловую систему. Корневая файловая система может быть указана как файл устройства в каталоге /dev либо при компиляции ядра, либо путем передачи соответствующей опции "root" начальному загрузчику. Аналогичным образом флаги монтирования корневой файловой системы хранятся в переменной root mountfiags. Пользователь указывает эти флаги либо при помощи внешней программы rdev в откомпилированном образе ядра, либо передавая соответствующую опцию root flags начальному загрузчику.
Монтирование корневой файловой системы состоит из двух этапов.

- Ядро монтирует специальную файловую систему rootfs, которая просто предоставляет пустой каталог в качестве первоначальной точки монтирования.
- Ядро монтирует реальную файловую систему на пустом каталоге.
Почему ядро берет на себя труд монтирования файловой системы rootfs до монтирования реальной? Дело в том, что файловая система rootfs позволяет ему легко заменять реальную корневую файловую систему. В действительности, ядро иногда монтирует и размонтирует несколько файловых систем, одну за другой. Например, загрузчик, находящийся на CD-ROM с дистрибутивом, может загрузить в оперативную память ядро с минимальным набором драйверов, которое смонтирует в качестве корневой минимальную файловую систему, хранящуюся в ramdisk. Затем программы из этой первоначальной корневой файловой системы прозондируют” доступное оборудование (например, определят тип жесткого диска EIDE, SCSI или какой-то еще), загрузят все необходимые модули ядра и смонтируют новую файловую систему с физического блочного устройства.

Предыдущая страница | 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 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 | Следующая страница




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

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

ВведениеЕсли вы цените свое время, умеете считать деньги и знаете стоимость информации, то эта книга...

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

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

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

Копирование при записи В системах Unix первых поколений создание процесса было реализовано довольно...

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

Буферы блоков и головы буферовУ каждого буфера есть дескриптор голова буфера, имеющий тип buffer...