В предыдущих публикациях, мы надеемся, читатель смог вникнуть в проблематику и терминологию многозадачных систем реального времени и понять философию, положенную в основу работы ОС QNX. Сейчас же мы предлагаем познакомиться с реальными возможностями ОС QNX, которые каждый пользователь может буквально "потрогать руками".
Микроядро содержит в себе всего лишь 16 функций и имеет три "сферы влияния", такие как: диспетчеризация процессов, контроль межпроцессорного обмена сообщениями и управление прерываниями. Вытесняющий диспетчер, содержащийся в ядре, может обрабатывать до 2000 процессов одновременно, при этом каждый процесс имеет одну из 32 градаций приоритета. Диспетчер использует 4 алгоритма работы: FIFO, циклический (ROUND-ROBIN), адаптивный (Adaptive) и метод назначенных приоритетов (Message-priority).
Менеджер процессов управляет созданием и уничтожением процессов, распределением памяти, контролем таймеров (система поддерживает несколько таймеров одновременно, причем каждый таймер может иметь свою длительность "тика"). При этом все это работает настолько быстро, насколько быстро приходит новое сообщение о создании или уничтожении процесса. К примеру, вам необходимо запустить новый процесс на удаленной машине в сети, задействуя все оборудование этой машины. И представьте себе, что это произойдет со скоростью создания подкаталога на вашей собственной машине.
Менеджер файловой системы. ОС QNX имеет возможность параллельной работы с такими разными по структуре файловыми системами, как:
- POSIX - полная поддержка стандарта POSIX 1003.x и UNIX.
- Flash - разделение жесткого диска на подуровни и многие другие уникальные возможности для систем, встраиваемых во Flash-память.
- SMB(CIFS) - предоставляет прозрачный доступ к файлам Windows 95/NT, Windows для рабочих групп и серверов LAN Manager. Также предусмотрена возможность перекрестной работы с различными файловыми системами.
- ISO 9660 - (вместе с RRE - Rock Ridge Extensions) - поддержка стандарта CD-ROM для чтения и доступа для записи.
Сетевой менеджер обеспечивает наиболее быструю и прозрачную работу в сети для систем QNX путем виртуального соединения всех машин сети в один виртуальный суперкомпьютер или суперядро. Это преобразует канал обмена сообщениями между всеми машинами в один общий канал обмена. Также поддерживаются множественные соединения компьютеров в сети, т.е. один компьютер может быть присоединен к нескольким сетям одновременно и обмениваться по ним информацией. Причем сетевой менеджер контролирует загруженность каждой сети и, в зависимости от этого, перенаправляет информационные потоки в другие сети (полностью или частично). При нарушении работы исходной сети информационный поток перенаправляется в другие сети без каких-либо потерь.
Сетевые драйверы предоставляют приложениям возможность использовать все ресурсы сетевого оборудования. Только благодаря этому свойству в сети QNX достигается создание виртуальных суперядер и обеспечение работы терминалов без локальных дисков.
TCP/IP сервис. QNX включает в себя полный набор TCP/IP средств (представленный в виде пакета утилит). Это FTP, TELNET, RSH и т.д. Помимо традиционных протоколов обмена введена поддержка таких стандартов, как NFS (Network FileSystem), RPC (Remote Procedure Call) и поддержка клиента SNMP (Simple Network Management Protocol).
Менеджер устройств управляет символьными устройствами. Причем он разработан так, что последовательный порт может работать на скорости 115 Kbaud даже на медленных 386 процессорах. В ядре также заложена полная совместимость всех стандартов устройств ввода/вывода.
Набор средств стандарта POSIX 1003.2 включает в себя расширенный набор UNIX-средств, не содержащихся в предыдущих версиях этого стандарта. Сюда входят порядка 200 утилит, предоставляющих пользователю и разработчику широкий сервис и интерфейс работы.
Набор Интернет-средств (Internet suite) предоставляет пользователю и разработчику возможность создавать Web-совместимые приложения без каких-либо введений сложного кода в текст программ. Причем весь пакет Интернет-средств составлен из соображений функциональной наполненности и минимальных требований к системе. Все средства из этого набора могут работать как на персональных компьютерах, так и на бездисковых терминалах, даже на 386 процессорах. Т.е. набор Интернет- средств построен полностью в "духе" всей ОС QNX.
Handheld suite - это средства, разработанные для различного рода переносимых терминалов, pen-based компьютеров, портативных инструментов и других мобильных устройств. Все средства этого набора оптимизированы для специализированных устройств ввода и отображения информации, например, LCD-матриц как пассивных, так и активных.
Графический интерфейс пользователя (GUI). Система QNX поддерживает широкий спектр графических пользовательских интерфейсов. Некоторые из них:
- Photon microGUI - встраиваемая оконная система с API, схожим с системами Motif и Х, требующая минимальных затрат памяти для работы. Эта система разработана для такого оборудования, как потребительская электроника, инструменты, требующие визуального и программного контроля, POS-терминалы (кассовые аппараты), PDA-системы, но при этом великолепно работает и на персональных компьютерах под ОС QNX.
- X Window System включает в себя Motif-расширения для работы в реальном масштабе времени, оптимизированный Х-протокол и сотни встроенных в пакет Х-утилит. Данный комплект доступен пользователю в виде широкого разнообразия разработок третьих производителей.
- QNX Windows - это "разумная" оконная система, предоставляющая пользователю широкие возможности визуальной разработки приложений с гораздо меньшими требованиями к системе, нежели Х. Визуально QNX Windows весьма схожа с многом знакомой визуальной средой Windows 95.
Photon Application Builder (PhABTM) - это мощный визуальный инструмент разработки для Photon microGUI. PhAB значительно уменьшает время разработки путем высокой степени визуализации. После окончания процесса разработки PhAB генерирует С-код для всего интерфейса в целом, и если сам интерфейс не меняется, то код не претерпевает никаких изменений в процессе дальнейшей работы. С использованием PhAB вы можете создавать законченные прототипы приложений, не опуская руки на клавиатуру, добавлять контекстно-зависимый Help, подключать HTML-страницы и переводить язык вашего интерфейса практически на любой язык мира.
Трансляция системы Photon microGUI (Photon relay). Photon имеет возможность отображения текущего GUI на любой удаленной машине в сети, независимо от платформы (Windows 95/NT, X) при использовании практически любого протокола связи (TCP/IP, SLIP/PPP), обычного модема или последовательного порта. Результат этой особенности - однажды разработанный GUI вашей системы вы можете запускать с различного оборудования, различных программных платформ и т.д. без каких-либо доработок или создания специализированных версий.
Внутренние средства разработки включают в себя общеизвестные компиляторы Watcom ANSI C/C++, полноэкранный debugger, profiler, полную эмуляцию 80х87 и более 50 ANSI, POSIX, UNIX и исконно QNX-процедур. Помимо Watcom C/C++ существует еще большое количество пакетов разработки, включающих в себя настраиваемые пользователем средства (браузеры, клиенты E-mail и т.д.) с исходными текстами, сотни утилит, драйверов, пакеты поддержки специфического оборудования и полный набор средств для разработки приложений под ОС QNX.
В качестве некоторого итога посмотрим на операционную систему QNX с точки зрения пользователя. Визуально ОС QNX представляет многооконную систему, внешне похожую на хорошо знакомую всем Windows 95. При запуске система не "задает никаких лишних вопросов", за исключением выбора системы при запуске, т.е. QNX позволяет устанавливать на одном винчестере несколько операционных систем. После выбора системы дальнейшая загрузка проходит очень быстро и без какого-либо участия пользователя. Процесс установки самой системы протекает также без сложностей и занимает очень мало времени. Добавление нового устройства в систему не доставляет никаких хлопот пользователю: система известит о появлении нового устройства и попросит установить драйвер производителя. После этого произойдет перенастройка системы, причем никакого вреда системе не будет нанесено. С точки зрения сетевых возможностей и многозадачности ОС QNX сравнима, а по многим параметрам даже и превосходит знаменитую Linux.
Предмет | Значение |
Переключение между задачами | 2.6 msec |
Задержка обработки прерывания | 4.4 msec |
Disk I/O | 7.3 Mb/sec |
Serial port I/O | 115 Kbaud |
Network traffic | 7.4 Mb/sec |
Измерения проводились на следующем оборудовании:
- 100 MHz Pentium процессор;
- Adaptec 2940 Wide SCSI контроллер;
- IBM DFHSS4W 4Gb винчестер;
- Digital 21040 Fast Ethernet сетевой адаптер.
Валентин БОРИС,
"SystemSoft"
тел. 227-27-82
Горячие темы