- •15. Файловая система unix
- •Внутреннее представление файлов
- •Типы файлов
- •Структура файловой системы unix
- •Разновидности файловых систем в unix
- •Базовая файловая система System V
- •Суперблок
- •Индексные дескрипторы
- •Имена файлов
- •Недостатки и ограничения
- •Файловая система bsd unix
- •Каталоги
- •Архитектура виртуальной файловой системы
- •Использование нескольких файловых систем
- •Файлы устройств
- •Монтирование файловой системы
- •Команды работы с файловыми системами
- •Монтирование разделов жесткого диcка: Linux и c файловой системой fat
- •Автоматическое монтирование файловых систем
- •16. Контроль доступа к файлам. Общие принципы Доступ к файлам как частный случай доступа к разделяемым ресурсам
- •Механизм контроля доступа
- •17. Организация контроля доступа в ос unix Владельцы файлов
- •Права доступа к файлу
- •Дополнительные атрибуты файла
- •18. Файловая система ntfs 5.0
- •Назначение разрешений для файлов
- •Назначение разрешений для папок
- •19. Дополнительные возможности ntfs 5.0 Квоты дискового пространства
- •Передача права владения
- •Сжатие файлов и папок
- •Команда Compact
- •Точки соединения ntfs
- •Работа с точками соединения ntfs Утилита mountvol
- •Управление точками соединения с помощью оснастки Управление дисками (Disk Management)
- •Дефрагментация диска
- •Список литературы
- •Оглавление
Каталоги
Структура каталога файловой системы FFS была изменена для поддержки длинных имен файлов (до 255 символов). Вместо записей фиксированной длины запись каталога FFS представлена структурой, имеющей следующие поля:
d_ino |
Номер inode (номер в массиве ilist) |
d_reclen |
Длина записи |
d_namelen |
Длина имени файла |
d_name[] |
Имя файла |
И мя файла имеет переменную длину, дополненную нулями до 4-байтной границы. При удалении имени файла принадлежавшая ему запись присоединяется к предыдущей, и значение поля d_reclen увеличивается на соответствующую величину. Удаление первой записи выражается в присвоении нулевого значения полю d_ino.
Архитектура виртуальной файловой системы
Как было показано, различные типы файловых систем существенно отличаются по внутренней архитектуре. В то же время современные версии UNIX обеспечивают одновременную работу с несколькими типами файловых систем. Среди них можно выделить локальные файловые системы различной архитектуры, удаленные и даже отличные от файловой системы UNIX, например, FAT. Такое сосуществование обеспечивается путем разделения каждой системы на зависимый и независимый от реализации уровни, последний из которых является общим и представляет для остальных подсистем ядра некоторую абстрактную файловую систему. Независимый уровень также называется виртуальной файловой системой (рис. 15.11). При этом дополнительные файловые системы различных типов могут быть встроены в ядро UNIX подобно тому, как это происходит с драйверами устройств.
Использование нескольких файловых систем
Хотя все файлы в системе UNIX логически соединены в одно общее дерево, сами файлы размещаются на различных запоминающих устройствах, например на жестких дисках и СD-RОМ. Файлы, записанные на запоминающих устройствах, организованы в отдельные файловые системы. Дерево каталогов UNIX может охватывать несколько файловых систем, каждая из которых располагается на отдельном устройстве. Сами файлы организованы в единое файловое дерево, вершиной которого является корневой каталог. Несмотря на то, что файловая система с корневым каталогом расположена в одном из разделов жесткого диска, всегда существует путь к файлам, расположенным в файловой системе, размещенной на компакт-диске.
Файлы той или иной файловой системы остаются отделенными от дерева каталогов до тех пор, пока вы явно не присоедините их к этому дереву. В каждой файловой системе файлы организованы в отдельное дерево каталогов. Это дерево можно рассматривать как поддерево, которое необходимо присоединить к основному дереву каталогов. Например, на дискете с файлами ОС UNIX – свое дерево каталогов. Это поддерево нужно присоединить к основному дереву, расположенному в разделе жесткого диска. Пока это не сделано, доступа к файлам на дискете у вас не будет.
Присоединение файловой системы, расположенной на запоминающем устройстве, к основному дереву каталогов называется монтированием устройства (об этом уже говорилось ранее).
Монтирование устройства осуществляется командой mount.1 Для того, чтобы получить возможность работать с файлами, записанными на CD-ROM, это устройство нужно сначала смонтировать. Операция монтирования предполагает присоединение дерева каталогов, находящегося на устройстве памяти, к указанному пользователем каталогу. Лишь после этого можно перейти в присоединенный каталог и обращаться к его файлам. Монтировать файловые системы может только привилегированный пользователь, root. Эта задача относится к функциям системного администратора, и обычный пользователь ее выполнять не может. Для того чтобы монтировать файловую систему, нужно войти в систему в качестве привилегированного пользователя. В табл. 15.1 перечислены основные опции команды mount.
Команда mount
Таблица 15.1
Опции |
Назначение |
-w |
Монтирует файловую систему с правом на чтение и запись |
-r |
Монтирует файловую систему с правом только на чтение |
-t тип |
Задает тип монтируемой файловой системы, основные типы файловых систем представлены в таблице 15.2 |
-a |
Монтирует все файловые системы, перечисленные в файле /etc/fstab |
Типы файловых систем, используемые в команде mount
Таблица 15.2
Опции |
Файловая система |
ext2 |
Стандартная файловая система Linux |
msdos |
Файловая система FAT |
nfs |
Cетевая файловая система, монтируемая из удаленных систем |
swap |
Раздел подкачки ОС Linux |
sysv |
Файловая система UNIX System V |
iso9660 |
Файловая система для монтирования CD-ROM |
Команда mount принимает два аргумента: имя устройства, через которое Linux получает доступ к файловой системе, и каталог в файловой структуре, к которому присоединяется новая файловая система. Точка моняирования – это каталог, к которому вы хотите присоединить файлы, находящиеся на запоминающем устройстве. Устройство – это специальный файл устройства, с помощью которого система получает доступ к аппаратным устройствам. Команда mount имеет следующий синтаксис:
$ mount устройство точка_монтирования