106
Рассмотренные выше структуры файловых систем FAT32 и ext2fs демострируют два разных подхода к обработке данных:
•простоту управления, характерную для FAT32;
•скорость обработки больших файлов, характерную для ext2fs.
Влюбом случае, обе файловые системы имеют общую метаструктуру, которая определяется наличием:
•секторов загрузчика ОС;
•суперблока, характеризующего файловую систему и раздел в котором она расположена;
•набора таблиц для разметки и учета использованных блоков данных;
•корневого каталога, с которого начинается логическое построение ФС;
•набора блоков данных, в которых размещаются подкатологи и файлы ФС.
Фактически, все известные файловые системы отличаются только способом реализации этих элементов метаструктуры.
Естественным образом, файловые системы FAT32 и ext2fs имеют как свои преимущества, так и недостатки.
Преимущества FAT32:
•простота реализации и эффективность использования всего физического пространства блочных устройств малой емкости;
•широкая известность и распространенность, делающая ее «универсальным
хранилищем» временных ФС.
Недостатки FAT32:
•практическая ограниченность размера ФС и слабая защищенность, делающая ее непригодной для современных ОС и технологий хранения информации;
•высокая фрагментированность ФС в процессе эксплуатации, что снижает
скорость ее работы и негативно воздействует на устройства хранеия данных. Именно эти недостатки потребовали от корпорации Microsoft, в марте 1993 года, замены FAT32 на более сложную и современную ФС: ntfs.
Файловая система ext2 берет свое начало от ФС minix. Файловая система ext - это Extended minix.
Преимущества ext2:
•высокое быстродействие;
•поддержка файлов до 2 Гбайт. Недостатки ext2:
•отсутствие журналирования, снижающее ее надежность;
•недостаточные, по современным меркам, размеры поддерживаемых разде-
лов ФС и размера файлов.
Указанные недостатки ext2 потребовали дальнейшее ее усовершенствование:
•ext3 — журналируемая ФС появилась в ноябре 2001 года; поддерживает размер файлов до 16 ТБайт и размер раздела до 32 ТБайт;
107
•ext4 — журналируемая ФС появилась в октябре 2008 года; поддерживает размер файлов до 16 ТБайт и размер раздела до 1 ЭБайт.
Журналируемая файловая система — это ФС, которая сохраняет список изменений, проводимых с файловой системой, перед фактическим их осуществлением. Записи будущих фактических изменений хранятся в отдельной части ФС, называемой журналом (journal) или логом (log). Как только изменения файловой системы внесены в журнал, она применяет эти изменения к файлам или метаданным, а затем удаляет эти записи из журнала.
Записи журнала организованы в наборы связанных изменений файловой системы.
Замечание
Журналируемые записи первоначально появились в управлении базами данных, для которых характерно целостное управление большими массивами данных. С помощью их также реализуется механизм транзакций.
Предыдущий учебный материал дает описание блочного устройства на уровне:
•секторов, LBA и разделов винчестера: подразделы 4.1 и 4.2;
•специализированных блоков отдельных ФС, размещаемых в отдельном разде-
ле винчестера: подразделы 4.3 — 4.6; Данный учебный материал рассматривает структуру ФС как организованый набор
файлов и директорий, видимый программами (процессами) пользовательского режима работы отдельных ОС.
В общем случае, структура ФС на уровне файлов и каталогов может быть произвольной, за некоторыми ограничениями, например:
•обязательно наличие корневой ФС ОС;
•обязательно наличие корневого каталога отдельных ФС.
На рисунке 4.7 приведен пример дерева каталогов и файлов некоторой ФС типа UNIX.
Хорошо видно, что это дерево ФС логически структурировано в прикладном плане, например:
•dev — директория размещения узлов устройств ЭВМ (devices);
•usr — директория ориентированная на пользователей (users);
•home — директория для рабочих (домашних) областей пользователей;
•bin — директория расположения исполняемых файлов ОС (binary).
108
Рисунок 4.7 - Пример структуры ФС типа UNIX
В августе 1993 года, в рамках проекта GNU/Linux, стал разрабатываться стандарт на структуру файловой системы (Filesystem Standard), который был выпущен в феврале 1994 года и получил обозначение FSSTND.
Позже, в 1996 году, была организована группа Free Standard Group (FSG), к которой присоединились и другие разработчики ОС.
FSG продолжила разработку структуры иерархии ФС, которая была бы пригодна для всех UNIX-подобных систем. Такой стандарт получил название Filesystem Hierarchy Standard (FHS).
В общем случае, файловая система Linux разделена на три крупных уровня иерархий.
Кратко рассмотрим каждый из этих уровней.
Первый уровень иерархии ФС составляют каталоги, которые управляются пользователем root и другими администраторами системы.
|
109 |
/ |
Корневой каталог. Должен содержать все, что необходимо для |
|
стар-та и запуска ОС, а также на случай восстановления ее из |
|
резервной копии. |
/bin |
Необходимые программы (бинарные файлы). |
/boot |
Файлы загрузчика LILO (GRUB) |
/dev |
Устройства (все устройства доступны в виде файлов). |
/etc |
Файлы конфигурации. |
/etc/X11 |
Файлы конфигурации для X Window. |
/home |
Домашние каталоги пользователей. |
/home/reznik |
Домашний каталог пользователя reznik. |
/lib |
Разделяемые библиотеки, необходимые для работы программ, |
|
находящиеся в каталогах /bin, /sbin и др. |
/lib/modules |
Модули ядра. |
/media |
Директория монтирования временных ФС (floppy и т.д) |
/mnt |
Точка для временного монтирования файловых систем. |
/opt |
Каталог для пакетов программ. |
/opt/Office50 |
Пакет Star Office 5.0 (в данном случае) |
/proc |
Специальные виртуальные файлы, обеспечивающие доступ к |
|
функциям ядра Linux. |
/root |
Домашний каталог пользователя root. |
/sbin |
Необходимые системные программы (бинарные файлы). |
/tmp |
Временные файлы для всех программ. Эти файлы могут уничто- |
|
жаться системой при каждой перезагрузке или периодически. |
/usr |
Второй уровень иерархии. |
/var |
Изменяемые данные. |
Второй уровень иерархии ФС, по замыслу, содержит данные, которые доступны только для чтения и могут использоваться всеми пользователями или несколькими компьютерами сети. В идеале, модифицироваться могут только файлы каталога /usr/local, в который администратор может устанавливать новые программы, не поставляющиеся с системой.
/usr/X11R6 |
Система X Window, версия 11.6 |
/usr/X386 |
Система X Window, версия 11.5 |
/usr/bin |
Программы, предназначенные для пользователей. |
/usr/games |
Игры и развлечения. |
/usr/include |
Файлы заголовков для программ на языке С. |
|
110 |
/usr/lib |
Библиотеки. |
/usr/local |
Локальная иерархия (корень третьего уровня иерархии). |
|
Обычно сюда монтируются всякие дополнения. |
/usr/sbin |
Системные программы. |
/usr/share |
Архитектурно независимые данные: |
/usr/share/dict |
Словари. |
/usr/share/doc |
Документация о свободных форматах. |
/usr/share/games |
Игры. |
/usr/share/info |
Документация в формате GNU info. |
/usr/share/locale |
Данные для системной локали. |
/usr/share/man |
Документация в формате man. |
/usr/share/nls |
Данные для поддержки национальных языков (NLS). |
/usr/share/misc |
Все остальные данные. |
/usr/share/terminfo |
База данных terminfo. |
/usr/share/tmac |
Макросы для troff. |
/usr/share/zoneinfo |
База данных и конфигурация местного времени. |
/usr/src |
Исходные тексты. |
/usr/src/linux |
Исходные тексты ядра Linux. |
Третий уровень иерархии ФС — подобен второму и продолжается в директории
/usr/local.
Далее, более подробно рассмотрим корневую директорию изменяемых данных /var, поскольку она содкржит множество системных данных ОС.
/var |
Каталог, содержимое которого может меняться при работе |
|
системных программ. |
/var/cache |
Временно сохраняемые файлы различных программ (браузеров |
|
Internet, программы man, сервера шрифтов и другие). |
/var/games |
Изменяемые файлы для игр из /usr/games. |
/var/lock |
Lock-файлы, указывающие, что то или иное устройство (обычно |
|
модем) занято. |
/var/log |
Системные журнальные файлы. |
/var/mail |
Почтовые ящики пользователей. |
/var/opt |
Изменяемые файлы для программ из /opt. |
/var/run |
Файлы, имеющие отношение к запущенным в настоящий момент |
|
программам, например, хранящие номера процессов. |