(fwd) fucking article -- read it!

Andrey Gerzhov (kittle@freeland.kiev.ua)
Sat, 16 Oct 1999 21:13:18 +0300 (EEST)

-- forwarded message --
Path: freeland.kiev.ua!routki.ki.yurteh.net!carrier.kiev.ua!srcc!Gamma.RU!ddt.demos.su!not-for-mail
From: sergey s prozhogin <whiter@swd.ru>
Newsgroups: fido7.ru.qnx
Subject: fucking article -- read it!
Date: 14 Oct 1999 11:08:23 +0400
Organization: SWD RTS
Lines: 246
Sender: fido7@ddt.demos.su
Approved: <gateway@fido7.ru>
Message-ID: <Voyager.991014105605.862D@whiter>
Reply-To: whiter@swd.ru
NNTP-Posting-Host: ddt.demos.su
Mime-Version: 1.0
Content-Type: TEXT/PLAIN; CHARSET=KOI8-R
Content-Transfer-Encoding: 8bit
X-Trace: ddt.demos.su 939884904 1754 194.87.13.37 (14 Oct 1999 07:08:24 GMT)
X-Complaints-To: gatekeeper@fido7.ru
NNTP-Posting-Date: 14 Oct 1999 07:08:24 GMT
X-BeforeModerator-Path: not-for-mail
X-BeforeModerator-NNTP-Posting-Host: ip-776.dialup.cl.spb.ru
X-BeforeModerator-X-Trace: ns.iite.ru 939884793 3742 212.46.197.62 (14 Oct 1999 07:06:33 GMT)
X-BeforeModerator-X-Complaints-To: usenet@news.orbita.ru
X-BeforeModerator-NNTP-Posting-Date: 14 Oct 1999 07:06:33 GMT
X-Mailer: Voyager Email for QNX (vmail v2.00)
X-MIME-Autoconverted: from BASE64 to 8bit by ddt.demos.su id LAA01667
Xref: freeland.kiev.ua fido7.ru.qnx:1401

     В мире элементарных частиц

     Основа основ QNX -- микроядро Neutrino. В отличие от большинства "Unix-на-микроядре" систем, Neutrino разработано самой компанией QNX. Этот факт немаловажен, если вспомнить, что
первая ласточка микроядерной архитектуры -- NextStep был построен на микроядре Mach, оставшемся до сих пор претендентом # 1 на применение в передовых ОС. Взрывной новизны в Neutrino, на первый взгляд, нет: минимальный набор жизненно необходимых примитивов
для обеспечения взаимодействия между процессами в системе, низкоуровневая обработка прерываний, управление временными интервалами, выделенными процессам, и порядком их выполнения,
низкоуровневая поддержка сетевых операций. Все это реализовано в
большинстве микроядер, в том числе и попадающих в категорию freeware (например, в совершенно несоответствующем своему
названию Fiasco -- http://os.inf.tu-dresden.de/fiasko/). Однако факт POSIX-совместимости микроядра -- совершенно исключительное
явление и подтверждает тезис о высочайшей живучести концепции Unix -- раз в тесном микроядре "уместилась" пусть частичная реализация POSIX, значит, стандарт действительно хорош.

     Более тонкие отличия наблюдаются,
например, в механизмах межпроцессного
взаимодействия (так называемых IPC --
InterProcess Communication). В QNX появились
некоторые дополнительные возможности
(более точно их можно назвать
расширениями принятых в POSIX
механизмов), отражающие специфику
систем реального времени.

     За пределами микроядра
начинается самое интересное в QNX --
единое пространство процессов. В
отличие от BeOS, например, где над
микроядром надстроены специальные
серверные потоки, представляющие собой
"прослойку" между ресурсами микроядра и
пользовательскими приложениями, QNX не
делает различий между
высокоуровневыми сервисами ОС и
пользовательскими задачами. Можно
сказать, что эти сервисы и задачи почти
равноправны. Соответственно, система
обладает уникальным свойством
расширяемости -- разработчики могут
дополнять функциональные модули "как
бы ядра" достаточно просто и только с
применением ограниченного набора
инструментальных средств, входящих в
поставку системы. На этом уровне
заметна и еще одна отличительная черта
QNX -- общесистемная поддержка механизма
сообщений. Точнее, вся система
представляет собой единое слаженно
действующее устройство для передачи
сообщений и их обработки. Сообщения
лежат и в основе методов синхронизации
процессов и потоков, а так как
производительность систем реального
времени вообще во многом определяется
эффективностью механизмов IPC, по этому
критерию QNX можно считать
непревзойденным лидером: очень
короткие сообщения, принятые в ней,
можно передавать без сколько-нибудь
ощутимых затрат времени.

     Вторая важная, и даже
революционная, микрочастица -- Photon,
также основанная на
специализированном микроядре
графическая подсистема. И здесь
разработчики QNX остались верны идее
совместимости -- большинство вызовов
программного интерфейса (API) Photon очень
похожи на соответствующие функции Xlib и
Motif в X-Window ("Компьютерное Обозрение", # 6,
1999). Такой подход обеспечил как
минимальные размеры исполняемого кода
графической подсистемы (абсолютно, к
слову, недостижимые для X-Window), так и
простоту освоения приемов
программирования опытными
разработчиками ПО из мира Unix и,
соответственно, малую ресурсоемкость
приложений и высокую скорость их
разработки. Более чем работоспособный
Photon занимает ни много, ни мало... 150 KB.
Идеальный размер для размещения пусть
в дешевеющей с каждым днем, но все еще
не позволяющей записывать
многомегабайтных монстров Flash-памяти.
Да, поддерживаемые Photon виджеты (иначе
говоря, примитивы интерфейса), далеки
от эстетического совершенства -- но кто
сказал, что управляющему персоналу,
например, атомной электростанции так
необходимы графические "красоты".
Функциональность, информативность и
удобство разработки ПО в
индустриальных приложениях намного
важнее.

     Серьезная составляющая успеха QNX
-- простота локализации. Учитывая
миниатюрность всей системы, сквозную
поддержку Unicode можно назвать чуть ли не
историческим достижением в мире Unix.
Гигантские собратья QNX, к сожалению, не
могут похвастаться чем-либо подобным --
сказывается необходимость частичной
или полной переработки огромного
количества системных утилит, способных
работать только с ASCII.
     

     Технологические средства

     Так как QNX -- всего лишь "оболочка",
и к тому еще и очень дорогая, наличие
мощных технологических средств
является обязательным условием ее
коммерческого успеха. Поставляемый
самой компанией QNX компилятор языков
C/C++ от фирмы Watcom в особой рекламе не
нуждается -- он отлично известен как
надежный и генерирующий код
инструмент.

     Для быстрой разработки
приложений с графическим
пользовательским интерфейсом
поставляется и мощный генератор
интерфейсов, позволяющий быстро
"набросать" на экране требуемое окно
приложения со всеми необходимыми
виджетами, описать функции-обработчики
инициируемых виджетами событий и
получить исходный текст необходимой
программы на C или C++. Естественно, что QNX
прекрасно работает в сетях TCP/IP
(реализация TCP/IP-стека в этой системе,
по-видимому, не имеет себе равных --
некоторые провайдеры даже вынуждены
принудительно ограничивать полосу
пропускания для QNX-пользователей,
запросто "выедающих" весь канал), и для
разработки сетевых приложений
существует соответствующий набор
инструментальных библиотек.

     Ограниченным в финансовых
возможностях разработчикам многое из
перечисленного инструментария
окажется не по карману. Несколько
успокаивает информация (пусть не из
официальных источников) об успешном
портировании де-факто стандартного и
бесплатного C/C++ компилятора gcc от FSF (Free
Software Foundation -- Фонд Свободного
Программного Обеспечения) и многих
утилит GNU. Естественно, что
кросс-платформенный, генерирующий код
для самых разных целевых процессоров
не может претендовать на роль
полноценного заменителя специально
оптимизированного для QNX Watcom, но для
небольших отечественных разработчиков
его применение на этапе создания
собственного ПО вполне оправдано и
позволяет сэкономить весьма
значительную сумму в самый тяжелый
период становления.
     

     Кому эта QNX нужна?

     Действительно, система, может, и
хороша -- но вот цена... Да и популярность
невысокая. Так кому она у нас нужна?

     Оказывается, есть кому. И при этом
с ПО российской разработки.
Образовавшийся на рынке действительно
высоких технологий вакуум,
первопричиной которого является
"отмирание промышленности как таковой",
поспешили заполнить более агрессивные
разработчики ближайшего соседа.
"Подiлляспирт" из Винницы, например,
располагает развернутой системой
управления технологическими
процессами, обеспечивающей (по отзывам
разработчиков системы) экономию до 5%
энергоносителей. Система работает под
управлением ОС QNX. Даже не зная
экономических выкладок, представить
себе сумму, эквивалентную 5%
сэкономленного газа, электроэнергии и
мазута на таком ресурсоемком
производстве, как спиртовое, вполне
можно. Очевидно, что система себя
оправдывает... На Молдавском
металлургическом заводе QNX успешно
справляется с управлением процессами
непрерывного литья и плавки, в далеком
Сургуте отлично выполняет задачи
управления терминалами нефтяного
промысла, а на своей родине, в Канаде, QNX
является основной ОС в системе
управления атомной энергетикой и
атомными электростанциями (ну не любят
канадцы рисковать). Компания RDI,
специализирующаяся в секторе
производства комплектующих для
автомобилей, использует QNX с 1993 г. для
управления приводами промышленных
роботов. Показатели
производительности, достигнутые в
таком "далеком прошлом" на процессорах
Intel Pentium 133 MHz, впечатляют и сегодня: три
машины при загрузке ЦПУ менее 50%
успевают опрашивать 5 тыс. линий
ввода/вывода 20 раз в секунду и
генерировать управляющие сигналы для
многодвигательных приводов с периодом
около 2 мс!
     

     Хотите попробовать?

     Для того чтобы ознакомиться с QNX,
совсем не обязательно платить много
денег. Точнее, можно их вообще не
платить. Просто обратитесь к сайту
www.qnx.com и загрузите себе
демонстрационную дискету с отлично
работающей ОС, графической оболочкой
Photon, броузером Voyager, микроWEB-сервером,
небольшой подборкой информации о QNX,
простеньким блокнотным редактором и,
при необходимости, с поддержкой PPP (для
успешных путешествий с помощью модема
в Internet). Для установки системы ничего не
требуется, даже накопителя на жестком
диске -- одной 1,44-мегабайтовой дискеты
ей вполне хватает "для жизни". От вашей
машины QNX многого не потребует -- ей
вполне достаточно 80386 с 8 МВ ОЗУ.
Конфигурирование системы абсолютно
примитивно и выполняется посредством
графического интерфейса, так что
останавливаться на нем даже нет смысла.
За дополнительной информацией можно
обратиться опять же к сайту компании QNX
и в конференции comp.os.qnx и fido.
-- end of forwarded message --

-- 
С тем, что не помешает никогда,
                                               Kittle