В лекции рассматриваются следующие вопросы:
Операционная система выполняет две основные задачи: манипулирование данными и их хранение. Большинство программ в основном манипулирует данными, но, в конечном счете, они где-нибудь хранятся. В ОС таким местом хранения является файловая система. При этом вся хранящаяся информация организуется в файлы. Файл – это именованная совокупность данных, хранящаяся на каком-либо носителе информации. [1]
Файловая система (ФС) – это часть операционной системы, включающая:
Назначение файловой системы состоит в том, чтобы обеспечить пользователю удобный интерфейс при работе с данными, хранящимися на диске, и обеспечить совместное использование файлов несколькими пользователями и процессами. Файловая система UNIX-систем обеспечивает унифицированный интерфейс доступа к данным, расположенным на различных носителях, и к периферийным устройствам (перенаправление запросов, адресованных периферийным устройствам, соответствующим модулям подсистемы ввода-вывода). [3]
Задачи, решаемые файловой системой, во многом определяются способом организации вычислительного процесса.
В многозадачных, многопользовательских ОС задачами файловой системы являются:
Минимальным набором требований к файлам системы со стороны пользователя диалоговой системы общего назначения можно считать следующую совокупность возможностей, предоставляемую пользователю:
Файловая система позволяет программам обходиться набором до-статочно простых операций для выполнения действий над некоторым абстрактным объектом, представляющим файл.
ФС распределяет дисковую память, поддерживает именование файлов, отображает имена файлов в соответствующие адреса во внешней памяти, обеспечивает доступ к данным, поддерживает разделение, защиту и восстановление данных.
Таким образом, файловая система играет роль промежуточного слоя, экранизирующего все сложности физической организации долговременного хранилища данных и создающего для программ более простую логическую модель этого хранилища, а затем предоставляет им набор удобных в использовании команд для манипулирования файлами.
Классическая схема организации программного обеспечения файловой системы представлена на рис. 5.1.
Рисунок 5.1 – Организация программного обеспечения ФС
На нижнем уровне драйверы устройств непосредственно связаны с периферийными устройствами или их котроллерами либо каналами. Драйвер устройства отвечает за начальные операции ввода-вывода устройства и за обработку завершения запроса ввода-вывода. При файловых операциях контролируемыми устройствами являются дисководы и стримеры (накопители на магнитных лентах). Драйверы устройств рассматриваются как часть операционной системы.
Следующий уровень называется базовой файловой системой, или уровнем физического ввода-вывода. Это первичный интерфейс с окружением (периферией) компьютерной системы. Он оперирует блоками данных, которыми обменивается с дисками, магнитной лентой и другими устройствами. Поэтому он связан с размещением и буферизацией блоков в оперативной памяти. На этом уровне не выполняется работа с содержимым блоков данных или структурой файлов. Базовая файловая система обычно рассматривается как часть операционной системы (в MS-DOS эти функции выполняет BIOS, не относящийся к ОС).
Диспетчер базового ввода-вывода отвечает за начало и завершение файлового ввода-вывода. На этом уровне поддерживаются управляющие структуры, связанные с устройством ввода-вывода, планированием и статусом файлов. Диспетчер осуществляет выбор устройства, на котором будет выполняться операция файлового ввода-вывода, планирование обращения к устройству (дискам, лентам), назначение буферов ввода-вывода и распределение внешней памяти. Диспетчер базового ввода-вывода является частью ОС.
Логический ввод-вывод предоставляет приложениям и пользователям доступ к записям. Он обеспечивает возможности общего назначения по вводу-выводу записей и поддерживает информацию о файлах. Наиболее близкий к пользователю уровень ФС часто называется методом доступа. Он обеспечивает стандартный интерфейс между приложениями и файловыми системами и устройствами, содержащими данные. Различные методы доступа отражают различные структуры файлов и различные пути доступа и обработки данных. [2]
В упрощённом виде архитектура ФС представлена на рисунке 5.2.
Рисунок 5.2 – Модель ФС [4]
Файловые системы поддерживают несколько функционально различных типов файлов, различающихся по функциональному назначению:
В UNIX существует понятие жесткой связи (ссылки). Жесткая связь означает связь между именем файла и самим файлом. В UNIX любой файл может иметь несколько (точнее, неограниченное количество) жестких связей, т.е. неограниченное количество имен. Это могут быть разные имена в одном каталоге или даже имена, хранящиеся в разных каталогах одного дискового тома. [1]
Файлы относятся к абстрактному механизму. Они предоставляют способ сохранять информацию на запоминающем устройстве и считывать ее позднее снова. При этом от пользователя должны скрываться такие детали, как способ и место хранения информации, а также детали работы устройства.
Наиболее важной характеристикой любого механизма абстракции является именование управляемых объектов. Правила именования файлов меняются от одной ОС к другой, но, как правило, все современные операционные системы поддерживают использование в качестве имен файлов 8-символьные текстовые строки. Часто в именах разрешается использование цифр и специальных символов.
Во многих операционных системах имя файла состоит из двух частей, разделенных точкой. Часть имени после точки называется расширением файла и обычно означает его тип.
В некоторых ОС, например, Windows, расширение указывает на программу, создавшую файл. Другие ОС, например, UNIX, не принуждают пользователя строго придерживаться расширений.
В иерархически организованных файловых системах обычно используются три типа имен файлов: простые, составные (абсолютные) и относительные.
Простое (короткое) символьное имя идентифицирует файл в пределах одного каталога. Несколько файлов могут иметь одно и то же простое имя, если они принадлежат разным каталогам.
Составное (полное, абсолютное) символьное имя представляет собой цепочку, содержащую имя диска и имена всех каталогов, через которые проходит путь от корневого каталога до данного файла.
Относительное имя файла определяется через текущий каталог, т.е. каталог, в котором в данный момент времени работает пользователь. Таким образом, относительных имен у файла может быть достаточно много, и все они являются частью полного имени. [2]
Приведем пример обозначения имен файла.
Рисунок 5.3 –Пример файловой системы
Для рисунка 5.3 обозначение файлов и каталогов следующее:
Символьное имя файла:
Аналогично обращение к каталогу: /dev/disk – абсолютный путь (от корня /); disk – относительный путь, если находимся в /dev.
Понятие файла включает не только хранимые им данные и имя, но и информацию, описывающую свойства файла. Эта информация составляет атрибуты файла. Список атрибутов может быть различным в различных ОС.
В UNIX атрибуты файла можно получить командой ls –l, например, при вводе строки
$ ls -1 /bin/gzip
на экране отобразится следующая информация:
|
-rwxr-xr-x 3 root root 62100 May 28
2010 /bin/gzip 1 2 3
4 5 6 7 8 |
В любой операционной системе ФС имеет два уровня организации: логический и физический. Подробная информация об организации ФС приведена в [2].
Файловая система UNIX характеризуется:
Логическая файловая система в ОС UNIX (или просто файловая система) - это иерархически организованная структура всех каталогов и файлов в системе, начинающаяся с корневого каталога. Логическая файловая система может состоять из одной или нескольких физических файловых (под)систем, являющихся разделами физических носителей (HDD, CD или USB-FLASH).
Файловая система контролирует права доступа к файлам, выполняет операции создания и удаления файлов, а также выполняет запись/чтение данных файла. Поскольку большинство прикладных функций выполняется через интерфейс файловой системы, следовательно, права доступа к файлам определяют привилегии пользователя в системе.
Иерархическая структура файловой системы UNIX (рис. 5.4) упрощает ориентацию в ней. Каждый каталог, начиная с корневого (/), в свою очередь, содержит файлы и другие каталоги (подкаталоги). Каждый каталог содержит также ссылку на родительский каталог (для корневого каталога родительским является он сам), представленную каталогом с именем две точки (..) и ссылку на самого себя, представленную каталогом с именем точка (.). [1]
Рисунок 5.4 - Типичная файловая система UNIX [7]
Основные каталоги в Unix приведены в таблице 5.1.
Таблица 5.1 – Системные каталоги Unix
|
Название каталога |
Назначение |
|
/ |
Корневой каталог |
|
bin |
Файлы основных команд (утилит) |
|
boot |
Файлы загрузки системы |
|
dev |
Файлы устройств |
|
etc |
Файлы конфигурации системы |
|
home |
Домашние каталоги пользователей |
|
lib |
Основные разделяемые библиотеки и модули ядра |
|
mnt |
Точка монтирования для временно подключаемых файловых систем. Сюда подключаются ФС других устройств |
|
root |
Домашний каталог суперпользователя |
|
opt |
Дополнительные пакеты ПО |
|
sbin |
Основные системные исполняемые файлы |
|
tmp |
Временные файлы |
|
usr |
Все установленные пакеты программ, справочная документация |
|
var |
Переменные данные (журналы ОС, кэш-файлы) |
Источники:
1. Студопедия. ОС Unix, основные характеристики, файловая структура. - URL: https://studopedia.ru/17_120840_OC-UNIX-osnovnie-harakteristiki-faylovaya-struktura.html
2. Назаров, С. В. Современные операционные системы [Электронный ресурс] / С. В. Назаров, А. И. Широков. — Электрон. текстовые данные. — М. : Интернет-Университет Информационных Технологий (ИНТУИТ), 2016. — 351 c. — 978-5-9963-0416-5. — Режим доступа: http://www.iprbookshop.ru/52176.html
3. Студопедия. Файловая система. – URL: https://studopedia.ru/17_87605_faylovaya-sistema.html
4. StudFiles. Общая модель файловой системы. - URL: https://studfiles.net/preview/3489830/page:3/
5. Компьютерная документация, инструкции и статьи. Атрибуты файлов. - URL: http://docscom.ru/blog/nix/97.html
6. Студопедия. Файловая система Unix. – URL: https://studopedia.ru/9_88222_faylovaya-sistema-UNIX.html
7. StudFiles. Структура файловой системы Unix. - URL: https://studfiles.net/preview/5687378/page:2/