stringtranslate.com

Проектирование файловой системы FAT

Файловая система FAT — это файловая система , используемая в операционных системах семейства MS-DOS и Windows 9x . [3] Она по-прежнему используется на мобильных устройствах и встроенных системах и, таким образом, является хорошо подходящей файловой системой для обмена данными между компьютерами и устройствами практически любого типа и возраста с 1981 года по настоящее время.

Состав

Файловая система FAT состоит из четырех областей:

FAT использует формат с прямым порядком байтов для всех записей в заголовке (за исключением, где это явно указано, некоторых записей в загрузочных секторах Atari ST) и FAT(ов). [5] Можно выделить больше секторов FAT, чем необходимо для количества кластеров. Конец последнего сектора каждой копии FAT может быть неиспользован, если нет соответствующих кластеров. Общее количество секторов (как указано в загрузочной записи) может превышать количество секторов, используемых данными (кластеры × секторы на кластер), FAT (количество FAT × секторы на FAT), корневым каталогом (н/д для FAT32) и скрытые сектора, включая загрузочный сектор: это приведет к появлению неиспользуемых секторов в конце тома. Если раздел содержит больше секторов, чем общее количество секторов, занимаемых файловой системой, это также приведет к появлению неиспользуемых секторов в конце раздела после тома.

Площадь зарезервированных секторов

Загрузочный сектор

На неразделенных устройствах хранения данных , таких как дискеты , загрузочный сектор ( VBR ) является первым сектором (логический сектор 0 с физическим адресом CHS 0/0/1 или адресом LBA 0). Для многораздельных устройств хранения данных, таких как жесткие диски, загрузочный сектор — это первый сектор раздела, как указано в таблице разделов устройства.

Блок параметров BIOS

ДОС 3.0 БПБ:

Следующие расширения были задокументированы начиная с DOS 3.0, однако они уже поддерживались некоторыми выпусками DOS 2.11. [28] MS-DOS 3.10 по-прежнему поддерживал формат DOS 2.0, но также мог использовать формат DOS 3.0.

ДОС 3.2 БПБ:

Официально MS-DOS 3.20 по-прежнему использовал формат DOS 3.0, но SYSуже FORMATбыл адаптирован для поддержки формата длиной на 6 байт (из которого использовались не все записи).

ДОС 3.31 БПБ:

Некоторые утилиты DOS 3.2, официально представленные в DOS 3.31 и не используемые в DOS 3.2, были разработаны с учетом этого нового формата. Официальная документация рекомендует доверять этим значениям только в том случае, если запись логического сектора по смещению 0x013 равна нулю.

Простая формула переводит заданный номер кластера тома CNв номер логического сектора LSN: [24] [25] [26]

  1. Определите (один раз) , где количество зарезервированных секторов хранится по смещению 0x00E , количество FAT по смещению 0x010 , количество секторов на FAT по смещению 0x016 (FAT12/FAT16) или 0x024 (FAT32), записи корневого каталога по смещению 0x011 , размер сектора по смещению 0x00B и округляется до целого числа.SSA=RSC+FN×SF+ceil((32×RDE)/SS)RSCFNSFRDESSceil(x)
  2. Определите , где секторы кластера хранятся по смещению 0x00D .LSN=SSA+(CN−2)×SCSC

На неразделенном носителе количество скрытых секторов тома равно нулю, поэтому LSNадреса LBAостаются одинаковыми до тех пор, пока размер логического сектора тома идентичен размеру физического сектора базового носителя. В этих условиях трансляция между CHSадресами также проста, а LSNsтакже:

LSN=SPT×(HN+(NOS×TN))+SN−1, где сектора на дорожку SPTхранятся по смещению 0x018 , а количество сторон по смещению 0x01A . Номер дорожки , номер головки и номер сектора соответствуют сектору головки цилиндра : формула дает известный перевод CHS в LBA .NOSTNHNSN

Расширенный блок параметров BIOS

Дальнейшая структура, используемая FAT12 и FAT16, начиная с OS/2 1.0 и DOS 4.0, также известная как расширенный блок параметров BIOS (EBPB) (байты ниже смещения сектора 0x024 такие же, как и для DOS 3.31 BPB):

Расширенный блок параметров BIOS FAT32

По сути, FAT32 вставляет 28 байтов в EBPB, за которыми следуют оставшиеся 26 (или иногда только 7) байтов EBPB, как показано выше для FAT12 и FAT16. Операционные системы Microsoft и IBM определяют тип файловой системы FAT, используемой на томе, исключительно по количеству кластеров, а не по используемому формату BPB или указанному типу файловой системы, то есть технически возможно использовать «FAT32 EBPB». также для томов FAT12 и FAT16, а также EBPB DOS 4.0 для небольших томов FAT32. Поскольку было обнаружено, что такие тома создаются операционными системами Windows при некоторых странных условиях, [nb 6] операционные системы должны быть готовы справиться с этими гибридными формами.

Исключения

Версии DOS до 3.2 полностью или частично полагались на байт дескриптора носителя в BPB или байт идентификатора FAT в кластере 0 первой FAT для определения форматов дискет FAT12, даже если BPB присутствует. В зависимости от найденного FAT ID и обнаруженного типа диска они по умолчанию используют один из следующих прототипов BPB вместо использования значений, фактически хранящихся в BPB. [номер 1]

Первоначально FAT ID должен был представлять собой битовый флаг со всеми установленными битами, за исключением бита 2, очищенного для обозначения формата с 80 дорожками (против 40 дорожек), бита 1 сброшенного для обозначения формата с 9 секторами (против 8 секторов). и бит 0 очищен, чтобы указать односторонний (а не двусторонний) формат, [7] но этой схеме не следовали все OEM-производители, и она устарела с появлением жестких дисков и форматов высокой плотности. Кроме того, различные 8-дюймовые форматы, поддерживаемые 86-DOS и MS-DOS, не соответствуют этой схеме.

Microsoft рекомендует различать два 8-дюймовых формата FAT ID 0xFE , пытаясь прочитать адресную метку одинарной плотности. Если это приводит к ошибке, значит, среда должна быть двойной плотности. [23]

В таблице не указан ряд несовместимых форматов 8-дюймовых и 5,25-дюймовых дискет FAT12, поддерживаемых 86-DOS , которые отличаются либо размером записей каталога (16 байт против 32 байтов), либо размером зарезервированного область секторов (несколько целых дорожек вместо одного логического сектора).

Реализация одностороннего формата FAT12 размером 315 КБ, используемая в MS-DOS для Apricot PC и F1e [34] , имела другую структуру загрузочного сектора, чтобы соответствовать BIOS этого компьютера, не совместимому с IBM. Инструкция перехода и OEM-имя были опущены, а параметры MS-DOS BPB (смещения 0x00B0x017 в стандартном загрузочном секторе) располагались по смещению 0x050 . Вместо этого Portable , F1, PC duo и Xi FD поддерживали нестандартный двусторонний формат FAT12 размером 720 КБ . [34] Различия в макете загрузочного сектора и идентификаторах носителей сделали эти форматы несовместимыми со многими другими операционными системами. Параметры геометрии для этих форматов:

В более поздних версиях Apricot MS-DOS появилась возможность чтения и записи дисков со стандартным загрузочным сектором в дополнение к дискам со стандартным загрузочным сектором Apricot. Эти форматы также поддерживались DOS Plus 2.1e/g для серии Apricot ACT.

Адаптация DOS Plus для BBC Master 512 поддерживала два формата FAT12 на 80-дорожечных двусторонних 5,25-дюймовых дисках двойной плотности, которые вообще не использовали обычные загрузочные сектора. Диски с данными емкостью 800 КБ не имели загрузочного сектора и начинались с одна копия FAT. [35] Первый байт перемещенной FAT в логическом секторе 0 использовался для определения емкости диска. Загрузочные диски размером 640 КБ начинались с миниатюрной файловой системы ADFS , содержащей загрузчик, за которой следовал одиночный FAT. [35] [36] Кроме того , формат 640 КБ отличался использованием номеров физических секторов CHS, начинающихся с 0 (а не 1, как обычно), и увеличением секторов в порядке сектор-дорожка-заголовок (а не сектор-заголовок-дорожка, как обычно). общий). [36] FAT начинается в начале следующей дорожки.Эти различия делают эти форматы нераспознаваемыми другими операционными системами.Параметры геометрии для этих форматов:

DOS Plus для Master 512 также мог получить доступ к стандартным дискам ПК, отформатированным до 180 КБ или 360 КБ , используя первый байт FAT в логическом секторе 1 для определения емкости.

DEC Rainbow 100 (все варианты) поддерживал один формат FAT12 на 80-дорожечных односторонних 5,25-дюймовых дисках четырех плотностей. Первые две дорожки были зарезервированы для загрузчика, но не содержали ни MBR, ни BPB ( Вместо этого MS-DOS использовала статический BPB в памяти. Загрузочный сектор (дорожка 0, сторона 0, сектор 1) представлял собой код Z80, начинающийся с DI 0xF3 . Начальная загрузка 8088 загружалась Z80. Дорожка 1, сторона 0, сектор 2 начинается с байта идентификатора носителя/FAT 0xFA . На неформатированных дисках вместо этого используется 0xE5 . Файловая система начинается на дорожке 2, стороне 0, секторе 1. В корневом каталоге имеется 2 копии FAT и 96 записей. Кроме того, представляет собой сопоставление физических и логических дорожек, обеспечивающее чередование секторов 2: 1. Диски были отформатированы с использованием физических секторов с номерами от 1 до 10 на каждой дорожке после зарезервированных дорожек, но логические сектора от 1 до 10 хранились в физических сектора 1, 6, 2, 7, 3, 8, 4, 9, 5, 10. [37]

Информационный сектор ФС

«Информационный сектор ФС» был введен в FAT32 [38] для ускорения времени доступа к определенным операциям (в частности, получению количества свободного места). Он расположен по номеру логического сектора, указанному в загрузочной записи FAT32 EBPB в позиции 0x030 (обычно это логический сектор 1, сразу после самой загрузочной записи).

Данные сектора могут быть устаревшими и не отражать текущее содержимое носителя, поскольку не все операционные системы обновляют или используют этот сектор, и даже если они это делают, содержимое недействительно, когда носитель был извлечен без надлежащего отключения тома или после сбой питания. Поэтому операционные системы должны сначала проверить дополнительные битовые флаги состояния завершения работы тома, находящиеся в записи FAT кластера 1 или FAT32 EBPB по смещению 0x041, и игнорировать данные, хранящиеся в информационном секторе FS, если эти битовые флаги указывают на то, что том не был должным образом отключен. до. Это не вызывает никаких проблем, кроме возможного снижения скорости при первом запросе свободного пространства или выделении кластера данных; см. фрагментация.

Если этот сектор присутствует в томе FAT32, минимально допустимый размер логического сектора составляет 512 байт, тогда как в противном случае он будет составлять 128 байт. Некоторые реализации FAT32 поддерживают небольшое изменение спецификации Microsoft, делая информационный сектор FS необязательным, указав значение 0xFFFF [19] (или 0x0000 ) в записи по смещению 0x030 .

FAT-регион

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

Карта кластера

Область данных тома разделена на кластеры одинакового размера — небольшие блоки непрерывного пространства. Размеры кластеров различаются в зависимости от типа используемой файловой системы FAT и размера диска; типичные размеры кластеров варьируются от 2 до 32 КиБ . [39]

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

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

Файловая система FAT12 использует 12 бит на запись FAT, поэтому две записи занимают 3 байта. Это последовательно прямой порядок байтов : если эти три байта рассматриваются как одно 24-битное число с прямым порядком байтов, 12 младших битов представляют первую запись (например, кластер 0), а 12 старших битов - вторую (например, кластер 1). . Другими словами, хотя младшие восемь битов первого кластера в строке хранятся в первом байте, старшие четыре бита хранятся в младшем полубайте второго байта, тогда как младшие четыре бита последующего кластера в строке хранятся в старшем полубайте второго байта и в восьми старших битах третьего байта.

Файловая система FAT16 использует 16 бит на запись FAT, поэтому одна запись занимает два байта в прямом порядке байтов:

Файловая система FAT32 использует 32 бита на запись FAT, таким образом, одна запись занимает четыре байта в порядке байтов с прямым порядком байтов. Четыре старших бита каждой записи зарезервированы для других целей; они очищаются во время форматирования и в противном случае не должны изменяться. Их необходимо замаскировать, прежде чем интерпретировать запись как 28-битный адрес кластера.

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

Чтобы очень ранние версии DOS распознавали файловую систему, система должна быть загружена с тома, или FAT тома должна начинаться со второго сектора тома (логический сектор 1 с физическим адресом CHS 0/0/2 или адресом LBA 1). , то есть сразу после загрузочного сектора. Операционные системы предполагают это жесткое расположение FAT, чтобы найти идентификатор FAT в записи кластера 0 FAT на дискетах FAT DOS 1.0–1.1, где не найден действительный BPB.

Специальные записи

Первые две записи FAT хранят специальные значения:

Первая запись (кластер 0 в FAT) содержит идентификатор FAT, начиная с MS -DOS 1.20 и PC DOS 1.1 (допустимые значения 0xF0–0xFF с зарезервированными 0xF1–0xF7 ) в битах 7–0 , который также копируется в BPB загрузочный сектор, смещение 0x015, начиная с DOS 2.0. Остальные 4 бита (если FAT12), 8 бит (если FAT16) или 20 бит (если FAT32) этой записи всегда равны 1. Эти значения расположены так, чтобы запись также функционировала как завершающий элемент «ловушки для всех». -маркер цепочки для всех кластеров данных, содержащий нулевое значение. Кроме того, для идентификаторов FAT, отличных от 0xFF0x00 ), можно определить правильный порядок полубайтов и байтов, используемый драйвером файловой системы, однако файловая система FAT официально использует только представление с прямым порядком байтов , и там не известны реализации вариантов, использующих вместо этого значения с прямым порядком байтов . От 86-DOS 0.42 до MS-DOS 1.14 вместо FAT ID использовались профили жесткого диска, но этот байт использовался для различения носителей, отформатированных с помощью 32-байтовых или 16-байтовых записей каталога, поскольку они использовались до 86-DOS 0.42 до MS-DOS 1.14. ДОС 0.42.

Вторая запись (кластер 1 в FAT) номинально хранит маркер конца цепочки кластеров, используемый форматировщиком, но обычно всегда содержит 0xFFF / 0xFFFF / 0x0FFFFFF , то есть за исключением битов 31-28 в FAT32. тома эти биты обычно всегда установлены. Однако некоторые операционные системы Microsoft устанавливают эти биты, если том не является томом, на котором находится работающая операционная система (то есть здесь используйте 0xFFFFFFFF вместо 0x0FFFFFFFF ). [40] (В сочетании с альтернативными маркерами конца цепочки младшие биты 2–0 могут стать нулевыми для наименьшего разрешенного маркера конца цепочки 0xFF8 / 0xFFF8 / 0x?FFFFFF8 ; бит 3 также должен быть зарезервирован, учитывая, что кластеры 0xFF0 / 0xFFF0 / 0x?FFFFFF0 и выше официально зарезервированы. Некоторые операционные системы не смогут подключить некоторые тома, если какой-либо из этих битов не установлен, поэтому маркер конца цепочки по умолчанию не следует изменять.) Для В DOS 1 и 2 эта запись была задокументирована как зарезервированная для будущего использования.

Начиная с DOS 7.1, два старших бита этой записи кластера могут содержать два дополнительных битовых флага, представляющих текущее состояние тома на FAT16 и FAT32, но не на томах FAT12. Эти битовые флаги поддерживаются не всеми операционными системами, но операционные системы, поддерживающие эту функцию, будут устанавливать эти биты при завершении работы и очищать наиболее значимый бит при запуске:
Если бит 15 (в FAT16) или бит 27 (в FAT32) [41] не установлено при монтировании тома, том не был должным образом размонтирован перед выключением или извлечением и, следовательно, находится в неизвестном и, возможно, «грязном» состоянии. [27] На томах FAT32 информационный сектор FS может содержать устаревшие данные, поэтому его не следует использовать. Затем операционная система обычно запускает SCANDISK или CHKDSK при следующем запуске [nb 9] [41] (но не при вставке съемного носителя), чтобы гарантировать и, возможно, восстановить целостность тома.
Если бит 14 (в FAT16) или бит 26 (в FAT32) [41] очищен, операционная система обнаружила ошибки дискового ввода-вывода при запуске, [41] возможное указание на наличие поврежденных секторов. Операционные системы, знающие об этом расширении, интерпретируют это как рекомендацию выполнить сканирование поверхности ( SCANDISK ) при следующей загрузке. [27] [41] (Аналогичный набор битовых флагов существует в EBPB FAT12/FAT16 по смещению 0x1A или EBPB FAT32 по смещению 0x36 . Хотя запись кластера 1 может быть доступна драйверам файловой системы после монтирования тома, Запись EBPB доступна, даже если том не смонтирован, и, следовательно, ее проще использовать драйверами блочных устройств диска или инструментами создания разделов.)

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

Некоторые нестандартные реализации FAT12/FAT16 используют запись кластера 1 для хранения начального кластера корневого каталога переменного размера (обычно 2 [33] ). Это может произойти, когда количество записей корневого каталога в BPB имеет значение 0 и EBPB FAT32 не найден (нет подписи 0x29 или 0x28 по смещению 0x042 ). [20] Однако это расширение не поддерживается основными операционными системами, [20] поскольку оно конфликтует с другими возможными вариантами использования записи кластера 1. Большинство конфликтов можно исключить, если это расширение разрешено только для томов FAT12 с размером менее 0xFEF и томов FAT16 с кластерами менее 0x3FEF и 2 FAT.

Поскольку эти первые две записи FAT хранят специальные значения, кластеры данных 0 или 1 отсутствуют. Первый кластер данных (после корневого каталога, если FAT12/FAT16) — это кластер 2, [33] обозначающий начало области данных.

Ценности кластера

Значения записи FAT:

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

Область корневого каталога

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

Регион данных

За исключением таблицы корневого каталога в файловых системах FAT12 и FAT16, которая занимает специальную область корневого каталога , все таблицы каталогов хранятся в области данных. Фактическое количество записей в каталоге, хранящемся в области данных, может увеличиться за счет добавления еще одного кластера в цепочку в FAT.

Таблица каталогов

Таблица каталогов — это особый тип файла, который представляет каталог (также известный как папка). Начиная с 86-DOS 0.42 , [46] каждый файл или (начиная с MS-DOS 1.40 и PC DOS 2.0) подкаталог, хранящийся в нем, представлен 32-байтовой записью в таблице. В каждой записи записываются имя, расширение, атрибуты ( архив , каталог, скрытый, только для чтения, система и том), адрес первого кластера данных файла/каталога, размер файла/каталога и дата [ 46] и (начиная с PC DOS 1.1) также время последней модификации. Более ранние версии 86-DOS использовали только 16-байтовые записи каталога, не поддерживая файлы размером более 16 МБ и время последней модификации. [46]

Сама файловая система FAT не накладывает никаких ограничений на глубину дерева подкаталогов, пока существуют свободные кластеры для размещения подкаталогов, однако внутренняя структура текущих каталогов (CDS) в MS-DOS/PC DOS ограничивает абсолютный путь каталога до 66 символов (включая букву диска, но исключая нулевой байтовый разделитель), [24] [25] [26] , тем самым ограничивая максимальную поддерживаемую глубину подкаталогов до 32, что бы ни произошло раньше. Concurrent DOS, Multiuser DOS и DR DOS версий 3.31–6.0 (вплоть до обновлений 1992–11 гг.) не сохраняют внутри себя абсолютные пути к рабочим каталогам и, следовательно, не отображают это ограничение. [47] То же самое относится и к Atari GEMDOS, но Atari Desktop не поддерживает более 8 уровней подкаталогов. Большинство приложений, знающих об этом расширении, поддерживают пути длиной не менее 127 байт. FlexOS, 4680 OS и 4690 OS также поддерживают длину до 127 байт, что позволяет уменьшить глубину до 60 уровней. [48] ​​PalmDOS, DR DOS 6.0 (начиная с BDOS 7.1) и выше, Novell DOS и OpenDOS имеют CDS, совместимый с MS-DOS, и поэтому имеют те же ограничения по длине, что и MS-DOS/PC DOS.

Каждой записи могут предшествовать «поддельные записи» для поддержки длинного имени файла VFAT (LFN); см. далее ниже.

Допустимые символы для коротких имен файлов DOS включают следующее:

Это исключает следующие символы ASCII :

Символ 229 ( 0xE5 ) не допускался в качестве первого символа в имени файла в DOS 1 и 2 из-за его использования в качестве маркера свободного входа. Был добавлен особый случай, позволяющий обойти это ограничение в DOS 3.0 и выше.

Следующие дополнительные символы разрешены в GEMDOS Atari, но их следует избегать из-за совместимости с MS-DOS/PC DOS:

Точку с запятой ( ;) следует избегать в именах файлов в DR DOS 3.31 и выше, PalmDOS, Novell DOS, OpenDOS, Concurrent DOS, Multiuser DOS, System Manager и REAL/32, поскольку она может конфликтовать с синтаксисом указания паролей файлов и каталогов: " ...\DIRSPEC.EXT;DIRPWD\FILESPEC.EXT;FILEPWD". Операционная система удалит одну [47] (а также две — начиная с DR-DOS 7.02) точки с запятой и ожидающие пароли из имен файлов перед сохранением их на диске. (Командный процессор 4DOS использует точки с запятой для списков включения и требует, чтобы точка с запятой удваивалась для файлов, защищенных паролем, с любыми командами, поддерживающими подстановочные знаки. [47] ).

Символ at ( @) используется для списков файлов во многих командах DR-DOS, PalmDOS, Novell DOS, OpenDOS и Multiuser DOS, System Manager и REAL/32, а также в 4DOS, и поэтому иногда его может быть сложно использовать в именах файлов. . [47]

В многопользовательском DOS и REAL/32 восклицательный знак (!) не является допустимым символом имени файла, поскольку он используется для разделения нескольких команд в одной командной строке. [47]

В ОС IBM 4680 и 4690 в именах файлов не допускаются следующие символы:

Кроме того, следующие специальные символы не допускаются в первом, четвертом, пятом и восьмом символе имени файла, поскольку они конфликтуют с командным процессором хоста (HCP) и именами файлов построения таблицы входных последовательностей:

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

Запись в каталоге

До того, как Microsoft добавила поддержку длинных имен файлов и отметок времени создания/доступа, байты 0x0C0x15 записи каталога использовались другими операционными системами для хранения дополнительных метаданных, в первую очередь операционные системы семейства Digital Research хранили пароли файлов, права доступа, идентификаторы владельцев и данные об удалении файлов. Хотя новые расширения Microsoft по умолчанию не полностью совместимы с этими расширениями, большинство из них могут сосуществовать в сторонних реализациях FAT (по крайней мере, на томах FAT12 и FAT16).

32-байтовые записи каталога как в корневом каталоге, так и в подкаталогах имеют следующий формат (см. также имя файла 8.3 ):

Операционные системы IBM 4680 OS и IBM 4690 на базе FlexOS поддерживают уникальные атрибуты распределения, хранящиеся в некоторых битах ранее зарезервированных областей в записях каталога: [62]

  1. Локальный: не распространять файл, а хранить только на локальном контроллере. [номер 14]
  2. Зеркальное отображение файла при обновлении: Распространять файл на сервер только при обновлении файла.
  3. Зеркальное отображение файла при закрытии: Распространять файл на сервер только после закрытия файла.
  4. Составной файл при обновлении: Распространение файла на все контроллеры при обновлении файла.
  5. Составной файл при закрытии: Распространение файла на все контроллеры при закрытии файла. [63]

Некоторые несовместимые расширения, обнаруженные в некоторых операционных системах, включают:

Ограничения по размеру

Варианты файловых систем FAT12, FAT16, FAT16B и FAT32 имеют четкие ограничения, основанные на количестве кластеров и количестве секторов в кластере (1, 2, 4, ..., 128). Для типичного значения 512 байт на сектор:

Требования FAT12: 3 сектора в каждой копии FAT на каждые 1024 кластера
Требования FAT16: 1 сектор в каждой копии FAT на каждые 256 кластеров
Требования FAT32: 1 сектор в каждой копии FAT на каждые 128 кластеров

Диапазон FAT12: от 1 до 4084 кластеров: От 1 до 12 секторов на копию FAT
Диапазон FAT16: от 4085 до 65524 кластеров: от 16 до 256 секторов на копию FAT
Диапазон FAT32: от 65525 до 268435444 кластеров: от 512 до 2097152 секторов на копию FAT

Минимум FAT12: 1 сектор на кластер × 1 кластер = 512 байт (0,5 КиБ)
Минимум FAT16: 1 сектор на кластер × 4085 кластеров = 2 091 520 байт (2 042,5 КБ)
Минимум FAT32: 1 сектор на кластер × 65 525 кластеров = 33 548 800 байт (32 762,5 КБ)

Максимум FAT12: 64 сектора на кластер × 4, 084 кластеры = 133 824 512 байт (≈ 127 МБ)
[максимум FAT12: 128 секторов на кластер × 4 084 кластера = 267 694 024 байт (≈ 255 МБ)]

Максимум FAT16: 64 сектора на кластер × 65 524 кластера = 2 147 090 432 байта (≈2 ,047 МБ)
[максимум FAT16 : 128 секторов на кластер × 65 524 кластера = 4 294 180 864 байт (≈4 095 МБ)]

Максимум FAT32: 8 секторов на кластер × 268 435 444 кластера = 1 099 511 578 624 байт (≈1 024 ГБ)
Максимум FAT32: 16 секторов на кластер × 2 68 173 557 кластеров = 2 196 877 778 944 байт (≈ 2046 ГБ)
[Максимум FAT32: 32 сектора на кластер × 134 152 181 кластеров = 2 197 949 333 504 байта (≈2 047 ГБ)]
[Максимум FAT32: 64 сектора на кластер × 67 092 469 кластеров = 2 198 486 024 192 байта (≈2 ,047 ГБ)]
[Максимум FAT32: 128 секторов на кластер × 33 550 325 кластеров = 2 198 754 099 200 байт (≈2 047 ГБ)]

Легенда: 268435444+3 — это 0x0FFFFFF7 , поскольку FAT32 версии 0 использует только 28 битов в 32-битных номерах кластеров, номера кластеров от 0x0FFFFFF7 до 0x0FFFFFF обозначают плохие кластеры или конец файла, номер кластера 0 обозначает свободный кластер и кластер номер 1 не используется. [33] Аналогично, 65524+3 — это 0xFFF7 для FAT16, а 4084+3 — это 0xFF7 для FAT12. Количество секторов в кластере — это степень 2, умещающаяся в один байт, наименьшее значение — 1 ( 0x01 ), наибольшее значение — 128 ( 0x80 ). Линии в квадратных скобках указывают на необычный размер кластера 128, а для FAT32 — на больший, чем необходимо, размер кластера 32 или 64. [64]

Поскольку каждая запись FAT32 занимает 32 бита (4 байта), максимальное количество кластеров (268435444) требует 2097152 секторов FAT для размера сектора 512 байт. 2097152 — это 0x200000 , и для хранения этого значения требуется более двух байтов. Таким образом, FAT32 ввела новое 32-битное значение в загрузочном секторе FAT32 сразу после 32-битного значения общего количества секторов, введенного в варианте FAT16B.

Расширения загрузочной записи, представленные в DOS 4.0, начинаются с магического 40 ( 0x28 ) или 41 ( 0x29 ). Обычно драйверы FAT смотрят только на количество кластеров, чтобы отличить FAT12, FAT16 и FAT32: читаемые человеком строки, идентифицирующие вариант FAT в загрузочной записи, игнорируются, поскольку они существуют только для носителей, отформатированных в DOS 4.0 или более поздней версии.

Определить количество записей каталога на кластер несложно. Каждая запись занимает 32 байта; в результате получается 16 записей на сектор при размере сектора 512 байт. Команда DOS 5 RMDIR/ RDудаляет начальные записи " ." (этот каталог) и " .." (родительский каталог) непосредственно в подкаталогах, поэтому размер сектора 32 на RAM-диске возможен для FAT12, но требует 2 или более секторов на кластер. Загрузочному сектору FAT12 без расширений DOS 4 требуется 29 байт перед первым ненужным 32-битным количеством скрытых секторов FAT16B, это оставляет три байта для (на неиспользуемом RAM-диске) загрузочного кода и магического 0x55 0xAA в конце всех загрузочные сектора. В Windows NT наименьший поддерживаемый размер сектора — 128.

В операционных системах Windows NTFORMAT параметры команды /A:128Kи /A:256Kсоответствуют максимальному размеру кластера 0x80(128) с размером сектора 1024 и 2048 соответственно. Для общего размера сектора 512 /A:64Kполучается 128 секторов на кластер.

В обеих редакциях ECMA-107 [24] и ISO/IEC 9293 [25] [26] указывается максимальный номер кластера, MAX определяемый формулой , и резервируются номера кластеров до 4086 ( 0xFF6 , FAT12) и более поздних 65526 ​​( 0xFFF6 , FAT16) . ) для будущей стандартизации.MAX=1+trunc((TS-SSA)/SC)MAX+1

Спецификация Microsoft EFI FAT32 [4] гласит, что любая файловая система FAT с числом кластеров менее 4085 — это FAT12, в противном случае любая файловая система FAT с числом кластеров менее 65 525 — это FAT16, а в противном случае — FAT32. Запись для кластера 0 в начале FAT должна быть идентична байту дескриптора носителя, найденному в BPB, тогда как запись для кластера 1 отражает значение конца цепочки, используемое форматировщиком для цепочек кластеров ( 0xFFF , 0xFFFF или 0x0FFFFFF ). Записи для номеров кластеров 0 и 1 заканчиваются на границе байта даже для FAT12, например 0xF9FFFF для дескриптора носителя 0xF9 .

Первый кластер данных равен 2, [33] и, следовательно, последний кластер MAXполучает номер MAX+1. В результате получаются номера кластеров данных 2...4085 ( 0xFF5 ) для FAT12, 2...65525 ( 0xFFF5 ) для FAT16 и 2...268435445 ( 0x0FFFFFF5 ) для FAT32.

Таким образом, единственными доступными значениями, зарезервированными для будущей стандартизации, являются 0xFF6 (FAT12) и 0xFFF6 (FAT16). Как отмечено ниже, «менее 4085» также используется для реализаций Linux [44] или, как это указано в спецификации Microsoft FAT: [ 4]

...когда говорится <, это не означает <=. Также обратите внимание, что цифры верны. Первое число для FAT12 — 4085; второе число для FAT16 — 65525. Эти цифры и знаки «<» не являются ошибочными».

Фрагментация

Файловая система FAT не содержит встроенных механизмов, предотвращающих разброс вновь записанных файлов по разделу. [65] На томах, где файлы часто создаются и удаляются или их длина часто меняется, носитель со временем становится все более фрагментированным.

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

Другие файловые системы, например, HPFS или exFAT , используют растровые изображения свободного пространства , которые указывают используемые и доступные кластеры, которые затем можно быстро просмотреть, чтобы найти свободные смежные области. Другое решение — объединение всех свободных кластеров в один или несколько списков (как это делается в файловых системах Unix ). Вместо этого FAT необходимо сканировать как массив для поиска свободных кластеров, что может привести к снижению производительности при работе с большими дисками.

Фактически, поиск файлов в больших подкаталогах или вычисление свободного дискового пространства на томах FAT — одна из наиболее ресурсоемких операций, поскольку требует линейного чтения таблиц каталогов или даже всей FAT. Поскольку общее количество кластеров и размер их записей в FAT все еще были небольшими на томах FAT12 и FAT16, в большинстве случаев с этим можно было мириться на томах FAT12 и FAT16, учитывая, что введение более сложных дисковых структур потребовало бы большего. также увеличили сложность и объем памяти операционных систем реального режима с их минимальными общими требованиями к памяти 128 КБ или меньше (например, в DOS), для которых FAT изначально был разработан и оптимизирован.

С появлением FAT32 длительное время поиска и сканирования стало более очевидным, особенно на очень больших томах. Возможным оправданием, предложенным Рэймондом Ченом из Microsoft для ограничения максимального размера разделов FAT32, создаваемых в Windows, было время, необходимое для выполнения DIRоперации " ", которая всегда отображает свободное дисковое пространство в последней строке. [66] Отображение этой строки занимало все больше и больше времени по мере увеличения количества кластеров. Поэтому в FAT32 появился специальный сектор информации о файловой системе, в котором ранее вычисленный объем свободного пространства сохраняется в течение циклов включения и выключения, так что счетчик свободного пространства необходимо пересчитывать только тогда, когда съемный носитель в формате FAT32 извлекается без предварительного его размонтирования или если система выключается без надлежащего завершения работы операционной системы. Эта проблема чаще всего заметна на компьютерах до ATX -типа, в простых системах DOS и некоторых потребительских продуктах с батарейным питанием.

Из-за огромных размеров кластера (16 КБ, 32 КБ, 64 КБ), вызванных большими разделами FAT, внутренняя фрагментация в виде потери дискового пространства из-за нехватки файлов из-за перевеса кластера (поскольку файлы редко кратны размеру кластера) становится проблемой. тоже проблема, особенно когда мелких файлов очень много.

Различные оптимизации и настройки реализации драйверов файловой системы FAT, драйверов блочных устройств и дисковых инструментов были разработаны для преодоления большинства узких мест производительности в конструкции файловой системы без необходимости изменения структуры структур на диске. [67] [68] Их можно разделить на онлайновые и автономные методы, и они работают, в первую очередь, пытаясь избежать фрагментации файловой системы, развертывая методы, чтобы лучше справляться с существующей фрагментацией, а также переупорядочивая и оптимизируя структуры на диске. При наличии оптимизации производительность томов FAT часто может достигать производительности более сложных файловых систем в практических сценариях, сохраняя в то же время преимущество доступности даже на очень маленьких или старых системах.

DOS 3.0 и выше не будет немедленно повторно использовать дисковое пространство удаленных файлов для новых выделений, а вместо этого будет искать ранее неиспользованное пространство, прежде чем начать использовать также дисковое пространство ранее удаленных файлов. Это не только помогает сохранять целостность удаленных файлов как можно дольше, но также ускоряет выделение файлов и позволяет избежать фрагментации, поскольку никогда ранее выделенное дисковое пространство не было всегда нефрагментировано. DOS достигает этого, сохраняя в памяти указатель на последний выделенный кластер на каждом смонтированном томе и начинает поиск свободного места от этого места вверх, а не в начале FAT, как это все еще делалось в DOS 2.x. [13] Если достигнут конец FAT, поиск продолжится в начале FAT до тех пор, пока либо не будет найдено свободное пространство, либо пока исходная позиция не будет достигнута снова без обнаружения свободного места. [13] Эти указатели инициализируются так, чтобы указывать на начало файлов FAT после загрузки, [13] но на томах FAT32 DOS 7.1 и выше попытается получить последнюю позицию из информационного сектора FS. Однако этот механизм терпит неудачу, если приложение часто удаляет и воссоздает временные файлы, поскольку в этом случае операционная система будет пытаться сохранить целостность пустых данных, что в конечном итоге приведет к еще большей фрагментации. [13] В некоторых версиях DOS, чтобы избежать этой проблемы, можно использовать специальную функцию API для создания временных файлов.

Кроме того, начиная с DOS 3.0, записи каталога удаленных файлов будут помечены как 0xE5 . [42] DOS 5.0 и выше начнут повторно использовать эти записи только тогда, когда ранее неиспользуемые записи каталога будут израсходованы в таблице, и в противном случае системе придется расширить таблицу самостоятельно. [6]

Начиная с DOS 3.3, операционная система предоставляет средства для повышения производительности файловых операций за счет FASTOPENотслеживания положения недавно открытых файлов или каталогов в различных формах списков (MS-DOS/PC DOS) или хеш-таблиц (DR-DOS). что может значительно сократить время поиска и открытия файлов. До DOS 5.0 необходимо проявлять особую осторожность при использовании таких механизмов вместе с программным обеспечением для дефрагментации диска в обход файловой системы или драйверов диска.

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

Другие механизмы высокого уровня могут считывать и обрабатывать более крупные части или всю FAT при запуске или по требованию, когда это необходимо, и динамически создавать в памяти древовидные представления файловых структур тома, отличные от структур на диске. [67] [68] На томах с большим количеством свободных кластеров это может занимать даже меньше памяти, чем образ самой FAT. В частности, на сильно фрагментированных или заполненных томах поиск становится намного быстрее, чем при линейном сканировании фактической FAT, даже если образ FAT будет храниться в памяти. Кроме того, работая на логически высоком уровне файлов и цепочек кластеров, а не на уровне секторов или дорожек, становится возможным в первую очередь избежать некоторой степени фрагментации файлов или выполнить локальную дефрагментацию файлов и переупорядочение записей каталога на основе их имена или шаблоны доступа в фоновом режиме.

Некоторые из предполагаемых проблем с фрагментацией файловых систем FAT также являются результатом ограничений производительности базовых драйверов блочных устройств , которые становятся тем более заметными, чем меньше памяти доступно для буферизации секторов и блокировки/деблокирования дорожек:

В то время как однозадачная DOS имела возможности для многосекторного чтения и блокировки/разблокировки дорожек, операционная система и традиционная архитектура жесткого диска ПК ( только один выполняющийся запрос ввода/вывода одновременно и отсутствие передачи DMA ) изначально не содержали механизмов что могло бы облегчить фрагментацию за счет асинхронной предварительной выборки следующих данных, пока приложение обрабатывало предыдущие фрагменты. Такие возможности стали доступны позже. Более поздние версии DOS также обеспечивали встроенную поддержку буферизации секторов с упреждающим просмотром и поставлялись с динамически загружаемыми программами дискового кэширования, работающими на уровне физических или логических секторов, часто использующими память EMS или XMS , а иногда предоставляющими стратегии адаптивного кэширования или даже работающими в защищенном режиме через DPMS или Cloaking для повышения производительности за счет прямого доступа к кэшированным данным в линейной памяти, а не через обычные API-интерфейсы DOS.

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

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

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

Длинные имена файлов VFAT (LFN) сохраняются в файловой системе FAT с помощью хитрости: добавление дополнительных записей в каталог перед обычной записью файла. Дополнительные записи помечаются атрибутами «Метка тома», «Система», «Скрытый» и «Только для чтения» (дающими значение 0x0F ), что представляет собой комбинацию, которая не ожидается в среде MS-DOS и поэтому игнорируется программами MS-DOS и сторонними программами. коммунальные услуги. Примечательно, что каталог, содержащий только метки томов, считается пустым и его можно удалить; такая ситуация возникает, если файлы, созданные с длинными именами, удаляются из обычного DOS. Этот метод очень похож на метод DELWATCH, позволяющий использовать атрибут тома для сокрытия файлов, ожидающих удаления, для возможного восстановления в будущем, начиная с DR DOS 6.0 (1991) и выше. Это также похоже на публично обсуждавшийся метод хранения длинных имен файлов в Ataris и Linux в 1992 году. [69] [70]

Поскольку более старые версии DOS могли ошибочно принимать имена LFN в корневом каталоге за метку тома, VFAT был разработан для создания пустой метки тома в корневом каталоге перед добавлением каких-либо записей имени LFN (если метка тома еще не существовала). [номер 13]

Каждая фальшивая запись может содержать до 13 символов UCS-2 (26 байтов) при использовании полей в записи, которые содержат размер файла или отметки времени (но не поле начального кластера; для совместимости с дисковыми утилитами поле начального кластера установлено на значение 0. Дополнительные пояснения см. в разделе 8.3 «Имя файла »). До 20 из этих 13-значных записей могут быть объединены в цепочку, поддерживая максимальную длину 255 символов UCS-2. [55]

Если позиция последнего символа LFN не находится на границе записи каталога (13, 26, 39, ...), то в следующую позицию символа добавляется терминатор 0x0000 . Затем, если этот терминатор также не находится на границе, оставшиеся позиции символов заполняются 0xFFFF . Никакая запись каталога, содержащая одиночный терминатор, не будет существовать.

Записи LFN имеют следующий формат:

Если для представления имени файла требуется несколько записей LFN, первой идет запись, представляющая конец имени файла. Порядковый номер этой записи имеет бит 6 ( 0x40 ), обозначающий, что это последняя логическая запись LFN и она имеет наивысший порядковый номер. Порядковый номер уменьшается в следующих записях. Запись, представляющая начало имени файла, имеет порядковый номер 1. Значение 0xE5 используется для указания того, что запись удалена.

На томах FAT12 и FAT16 проверка того, чтобы значения в 0x1A были равны нулю, а в 0x1C были ненулевыми, можно использовать для различения VFAT LFN и файлов, ожидающих удаления в DELWATCH.

Например, имя файла типа «Файл с очень длинным именем файла.ext» будет отформатировано следующим образом:

Контрольная сумма также позволяет проверить, соответствует ли длинное имя файла имени 8.3; такое несоответствие могло произойти, если файл был удален и заново создан с помощью DOS в той же позиции каталога. Контрольная сумма рассчитывается по приведенному ниже алгоритму. (pFCBName — это указатель на имя, которое появляется в обычной записи каталога, т. е. первые восемь символов — это имя файла, а последние три — расширение. Точка является неявной. Любой неиспользуемый пробел в имени файла дополняется пробелами. (ASCII 0x20 ). Например, "Readme.txt" будет " ".)README␠␠TXT

беззнаковый символ lfn_checksum ( const unsigned char * pFCBName ) { int i ; беззнаковая сумма символов = 0 ;             for ( i = 11 ; i ; i -- ) sum = (( sum & 1 ) << 7 ) + ( sum >> 1 ) + * pFCBName ++ ;                   сумма возврата ; } 

Если имя файла содержит только строчные буквы или представляет собой комбинацию нижнего регистра с расширением в верхнем регистре или наоборот; и не имеет специальных символов и соответствует ограничениям 8.3, запись VFAT не создается в Windows NT и более поздних версиях Windows, таких как XP. Вместо этого два бита в байте 0x0C записи каталога используются для указания того, что имя файла следует рассматривать как полностью или частично в нижнем регистре. В частности, бит 4 означает расширение в нижнем регистре , а бит 3 — базовое имя в нижнем регистре , что позволяет использовать такие комбинации, как " " или " ", но не " ". Некоторые другие операционные системы поддерживают его. Это создает проблему обратной совместимости со старыми версиями Windows (Windows 95/98/98 SE/ME), которые видят имена файлов, состоящие только из заглавных букв, если это расширение использовалось, и, следовательно, могут изменить имя файла при его передаче между операционными системами. системы, например, на USB-накопителе. Текущие версии Linux 2.6.x распознают это расширение при чтении (источник: ядро ​​2.6.18 и ); опция монтирования определяет, будет ли использоваться эта функция при записи. [71]example.TXTHELLO.txtMixed.txt/fs/fat/dir.cfs/vfat/namei.cshortname

Смотрите также

Примечания

  1. ^ abc Для максимальной совместимости с MS-DOS/PC DOS и DR-DOS операционные системы, пытающиеся определить формат дискеты, должны проверять все упомянутые последовательности кодов операций со смещением сектора 0x000 в дополнение к поиску действительного байта дескриптора носителя по смещению сектора. 0x015, прежде чем предположить наличие BPB. Хотя дискеты PC DOS 1.0 не содержат BPB, они также начинаются с 0xEB , но не показывают 0x90 по смещению 0x002 . Дискеты PC DOS 1.10 даже начинаются с 0xEB 0x?? 0x90 , хотя они по-прежнему не имеют BPB. В обоих случаях проверка допустимого дескриптора носителя по смещению 0x015 завершится неудачей (значение 0x00 вместо допустимых дескрипторов носителя 0xF0 и выше). Если эти тесты не пройдены, DOS проверяет наличие байта дескриптора носителя в первом байте первой FAT в секторе, следующем за загрузочным сектором (логический сектор 1 на дискетах FAT12/FAT16).
  2. ^ abcde Подпись по смещению 0x1FE в загрузочных секторах равна 0x55 0xAA , то есть 0x55 по смещению 0x1FE и 0xAA по смещению 0x1FF . Поскольку в контексте компьютеров, совместимых с IBM PC , необходимо предполагать представление с прямым порядком байтов , в программах для процессоров x86 его можно записать как 16-битное слово 0xAA55 (обратите внимание на порядок перестановки), тогда как в программах его следует записать как 0x55AA . для других архитектур ЦП используется представление с прямым порядком байтов . Поскольку это неоднократно путалось в книгах и даже в оригинальных справочных документах Microsoft, в этой статье используется побайтовое представление на диске на основе смещения, чтобы избежать любой возможной неправильной интерпретации.
  3. ^ abc Запись контрольной суммы в загрузочных секторах Atari содержит значение выравнивания, а не само магическое значение . Магическое значение 0x1234 нигде на диске не хранится. В отличие от процессоров Intel x86 , процессоры Motorola 680x0 , используемые в машинах Atari, используют представление памяти с прямым порядком байтов , и поэтому при вычислении контрольной суммы необходимо учитывать представление с прямым порядком байтов. Как следствие этого, для кода проверки контрольной суммы, работающего на машинах x86, пары байтов необходимо поменять местами перед 16-битным сложением.
  4. ^ DR-DOS может загружать носители с логическими секторами FAT12/FAT16 с размерами логических секторов до 1024 байт.
  5. ^ ab Следующие функции DOS возвращают эти значения регистров: INT 21h/AH=2Ah Возвращаемые значения «Получить системную дату»: CX = год ( 1980 .. 2099 ), DH = месяц (1..12), DL = день (1). ..31). INT 21h/AH=2Ch «Получить системное время» возвращаемые значения: CH = час (0..23), CL = минута (0..59), DH = секунда (0..59), DL = 1/100 секунды. (0..99).
  6. ^ Было замечено, что Windows XP создает такие гибридные диски при переформатировании дисков ZIP-100, отформатированных FAT16B, в формат FAT32. Полученные тома имели формат FAT32, но по-прежнему использовали FAT16B EBPB. (Неясно, как Windows определяет расположение корневого каталога на томах FAT32, если использовалась только EBPB FAT16.)
  7. ^ ab Одной из утилит, позволяющих указать желаемое значение заполнителя формата для жестких дисков, является FDISK R2.31 DR-DOS с дополнительным параметром очистки /W:246. В отличие от других утилит FDISK , DR-DOS FDISK является не только инструментом создания разделов, но также может форматировать недавно созданные разделы как FAT12 , FAT16 или FAT32 . Это снижает риск случайного форматирования неправильных томов.
  8. ^ Чтобы обеспечить сосуществование DR-DOS с PC DOS и несколько параллельных установок DR-DOS, расширение имени IBMBIO␠␠COMзагрузочного файла по умолчанию « » можно изменить с помощью SYS /DR:extопции, где ext представляет новое расширение. Другими потенциальными именами загрузочных файлов DR-DOS, которые следует ожидать в особых сценариях, являются " DRBIOS␠␠SYS", " DRDOS␠␠␠SYS", " IO␠␠␠␠␠␠SYS", " JO␠␠␠␠␠␠SYS".
  9. ^ Если флаг «грязного выключения» тома по-прежнему сбрасывается при запуске, значит, том не был правильно отключен. Это, например, приведет к тому, что Windows 98 WIN.COM запустит SCANDISK для проверки и исправления потенциальных ошибок логической файловой системы. Если флаг плохого сектора снят, это также приведет к принудительному выполнению сканирования поверхности. Это можно отключить, установив AUTOSCAN=0 в разделе [OPTIONS] файла MSDOS.SYS .
  10. ^ abcd См. другие ссылки, чтобы узнать о специальных мерах предосторожности в отношении появления значения кластера 0xFF0 на томах FAT12 под MS-DOS/PC DOS 3.3 и выше.
  11. ^ ab Некоторые версии FORMAT , начиная с MS-DOS 1.25 и PC DOS 2.0, поддерживали опцию /O(для старых версий ) заполнения первого байта всех записей каталога значением 0xE5 вместо использования конечного маркера 0x00 . Тем самым. том оставался доступным в PC DOS 1.0–1.1 , тогда как форматирование занимало несколько больше времени, и более новые версии DOS не могли воспользоваться значительным ускорением, вызванным использованием конечного маркера 0x00 .
  12. ^ Именно по этой причине 0xE5 имел особое значение в записях каталога.
  13. ^ ab Чтобы избежать потенциальной неправильной интерпретации меток тома каталога с записями VFAT LFN операционными системами, не поддерживающими VFAT, известно, что инструменты DR-DOS 7.07 FDISK и FORMAT явно записывают фиктивные " " NO␠NAME␠␠␠␠метки тома каталога, если пользователь пропускает ввод метки тома. . По умолчанию операционная система будет возвращать ту же строку, если в корне тома не будет найдена метка тома каталога, но без реальной метки тома, сохраненной в качестве первой записи (после записей каталога), старые операционные системы могут ошибочно выбрать вместо этого создайте записи VFAT LFN.
  14. ^ Этот тип атрибута распространения ОС IBM 4680 и 4690 должен иметь значение бита на диске, равное 0, поскольку файлы возвращаются к этому типу, когда атрибуты случайно теряются.

Рекомендации

  1. ^ «Файловые системы». Microsoft TechNet . 2001. Архивировано из оригинала 12 августа 2011 г. Проверено 31 июля 2011 г.
  2. ^ AB Microsoft (15 ноября 2006 г.). Файл CONFIG.TXT на компакт-диске Windows 95, заархивированный 28 января 2013 г. по адресу archive.today. Статья 135481, редакция: 1.1, получено 22 декабря 2011 г.: «Для каждого жесткого диска указывается, следует ли записывать дату последнего доступа к файлам». Даты последнего доступа отключаются для всех дисков при запуске компьютера в безопасном режиме и не сохраняются для дискет по умолчанию. Синтаксис: ACCDATE=drive1+|- [drive2+|-]..."
  3. ^ Бхат, Вашингтон (2010). «Обзор структуры данных FAT файловой системы FAT32». S2CID  58178285. {{cite web}}: Отсутствует или пусто |url=( помощь )
  4. ^ abcdefghijklmno «Спецификация файловой системы FAT32, Инициатива Microsoft по расширяемому встроенному ПО, FAT: Общий обзор формата на диске» . Майкрософт . 06.12.2000. Архивировано из оригинала 23 июля 2021 г. Проверено 3 июля 2011 г.
  5. ^ abcd Хааф, Уилфрид; Миддел, Фрэнк (ноябрь 1987 г.). «Daten auf Scheiben – File- und Diskettenstrukturen unter CP/M, MSDOS und TOS: Dateiverwaltung unter TOS». c't - магазин компьютерной техники . c't Kartei (на немецком языке). Том. 1987, нет. 11. Верлаг Хайнц Хайзе ГмбХ и Ко. КГ . С. 241–246 [246]. ISSN  0724-8679.
  6. ^ abcdefghijklmnop Чаппелл, Джефф (январь 1994 г.). Шульман, Эндрю; Педерсен, Аморетт (ред.). Внутреннее устройство DOS . Серия программ Эндрю Шульмана (1-е издание, 1-е изд.). Издательская компания Аддисон Уэсли . ISBN 978-0-201-60835-9.(xxvi+738+iv страниц, 3,5-дюймовая дискета [1][2]) Ошибки: [3][4][5]
  7. ^ abcdefghijklmnopqrstu vw Microsoft MS-DOS 3.1 Programmierhandbuch на английском языке [ Справочное руководство программиста Microsoft MS-DOS 3.1 на английском языке ]. Мюнхен: Markt & Technik Verlag (опубликовано в 1986 г.). 1984. ISBN 3-89090-368-1. 8411-310-02, 036-014-012. Что касается инструкции перехода в начале загрузочного сектора: «Определите, является ли первый байт загрузочного сектора E9H или EBIT (первый байт 3-байтового NEAR или 2-байтового короткого перехода) или EBH ( первый байт 2-байтового перехода, за которым следует NOP). Если да, то BPB располагается, начиная со смещения 3".(Примечание. Эта книга содержит много ошибок.)
  8. ^ аб Дэниел Б. Седори. Загрузочный сектор персонального компьютера IBM DOS версии 1.00 (1981 г.) . 2 августа 2005 г. ([6] Архивировано 21 мая 2014 г. в Wayback Machine ).
  9. ^ аб Дэниел Б. Седори. Загрузочный сектор персонального компьютера IBM DOS версии 1.10 (1982 г.) . 29 июля 2005 г. ([7] Архивировано 21 мая 2014 г. в Wayback Machine ).
  10. ^ аб Кальдера (1997). Машиночитаемый исходный код Caldera OpenDOS 7.01 . Файл DISK.ASM в машиночитаемом исходном коде показывает, что DR-DOS также проверяет значение 0x69 .
  11. ^ Пол, Матиас Р. (20 февраля 2002 г.). «Нужна DOS 6.22 (не OEM)». Группа новостей : alt.msdos.programmer. Архивировано из оригинала 9 сентября 2017 г. Проверено 14 октября 2006 г.
  12. ^ Басс, Уолли (14 февраля 1994 г.). "Размер кластера". Группа новостей : comp.os.msdos.programmer. Архивировано из оригинала 9 сентября 2017 г. Проверено 14 октября 2006 г.
  13. ^ abcdefgh Дэйв Уильямс (1992). Технический справочник программиста для MSDOS и IBM PC . ДОСРЭФ, условно-бесплатная версия от 12.01.1992. ISBN 1-878830-02-3 . ([8] Архивировано 20 мая 2014 г. на Wayback Machine , доступ осуществлен 8 января 2012 г.). Комментарий: Автор упоминает, что DOS 4.0 проверяет OEM-маркировку, но отрицает, что DOS 3.2 тоже ее проверяет (хотя это так). 
  14. ^ Пол, Матиас Р. (25 августа 2004 г.). «НОВОЛТРК.РЕГ». www.drdos.org . Архивировано из оригинала 4 марта 2016 г. Проверено 17 декабря 2011 г.[9]
  15. ^ ab «Устранение неполадок с дисками и файловыми системами». Microsoft TechNet . 05.11.2005. Архивировано из оригинала 7 июня 2014 г. Проверено 15 июня 2014 г.
  16. ^ IBM (1983). Технический справочник IBM PC . Комментарий: включает полный список исходного кода ПЗУ BIOS оригинального IBM PC.
  17. ^ abcd Ханс-Дитер Янковски, Дитмар Рабих, Джулиан Ф. Решке (1992). Atari Profibuch СТ-СТЭ-ТТ . Сайбекс, 4-е издание, 12-я партия. ISBN 3-88745-888-5 , ISBN 978-3-88745-888-1 .  
  18. ^ Seagate Technologies, «Переход на жесткие диски расширенного формата с сектором 4 КБ (архивировано Wayback Machine @Archive.org)», 2010 г. ([10]).
  19. ^ abcd Браун, Ральф Д. (29 декабря 2002 г.). «Список прерываний x86». Архивировано из оригинала 16 июня 2016 г. Проверено 14 октября 2011 г.
  20. ^ abcd де Бойн Поллард, Джонатан (2010) [2006]. «Все о блоках параметров BIOS». Часто встречающиеся ответы . Архивировано из оригинала 26 августа 2016 г. Проверено 2 июня 2014 г.
  21. ^ abc Справочник программиста Microsoft MS-DOS: версия 5.0. Майкрософт пресс. 1991. ISBN 1-55615-329-5.
  22. ^ abcdefghijk «Стандартные форматы гибких дисков, поддерживаемые MS-DOS». Справка и поддержка Microsoft. 12 мая 2003 г. Архивировано из оригинала 9 января 2015 г. Проверено 11 сентября 2012 г.
  23. ^ abc Microsoft (1987-07). Справочник программиста MS-DOS 3.3.
  24. ^ abcdefghij «Объем и файловая структура дисковых картриджей для обмена информацией». Стандарт ECMA-107 (2-е изд., июнь 1995 г.) . ЭКМА . 1995. Архивировано из оригинала 07 октября 2018 г. Проверено 30 июля 2011 г.
  25. ^ abcdefghij «Информационные технологии — Объем и файловая структура дисковых картриджей для обмена информацией». ИСО/МЭК 9293:1994 . Каталог ИСО . 1994. Архивировано из оригинала 17 января 2012 г. Проверено 6 января 2012 г.
  26. ^ abcdefghij «Обработка информации — Объем и файловая структура гибких дисковых картриджей для обмена информацией». ИСО 9293:1987 . Каталог ИСО . 1987. Архивировано из оригинала 17 января 2012 г. Проверено 6 января 2012 г.
  27. ^ abc Андрис Брауэр (20 сентября 2002 г.). «Файловая система FAT». Архивировано из оригинала 6 октября 2011 г. Проверено 16 октября 2011 г.
  28. ^ abcdefghijklmnopqr Патерсон, Тим ; Microsoft (19 декабря 2013 г.) [1983]. «Microsoft DOS V1.1 и V2.0: /msdos/v20source/SKELIO.TXT, /msdos/v20source/HRDDRV.ASM». ЧМ . Музей истории компьютеров , Microsoft . Архивировано из оригинала 14 августа 2019 г. Проверено 25 марта 2014 г.(Примечание: хотя издатели утверждают, что это будут MS-DOS 1.1 и 2.0, на самом деле это SCP MS-DOS 1.25 и смесь Altos MS-DOS 2.11 и TeleVideo PC DOS 2.11 .)
  29. ^ abcdefghij Збиковски, Марк ; Аллен, Пол ; Балмер, Стив ; Борман, Рубен; Борман, Роб; Батлер, Джон; Кэрролл, Чак; Чемберлен, Марк; Челл, Дэвид; Коули, Майк; Кортни, Майк; Драйфус, Майк; Дункан, Рэйчел; Экхардт, Курт; Эванс, Эрик; Фермер, Рик; Гейтс, Билл ; Гири, Майкл; Гриффин, Боб; Хогарт, Дуг; Джонсон, Джеймс В.; Кермаани, Каамель; Король, Адриан; Кох, Рид; Ландовски, Джеймс; Ларсон, Крис; Леннон, Томас; Липки, Дэн; Макдональд, Марк ; МакКинни, Брюс; Мартин, Паскаль; Мазерс, Эстель; Мэтьюз, Боб; Мелин, Дэвид; Мергентайм, Чарльз; Невин, Рэнди; Ньюэлл, Дэн; Ньюэлл, Тани; Норрис, Дэвид; О'Лири, Майк; О'Рир, Боб ; Олссон, Майк; Остерман, Ларри; Остлинг, Ридж; Пай, Сунил; Патерсон, Тим ; Перес, Гэри; Питерс, Крис; Петцольд, Чарльз ; Поллок, Джон; Рейнольдс, Аарон ; Рубин, Дэррил; Райан, Ральф; Шульмейстерс, Карл; Шах, Раджен; Шоу, Барри; Коротко, Энтони; Сливка, Бен; Смирл, Джон; Стиллмейкер, Бетти; Стоддард, Джон; Тиллман, Деннис; Уиттен, Грег; Йонт, Натали; Зек, Стив (1988). «Технические консультанты». Энциклопедия MS-DOS: версии с 1.0 по 3.2 . Дункан, Рэй; Боствик, Стив; Бургойн, Кейт; Байерс, Роберт А.; Хоган, Том; Кайл, Джим; Летвин, Гордон ; Петцольд, Чарльз ; Рабиновиц, Чип; Томлин, Джим; Уилтон, Ричард; Вулвертон, Ван; Вонг, Уильям; Вудкок, Джоанн (Полностью переработанная ред.). Редмонд, Вашингтон, США: Microsoft Press . ISBN 1-55615-049-0. LCCN  87-21452. ОСЛК  16581341.(xix+1570 страниц; 26 см) (Примечание. Это издание было опубликовано в 1988 году после обширной переработки отозванного первого издания 1986 года другой группой авторов. [11] Архивировано 14 октября 2018 г. в Wayback Machine )
  30. ^ ab «Подробное объяснение загрузочного сектора FAT». База знаний Майкрософт . 06 декабря 2003 г. Архивировано из оригинала 28 ноября 2011 г. Проверено 16 октября 2011 г.
  31. ^ abc Лай, Роберт С.; Группа Уэйта (1987). Написание драйверов устройств MS-DOS (2-е изд.). Эддисон Уэсли. ISBN 0-201-60837-5.
  32. ^ abcdefghijklmnopqrst Патерсон, Тим ; Microsoft (19 декабря 2013 г.) [1983]. «Microsoft DOS V1.1 и V2.0: /msdos/v20source/DEVDRIV.txt». Музей истории компьютеров , Microsoft . Архивировано из оригинала 14 августа 2019 г. Проверено 25 марта 2014 г.(Примечание: хотя издатели утверждают, что это будут MS-DOS 1.1 и 2.0, на самом деле это SCP MS-DOS 1.25 и смесь Altos MS-DOS 2.11 и TeleVideo PC DOS 2.11 .)
  33. ^ abcde Тим Патерсон (1983). «Взгляд изнутри на MS-DOS». Байт . Архивировано из оригинала 20 июля 2011 г. Проверено 18 июля 2011 г. Нумерация начинается с 2; первые две цифры, 0 и 1, зарезервированы.
  34. ^ abcd PORT-DOS — Руководство пользователя для Apricot Portable . Руководства для пользователей, Великобритания ([12] Архивировано 22 мая 2013 г. в Wayback Machine ).
  35. ^ abcde Джон К. Эллиотт (1998). Форматы дисков DOSPLUS . ([13] Архивировано 7 июня 2013 г. в Wayback Machine ).
  36. ^ abcd Мастер BBC 512 . Компьютерные страницы BBC Yellow Pig ([14] Архивировано 21 мая 2014 г. в Wayback Machine ).
  37. ^ Корпорация цифрового оборудования. Техническая документация Rainbow 100 MS-DOS 2.01, том 1 (QV025-GZ), список BIOS операционной системы Microsoft MS-DOS (AA-X432A-TV), универсальный драйвер диска, стр. 1–17. 1983.
  38. ^ «Подробное объяснение загрузочного сектора FAT» . Корпорация DEW Associates. 2002. Архивировано из оригинала 26 сентября 2011 г. Проверено 16 октября 2011 г.
  39. ^ Тьяги, Тарун (31 октября 2004 г.). «Размер кластеров в файловых системах FAT и NTFS». Восстановление данных с программированием и без. Нью-Дели, Индия: Книги Гарднера. п. 4. ISBN 978-81-7656-922-4. Архивировано из оригинала 3 декабря 2021 г. Проверено 3 декабря 2021 г.
  40. ^ Дэниел Б. Седори. Подробные примечания к «флагу неправильного завершения работы» в MS-Windows . 04.12.2001. ([15] Архивировано 21 мая 2014 г. в Wayback Machine ).
  41. ^ abcde «Пакет ресурсов Windows 98 — Глава 10 — Диски и файловые системы» . Microsoft TechNet . 1998. Архивировано из оригинала 1 мая 2012 г. Проверено 16 июля 2012 г.
  42. ^ abcd Шульман, Эндрю; Браун, Ральф Д .; Макси, Дэвид; Михелс, Раймонд Дж.; Кайл, Джим (1994) [ноябрь 1993 г.]. Недокументированная DOS: Руководство программиста по зарезервированным функциям и структурам данных MS-DOS - расширено и включает MS-DOS 6, Novell DOS и Windows 3.1 (2-е изд.). Ридинг, Массачусетс: Эддисон Уэсли . п. 11. ISBN 0-201-63287-Х.(xviii+856+vi страниц, 3,5-дюймовая дискета) Исправления: [16][17]
  43. ^ Питер Нортон (1986). Внутри IBM PC, переработанное и расширенное , Брейди. ISBN 0-89303-583-1 , с. 157. 
  44. ^ abc Андрис Брауэр . «FAT под Linux». Архивировано из оригинала 1 июля 2014 г. Проверено 20 мая 2014 г.
  45. ^ Андрис Брауэр (20 сентября 2002 г.). "ТОЛСТЫЙ". Архивировано из оригинала 17 декабря 2017 г. Проверено 11 января 2012 г.
  46. ^ abc Сиэтл Компьютерные продукты (1981). «Дополнение к SCP 86-DOS 1.0» (PDF) . Архивировано (PDF) из оригинала 3 октября 2012 г. Проверено 10 марта 2013 г.
  47. ^ abcdefghijklmnopqrstu vwxyz aa ab ac ad ae af ag ah ai aj ak Пол, Маттиас Р. (30 июля 1997 г.) [1 мая 1994 г.]. NWDOS-TIPs — советы и подсказки для Novell DOS 7, с просмотром недокументированных подробностей, ошибок и обходных путей. MPDOSTIP (на немецком языке) (3-е изд.). Архивировано из оригинала 5 ноября 2016 г. Проверено 11 января 2012 г.(Примечание. NWDOSTIP.TXT — это всеобъемлющая работа по Novell DOS 7 и OpenDOS 7.01 , включая описание многих недокументированных функций и внутренних устройств. Это часть еще более обширной авторской коллекции MPDOSTIP.ZIP, которая поддерживалась до 2001 года и распространялась на многих сайтах по адресу: время. Предоставленная ссылка указывает на более старую версию файла, преобразованную в HTML.) [18]
  48. ^ IBM. Руководство пользователя ОС 4690, версия 5.2 , документ IBM SC30-4134-01, 10 января 2008 г. ([19] Архивировано 25 января 2022 г. на Wayback Machine ).
  49. ^ Аб Патерсон, Тим ; Microsoft (19 декабря 2013 г.) [1983]. «Microsoft DOS V1.1 и V2.0: /msdos/v20source/FORMAT.TXT». Музей истории компьютеров , Microsoft . Архивировано из оригинала 14 августа 2019 г. Проверено 25 марта 2014 г.(Примечание: хотя издатели утверждают, что это будут MS-DOS 1.1 и 2.0, на самом деле это SCP MS-DOS 1.25 и смесь Altos MS-DOS 2.11 и TeleVideo PC DOS 2.11 .)
  50. ^ аб Шустек, Лен (24 марта 2014 г.). «Ранний исходный код Microsoft MS-DOS». Жемчужины программного обеспечения: серия исторических исходных кодов Музея компьютерной истории. Архивировано из оригинала 10 августа 2019 г. Проверено 29 марта 2014 г.(Примечание. Хотя автор утверждает, что это будут MS-DOS 1.1 и 2.0, на самом деле это SCP MS-DOS 1.25 и смесь Altos MS-DOS 2.11 и TeleVideo PC DOS 2.11 .)
  51. ^ Аб Левин, Рой (25 марта 2014 г.). «Microsoft делает исходный код MS-DOS и Word для Windows общедоступным». Официальный блог Microsoft . Архивировано из оригинала 28 марта 2014 г. Проверено 29 марта 2014 г.(Примечание. Хотя автор утверждает, что это будут MS-DOS 1.1 и 2.0, на самом деле это SCP MS-DOS 1.25 и смесь Altos MS-DOS 2.11 и TeleVideo PC DOS 2.11 .)
  52. ^ JEIDA/JEITA/CIPA (2010). «Стандарт Ассоциации производителей камер и продуктов обработки изображений, CIPA DC-009-Translation-2010, Правила проектирования файловой системы камеры: DCF, версия 2.0 (издание 2010 г.)» (PDF) . Архивировано из оригинала (PDF) 30 сентября 2013 г. Проверено 13 апреля 2011 г.
  53. ^ abcdefghijklmnopq Кальдера (1997). Машиночитаемый исходный код Caldera OpenDOS 7.01 . Файл FDOS.EQU в машиночитаемом исходном коде имеет эквиваленты для соответствующих записей каталога.
  54. ^ Джон К. Эллиотт (1998). Форматы дисков CP/M 4.1 . ([20] Архивировано 26 августа 2014 г. на Wayback Machine ): «CP/M 4.1 (DOS Plus [1.2]) позволяет использовать две файловые системы — CP/M и DOS. Поставляемая версия [...] Amstrad PC1512 не может работать с дискетами размером более 360 КБ (CP/M) / 1,2 МБ (DOS) или разделами жесткого диска размером более 32 МБ. [...] Файловая система DOS может быть FAT12 или FAT16. Формат точно соответствует как в PCDOS 2.11, за исключением: Байт 0Ch записи каталога [...] содержит четыре «атрибута пользователя» F1'-F4' [...] пароли в стиле DRDOS не поддерживаются».
  55. ^ аб винДачи (1998-01-06). «Спецификация длинного имени файла». Архивировано из оригинала 20 апреля 2001 г. Проверено 13 марта 2007 г.
  56. ^ Хенк Келдер. FAT32.TXT для FAT32.IFS версии 0.74 . ( «@Macarlo, Inc». Архивировано из оригинала 30 марта 2012 г. Проверено 14 января 2012 г. .). Комментарий: В этой старой версии файла README все еще обсуждаются старые магические значения 0xEA и 0xEC .
  57. ^ Хенк Келдер (2003). FAT32.TXT для FAT32.IFS версии 0.9.13». ([21] Архивировано 25 января 2022 г. на Wayback Machine ): «Этот байт [...] не изменяется при работе в Windows 95 и более поздних версиях с помощью SCANDISK или DEFRAG. . [...] Если другая программа установит значение 0x00 для файла, содержащего советники, эти советники больше не будут найдены только с помощью вызовов DosFindFirst/Next. Другие вызовы OS/2 для получения EA (DosQueryPathInfo, DosQueryFileInfo и DosEnumAttribute) не полагаются на этот байт. Также может произойти и обратное. [...] В этой ситуации снизится только производительность сканирования каталогов. Обе ситуации [...] исправляются CHKDSK ».
  58. ^ Нетлабс. FAT32.IFS Wiki и исходные коды . ([22] Архивировано 11 мая 2013 г. в Wayback Machine ).
  59. ^ АБ IBM. Руководство по программированию ОС 4690, версия 5.2 , документ IBM SC30-4137-01, 6 декабря 2007 г. ([23] Архивировано 25 января 2022 г. на Wayback Machine ).
  60. ^ abcdefghijklmn Серия справочников для разработчиков OpenDOS — Руководство по системе и программисту — Руководство программиста. Caldera, Inc., август 1997 г. Номер детали Caldera 200-DODG-003. Архивировано из оригинала 07.10.2017 . Проверено 20 мая 2014 г.(Напечатано в Великобритании.)
  61. ^ Боб Игер, Tavi Systems (28 октября 2000 г.). Реализация расширенных атрибутов файловой системы FAT . ([24] Архивировано 13 июня 2006 г. в Wayback Machine ).
  62. ^ IBM (2003). Информация об уникальных атрибутах распределения файлов ОС 4690 , документ IBM R1001487, 30 июля 2003 г. ( «Информация IBM об уникальных атрибутах распространения файлов ОС 4690 — США». Архивировано из оригинала 21 мая 2014 г. Проверено 20 мая 2014 г. .): «[...] типы файлов хранятся в части «Зарезервированные биты» структуры каталогов файлов PC-DOS [...] только 4690 уважает и сохраняет эти атрибуты. Различные операционные системы, отличные от 4690, предпринимают разные действия, если эти биты включаются [...] при копировании с дискеты, созданной в системе 4690. [...] PC-DOS и Windows 2000 Professional скопируют файл без ошибок и обнулят биты. OS/2 [.. .] 1.2 [...] откажется копировать файл, пока [...] сначала не запустите для него CHKDSK /F. После [...] CHKDSK он скопирует файл и обнулит биты. [.. .] при [...] копировании [...] обратно в систему 4690, [...] файл будет скопирован как локальный файл».
  63. ^ IBM. 4690 сохранять и восстанавливать атрибуты распределения файлов . Документ IBM R1000622, 31 августа 2010 г. ( «IBM 4690 сохраняет и восстанавливает атрибуты распространения файлов — США». Архивировано из оригинала 21 мая 2014 г. Проверено 20 мая 2014 г. ).).
  64. ^ «Ограничения файловой системы FAT32». База знаний Майкрософт . 26 марта 2007 г. Архивировано из оригинала 15 августа 2011 г. Проверено 21 августа 2011 г. Кластеры не могут иметь размер 64 килобайта или больше.
  65. ^ Дункан, Рэй (1989). «Цели разработки и реализация новой высокопроизводительной файловой системы». Системный журнал Microsoft. Архивировано из оригинала 16 июля 2011 г. Проверено 20 мая 2014 г.[Примечание. Этот конкретный текстовый файл содержит ряд ошибок оптического распознавания символов; например, «Рэй» — правильное имя автора; а не «Рой», как показано в тексте.]
  66. ^ Чен, Раймонд (июль 2006 г.). «Microsoft TechNet: краткая и неполная история FAT32». Журнал Microsoft TechNet. Архивировано из оригинала 18 ноября 2008 г. Проверено 20 мая 2014 г.
  67. ^ аб Лес Белл; Associates Pty Ltd (02.09.1996) [1990]. «Высокопроизводительная файловая система OS / 2». Консультант по поддержке ПК . Архивировано из оригинала 1 марта 2014 г. Проверено 24 июня 2014 г.
  68. ^ аб Бриджес, Дэн (февраль 1996 г.). «Внутри высокопроизводительной файловой системы. Часть 2/6: Введение». Значительные биты, Brisbug PC User Group Inc. Архивировано из оригинала 23 сентября 2015 г. Проверено 24 июня 2014 г.
  69. ^ Натюрлих! (24 марта 1992 г.). «Получение более длинных имен файлов из GEMDOS». comp.sys.atari.st.tech. Архивировано из оригинала 24 апреля 2014 г. Проверено 5 мая 2014 г.
  70. ^ Торвальдс, Линус (23 декабря 1992 г.). «Длинные имена файлов». комп.os.minix. Архивировано из оригинала 23 апреля 2014 г. Проверено 5 мая 2014 г.
  71. ^ «mount(8): монтировать файловую систему». Справочная страница Linux . Архивировано из оригинала 5 мая 2014 г. Проверено 20 мая 2014 г.

Внешние ссылки