QNX4 - многозадачная многопользовательская операционная система жесткого реального времени (ОСРВ) с архитектурой на основе микроядра и поддержкой ряда стандартов семейства POSIX.
ОСРВ QNX4 состоит из микроядра и набора необязательных модулей, на каждый из которых возложено выполнение своего набора сервисов ОС. Иными словами, в QNX4 эффективно используется концепция "разделения труда". Если вам нужна файловая система, сеть, графическая среда, что угодно - просто запустите нужные модули.
Микроядро QNX4
ОСРВ QNX4 предоставляет вам все преимущества настоящего микроядра. Она компактная, быстрая, гибко масштабируется и наращивается.
Являясь истинно микроядерной ОС, QNX4 строится вокруг компактного высоконадежного "стержня". Микроядро QNX4 обладает достаточно малыми размерами для встраивания в ПЗУ, и при этом достаточной большой мощностью для управления распределенной сетью, содержащей нескольких сотен процессоров.
QNX4 легко расширяется, предоставляя разработчику чрезвычайную гибкость. Вы можете использовать для расширения функциональных возможностей как штатные модули QNX4, так и свои собственные. Предоставляемое QNX4 окружение защищенного режима дает возможность легко и безопасно тестировать свои новые модули расширения и пробовать новые подходы.
Реализованный в QNX уникальный подход к прозрачной распределенной обработке данных позволяет вам запускать процессы по сети с полным наследованием окружения, включая открытые файлы, текущий каталог, файловые дескрипторы и идентификатор пользователя. Микроядро также предоставляет сервисы стандарта POSIX.1 и его расширения для систем реального времени POSIX.1b (POSIX.4), плюс возможности высокоскоростной трассировки диагностических событий.
Файловые системы на любой вкус
Предлагаемый набор файловых систем позволяет достичь желаемого соответствия между размерами, функциональностью и стоимостью. В QNX можно использовать несколько файловых систем одновременно. Например, если вы используете POSIX-совместимую файловую систему, и вам нужно связаться с Windows-машиной, просто запустите менеджер файловой системы SMB.
POSIX-совместимая файловая система. POSIX-совместимая файловая система QNX, Fsys, предоставляет полную семантику POSIX.1 и UNIX, расширенные механизмы защиты данных и высокоскоростные драйверы носителей, по производительности близкие к физической скорости доступа. Будучи ориентирована на семантику POSIX, Fsys идеально подходит для серверов разработки и других классических приложений на базе НЖМД. И тем не менее, ее можно упаковать в размеры, подходящие для встраиваемых систем, требующих семантики UNIX.
Заметьте, что приложения могут обходить Fsys и обращаться напрямую к дисковым драйверам (для "сырого" блочного чтения) или файловой системе вашей собственной разработки.
Встраиваемая файловая система. Встраиваемая файловая система QNX, Efsys, существует в нескольких модификациях. Efsys поддерживает множество устройств flash-памяти, включая flash-карты в формате PCMCIA, а также одноплатные ЭВМ и твердотельные диски от ряда производителей. Если вы хотите использовать запоминающие устройства, не поддерживаемые Efsys, вы можете разработать свою собственную файловую систему. В вашем распоряжении для этого будет весь необходимый исходный и объектный код.
Файловая система SMB (CIFS). Протокол разделения файлов SMB (Server Message Block) используется рядом серверов типа Windows 95/NT, Windows for Workgroups, LAN Manager и Samba. SMBfsys, реализация SMB в QNX, обеспечивает прозрачный доступ к этим серверам и представляет собой полезное решение для кросс-разработки.
SMBfsys реализует протокол SMB, используя NBT (NetBIOS через TCP/IP). Запустив SMBfsys и подмонтировав удаленный ресурс на сервере, вы получаете доступ к файловой системе сервера как к поддереву локальной файловой системы.
Сетевая файловая система NFS. Популярная сетевая файловая система для гетерогенных сетей масштаба предприятия, NFS позволяет предоставляет прозрачный доступ к файлам большинства UNIX-систем и многих не-UNIX-систем, включая Windows.
Файловая система DOS. С использованием модулей файловой системы DOS, Fatfsys, любая QNX-программа в сети получает прозрачный доступ к DOS-разделам, включая создание, чтение, запись и удаление файлов. Даже если у вас нет DOS-машины, вполне вероятно, что платформа, с которой вам будет необходимо обмениваться данными, поддерживает файловую систему DOS. Fatfsys предоставляет вам доступ к данным на DOS-разделах любых типов и на любых дисковых носителях с использованием обычных команд QNX4.
Файловая система ISO9660/Rock Ridge. Модуль файловой системы ISO9660/Rock Rigde, Iso9660fsys, дает прозрачный доступ к CD-ROM или любым другим носителям, отформатированным в стандарте ISO 9660. Кроме поддержки файловых систем ISO и High Sierra, наиболее общепринятых для CD-ROM, Iso9660fsys также поддерживает протокол Rock Ridge, что дает вам возможность использовать имена файлов в стандарте POSIX и символьные связи и читать дистрибутивы UNIX, записанные на CD-ROM.
Блок-ориентированная файловая система. Блок-ориентированная файловая система, Blkfsys, реализует полный драйверный и пользовательский интерфейс файловой системы POSIX, но только для блок-ориентированных файлов. Иными словами, она поддерживает "сырые" разделы, лентопротяжные устройства и НГМД, но не поддерживает саму файловую систему QNX. Если вы разрабатываете встраиваемые приложения, то Blkfsys предоставляет вам гибкие возможности создания своих файловых систем. Поддерживая те же устройства, что и Fsys, но с меньшими затратами памяти и по меньшей цене, Blkfsys представляет собой ценную альтернативу для приложений, которым требуется только "сырой" доступ к блок-ориентированным устройствам. Модуль Blkfsys, наряду с драйверами НЖМД, НГМД, CD-ROM и SCSI-устройств, включает в себя также набор дополнительных сервисных утилит.
Управление устройствами. Менеджер устройств QNX, Dev, является высокопроизводительным и вносящим очень малые накладные расходы серверным процессом, обеспечивающим интерфейс между процессами и терминальными устроствами.
Dev эффективно обрабатывает символьные устройства и обеспечивает скорость обмена вплоть до 115К бод даже на процессорах серии i386. Dev поддерживает все множество символьных устройств, включая терминалы ANSI, клавиатуры и устройства параллельного и последовательного ввода-вывода.
Высокопроизводительная сетевая технология FLEET
Уникальная черта операционной системы QNX4 - сетевая технология FLEET - представляет всю сеть как однородный набор ресурсов с прозрачным доступом (этот принцип в свое время был сформулирован фирмой Sun - "Cеть есть компьютер!"). FLEET - компактный и быстрый сетевой протокол. Его передовая богатая функциональными возможностями архитектура превращает локальную сеть в единый логический суперкомпьютер. Будучи построен на механизме передачи сообщений QNX4, FLEET предоставляет максимум гибкости. Его основные характеристики:
- Надежность сетевых соединений (Fault-tolerant networking);
- Динамическая балансировка нагрузки (Load-balancing on the fly);
- Высокая производительность (Efficient performance);
- Расширяемая архитектура (Extensible architecture);
- Прозрачность распределенной обработки данных (Transparent distributed processing).
Надежность сетевых соединений. В случае отказа сетевой карты или обрыва кабеля FLEET автоматически перенаправляет пакеты по альтернативному маршруту через другую сеть. Это происходит динамически по мере необходимости, без применения специального программного обеспечения, предоставляя вам необходимую надежность автоматически.
Динамическая балансировка нагрузки. Пропускная способность сети обычно ограничена производительностью ЭВМ и сетевого оборудования. С помощью FLEET можно передавать данные через несколько сетей сразу, удваивая, а то и утраивая пропускную способность сети, подключив к вашим ЭВМ по нескольку сетевых карт и соединив их отдельными кабелями. Вы можете даже использовать карты различного типа (например, Ethernet и FDDI) в одной и той же ЭВМ.
Высокая производительность. Драйверы сети FLEET оптимизированы для максимального использования возможностей сетевого оборудования. К примеру, отправка больших блоков данных от одного процесса другому по сети Ethernet дает впечатляющие результаты:
Сеть |
Число клиентских процессов |
Пропускная способность |
Ethernet 10Мбит |
1 |
1.1 Мбайт/с |
Ethernet 100Мбит |
1 |
7.5 Мбайт/с (ограничено возможностями сетевой карты) |
Расширяемая архитектура. Благодаря FLEET, QNX4-сеть обладает необычайной гибкостью. Процессы, ответственные за сеть, архитектурно отделены от ОС, позволяя вам подключать узел к сети или отключать его в любое время. Таким образом, можно добавлять узлы в сеть или удалять их из сети динамически, без переконфигурации системы. А благодаря встроенному механизму комутации пакетов, вы можете также подключать к вашей сети другие физические сети. (Этот механизм лежит примерно посередине между организацией мостов (bridging) и маршрутизацией (routing), поэтому в оригинале он называется "brouting"; в русскоязычной терминологии ему более всего соответствует термин "коммутация".)
Прозрачность распределенной обработки данных. Процессы, ответственные за сеть FLEET, глубоко интегрированы со встроенными примитивами обмена сообщениями и управления процессами, гармонично объединяя локальные и сетевые межпроцессные коммуникации (IPC) воедино. Поскольку мезанизмы IPC обладают сетевой прозрачностью, объединение разрозненных компьютеров в сеть превращает их в единый, цельный логический суперкомпьютер. Каков конечный результат? Если вашим приложениям понадобится общаться по сети, Вам не придется их переписывать.
Мощный инструментарий. Для простоты обслуживания сети FLEET в QNX4 предусмотрен удобный набор диагностических и сервисных утилит.
Встраиваемая графическая оболочка Photon microGUI
Photon microGUI - это высокопроизводительный, полнофункциональный оконный интерфейс, занимающий исключительно мало памяти и опирающийся на мощь и гибкость QNX4. Photon дает вам возможность создания сложных графических приложений даже для самых миниатюрных систем на основе процессоров x86.
Обзор производительности
Объем системного кода, выполняемого в QNX4 при получении от приложения запроса на доступ к какому-либо сервису, на удивление невелик. QNX4 - умная ОС, не загружающая процессор обслуживанием громоздких системных компонент, позволяя ему сосредоточиться на выполнении ваших приложений.
QNX4 обеспечивает максимум физической производительности всех периферийных устройств в системе. Ваши приложения могут наслаждаться эффективной производительностью дисковых, сетевых и видеоустройств при минимальной загрузке процессора.
Нижеприведенные значения были получены на Pentium-133 с контроллером Wide SCSI Adaptec 2940, Wide SCSI-НЖМД Barracuda, 100-Мбитной сетевой картой Digital 21040 (шина PCI) и 10-Мбитной NE2000-совместимой сетевой картой (шина ISA).
- переключение контекста (context switching): 1.95 мкс;
- время реакции на прерывание (interrupt latency): 4.3 мкс;
- задержка диспетчеризации (scheduling latency): 7.8 мкс;
- дисковый ввод-вывод с длиной записи 16384 байт: 4 Мбайт/с (чтение), 5.3 Мбайт/с (запись);
- пропускная способность сети (network throughput): 1.1 Мбайт/с (Ethernet 10 Мбит), 5.3 Мбайт/с (Ethernet 100-Мбит).
В приведенной ниже таблице даны времена реакции на прерывание даны для худшего случая вложенной обработки прерывания максимального приоритета. Приоритет прерываний можно переназначать, и времена реакции на прерывания меньшего приоритета будут зависеть от объема пользовательских обработчиков более высокоуровневых прерываний.
Процессор |
Время переключения контекста, мкс |
Время реакции на прерывание, мкс |
Pentium-133 |
1.95 |
4.3
|
Pentium-100 |
2.6
|
4.4
|
486DX-40 |
6.75
|
7
|
386SX-33 |
22.6
|
15
|
Поддерживаемое аппаратное обеспечение
Полная поддержка PC - прямо из коробки. Список поддерживаемого оборудования постоянно обновляется. Самую свежую информацию можно получить на web-сайте технической поддержки пользователей QNX (http://support.qnx.com).
|