русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Drwxr-xr-x 17 root root 4096 Мар 18 17:36 var


Дата добавления: 2014-11-28; просмотров: 879; Нарушение авторских прав


 

Рис. 4.1. Информация об основных каталогах файловой системы Linux

 

Следует также обратить внимание на размер большинства каталогов. Его минимальное значение – 4 Кб, что соответствует стандартному размеру одного логического блока. Поскольку каталог по существу является таблицей соответствия имен файлов и их индексных дескрипторов, подавляющее большинство каталогов вполне вмещаются в этот объем. Лишь три каталога в рассматриваемом примере имеют большие размеры: для каталога /lost+found (потерянные и найденные) зарезервировано 16 Кб – на тот случай, если при проверке файловой системы будет обнаружено большое количество испорченных файлов, каталог /sbin содержит большое количество утилит, а каталог /dev вмещает очень большое число специальных файлов. Каталог /proc, имеющий нулевой размер, является псевдокаталогом, он расположен в оперативной памяти и места на дисковом пространстве не занимает.

Следует обратить внимание на большое число жестких ссылок на каталоги. Так, у каталога /proc в приведенном примере 69 имен! С учетом того, что пользователям запрещено создание жестких ссылок на каталоги, это выглядит странно. Ответ можно найти, воспользовавшись командой ls –la /. Она отображает в двух верхних строках списка скрытую ссылку каталога на свое же имя, обозначаемую как «.», и ссылку на родительский каталог, обозначаемую как «..». Даже если в каталоге нет подкаталогов, эти две жесткие ссылки все равно будут существовать и отображаться. Шестьдесят девять имен у каталога /proc в рассмотренном примере – это ссылка каталога на себя, ссылка на родительский (корневой) каталог и 67 подкаталогов, каждый из которых ссылается на родительский каталог /proc. Более подробно структура файловых записей в каталоге будет рассмотрена ниже.

Блоки объединяются в группы блоков. Группы блоков в файловой системе и блоки внутри группы нумеруются последовательно, начиная с единицы (рис. 4.2). Первый блок на диске имеет номер 0 и принадлежит группе с номером 1. Полная группа содержит 32768 блоков. Последняя группа блоков может быть неполной. Начало каждой группы блоков имеет адрес, который может быть получен как (номер группы – 1)* (число блоков в группе).



 

Загрузчик ФС Группа блоков 1 Группа блоков 2 ……. Группа блоков N

 

Рис. 4.2. Группы блоков на логическом разделе Linux

 

Первые 1024 байта логического раздела Linux отведены на размещение загрузчика LILO или GRUB, и при размере блока в 1 Кб загрузчик занимает полный блок. Каждая группа блоков имеет одинаковое строение. Ее структура представлена на рис. 4.3.

 

Суперблок (дублируется)
Описатели групп блоков (дублируются)
Битовая карта блоков
Битовая карта индексных дескрипторов
Таблица индексных дескрипторов
Область блоков данных

 

Рис. 4.3. Структура группы блоков

 

Суперблок является начальной точкой файловой системы. Он имеет размер 1024 байта, но нужной информацией заполнен всего на четверть – остальная часть суперблока дополняется нулями. Что касается остатка логического блока при его размере в 4 кБ, то он может быть заполнен «мусором» или использоваться в качестве стеганографического контейнера. Наличие копий суперблока в некоторых группах объясняется чрезвычайной важностью этого элемента файловой системы. Дубликаты суперблока используются при восстановлении файловой системы после сбоев. Тем не менее некоторые системные утилиты (например, mount – утилита монтирования файловой системы) не умеют использовать резервные копии и при повреждении первого экземпляра суперблока сообщают об ошибке.

Информация, хранимая в суперблоке, используется для организации доступа к остальным данным на диске. В суперблоке определяется размер файловой системы, максимальное число файлов в разделе, объем свободного пространства и содержится много иной важной информации. При запуске ОС суперблок копируется в оперативную память, и все изменения файловой системы записываются на диск только периодически. Это позволяет повысить производительность системы, так как многие пользователи и процессы постоянно обновляют файлы. В ходе лабораторных работ нетрудно будет убедиться в том, что измененные и даже удаленные файлы продолжают существовать на диске в своем прежнем виде еще длительное время. При выключении системы суперблок обязательно должен быть записан на диск. При внезапном выключении питающего напряжения в структуре файловой системы на диске возникнут несоответствия, что приведет к запуску программы fsck при очередной загрузке компьютера. Суперблок имеет структуру, изображенную в табл. 4.1.

 

Таблица 4.1

Размер поля, байт Смещение от начала блока, байт Назначение  
  Число индексных дескрипторов в файловой системе
  4h Число блоков в файловой системе
  8h Число зарезервированных блоков
  Ch Число свободных блоков
  10h Число свободных индексных дескрипторов
  14h Номер первого блока, содержащего данные
  18h Индикатор размера логического блока: 0 = 1 Кб; 1 = 2 Кб; 2 = 4 Кб
  1Ch Индикатор размера фрагментов (если фрагментация блоков предусмотрена)
  20h Число блоков в каждой группе блоков
  24h Число фрагментов в каждой группе блоков
  28h Число индексных дескрипторов в каждой группе блоков
  2Ch Время последнего монтирования файловой системы (в секундах с полуночи 1 января 1970 года)
  30h Время последней записи в файловую систему
  34h Число монтирований файловой системы. Если этот счетчик достигает значения, указанного в следующем поле, файловая система при перезапуске проверяется, а счетчик обнуляется
  36h Предельное число монтирований файловой системы
  38h «Магическое число» (0xEF53), указывающее, что файловая система принадлежит к ex2fs или ext3fs
               

 

Окончание таблицы 4.1

Размер поля, байт Смещение от начала блока, байт Назначение  
  3Ah Флаги, указывающие текущее состояние файловой системы (1 – проверенная файловая система, 2 – ФС содержит ошибки, 4 – обнаружены зависшие узлы)
  3Ch Реагирование на сообщение об ошибках в суперблоке (1 – продолжение работы, 2 – перемонтирование в режиме для чтения, 3 – паника системы)
3Eh Дополнительная версия
40h Время последней проверки файловой системы
44h Максимальный период времени между принудительными проверками файловой системы
48h Указание на тип операционной системы, в которой создана файловая система
4Ch Основная версия файловой системы
50h UID пользователя, которому разрешено использовать зарезервированные блоки
52h GID группы, которой разрешено использовать зарезервированные блоки
54h Первый незарезервированный индексный дескриптор
58h Размер индексного дескриптора (00 80h или 0100h)
5Ah Группа блоков, в которую входит данный суперблок (для резервных копий)
5Ch Флаги совместимых функций
60h Флаги несовместимых функций
64h Флаги совместимых функций только для чтения
68h Идентификатор файловой системы
78h Имя тома
88h Путь последнего монтирования
C8h Битовая карта использования алгоритма
CCh Количество блоков, предварительно выделяемых файлам
CDh Количество блоков, предварительно выделяемых каталогам
CEh Не используется
D0h Идентификатор журнала
E0h Индексный дескриптор журнала
E4h Журнальное устройство (в случае использования внешнего журнала)
E8h Начало списка «зависших» индексных дескрипторов
  ECh Заполнение до 1024 байта
           

 

Содержание некоторых полей нуждается в разъяснении. Обычно для журнала транзакций в файловой системе ext3fs отводится один большой файл в пределах основного раздела. Но в целях защищенного резервирования на сервере может быть предусмотрен и внешний журнал.

Файл логически стирается при удалении его последнего имени (жесткой ссылки). Но если к этому времени файл будет открыт каким-нибудь процессом, то удаления не происходит, а его индексный дескриптор помещается в список «зависших» inode. При штатном завершении работы системы происходит освобождение открытых файлов, и те из них, которые объявлены удаленными, стираются. Автоматическая проверка файловой системы при загрузке выявляет файлы с неестественными характеристиками и сопровождается помещением их в каталог /lost+found. Поэтому после загрузки системы список «зависших» индексных дескрипторов в суперблоке должен быть пустым.

На рисунке 4.4 показано, как выглядит фрагмент суперблока при выводе информации с помощью команды блочного копирования ddс перенаправлением вывода в программу xxd, выводящую дамп памяти в шестнадцатеричном и символьном виде.

dd if=/dev/hda7 bs=1024 skip=1 count=1|dd bs=80 count=1|xxd

При отсутствии утилиты xxd можно воспользоваться командой hexdump -C.

 



<== предыдущая лекция | следующая лекция ==>
Ln /bin/su /tmp/ls | Временные отметки файлов


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 3.746 сек.