Copyright

Файлы и файловая система QNX

Вся информация в операционной системе QNX  хранится в виде файлов. Каждый файл – это набор байтов, обладающих общими атрибутами (имя, UID, GID, метки времени, тип файла). ОС QNX поддерживает следующих типы файлов: обычные файлы, каталоги, мягкие ссылки, жесткие ссылки, FIFO, байт-ориентированные специальные файлы,  блок-ориентированные специальные файлы, именованные специальные устройства. Опишем их вкратце:

Обычные файлы – представляют собой последовательность байт без предопределенной структуры. За интерпретацию данных из этих файлов отвечают разные программы.

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

Мягкие ссылки – это ссылки на файлы, расположенные за пределами файловой системы, в которой распоожен исходный файл. По сути мягкая ссылка это текстовый файл, в который содержит имя другого файла, к которому перенаправляются все запросы.

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

FIFO  механизмо взаимодействия между несколькими процессами – один процесс пишет в программный канал, а второй считывает. Понятно, что FIFO не самый быстрый способ для межзадачного взаимодействия.

Байт-ориентированные специальные файлы – этот тип файлов обеспечивает побайтовый обмен данными. Например, такие файлы создаются при запуске соответствующих драйверов.

Блок-ориентированные специальные файлы – файлы, которые создаются для изоляции приложений от физических параметров аппаратуры. Данные файлы создаются в QNX не на диске, а в оперативной памяти при запуске конкретных драйверов.

Именованные специальные устройства –  яркий пример такого вида файлов в QNX – это /dev/photon.

Файловой системой QNX управляет процесс fsys, который отвечает за обработку запросов к файлам (запись, чтение, открытие, закрытие). Файловая система QNX устроена так, что при записи данных, критической важности для системы, файлы записываются сразу, а некритические вначале помещаются в особый буфер, а затем происходит их запись. Хотя при этом теряется какая-то толика времени, но она практически незаметна.

Похожие записи