Создание на диске каталога и таблицы размещения файлов называется
FAT (чаще всего в главе подразумевается FAT 16) представляет собой простую файловую систему, разработанную для небольших дисков и простых структур каталогов. Ее название происходит от названия метода, применяемого для организации файлов ≈ таблица размещения файлов (File Allocation Table, FAT). Эта таблица размещается в начале тома. В целях защиты тома на нем хранятся две копии FAT. В случае повреждения первой копии FAT дисковые утилиты (например, Scandisk) могут воспользоваться второй копией для восстановления тома. Таблица размещения файлов и корневой каталог должны располагаться по строго фиксированным адресам, чтобы файлы, необходимые для запуска системы, были размещены корректно.
По принципу построения FAT похожа на оглавление книги, т. к. операционная система использует ее для поиска файла и определения кластеров, которые этот файл занимает на жестком диске. Изначально компания Microsoft разработала FAT для управления файлами на дискетах, и только затем приняла ее в качестве стандарта для управления дисками в MS-DOS. Сначала для дискет и небольших жестких дисков (менее 16 Мбайт) использовалась 12-разрядная версия FAT (так называемая FAT12). В MS-DOS v. 3.0 была введена 16-разрядная версия PAT для более крупных дисков. К настоящему моменту FAT 12 применяется на носителях очень малого объема (или на очень старых дисках). Например, все 3,5-дюймовые дискеты емкостью 1,44 Мбайт форматируются для FAT16, а все 5,25-дюймовые ≈ для FAT12.
Том, отформатированный под FAT12 и FAT16, размечается по кластерам. Стандартный размер кластера, устанавливаемый по умолчанию, определяется размером тома (более подробная информация о размерах кластеров приведена далее в этой главе). Таблица расположения файлов и ее резервная копия содержат следующую информацию о каждом кластере тома:
- Unused (кластер не используется).
- Cluster in use by a file (кластер используется файлом).
- Bad cluster (плохой кластер).
- Last cluster in a file (последний кластер файла).
Корневая папка содержит записи для каждого файла и каждой папки, расположенных в корневой папке. Единственным отличием корневой папки от остальных является то, что она занимает четко определенное место на диске и имеет фиксированный размер (не более 512 записей для жесткого диска; для дискет этот размер определяется их объемом).
Папки содержат 32-байтные записи для каждого содержащегося в них файла и каждой вложенной папки. Эти записи содержат следующую информацию:
- Имя (в формате 8.3).
- Байт атрибутов (8 бит полезной информации, которая подробно описана ниже).
- Время создания (24 бит).
- Дата создания (16 бит).
- Дата последнего доступа (16 бит).
- Время последней модификации (16 бит).
- Дата последней модификации (16 бит).
- Номер начального кластера файла в таблице расположения файлов (16 бит).
- Размер файла (32 бита).
Структура папки FAT не имеет четкой организации, и файлам присваиваются первые доступные адреса кластеров на томе. Номер начального кластера файла представляет собой адрес первого кластера, занятого файлом, в таблице расположения файлов. Каждый кластер содержит указатель на следующий кластер, использованный файлом, или индикатор (OxFFFF), указывающий, что данный кластер является последним кластером файла.
Информация папок используется операционными системами, поддерживающими файловую систему FAT. Кроме того, Windows 2000 может хранить в записи папки дополнительную временную информацию (time stamps). Эти дополнительные временные атрибуты указывают, когда файл был создан и когда к нему в последний раз предоставлялся доступ. Главным образом, дополнительные атрибуты используются приложениями POSIX.
Файлы на дисках имеют 4 атрибута, которые могут сбрасываться и устанавливаться пользователем ≈ Archive (архивный), System (системный), Hidden (скрытый) и Read-only (только чтение).
Примечание: В Windows 2000 все файлы, имеющие комбинацию атрибутов скрытый и системный, считаются защищаемыми файлами операционной системы (operating system protected files). Windows 2000 защищает такие файлы, не отображая их в программе Проводник и папке Мой компьютер. Чтобы увидеть эти файлы в Проводнике, вызовите утилиту Свойства папки (Folder Options) (через панель управления или через меню Сервис (Tools) Проводника или папки Мой компьютер). В ее окне перейдите на вкладку Вид (View), выберите переключатель Показывать скрытые файлы и папки (Show hidden files and folders) и снимите флажок Скрывать защищенные системные файлы (рекомендуется) (Hide protected operating system files (Recommended)). Помимо этого, защищаемые файлы операционной системы можно просматривать из командной строки с помощью команды dir /a.
В Windows NT, начиная с версии 3.5, файлы, созданные или переименованные на томах FAT, используют биты атрибутов для поддержки длинных имен файлов методом, не вступающим в конфликт с методами доступа к тому, используемыми операционными системами MS-DOS и OS/2. Для файла с длинным именем Windows NT/2000 генерирует короткое имя в формате 8.3. Кроме этого стандартного элемента Windows NT/2000 создает для файла одну или несколько дополнительных записей, по одной на каждые 13 символов длинного имени. Каждая из этих дополнительных записей содержит соответствующую часть длинного имени файла в формате Unicode. Windows NT/2000 устанавливает для дополнительных записей атрибуты тома, а также скрытого системного файла, предназначенного только для чтения, чтобы пометить их как части длинного имени файла, MS-DOS и OS/2 обычно игнорируют записи папок, для которых установлены все эти атрибуты, поэтому такие записи для них невидимы. Вместо этого MS-DOS и OS/2 получают доступ к файлу по стандартному короткому имени файла в формате 8.3.
Примечание: Windows NT/2000 и Windows 9х используют одинаковый алгоритм для генерации длинных и коротких имен файлов. На компьютерах с двойной загрузкой к файлам, созданным с помощью одной из этих операционных систем, можно получать доступ, работая под управлением другой.
Windows NT, начиная с версии 3.5, поддерживает длинные имена файлов на томах FAT. Эту устанавливаемую по умолчанию опцию можно отключить, задав значение 1 для параметра реестра Win31FileSystem, входящего в состав следующего ключа реестра:
HKEY_LOCAL_MACH IN ESystemCiirrentControlSetControlFileSystem
Установка этого значения не позволит Windows NT создавать на томах FAT файлы с длинными именами, но не повлияет на уже созданные длинные имена.
В Windows NT/2000 FAT16 работает точно так же, как и в MS-DOS, Windows 3.1х и Windows 95/98. Поддержка этой файловой системы была включена в Windows 2000, поскольку она совместима с большинством операционных систем других фирм-поставщиков программного обеспечения. Помимо этого, применение FAT16 обеспечивает возможность обновления более ранних версий операционных систем семейства Windows до Windows 2000.
Примечание: Нельзя использовать Windows NT/2000 совместно с программными средствами, осуществляющими разбиение диска на тома и сжатие дисков при помощи драйверов устройств, которые загружаются MS-DOS. Например, если требуется иметь доступ к разделу или логическому диску FAT, работая под управлением Windows NT/2000, не следует применять для них такие средства сжатия, как DoubleSpace (MS-DOS 6.0) или DriveSpace (MS-DOS 6.22). Для сканирования и восстановления томов FAT, используемых Windows NT/2000, рекомендуется ввести в командной строке команду chkdsk. Эта программа объединяет функциональные возможности, присущие программам MS-DOS Chkdsk и Scandisk, включая сканирование поверхности жесткого диска. Если требуется выполнить сканирование поверхности диска, дайте из командной строки команду chkdsk /r.
32-разрядная файловая система FAT32 была введена с выпуском Windows 95 OSR2 и поддерживается в Windows 98 и Windows 2000. Она обеспечивает оптимальный доступ к жестким дискам, CD-ROM и сетевым ресурсам, повышая скорость и производительность всех операций ввода/вывода. FAT32 представляет собой усовершенствованную версию FAT, предназначенную для использования на томах, объем которых превышает 2 Гбайт.
Том, отформатированный для использования FAT32, как и том FAT16, размечается по кластерам. Размер кластера по умолчанию определяется размером тома. В табл. 7.1 приведено сравнение размеров кластеров для FAT16 и FAT32 в зависимости от размера диска.
Одной из компонент ОС является файловая система – основное хранилище системной и пользовательской информации. Все современные ОС работают с одной или несколькими файловыми системами, например, FAT (File Allocation Table), NTFS (NT File System), HPFS (High Performance File System), NFS (Network File System), AFS (Andrew File System), Internet File System.
Файловая система – это часть операционной системы, назначение которой состоит в том, чтобы обеспечить пользователю удобный интерфейс при работе с данными, хранящимися во внешней памяти, и обеспечить совместное использование файлов несколькими пользователями и процессами.
В широком смысле понятие "файловая система" включает:
- совокупность всех файлов на диске;
- наборы структур данных, используемых для управления файлами, такие, например, как каталоги файлов, дескрипторы файлов, таблицы распределения свободного и занятого пространства на диске;
- комплекс системных программных средств, реализующих управление файлами, в частности: создание, уничтожение, чтение, запись, именование, поиск и другие операции над файлами.
Файловая система используется обычно как при загрузке ОС после включения компьютера, так и в процессе работы. Файловая система выполняет следующие основные функции:
- определяет возможные способы организации файлов и файловой структуры на носителе;
- реализует методы доступа к содержимому файлов и предоставляет средства работы с файлами и файловой структурой. При этом доступ к данным может быть организован файловой системой как по именам, так и по адресам (номер сектора, поверхности и дорожки носителя);
- отслеживает свободное пространство на носителе.
Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, так же, как и на каком физическом типе носителя (CD, жестком диске или блоке флэш-памяти) он записан. Все, что знает программа – это имя файла, его размер и атрибуты. Эти данные она получает от драйвера файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске).
С точки зрения операционной системы, весь диск представляет собой набор кластеров (участков памяти) размером от 512 байт и больше. Драйверы файловой системы организуют кластеры в файлы и каталоги (реально являющиеся файлами, содержащими список файлов в этом каталоге). Эти же драйверы отслеживают, какие из кластеров в настоящее время используются, какие свободны, какие помечены как неисправные. Чтобы ясно представлять, как же хранятся данные на дисках, и как ОС обеспечивает доступ к ним необходимо представлять, хотя бы в общем виде логическую структуру диска.
3.1.5 Логическая структура диска
Для того чтобы компьютер мог хранить, читать и записывать информацию жесткий диск предварительно должен быть размечен. На нем с помощью соответствующих программ создаются разделы – это и называется "разбить жесткий диск". Без этой разметки на жесткий диск не удастся установить операционную систему (хотя Windows XP и 2000 могут устанавливаться на неразбитый диск, но они такую разметку проводят сами в процессе установки).
Жесткий диск можно разбить на несколько разделов, каждый из которых будет использоваться автономно. Для чего это надо? Один диск может содержать несколько различных операционных систем, расположенных в разных разделах. Внутренняя структура раздела, выделенного какой-либо ОС, полностью определяется этой операционной системой.
Кроме того, существуют и другие причины разбиения диска на разделы, например:
- возможность использования под управлением MS DOS дисков с емкостью большей, чем
32 Мб;
- в случае повреждения диска, пропадает только та информация, которая находилась на этом диске;
- реорганизация и выгрузка диска маленького размера проще и быстрее, чем большого;
- каждому пользователю можно выделить свой логический диск.
Операция подготовки диска к работе называется форматированием, или инициализацией. Всё доступное дисковое пространства разбивается на стороны, дорожки и сектора, причем дорожки и стороны нумеруются с нуля, а сектора – с единицы. Совокупность дорожек, находящихся на одинаковом удалении от оси диска или пакета дисков, называется цилиндром. Таким образом физический адрес сектора определяется следующими координатами: номер дорожки (цилиндра – С), номер стороны диска (головки – H), номера сектора – R, т.е. CHR.
В самом первом секторе жесткого диска (C=0, H=0, R=1) содержится главная загрузочная запись –Master Boot Record. Эта запись занимает не весь сектор, а только его начальную часть. Главная загрузочная запись является программой – внесистемным загрузчиком.
В конце первого сектора жесткого диска располагается таблица разделов диска – Partition Table. Эта таблица содержит четыре строки, описывающих максимально четыре раздела. Каждая строка в таблице описывает один раздел:
1) активный раздел или нет;
2) номер сектора, соответствующего началу раздела;
3) номер сектора, соответствующего концу раздела;
4) размер раздела в секторах;
5) код операционной системы, т.е. какой ОС принадлежит данный раздел.
Раздел называется активным, если он содержит программу загрузки операционной системы. Первым байтом в элементе раздела идет флаг активности раздела (0 – не активен, 128 (80H) – активен). Он служит для определения, является ли раздел системным (загрузочным), и для необходимости производить загрузку операционной системы с него при старте компьютера. Активным может быть только один раздел. Небольшие программы, называемые менеджерами загрузки (Boot Manager), могут располагаться в первых секторах диска. Они интерактивно запрашивают пользователя, с какого раздела производить загрузку и соответственно корректируют флаги активности разделов. Поскольку в Partition Table четыре строки, то на диске может быть до четырех различных ОС, следовательно, диск может содержать несколько первичных разделов, принадлежащих разным операционным системам.
Пример логической структуры жесткого диска, состоящего из трех разделов, два из которых принадлежат DOS, а один принадлежит UNIX, приведен на рисунке 3.2а.
Каждый активный раздел имеет свою загрузочную запись – программу, которая осуществляет загрузку данной ОС.
На практике диск разбивается чаще всего на два раздела. Размеры разделов, объявление их активными или нет, устанавливаются пользователем в процессе подготовки жесткого диска к работе. Делается это с помощью специальных программ. В DOS эта программа называется FDISK, в версиях Windows-XX – Diskadministrator.
В DOS первичный раздел – Primary Partition, это тот раздел, который содержит загрузчик операционной системы и саму ОС. Таким образом, первичный раздел является активным разделом, используется как логический диск с именем C:.
Операционная система WINDOWS (а именно WINDOWS 2000) изменила терминологию: активный раздел называется системным, а загрузочным называется логический диск, который содержит системные файлы WINDOWS. Загрузочный логический диск может совпадать с системным разделом, но может находиться в другом разделе того же жесткого диска или на другом жестком диске.
Расширенный раздел Extended Partition может разбиваться на несколько логических дисков с именами от D: до Z:.
На рисунке 3.2б представлена логическая структура жесткого диска, в котором всего два раздела и четыре логических диска.
| |
а | б |
Рисунок 3.2 – Логическая структура диска: а – с тремя разделами; б – с двумя разделами и четырьмя логическими дисками |
3.1.6 Файловая структура диска
Рассмотрим подробнее файловую структуру логического диска, созданного в расширенном разделе на жестком диске. В начале логического диска располагается сектор, в котором находится загрузочная запись, а в конце сектора – таблица логических дисков. Фактически эта таблица является расширением Partition Table, имеет тот же формат, но содержит всего две строки, два элемента. Первый элемент указывает на первый сектор первого логического диска, второй указывает на следующую таблицу логических дисков. В таблице логических дисков последнего логического диска, устанавливается код, означающий окончание списка.
Диски одного компьютера могут хранить огромное количество файлов, и для обеспечения возможности обращения к ним пришлось бы вести и составлять громоздкие каталоги, в которых бы для каждого файла были указаны занимаемые им сектора. Однако операционная система освобождает пользователя от необходимости вести эти каталоги и делает это сама, автоматически.
С этой целью
(рис.1) |
1) стартовый сектор;
2) таблица размещения файлов FAT- File Allocation Table;
3) корневой каталог – Root Directory;
4) пространство данных.
Размер этих областей зависит от размера логического диска, но общая структура и порядок расположения не меняется.
Стартовый сектор (загрузочная записьBoot Record)
Это своего рода визитная карточка любого диска. Он содержит необходимые ОС сведения для работы с диском. Под него выделяется первый сектор диска на дорожке 00 поверхности 0. Этот сектор содержит короткую программу блока начальной загрузки ОС, независимо от того системный диск или нет. Кроме того в загрузочной записи находятся параметры, описывающие характеристики логического диска:
· размер секторов диска в байтах;
· количество копий FAT (обычно 2);
· количество элементов в корневом каталоге;
· количество секторов на диске;
· указатель типа магнитного носителя информации;
· количество секторов, занимаемых FAT;
· количество секторов на дорожку;
· размер кластера и т.д.
Конец загрузочной записи заканчивается двухбайтовой подписью 55АА.
Таблица размещения файлов FAT
Таблица размещения файлов является важнейшей файловой структурой диска. В процессе работы содержимое области данных постоянно меняется: добавляются новые файлы, изменяется их содержимое, файлы удаляются, перемещаются и т.п. Выполнение этих операций требует наличия специального механизма, позволяющего распределять дисковое пространство между файлами и обеспечивать доступ к ним. Таким механизмом распределения дискового пространства и доступа к файлам и является таблица размещения файлов.
По содержимому FAT можно определить физическое расположение на диске всех файлов и каталогов. ОС разбивает всю область диска на участки одинакового размера, называемые кластерами. Размер кластера зависит от емкости диска, но всегда кратен размеру сектора. Несмотря на то, что минимальной порцией информации, передаваемой контроллером диска в процессе записи или чтения файла, является сектор, ОС выделяет место на диске целыми кластерами, если кластер больше сектора, то он занимает последовательные сектора.
Файл на диске, как правило, не занимает последовательную цепочку кластеров. Если дисковое пространство позволяет, то файл записывается в смежные кластеры, если нет – то в разные. В первом случае файл называется непрерывным, в последнем случае – фрагментированным. Если размер файла не кратен размеру кластера, то последний кластер лишь частично заполняется данными. Минимальный размер файла, даже если данные его занимают один байт, составляет целый кластер.
Для того чтобы определить физическое расположение файлов на диске, следует указать все входящие в него кластеры, причем в том порядке, в котором записывалась в кластеры содержимое файла.
FAT представляет собой таблицу, в которой число элементов, совпадает с числом кластеров на диске. Если на диске какой-то кластер свободен, то в FAT соответствующий ему элемент содержит код 000. Если файл на диске занимает несколько кластеров, то с помощью FAT эти кластеры связываются в цепочку. Например, файлу выделены кластеры №7, №8, №10, №14, №17, №11, №12. Элемент FAT №7 хранит номер следующего кластера, выделенного файлу, т.е. №8. Элемент №8 хранит 10 и т.д., пока не будет достигнут последний кластер, выделенный файлу. В этом последнем кластере записан специальный код FFF – признак конца файла.
FFF | FF7 |
FF7 |
Рисунок 3.3 – Фрагмент таблицы размещения файлов
Запись в каталоге, соответствующая данному файлу, содержит номер первого кластера (точка входа), выделенного файлу, в нашем примере это №7.
Кластеры, приходящиеся на испорченные участки диска, помечаются в FAT специальным кодом FF7 и исключаются из свободной области. Когда файл удаляют, то все записи в FAT, соответствующие его цепочки кластеров маркируются как свободные, однако данные файла из кластеров не удаляются до тех пор, пока в эти кластеры не будут записаны новые данные.
Операционная система MS DOS поддерживает 16-битовый формат FAT, а ОС Windows – 32-битовый. Это означает, что для записи адреса элемента таблицы необходимо 16 или 32 бита, соответственно. Отсюда следует, что при 16-битовом формате можно пронумеровать 2 16 =65536 кластеров. В связи с этим ограничением операционные системы не позволяют работать с жесткими дисками размером более 2 Гбайт.
Таблица 3.1 иллюстрирует, какой максимальный размер дискового пространства может обслуживать FAT16 и FAT32.
Таблица 3.1 – Максимальный объём памяти диска при использовании FAT16 и FAT32
Размер диска | Размер кластера для 16-битовой FAT | Размер кластера для 32-битовой FAT |
256-511 Мб | 8 Кб | Не поддерживается |
512-1024 Мб | 16 Кб | 4 Кб |
1024 Мб-2Гб | 32 Кб | 4 Кб |
2 Гб-8 Гб | Не поддерживается | 4 Кб |
8 Гб-16 Гб | 8 Кб | |
16 Гб-32 Гб | 16 Кб | |
Более 32 Гб | 32 Кб |
К очень негативным явлениям относится фрагментация файлов. По мере удаления старой информации в пространстве данных будут появляться кластеры, помеченные в FAT, как свободные. Вновь образованные файлы заполняют эти кластеры, что приводит к их фрагментации. Чем сильнее фрагментирован файл, тем больше времени уходит на его чтение или запись. Поскольку каждый файл, независимо от своего размера занимает целое число кластеров на диске, и целое число записей в FAT, то последний кластер используется не полностью. Недоступная часть кластера, недоступна и для других кластеров. Чем больше размер кластера, тем больше напрасный расход места на диске.
Более совершенная файловая система – FAT32 с 32-разрядными полями в таблицах размещения файлов, например, в ОС Windows 98/2000, позволяет уменьшать размер кластеров, что сокращает потери дисковой памяти и позволяет работать с жесткими дисками любого объёма. Ряд файловых систем, например, HPFS, WinFAT, сетевая Novell Netware, имеют механизмы дописывания остатков блоков различных файлов в частично заполненные кластеры. Этим обеспечивается более рациональное использование пространства внешней памяти.
В организации FAT могут возникать определенные дефекты. Ряд утилит позволяет диагностировать как логические ошибки в файловой системе, так и физические дефекты на поверхности диска.
Все современные операционные системы позволяют создавать каталоги. Правила присвоения имени каталогу ничем не отличаются от правил присвоения имени файлу, хотя негласно для каталогов не принято задавать расширения имен. Мы знаем, что в иерархических структурах данных адрес объекта задается маршрутом (путем доступа), ведущим от вершины структуры к объекту. При записи пути доступа к файлу, проходящего через систему вложенных каталогов, все промежуточные каталоги разделяются между собой определенным символом. Во многих операционных системах в качестве такого символа используется “\” (обратныйслэш).
52 FAT – таблица размещения файлов
FAT – таблица размещения файлов.
Для организации доступа к файлу операционная система должна иметь сведения о номерах кластеров, где размещается каждый файл. В этом ей помогает FAT- таблица, которая предназначена для размещения и поиска файлов на диске, содержит информацию о свободном пространстве на диске, о неисправных секторах, а также код формата диска.
Принцип организации файловой системы — табличный. Данные о том, в каком месте диска записан тот или иной файл, хранятся в системной области диска в специальных таблицах размещения файлов (FAT-таблицах). Поскольку нарушение FAT-таблицы приводит к невозможности воспользоваться данными, записанными на диске, к ней предъявляются особые требования надежности, и она существует в двух экземплярах, идентичность которых регулярно контролируется средствами операционной системы.
Файловая система FAT (англ. FileAllocationTable) была разработана Биллом Гейтсом и Марком МакДональдом в 1977 году и первоначально использовалась в операционной системе 86-DOS. Чтобы добиться переносимости программ из операционной системы CP/M в 86-DOS, в ней были сохранены ранее принятые ограничения на имена файлов. В дальнейшем 86-DOS была приобретена Microsoft и стала основой для ОС MS-DOS 1.0, выпущенной в августе 1981 года. FAT была предназначена для работы с гибкими дисками размером менее 1 Мбайта, и вначале не предусматривала поддержки жестких дисков.
Файловая система FAT заполняет свободное место на диске последовательно от начала к концу. При создании нового файла или увеличении уже существующего она ищет первый свободный кластер в таблице размещения файлов. Если одни файлы были удалены, а другие изменились в размере, то появляющиеся в результате пустые кластеры будут рассеяны по диску. Если кластеры, содержащие данные файла, расположены не подряд, то файл оказывается фрагментированным. Сильно фрагментированные файлы значительно снижают эффективность работы, так как головки чтения/записи припоиск е очередной записи файла должны будут перемещаться от одной области диска к другой. Желательно, чтобы кластеры, выделенные для хранения файла, шли подрят, так, как это позволяет сократить время его поиска. Однако, это можно сделать только с помощью специальной программы,, подобная процедура получила название дефрагментации файла.
Еще недостатком FAT является то, что ее производительность зависит от количества файлов, находящихся в одном каталоге. При большом количестве файлов (около тысячи), выполнение операции считывания списка файлов в каталоге может занять несколько минут. FAT не предусматривает хранения такой информации, как сведения о владельце или полномочия доступа к файлу.
FAT - простая файловая система, не предотвращающая порчи файлов из-за ненормального завершения работы компьютера, она является одной из самых распространенных файловых систем, и ее поддерживают большинство ОС.
Команда FORMAT фоpмиpует таблицы размещения файлов (FAT) и директорий (каталогов) диска. Обе эти структуры тесно связаны с организацией доступа к файлам.
Все программы и данные хранятся в долговременной (внешней) памяти компьютера в виде файлов.
Файл- это определенное количество информации (программа или данные), имеющее имя и хранящееся в долговременной (внешней) памяти.
Имя файла.Имя файла состоит из двух частей, разделенных точкой: собственно имя файла и расширение, определяющее его тип (программа, данные и так далее). Собственно имя файлу дает пользователь, а тип файла обычно задается программой автоматически при его создании.
Таблица 1. Типы файлов и расширений
Тип файла | Расширения |
Программы | exe, com |
Текстовые файлы | txt, doc |
Графические файлы | bmp, д1Т,]рдидр |
Звуковые файлы | wav, mid |
Видеофайлы | avi |
Программы на языках программирования | bas, pas и др |
Файловая система.На каждом носителе информации (гибком, жестком или лазерном диске) может храниться большое количество файлов. Порядок хранения файлов на диске определяется используемой файловой системой.
Каждый диск разбивается на две области: область хранения файлов и каталог. Каталог содержит имя файла и указание на начало его размещения на диске.
Для дисков с небольшим количеством файлов (до нескольких десятков) может использоваться одноуровневая файловая система, когда каталог (оглавление диска) представляет собой линейную последовательность имен файлов. Такой каталог можно сравнить с оглавлением детской книжки, которое содержит только названия отдельных рассказов.
Таблица 2.Одноуровневый каталог
Имя файла | Номер начального сектора |
Файл_1 | |
Файл_2 | |
……. | |
Файл_112 |
Если на диске хранятся сотни и тысячи файлов, то для удобства поиска используется многоуровневая иерархическая файловая система, которая имеет древовидную структуру.
Начальный, корневой каталог содержит вложенные каталоги 1-го уровня, в свою очередь, каждый из последних может содержать вложенные каталоги 2-го уровня и так далее. Необходимо отметить, что в каталогах всех уровней могут храниться и файлы.
Файловая система— это система хранения файлов и организации каталогов.
Путь к файлу.Путь к файлу вместе с именем файла называют иногда полным именем файла.
Операции над файлами.В процессе работы на компьютере наиболее часто над файлами производятся следующие операции:
• копирование (копия файла помещается в другой каталог);
• перемещение (сам файл перемещается в другой каталог);
• удаление (запись о файле удаляется из каталога);
• переименование (изменяется имя файла).
Форматирование дисков.Для того чтобы на диске можно было хранить информацию, диск должен быть отформатирован, то есть должна быть создана физическая и логическая структура диска.
Формирование физической структуры диска состоит в создании на диске концентрических дорожек, которые, в свою очередь, делятся на секторы. Для этого в процессе форматирования магнитная головка дисковода расставляет в определенных местах диска метки дорожек и секторов.
После форматирования гибкого диска 3,5" его параметры будут следующими:
• информационная емкость сектора — 512 байтов;
• количество секторов на дорожке — 18;
• дорожек на одной стороне — 80;
Логическая структура гибких дисков. Логическая структура магнитного диска представляет собой совокупность секторов (емкостью 512 байтов), каждый из которых имеет свой порядковый номер (например, 100). Сектора нумеруются в линейной последовательности от первого сектора нулевой дорожки до последнего сектора последней дорожки.
На гибком диске минимальным адресуемым элементом является сектор.
При записи файла на диск будет занято всегда целое количество секторов, соответственно минимальный размер файла — это размер одного сектора, а максимальный соответствует общему количеству секторов на диске.
Файл записывается в произвольные свободные сектора, которые могут находиться на различных дорожках. Например, Файл_1 объемом 2 Кбайта может занимать сектора 34, 35 и 47, 48, а Файл_2 объемом 1 Кбайт — сектора 36 и 49.
Таблица 3. Логическая структура гибкого диска формата 3,5" (2-я сторона)
№ дорожки | № сектора |
…………………. |
Для того чтобы можно было найти файл по его имени, на диске имеется каталог, представляющий собой базу данных.
Запись о файле содержит имя файла, адрес первого сектора, с которого начинается файл, объем файла, а также дату и время его создания.
Таблица 4. Структура записей в каталоге
Имя файла | Адрес первого сектора | Объем файла, Кбайт | Дата создания | Время создания |
Файл 1 | 14 01 99 | 14 29 | ||
Файл 2 | 14 01 99 | 14 45 |
Полная информация о секторах, которые занимают файлы, содержится в таблице размещения файлов (FAT — File Allocation Table). Количество ячеек FAT соответствует количеству секторов на диске, а значениями ячеек являются цепочки размещения файлов, то есть последовательности адресов секторов, в которых хранятся файлы.
Для размещения каталога — базы данных и таблицы FAT на гибком диске отводятся секторы со 2 по 33. Первый сектор отводится для размещения загрузочной записи операционной системы. Сами файлы могут быть записаны, начиная с 34 сектора.
Виды форматирования. Существуют два различных вида форматирования дисков: полное и быстрое форматирование. Полное форматирование включает в себя как физическое форматирование (проверку качества магнитного покрытия дискеты и ее разметку на дорожки и секторы), так и логическое форматирование (создание каталога и таблицы размещения файлов). После полного форматирования вся хранившаяся на диске информация будет уничтожена.
Быстрое форматирование производит лишь очистку корневого каталога и таблицы размещения файлов. Информация, то есть сами файлы, сохраняется и в принципе возможно восстановление файловой системы.
Информационная емкость гибких дисков. Рассмотрим различие между емкостью неформатированного гибкого магнитного диска, его информационной емкостью после форматирования и информационной емкостью, доступной для записи данных.
Заявленная емкость неформатированного гибкого магнитного диска формата 3,5" составляет 1,44 Мбайт.
Рассчитаем общую информационную емкость отформатированного гибкого диска:
Количество секторов: N = 18 х 80 х 2 = 2880.
512 байт х N = 1 474 560 байт = 1 440 Кбайт -= 1,40625 Мбайт.
Однако для записи данных доступно только 2847 секторов, то есть информационная емкость, доступная для записи данных, составляет:
512 байт х 2847 = 1 457 664 байт = 1423,5 Кбайт = 1,39 Мбайт.
Логическая структура жестких дисков. Логическая структура жестких дисков несколько отличается от логической структуры гибких дисков. Минимальным адресуемым элементом жесткого диска является кластер, который может включать в себя несколько секторов. Размер кластера зависит от типа используемой таблицы FAT и от емкости жесткого диска.
На жестком диске минимальным адресуемым элементом является кластер, который содержит не сколько секторов.
Таблица FAT16 может адресовать 2 16 — 65 536 кластеров. Для дисков большой емкости размер кластера оказывается слишком большим, так как информационная емкость жестких дисков может достигать 150 Гбайт.
Например, для диска объемом 40 Гбайт размер кластера будет равен:
40 Гбайт/65536 = 655 360 байт = 640 Кбайт.
Файлу всегда выделяется целое число кластеров. При размещении на жестком диске большого количества небольших по размеру файлов они будут занимать кластеры лишь частично, что приведет к большим потерям свободного дискового пространства.
Эта проблема частично решается с помощью использования таблицы FAT32, в которой объем кластера принят равным 8 секторам или 4 килобайтам для диска любого объема.
В целях более надежного сохранения информации о размещении файлов на диске хранятся две идентичные копии таблицы FAT.
Преобразование FAT16 в FAT32 можно осуществить с помощью служебной программы Преобразование диска в FAT32, которая входит в состав Windows.
Мы рассмотрели файловую систему, имеющую название FAT, однако в последнее время все большую популярность приобретает файловая система NTFS (New Technology File System - файловая система операционных систем семейства Windows NT), которая, в частности, используется в Windows NT и Windows ХР.
Максимальный размер раздела NTFS в данный момент ограничен лишь размерами «жестких» дисков. Как и любая другая система, NTFS делит все полезное место на кластеры — блоки данных, используемые единовременно. NTFS поддерживает почти любые размеры кластеров — от 512 байт до 64 Кбайт, неким стандартом же считается кластер размером 4 Кбайт. Диск NTFS условно делится на две части. Первые 12 % диска отводятся под так называемую зону MFT (Master File Table). Это БД, представляющая собой общую файловую таблицу, строки которой соответствуют файлам тома NTFS, а столбцы - атрибутам файлов. Запись каких-либо других данных в эту область невозможна. Остальные 88 % диска является обычным пространством для хранения файлов.
Зона MFT поделена на записи фиксированного размера (обычно 1 Кбайт), и каждая запись соответствует какому-либо файлу (в общем смысле этого слова). Первые 16 файлов носят служебный характер и недоступны ОС — они называются метафайлами, причем самый первый метафайл - сам MFT. Эти первые 16 элементов MFT - единственная часть диска, имеющая фиксированное положение. Интересно, что вторая копия первых трех записей для надежности — они очень важны - хранится ровно посередине диска. Остальной MFT-файл может располагаться, как и любой другой файл, в произвольных местах диска — восстановить его положение можно с помощью его самого, «зацепившись» за самую основу первый элемент MFT.
Дефрагментация дисков.Замедление скорости обмена данными может происходить в результате фрагментации файлов. Фрагментация файлов (фрагменты файлов хранятся в различных, удаленных друг от друга кластерах) возрастает с течением времени, в процессе удаления одних файлов и записи других.
Так как на диске могут храниться сотни и тысячи файлов в сотнях тысяч кластеров, то фрагментированность файлов будет существенно замедлять доступ к ним (магнитным головкам придется постоянно перемещаться с дорожки на дорожку) и в конечном итоге приводить к преждевременному износу жесткого диска. Рекомендуется периодически проводить дефрагментацию диска, в процессе которой файлы записываются в кластеры, последовательно идущие друг за другом.
Как основной файл операционной системы Windows, файловая система FAT32 в основном состоит из пяти частей: MBR, DBR и ее зарезервированных секторов, FAT1, FAT2 и DATA. FAT1 и FAT2 имеют одинаковый размер, а FAT имеет переменную длину, и ее длина зависит от размера раздела и количества секторов в кластере. В файлах FAT32 каталоги управляются как файлы, поэтому независимая область каталогов отсутствует.
1.1 Основная загрузочная запись
Первый сектор жесткого диска называется сектором MBR (Master Boot Record), который является записью главного загрузочного сектора и занимает 512 байтов. Программа загрузки MBR занимает первые 446 байтов, а последние 64 байта - это таблица разделов жесткого диска DPT. , Два байта «55AA» в конце являются действующим концом раздела. Флаг загрузки может быть только 00H и 80H, 80H означает активный, 00H означает неактивный, а остальные значения по умолчанию недопустимы.
1.2 Загрузочная запись операционной системы
DBR (DOS Boot Record), загрузочная запись операционной системы. DBR файловой системы включает инструкцию перехода, OEM-код, BPB, программу загрузки и флаг завершения. При восстановлении данных из FAT32 начальная позиция корневого каталога обычно может быть определена по количеству зарезервированных секторов в параметре загрузочного сектора BPB, количеству FAT и количеству секторов, занимаемых каждой FAT32.
1.3 Таблица размещения файлов
FAT (File Allocation Table), таблица размещения файлов. В файле FAT32 есть две одинаковые FAT, первая называется основной FAT, а другая - резервной FAT1. FAT располагается после DBR, и данные того же файла не обязательно хранятся в непрерывной области диска, а записываются в таблицу FAT в виде цепочки хранения.
1.4 Записи каталога файловой системы
Файловая система FAT32 не имеет независимой области корневого каталога. Записи каталога файлов и папок в корневом каталоге раздела хранятся в области корневого каталога, а записи каталога файлов и папок в подкаталоге раздела хранятся в области подкаталога, корневом каталоге И зона, и зона подкаталога находятся в зоне данных. Запись каталога файлов (FDT) занимает 32 байта, длина записи подкаталога равна нулю, а значение первого байта удаленной записи каталога - E5H.
1.5 Область данных
Область данных расположена после FAT2. Чтобы найти данные в области данных, сначала найдите соответствующий сектор DBR с помощью информации таблицы разделов, получите значение зарезервированного сектора DBR и номер каждого сектора FAT и получите начальный сектор области данных раздела с помощью соответствующей формулы вычисления.
2. Сектор DBR и его зарезервированный сектор
Структура загрузочного сектора FAT32 (только раздел с ключевыми словами)
Смещение байта (шестнадцатеричное) | Количество байтов | смысл |
---|---|---|
0x00-0x02 | 2 | Инструкции по сборке, переход к загрузочному коду |
0x0B-0x0C | 2 | Количество байтов на сектор, обычно 512 |
0x0D | 1 | Количество секторов в каждом кластере. Это значение является степенью 2, а максимальное - не более 64. |
0x20-0x23 | 4 | Общее количество секторов файловой системы |
0x24-0x27 | 4 | Количество секторов, занимаемых каждой таблицей FAT |
0x2C-0x2F | 4 | Номер начального кластера корневого каталога |
0x52~0x59 | 8 | Код ASCII формата файловой системы |
0x5A~0x1FD | 410 | Загрузочный код |
0x1FE-0x1FF | 2 | Подпись «55АА» |
0x200~0x203 | 4 | Расширенная направляющая метка "52 52 61 41" |
0x204~0x3E3 | 480 | Установить все на 0 |
0x3E4~0x3E7 | 4 | Подпись ФСИНФО "72 72 41 61" |
0x3E8~0x3EB | 4 | Количество пустых кластеров в файловой системе |
0x3EC~0x3EF | 4 | Следующий доступный номер кластера |
0x3FE~0x3FF | 2 | Подпись «55АА» |
0x00-0x10 : 58EB Инструкция прыжка, а именно JMP 58 , 90 Это инструкция NOP, следующие 8 байтов указывают, что флаг файловой системы и номер версии - MSDOS5.0, 0200 Относится к 512 байтам на сектор. 08 Относится к 8 секторам на кластер, 0022 Относится к количеству зарезервированных секторов 34, 02 Относится к количеству таблиц FAT как 2.
0x20-0x23 : Общее количество секторов в файловой системе равно 003FBBC5 , Каждая таблица FAT занимает 00000FE7 Секторы, номер кластера первого кластера, в котором находится корневой каталог. 0x02 。
Три, таблица FAT
Первые два элемента FAT таблицы FAT зарезервированы для файловой системы, FAT № 0 - это тип носителя, а FAT № 1 - это флаг ошибки файловой системы. Данные пользователя записываются из FAT No. 2.
Если файл занимает много кластеров, первая запись FAT записывает номер следующей записи FAT (номер кластера). Если файл заканчивается, он представлен как «0F FF FF FF».
Метод определения абсолютного положения FAT и области данных:
1. Определите начальный сектор раздела из таблицы разделов MBR и смещение до этого сектора.
2. Знать количество зарезервированных секторов DBR, номер таблицы FAT и размер таблицы FAT из BPB DBR.
3. FAT1 = начальный сектор раздела + зарезервированный сектор DBR, FAT2 = начальный сектор раздела + зарезервированный сектор DBR + FAT1, корневой каталог = начальный сектор раздела + зарезервированный сектор DBR + (таблица FAT * 2) + (Размер кластера * 2)
В-четвертых, корневой каталог
Пять, восстановление файлов FAT32
Подготовка к эксперименту
VMware Fusion + виртуальная машина Winxp + Winhex
Создайте файловую систему FAT32: создайте новый жесткий диск в VMware и инициализируйте его как файловую систему FAT32 на виртуальной машине xp, назовите его D и создайте на нем тестовый файл.
Используйте winhex для открытия диска D: 512 байт на сектор, 8 секторов на кластер, 34 зарезервированных сектора, на диске есть две FAT, каждая FAT занимает 4071 сектор, а каждый кластер занимает 4096 байт .
Проверьте шаблон корневого каталога: размер файла TEST - 0000598D, что составляет 22925 байт, занимает 6 кластеров. Номер первого кластера файла TEST - 00000005 (14h-15h, 1Ah-1Bh).
Просмотр списка кластеров файла
Восстановление файлов щелчком правой кнопкой мыши по удаленным файлам
Первый байт файла в корневом каталоге становится E5 , Размер файла остается неизменным, и номер первого кластера файла остается неизменным.
Войдите в связанный список кластера, содержимое такое же, как и раньше, вам нужно только изменить его первый байт на 54 Восстановление файла можно завершить. То есть щелкните правой кнопкой мыши E5-> Edit-> Fill selection block-> введите шестнадцатеричное число.
Shift + удалить удаленный файл восстановление файла
Первый байт файла в корневом каталоге становится E5 , Размер файла остается прежним, номер первого кластера файла остается неизменным, а содержимое связанного списка кластеров, соответствующего файлу, очищается.
Согласно первому номеру кластера, равному 5, измените содержимое связанного списка кластера как
То есть восстановление прошло успешно.
Предпосылка этого метода заключается в том, что старшие 16 бит номера первого кластера по умолчанию равны 0, а метод тестирования для определения того, равен ли номер первого кластера 0:
Интеллектуальная рекомендация
Java.nio.Buffer flip () метод jdk Ошибка перевода на китайский язык
Когда я сегодня читал «Идеи программирования на Java», я столкнулся с методом java.nio.Buffer flip (). Дело в том, что «[color = red] переворачивает этот буфер. Сначала установите ог.
Предварительное понимание регулярных выражений Python (4)
Сегодня я продолжу делиться базовыми знаниями о регулярных выражениях Python. В основном я представляю использование специального символа "<>". Ниже приведено конкретное руководство. .
Все белое Введение Сверток Neural Network (CNN)
Использование внутреннего соединения, левого соединения, правого соединения в оракуле
Левое-правое соединение фактически говорит, какая таблица является результатом нашего совместного запроса ~ 1. Взаимосвязь проста select A.*, B.* from A,B where A.id = B.id select A.*, B.* from.
[Код очень подробный] POJ 2492 A Bug's Life (и проверьте коллекцию)
1. Описание заголовка 2. Инструкции по анализу алгоритмов и руководство по написанию кода. Похожие темы:POJ 1182 Решение проблемы пищевой цепи Наблюдается m насекомых и n вязок. Насекомые u и v могут .
Читайте также: