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


Суперблок

В файловой системе Ext2 суперблок диска хранится в структуре ext2_super_ block Типы u8, ui6 и u32 обозначают целые без знака длиной 8, 16 и 32 бита соответственно, а типы s8,
si б и s32 — целые со знаком соответствующей длины. Чтобы явно задать
порядок хранения байтов слова или двойного слова на диске, ядро пользуется
типами 1е1б, 1е32, Ье1б и Ье32. Первые два типа обозначают прямой
порядок байтов (младшие байты имеют большие адреса), в то время как последние два типа обозначают обратный порядок байтов (старшие байты имеют большие адреса).

Поле s inodes count хранит количество индексных дескрипторов, а поле s biocks count — количество блоков в файловой системе Ext2.
Поле s iog biock size выражает размер блока в виде степени двойки, используя 1024 байта в качестве единицы измерения. Так, 0 обозначает 1024-байтовые блоки, 1 — блоки по 2048 байт и т. д. В настоящее время поле s iog frag size равно полю s iog biock size, потому что фрагментация еще не реализована.
ПОЛЯ s_blocks_per_group, s_frags_per_group И s_inodes_per_group Хранят соответственно количество блоков, фрагментов и индексных дескрипторов в группе блоков.

Некоторые блоки на диске зарезервированы для суперпользователя (или ка- кого-нибудь другого пользователя или группы пользователей, заданных в полях s def resuid И s def resgid). Эти блОКИ ПОЗВОЛЯЮТ системному администратору продолжать пользоваться файловой системой, даже когда для обычных пользователей не останется свободных блоков.

Поля s_mnt_count, s_max_mnt_count, s_lastcheck И s_checkinterval обеспечивают автоматическую проверку файловой системы на этапе загрузки. Они заставляют программу e2fsck выполняться после того, как будет выполнено заданное количество монтирований файловой системы, или по истечении заданного интервала времени после последней проверки. (Оба типа проверок можно задать одновременно.) Проверка непротиворечивости файловой системы выполняется также на этапе загрузки, если файловая система не была корректно размонтирована (например, из-за краха системы) или если ядро обнаружило в ней ошибки. Поле s state содержит ноль, если файловая система смонтирована или не была корректно размонтирована, единицу, если она была размонтирована корректно, и двойку, если файловая система содержит ошибки.

Предыдущая страница | 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. Этот дескриптор содержит всю информацию, необходимую ядру для работы с блоком, так что перед обработкой блока ядро обязательно проверяет голову...