Файловая структура логического диска

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

MS-DOS избавляет пользователя от такой работы и ведет ее сама.

Для обеспечения доступа к файлам файловая система MS-DOS организует и поддерживает на логическом диске определенную файловую структуру(рис. 1.5).

Элементы файловой структуры:

– стартовый сектор(сектор начальной загрузки, Boot-сектор);
таблица размещения файлов (FAT – File Allocation Table);
корневой каталог(Root Directory);
область данных(оставшееся свободным дисковое пространство).

Эти элементы создаются специальными программами в среде MS-DOS в процессе инициализации диска.

Стартовый сектор (сектор начальной загрузки, Boot-сектор)

Здесь записана информация, необходимая MS-DOS для работы с диском:

– идентификатор ОС (если диск системный);
– размер сектора диска;
– количество секторов в кластере;
– количество резервных секторов в начале диска;
– количество копий FAT на диске (стандарт – две);
– количество элементов в каталоге;
– количество секторов на диске;
– тип формата диска;
– количество секторов в FAT;
– количество секторов на дорожку;
– количество поверхностей;
– блок начальной загрузки ОС.

Рис. 1.5. Файловая структура на дискете емкостью 360 кбайт

 

За стартовым сектором располагается FAT.

FAT (таблица размещения файлов)

Область данных диска представлена в MS-DOS как последовательность пронумерованных кластеров.

FAT – это массив элементов, адресующих кластеры области данных диска. Каждому кластеру области данных соответствует один элемент FAT. Элементы FAT служат в качестве цепочки ссылок на кластеры файла в области данных.

FAT –крайне важный элемент файловой структуры. Нарушения в FAT могут привести к полной или частичной потери информации на всем логическом диске. Именно поэтому, на диске хранится две копии FAT. Существуют специальные программы, которые контролируют состояние FAT и исправляют нарушения.

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

Каталоги(подкаталоги). Каталог – это определенное место на диске (в области данных диска), где содержится информация о файлах и подкаталогах, привязанных к данному каталогу.

MS-DOS поддерживает иерархическую структуру каталогов (древообразную, см. рис. 1.6).

Рис. 1.6. Иерархическая структура каталогов

 

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

Каждый каталог, кроме корневого, имеет "родителя", т.е. другой каталог, в котором зарегистрирован данный каталог. MS-DOS рассматривает каждый каталог, кроме корневого, как файл.

Файлы. Файл – это поименованная область памяти на каком-либо физическом носителе, предназначенная для хранения информации. Файл всегда зарегистрирован в каком-либо каталоге, в том числе, может быть "привязан" и к корневому каталогу (см. рис. 1.7).

 

Рис. 1.7. Иерархическая структура каталогов с файлами

 

Идентификация логических дисков, каталогов и файлов.Идентификация логических дисков, каталогов, файлов осуществляется на базе имен.

Файловая система MS-DOS не допускает, чтобы логические диски, каталоги, файлы были с одинаковыми ИДЕНТИФИКАТОРАМИ!

В качестве имени логического диска используется одна из букв латинского алфавита (A ... Z). Каждый файл или каталог, кроме корневого, имеет полное имя.

Полное имя файла состоит из следующих частей (рис. 1.8):

– имя логического диска (A … Z);
– символ-разделитель(двоеточие) ':';
– символ, идентифицирующий корневой каталог – '\' (слэш);
– перечень каталогов и подкаталогов (разделенных символом '\');
– собственно имя файла.

Рис. 1.8. Полное имя файла

 

Собственно имя файла состоит из имени, символа-разделителя '.'(точка) и расширения имени файла.

Маршрут доступа к файлу = "Имя логического диска" + "двоеточие" + "идентификация корневого каталога" + "весь перечень имен родительских каталогов".

Максимальное количество символов в полном имени файла равно 128.

Максимальное количество символов в имени файла равно 8.

Максимальное количество символов в расширении имени файла равно 3.

Расширение не обязательно, т.е. может и не присутствовать (в этом случае точка тоже отсутствует). Таким образом, размер собственно имени файла не превышает 13 символов (с учетом точки).

В полном имени файла разрешается использовать только следующие символы: A…Z, a … z, 0 … 9, $, &, #, `, ~, (, ), -, %, !, _, ^.

В полном имени файла запрещается использовать все остальные символы.

Примеры допустимых имен файлов:
format.COM read.me myfile.txt 28-03-96.doc 123.45

Примеры не допустимых имен файлов:
123456789.txt aa?.doc 35*.? i\t.f.doc *.txt my:file.txt

Использование расширений. Файлы, в зависимости от информации которая там хранится, могут иметь различное назначение: данные, программы, драйверы, настроечные файлы и т.д.

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

В MS-DOS есть перечень предопределенных и наиболее часто встречающихся расширений файлов. В табл. 3 приведены некоторые из них.

Таблица 1

Расширение Назначение файла
EXE, COM Выполняемые файлы в MS-DOS – это программы, созданные с помощью специальных инструментальных систем программирования, базирующиеся на применении языков программирования
BAT Файл последовательности команд MS-DOS (пакетный)
SYS Системный файл или файл драйвера устройств
OVR OVL Оверлейные файлы
BAK Резервная (предыдущая) копия файла
TXT Текстовый ASCII-файл
DOC Файл-документ MS Word
PAS Текст программы на языке программирования Pascal
C, CPP Тексты программ на языках программирования С, С++
ASM Текст программы на языке Ассемблер.
BMP Файл изображения в формате Windows BitMaP
GIF Файл точечного изображения (Graphic Interchange Format)
PCX Файл изображения в формате Paintbrush
TIF Файл изображения (Tagged Image File Format)
INI, CFG Файлы настроек и конфигураций
TMP Временный файл

 

Устройства MS-DOS. В MS-DOS имеется ряд имен файлов, которые зарезервированы для внутреннего использования. Каждое такое имя отражает какое-либо устройство. Запрещается использование этих имен не по назначению. В табл. 4 приведен перечень этих имен.

Таблица 2

Имя Назначение
AUX Асинхронный интерфейс (Auxiliary – вспомогательный выход)
CLOCK$ Драйвер часов
CON Консоль (клавиатура, дисплей)
COM1 Первый порт последовательного ввода/вывода (от COMmunication)
COM2 Второй порт последовательного ввода/вывода
COM3 Третий порт последовательного ввода/вывода
COM4 Четвертый порт последовательного ввода/вывода
LPT1 Первый порт параллельного ввода/вывода (от Line PrinTer 1)
LPT2 Второй порт параллельного ввода/вывода
LPT3 Третий порт параллельного ввода/вывода
NUL Отсутствующий выход ("нулевое устройство")
PRN Принтер (от PRiNter – аналог LPT1)

С точки зрения пользователя эти устройства ничем не отличаются от обычных файлов (с ними можно производить все те же операции, что и с обычными файлами). Однако не рекомендуется использовать имена файлов, построенные на базе вышеприведенных зарезервированных имен, такие, как: NUL.BAT, COM2.COO, PRN. TXT и т.п. Использование их в качестве расширений имен файлов допустимо: TEXT.PRN, FILE1.CON, FILE.NUL и т.п.

Символы подстановки в именах файлов. Когда необходимо произвести какие-либо действия над файлами пользователь вызывает определенные внутренние или внешние команды MS-DOS и передает им в качестве параметров имена файлов. Очень часто приходится производить одни и те же действия над многими файлами. Например, необходимо скопировать все файлы какого-либо каталога в другой каталог. Если файлов больше 200, то ровно 200 раз необходимо произвести эту операцию для каждого файла в отдельности. Это, как минимум, неудобно и непроизводительно для пользователя. Для решения такого рода проблем существуют специальные средства, которые помогают производить однотипные операции над целой группой файлов одной командой.

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

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

Символ * означает, что команда при фильтрации файлов признает все символы, в имени или расширении файла, начиная с позиции, где находится символ *.

Символы ? и * действуют не зависимо друг от друга применительно к имени или расширению.

Примеры:

Выполнить операцию над следующими группами файлов:

*.* – все файлы, без исключения;

*.txt – файлы с любыми именами, но с расширением txt;

II*.* – файлы, имена которых начинаются с цепочки символов II и имеющие любое расширение;

YE??0198.* – файлы, имена которых начинаются с цепочки символов YE, два следующих символа могут быть любыми, следующие четыре символа должны быть 0198, расширение любое.

Атрибуты файлов. Каждый файл и каталог имеет атрибут, который указывает на то, что этот файл является именно файлом, или на то, что он является каталогом. Файлы, в зависимости от атрибута, могут быть скрытыми, архивными, системными, только для чтения.