Цепочки сводных свободных порций

Используются указатели списков и длина каждой свободной порции

- фрагментация

- размещение получается долгим, как и удаление при увеличении количества порций

Список свободных блоков

Описывается список свободных блоков, каждому блоку присваивается порядковый номер, список свободных блоков содержится в резервном месте.

- 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 – сценарий). Выполнить программу – исполнение для каталога и файла. Удалить файл из каталога – запись и исполнение для каталога