Интернет магазин китайских планшетных компьютеров



Компьютеры - Files-11 - Индексный файл: INDEXF.SYS

02 июля 2011


Оглавление:
1. Files-11
2. Обзор
3. Расположение каталогов
4. Организация диска и именование
5. Защита файла: охрана и списки контроля доступа
6. Логические имена
7. Запись-ориентированный ввод-вывод: Record Management Services
8. Физический уровень: на-дисковая структура
9. Каталоги
10. Индексный файл: INDEXF.SYS
11. Прочие файлы



Индексный файл содержит самую основную информацию об объединённом томе Files-11.

Есть два способа организации INDEXF.SYS, традиционная организация и организация, используемая на дисках с GPT.SYS со структурами таблицы разделов GUID.

При традиционной организации, блок 1 является загрузочным блоком, который содержит местоположение первичного загрузочного образа, используемого для загрузки операционной системы VMS. Он всегда расположен на диске в логическом блоке 0, поэтому микропрограмма аппаратного обеспечения может прочитать его. Этот блок есть всегда, даже на несистемных томах.

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

На дисках, где есть GPT.SYS, в нём содержится эквивалент загрузочного блока) и на них нет первичного домашнего блока. Все домашние блоки представленные на диске с GPT являются альтернативными домашними блоками. Эти структуры не включаются в INDEXF.SYS и блоки из файла INDEXF.SYS не используются.

Оставшаяся часть индексного файла состоит из заголовков файлов, которые описывают экстенты, в которых расположен файл в томе, и метаданные файла, такие как код идентификации пользователя владельца, списки контроля доступа и информацию о защите. Каждый файл описывается одним или более заголовком файла — больше одного может потребоваться, когда файл имеет большое количество экстентов. Заголовок файла является блоком фиксированной длины, но содержит секции как фиксированной, так и переменной длины:

  • Секция header содержит NUM и SEQ, информацию о защите и расположение оставшейся части заголовка файла.
  • Секция ident содержит метаданные учётных записей: имя файла, времена создания и изменения и время последнего резервного копирования.
  • Секция map описывает какой блоки физического диска отображается на каждый виртуальный блок файла.
  • Секция access control list содержит информацию списков контроля доступа о файле.
  • Секция reserved area — это место в конце заголовка файла, которое не используется операционной системой. Может использоваться для информации поставщика или потребителя.
  • Последние 2 байта заголовка файла являются контрольной суммой предыдущих 255 слов, для проверки правильности заголовка.

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

Структура заголовка файла INDEXF.SYS

Заголовок файла начинается с 4 смещений. Так как размер областей после заголовков фиксированной длины может варьироваться, смещения требуются для определения местаположения этих дополнительных областей. Каждое смещение равно числу 16-битных слов от начала заголовка файла до начала области, для которой вычислено смещение.

Если файл требует множества заголовков, то добавочный номер сегмента содержит в себе порядковый номер этого заголовка, начиная с 0 в первой записи в INDEXF.SYS.

STRUCLEV содержит текущий уровень структуры и версию файловой системы; ODS-2 имеет уровень структуры 2. Увеличение номера версии свидетельствует об обратно совместимом изменении, что может игнорироваться старым программным обеспечением; изменения в самом уровне структуры являются несовместимыми.

W_FID содержит идентификатор этого файла; EXT_FID держит расположение следующего расширенного заголовка, если он есть. В обоих этих значениях, RVN определён как 0 для представления «текущего» тома.

FILECHAR содержит несколько флагов, которые предписывают, как файлу обрабатываться или организовываться:

  • NOBACKUP устанавливает, что файл будет проигнорирован при выполнении резервного копирования.
  • WRITEBACK разрешает кешируемую запись в файл.
  • READCHECK устанавливает, что все чтения файла производятся дважды и сравниваются для обеспечения целостности данных.
  • WRITCHECK — все записи будут проверены последующим чтением и сравнением.
  • CONTIGB — операционная система попытается разместить файл в хранилище настолько последовательно, насколько это возможно.
  • LOCKED — установлен, если файл заблокирован при завершении доступа. Если установлен, это свидетельствует, что файл не был должным образом закрыт после его последнего использования, и содержимое может быть несогласованным.
  • CONTIG указывает, что файл хранится на диске последовательно; то есть каждый виртуальный блок i отображён на логический блок i + k, где k — константа
  • BADACL — установлен, если файл имеет неправильный список контроля доступа.
  • SPOOL — установлен, если файл является буферным, как промежуточный файл используемый в процессе печати.
  • DIRECTORY — установлен, если файл является каталогом.
  • BADBLOCK — установлен, если файл содержит плохие блоки.
  • MARKDEL — установлен, если файл был помечен для удаления, но всё еще используется; он будет удалён сразу после закрытия последним пользователем.
  • NOCHARGE, если установлен, то указывает, чтобы место используемое файлом не бралось из квоты владельца хранилища.
  • ERASE — указывает чтобы содержимое файла было затёрто при его удалении.

Флаг ACCMODE описывает уровень привилегии, с которым процесс может выполняться в порядке доступа к файлу. VMS определяет 4 уровня привилегий: user, supervisor, exec и kernel. Каждый тип доступа — чтение, запись, выполнение и удаление — кодируется 2-битным целочисленным значением.

Флаг FILEPROT содержит информацию дискреционного контроля доступа применимую к файлу. Он разделён на 4 группы по 4 бита каждая: система, владелец, группа и мир. Бит 0 соответствует доступу на чтение, бит 1 — на запись, бит 2 — на выполнение и бит 3 — на удаление. Установка бита запрещает частичный доступ группе; снятие бита — разрешает.

Если заголовок файла является расширенным заголовком, то BACKLINK содержит идентификатор файла из основного заголовка; в обратном случае, он содержит идентификатор файла каталога, содержащего основную запись файла.



Просмотров: 10859


<<< Filesystem in Userspace