Спонсор: Microsoft
Санкт-Петербургский государственный университет
Опубликован: 13.11.2010 | Доступ: свободный | Студентов: 6726 / 1527 | Оценка: 4.64 / 4.23 | Длительность: 45:08:00
ISBN: 978-5-9963-0495-0
Лекция 19:

Системы файлов

Монтирование файловых систем

Файловая система поддерево директорий на некоторой машине, расположенных в одном разделе. Каждая файловая система должна быть смонтирована, прежде чем к ней будет обеспечен доступ. Файловая система монтируется в некоторую точку монтирования (mount point).Монтирование (с абстрактной точки зрения) – это подсоединение отдельного дерева (еще не смонтированной файловой системы) к какой-либо вершине (точке монтирования) общего дерева смонтированных и доступных файловых систем.

В системе UNIX имеются команды mount ; automount и autodirect, управляющие монтированием. Команда mount позволяет явно задать точку монтирования и файловую систему, монтируемую в эту точку. Список всех смонтированных файловых систем хранится в системном текстовом файле /etc/mnttab (в разных диалектах пути к этому файлу и даже его имя могут различаться). Команда automount запускается при загрузке операционной системы и создает системный процесс-демон automountd, который по содержимому указанного системного файла автоматически монтирует указанные в нем файловые системы при загрузке ОС и следит за их постоянной смонтированностью. Команда autodirect позволяет смоделировать пути к "виртуальным" директориям, которых физически на данной машине не существует, и указать в системном файле /etc/vfstab их "заменители" (в виде путей к реальным директориям, размещенным на локальной машине), что весьма полезно в случае получения большого проекта от заказчика с абсолютными путями, не существующими на Вашей машине.

На рис. 19.9 изображены дерево смонтированных систем с директориями пользователей (a) и еще не смонтированная файловая система (b) с директориями новых пользователей.

Дерево смонтированных систем и еще не смонтированная файловая система.

Рис. 19.9. Дерево смонтированных систем и еще не смонтированная файловая система.

Если по команде mount или automount в качестве точки монтирования файловой системы (b) указывается поддиректория users, то возникает картина, изображенная на рис. 19.10.

Точка монтирования файловой системы.

Рис. 19.10. Точка монтирования файловой системы.

Общий доступ к файлам

В многопользовательских системах общий доступ к файлам (sharing) необходим. Общий доступ может быть обеспечен через некоторую систему защиты (protection). В распределенных системах файлы могут использоваться совместно через сеть. Управление общим доступом к файлам в разных ОС различно: например, в Windows утилита Explorer обеспечивает возможность установки общего доступа к заданному файлу или папке с помощью GUI, сделав отметку в соответствующем checkbox, указать сетевое имя данного общего ресурса и указать, возможен ли доступ по чтению и по записи, или только по чтению. В системе UNIX передача файла из заданной файловой системы в общий доступ выполняется командой share.

Network File System (NFS) – распространенная система общего доступа к файлам через локальную сеть, которая подробно рассмотрена в лекции 20.

Интересная возможность общего доступа к файлам имеется в системе Solaris: файловая система, отданная в общий доступ командой share, может адресоваться с помощью пути вида /net/hostname/filesystem, где hostname – имя машины; filesystem – имя файловой системы на ней. Это очень удобно, но может создать проблемы при переносе проекта в другую локальную сеть (как любой абсолютный путь – в данном случае путь содержит имя машины).

Защита файлов

Создатель файла должен иметь возможность управлять cписком допустимых операций над файлом и списком пользователей, которым они разрешены. Это и обеспечивают механизмы защиты файлов. Различаются следующие основные типы доступа к файлу:

  • Read (для чтения)
  • Write (для записи)
  • Execute (для исполнения)
  • Append (для записи в конец файла, или присоединения)
  • Delete (для удаления)
  • List (для вывода списка файлов в директории).

Для управления защитой файлов в UNIX введены удобные и наглядные обозначения, которые мы и рассмотрим.

Различаются следующие режимы доступа: read, write, execute (RWX).

Различаются также три класса пользователей: владелец файла (owner), группа, к которой он принадлежит (group) и весь остальной "мир" пользователей (public). Группы пользователей создаются системным администратором.

Для каждого класса пользователей признаки защиты RWX кодируются тремя битами (или одним восьмеричным числом). Таким образом, набор полномочий для работы с файлом для всех трех категорий пользователей кодируется 9 битами, или тремя восьмеричными цифрами. Например, команда:

chmod 740 my_file

задает для файла my_file следующие полномочия: для владельца – 7 (111): чтение, запись и выполнение; для группы – 4 (100): только чтение; для остальных пользователей – 0 (000): никаких действий над файлом не разрешено.

Для директории полномочия "X" (execute) означает возможность входа в нее командой cd.

Реализация файловых систем

В данном разделе начнем рассматривать принципы и методы реализации файловых систем, изложение которых продолжено в "Виртуальные файловые системы (VFS). Реализации файловых систем. Сетевая файловая система NFS" . В данной и следующей лекциях будут рассмотрены следующие вопросы:

  • Структура файловых систем
  • Реализация файловых систем
  • Реализация директорий
  • Методы размещения файлов
  • Управление свободной памятью
  • Эффективность и производительность
  • Восстановление
  • Файловые системы на основе журналов транзакций (Log-Structured)
  • сетевая файловая система NFS.
Гульжан Мурсакимова
Гульжан Мурсакимова
Василий Четвертаков
Василий Четвертаков