Цепочки сводных свободных порций
Используются указатели списков и длина каждой свободной порции
- фрагментация
- размещение получается долгим, как и удаление при увеличении количества порций
Список свободных блоков
Описывается список свободных блоков, каждому блоку присваивается порядковый номер, список свободных блоков содержится в резервном месте.
- 24 либо 32 бита требуется для хранения номера свободного блока. В 32 раза больше 1-го способа.
Индексированный
Свободное пространство рассматривается как файл, используется индексирование.
+ Индексная таблица, индексы базируются на порциях изменяемого размера, каждой свободной порции соответствует 1 запись в таблице.
Функции ФС
1) Именование файлов.
2) Программный интерфейс для приложений.
3) Отображение логической модели на физическую организацию носителя информации.
4) Устойчивость к сбоям питания, аппаратным и программным ошибкам.
5) Совместный доступ к файлу из нескольких процессов.
6) Защита файлов от несанкционированного доступа в многопользовательских ОС.
7) Организация сетевого доступа.
Типы файлов:
· Регулярные (обычные) файлы – большинство текстовых, исполняемых файлов (различные, ориентированные под данную ОС), медиа-данные.
· Специальные файлы (устройств) – позволяют обращаться к реальным/виртуальным устройствам из приложений. Могут быть символьными (байтовыми) и блочными. Разница в размере количество информации, получаемой за один обмен.
· Каталог (директория) – группа файлов, объединённых пользователем. Файл, содержащий системную информацию о группе файлов, которые в нём хранятся. Здесь устанавливается соответствие между файлом и его атрибутами и признаками. Атрибуты хранятся либо в каталоге (DOS), либо указателем на уникальное имя (Linux).
Любая ФС строится как иерархия каталогов и файлов.
Древовидная структура – каждый файл может входить только в один каталог. Сеть – файл может входить одновременно в несколько каталогов.
ФС UNIX-подобных ОС
Функции файла – хранение данных, доступ к ПУ, определение привилегий пользователя, исполнение команд (если исполнительный код). Структура – сетевая. Корень root - \ . Имя задается перечислением всех каталогов. Файлу в соответствие ставится метаданные (характеристики файла, те же, что и ранее) считается, что можно прочитать по ссылке (индексный дескриптор). Имя файла – указатель на метаданные. Обратного соответствия нет (метаданные не указывают на имя)
Типы файлов:
- обычные файлы – последовательность байт, интерпретируемая программами различным образом.
- каталоги, содержат имена файлов указ на метаданные. Каталог как файл может писать только ядро.
- специализированные файлы устройств. Обеспечивают универсальный доступ к ПУ. Бывают блочные и символьные (для соответствия типов ВВ)
- FIFO-файлы (именованный канал) – механизм IPC (межпроцессорных взаимодействий) это тип файла FIFO = named pipe
- связь (link) – символическая связь – реализация косвенной адресации файлов в ФС
- сокет для межпроцессорного взаимодействия сети
Связи бывают жесткие и символические
Жесткие – естественный способ связи имени с данными (присвоение ещё одного имени тем же данным, тот же inod).
Pwd /home/user5/
Ln /home/user5/first home/user5/second
Это пример именования одного и того же файла разными именами. Данные не удаляются до тех пор, пока не удалятся все ссылки.
Символическая связь – предназначена для косвенной адресации файла. Все операции на символическую ссылку разрешены. При попытке чтения (cat) само символическое содержание не увидеть.
Структура ФС
bin – системные команды и утилиты общего назначения;
dev – специальные файлы устройств. Группируются по типам устройств (дисплеи, диски …);
etc – информационный каталог. Системные конфигурационные файлы, утилиты, скрипты инициализации системы;
lib – библиотечные файлы /lib/lib* * - типы библиотек;
lost+found – "потерянные" файлы - те, структура и содержимое которых являются правильными, однако для которых отсутствует имя в каком-либо из каталогов;
mnt – каталог результатов монтировок гибких дисков, дисководов;
home - домашний каталог пользователя;
proc -- специальные файлы процессов;
root -- домашний каталог root'а;
sbin -- системные бинарные файлы, необходимые для запуска системы;
usr - каталоги и обычные файлы, содержащие информацию, привлекаемую при решении задач пользователя;
usr/bin – исполнительные утилиты, ориентированные на пользователя;
usr/include – заголовочные файлы;
sys -- средства для изменения конфигурации системы;
tmp - общий каталог для хранения временных файлов;
var – хранение временных файлов различных сервисных подсистем – системы печати, электронной почты и т. д.
Владельцы файлов – пользователь и группа. Права владельца – гибкие. Права доступа для 3-х классов: владелец (u), группа (g), все остальные (o). Типы прав: чтение (r), запись (w), исполнение (x). Изменение прав: добавить (+), отнять (-), присвоить (=).
Утилита изменения прав доступа – chmod. Например, chmod u+r file. Смена владельца файла – chown.
При выполнении некоторой утилиты, она может потребовать права на каталог, если мы переходим в другой каталог cd – нужно иметь право на исполнение. Для того, чтобы вывести все файлы каталога (ls), достаточно права чтения каталога. Для выяснения размера: чтение + исполнение, если script – права на исполнение и для каталога, и для файла + чтение для файла (script – сценарий). Выполнить программу – исполнение для каталога и файла. Удалить файл из каталога – запись и исполнение для каталога