Чтобы обратиться к информации на диске,
находящейся в файле, надо знать физический
адрес первого сектора (№ поверхности + №
дорожки + № сектора), общее количество
кластеров, занимаемое данным файлом, адрес
следующего кластера, если размер файла
больше, чем размер одного кластера и т.д. Все
это очень туманно, трудно и не нужно.
MS-DOS избавляет пользователя от такой
работы и ведет ее сама.
Для обеспечения доступа к файлам файловая
система MS-DOS организует и поддерживает на
логическом диске определенную файловую
структуру(рис. 1.5).
Здесь записана информация, необходимая
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, $, &, #, `, ~, (, ), -, %, !, _, ^.
В полном имени файла запрещается
использовать все остальные символы.
Использование расширений. Файлы,
в зависимости от информации которая там
хранится, могут иметь различное назначение:
данные, программы, драйверы, настроечные
файлы и т.д.
Расширения имени файла – не обязательный,
но очень важный компонент. Он используется
для разделения файлов по отдельным
категориям (данные, программы, драйверы и т.д.).
В 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 приведен перечень
этих имен.
Первый порт последовательного
ввода/вывода
(от 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,
расширение любое.
Атрибуты файлов. Каждый файл и
каталог имеет атрибут, который указывает на
то, что этот файл является именно файлом,
или на то, что он является каталогом. Файлы,
в зависимости от атрибута, могут быть
скрытыми, архивными, системными, только для
чтения.