Файловые системы EXT2FS И EXT3FS
Файловая система представляет собой способ логической организации внешней и оперативной памяти компьютера. Современные многозадачные операционные системы, работающие в защищенном режиме, а также интеллектуальные контроллеры магнитных дисков не позволяют работать с памятью на физическом уровне. Поэтому для администратора очень важно разобраться в структуре файловых систем.
Файловые системы EXT2FS и EXT3FS отличаются только наличием журнала транзакций. В остальном они имеют идентичную структуру и могут взаимно преобразовываться на этапе монтирования. В файловой системе Linux основным логическим объектом является файл. Все объекты, включая устройства ввода/вывода информации и каналы межпроцессного взаимодействия, называются файлами. Определено 7 функциональных типов файлов:
-
обычные файлы,
-
каталоги,
-
символические ссылки,
-
именованные каналы,
-
сокеты,
>- файлы символических устройств, >- файлы блочных устройств.
Внутренняя структура обычного файла для операционной системы совершенно безразлична, и файл воспринимается ею как структурированная последовательность байт. Для операционных систем семейства UNIX не имеют значения, принятые в ОС Windows* и MS DOS, расширения файлов, по которым можно судить об их типе. Однако одна из утилит, именуемая file, умеет различать довольно много разновидностей файлов по их «магическим» числам и характерному формату.
Дисковое пространство выделяется файлам целыми блоками. Блок является адресуемой единицей дискового пространства и может иметь размер 1024, 2048 или 4096 байт. В ОС Windows* похожей величиной является кластер. Нетрудно заметить, что размер блока кратен размеру одиночного сектора на диске (512 байт). Непосредственно с секторами работать в файловой системе не приходится, но некоторая выводимая утилитами информация может подразумевать под названием «блок» и сектор, и логический блок. Большой размер блока сокращает число обращений к диску при чтении или записи файла, но увеличивает долю нерационально используемого пространства, особенно при наличии большого числа маленьких файлов. В современных дистрибутивах ОС Linux по умолчанию используется размер блока в 4 Кб, что ускоряет процессы подкачки в виртуальной памяти (размер страницы подкачки тоже равен 4 Кб).
Каталоги в файловых системах Linux распределяются по всему диску. Файлы, входящие в один каталог, группируются в непосредственной близости друг от друга. Так делается для того, чтобы минимизировать число перемещений блока магнитных головок накопителя на жестких дисках при обращении к файлам одного каталога.
Просматривая информацию об основных каталогах файловой системы (листинг 5), выведенной с помощью команды Is -li /, следует обратить внимание на то, как сильно различаются номера индексных дескрипторов каталогов. Это косвенно указывает на то, что каталоги распределены по всему диску.
131329 |
drwxr—хг—х |
2 |
root |
root |
4096 |
Map |
18 |
17:42 |
bin |
328321 |
drwxr—хг—х |
4 |
root |
root |
4096 |
Map |
18 |
15:18 |
boot |
196993 |
drwxr—хг—х |
20 |
root |
root |
118784 |
Map |
30 |
10:41 |
dev |
164161 |
drwxr—хг—х |
55 |
root |
root |
4096 |
Map |
30 |
10:47 |
etc |
525313 |
drwxr—хг—х |
2 |
root |
root |
4096 |
Map |
30 |
11:42 |
home |
541729 |
drwxr—хг—х |
2 |
root |
root |
4096 |
Anp |
29 |
2003 |
initrd |
558145 |
drwxr—хг—х |
9 |
root |
root |
4096 |
Map |
18 |
17:50 |
lib |
11 |
drwx |
2 |
root |
root |
16384 |
Map |
18 |
17:22 |
lost+foun |
230275 |
drwxr—хг—х |
2 |
root |
root |
4096 |
Anp |
29 |
2003 |
misc |
590977 |
drwxr—хг—х |
5 |
root |
root |
4096 |
Map |
18 |
14:06 |
mnt |
607393 |
drwxr—хг—х |
2 |
root |
root |
4096 |
Anp |
29 |
2003 |
opt |
1 |
dr—хг—хг—х |
69 |
root |
root |
0 |
Map |
30 |
2004 |
proc |
180577 |
drwxr—х |
17 |
root |
root |
4096 |
Map |
30 |
11:25 |
root |
640225 |
drwxr—хг—х |
2 |
root |
root |
8192 |
Map |
18 |
17:54 |
sbin |
213409 |
drwxrwxrwt |
9 |
root |
root |
4096 |
Map |
30 |
11:24 |
tmp |
229825 |
drwxr—xr—x |
15 |
root |
root |
4096 |
Map |
18 |
17:30 |
usr |
32833 |
drwxr—xr—x |
17 |
root |
root |
4096 |
Map |
18 |
17:36 |
var |
Листинг 5. Информация об основных каталогах файловой системы Linux