SWD Software Ltd. - официальный дистрибьютор QNX на территории России и стран бывшего СССР Операционная система реального времени QNX
Инструменты для создания надёжных встраиваемых систем и
интеллектуальных устройств любой сложности
QNX Software Systems - разработчик встраиваемой операционной системы QNX
Информационные брошюры
Статьи и публикации
Обзоры
Операционные системы
Графические интерфейсы
Средства разработки
Прикладные системы на базе ОС QNX
Разное
Конкурсные статьи
Техническая литература
Материалы конференций QNX-Россия
Полезные ссылки
Блог QNX
Главная страница > Материалы > Статьи и публикации > Операционные системы > Операционная система завтрашнего дня существует уже сегодня Сделать страницу стартовой Послать ссылку коллеге Версия для печати

Операционная система завтрашнего дня существует уже сегодня

Введение
OS QNX 4.2 - реальность, опережающая фантазию
Три операционных системы в одной
Концепции
Сеть QNX
Все для программистов
Языки программирования
Графические среды
Коммуникации, DOS, базы данных
Недостатки
QNX-статистика
Почем QNX для народа
А кого это вообще интересует
Заключение
Что почитать

ВВЕДЕНИЕ

Выбор 32-х разрядной операционной системы для платформы INTEL еще не сделан. Если судить по фразеологии новостей, то в мире 32-х разрядных технологий идет война: "OS/2 против Windows", "Производители UNIX объединяются перед лицом Windows NT" и т.д. Конечные пользователи ожидают победителя с наибольшим числом готовых приложений. Это означает, что разработчики приложений должны заранее предугадать победителя.

Безоговорочной гегемонии одной операционной системы ожидать не следует. Скорее всего, в результате «войны» произойдет перераздел рынка 32-х разрядных OS по областям применения. Можно выделить две области : офисно-деловую и системно-научно-промышленную. В первом случае важны наличие офисных инструментов (карандашей - редакторов, калькуляторов - таблиц, справочников - баз данных), возможность передачи документа от одного инструмента к другому и своевременная реакция на желания пользователя. Расставаться с Windows 3.1, в этом случае, было бы преждевременно. Во втором случае пользователь постоянно работает в среде одной какой-то программы,или программа функционирует сама по себе, без пользователя. Программное обеспечение для банков, управления технологическими процессами и роботами, серверов всего и вся занимает умы программистов ничуть не меньше, чем благоустройство электронных офисных столов. Если вы нуждаетесь в полноценной 32-х разрядной мультизадачной операционной системе, то у вас есть проблема - проблема выбора.

Программист стремится получить операционную систему с максимумом возможностей и средств разработки. Потребитель желает получить продукт с наименьшими требованиями к ресурсам при максимальной производительности. Антагонизм почти что классовый. Вряд ли вы убедите потребителя, что 486-33/8/340 мало. А ведь при этой конфигурации любая 32-х разрядная OS с громким именем будет только «дышать», для вашей программы ни места, ни времени не найдется. Здравый инженерный смысл подсказывает, что дело не в количестве мегабайтов, а в принципе. Наши предки, окончательно не удовлетворясь эффективностью лошадиной тяги, перестали впрягать большее число лошадей и больше их кормить - они придумали новую концепцию. Паровой двигатель.

OS QNX 4.2 - РЕАЛЬНОСТЬ, ОПЕРЕЖАЮЩАЯ ФАНТАЗИЮ.

Сведения об операционной системе QNX были долгое время разрознены, противоречивы и гипертрофированы, что до сих пор у широкого круга специалистов не сложилось четкого представления о возможностях этой системы. Причины такого явления исторические: продажа OS QNX в Россию была запрещена КОКОМ.

Первая версия OS QNX была создана в начале 80-х годов группой программистов из университета Ватерлоо в Канаде. К тому времени выявились основные недостатки UNIX-систем, и сформировались новые концепции программирования такие как: событийное и объектно-ориентированное программирование. Основная задача, которую ставили перед собой разработчики, состояла в создании UNIX-подобной операционной системы способной работать в реальном времени. Для этого она должна была иметь встроенную поддержку сетей, эффективный механизм обмена данными между процессами, быструю и надежную файловую систему и низкие требования к аппаратным ресурсам, что дало бы возможность успешно функционировать во встраиваемых (embedded) системах и даже помещать операционную систему в ПЗУ. (Имеются ввиду системы типа программируемых логических контроллеров, устройства считывания кредитных карт и т.п.) Получившаяся операционная система прежде всего привлекла внимание разработчиков систем управления. После приведения набора системных вызовов QNX в соответствие со стандартом POSIX, вобравшему все лучшее из UNIX-систем, операционная система QNX стала находить все большее число поклонников.

Что можно сказать о 32-х разрядной, с вытесняющей многозадачностью, многопользовательской, распределенной, масштабируемой операционной системе реального времени, умещающейся в 650 Kb оперативной памяти ?... Не может быть ?! Но она существует.

ТРИ ОПЕРАЦИОННЫХ СИСТЕМЫ В ОДНОЙ.

QNX версии 4.2 представляет собой как бы три операционные системы одновременно. Во-первых, OS соответствующая стандарту POSIX 1003.1,определяющему набор обязательных системных и инструментальных функций, и

стандарту POSIX 1003.2, определяющему набор утилит (ls, mkdir и т.д.). Именно это обстоятельство вызвало резкое увеличение спроса на OS QNX в 1994 году. Во-вторых, распределенная операционная система с высокоэффективным механизмом взаимодействия задач в сети. В третьих, операционная система реального времени, самая используемая в этой области.

OS QNX 4.2 является масштабируемой и содержит сразу два варианта операционной системы: 16-и разрядный для 286-х и 32-х разрядный для 386-х и выше. Варианты совместимы снизу вверх, т.е. 32-х разрядный вариант операционной системы способен выполнять как «родные», так и 16-и разрядные программы.

КОНЦЕПЦИИ.

В основе незаурядных способностей QNX лежит технология микроядра (microkernel technology) и высокоэффективная реализация механизма передачи сообщений (messages passing).

Микроядро имеет размер 10 Kb и является собственной разработкой фирмы QNX Software. Обычно микроядро удачно сравнивают с RISC-процессорами. Функции, которые можно обеспечить вне микроядра, должны

быть реализованы вне микроядра. Микроядро QNX обслуживает всего 14 запросов и состоит из трех блоков: блока взаимодействия между процессами (interprocess communication - IPC), диспетчера процессов (Scheduler) и переадресатора прерываний (hardware interrupt redirector). [Рис.1] Все остальные, и служебные и пользовательские задачи, являются просто процессами и конкурируют за право получения процессорного времени в соответствии с со своими приоритетами и дисциплинами диспетчеризации. Согласно POSIX 1003.4 в OS QNX процесс может иметь уровень приоритета от 1 до 32 и одну из трех дисциплин диспетчеризации: FIFO, «карусель» и с повышением приоритета.

Для упрощения (а значит ускорения) администрирования доступа и управления ресурсами в OS QNX реализована концепция менеджеров. [Рис.2] В стандартной поставке вы найдете 4 основных менеджера ресурсов:

Proc - процессов,

Fsys - файловой системы POSIX,

Net - сети,

Dev - устройств.

Могут оказаться не бесполезны менеджер файловой системы DOS (Dosfsys), менеджер файловой системы для CD-ROM (Iso9660fsys) и менеджер накопителей без файловой системы (Blockfsys). На данный момент QNX работает с 8 типами файловых систем. Tiny Filesystem, Flash Filesystem и Execute-in-Place Filesystem предназначены для встраиваемых систем, а Network File System (NFS) в комментариях не нуждается.

Такое количество менеджеров дает представление о простоте расширения возможностей операционной системы, построенной на микроядре. Менеджер является процессом и отлаживать его не сложней чем любой другой процесс. При возникновении нового типа устройств достаточно создать новый менеджер. Ярким примером сказанного служит менеджер PCMCIA-устройств.

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

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

Более удобным является метод передачи сообщений.

Рассмотрим реализацию классической архитектуры клиент-сервер на базе этого метода в OS QNX. [Рис.3] Пусть у нас есть сервер запросов и клиент. При запуске сервер сообщает операционной системе о присвоении себе имени qnx_name_attach(«I'm Server»). И переходит в состояние ожидания: client_process_id=Receive(server_receive_buffer_ptr). После чего блокируется операционной системой (не имеет управления!), а не находится в цикле проверки семафора или флага, транжиря процессорное время. Клиент после запуска проверяет наличие сервера

server_process_id=qnx_name_locate («I'm Server»), формирует запрос и отправляет его Send(server_process_id,client_send_buffer_ptr, client_replay_buffer_ptr). Процесс-клиент блокируется до получения ответа. Операционная система сразу же разблокирует процесс-сервер. Выполнив запрос, сервер вернет результат процессу-клиенту через системный вызов Replay(client_process_id, server_replay_buffer_ptr). Во время этой операции выполнялась только одна(!) нить управления, что в общем случае ведет к уменьшению активных процессов в операционной системе и, как следствие, увеличению доли процессорного времени для активных процессов.

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

Процессы могут также записывать сообщения прямо в специально объявленные области контекста своих абонентов.

В некоторых случаях, когда блокировка передающего процесса нежелательна,применяют механизм proxy (посредник). Proxy необходим в следующих случаях: во-первых, когда процесс хочет уведомить другие процессы о наступлении некоторого события, но не имеет время на блокировки; во-вторых, когда процесс хочет передать данные (механизм передачи данных произвольный), но не нуждается в подтверждении об их приеме; в-третьих когда обработчик прерываний сообщает процессу, что данные доступны. Proxy представляет из себя псевдопроцесс и OS может «складировать» на нем до 65535 сообщений. Вы можете создать несколько proxy, ассоциировать их с открытыми устройствами или таймерами и ждать событий.

Взаимодействие пользовательских процессов-клиентов с системными менеджерами-серверами ресурсов происходит по описанным выше схемам. Например, операция чтения файла - это запрос менеджера файловой системы.

СЕТЬ QNX .

Особых лестных слов заслуживает возможность создания распределенных систем на базе OS QNX. Под термином «распределенная система» обычно понимают набор компьютеров, на каждом из которых установлена копия операционной системы и соединенных между собой сетью. Но для пользователя эта система представляется как один большой компьютер. Ему доступны все устройства и ресурсы, доступ к которым ему разрешил администратор. Мало того, для программиста также безразлично на каких узлах сети будут работать его взаимодействующие между собой задачи: все на одном, все на разных или в другой комбинации. Процессы по-прежнему будут связываться через механизм Send-Receive-Replay или proxy, а операционная система сама разберется кто и где находится. QNX целиком берет на себя обеспечение сетевых коммуникаций, что дает возможность сосредоточить внимание программистов на прикладных, а не системных аспектах программ. Также вы имеете возможность оптимально использовать все компьютеры в сети.

Для увеличения пропускной способности сети OS QNX может работать через три сетевых канала одновременно. Сетевая технология OS QNX носит название FLEET:

Fault-tolerant - если одна физическая сеть вышла из строя QNX перейдет на использование других автоматически;

Load-balancing - при загруженности одного физического канала будет выбираться свободный;

Efficient - сетевые драйверы QNX полностью используют все аппаратные возможности сетевого оборудования для увеличения пропускной способности;

Extensible - для поддержки новых сетей требуются только новые драйверы;

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

Набор из трех даже недорогих сетевых плат NE2000 превосходит производительность шины ISA. Обсуждение областей применения систем с тремя стомегабитными платами заведет нас в райские кущи фантазии о таких «бесполезных» вещах как полноформатное видео в реальном масштабе времени.

QNX Software помнит и о рядовых пользователях и программистах, необремененных избытком финансов. Драйвер Net.fd (сетевой драйвер «на дескрипторе файла») позволяет работать сети QNX через любые устройства, используя их драйверы. Таким образом без лишних хлопот в QNX реализована технология удаленных коммуникаций. Через модем вы можете подсоединиться как терминал или как узел сети QNX.

Как мы видим, на базе системных средств QNX можно создавать программное обеспечение с любой необходимой архитектурой: серверы ресурсов, клиент-серверы, распределенные объекты и т.д.

Не надо забывать, что QNX прежде всего операционная система реального времени. Время реакции на аппаратные прерывания и время, затрачиваемое операционной системой на переключение между процессами являются главными характеристиками операционных систем и наиважнейшими характеристиками для систем сбора данных и управления. По этим показателям QNX по праву считается лидером. [Рис. 4] Вы можете провести испытания сами по проведенному листингу. Лозунг фирмы QNX Software «We work in real time» вовсе не рекламный трюк. Более ста фирм из списка «Fortune 500» такие как: Du Pont, Kodak, Motorola, General Motors и др., используют QNX в системах коммуникаций, управления роботами и технологическими процессами.

ВСЕ ДЛЯ ПРОГРАММИСТОВ.

Администрирование OS QNX по сложности сравнимо с администрированием MS DOS последних версий, а обилие средств разработки выгодно отличает эту операционную систему от других систем реального времени и некоторых реализаций UNIX.

ЯЗЫКИ ПРОГРАММИРОВАНИЯ.

Язык C является неотъемлемой частью POSIX систем. Самым известным из компиляторов С существующих для OS QNX, является продукция фирмы Watcom. Watcom C и С++ в представлении не нуждаются. Версия 9.51 генерирует как 16-и битные, так и 32-х битные коды с оптимизацией от 286-го до Pentium процессоров. Компиляторы Watcom известны беспримерным уровнем оптимизации по скорости выполнения и компактности исполняемых модулей. За оптимизацию приходится расплачиваться временем компиляции, но при создании больших проектов в OS QNX можно воспользоваться способностью утилиты make вести компиляцию разных частей проекта на нескольких узлах сети одновременно. Полноэкранный отладчик Watcom Video и Execution Profiler облегчают отладку программ.

ГРАФИЧЕСКИЕ СРЕДЫ.

Если следовать хронологической последовательности, то первая система - QNX Windows. Это полноценная графическая среда реализующая стандарт Open Look фирмы SUN Microsystems и имеющая все средства для построения интерфейсов и разнообразные утилиты. QNX Windows способна работать на Intel 286 при минимальных затратах памяти (2 Mb).

Неумолимая в своей приверженности к стандартам, фирма QNX Software целиком перенесла X-Windows System X11R5 в свою операционную систему. Благодаря оптимизирующему компилятору Watcom C размер исполняемого кода такой простой утилиты как Xlogo уменьшился с 300 Кб до 30 Кб. Фирма QNX Software уделяет много внимания удобству переноса исходных текстов программ их UNIX в QNX, поэтому перенос утилиты Xv, состоящей из 50000 строк, занял один день. Производительность X-Windows под OS QNX составила для графических карт на шине VESA LocalBus: VGA - 20 000, ATI Mach32 - 115 000, S3/928 - 155 000 (показатель Xstones утилиты X11perf).

И это еще не все. В настоящее время проходит бета-тестирование распределенной графической среды Photon, построенной по технологии микроядра и соответствующей стандарту Motif. Photon занимает 160 Кб оперативной памяти (это не опечатка). Это козырная карта как на уже давно освоенном рынке встраиваемых (embedded) систем, так и на новых (для мультизадачных OS) рынках переносных компьютеров и PDA (Personal Digital Assistent).

Для облегчения построения приложений для QNX Windows, X-Windows и Photon, QNX Software предлагает пакет AppBuilder. AppBuilder не только помогает конструировать элементы интерфейса (окна, диалоги, меню), но и генерирует make-файлы, header-файлы и тексты самих программ.

КОММУНИКАЦИИ, DOS, БАЗЫ ДАННЫХ.

 

Такого количества драйверов для плат сбора данных и промышленных микроконтроллеров вы не найдете ни в одной операционной системе кроме QNX.

Коммуникации - еще одна из сфер, где способности OS QNX находятся вне конкуренции. Для QNX существуют реализации всех известных протоколов и технологий (IPX, Netbios, TCP/IP, X.25, SMB, SNMP, RPC, NFS, SLIP, Frame Relay, ISDN), предлагаемые QNX Software и другими фирмами.

В OS QNX сделано все чтобы обслужить «старушку» DOS. В состав операционной системы входит менеджер файловой системы DOS, а если вам не хватает этого, то вы можете приобрети эмулятор PC DOS - Rundos. Под Rundos могут выполняться программы DOS и Windows 3.1 в стандартном режиме.

Ежеквартальный журнал для пользователей QNXNews верстается в Venture Publisher 4.1 и CorelDRAW 4.1 под Rundos. Ряд программных пакетов различных фирм позволяют эксплуатировать компьютер с QNX как файл-север для станций DOS, QNX-станции использовать сервер Netware и даже делать DOS-станцию узлом QNX-сети.

Отсутствие тяжеловесов мира баз данных, скорее всего, временное явление. Высокопроизводительная файловая система,распределенность и встроенная поддержка архитектуры клиент-север делают OS QNX очень удобной платформой для баз данных. Для QNX существует десяток баз данных и среди них наиболее известны Watcom SQL, Empress и FairCom.

НЕДОСТАТКИ.

Отсутствие виртуальной памяти может доставить неудобства, но виртуальная память у системы РЕАЛЬНОГО ВРЕМЕНИ, это как дозаправка ракеты в полете. Для некоторых приложений, использующих QNX как универсальную OS, этот механизм будет нелишним. Стараясь создать все условия для переноса все большего числа UNIX-программ в среду QNX, QNX Software намерена в ближайшее время предоставить механизм виртуальной памяти.

Ни о какой многопроцессорности не было и речи пока фирма Intel не стандартизировала подобные платформы. Многопроцессорный вариант OS QNX не заставит себя долго ждать, этому должна способствовать технология микроядра.

OS QNX работает только на процессорах Intel и его клонах. По неоднократным заявлениям представителей QNX Software, операционная система QNX может быть перенесена только на тот процессор, который докажет свою коммерческую привлекательность.

Словом, придерживаясь ультра-прогрессивных взглядов на внутреннюю жизнь операционных систем, во «внешней политике» QNX Software проводит линию здорового консерватизма.

QNX-СТАТИСТИКА.

Платформа : ISA, EISA, MCA, VLB, PCI, PC/104, STD, STD32, VME

Процессор : 386/486/Pentium - 32-x битная версия, 286 - 16-ти битная версия;

Память :
640 Kb - система периода выполнения;
2 Mb - система разработки;

Дисковое пространство:
нет - для станций с сетевой загрузкой;
5 Mb - OS и утилиты +4 Mb - система разработки

Сетевые стандарты :
Arcnet, TCNS, Ethernet, FDDI

Графические стандарты :
OPEN Look, Motif

ПОЧЕМ QNX ДЛЯ НАРОДА.

Самый волнующий вопрос: а сколько это стоит? Ценовая политика QNX Software очень интересна и распространяется почти на все программные продукты для OS QNX. Вы покупаете один раз в жизни дистрибутив операционной системы и с ним стартовую лицензию за 1590 DM. Далее, при необходимости, можно докупать лицензии пакетами по 4 за 1390 DM. Что составит стоимость OS QNX, при покупке 5 узлов, 596 DM на узел сети. При покупке 9 узлов - 485 DM на узел и т.д. И учтите, что связать большее число станций, чем у вас есть лицензий, OS QNX вам не разрешит. QNX можно покупать по частям: если вас не интересуют какие-то модули операционной системы (например набор утилит), то вы можете их не приобретать. Цены для учебных заведений минимальны и комментировать их не имеет смысла: 300 DM начальная лицензия и 50 DM пакет из 4-х лицензий.

Еще одна проблема для российского пользователя - где получить квалифицированную консультацию. Официальным дистрибьютером OS QNX на территории России является российский филиал немецкой фирмы «SW Datentechnik»- «SWD Real Time Systems» [т. (812) 293-02-60], находящийся в г.Санкт-Петербурге. Сотрудники этой фирмы, наряду с аспространением OS QNX и программным обеспечением для нее, ведут собственные разработки и всегда открыты для обмена информацией. Проводимая ежегодно в Санкт-Петербурге конференция пользователей OS QNX с участием представителей QNX Software Systems и «SW Datentechnik» на самом высоком уровне представляется прекрасным местом для установления личных контактов.

А КОГО ЭТО ВООБЩЕ ИНТЕРЕСУЕТ?

Во-первых, сверхтребовательных к характеристикам операционных систем промышленность, банки, связисты и военные. Во-вторых, учитывая заинтересованность первой группы и ее финансовые возможности, а также долгосрочные перспективы рынка PDA, OS QNX должна заинтересовать фирмы-производители инструментального и системного программного обеспечения. В-третьих, учебные заведения, которые могут использовать OS QNX не только в качестве прекрасного учебного материала по теории операционных систем, но и создавать на базе лабораторных, практических, курсовых и дипломных работ конкурентноспособные коммерческие продукты.

ЗАКЛЮЧЕНИЕ.

Естественно невозможно подробно рассказать о всех аспектах такой разносторонней операционной системы как QNX, но хотелось бы надеется, что эта публикация может кому-то найти решение, неразрешимых до этого, проблем. Быстро растущий интерес во всем мире подтверждает, что удачная концепция и реализация делают OS QNX 4.2 уникальной на рынке 32-х разрядных операционных систем по таким критериям как скорость, масштабируемость, распределенность и соответствие стандартам.

ЧТО ПОЧИТАТЬ.

  1. Монитор/1.94. Операционная система QNX. А.Кондратюк, С.Ющенко, Л.Агафонов.
  2. Монитор/6.94. Итоги конференции «Пользователи операционной системы QNX-94».
  3. Монитор/5.94. Знакомство с Watcom C для QNX. К.Макарьев А.Кондратюк.
  4. Открытые системы/Весна 1993. Распределенные операционные системы к 1992 году: чему мы успели научиться? Эндрю С. Таненбаум.
  5. Byte/October 1994. QNX Forges Ahead. Peter D. Varhol.

Пустовалов Д.И.
Hard'n'Soft, 10/95

Рассказать друзьям:

     Рейтинг@Mail.ru