Файловые системы лазерных дисков

 

1988 году был принят Международный стандарт ISO 9660, описывающий файловые системы для CD-ROM. Стандарт разрабатывался с учетом чтения CD-ROM на любом компьютере, поэтому на файловую систему были наложены определенные ограничения, позволявшие читать диски различным операционным системам.

Физически CD-ROM представляет собой непрерывную спираль, на которой последовательно размещены биты, которые вдоль спирали разделены на логические блоки (логические секторы) по 2352 байт. Некоторые из них имеют специализированное назначение. Полезная нагрузка в каждом блоке составляет 2048 байт. Аудиодиски содержат специальные разделительные участки между композициями, специальные заголовки и концевики для каждой фонограммы. В большинстве случаев позиция блока в спирали указывается в минутах и секундах, но может быть преобразована в линейный номер блока, так как каждая секунда содержит 75 блоков. Диски CD-ROM могут быть разделены на отдельные логические тома (разделы).

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

- идентификатор системы – 32 байта;

- идентификатор тома – 32 байта;

- идентификатор издателя – 128 байт;

- идентификатор лица, подготовившего данные – 128 байт.

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

- ключевые числа, включающие размер логического блока (как правило, 2048, однако в определенных случаях могут использоваться блоки большего размера, например 4096, 8192 и др.);

- количество блоков;

- дата создания диска;

- дата окончания срока службы диска;

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

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

Корневой каталог и подкаталоги могут содержать переменное количество записей, в последней из которых установлен специальный бит, помечающий эту запись как последнюю. Записи каталогов также могут иметь переменную длину. Каждая запись содержит от 10 до 12 полей, некоторые из них содержат текст формата ASCII, другие являются числовыми двоичными полями. Двоичные поля кодируются дважды, один раз в формате, используемом в процессорах типа Pentium (сначала младшие байты, затем старшие), и один раз в формате, используемом в процессоре SPARC (сначала старшие байты, затем младшие). Следовательно, 16-разрядное число занимает 4 байт, а 32-разрядное число 8 байт. Если записи каталогов имеют расширенные атрибуты, то второй байт содержит длину записи расширенных атрибутов.

 

4-15    
                       
Длина записи каталога Длина записи расширенных атрибутов Расположение файла Размер файла Дата и время создания файла Флаги Чередование файла Местоположение файла на CD Базовое имя Имя файла Заполнение SYS

 

 
 
Рис. 4.18. Запись каталога стандарта ISO 9660


Далее располагается номер начального блока файла. Так как файлы на диске хранятся в виде непрерывных последовательностей блоков, то размещение файла на диске определяется начальным блоком и размером файла, значение которого содержится в следующем поле. В следующем поле хранятся дата и время создания файла. Значения года, месяца, дня часа, минуты, секунды и временной зоны хранятся в отдельных байтах. Годы отсчитываются от 1900 года[5], Поле Flags (флаги) содержит управляющие биты, один из которых позволяет скрывать запись при отображении каталога, другой разрешает использование расширенных атрибутов, третий помечает последнюю запись в каталоге. Следующее поле описывает особенности чередования частей файла на диске. Далее расположено поле, которое указывает местоположение файла на CD-ROM. Стандарт допускает возможность расположения файлов на других CD-ROM, поэтому можно создать на одном CD-ROM главный каталог, содержащий все файлы, расположенные на других CD-ROM набора.

Следующее поле содержит длину имени файла в байтах. Далее расположено поле, содержащее имя файла, состоящее из базового имени (base name), точки, расширения, точки с запятой и версии файла в двоичном формате (один или два байта). В базовом имени и расширении допускается использовать прописные символы, цифры от 0 до 9 и символ подчеркивания, остальные символы запрещены. Базовое имя может иметь длину до восьми символов; расширение – до трех символов (ограничения на длину файла накладываются для совместимости с операционной системой MS-DOS).

Последние два поля присутствуют не всегда. Поле Padding (заполнение) используется для выравнивания размера каталоговой записи до четного количества байтов, чтобы выровнять записи в каталоге по 2-байтовым границам. Если требуется выравнивание, используется нулевой байт. Функция и размер последнего поля System use стандартом не определяются, указывается только, что это поле должно состоять из четного числа байтов. В различных операционных системах это поле используется по разному, например, Macintosh хранит в этом поле флаги Finder.

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

Стандарт ISO 9660 определяет три уровня ограничений.

Уровень 1 имеет самые жесткие ограничения для совместимости CD-ROM с широким спектром операционных систем:

- имена файлов ограничиваются схемой 8 + 3;

- имена каталогов могут состоять из восьми символов и не могут иметь расширений;

- все файлы должны быть непрерывными.

Уровень 2 позволяет файлам и каталогам иметь имена длиной до 31 символа, которые состоят из вышеуказанного набора символов.

Уровень 3 использует ограничения имен уровня 2 и ослабляется жесткость требования непрерывности файлов. Файл может состоять из нескольких разделов, каждый из которых представляет собой непрерывную последовательность блоков. Одна и та же последовательность блоков может несколько раз встречаться в одном файле и входить в несколько различных файлов. Такая организация файловой системы позволяет экономить место на диске.

Для того чтобы файловая система UNIX могла быть представлена на CD-ROM, было создано расширение стандарта под названием Рок-Ридж (Rock Ridge). Расширение использует поле System use, чтобы CD-ROM формата Рок-Ридж мог читаться на любом компьютере. Все остальные поля соответствуют требованиям стандарта ISO 9660. Операционная система, которая не знакомая с этим расширением просто игнорирует его. Расширения содержат следующие поля:

- РХ (атрибуты POS1X) – поле содержит стандартные биты разрешений rwxrwxrwx системы UNIX для владельца, группы и остальных; дополнительно содержит остальные биты слова состояния, такие как SETUID, SETGID и др.;

- PN (старший и младший номера устройств) – поле используется для представления на CD-ROM необработанных устройств; старший и младший номера устройств, ассоциированы с файлом, поэтому, содержимое каталога /dev может быть записано на CD-ROM и позднее правильно воссоздано на другой системе;

- SL (символьная связь) – поле позволяет файлу из одной файловой системы ссылаться на файл из другой файловой системы;

- NM (альтернативное имя) – поле позволяет указать для файла второе имя, его не касаются ограничения стандарта ISO 9660, поэтому можно указывать произвольные имена файлов системы UNIX;

- CL (расположение дочернего узла), PL (расположение дочернего узла), RE (перераспределение) – поля используются вместе, чтобы обойти ограничения стандарта ISO 9660 на глубину вложенности каталогов, с их помощью можно указать, куда в дереве иерархии должен быть перемещен тот или иной каталог;

- TF (временные штампы) – поле содержит три временных штампа, включаемые в каждый i-узел системы UNIX: время создания файла, время последнего изменения файла, время последнего доступа к файлу.

Все указанные расширения позволяют скопировать файловую систему UNIX на CD-ROM и впоследствии корректно восстановить ее на другом компьютере.

Для того чтобы файловую систему операционной системы Windows можно было копировать на CD-ROM и впоследствии восстанавливать, корпорация Microsoft разработала расширение стандарта ISO 9660 под названием Joliet. Основные расширения, содержащиеся в Joliet:

- длинные имена файлов – расширение позволяет использовать имена файлов длиной до 64 символов;

- набор символов Unicode – расширение разрешает употреблять для имен файлов символы Unicode,[6] поскольку символы Unicode занимают два байта, максимальное имя файла в расширении Joliet занимает 128 байт;

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

- имена каталогов с расширениями – расширение разрешает использовать у имен каталогов расширения.

Для удовлетворения современных требований, предъявляемых компаниями разработчиками программного обеспечения к CD-ROM, Optical Storage Technology Association (OSTA) разработала новую файловую систему UDF, которая призвана заменить ISO 9660. UDF (англ. Universal Disk Format, универсальный дисковый формат) – спецификация формата файловой системы, независимой от операционной системы для хранения файлов на оптических носителях. UDF является реализацией стандарта ISO/IEC 13346 (ECMA-167).

Стандартные CD-ROM обычно форматируются с использованием ISO 9660. Большинство компьютерных систем может читать ISO 9660 CD-ROM и CD-R диски, так как имеют встроенную поддержку ISO 9660. Но ISO 9660 имеет некоторые ограничения, которые делают его несовместимым с DVD, CD-RW и другими новыми форматами дисков. UDF освобождает от этих ограничений и дополнительно выполняет следующие функции:

- дозаписывает файлы на CD-R или CD-RW дисках, без существенных потерь дискового пространства, используя метод пакетной записи;

- предоставляет возможность выборочного стирания некоторых файлов на перезаписываемых носителях CD-RW, освобождая место на диске (в стандарте ISO 9660 не предусмотрено);

- осуществляет поддержку дисков большого объема (ISO 9660 не поддерживает файлы размером более 2 Гб).

Существует несколько версий формата UDF:

- UDF 1.02 – поддерживается Windows 98, многими версиями операционных систем корпорации Apple, используется для DVD-RAM и магнитооптических дисков;

- UDF 1.50 – поддерживается Windows 2000, Windows XP и Windows Server 2003 (может быть несовместим с Windows 98 или Apple);

- UDF 2.01 – поддерживается Windows XP и Windows Server 2003 (может быть несовместим с Windows 98, Windows 2000 или Apple);

- UDF 2.50 –поддерживается Windows Vista (может быть несовместим с более ранними версиями Windows и др. платформами);

- UDF 2.60 – поддерживается Windows Vista, Mac OS X 10.5, NetBSD.

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

Операционная система Microsoft Windows XP имеет поддержку UDF версий 1.02, 1.5 и 2.01 по чтению. При установке программы InCD с дисками CD-RW и DVD-RW можно работать как с дискетами большого объема. Можно читать, записывать, удалять, переименовывать файлы, то есть совершать с ними все доступные операции в интерактивном режиме без выполнения специальных команд. Операционная система Microsoft Windows Vista содержит штатное средство для использования оптических дисков в интерактивном режиме. Операционная система UNIX и Linux также поддерживает данную файловую систему, для создания диска с форматом UDF используется пакет udftools.