Расширение имени типы всех файлов. Типы файлов

Тема: Файловая система ОС.

Часть операционной системы, работающей с файлами, называется файловой системой (ФС)

Аспекты ФС (с точки зрения пользователя) является ее внешнее представление, т.е.

    именование и защита файлов;

    операции с файлами;

Именование файлов :

При создании файла процесс дает файлу имя. Когда процесс завершает работу, файл продолжает свое существование, и по его имени к файлу могут иметь доступ другие процессы.

Все современные ОС в качестве имен файлов используют 8-ми символьные текстовые строки. Также в именах файлов также разрешается использование цифр и специальных символов. Многие файловые системы поддерживают имена файлов до 255 символов.

В некоторых файловых системах есть различие между прописными и строчными буквами (например, Unix). В ОС MS-DOS такого различия нет.

Многие ОС, например, Windows 95 , Windows 98 используют ФС ОС MS - DOS , и наследуют многие ее свойства, включая именование файлов. ОС Windows NT , Windows 2000 также поддерживают ФС MS - DOS и наследуют ее свойства. Однако у последних двух ОС имеется своя ФС ( NTFS ) , обладающая своими свойствами (например, именами файлов в кодировке Unicode ).

Во многих ОС имена файлов могут состоять из 2-х частей, разделенных точкой

(имя файла. расширение файла) и обычно означает тип файла.

В MS - DOS имя файла содержит 8 символов + 3 символа отводится на расширение файла. В некоторых ОС (например, Unix ) расширения файлов являются просто соглашениями , которые могут придерживаться пользователи.

Способы структурирования файлов:

    Неструктурированная последовательность байтов .

В этом случае ОС не интересуется содержимым файла . Все что она видит, это байты. Значения этим байтам придается программами уровня пользователя. Такой подход используется в ОС Windows , Unix . Такой подход обеспечивает максимальную гибкость .

    Последовательность записей

первый шаг к структурированию файлов. В данной модели файл- последовательность записей фиксированной длины, каждая со своей внутренней структурой. В этом подходе важным является то, что операция чтения возвращает одну запись, а операция записи перезаписывает или дополняет одну запись.

    Третий вариант – файл представляет собой дерево записей , не обязательно одной и той же длины.

Каждая запись в фиксированной позиции содержит поле ключа. Дерево сортировано по ключевому полю, что обеспечивает быстрый поиск заданного ключа. Такой вариант представления файловых систем широко применяются на больших мэйнфреймах, которые используются для коммерческой обработки данных.

Типы файлов:

    Регулярные файлы – к ним относятся все файлы, содержащие информацию пользователя.

    Каталоги – системные файлы, обеспечивающие поддержку структуры ФС.

    Символьные специальные файлы – имеют отношение к вводу-выводу и используются для моделирования последовательных устройств ввода-вывода, таких, как терминалы, принтеры, сети.

    Блочные специальные файлы – используются для моделирования дисков.

Регулярные файлы в основном являются либо ASCII-файлами, либо двоичными файлами. ASCII-файлы состоят из текстовых строк. В некоторых ОС каждая строка завершается символом возврата каретки. В некоторых (unix) используется символ перевода строки . В ОС MS-DOS используются оба символа. Строки не обязаны иметь одну и ту же длину.

Остальные файлы называются двоичными файлами, т.е. они не являются ASCII-файлами. Обычно у них есть некая внутренняя структура, известная программе, использующей их (рисунок 6.2).

Доступ к файлам:

В старых ОС предоставлялся только один доступ к файлам – последовательный. При последовательном доступе к файлу процесс может читать байты файла или его записи только последовательно.

Файлы, байты которых могут быть прочитаны в произвольном порядке, называются файлами произвольного (прямого ) доступа. Используются например для приложений БД.

Атрибуты файла:

Дополнительные сведения о файле (дата, время создания) называют атрибутами файла. Список атрибутов может быть разным в зависимости от ОС.

Атрибут Значение

Защита Кто и каким образом может получить доступ к файлу

Пароль Пароль для получения доступа к файлу

Создатель Идентификатор пользователя, создавшего файл

Владеделец Текущий владелец

Флаг «Только чтение» 0 –для чтения/записи; 1- только чтение

Флаг «Скрытый» 0 – нормальный, 1 – не отображать в перечне файлов каталога

Флаг «Системный» 0 – нормальный; 1- системный

Флаг «Архивный» 0 – заархивирован; 1 – требуется архивация

Флаг ASCII/двоичный0 – ASCII ; 1- двоичный

Флаг произвольного доступа 0 – только последовательный доступ; 1 – произвольный доступ

Флаг «временный» 0 – нормальный, 1- для удаления файла по окончании процесса

Флаги блокировки 0 – неблокированный; отличный от нуля для блокированного

Длина записи Количество байтов в записи

Время создания Дата и время создания файла

Время последнего

доступа Дата и время последнего изменения файла

Текущий размер Количество байтов в файле

Максимальный размер Кол-во байтов до которого можно увеличивать размер файла

Операции с файлами

Для работы с файлами могут использоваться в ос следующие системные функции:

    Create (Создание). Файл создается без данных. Этот системный вызов объявляет о появлении нового файла и позволяет установить некоторые его атрибуты.

    Delete (Удаление). Удаление файла.

    Open (Открытие) – перед работой с файлом, необходимо его открыть. Данный системный вызов позволяет системе прочитать в оперативную память атрибуты файла и список дисковых адресов для быстрого доступа к содержимому файла при последующих вызовах.

    Close (закрытие).

    Read (чтение). Чтение данных из файла.

    Write (запись). Если текущая позиция находится в конце файла, размер файла автоматически увеличивается. В противном случае запись производится поверх существующих данных, которые теряются навсегда

    Append (добавление). Усеченная форма Write. Может добавлять данные только в конец файла.

    Seek (поиск). Для файлов произвольного доступа. Устанавливает файловый указатель в определенную позицию в файле. После выполенения этого системного вызова данные могут читаться или записываться в этой позиции.

    Get attributes (получение атрибутов).

    Set attributes (Установка атрибутов)

    Rename (переименование) – изменение имени файла.

Типы файловых систем (форма каталога):

    Одноуровневая ФС. Наличие корневого каталога.

    Двухуровневая система каталогов. Наличие корневого каталога - каталоги пользователей.

    Иерархическая (многоуровневая) каталоговая система – множество каталогов и подкаталогов.

Системные вызовы для работы с каталогами:

    Create – создание каталога.

    Delete – удаление каталога.

    Opendir – открытие каталога.

    Closedir – закрытие каталога.

    Readdir – чтение следующего элемента открытого каталога.

    Rename – переименование каталога.

    Link – Установление связей.

Структура файловой системы (разработчик)

Файловые системы хранятся на дисках. Большинство дисков могут делиться на несколько разделов с независимой ФС на каждом разделе.

Сектор 0 диска называется главной загрузочной записью (MBR , Master Boot Record ) и используется для загрузки компьютера.

В конце главной загрузочной записи содержится таблица разделов. В этой таблице хранятся начальные и конечные адреса (номера блоков) каждого раздела. Один из разделов помечен в таблице как активный.

При загрузке компьютера BIOS считывает и исполняет MBR – запись, после чего загрузчик в MBR-записи определяет активный раздел диска, считывает его первый блок, называемый загрузочным, и исполняет его.

Программа, находящаяся в загрузочном блоке, загружает ОС, находящуюся в этом разделе.

Каждый дисковый раздел начинается с загрузочного блока, даже если в нем не содержится загружаемой ОС.

Часто ФС содержат некоторые из элементов, показанных на рис. 6.8. Один из таких элементов, называемый суперблоком , содержит ключевые параметры ФС и считывается в память при загрузке компьютера или при первом обращении к ФС. Типичная информация, хранящаяся в суперблоке, включает магическое число, позволяющее различать системные файлы, количество блоков в ФС, а также ключевую административную информацию.


Следом располагается информация о свободных блоках файловой системы, например в виде битового массива или списка указателей . За этими данными может следовать информация об i -узлах , представляющих собой массив структур данных, по одной структуре на файл, содержащих всю информацию о файлах.

Следом может размещаться корневой каталог , содержащий вершину дерева ФС. Остальное место дискового раздела занимают все остальные файлы и каталоги.

Структура ФС MS - DOS

Жесткие диски предназначены для постоянного хранения информации.

Диск имеет равномерное покрытие, в котором запоминаются данные. DOS располагает данные последовательностями по 512 байт , которые называются секторами , но в принципе операционная система может организовывать данные на диске как угодно.

Имена файлов

Общие сведения о файлах

Файлы представляют собой абстрактные объекты. Их задача - хранить информацию, скрывая от пользователя детали работы с устройствами. Когда процесс создает файл, он дает ему имя. После завершения процесса файл продолжает существовать и через свое имя может быть доступен другим процессам.

Правила именования файлов зависят от ОС. Многие ОС поддерживают имена из двух частей (имя+расширение), например progr.c (файл, содержащий текст программы на языке Си) или autoexec.bat (файл, содержащий команды интерпретатора командного языка). Тип расширения файла позволяет ОС организовать работу с ним различных прикладных программ в соответствии с заранее оговоренными соглашениями. Обычно ОС накладывают некоторые ограничения, как на используемые в имени символы, так и на длину имени файла. В соответствии со стандартом POSIX, популярные ОС оперируют удобными для пользователя длинными именами (до 255 символов).

Важный аспект организации файловой системы и ОС - следует ли поддерживать и распознавать типы файлов. Если да, то это может помочь правильному функционированию ОС, например не допустить вывода на принтер бинарного файла.

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

Напомним, что хотя внутри подсистемы управления файлами обычный файл представляется в виде набора блоков внешней памяти, для пользователей обеспечивается представление файла в виде линейной последовательности байтов. Такое представление позволяет использовать абстракцию файла при работе с внешними устройствами, при организации межпроцессных взаимодействий и т. д. Так, например, клавиатура обычно рассматривается как текстовый файл, из которого компьютер получает данные в символьном формате. Поэтому иногда к файлам приписывают другие объекты ОС, например специальные символьные файлы и специальные блочные файлы, именованные каналы и сокеты, имеющие файловый интерфейс. Эти объекты рассматриваются в других разделах данного курса.

Обычные (или регулярные) файлы реально представляют собой набор блоков (возможно, пустой) на устройстве внешней памяти, на котором поддерживается файловая система. Такие файлы могут содержать как текстовую информацию (обычно в формате ASCII), так и произвольную двоичную (бинарную) информацию.

Текстовые файлы содержат символьные строки, которые можно распечатать, увидеть на экране или редактировать обычным текстовым редактором.

Другой тип файлов - нетекстовые, или бинарные, файлы. Обычно они имеют некоторую внутреннюю структуру. Например, исполняемый файл в ОС Unix имеет пять секций: заголовок, текст, данные, биты реаллокации и символьную таблицу. ОС выполняет файл, только если он имеет нужный формат. Другим примером бинарного файла может быть архивный файл. Типизация файлов не слишком строгая.

Обычно прикладные программы, работающие с файлами, распознают тип файла по его имени в соответствии с общепринятыми соглашениями. Например, файлы с расширениями.c, .pas, .txt - ASCII-файлы, файлы с расширениями.exe - выполнимые, файлы с расширениями.obj, .zip - бинарные и т. д.

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

Файлы бывают разных типов: обычные файлы, специальные файлы, файлы-каталоги.

Обычные файлы подразделяются на текстовые и двоичные. Текстовые файлы состоят из строк символов, представленных в ASCII-коде. Это могут быть документы, исходные тексты программ и т.п. Текстовые файлы можно прочитать на экране и распечатать на принтере. Двоичные файлы не используют ASCII-коды, они часто имеют сложную внутреннюю структуру, например, объектный код программы или архивный файл. Все операционные системы должны уметь распознавать хотя бы один тип файлов - их собственные исполняемые файлы.


Специальные файлы - это файлы, ассоциированные с устройствами ввода-вывода, и позволяющие пользователю выполнять операции ввода-вывода, используя обычные команды записи в файл или чтения из файла. Эти команды обрабатываются вначале программами файловой системы, а затем на некотором этапе выполнения запроса преобразуются ОС в команды управления соответствующим устройством. Специальные файлы, так же как и устройства ввода-вывода, делятся на блок-ориентированные и байт-ориентированные.

Каталог специальный вид файла. В нем содержатся ссылки на другие файлы. Поскольку ссылки на эти файлы содержатся лишь в одном из каталогов, для пользователей эти файлы как бы расположены в каталоге. На самом деле, конечно, все файлы находятся в секторах диска. Но это истинно лишь на физическом уровне, а на уровне представления данных файлы находятся в каталогах. Отметим, что каталоги появились не сразу и не во всех операционных системах. Они возникли там, где требовался большой объем хранимой информации (например, в файловых системах жестких дисков) и, следовательно, возникли сложности с организацией и размещением большого числа файлов. Эти преимущества каталогов следует использовать при работе с операционными системами, содержащих каталоги.

В разных файловых системах могут использоваться в качестве атрибутов разные характеристики, например:


Ú информация о разрешенном доступе,

Ú пароль для доступа к файлу,

Ú владелец файла,

Ú создатель файла,

Ú признак "только для чтения",

Ú признак "скрытый файл",

Ú признак "системный файл",

Ú признак "архивный файл",

Ú признак "двоичный/символьный",

Ú признак "временный" (удалить после завершения процесса),

Ú признак блокировки,

Ú длина записи,

Ú указатель на ключевое поле в записи,

Ú длина ключа,

Ú времена создания, последнего доступа и последнего изменения,

Ú текущий размер файла,

Ú максимальный размер файла.

Каталоги могут непосредственно содержать значения характеристик файлов, как это сделано в файловой системе MS-DOS, или ссылаться на таблицы, содержащие эти характеристики, как это реализовано в ОС UNIX (рисунок 1.).

Рис. 1.Структура каталогов: а - структура записи каталога MS-DOS (32 байта);
б - структура записи каталога ОС UNIX

Иерархия каталогов может быть деревом или сетью. Каталоги образуют дерево, если файлу разрешено входить только в один каталог, и сеть - если файл может входить сразу в несколько каталогов. В MS-DOS каталоги образуют древовидную структуру, а в UNIX"е - сетевую. Как и любой другой файл, каталог имеет символьное имя и однозначно идентифицируется составным именем, содержащим цепочку символьных имен всех каталогов, через которые проходит путь от корня до данного каталога.

Рис. 2. Логическая организация файловой системы
а - одноуровневая; б - иерархическая (дерево); в - иерархическая (сеть)



Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: