Подкаталог

Корневой каталог и подкаталоги имеют различия: корневой создается при форматировании диска, он находится на фиксированном месте, его нельзя удалить командой RDIR (в ОС MS DOS). Подкаталоги хранятся в любом месте на диске, как обычные файлы.

Форматы полей и содержимое каталогов нижнего уровня такие же, как у корневого каталога. Каталог нижнего уровня всегда связан с каталогом-родителем, который может быть как корневым каталогом, так и каталогом более низкого уровня. В каталоге-родителе всегда есть запись для каталога потомка, которая отличается от записи обычного файла тем, что в ней установлен бит №4 в байте атрибутов в единицу и поле размера файла имеет нулевую длину.

При создании каталогов нижнего уровня в нем выделяются две записи:

- первая запись означает сам каталог, она в поле имени имеет символ «.», номер начального кластера в этой записи соответствует местоположению самого подкаталога;

- вторая запись – ссылка на каталог-родитель. В поле имени «..» номер начального кластера указывает местоположение каталога-родителя.

Если начальный кластер каталога-родителя равен нулю, то это означает, что родителем является корневой каталог.

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

В иерархической структуре данных логический адрес объекта задается маршрутом (путем доступа), ведущим от вершины структуры к объекту (рисунок 3.4). При записи пути доступа к файлу, проходящего через систему вложенных каталогов, все промежуточные каталоги разделяются между собой определенным символом. Отдельные компоненты в ОС UNIX разделяются косой чертой /, а в MS DOS и Windows – обратной косой чертой "\" (слэш – обратная косая черта), например: D:\Статьи\St1.doc (рисунок 3.3).

Рисунок 3.3 – Иерархическая структура корневого каталога логического диска D

Указатель перечня имен каталогов на пути к файлу называется абсолютным именем пути. Абсолютные имена путей всегда начинаются от корневого каталога и являются уникальными. Кроме того применяется и относительное имя пути. Оно используется вместе с понятием текущего каталога. Пользователь может назначить один из каталогов текущим рабочим каталогом. В этом случае все имена путей, не начинающиеся с символа разделителя, считаются относительными и отсчитываются относительно текущего каталога. Например, если текущим каталогом является каталог Мои рисунки, тогда к файлу с абсолютным путем D:\Мои рисунки\Ris_2.bmp можно обратиться просто как к Ris_2.bmp.

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

Имена файлов

Файл – это именованная последовательность байтов произвольной длины. Файлы идентифицируются именами. Пользователи дают файлам символьные имена, при этом учитываются ограничения ОС как на используемые символы, так и на длину имени. В OC MS DOS эти границы были весьма узкими: длина имен ограничивается известной схемой 8.3 (8 символов – собственно имя, 3 символа – расширение имени). Однако пользователю гораздо удобнее работать с длинными именами, поскольку они позволяют дать файлу действительно мнемоническое название, по которому даже через достаточно большой промежуток времени можно будет вспомнить, что содержит этот файл. Поэтому современные файловые системы, как правило, поддерживают длинные символьные имена файлов.

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

Длинные имена поддерживаются не только новыми файловыми системами, но и новыми версиями хорошо известных файловых систем. Например, в ОС Windows 95 используется 16 битовая файловая система, представляющая собой существенно измененный вариант 12 битовой FAT. Среди многих других усовершенствований одним из главных достоинств явилась поддержка длинных имен. Кроме проблемы генерации эквивалентных коротких имен, при реализации нового варианта FAT важной задачей была задача хранения длинных имен при условии, что принципиально метод хранения и структура данных на диске не должны были измениться. ОС Windows 98 использует 32-битовую FAT.

Соглашение 8.3 для записи в каталоге отводит один 32 байтный элемент, Windows – до 21 элемента. Длинное имя – до 256 символов, полное имя – до 260 символов, начиная от корня. Прописные и строчные буквы не различаются, но ОС регистрируются.

В момент записи файла на диск система Windows, прежде всего, проверяет имя файла. Если она «видит», что в этом имени не более восьми символов и при этом в нем нет пробелов, то система «понимает», что перед ней обычное короткое имя файла и отво­дит для него один 32-байтный элемент.

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

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


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  



double arrow
Сейчас читают про: