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


Типы файловых систем

Ядро Linux поддерживает много различных типов файловых систем. В следующих разделах мы опишем несколько файловых систем специальных типов, которые играют важную роль во внутренней архитектуре ядра Linux.

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

Специальные файловые системы

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

Обратите внимание, что несколько файловых систем не имеют фиксированной точки монтирования (слово любая” в соответствующей графе). Пользователи могут свободно монтировать такие файловые системы и работать с ними. Кроме того, у некоторых файловых систем точка монтирования и вовсе отсутствует (слово нет” в таблице). Они не предназначены для взаимодействия с пользователем, но ядро может работать с ними, повторно используя некоторые фрагменты кода слоя VFS. Например, в главе 19 мы убедимся, что, благодаря специальной файловой системе pipfs, с каналами можно обращаться как с FIFO-файлами.

Специальные файловые системы не привязаны к физическим блочным устройствам. Однако ядро присваивает каждой смонтированной специальной файловой системе фиктивное блочное устройство, у которого старший номер равен нулю, а в качестве младшего номера берется произвольное значение (индивидуальное у каждой файловой системы). Функция set anon super о используется для инициализации суперблоков специальных файловых систем. В сущности, эта функция получает неиспользуемый младший номер dev и записывает в поле s dev нового суперблока старший номер, равный нулю, и младший номер, равный dev. Другая функция, по имени kiii anon superо, удаляет суперблок специальной файловой системы. Переменная unnamed_ dev idr содержит указатели на вспомогательные структуры, которые отслеживают используемые в данный момент младшие номера. Хотя некоторые разработчики ядер недолюбливают идентификаторы фиктивных блочных устройств, такое решение позволяет ядру применять унифицированный подход к работе со специальными и обычными файловыми системами.

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

Предыдущая страница | 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...