Старая файловая система Amiga - Amiga Old File System

На Amiga , то Старая файловая система была файловая система для AmigaOS до Amiga системы Fast File . Несмотря на то, что он использовал 512-байтовые блоки, он зарезервировал первую небольшую часть каждого блока для метаданных , оставив фактическую емкость блока данных 488 байтов на блок. Он не очень подходил ни для чего, кроме дискет , и вскоре был заменен.

История

Первоначально известная как файловая система Amiga, она произошла от файловой системы TRIPOS , которая легла в основу первых версий AmigaDOS . Когда Fast File System была выпущена вместе с AmigaOS 1.3, она получила прозвище «Старая» или «Оригинальная» файловая система .

OFS очень хорош для восстановления файловой системы в случае возникновения проблемы, хотя так называемый DiskDoctor, предоставляемый Commodore, быстро получил название DiskDestroyer, поскольку он не мог восстанавливать диски автозапуска типа No-DOS, предоставленные сторонними производителями программного обеспечения в качестве загрузочных. диски для игр. Идея создания нестандартных дисков с автозагрузкой родилась в примитивной попытке предотвратить копирование таких дисков и избежать загрузки и запуска Amiga DOS, чтобы получить прямой доступ к графическим, аудио и памяти чипсетам Amiga. DiskDoctor фактически изменил загрузочные блоки дисков автозапуска на стандартные для AmigaDOS, переименовав диск с именем «Lazarus», и сделал диск автозапуска непригодным для использования.

Характеристики гибких дисков AmigaDOS

Amiga по умолчанию использует кодирование / декодирование MFM при работе с дискетами . На гибком диске Amiga 80 цилиндров. Каждый цилиндр имеет 2 дорожки MFM, по одной с каждой стороны диска. Диски двойной плотности (DD) имеют 11 секторов на дорожку MFM, диски высокой плотности (HD) имеют 22 сектора.

Геометрия дискеты Amiga следующая:

  • Диски DD: 512 байт / сектор, 11 секторов / дорожка, 2 дорожки / цилиндр, 80 цилиндров / диск
  • Диски HD: 512 байт / сектор, 22 сектора / дорожка, 2 дорожки / цилиндр, 80 цилиндров / диск

Диск DD имеет 11 * 2 * 80 = 1760 (от 0 до 1759) блоков, а диск HD - 22 * ​​2 * 80 = 3520 блоков.

Amiga хранит 880 Кбайт на DD-диске и 1760 Кбайт на гибком диске HD.

Характеристики файлов под AmigaDOS

До AmigaOS 3.5 файловые дескрипторы AmigaDOS поддерживали параметр смещения шириной 32 бита (без знака), сообщающий, где начать следующую операцию чтения или записи. Таким образом, самый большой размер любого отдельного файла Amiga в этих операционных системах составляет 2 32 = 4 ГиБ . После Amiga OS 3.5 дескрипторы файлов могут ссылаться на 2 64 = 16 файлов EiB . Однако диски в формате OFS по-прежнему сохраняют 32-разрядные ограничения, поскольку это внутреннее ограничение формата, записанного на носителе.

Блок данных OFS хранит размер блока BSIZE-24 байта (т.е. обычно 488 байтов при наиболее часто используемом BSIZE 512 байтов).

Корневой блок расположен в физической середине носителя: номер блока 880 для дисков DD, блок 1760 для дисков HD. Это помогает минимизировать время поиска.

Точный расчет места хранения выглядит следующим образом:

numCyls = highCyl - lowCyl + 1

highKey = numCyls * numSurfaces * numBlocksPerTrack - 1

rootKey = INT (numReserved + highKey) / 2

Корневой блок содержит информацию о диске: его имя, дату форматирования и т.д. Он также содержит информацию о доступе к файлам / каталогам / ссылкам, расположенным в самом верхнем (корневом) каталоге.

Символы '/' и ':' запрещены в именах файлов и томов, но *! @ # $% | ^ + & _ () = \ - [] {} '; ", <>.? И буквы с диакритическими знаками вроде âè разрешены.

Поля даты в корневом блоке (и других блоках) структурированы в форме ДНЕЙ, МИН и ТИККОВ. Поле DAYS содержит количество дней с 1 января 1978 года. MINS - это количество минут, прошедших с полуночи, а TICKS выражаются в 1/50 секунды. Значение дня, равное нулю, большинством программ считается недопустимым. Поскольку значение DAYS хранится как 32-битное число, файловая система Amiga не имеет проблем с 2000 годом или 2038 годом .

Чтобы получить доступ к файлу, каталогу или ссылке, AmigaDOS использует хеш-функцию, чтобы вычислить, какое 32-битное слово в блоке диска использовать в качестве указателя на список ведра хеширования, который, в свою очередь, содержит запись файла, каталога или ссылки. Список ведра используется для поддержки объектов файловой системы с именами, хэширующими с одинаковым смещением. Например: file_1a , file_24 и file_5u имеют одинаковое значение хеш-функции.

Символы имени файла могут быть в нижнем и верхнем регистре, но при доступе к ним регистр не учитывается. Другими словами, «MyFile» и «myfile» в одном каталоге относятся к одному и тому же файлу.

Файлы состоят из блока заголовка файла, который содержит информацию о файле (размер, время последнего доступа, указатели блоков данных и т. Д.), И блоков данных, которые содержат фактические данные. Блок заголовка файла содержит до указателей блоков данных BSIZE / 4-56 (что составляет 72 записи с обычными блоками по 512 байт). Если файл больше этого размера, блоки расширения файла будут выделены для хранения указателей блоков данных. Блоки расширений файлов организованы в связанный список, который начинается в блоке заголовка файла (поле «расширение»).

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

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