- •Краткая история создания ms-dos
- •Архитектура операционной системы
- •1.7. Эффективность и требования, предъявляемые к ос
- •Операционная система qnx
- •10.1. Архитектура
- •10.2. Управление процессами
- •10.3. Средства взаимодействия
- •10.4. Файловая система
- •10.6. Сетевые взаимодействия
- •10.5. Управление устройствами
- •10.7. Графическая система Photon
- •Прогон программы создания процесса
- •Области виртуальной памяти
- •Структура vm_area_struct
- •Современные файловые системы: что выбрать для внешнего накопителя и почему
- •Fat32 — разумный компромисс между совместимостью и прочими характеристиками
- •Ntfs — быстрая, мощная, но избыточная
- •ExFat — будущее флэш-накопителей и не только
- •Прочая экзотика, иногда полезная
- •Faq вместо заключения
10.4. Файловая система
Администратор файловой системы ОС QNX позволяет стандартным образом организовать хранение и доступ к данным файловых подсистем (томов). С точки зрения логической файловой системы, хранение файлов в QNX подобно тому, какое обеспечивает ОС Unix: общее дерево каталогов с возможностью монтирования новых томов как ветвей этого общего дерева. Обеспечиваются также "жесткие" и "мягкие" связи.
На физическом уровне диск QNX структурирован так, как показано на рисунке 10.3.
|
Загрузчик представляет собой блок начальной загрузки. Он не осуществляет загрузку собственно ОС, а выполняет выбор загрузочного файла ОС.
Корневой блок имеет структуру каталога и содержит информацию о следующих специальных файлах:
файл с именем / - корневой каталог;
файл с именем /.inodes - файл файловых индексов;
файл с именем /.boot - загрузочный файл ОС;
файл с именем /.altboot - альтернативный загрузочный файл ОС.
Загрузчик загружает операционную систему из файла /.boot, но имеется возможность загрузки и из альтернативного файла.
Битовая карта содержит информацию о свободных блоках на диске. Свободному блоку соответствует бит со значением 0, занятому - 1.
Размещение файла на диске QNX показано на рисунке 10.4.
|
Единицей распределения дискового пространства является блок (512 байт). Пространство файлу выделяется экстентами - непрерывными последовательностями, состоящими из целого числа блоков. В элементе каталога, соответствующем файлу, содержится номер начального блока и размер для первого экстента файла. Если файлу выделено более одного экстента, то в элементе каталога содержится номер блока расширения, через который адресуются следующие экстенты файла. Если одного блока расширения недостаточно, последний элемент первого блока расширения адресует второй блок расширения и т.д.
Интересным образом обеспечиваются в QNX жесткие связи (алиасы). Показанная на рисунке 10.4 структура относится к файлу, не имеющему жестких связей. Если же для файла создается жесткая связь, то информация о размещении файла переносится в файловый индекс, находящийся в файле /.inodes. Элемент каталога в этом случае содержит номер файлового индекса, и два разных элемента каталога могут ссылаться на один и тот же файловый индекс, а следовательно, на один и тот же физический файл. Таким образом, файловый индекс для файла создается только тогда, когда нужно разделить информацию о хранении файла в логической и в физической файловых системах.
Файловый индекс создается также и для файла с длинным именем. В обычном элементе каталога предусмотрено место для 16-символьного имени файла. Если длина имени файла превышает 16 символов, для файла создается файловый индекс и информация о размещении файла переносится в файловый индекс. При этом в элементе каталога освобождается место еще для 32 символов имени, таким образом, длина имени файла может достигать 48 символов.

Рисунок
10.3 Структура диска QNX
Рисунок
10.4 Размещение файла на диске QNX