ISO 9660 (также известный как ECMA -119 ) — это файловая система для оптических дисков . Файловая система является международным стандартом , доступным Международной организацией по стандартизации (ISO). Поскольку спецификация доступна для приобретения любому, [1] были написаны реализации для многих операционных систем .
ISO 9660 уходит своими корнями в формат High Sierra , [2] в котором информация о файлах располагается в плотной последовательной структуре, чтобы минимизировать непоследовательный доступ за счет использования иерархической (восемь уровней глубины каталогов) древовидной организации файловой системы, аналогичной UNIX и FAT . Чтобы облегчить кросс-платформенную совместимость, он определил минимальный набор общих атрибутов файла (каталог или обычный файл и время записи) и атрибутов имени (имя, расширение и версия) и использовал отдельную область использования системы, где будущие дополнительные расширения для каждого файл можно указать. High Sierra была принята в декабре 1986 года (с изменениями) в качестве международного стандарта компанией Ecma International как ECMA-119 [3] и отправлена на ускоренное рассмотрение в ISO , где в конечном итоге была принята как ISO 9660:1988. [4] Последующие поправки к стандарту были опубликованы в 2013 и 2020 годах.
Первые 16 секторов файловой системы пусты и зарезервированы для других целей. Остальное начинается с набора дескрипторов тома (блока заголовка, описывающего последующую компоновку), а затем таблиц путей, каталогов и файлов на диске. Диск, соответствующий стандарту ISO 9660, должен содержать как минимум один основной дескриптор тома, описывающий файловую систему, и ограничитель набора дескрипторов тома , который представляет собой дескриптор тома, обозначающий конец набора дескрипторов. Дескриптор основного тома предоставляет информацию о томе, характеристиках и метаданных, включая запись корневого каталога, которая указывает, в каком секторе расположен корневой каталог. Другие поля содержат метаданные, такие как имя тома и создателя, а также размер и количество логических блоков, используемых файловой системой. Таблицы путей суммируют структуру каталогов соответствующей иерархии каталогов. Для каждого каталога в изображении таблица путей предоставляет идентификатор каталога, местоположение экстента, в котором каталог записан, длину любых расширенных атрибутов, связанных с каталогом, и индекс записи таблицы путей к родительскому каталогу.
Существует несколько расширений ISO 9660, которые ослабляют некоторые его ограничения. Яркие примеры включают Rock Ridge (разрешения в стиле Unix и более длинные имена), Joliet ( Unicode , позволяющий использовать нелатинские алфавиты ), El Torito ( позволяет загружать компакт-диски ) и расширения Apple ISO 9660 (характеристики файлов, специфичные для классические Mac OS и macOS , такие как разветвления ресурсов , дата резервного копирования файлов и т. д.).
Компакт-диски изначально были разработаны для записи музыкальных данных, но вскоре стали использоваться для хранения дополнительных типов цифровых данных, поскольку они были одинаково эффективны для хранения больших объемов архивных данных . Названный CD-ROM , формат самого низкого уровня для этих типов компакт-дисков был определен в спецификации Желтой книги в 1983 году. Однако в этой книге не определялся какой-либо формат для организации данных на CD-ROM в логические единицы, такие как файлы , что привело к каждому производителю компакт-дисков, создающему свой собственный формат. Чтобы разработать стандарт файловой системы компакт-диска ( Z39.60 — том и файловая структура компакт-диска для обмена информацией ), Национальная организация по стандартизации информации (NISO) в июле 1985 года учредила комитет по стандартам SC EE (формат данных компакт-диска). [5] В сентябре/ [6] октябре 1985 года несколько компаний пригласили экспертов принять участие в разработке рабочего документа по такому стандарту .
В ноябре 1985 года представители производителей компьютерного оборудования собрались в отеле и казино High Sierra (в настоящее время называемом Golden Nugget Lake Tahoe ) в Стейтлайне, штат Невада . [7] Эта группа стала известна как Группа Высокой Сьерры ( HSG ). На встрече присутствовали представители Apple Computer , AT&T , Digital Equipment Corporation ( DEC), Hitachi , LaserData , Microware , Microsoft , 3M , Philips , Reference Technology Inc., Sony Corporation , TMS Inc. , VideoTools (позже Meridian [8] ), Xebec и Yelick. [ нужна цитация ] Отчет о встрече возник на основе стандарта CD-ROM «Желтой книги» , который был настолько открытым, что приводил к диверсификации и созданию множества несовместимых методов хранения данных. Предложение High Sierra Group ( HSGP ) было выпущено в мае 1986 года и определило файловую систему для компакт-дисков, широко известную как формат High Sierra.
Черновой вариант этого предложения был представлен Европейской ассоциации производителей компьютеров (ECMA) для стандартизации. С некоторыми изменениями это привело к выпуску первой редакции стандарта ECMA-119 в декабре 1986 года. [9] ECMA представила свой стандарт в Международную организацию по стандартизации (ISO) для ускоренного рассмотрения , где он был дополнительно усовершенствован до Стандарт ИСО 9660. В целях совместимости второе издание ECMA-119 было пересмотрено и стало эквивалентом ISO 9660 в декабре 1987 года. [10] [11] [12] ISO 9660:1988 был опубликован в 1988 году. Основные изменения по сравнению с форматом High Sierra в ECMA Стандарты -119 и ISO 9660 были международными расширениями, позволяющими формату лучше работать на рынках за пределами США.
Чтобы не создавать несовместимостей, NISO приостановила дальнейшую работу над Z39.60, который был принят членами NISO 28 мая 1987 года. Он был отозван до окончательного утверждения в пользу ISO 9660. [5]
JIS X 0606:1998 был принят в Японии в 1998 году с гораздо смягченными правилами имен файлов и использованием новой структуры данных «расширенного дескриптора тома». Стандарт был представлен как ISO 9660:1999 и, как предполагалось, был ускорен, но из этого ничего не вышло. [13] Тем не менее, некоторые операционные системы и инструменты создания дисков (такие как Nero Burning ROM , mkisofs и ImgBurn ) теперь поддерживают дополнение под такими названиями, как «ISO 9660:1999», «ISO 9660 v2» или «ISO 9660 Level». 4". В 2013 году предложение было окончательно оформлено в форме стандарта ISO 9660/поправка 1, призванного «обеспечить гармонизацию между ISO 9660 и широко используемой « Спецификацией Джолиет ». [14] В декабре 2017 года было опубликовано третье издание ECMA-119, которое технически идентично стандарту ISO 9660, поправка 1. [15]
В 2019 году ECMA опубликовала 4-ю версию ECMA-119, включив текст Джолиета в «Приложение C».
В 2020 году ISO опубликовала Поправку 2, которая добавляет некоторые незначительные пояснения, но не добавляет и не исправляет какую-либо техническую информацию стандарта. [16]
Ниже приведена приблизительная общая структура файловой системы ISO 9660.
Многобайтовые значения могут храниться в трех различных форматах: с прямым порядком байтов , с прямым порядком байтов и в конкатенации обоих типов в том, что в спецификации называется порядком «оба байта». Порядок обоих байтов требуется в нескольких полях дескрипторов томов и записей каталогов, а таблицы путей могут иметь прямой или обратный порядок байтов. [17]
Системная область , первые 32 768 байт данных диска (16 секторов по 2 048 байт каждый), не используется ISO 9660 и, следовательно, доступна для других целей. [17] Хотя предполагается, что они зарезервированы для использования с загрузочными носителями , [18] компакт-диск может содержать альтернативный дескриптор файловой системы в этой области, и он часто используется гибридными компакт-дисками для предложения классических , специфичных для Mac OS. и контент, специфичный для macOS . [ нужна цитата ]
Область данных начинается с набора дескрипторов тома , набора из одного или нескольких дескрипторов тома , заканчивающегося ограничителем набора дескрипторов тома . В совокупности они действуют как заголовок области данных, описывая ее содержимое (аналогично блоку параметров BIOS , используемому дисками в формате FAT , HPFS и NTFS ).
Каждый дескриптор тома имеет размер 2048 байт и идеально вписывается в один сектор Mode 1 или Mode 2 Form 1. Они имеют следующую структуру:
Поле данных дескриптора тома может быть разделено на несколько полей, точное содержимое которых зависит от типа. Также могут быть включены избыточные копии каждого дескриптора тома на случай, если первая копия дескриптора окажется поврежденной.
Стандартные типы дескрипторов томов:
Диск, соответствующий стандарту ISO 9660, должен содержать по крайней мере один основной дескриптор тома , описывающий файловую систему, и терминатор набора дескрипторов тома , указывающий конец последовательности дескрипторов. Терминатор набора дескрипторов тома — это просто особый тип дескриптора тома, предназначенный для обозначения конца этого набора структур. Дескриптор основного тома предоставляет информацию о томе, характеристиках и метаданных, включая запись корневого каталога, которая указывает, в каком секторе расположен корневой каталог. Остальные поля содержат описание или имя тома, а также информацию о том, кто его создал и с помощью какого приложения. Размер логических блоков, которые файловая система использует для сегментации тома, также хранится в поле внутри дескриптора первичного тома, а также объем пространства, занимаемого томом (измеряется в количестве логических блоков).
В дополнение к основному дескриптору(ам) тома могут присутствовать дополнительные дескрипторы тома или расширенные дескрипторы тома .
Таблицы путей суммируют структуру каталогов соответствующей иерархии каталогов. Для каждого каталога в изображении таблица путей предоставляет идентификатор каталога, местоположение экстента, в котором каталог записан, длину любых расширенных атрибутов, связанных с каталогом, и индекс записи таблицы путей к родительскому каталогу. Номер родительского каталога представляет собой 16-битное число, ограничивающее его диапазон от 1 до 65 535. [19]
Записи каталога сохраняются после расположения записи корневого каталога, где начинается оценка имен файлов. И каталоги, и файлы хранятся в виде экстентов , которые представляют собой последовательные серии секторов. Файлы и каталоги различаются только атрибутом файла, указывающим его природу (аналогично Unix ). Атрибуты файла хранятся в записи каталога, описывающей файл, и, при необходимости, в записи расширенного атрибута. Чтобы найти файл, имена каталогов в пути к файлу могут быть проверены последовательно, переходя к местоположению каждого каталога, чтобы получить местоположение последующего подкаталога. Однако файл также можно найти по таблице путей, предоставленной файловой системой. В этой таблице путей хранится информация о каждом каталоге, его родителе и его местоположении на диске. Поскольку таблица путей хранится в непрерывной области, ее можно искать гораздо быстрее, чем переходить к конкретным местам каждого каталога на пути к файлу, что сокращает время поиска.
Стандарт определяет три вложенных уровня обмена (перефразировано из раздела 10):
Дополнительные ограничения в теле стандарта: глубина иерархии каталогов не должна превышать 8 (корневой каталог находится на уровне 1), а длина пути к любому файлу не должна превышать 255 (раздел 6.8.2.1).
Стандарт также определяет следующие ограничения на имена (разделы 7.5 и 7.6): [4]
Производитель компакт-дисков может выбрать один из нижних уровней обмена, указанных в главе 10 стандарта, и дополнительно ограничить длину имени файла с 30 символов до 8+3 в идентификаторах файлов и 8 в идентификаторах каталогов, чтобы обеспечить взаимозаменяемость. с реализациями, которые не реализуют полный стандарт. [ нужна цитата ]
Все числа в файловых системах ISO 9660, за исключением однобайтового значения, используемого для смещения GMT, являются беззнаковыми числами. Поскольку длина экстента файла на диске хранится в 32-битном значении, [20] максимальная длина составляет чуть более 4,2 ГБ (точнее, на один байт меньше 4 ГиБ ). Это ограничение можно обойти, используя функцию мультиэкстента (фрагментации) ISO 9660 уровня 3 для создания файловых систем ISO 9660 и отдельных файлов размером до 8 ТБ. При этом файлы размером более 4 ГиБ можно разделить на несколько экстентов (последовательных серий секторов), каждый из которых не превышает предел в 4 ГиБ. Например, бесплатное программное обеспечение, такое как InfraRecorder , ImgBurn и mkisofs , а также Roxio Toast , способно создавать файловые системы ISO 9660, которые используют файлы с несколькими экстентами для хранения файлов размером более 4 ГиБ на соответствующих носителях, таких как записываемые DVD. [ нужна цитация ] Linux поддерживает несколько экстентов. [21]
Начиная с поправки 1 (или ECMA-119 3-го издания, или «JIS X 0606:1998 / ISO 9660:1999»), система EVD может выражать гораздо более широкое разнообразие деревьев файлов. Больше нет ограничений на количество символов (допускаются даже 8-битные символы), а также ограничений по глубине или длине пути. Ограничение на длину имени по-прежнему составляет 207. Набор символов больше не применяется, поэтому обе стороны обмена дисками должны согласовывать свои действия через другой канал. [15]
Существует несколько расширений ISO 9660, которые ослабляют некоторые его ограничения. Яркие примеры включают Rock Ridge (разрешения в стиле Unix и более длинные имена), Joliet ( Unicode , позволяющий использовать нелатинские алфавиты ), El Torito ( позволяет загружать компакт-диски ) и расширения Apple ISO 9660 (характеристики файлов, специфичные для классические Mac OS и macOS , такие как разветвления ресурсов , дата резервного копирования файлов и т. д.).
Протокол совместного использования системного использования (SUSP, IEEE P1281) обеспечивает универсальный способ включения дополнительных свойств для любой записи каталога, доступной из дескриптора первичного тома (PVD). В томе ISO 9660 каждая запись каталога имеет дополнительную область использования системы , содержимое которой не определено и оставлено для интерпретации системой. SUSP определяет метод разделения этой области на несколько полей использования системы, каждое из которых идентифицируется двухсимвольным тегом подписи. Идея SUSP заключалась в том, что он позволит создавать и включать в том любое количество независимых расширений ISO 9660 без конфликтов. Это также позволяет включать данные о собственности, которые в противном случае были бы слишком большими, чтобы уместиться в пределах области использования системы.
SUSP определяет несколько общих тегов и полей использования системы:
CE
: Область продолженияPD
: Поле заполненияSP
: Индикатор использования протокола совместного использования системой.ST
: Терминатор протокола совместного использования системы.ER
: Справочник по расширениямES
: Выбор расширенияДругие известные поля SUSP включают:
AA
: расширение Apple (предпочтительно).BA
: расширение Apple, старое (атрибут длины отсутствует)AS
: Свойства файла AmigaZF
: файл, сжатый zisofs, обычно создаваемый программой mkzftree или libisofs. Прозрачно распаковывается ядром Linux, если собрано с использованием CONFIG_ZISOFS. [22]AL
: записывает расширенные атрибуты файлов , включая списки ACL . Предложено libburnia , поддерживается libisofs. [23]Расширения Apple технически не соответствуют стандарту SUSP; однако базовая структура полей AA и AB, определенная Apple, совместима с SUSP; так что при соблюдении осторожности том может использовать как расширения Apple, так и расширения RRIP.
Протокол обмена Rock Ridge (RRIP, IEEE P1282) — это расширение, которое добавляет семантику файловой системы POSIX . Наличие этих свойств расширения обеспечивает лучшую интеграцию с Unix и Unix-подобными операционными системами. [24] Стандарт получил свое название от вымышленного города Рок-Ридж в фильме Мела Брукса «Сверкающие седла» . [25] Вкратце расширения RRIP:
Расширения RRIP построены на основе SUSP и определяют дополнительные теги для поддержки семантики POSIX, а также формат и значение соответствующих полей использования системы:
RR
: Индикатор использования расширений Rock Ridge (примечание: исключено из стандарта после версии 1.09)PX
: Атрибуты файла POSIXPN
: номера устройств POSIXSL
: символическая ссылкаNM
: альтернативное имяCL
: дочерняя ссылкаPL
: родительская ссылкаRE
: перемещен каталогTF
: отметка времениSF
: разреженные данные файлаAmiga Rock Ridge похож на RRIP, за исключением того, что он предоставляет дополнительные свойства, используемые AmigaOS . Он также основан на стандарте SUSP путем определения поля использования системы с тегом «AS». Таким образом, Amiga Rock Ridge и POSIX RRIP могут использоваться одновременно на одном томе. Некоторые из конкретных свойств, поддерживаемых этим расширением, — это дополнительные биты Amiga для файлов. Поддерживается атрибут «P», который обозначает «чистый» бит (указывает на повторную команду), и атрибут «S» для бита сценария (указывает на пакетный файл ). Сюда входят флаги защиты и необязательное поле комментария. Эти расширения были представлены Анджелой Шмидт с помощью Эндрю Янга, основного автора протокола обмена Rock Ridge и протокола совместного использования системы. Первым общедоступным программным обеспечением для создания компакт-дисков с расширениями Amiga было MakeCD, программное обеспечение Amiga, которое Анджела Шмидт разработала вместе с Патриком Оли. [26]
El Torito — это расширение, позволяющее загружать компьютер с компакт-диска. О нем было объявлено в ноябре 1994 года [27] и впервые выпущено в январе 1995 года как совместное предложение IBM и производителя BIOS Phoenix Technologies . Согласно легенде, расширение El Torito CD/DVD до ISO 9660 получило свое название потому, что его дизайн зародился в ресторане El Torito в Ирвине, Калифорния ( 33 ° 41'05 "N 117 ° 51'09" W / 33,684722 ° N 117,852547 ° з.д. / 33,684722; -117,852547 ). [28] Первыми двумя авторами были Кертис Стивенс из Phoenix Technologies и Стэн Меркин из IBM. [28]
32-битный BIOS ПК будет искать загрузочный код на компакт-диске ISO 9660. Стандарт допускает загрузку в двух разных режимах. Либо в эмуляции жесткого диска, когда к загрузочной информации можно получить доступ непосредственно с компакт-диска, либо в режиме эмуляции дискеты, где загрузочная информация сохраняется в файле образа дискеты , который загружается с компакт-диска и затем ведет себя как виртуальный диск . дискета. Это полезно для компьютеров, которые предназначены для загрузки только с дискеты. Для современных компьютеров режим «без эмуляции» обычно является более надежным методом. BIOS присвоит дисководу компакт-дисков номер BIOS. Назначенный номер привода (для INT 13H ) может быть любым из 80 hex ( эмуляция жесткого диска ), 00 hex ( эмуляция гибкого диска ) или произвольного числа, если BIOS не должен обеспечивать эмуляцию. Эмуляция полезна для загрузки старых операционных систем с компакт-диска, поскольку они выглядят так, как если бы они были загружены с жесткого или гибкого диска.
El Torito также можно использовать для создания компакт-дисков, с которых можно загружать операционные системы Linux , включив на компакт-диск загрузчик GRUB и следуя спецификации мультизагрузки . [29] Хотя в спецификации El Torito упоминается идентификатор платформы «Mac», компьютеры Apple Macintosh на базе PowerPC его не используют. [30]
Joliet — это расширение, указанное и одобренное Microsoft , которое поддерживается всеми версиями операционной системы Windows , начиная с Windows 95 [31] и Windows NT 4.0 . [32] Его основной целью является ослабление ограничений на имена файлов, присущих полному соответствию стандарту ISO 9660. Joliet достигает этого, предоставляя дополнительный набор имен файлов, закодированных в UCS-2 BE ( на практике UTF-16 BE, начиная с Windows 2000). Эти имена файлов хранятся в специальном дополнительном дескрипторе тома, который безопасно игнорируется программным обеспечением, соответствующим стандарту ISO 9660, что позволяет сохранить обратную совместимость. [31] Спецификация допускает длину имен файлов не более 64 символов Юникода . Однако в документации mkisofs указано, что имена файлов длиной до 103 символов не вызывают проблем. [33] Microsoft задокументировала, что «может использовать до 110 символов». [34] Разница заключается в том, используется ли пространство расширения CDXA. [33]
Joliet позволяет использовать символы Юникода во всех текстовых полях, включая имена файлов и имена томов. Дескриптор тома «Вторичный» с типом 2 содержит ту же информацию, что и Первичный (смещение сектора 16 40 байт), но в UCS-2BE в секторе 17 смещение 40 байт. В результате имя тома ограничено 16 символами.
Многие современные операционные системы ПК способны читать носители в формате Joliet, что позволяет обмениваться файлами между этими операционными системами, даже если используются нелатинские символы (например, арабский, японский или кириллица), что раньше было невозможно с простым ISO 9660. -форматированные носители. Операционные системы, которые могут читать медиа-файлы Joliet, включают:
Romeo был разработан Adaptec и позволяет использовать длинные имена файлов длиной до 128 символов, записанные непосредственно в дескриптор основного тома с использованием текущей кодовой страницы . Этот формат основан на работе драйверов CDFS для Windows 9x и Windows NT . [41] Когда при установке Windows на другом языке открывается диск Romeo , отсутствие указания кодовой страницы приведет к тому, что символы, отличные от ASCII, в именах файлов станут Mojibake . Например, «ü» может стать «³». Другая ОС может столкнуться с аналогичной проблемой или вообще отказаться распознавать эти несовместимые имена.
Та же проблема с кодовой страницей технически существует в стандарте ISO 9660, который допускает открытую интерпретацию дополнительных и расширенных дескрипторов тома для любой кодировки символов, подпадающей под соглашение. Однако основной дескриптор тома гарантированно будет небольшим подмножеством ASCII.
Apple Computer разработала набор расширений, которые добавляют к файловой системе свойства ProDOS или HFS / HFS+ (основные современные файловые системы для классической Mac OS ). Некоторые из дополнительных свойств метаданных включают: [42]
Чтобы позволить системам, отличным от Macintosh, получать доступ к файлам Macintosh на компакт-дисках, Apple решила использовать расширение стандартного формата ISO 9660. Большая часть данных, за исключением метаданных Apple, остается видимой для операционных систем , способных читать ISO 9660.
Для операционных систем, которые не поддерживают какие-либо расширения, TRANS.TBL
необходимо использовать файл перевода имени. Файл TRANS.TBL
представляет собой обычный текстовый файл ASCII . Каждая строка содержит три поля, разделенных произвольным количеством пробелов :
В большинстве реализаций, создающих файлы TRANS.TBL, между типом файла и именем ISO 9660 помещается один пробел, а между именем файла ISO 9660 и расширенным именем файла — некоторое произвольное количество табуляции.
Встроенная поддержка использования TRANS.TBL
все еще существует во многих реализациях ISO 9660, особенно в тех, которые связаны с Unix . Однако оно уже давно вытеснено другими расширениями, а современные утилиты, создающие образы ISO 9660, либо вообще не могут создавать файлы TRANS.TBL, либо больше не создают их, если это явно не запрошено пользователем. Поскольку файл TRANS.TBL не имеет специальной идентификации, кроме имени, его также можно создать отдельно и включить в каталог перед созданием файловой системы.
Стандарт ISO 13490 является расширением формата ISO 9660, которое добавляет поддержку нескольких сеансов на диске. Поскольку ISO 9660 по своей конструкции представляет собой предварительно подготовленную файловую систему только для чтения, все данные должны быть записаны на носитель за один проход или «сеанс». После написания нет возможности изменить сохраненный контент. ISO 13490 был создан, чтобы позволить добавлять больше файлов на записываемый диск, например CD-R, за несколько сеансов.
Стандарт ISO 13346/ECMA-167 был разработан совместно со стандартом ISO 13490. Этот новый формат устраняет большинство недостатков ISO 9660, а его подмножество превратилось в универсальный формат диска (UDF), который был принят для DVD . Таблица дескрипторов томов сохранила формат ISO9660, но идентификатор был обновлен. [43] [44]
Образы оптических дисков — распространенный способ электронной передачи содержимого компакт-дисков. Они часто имеют расширение имени файла .iso
( .iso9660
реже, но также используется) и обычно называются «ISO». [45]
Большинство операционных систем поддерживают чтение дисков в формате ISO 9660, а большинство новых версий поддерживают такие расширения, как Rock Ridge и Joliet. Операционные системы, которые не поддерживают расширения, обычно демонстрируют базовые (нерасширенные) функции обычного диска ISO 9660.
К операционным системам, поддерживающим ISO 9660 и его расширения, относятся следующие: