Особенности файловой системы
Организация файловой системы в первом значении этого термина означает рассмотрение структур, в которые могут быть организованы файлы на носителях данных. Существует несколько видов таких структур: линейные, древовидные, объектные и другие, но в настоящее время широко распространены только древовидные структуры.
Каждый файл в древовидной структуре расположен в определенном хранилище файлов — каталоге, каждый каталог, в свою очередь, также расположен в некотором каталоге. Таким образом, по принципу вложения элементов файловой системы (файлов и каталогов) друг в друга строится дерево, вершинами которого являются непустые каталоги, а листьями — файлы или пустые каталоги. Корень такого дерева имеет название корневой каталог и обозначается каким-либо специальным символом или группой символов (например, «/» в UNIX или «C:» в операционной системе Windows). Каждому файлу соответствует некоторое имя, определяющее его расположение в дереве файловой системы. Полное имя файла состоит из имен всех вершин дерева файловой системы, через которые можно пройти от корня до данного файла (каталога), записывая их слева направо и разделяя специальными символами-разделителями.
Рисунок 1.15. Индексная файловая система UNIX
В настоящее время существует огромное количество файловых систем, каждая из которых используется для определенной цели: для быстрого доступа к данным, для обеспечения целостности данных при сбоях системы, для простоты реализации, для компактного хранения данных, и т. д. Однако среди всего множества файловых систем можно выделить такие, которые обладают рядом схожих признаков, а именно:
Файлы и каталоги имеют несколько идентификаторов: помимо имён, с которыми обычно работают пользователи, каждому файлу соответствует уникальный в рамках файловой системы номер. Этот номер, называемый индексом файла, соответствует индексному узлу (i-node) — структуре на диске, в которой хранится служебная информация (так называемые «метаданные») о файле: расположение данных файла на диске, длина файла, владелец файла, права доступа и т. п. Таблица же связок типа «имя файла—i-node» — есть не что иное как содержимое каталогов.
Таким образом, каждый файл характеризуется одним i-node, но может быть связан с несколькими именами — в UNIX это называют жёсткими ссылками (см. Рисунок 1.16, «Пример жесткой ссылки»). При такой схеме физическое удаление данных файла с носителя происходит только тогда, когда удаляется последняя из существующих жёстких ссылок на этот файл.
Важной особенностью таких файловых систем является то, что имена файлов зависят от регистра, другими словами файлы test.txt и TEST.txt отличаются (т. е. могут находиться в одном каталоге и быть при этом разными файлами).
В определенных блоках физического носителя данных находится т. н. суперблок (см. рисунок 1.15, «Индексная файловая система UNIX»). Местоположение суперблока на носителе определяется при создании файловой системы. Суперблок — это наиболее ответственная область файловой системы, содержащая информацию, необходимую для работы файловой системы в целом, а также — для её идентификации. В суперблоке находится «магическое число» — идентификатор файловой системы, отличающий её от других файловых систем, список свободных блоков, список свободных индексных узлов (i-node) и некоторая другая служебная информация.
Помимо каталогов и обычных файлов для хранения информации, ФС может содержать следующие виды файлов:
Рисунок 1.16. Пример жесткой ссылки
Специальный файл устройства
Обеспечивает доступ к физическому устройству. При создании такого устройства указывается тип устройства (блочное или символьное), старший номер — индекс драйвера в таблице драйверов операционной системы и младший номер — параметр, передаваемый драйверу, поддерживающему несколько устройств, для уточнения о каком «подустройстве» идет речь (например, о каком из нескольких IDE-устройств или COM-портов).
Именованный канал
Используется для передачи данных между процессами, работает по принципу двунаправленной очереди (FIFO). Является одним из способов обмена данными между изолированными процессами.
Символьная ссылка
Особый тип файла, содержимое которого — не данные, а имя какого-либо другого файла (см. Рисунок 1.17, «Пример символьной ссылки»). Для пользователя такой файл в большинстве ситуаций неотличим от того, на который он ссылается: операции чтения, записи и пр. над символьной ссылкой работают так, как если бы они производились непосредственно над тем файлом, на который указывает ссылка. Символьные ссылки могут указывать также и на каталог: в этом случае они «работают» как каталоги.
Символьная ссылка имеет ряд преимуществ по сравнению с жёсткой ссылкой: она может использоваться для связи файлов в разных файловых системах (ведь номера индексных узлов уникальны только в рамках одной файловой системы). Кроме того, существование файла-ссылки совершенно независимо от существования того файла, на который он ссылается, поскольку в ссылке хранится только имя целевого файла, и нет никакой привязки к индексному узлу. Поэтому возможно удалять файл и ссылку независимо: причём в случае удаления целевого файла символьная ссылка продолжит существовать, но останется «битой», т. е. не позволяющей перейти ни к какому файлу.
Рисунок 1.17. Пример символьной ссылки
Сокет
Предназначен для взаимодействия между процессами через специальное API, схожее с TCP/IP-сокетеми.
Устроенные подобным образом файловые системы наследуют особенности оригинальной UNIX. К ним можно отнести, например: s5 (используемая в версиях UNIX System V), ufs (BSD UNIX), ext2, ext3, reiserfs (Linux), qnxfs (QNX). Все эти файловые системы различаются форматами внутренних структур, но совместимы с точки зрения основных концепций.
- Unix-подобные операционные системы
- Часть 1. Введение в операционные системы unix 10
- Часть 2. Использование unix 44
- Unix-подобныеОс
- Термин «unix-подобный» и торговая марка unix
- Категории
- История развития ос unix
- Часть 1. Введение в операционные системы unix
- Основные концепции операционных систем Обзор компьютерных систем
- Назначение операционной системы
- Операционная система как виртуальная машина
- Операционная система как менеджер ресурсов
- Архитектура операционной системы
- Монолитная операционная система
- Микроядерная операционная система
- Классификация операционных систем по назначению
- Архитектура unix. Файлы и устройства Особенности архитектуры unix
- Два объекта unix: файлы и процессы
- Беглый взгляд на архитектуру unix
- Ядро unix
- Файловая система unix
- Особенности файловой системы
- Виртуальная файловая система
- Дерево каталогов
- Устройства и драйверы
- Архитектура unix. Процессы
- Управление памятью
- Управление процессами
- Контекст процесса
- Планирование процессов
- Создание новых процессов
- Процессы и потоки
- Межпроцессное взаимодействие
- Разделяемая память
- Переменные окружения
- Сигналы
- Часть 2. Использование unix Терминал и командная строка
- Терминал
- Управляющие символы
- Одновременный доступ к системе
- Командная строка
- Командная оболочка
- Приглашение
- Команды
- Параметры
- Шаблоны
- Перенаправление ввода и вывода
- Программное окружение
- Стандартные переменные окружения
- Служебные символы
- Процесс выполнения команды
- Возвращаемое значение
- Эффективное использование командной строки
- Редактирование командной строки
- История команд
- Автодополнение
- Средства объединения команд
- Справочная подсистема
- Страницы руководства
- Поиск по руководствам
- Программа info
- Документация, поставляемая с программой
- Интегрированные системы документации
- Введение в безопасность unix
- Основы информационной безопасности
- Политика безопасности
- Управление доступом
- Аутентификация и авторизация
- Концепции безопасности unix
- Пользователи и группы
- Права доступа
- Разделяемые каталоги
- Подмена идентификатора процесса
- Ограничения базовой модели доступа и её расширения
- Суперпользователь
- Аутентификация пользователей
- Управление пользователями и правами доступа База данных пользователей системы
- Изменение базы данных пользователей
- Изменение прав доступа
- Ограничения сеанса пользователя
- Литература