Просмотреть иерархическую структуру диска с. О файлах и файловых структурах

| О файлах и файловых структурах

Урок 10
Файлы и файловые структуры

§11. О файлах и файловых структурах

Основные темы параграфа:

Что такое файл;
- имя файла;
- логические диски;
- файловая структура диска;
- путь к файлу; полное имя файла;
- просмотр файловой структуры.

Изучаемые вопросы:

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

Что такое файл

Информация на внешних носителях хранится в виде файлов.

Файл - это именованная область внешней памяти, предназначенная для хранения информации.

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

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

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

В каждом файле хранится отдельный информационный объект : документ, статья, числовой массив, программа и пр. Заключенная в файле информация становится активной, т. е. может быть обработана компьютером, только после того, как она будет загружена в оперативную память.

Все необходимые действия над файлами обеспечивает операционная система .

Чтобы найти нужный файл , пользователю должно быть известно:

А) какое имя у файла;
б) где хранится файл.

Имя файла

Вот пример имени файла * :

myprog.pas

* Последующие примеры ориентированы на правила, принятые в операционных системах фирмы Microsoft: MS-DOS и Windows. Также проиллюстрированы приложения ОС Linux.


Слева от точки находится собственно имя файла (myprog ). Следующая за точкой часть имени (pas ) называется расширением файла. Обычно в именах файлов употребляются латинские буквы и цифры. Кроме того, имя файла может и не иметь расширения. В операционной системе Microsoft Windows в именах файлов допускается использование русских букв; максимальная длина имени - 255 символов.

Расширение указывает , какого рода информация хранится в данном файле. Например, расширение txt обычно обозначает текстовый файл (содержит текст), расширение рсх - графический файл (содержит рисунок), zip или rаr - архивный файл (содержит архив - сжатую информацию), pas - программу на языке Паскаль.

Логические диски

На одном компьютере может быть несколько дисководов - устройств работы с дисками. Часто на персональном компьютере встроенный в системный блок жесткий диск большой емкости делят на разделы. Каждый из таких разделов называется логическим диском и ему присваивается однобуквенное имя (после которого ставится двоеточие) С:, D:, Е: и т. д. Имена А: и В: обычно относятся к сменным дискам малого объема - гибким дискам (дискетам). Их тоже можно рассматривать как имена логических дисков, каждый из которых полностью занимает реальный (физический) диск * . Следовательно, А:, В:, С:, D: - это всё имена логических дисков.

* На современных моделях ПК гибкие магнитные диски вышли из употребления.


Оптическому дисководу ставится в соответствие следующее по алфавиту имя после имени последнего раздела жесткого диска. Например, если на жестком диске есть разделы С: и D:, то имя Е: будет присвоено оптическому диску. А при подключении флеш-памяти в списке логических дисков появится еще диск F:.

Имя логического диска, содержащего файл, является первой «координатой», определяющей месторасположения файла.

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

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

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

В операционной системе Windows для обозначения понятия «каталог» используется термин «папка».

Графическое изображение иерархической файловой структуры называется деревом.

На дереве корневой каталог обычно изображается символом \ . На рисунке 2.10 имена каталогов записаны прописными буквами, а файлов - строчными. Здесь в корневом каталоге имеются две папки: IVANOV и PETROV и один файл fin.com. Папка IVANOV содержит в себе две вложенные папки PROGS и DATA. Папка DATA пустая; в папке PROGS имеются три файла и т. д.


Путь к файлу

А теперь представьте, что вам нужно найти определенный документ. Для этого в «бумажном» варианте надо знать ящик, в котором он находится, а также «путь» к документу внутри ящика: всю последовательность папок, которые нужно открыть, чтобы добраться до искомых бумаг.

Чтобы найти файл в компьютере, надо знать логический диск, на котором находится файл, и путь к файлу на диске, определяющий положение файла на этом диске. Путь к файлу - это последовательность, состоящая из имен каталогов, начиная от корневого и заканчивая тем, в котором непосредственно хранится файл. Вот всем знакомая сказочная аналогия понятия «путь к файлу»: «На дубе висит сундук, в сундуке - заяц, в зайце - утка, в утке - яйцо, в яйце - игла, на конце которой смерть Кощеева».

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

Если представленная на рис. 2.10 файловая структура хранится на диске С:, то полные имена некоторых входящих в нее файлов в символике операционной системы Microsoft Windows выглядят так :

C:\fin.com
С: \IV ANOV\PROGS\prog 1. pas
С: \PETROV\DATA\task. dat

Просмотр файловой структуры

Операционная система предоставляет пользователю возможность просматривать на экране содержимое каталогов (папок).

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

На рисунке 2.11 показан пример отображения на экране компьютера дерева каталогов в ОС Windows.

В правом окне представлено содержимое папки ARCON. Это множество файлов различных типов. Отсюда, например, понятно, что полное имя первого в списке файла следующее:

E:\GAME\GAMES\ARCON\dos4gw.exe

Из таблицы можно получить дополнительную информацию о файлах. Например, файл dos4gw.exe имеет размер 254 556 байтов и был создан 31 мая 1994 года в 2 часа 00 минут.

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

Коротко о главном

Файл - это именованная область внешней памяти компьютера.

Все необходимые действия над файлами обеспечивает операционная система .

Имя файла состоит из собственно имени и расширения . Расширение указывает на тип информации в файле (тип файла).

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

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

Полное имя файла состоит из имени логического диска, пути к файлу на диске и имени файла .

Вопросы и задания

1. Как называется операционная система, используемая в вашем компьютерном классе?

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

3. Каким правилам подчиняются имена файлов в вашей ОС?

4. Что такое путь к файлу на диске, полное имя файла?

5. Научитесь (под руководством учителя) просматривать на экране каталоги дисков на ваших компьютерах.

6. Научитесь инициализировать работу программ из программных файлов (типа ехе, соm).

7. Научитесь выполнять основные файловые операции в используемой ОС (копирование, перемещение, удаление, переименование файлов).

Электронное приложение к уроку


Cкачать материалы урока

О файлах и файловых структурах

Файл

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

  • фиксированное имя (последовательность символов, число или что-то иное, однозначно характеризующее файл);
  • определённое логическое представление и соответствующие ему операции чтения/записи.

Может быть любой - от последовательности бит(хотя читаем именно байтами, а точнее словами-группами из байт, по четыре, по восемь, по шестнадцать) до базы данных с произвольной организацией или любым промежуточным вариантом; многомерной базой данных, строго упорядоченной.

Первому случаю соответствуют операции чтения/записи потока и/или массива (то есть последовательные или с доступом по индексу), второму - команды СУБД. Промежуточные варианты - чтение и разбор всевозможных форматов файлов.

В информатике используют следующее определение: файл - поименованная последовательность байтов.

Работа с файлами реализуется средствами операционных систем.

Имена как у файлов имеют и обрабатываются похожим образом:

  • области данных (необязательно на диске);
  • устройства (как физические, порты например; так и виртуальные);
  • потоки данных (в частности, вход или выход процесса) («pipe» следует переводить словом «конвейер»);
  • сетевые ресурсы, сокеты;
  • объекты операционной системы.

Файлы первого типа исторически возникли первыми и распространены наиболее широко, поэтому часто «файлом» называют и область данных, соответствующую имени.

Файл, как область данных

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



Файл - это информация, хранящаяся на внешнем носителе и объединенная общим именем.

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

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

В каждом файле хранится отдельный информационный объект: документ, статья, числовой массив, программа и пр. Заключенная в файле информация становится активной, т. е. может быть обработана компьютером, только после того, как она будет загружена в оперативную память.

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

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

Чтобы найти нужный файл, пользователю должно быть известно: а) какое имя у файла; б) где хранится файл.

Имя файла

Практически во всех операционных системах имя файла составляется из двух частей, разделенных точкой. Например:

Слева от точки находится собственно имя файла (ту-prog). Следующая за точкой часть имени называется расширением файла (pas). Обычно в именах файлов употребляются латинские буквы и цифры. В большинстве ОС максимальная длина расширения - 3 символа. Кроме того, имя файла может и не иметь расширения. В операционной системе Windows в именах файлов допускается использование русских букв; максимальная длина имени - 255 символов.

Расширение указывает, какого рода информация хранится в данном файле. Например, расширение txt обычно обозначает текстовый файл (содержит текст); расширение рсх - графический файл (содержит рисунок), zip или гаг - архивный файл (содержит архив - сжатую информацию), pas - программу на языке Паскаль.

Логические диски

На одном компьютере может быть несколько дисководов - устройств работы с дисками. Каждому дисководу присваивается однобуквенное имя (после которого ставится двоеточие), например А:, В:, С:. Часто на персональных компьютерах диск большой емкости, встроенный в системный блок (его называют жестким диском), делят на разделы. Каждый из таких разделов называется логическим диском, и ему присваивается имя С:, D:, Е: и т. д. Имена А: и В: обычно относятся к сменным дискам малого объема - гибким дискам (дискетам). Их тоже можно рассматривать как имена дисков, только логических, каждый из которых полностью занимает реальный (физический) диск. Следовательно, А:, В:, С:, D: - это всё имена логических дисков. Имя логического диска, содержащего файл, является первой "координатой", определяющей место расположения файла.

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

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

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

Одноуровневая файловая структура - это простая последовательность файлов. Для отыскания файла на диске достаточно указать лишь имя файла. Например, если файл tetris.exe находится на диске А:, то его "полный адрес" выглядит так:

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

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

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

В операционной системе Windows для обозначения понятия "каталог" используется термин "папка".

Графическое изображение иерархической файловой структуры называется деревом.

На рис. 1 имена каталогов записаны прописными буквами, а файлов - строчными. Здесь в корневом каталоге имеются две папки: IVANOV и PETROV и один файл fin.com. Каталог IVANOV содержит в себе два вложенных каталога PROGS и DATA. Каталог DATA - пустой; в каталоге PROGS имеются три файла и т. д. На дереве корневой каталог обычно изображается символом \.

Рис. 1. Пример иерархической файловой структуры

Различают два состояния каталога (аналогично логическим дискам) – текущее и пассивное. Операционная система помнит текущий каталог на каждом логическом daтекущего диска., в данном случае ОС хранит имя диска и имя каталога.

Можете дважды щелкнуть на значке папки, после чего запустится проводник и покажет вам содержимое выбранной папки (см. рис. 21.1).

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

Когда вы открываете программный файл, запускается программа.

Открыв папку, вы увидите в окне этой папки ее содержимое. Можно настроить Windows таким образом, что каждая папка будет открываться в своем окне. Вот как это можно сделать.

1. В окне папки выберите Сервис=>Свойства папки.

Появится диалоговое окно Свойства папки.

2. На вкладке Общие выберите пункт Открывать каждую папку в отдельном окне.

3. Щелкните на ОК.

Когда закончите, не забудьте закрыть окна всех папок.

Просмотр древовидной структуры

Самое трудное в работе с папками и файлами - организовать их в нечто, что компьютерные специалисты называют древовидной структурой. Древовидная структура хорошо видна в левой части окна программы Проводник. Эта область окна называется Папки (см. рис. 21.1). Если вы не видите этот список, щелкните в панели инструментов на кнопке Папки. Или выберите в меню пункты Вид^Панели Обозревателя^Папки.

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

Щелкнув на знаке «+» (плюс) напротив соответствующей папки, вы можете увидеть все ее вложенные папки, т.е. ветвь древовидной структуры.

Щелкнув на знаке «-» (минус) напротив папки, вы закроете соответствующую ветвь древовидной структуры.

Как скрыть древовидную структуру

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

Список задач зависит от типа просматриваемой папки, выделенного файла и его типа.

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

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

Последняя часть этого сектора содержит таблицу разделов - 4-элементную таблицу с 16-байтовыми элементами. Этой таблицей манипулирует программа FDISK (или эквивалентная утилита в иной операционной системе).

Во время загрузки ROM-BIOS загружает главную корневую запись и передает управление на ее код. Этот код считывает таблицу разделов, чтобы определить раздел, помеченный как активный. Затем в память считывается корректный корневой сектор и выполняется.

Таблица 1. Структура главной корневой записи и таблицы разделов

Таблица 2. Структура описателя раздела

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

Таблица 3. Коды разделов операционных систем Microsoft

Код Вид раздела Размер Тип FAT ОС
01h Основной 0-15 Мбайт FAT12 MS-DOS 2.0
04h Основной 16-32 Мбайт FAT16 MS-DOS 3.0
05h Расширенный 0-2 Гбайт - MS-DOS 3.3
06h Основной 32 Мбайт-2 Гбайт FAT16 MS-DOS 4.0
0Bh Основной 512 Мбайт-2 Гбайт FAT32 OSR2
0Ch Расширенный 512 Мбайт-2 Тбайт FAT32 OSR2
0Eh Основной 32 Мбайт-2 Гбайт FAT16 Windows 95
0Fh Расширенный 0-2 Гбайт - Windows 95

За операционными системами других фирм зарезервированы следующие коды:

  • 02h - раздел CP/M;
  • 03h - раздел Xenix;
  • 07h - раздел OS/2 (файловая система HPFS).

Замечания:

  1. Номера цилиндра и сектора занимают 10 и 6 бит соответственно:
    15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
    c c c c c c c c c c s s s s s s

    Они упорядочены так, что, когда вы загружаете CX 16-битовым значением, оно готово для вызова прерывания INT 13h для чтения нужной порции диска. Таким образом, после чтения Главной записи загрузки в область памяти sect_buf , код CMP byte ptr sect_buf, 80h

    проверит, активен ли первый раздел, а код

    MOV CX, sect_buf

    загрузит CX для вызова INT 13h для чтения корневого сектора раздела № 1.

  2. Значение "относительного сектора" по смещению 08h в каждом разделе эквивалентно головке, сектору и цилиндру начального адреса раздела. Относительный сектор 0 совпадает с цилиндром 0, головкой 0, сектором 1. Относительный номер сектора прирастает сначала по каждому сектору на головке, затем по каждой головке и наконец по каждому цилиндру.

    Применима формула:

    Отн_сек = (#Цил * сек_на_цил * головок) + (#Гол * сек_на_цил) + (#Сек -1)

    Разделы начинаются с четного номера цилиндра, за исключением первого раздела, который может начинаться с цилиндра 0, головки 0, сектора 2 (поскольку сектор 1 занят Главной записью загрузки).

    Когда корневая запись раздела получает управление, DS:SI указывает на соответствующий элемент таблицы разделов.

Структура корневого сектора

Таблица 4. Формат корневого сектора дискеты или раздела жесткого диска

00h 3 JMP xx xx NEAR-переход на код загрузки
03h 8 "I" "B" "M" "4" "." "0" OEM-имя компании и версия системы
0Bh 2 SectSiz число байтов в секторе (всегда 512) начало BPB
0Dh 1 ClustSiz число секторов в кластере
0Eh 2 ResSecs число резервных секторов (секторов перед FAT #1)
10h 1 FatCnt число таблиц FAT
11h 2 RootSiz число 32-байтовых элементов корневого каталога (для FAT32 - 0)
13h 2 TotSecs общее число секторов на носителе (раздел DOS)
15h 1 Media тип носителя информации (то же, что 1-й байт FAT)
16h 2 FatSize число секторов в одной FAT конец BPB
18h 2 TrkSecs число секторов на дорожке
1Ah 2 HeadCnt число головок
1Ch 4 HidnSec число скрытых секторов (исп. в схемах разделения)
20h 4 TotSecs всего секторов, если размер >32 Мб
24h 1 128 физич.номер диска
25h 1 резерв
26h 1 29h признак расшир.структуры
27h 4 ID тома(серийный номер)
2Bh Bh метка (NO NAME)
36h 8 ID файловой системы (FAT12)
3Eh начало кода и данных загрузки

Замечания:

  1. Типы носителей информации:
    • F0h - гибкий диск, 2 стороны, 18 секторов на дорожке;
    • F8h - жесткий диск;
    • F9h - гибкий диск, 2 стороны, 15 секторов на дорожке;
    • FCh - гибкий диск, 1 стороны, 9 секторов на дорожке;
    • FDh - гибкий диск, 2 стороны, 9 секторов на дорожке;
    • FEh - гибкий диск, 1 сторона, 8 секторов на дорожке;
    • FFh - гибкий диск, 2 стороны, 8 секторов на дорожке.
  2. Используйте абсолютное чтение INT 25h (DX=0) для чтения этого сектора. ИЛИ:
    • гибкие диски: корневой сектор = BIOS INT 13h головка 0, дорожка 0, сектор 1;
    • жесткие: читайте Таблицу_разделов для получения BIOS головки/дорожки/сектора.
  3. BPB (BIOS Parameter Block) - подмножество данных, содержащихся в корневом_секторе. Запрос к драйверу "Построить BPB" требует, чтобы драйвер заполнил блок, отмеченный выше. Длина BPB = 13 байт

Таблица параметров дискеты

Эта 10-байтовая структура известна также как "Disk Base Table". Она находится по адресу вектора прерывания INT 1Eh (4-байтовый адрес в 0:0078). Эта таблица задает некоторые важные переменные для устройств дискет. Ее инициализирует ROM-BIOS, а DOS модифицирует, чтобы улучшить производительность дискет.

Таблица 5. Формат таблицы параметров дискеты

Смещение Длина Содержимое
00h 1 Первый байт спецификации:
биты 0-3 - время загрузки головок;
биты 4-7 - длительность шага головок
01h 1 Второй байт спецификации:
бит 0 - флаг режима ПДП;
биты 1-7 - время загрузки головок
02h 1 Задержка перед отключением мотора (в "тиках" ситемных часов)
03h 1 Размер сектора (байт): 0 - 128, 1 - 256, 2 - 512, 3 - 1024
04h 1 Число секторов на дорожке
05h 1 Длина межсекторного промежутка для операций чтения/записи
06h 1 Длина области данных
07h 1 Длина межсекторного промежутка для операции форматирования
08h 1 Символ-заполнитель для форматирования (обычно 0F6h, т.е. "Ў")
09h 1 Время установки головок (в миллисекундах)
0Ah 1 Время запуска мотора (в 1/8 с)

Таблица параметров жесткого диска

Эта 16-байтовая структура находится по адресу вектора прерывания INT 41h (4-байтовый адрес в 0:0104). Параметры для второго жесткого диска (если он есть) находятся по адресу вектора INT 46h . Эти таблицы задают некоторые важные переменные для операций с твердыми дисками.

Таблица 6. Формат таблицы жесткого диска

Смещение Длина Содержимое
00h 2 Число цилиндров
02h 1 Число головок
03h 2 Не используется (всегда 0)
05h 2 Номер начального цилиндра предкомпенсации
07h 1 Максимальная длина блока коррекции ошибок ECC
08h 1 Байт контроля:
биты 0-2 - не используются (всегда 0);
бит 3 - установлен, если число головок больше 8;
бит 4 - не используется (всегда 0);
бит 5 - установлен, если изготовитель разместил карту дефектов на цилиндре с номером "максимальный рабочий цилиндр + 1";
бит 6 - запрет повторного контроля ECC;
бит 7 - запрет контроля ECC
09h 1 Не используется (всегда 0)
0Ah 1 Не используется (всегда 0)
0Bh 1 Не используется (всегда 0)
0Ch 2 Номер цилиндра зоны парковки
0Eh 1 Число секторов на дорожке
0Fh 1 Резерв

Таблица распределения файлов (FAT)

Размер файла может изменяться со временем. Если допустить хранение файла только в смежных секторах, то при увеличении размера файла ОС должна полностью переписать его в другую подходящего объема (свободную) область диска. Чтобы упростить и ускорить выполнение операции добавления новых данных в файл, в современных ОС применяются таблицы распределения файлов (File Allocation Table, сокращенно FAT), которые позволяют хранить файл в виде нескольких несмежных участков.

При использовании FAT область данных логического диска разделена на участки одинакового размера - кластеры . Кластер может состоять из одного или нескольких последовательно расположенных на диске секторов. Число секторов в кластере должно быть кратным 2 N и может принимать значения от 1 до 64 (размер кластера зависит от типа используемой FAT и объема логического диска).

Каждому кластеру поставлен в соответствие собственный элемент таблицы FAT. Первые два элемента FAT являются резервными - если на диске имеется K кластеров данных, то число элементов FAT будет равно K+2 . Тип FAT определяется значением K:

  1. если K <4085 - используется FAT12;
  2. если 4084> K <65525 - используется FAT16;
  3. если 65524> K - используется FAT32.

Название типов FAT происходят от размера элемента. Так элемент FAT12 имеет размер 12 бит, FAT16 - 16 бит, FAT32 - 32 бита. Следует учитывать, что в FAT32 четыре старших двоичных разряда зарезервированы и игнорируются в процессе работы ОС (то есть значащими являются только семь младших шестнадцатеричных разрядов элемента).

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

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

Эта диаграмма иллюстрирует основные концепции FAT. Из нее видно, что:

  1. MYFILE.TXT занимает 10 кластеров. Первый кластер - это кластер 08, последний кластер - 1Bh. Цепочка кластеров - 08h, 09h, 0Ah, 0Bh, 15h, 16h, 17h, 19h, 1Ah, 1Bh. Каждый элемент указывает на следующий элемент цепочки, а последний элемент содержит специальный код (см. табл. 7).
  2. Кластер 18h помечен как дефектный и не входит в цепочку распределения.
  3. Кластеры 06h, 07h, 0Ch-14h и 1Ch-1Fh пусты и доступны для распределения.
  4. Еще одна цепочка начинается с кластера 02h и кончается кластером 05h. Чтобы узнать имя файла, нужно отыскать элемент оглавления с начальным номером кластера 02h.

Таблица 7. Значения элементов FAT

FAT обычно начинается с логического сектора 1 в разделе DOS (т.е. ее можно прочитать по INT 25h с DX=1). В общем случае сначала надо прочитать корневой_сектор (DX=0) и взять смещение 0Eh . Там указано, сколько корневых и резервных секторов стоят перед FAT. Используйте затем это число (обычно 1) как содержимое DX , чтобы прочитать FAT через INT 25h .

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

Замечание:

  • По общему заблуждению считается, что 16-битовая FAT не позволяет DOS работать с дисками, большими 32 мегабайт. На самом деле, ограничивает то, что INT 25h/26h неспособно работать с СЕКТОРАМИ, номера которых больше 65535. Поскольку размер сектора обычно 512 байт, или половина килобайта, то это диктует 32-мегабайтовый лимит. С другой стороны, ничто не запрещает вам иметь секторы большего размера, так что теоретически DOS может работать с любыми дисками.
  1. Умножьте номер кластера на 3.
  2. Если номер элемента четный, выполните операцию AND над считанным словом и маской 0FFFh. Если номер элемента нечетный, сдвиньте значение вправо на 4 бита. В результате получите искомое значение элемента FAT.

Теперь рассмотрим порядок действий при записи элемента в FAT12.

  1. Умножьте номер кластера на 3.
  2. Разделите результат на 2 (длина элемента - 1.5 (3/2) байт).
  3. Прочитайте из FAT 16-разрядное слово, используя в качестве адреса результат предыдущей операции.
  4. Если номер элемента четный, выполните операцию AND над считанным словом и маской 0F000h, а затем операцию OR над полученным результатом и значением записываемого элемента. Если номер элемента нечетный, выполните операцию AND над считанным словом и маской 0F000h, а затем сдвиньте значение влево на 4 бита и выполните операцию OR с результатом предыдущей операции.
  5. Запишите полученное 16-разрядное слово обратно в FAT.

Замечание:

  • 12-битовый элемент может пересекать границы двух секторов, так что будьте внимательны, если считываете по одному сектору FAT.
    16-битовые элементы проще - каждый элемент содержит 16-битовое смещение (от начала FAT) следующего элемента в цепочке.
    32-битовые элементы - каждый элемент содержит 32-битовое смещение следующего элемента в цепочке.

В программах, написанных на ассемблере, для выполнения умножения на 3 вместо команды MUL часто применяется алгоритм "сдвиг и сложение": исхродное число копируется, над копией числа выполняется сдвиг влево на один разряд (умножение на 2), а затем оба числа складываются (x + 2x = 3x). Вместо команды DIV используется сдвиг вправо на один разряд.

Элемент FAT содержит номер кластера, но при работе с дисками на низком уровне адресуемой единицей данных является сектор, а не кластер.

Дискета (или раздел твердого диска) структурирована следующим образом:

  1. корневой и резервные секторы;
  2. FAT #1;
  3. FAT #2;
  4. корневой каталог (не существует в FAT32);
  5. область данных.

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

Чтобы получить номер начального сектора кластера из номера кластера ClustNum (считанный из соответствующего поля в элементе каталога или в цепи FAT), вы можете использовать недокументированную функцию ОС 32h или прочитать корневой сектор и применить следующие формулы:

корневых_секторов = (RootSiz * 32) / 512 начало_данных = ResSecs + (FatSize * FatCnt) + корневых_секторов нач_сектор = начало_данных + ((ClustNum - 2) * ClustSiz) ,

где значения переменных: RootSiz , ResSecs , FatSize , FatCnt , ClustSiz извлекаются из корневого сектора или из BPB .

Установите DX=нач_сектор перед операцией чтения INT 25h или записи INT 26h .

Каталоги файлов

Каталог файлов представляет собой массив 32-байтных элементов - описателей файлов. С точки зрения операционной системы все каталоги (кроме корневого каталога в системах FAT12 и FAT16) выглядят как файлы и могут содержать произвольное количество записей.

Корневой каталог (Root Directory) - это главный каталог диска, с которого начинается дерево подкаталогов. Для корневого каталога в FAT12 и FAT16 в системной области логического диска выделено специальное место фиксированного размера (16 Кбайт), рассчитанное на хранение 512 элементов. В системе FAT32 корневой каталог является файлом произвольного размера.

Таблица 8. Структура элемента каталога

Смещение Длина Содержимое
00h 11 Короткое имя файла
0Bh 1 Атрибуты файла
0Сh 1 *Зарезервировано под Windows NT (должно содержать 0)
0Dh 1 *Поле, уточняющее время создания файла (в десятках миллисекунд).
Значение поля может находиться в пределах от 0 до 199
0Eh 2 *Время создания файла
10h 2 *Дата создания файла
12h 2 *Дата последного обращения к файлу для записи или считывания данных
14h 2 *Старшее слово номера первого кластера файла
16h 2 Время выполнения последней операции записи в файл
18h 2 Дата выполнения последней операции записи в файл
1Ah 2 Младшее слово номера первого кластера файла
1Ch 4 Размер файла в байтах (32-разрядное число)

Знак "*" означает, что поле обрабатывается только в файловой системе FAT32. В системах FAT12 и FAT16 поле считается зарезервированным и содержит значение 0.

Короткое имя файла состоит из двух полей: 8-байтного поля, содержащего собственно имя файла, и 3-байтного поля, содержащего расширение. Если введенное пользователем имя файла короче восьми символов, то оно дополняется пробелами (код пробела - 20h), если введенное расширение короче трех символов, то оно также дополняется пробелами.

Некоторые функции DOS требуют в качестве параметра байт атрибутов файла. Разряды байта атрибутов устанавливаются в 1 в том случае, если у файла имеется соответствующее свойство:

  • бит 0 - только для чтения;
  • бит 1 - скрытый;
  • бит 2 - системный;
  • бит 3 - идентификатор тома;
  • бит 4 - каталог;
  • бит 5 - архивирован;
  • биты 6 и 7 - резерв (установлены в 0).

Поле времени создания файла и поле времени выполнения последней операции записи в файл имеют следующий формат:

15 9 8 5 4 0

При создании файлов отсчет дат ведется от начала эпохи MS-DOS, т.е. от 01.01.1980. Биты 9-15 содержат номер года минус 1980 (допустимо значение от 0 до 127).

Длинные имена файлов

Начиная с Windows 95 файлу можно присвоить (в дополнение к короткому имени) так называемое длинное имя. Для хранения длинного имени используются пустые элементы каталога, смежные с основным элементом - описателем файла. Наличие единиц в разрядах 0-3 байта атрибутов является признаком того, что свободный элемент каталога используется для хранения участка длинного имени файла (для описателей файлов и каталогов такое сочетание невозможно). Короткое и длинное имена файла являются уникальными, т.е. не должны встречаться дважды в одном каталоге.

Длинное имя записывается не ASCII-символами, а в формате Unicode, где каждому национальному алфавиту соответствует набор кодов. Расплатой за универсальность Unicode является снижение плотности хранения информации - каждый символ занимает два байта (16-разрядное слово). В пустые элементы каталога длинное имя записывается в разрезанном на кусочки виде (см. табл.9).

Таблица 9. Структура элемента каталога, хранящего фрагмент длинного имени файла

Длинное имя записывается в каталог первым, причем фрагменты размещены в обратном порядке, начиная с последнего:

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

Блок информации диска формируется НЕДОКУМЕНТИРОВАННОЙ функцией DOS 32h .

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

Таблица 10. Схема блока информации диска

Смещение Длина Содержимое
00h 1 Номер диска (0=A, 1=B и т.д.)
01h 1 Номер субустройства из заголовка устройства (один драйвер может управлять несколькими дисками)
02h 2 Размер сектора в байтах
04h 1 Число секторов на кластер -1 (максим. сектор в кластере)
05h 1 Сдвиг кластера в сектор (кластер = 2№ секторов) (секторов на кластер в степенях двойки: 2 для 4, 3 для 8)
06h 2 Число резервных секторов (корневые, начало корневого огл.) (N первого сектора FAT)
08h 1 Число таблиц FAT
09h 2 Макс. число элементов в корневом оглавлении
0Bh 2 Номер сектора для кластера №2 (1-й кластер данных)
0Dh 2 Всего кластеров +2 (наивысший номер кластера)
0Fh 1 Число секторов, занимаемое одной FAT
10h 2 Номер сектора начала корневого оглавления
12h 4 Адрес заголовка_устройства
16h 1 Байт дескриптора_носителя
17h 1 Флаг доступа: 0, если был доступ к устройству
18h 4 Адрес следующего блока информации диска
(0FFFFh, если блок - последний)

Битовые флаги режима открытия:

  1. 0-2: Права доступа процесса в сети
    000 - чтение; 001 - запись; 010 - чтение и запись.
  2. 4-6: Режим разделения:
    000 - режим совместимости
    001 = монопольный захват файла
    010 = отвергать запись
    011 = отвергать чтение
    100 = ничего не отвергать
  3. 7: Наследование:
    1 - файл приватный для этого процесса 0 - наследуется порожденными процессами

Если байт атрибутов файла индицирует только чтение, он перекрывает эти флаги.

Биты прав доступа в сети и режима разделения имеют эффект только в том случае, когда установлена программа SHARE.

Архангельский государственный университет

Котласский филиал

очное отделение

Факультет: технический

Специальность: ПГС

Курсовая работа

Дисциплина: информатика

Тема: Фаиловая Структура Диска

Выполнила

студентка 1 курса

Жубрева Ольга

Александровна

Проверил:

Вступление. . . . . . . . . . . . . . . . . . . . . . . . . . . . .

§ 1 Понятие файловой системы. . . . . . . . . . . . . . . . . . . .

§ 2 Файловая система MS-DOS . . . . . . . . . . . . . . . . . . . .

§ 3 Файловая система Windows 95 . . . . . . . . . . . . . . . . . .

§ 4 Файловая система Windows NT . . . . . . . . . . . . . . . . . .

Заключение. . . . . . . . . . . . . . . . . . . . . . . . . . . .

Вступление.

В методическом пособии раскрыта сущность понятия “файловая система”,

которое является одним из важнейших понятий в курсе “Програмное

обеспечение ЭВМ”, а также представлена структура файловых систем таких

операционных систем, как MS-DOS, Windows 95, Windows NT.

Попыткой достигнуть этой цели и определяется структура настоящего

пособия: материал темы разбит на 4 основных части (части представлены в

виде параграфоф), каждая из частей также по мере необходимости разбита на

более мелкие детальные части.

§ 1 Понятие файловой системы.

1.1. Определение файловой системы.

Файл (по английски File) - папка,скоросшиватель.

Файл - это поименованная область памяти на каком-либо физическом

носителе, предназначенная для хранения информации.

Совокупность средств операционной системы, обеспечивающих доступ к

информации, на внешних носителях называется системой управления файлами или

файловой системой.

Файловая система (file system) – функциональная часть операционной

системы, которая отвечает за обмен данными с внешними запоминающими

устройствами.

ОРГАНИЗАЦИЯ ДОСТУПА К ФАЙЛУ

Структура каталога

Надеемся, что вы хорошо представляете себе организацию хранения книг в

библиотеке и соответственно процедуру поиска нужной книги по ее шифру из

каталога. Перенесите свое представление об этом на способ хранения файлов

на диске и организацию к нему доступа.

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

для записи и чтения данных.

Имя логического диска, стоящее перед именем файла в спецификации,

указывает логический диск, на котором следует искать файл. На этом же диске

организован каталог, в котором хранятся полные имена файлов, а также их

характеристики: дата и время создания;

объем (в байтах); специальные атрибуты. По аналогии с библиотечной системой

организации каталогов полное имя файла, зарегистрированное в каталоге,

будет служить шифром, по которому операционная система находит

месторасположение файла на диске.

Каталог - справочник файлов с указанием месторасположения на диске.

Различают два состояния каталога - текущее (активное) и пассивное. MS

DOS помнит текущий каталог на каждом логическом диске.

Текущий (активный) каталог - каталог, в котором работа пользователя

производится в текущее машинное время.

Пассивный каталог - каталог, с которым в данный момент времени не имеется

В операционной системе MS DOS принята и ер ар хическая с т рук т ур а

(рис. 9.1) организации каталогов. На каждом диске всегда имеется

единственный главный (корневой) каталог. Он находится на 0-м уровне

иерархической структуры и обозначается символом "\". Корневой каталог

создается при форматировании (инициализации, разметке) диска, имеет

ограниченный размер и не может быть удален средствами DOS. В главный

каталог могут входить другие каталоги и файлы, которые создаются командами

операционной системы и могут быть удалены соответствующими командами.

Рис. 9.1. Иерархическая структура организации каталога

Родительский каталог - каталог, имеющий подкаталоги. Подкаталог

Каталог, который входит в другой каталог.

Таким образом, любой каталог, содержащий каталоги нижнего уровня, может

быть, с одной стороны, по отношению к ним родительским, а с другой стороны,

подчиненным по отношению к каталогу верхнего уровня. Как правило, если это

не вызывает путаницы, употребляют термин "каталог", подразумевая или

подкаталог, или родительский каталог в зависимости от контекста.

Каталоги на дисках организованы как системные файлы. Единственное

исключение - корневой каталог, для которого отведено фиксированное место на

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

Примечание. В структуре каталогов могут находиться каталоги, не

наименования подкаталогов такие же, как и правила наименования файлов (см.

подразд. 9.1). Для формального отличия от файлов обычно подкаталогам

присваивают только имена, хотя можно добавить и тип по тем же правилам, что

и для файлов.

Доступ к содержимому файла организован из главного каталога, через

цепочку соподчиненных каталогов (подкаталогов) я-го уровня. В каталоге

любого уровня могут храниться записи как о файлах, так и о каталогах

нижнего уровня. называются пустыми.

На рис. 9.2 приведена простейшая структура каталога, где в главном

каталоге 0-го

уровня хранятся только записи о файлах, каталогов нижнего уровня

не существует

На рис. 9.3 приведена иерархическая структура каталога, где в каталогах

любого уровня хранятся записи о файлах и каталогах нижнего уровня. Причем

переход в каталог нижнего уровня может быть организован только

последовательно через соподчиненные каталоги.

Рис. 9.2. Простейшая структура каталога, в котором отсутствуют каталоги

нижнего уровня

Рис. 93,.. Типовая структура каталога,состоящего из каталогов нижнего

уровня: при обозначении каталога нижнего уровня используются три цифры:

первая цифра обозначает номер уровня; вторая - порядковый номер этого

каталога на данном уровне, третья указывает, на каком уровне

зарегистрировано его имя. Каждый каталог имеет имя КАТ с индексами.

Например, КАТ342 - имя каталога третьего уровня, который зарегистрирован в

каталоге второго уровня под номером 4

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

Нужно обязательно пройти через все предыдущие каталоги высшего уровня.

Описанный выше принцип организации доступа к файлу через каталог

является основой файловой системы.

Файловая система - часть операционной системы, управляющая размещением и

доступом к файлам и каталогам на диске.

С понятием файловой системы тесно связано понятие файловой структуры диска,

под которой понимают, как размещаются на диске: главный каталог,

подкаталоги, файлы, операционная система, а также какие для них выделены

объемы секторов, кластеров, дорожек.

Правила формирования файловой структуры диска. При формировании файловой

структуры диска операционная система MS DOS соблюдает ряд правил:

Файл или каталог могут быть зарегистрированы с одним и тем же именем в

разных каталогах, но в одном и том же каталоге только один раз;

Порядок следования имен файлов и подкаталогов в родительском каталоге

произвольный;

Файл может быть разбит на несколько частей, для которых выделяются

участки дискового пространства одинакового объема на разных дорожках и

секторах.

Путь и приглашение

Из рис. 9.1 - 9.3 видно, что доступ к файлу осуществляется через каталог

благодаря зарегистрированному в нем имени данного файла. Если каталог имеет

иерархическую структуру, то доступ к файлу операционная система организует

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

искомого файла.

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

Если имя файла зарегистрировано в текущем каталоге, то достаточно для

доступа к файлу указать только его имя;

Если имя файла зарегистрировано в пассивном каталоге, то, находясь в

текущем каталоге, вы должны указать путь, т.е. цепочку соподчиненных

каталогов, через которые следует организовать доступ к файлу.

Путь - цепочка соподчиненных каталогов, которую необходимо пройти по

иерархической структуре к каталогу, где зарегистрирован искомый файл. При

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

друг от друга символом \.

Взаимодействие пользователя с операционной системой осуществляется с

помощью командной строки, индицируемой на экране дисплея. В начале

командной строки всегда имеется приглашение, которое заканчивается символом

>. В приглашении может быть отображено: имя текущего диска, имя текущего

каталога, текущее время и дата, путь, символы-разделители.

Приглашение операционной системы - индикация на экране дисплея информации,

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

Пример 9.8.

Текущим дисководом является дисковод с гибким диском А,

текущим каталогом - главный, на что указывает символ \.

С:\КАТ1\КАТ2

Текущим диском является жесткий диск С. Текущим каталогом -

каталог второго уровня КАТ2, входит в каталог первого уровня

КАТ1, который, в свою очередь, зарегистрирован в главном

каталоге.

Возможны три варианта организации пути доступа к файлу в зависимости от

места его регистрации:

Файл находится в текущем каталоге (путь отсутствует). При организации

доступа к файлу достаточно указать его полное имя;

Файл находится в пассивном каталоге одного из нижних уровней,

подчиненного текущему каталогу. При организации доступа к файлу

необходимо указать путь, в котором перечислены все имена каталогов

нижнего уровня, лежащих на этом пути (включая каталог, в котором

зарегистрирован данный файл);

файл находится в пассивном каталоге на другой ветке по отношению к

местонахождению текущего каталога иерархической структуры. При

организации доступа к файлу необходимо указать путь, начиная с

главного каталога, т.е. с символа \. Это объясняется тем, что в

иерархической структуре движение возможно только по вертикали сверху-

Горизонтальные переходы из каталога в каталог недопустимы.В

нижеприведенных примерах иллюстрируются возможные варианты пути.

Пример 9.9.

Условие: файл F1.TXT зарегистрирован в текущем каталоге 1-го уровня К1

жесткого диска С. Поэтому на экране индицируется приглашение С:\К1

Пояснение: в этом случае путь отсутствует, и для доступа к файлу достаточно

указать только его полное имя F1.TXT

Пример 9.10.

Условие: файл F1.TXT зарегистрирован в каталоге 2-го уровня К2 жесткого

диска С. Текущий каталог - К1. Поэтому на экране индицируется приглашение

Пояснение: в этом случае путь будет начинаться от каталога

К1 вниз через подчиненный ему каталог К2. Поэтому перед

полным именем файла указывается путь от текущего каталога К2

Познакомившись с понятием пути, вернемся к введенному в подразд. 9.1

понятию спецификации файла. Существует сокращенная спецификация файла и

полная спецификация файла, в образовании которой участвует путь. На рис.

9.4 показаны варианты правила образования спецификации файла.

Рис. 9.4. Форматы спецификаций (в указан необязательный параметр)

Пример 9.12. Сокращенная форма спецификации файла C:\KIT.BAS

Файл с программой на Бейсике KIT.BAS находится в главном

каталоге жесткого диска.

Полная форма спецификации файла

С:\КАТ1\КАТ2\ВООК1.ТХТ

Текстовый файл ВООК1.ТХТ зарегистрирован в каталоге второго

уровня КАТ2 жесткого диска С.

Структура записей в каталоге

Теперь вам предстоит знакомство со структурой хранящихся в каталоге записей

со сведениями о файлах и подкаталогах нижнего уровня.

Запись о файле в каталоге содержит имя и тип файла, объем файла в

байтах, дату создания, время создания и еще ряд параметров, необходимых

операционной системе для организации доступа.

Запись о подкаталоге нижнего уровня в родительском каталоге содержит его

имя, признак, дату и время создания.

Рассмотрим возможные варианты содержимого каталога. 1-й вариант. В каталоге

хранятся только записи о файлах (рис. 9.5). Перед записями о файлах

выводится сообщение о названии каталога. В данном случае - это главный

каталог гибкого диска А. В конце содержимого каталога выводится сообщение о

количестве файлов, хранящихся на диске, и о свободном пространстве диска в

байтах. Например, в приводимом выше каталоге выводится сообщение:

4 file(s) 359560 bytes free

Количество файлов на диске. Обьем свободного

пространства диска, байт2-й вариант.

В каталоге хранятся только записи о каталогах нижнего уровня (рис. 9.6).

Рис. 9.7. В главном каталоге хранятся файлы и подкаталоги

В конце каталога, как и в предыдущем случае, вы увидите аналогичную

рассмотренной выше запись об объеме свободного пространства на диске.

3-й вариант.В каталоге хранятся записи как о файлах, так и о каталогах

нижнего уровня (рис. 9.7). Из этой структуры видно, что в данном каталоге

имеются 3 файла и 2 каталога нижнего уровня BASIC и LEXICON. На диске

свободного пространства 2,6575 Мбайт.

Рассмотренные выше три варианта представления каталогов отражают содержимое

главного каталога. Структура каталогов, начиная с 1-го уровня и ниже,

идентична и отличается от главного только тем, что перед записями о файлах

и каталогах нижнего уровня помещаются две записи с многоточием (рис. 9.8).

Точки, которые вы видите вначале, означают, что на экран вызвано содержимое

подкаталога (каталога 1-го уровня) KNIGA, который содержит два текстовых

файла SVET и TON.

|Directory of C:\KNIGA | | |

| |11-12-90 |09:40 |

| |10-10-91 |08:30 |

|svet txt 55700 |04-04-90 |10:05 |

|ton txt 60300 |03-05-91 |11:20 |

|2 files 912348 bytes free | | |

|Рис. 9.8. Структура записей в подкаталоге |

1.2. Файловая система FAT.

Операционными системами Windows используется, разработанная еще для

DOS файловая система FAT, в которой для каждого раздела и тома DOS имеется

загрузочный сектор, а каждый раздел DOS содержит две копии таблицы

размещения файлов (file allocation table – FAT).

FAT представляет собой матрицу, которая устанавливает соотношение

между файлами и папками раздела и их физическим местоположением на жестком

Перед каждым разделом жесткого диска последовательно расположены две

копии FAT. Подобно загрузочным секторам, FAT располагается за пределами

области диска, видимой для файловой системы.

При записи на диск файлы не обязательно занимают пространство,

эквивалентное их размеру. Обычно файлы разбиваются на кластеры

определенного размера, которые могут быть разбросаны по всему разделу.

В результате таблица FAT представляет собой не список файлов и их

местоположения, а список кластеров раздела и их содержимого, а в конце

Элементы таблицы FAT представляют собой 12-, 16- и 32-битовые

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

значение непосредственно создается программой FORMAT.

Все гибкие диски, а также жесткие диски размером до 16 Мбайт

используют в FAT 12-битовые элементы. Жесткие и съемные диски, имеющие

размер от 16 Мбайт и более, обычно используют 16-битовые элементы.

Файловая система FAT использовалась во всех версиях MS-DOS и в первых

двух выпусках OS/2 (версии 1.0 и 1.1). Каждый логический том имел

собственный FAT, который выполнял две функции: содержал информацию

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

распределения (кластеров) и указывал, какие модули распределения свободны.

Когда таблица FAT была изобретена, это было превосходное решение для

управления дисковым пространством, главным образом потому что гибкие диски,

на которых она использовалась, редко были размером более, чем несколько Mb.

FAT была достаточно мала, чтобы находиться в памяти постоянно,

позволяла обеспечивать очень быстрый произвольный доступ к любой части

любого файла.

Когда FAT была применена на жестких дисках, она стала слишком большой

для резидентного нахождения в памяти и ухудшала производительность системы.

Кроме того, так как информация относительно свободного дискового

пространства рассредотачивалась "поперек" большого количества секторов FAT,

она была непрактична при распределении файлового пространства, и

фрагментация файлов оказалась препятствием высокой эффективности.

Кроме того, использование относительно больших кластеров на жестких

дисках привело к большому количеству неиспользуемых участков, так как в

среднем для каждого файла половина кластера была потрачена впустую.

В течение нескольких лет Microsoft и IBM делали попытку продлить

жизнь файловой системы FAT благодаря снятию ограничений на размеры тома,

улучшению cтратегий распределения, кэширования имен пути, и перемещению

таблиц и буферов в расширенную память. Но они могут расцениваться только

как временные меры, потому что файловая система просто не подходила к

большим устройствам произвольного доступа.

§ 2 Файловая система операционной системы MS-DOS.

Одно из понятий файловой системы MS DOS - логический диск.

Логические диски:

DOS, каждый логический диск это отдельный магнитный диск. Каждый логический

диск имеет свое уникальное имя. В качестве имени логического диска

используются буквы английского алфавита от A до Z (включительно).

Количество логических дисков, таким образом, не более 26.

Буквы A и B - отведены строго под имеющиеся в IBM PC флоппи-диски (

Начиная с буквы C, именуются логические диски(разделы) HDD (

винчестер).

На рисунках дано изображение логического диска.

В случае, если данный IBM PC имеет только один FDD, буква B пропускается

Только логические диски A и C могут быть системными. Файловая

структура логического диска:

Чтобы обратиться к информации на диске(находящейся в файле),надо

знать физический адрес первого сектора, (Nповерхности+Nдорожки+Nсектора),

общее количество кластеров, занимаемое данным файлом, адрес следующего

кластера, если размер файла больше, чем размер одного кластера и т.д. Все

это очень туманно, трудно и не нужно.

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

обеспечения доступа к файлам - файловая система MS DOS организует и

поддерживает на логическом диске определенную файловую структуру.

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

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

Область данных(оставшееся свободным дисковое пространство)

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

инициализации диска.

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

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

Идентификатор OS(если диск системный),

Размер сектора диска,

Количество секторов в кластере,

Количество резервных секторов в начале диска,

Количество копий FAT на диске(стандарт - две),

Количество элементов в каталоге,

Количество секторов на диске,

Тип формата диска,

Количество секторов в FAT,

Количество секторов на дорожку,

Количество поверхностей,

Блок начальной загрузки OS,

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

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

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

вательность пронумерованных кластеров.

FAT - это массив элементов, адресующих кластеры области данных диска.

Каждому кластеру области данных соответствует один элемент FAT.

Элементы FAT служат в качестве цепочки ссылок на кластеры файла в области

FAT - крайне важный элемент Файловой структуры.Нарушения в FAT могут

привести к полной или частичной потери информации на всем логическом диске.

Именно поэтому, на диске хранится две копии FAT. Существуют спец.программы,

которые контролируют состояние FAT и исправляют нарушения.

Корневой каталог:

Это определенная область диска,создаваемая в процессе инициализации

(форматировании) диска, где содержится информация о файлах и каталогах,

хранящихся на диске.

Корневой Каталог всегда существует на отформатированном диске. На

одном диске всегда бывает только один корневой каталог. Размер корневого

каталога для данного диска - величина фиксированная, поэтому максимальное

количество "привязанных" к нему файлов и других (дочерних) каталогов

(Подкаталогов) - строго определенное.

Итак, подытоживая все выше сказанное, можно сделать вывод MS-DOS - 16-

разрядная операционная система, работающая в реальном режиме процессора.

§ 4 Файловая система операционной системы Windows 95.

4.1. Предыстория создания FAT 32.

В сфере персональных компьютеров в 1987 г. возник кризис.

Возможности файловой системы FAT, разработанной фирмой Microsoft за десять

лет до этого для интерпретатора Standalone Disk Basic и позднее

приспособленной для операционной системы DOS, были исчерпаны. FAT

предназначалась для жестких дисков емкостью не свыше 32 Мбайт, а новые НЖМД

большей емкости оказывались совершенно бесполезными для пользователей PC.

Некоторые независимые поставщики предлагали собственные способы решения

этой проблемы, однако лишь с появлением DOS 4.0 этот кризис был преодолен -

на некоторое время.

Значительные изменения структуры файловой системы в DOS 4.0

позволили операционной системе работать с дисками емкостью до 128 Мбайт; с

внесением в последующем незначительных дополнений этот предел был поднят до

2 Гбайт. В то время казалось, что такой объем памяти превышает любые

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

и научила, то именно тому, что емкость, "превышающа любые мыслимые

потребности", очень быстро становитс "почти недостаточной для серьезных

работ". Действительно, в настоящее время в продаже имеютс жесткие диски

емкостью, как правило, 2,5 Гбайт и выше, а когда-то очень высокий и

избавивший нас от ограничений потолок в 2 Гбайт превратился в еще одно

препятствие, которое предстоит преодолеть.

4.2. Описание FAT 32.

Для систем Windows 95 фирма Microsoft разработала новое расширение

системы FAT - FAT32, без каких-либо громких заявлений предусмотренное в

пакете OEM Service Pack 2.

Система FAT32 устанавливается только в новых PC, и не рассчитывайте

получить ее при переходе к новой версии Windows 95, хотя, по утверждению

Microsoft, это расширение станет составной частью основного пакета для

модернизации Windows

4.2.1. Области диска

Эта файловая система предусматривает ряд специальных областей на

диске, выделенных для организации пространства диска в процессе его

форматирования - головную запись загрузки, таблицу разбиения диска, запись

загрузки, таблицу размещения файлов (от которой система FAT и получила свое

название) и корневой каталог.

На физическом уровне пространство диска разбивается на 512-байт

области, называемые секторами. В системе FAT место для файлов выделяется

блоками, которые состоят из целого числа секторов и именуются кластерами.

Число секторов в кластере должно быть кратно степени двойки. В Microsoft

называют эти кластеры единицами выделения памяти (allocation unit), а в

отчете SCANDISK указывается их размер, например "16 384 байт в каждой

единице выделения памяти".

4.2.2. Цепочка FAT

FAT представляет собой базу данных, связывающую кластеры дискового

пространства с файлами. В этой базе для каждого кластера предусматривается

только один элемент. Первые два элемента содержат информацию о самой

системе FAT. Третий и последующие элементы ставятся в соответствие

кластерам дискового пространства, начиная с первого кластера, отведенного

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

указывающих, что

Кластер свободен, т.е. не использован ни одним файлом;

Кластер содержит один или несколько секторов с физическими дефектами и

не должен использоваться;

Данный кластер - последний кластер файла.

Для любого используемого файлом, но не последнего кластера элемент

FAT содержит номер следующего кластера, занятого файлом.

Каждый каталог - независимо корневой или подкаталог - также

представляет собой базу данных. В каталоге DOS для каждого файла

предусмотрена одна главная запись (В среде Windows 95 для длинных имен

файлов введены дополнительные записи). В отличие от FAT, где каждый элемент

состоит из единственного поля, записи для файла в каталоге состоят из

нескольких полей. Некоторые поля - имя, расширение, размер, дата и время -

могут быть выведены на экран по команде DIR. Но в системе FAT предусмотрено

поле, которое не отображаетс командой DIR, - поле с номером первого

кластера, отведенного под файл.

Когда программа отправляет запрос к операционной системе, с

требованием предоставить ей содержимое какого-то файла ОС просматривает

запись каталога дл него, чтобы найти первый кластер этого файла. Затем она

обращается к элементу FAT для данного кластера, чтобы найти следующий

кластер в цепочке. Повторяя этот процесс, пока не обнаружит последний

кластер файла, ОС точно определяет, какие кластеры принадлежат данному

файлу и в какой последования. Таким путем система может предоставить

программе любую часть запрашиваемого ею файла. Такой способ организации

файла носит название цепочки FAT.

В системе FAT файлам всегда выделяется целое число кластеров. На 1,2-

Гбайт жестком диске с 32-Кбайт кластерами в каталоге может быть указано,

что размер текстового файла, содержащего слова "hello, world", составляет

всего 12 байт, но на самом деле этот файл занимает 32 Кбайт дискового

пространства. Неиспользованная часть кластера называется потерянным местом

(slack). В небольших файлах почти весь кластер может быть потерянным

местом, а в среднем потери составляют половину размера кластера.

На 850-Мбайт жестком диске с 16-Кбайт кластерами при среднем размере

файлов порядка 50 Кбайт около 16% отведенного под файлы дискового

пространства будет потеряно на неиспользуемые, но выделенные файлам

Один из способов высвобождения пространства на диске - с помощью

программ сжатия диска, например DriveSpace, которая выделяет "потерянные

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

4.2.3. Другие изменения в FAT32

Чтобы обеспечить возможность работы с возросшим числом кластеров, в

записи каталога для каждого файла должно выделяться 4 байт для начального

кластера файла (вместо 2 байт в системе FAT16). Традиционно кажда запись в

каталоге состоит из 32 байт (рис. 1). В середине этой записи 10 байт не

используются (байты с 12-го по 21-й), которые Microsoft зарезервировала дл

своих собственных нужд в будущем. Два из них теперь отводятся как

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

Операционная система всегда предусматривала наличие на диске двух

экземпляров FAT, но использовался только один из них. С переходом к FAT32

операционная система может работать с любой из этих копий. Еще одно

изменение состоит в том, что корневой каталог, раньше имевший фиксированный

размер и строго определенное место на диске, теперь можно свободно

наращивать по мере необходимости подобно подкаталогу. Теперь не существует

ограничений на число записей в корневом каталоге. Это особенно важно,

поскольку под каждое длинное имя файла используется несколько записей

каталога.

Сочетание перемещаемого корневого каталога и возможности

использования обеих копий FAT - неплохие предпосылки для беспрепятственного

динамического изменения размеров разделов диска, например уменьшени раздела

с целью высвобождения места для другой операционной системы. Этот новый

подход менее опасен, чем применявшиеся в программах независимых поставщиков

для изменения разделов диска при работе с FAT16.

Из всего выше сказанного можно сделать вывод:

MS-DOS была чисто 16-разрядной операционной системой и работала в

реальном режиме процессора. В версиях Windows 3.1 часть кода была 16-

разрядной, а часть - 32-разрядной. Windows 3.0 поддерживала реальный режим

работы процессора, при разработке версии 3.1 было решено отказаться от его

поддержки.

Windows 95 является 32 -разрядной операционной системой, которая

разрядный код для совместимости с режимом MS-DOS. Windows 95 32-разрядный

разрядный код.

§ 5 Файловая система операционной системы Windows NT.

5.1. Краткое описание операционной системы Windows NT.

На данный момент мировая компьютерная индустрия развивается очень

стремительно.Производительность систем возрастает,а следовательно

возрастают возможности обработки больших объёмов данных.

Операционные системы класса MS-DOS уже не справляются с таким

потоком данных и не могут целиком использовать ресурсы современных

компьютеров. Поэтому в последнее время происходит переход на более мощные и

наиболее совершенные операционные системы класса UNIX , примером которых и

является Windows NT, выпущенная корпорацией Microsoft

Когда пользователь впервые видит операционную систему Microsoft

Windows NT, ему в глаза бросается отчётливое внешнее сходство с

полюбившимся интерфейсом системы Windows 3.+ .Однако это видимое сходство

является лишь незначительной частью Windows NT .

Windows NT является 32-ух разрядной операционной системой с

приоритетной многозадачностью. В качестве фундаментальных компонентов

в состав операционной системы входят средства обеспечения безопасности и

развитый сетевой сервис.

Windows NT также обеспечивает совместимость со многими другими

операционными и файловыми системами, а также с сетями.

Как показано на следующем рисунке,Windows NT представляет из себя

модульную (более совершенную,чем монолитная)операционную систему, которая

состоит из отдельных взаимосвязанных относительно простых модулей.

Основными модулями Windows NT являются (перечислены в порядке

следования от нижнего уровня архитектуры к верхнему) : уровень

аппаратных абстракций HAL (Hardware Abstraction Layer), ядро (Kernel) ,

исполняющая система (Executive), защищенные подсистемы (protected

subsystems) и подсистемы среды (environment subsystems).

Модульная структура Windows NT

5.2. Файловая система Windows NT.

Когда Windows NT впервые вышла в свет, в ней была предусмотрена

поддержка трех файловых систем. Это таблица размещения файлов (FAT),

обеспечивавшая совместимость с MS-DOS, файловая система повышенной

производительности (HPFS), обеспечивавшая совместимость с LAN Manager, и

новая файловая система, носившая название Файловой системы новых технологий

NTFS обладала рядом преимуществ в сравнении с использовавшимися на

тот момент для большинства файловых серверов файловыми системами.

Для обеспечения целостности данных в NTFS имеется журнал транзакций.

Подобный подход не исключает вероятности утраты информации, однако,

значительно увеличивает вероятность того, что доступ к файловой системе

будет возможен даже в том случае, если будет нарушена целостность системы

сервера. Это становится возможным при использовании журнала транзакций для

отслеживания незавершенных попыток записи на диск при последующей загрузке

Windows NT. Журнал транзакций также используется для проверки диска на

наличие ошибок вместо проверки каждого файла, в случае использования

таблицы размещения файлов.

Одним из основных преимуществ NTFS является безопасность. NTFS

предоставляет возможность вносить записи контроля доступа (Access Control

Entries, ACE) в список контроля доступа (Access Control List, ACL). ACE

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

который может быть использован для ограничения доступа к определенному

каталогу или файлу. Этот доступ может предполагать возможность чтения,

записи, удаления, выполнения и даже владения файлами.

С другой стороны, ACL представляет собой контейнер, содержащий одну

или более записей ACE. Это позволяет ограничить доступ отдельных

пользователей или групп пользователей к определенным каталогам или файлам в

Кроме того NTFS поддерживает работу с длинными именами, имеющими

длину до 255 символов и содержащими заглавные и строчные буквы в любой

последовательности. Одной из главных характеристик NTFS является

автоматическое создание эквивалентных имен, совместимых с MS-DOS.

Также NTFS имеет функцию сжатия, впервые появившуюся в NT версии

3.51. Она обеспечивает возможность сжатия любого файла, каталога или диска

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

имеющий вид скрытого файла и подвергающий сжатию все данные на этом диске,

Windows NT использует дополнительный уровень файловой подсистемы для сжатия

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

оказывается полезным при сжатии либо определенной части диска (например,

пользовательского каталога), либо файлов, имеющих определенный тип

(например, графических файлов). Единственным недостатком сжатия NTFS

является невысокий, в сравнении со схемами сжатия MS-DOS, уровень

компрессии. Зато NTFS отличается более высокой надежностью и

производительностью.

Итак, из всего вышесказанного можно сделать вывод:

Чтобы быть совместной с различными операционными системами, Windows

NT содержит файловую систему FAT 32. Кроме этого, Windows NT содержит свою

собственную файловую систему NTFS, которая не совместима с FAT 16. Данная

файловая система имеет ряд преимуществ по сравнению с FAT, а также

отличается более высокой надежностью и производительностью.

Заключение.

MS-DOS - 16-разрядная операционная система, работает в реальном

режиме процессора. В версиях Windows 3.1 часть кода - 16-разрядная, а часть

32-разрядная. Windows 3.0 поддерживала реальный режим работы процессора,

при разработке версии 3.1 было решено отказаться от его поддержки.

Windows 95 является 32-разрядной операционной системой, которая

работает только в защищенном режиме процессора. Ядро, включающее управление

памятью и диспетчеризацию процессов, содержит только 32-разрядный код. Это

уменьшает издержки и ускоряет работу. Только некоторые модули имеют 16-

разрядный код для совместимости с режимом MS-DOS. В Windows 95 32-разрядный

код используется везде, где только возможно, что позволяет обеспечить

повышенную надежность и отказоустойчивость системы. Помимо этого, для

совместимости с устаревшими приложениями и драйверами используется и 16-

разрядный код.

Система Windows NT не является дальнейшим развитием ранее

существовавших продуктов. Её архитектура создавалась с нуля с учётом

предъявляемых к современной операционной системе требований. Стремясь

обеспечить совместимость (compatible) новой операционной системы,

разработчики Windows NT сохранили привычный интерфеис Windows и реализовали

поддержку существующих файловых систем (таких, как FAT) и различных

приложений (написанных для MS - Dos , Windows 3.x). Разработчики также

включили в состав Windows NT средства работы с различными сетевыми

средствами.

Надёжность и отказоустойчивость (reliability and robustness)

обеспечивают архитектурными особенностями, которые защищают прикладные

программы от повреждения друг другом и операционной системой. Windows NT

использует отказоустойчивую структурированную обработку особых ситуаций на

всех архитектурных уровнях, которая включает восстанавливаемую файловую

систему NTFS и обеспечивает защиту с помощью встроенной системы

безопасности и усовершенствованных методов управления памятью.