Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ОС_СГTУ new v10.doc
Скачиваний:
148
Добавлен:
12.11.2019
Размер:
4.13 Mб
Скачать

3.6. Файловые системы qnx

Высокая степень отказоустойчивости благодаря разбиению блоков а основной битовой карте, защита от потерь данных и возможность быстрого восстановления, использование многопоточности, приоритетность. Родной раздел QNX называется QNX4FS (для версий ОС QNX 4.х – 6.3.) и QNX6FS (начиная с версии ОС QNX 6.4.0), новый раздел создается утилитой fdisk [15]. Принято согласование разделов - первое число порядковый номер диска, второе – тип раздела диска.

Раздел имеет компоненты: блок загрузки, ключевой (root), битовая карта, корневой каталог. Блок загрузчика - первичный физический блок в разделе диска. Содержит начальный загрузчик. Корневой блок имеет структуру обычного, содержит следующие в себе: корневой root каталог, файл /.inodes – информационный узел. Если имя файла длиннее 16 символов, содержимое файла помещается в этот файл. Файл /.boot содержит загрузочный образ ОС. Файл /.altboot - содержит резервный загрузочный образ. Файл /.longfilenames – файл, содержащий столько битов, сколько разделов у диска. Каждому физическому разделу соответствует 1 бит.

Типы файлов

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

  • регулярные(обычные) файлы;

  • каталоги; жёсткие и символические ссылки;

  • блок- и байт-ориентированные специальные файлы;

  • специальные именованные устройства (Named Special Device);

  • именованные программные каналы (pipes).

Регулярные файлы - состоят из последовательности байт с произвольным доступом и не имеют предопределенной структуры. Они составляют большинство файлов в файловых системах. Файловые системы поддерживаются Менеджером файловой системы и реализованы на базе блок-ориентированных файлов, соответствующих разделам диска.

Каталоги - содержат элементы каталога и информацию, необходимую для поиска регулярных файлов; также содержат статус и атрибуты для каждого регулярного файла. Каждый элемент каталога увязывает имя файла с файлом. Имя файла - это символьное имя, которое позволяет идентифицировать файл и работать с ним. Файл может быть идентифицирован несколькими именами.

Символические связи (ссылки) - содержат путь к файлу или каталогу, к которым перенаправляются все запросы; символические связи, часто используются для предоставления множества путей к одному файлу.

Программные каналы (pipes) и FIFO - служат как каналы ввода/вывода между взаимодействующими процессами.

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

Байт-ориентированные специальные файлы-файлы, аналогичные блочным устройствам, с той разницей ,что символьные устройства обеспечивают интерфейс к аппаратуре, осуществляющей посимвольный ввод/вывод. К такой аппаратуре относятся, например, последовательный порт, сетевая карта и т.п. Эти файлы ,так же как и блочные. Создаются драйверами при запуске.

Жесткие ссылки (связи) - дополнительные элементы каталога. При ее создании, во-первых, информация о физическом размещении данных выносится в файл /.inodes, во-вторых, счетчик ссылок (атрибут файла) увеличивается на единицу. При удалении одной из жестких ссылок реально будет удален только соответствующий элемент каталога, а счетчик ссылок на inode-запись будет уменьшен на единицу. Как только счетчик достигнет значения “ноль”, и inode-запись ,и физические данные файла будут уничтожены.

Именованные специальные устройства-специальный дополнительный тип файлов (Named Special Device).

В QNX файл может обозначаться более чем одним именем. Каждое имя файла называется связью. В действительности существует два вида связей: жесткие связи, или просто "связи", и символические связи. Для поддержки связей каждого файла, имя файла отделяется от остальной информации, описывающей файл. Эта информация хранится в структуре, называемой inode (индексным дескриптором).

Если файл имеет только одну связь (т.е. одно имя), то блок inode хранится в элементе каталога для этого файла. Но если файл имеет более чем одну связь, то inode хранится как запись в специальном файле /.inodes, а элемент каталога для файла содержит указатель на запись inode.Можно создать связь для файла, только если файл исвязь находятся в одной и той же файловой системе.

Нельзя создавать жесткие связи для каталога. Однако каждый каталог имеет две жестко определенные связи: «.» («точка»), «..» («точка точка»). Имя файла "точка" соответствует текущему каталогу; "точка точка" соответствует каталогу, предшествующему текущему каталогу.

Доступ к регулярным файлам и каталогам управляется битами режима, хранящимися в inode (индексном дескрипторе) файла. Эти биты разрешают чтение, запись и выполнение в зависимости от эффективных ID пользователя и группы. При этом пользователи делятся на три категории:

  • владелец файла;

  • члены группы, к которой принадлежит владелец;

  • остальные.

Процесс может выполняться с ID пользователя или ID группы файла, а не родительского процесса. Механизм, который позволяет это, называется setuid (установить ID пользователя) и setgid (установить ID группы).

QNX может работать со следующими типами файловых систем:

    1. встраиваемые: образная (ROM/Flash, Execute-in-place), в ОЗУ (временное хранилище), NOR Flash (линейное flash-ППЗУ), NAND Flash (страничное flash-ППЗУ);

    2. дисковые: OC QNX (POSIX (QNX4)), Linux (Ext2), MS-DOS (FAT 12, 16, 32), CD-ROM (ISO9660, Joliet);

    3. специальные: со сжатием (разворачивание «на лету»), пакетная (обновления и откаты на «лету»);

    4. сетевые: NFS (совместимость с UNIX), CIFS ( совместимость Microsoft).

На рис. 54 показана типовая структура каталогов QNX Neutino. Основные каталоги следующие [5]:

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

  • /bin В каталоге /bin находятся наиболее часто употребляемые команды и утилиты системы, как правило, общего пользования.

  • /dev Каталог /dev содержит специальные файлы устройств, являющиеся интерфейсом доступа к периферийным устройствам.

  • /etc В этом каталоге находятся системные конфигурационные файлы и многие утилиты администрирования.

Рис. 54 Организация каталогов QNX Neutino

  • /lib В каталоге /lib находятся библиотечные файлы языка С и других языков программирования.

  • /lost+found Каталог "потерянных" файлов. Программы проверки и восстановления файловой системы помещают файлы в каталог /lost+found под системными числовыми именами.

  • /mnt Стандартный каталог для временного связывания (монтирования) физических файловых систем к корневой для получения единого дерева логической файловой системы.

  • /home Общеупотребительный каталог для размещения домашних каталогов пользователей.

  • /usr В этом каталоге находятся подкаталоги различных сервисных подсистем -системы печати, электронной почты и т. д. (/usr/spool), исполняемые файлы утилит UNIX (/usr/bin), дополнительные программы, используемые на данном компьютере (/usr/Iocal), файлы заголовков (/usr/include), электронные справочники (/usr/man)n т. д.

  • /var В UNIX System V этот каталог является заменителем каталога /usr/spool, используемого для хранения временных файлов различных сервисных подсистем — системы печати, электронной почты и т. д.

  • -/tmp Каталог хранения временных файлов, необходимых для работы различных подсистем QNX.