====== QNX ====== {{workroom:os:300px-qnx621about2.png }} QNX — коммерческая POSIX-совместимая операционная система реального времени, предназначенная преимущественно для встраиваемых систем. Считается одной из лучших реализаций концепции микроядерных операционных систем. ===== Описание ===== Как микроядерная операционная система, QNX основана на идее работы основной части своих компонентов, как небольших задач, называемых сервисами. Это отличает её от традиционных монолитных ядер, в которых ядро операционной системы — одна большая программа, состоящая из большого количества «частей», каждая со своими особенностями. Использование микроядра в QNX позволяет пользователям (разработчикам) отключить любую ненужную им функциональность, не изменяя ядро. Вместо этого, можно просто не запускать определённый процесс. Система достаточно небольшая, чтобы в минимальной комплектации уместиться на одну дискету, вместе с этим она считается очень быстрой и должным образом «законченной» (практически не содержащей ошибок). QNX Neutrino, выпущенная в 2001 году, перенесена на многие платформы, и сейчас способна работать практически на любом современном процессоре, используемом на рынке встраиваемых систем. Среди этих платформ присутствуют семейства x86, MIPS, PowerPC, а также специализированные семейства процессоров, такие, как SH-4, ARM, StrongARM и xScale. {{workroom:os:bigpvwh4v.jpg?512}} ===== История ===== В 1980 году студенты канадского Университета Ватерлоо Гордон Белл и Дэн Додж закончили изучение базового курса по разработке операционных систем, в ходе которого они создали основу ядра, способного работать в реальном времени. Разработчики были убеждены, что в их продукте была коммерческая потребность, и переехали в Канаду в штате Онтарио (город высоких технологий, иногда это место называют северной Силиконовой долиной Канады) и основали компанию Quantum Software Systems. В 1982 году была выпущена первая версия QNX, работающая на платформе Intel 8088. Одно из первых применений QNX, получивших широкое распространение не относилось ко встраиваемым системам, она была выбрана для собственного компьютерного проекта Министерства Образования Онтарио, Unisys ICON. В те годы QNX использовалось в основном только для «больших» проектов, так как ядро, имеющее размер 44 килобайта, было слишком большим, чтобы работать на однокристальных чипах того времени. В середине 80-х годов была выпущена QNX2. Система получила завидную репутацию за надёжность, и получила широкое распространение для управления промышленными машинами. QNX2 и сейчас иногда применяется во многих ответственных системах. В середине 1990-х в Quantum поняли, что на рынке быстро завоёвывает популярность POSIX, и решили переписать ядро, чтобы оно было более совместимым на низком уровне. Так появилась QNX4. Она была доступна со встраиваемой графической подсистемой, названной Photon microGUI и портированной под QNX версией X Window system. Перенесение программ в QNX4 из операционных систем основанных на Unix стало намного проще, также были убраны многие из «причуд» более ранних версий. Также в начале 90-х компания была переименована в QNX Software Systems, чтобы избежать путаницы с другими компаниями, в первую очередь с производителем жёстких дисков, имеющим такое же имя. 27 октября 2004 года QSS была куплена компанией Harman , весьма далекой от информационных технологий вообще и ОСРВ в частности. В результате QSS превратилась из независимого разработчика и поставщика решений для широкого спектра применений в отдел ИТ компании Harman. После 2004 года интерес в мире к QNX начал угасать. QNX cохранила популярность в основном в России и СНГ, благодаря неимоверным усилиям дистрибьюторов, а так же в Германии, по той же причине, а также благодаря агрессивной рекламе. {{workroom:os:wr_b.png?400}} ===== Достоинства QNX ===== QNX построена на базе микроядра и межпроцессного обмена сообщениями (что отличает ее от систем, основанных на макроядре, например, Windows 9х, Linux). Система базируется на хорошо проработанной теории, вследствие чего - предсказуема. За счет такой архитектуры все, что работает на локальном процессоре, работает и на удаленном. Несколько компьютеров, соединенных в QNX-сеть, могут быть задействованы для выполнения единого вычислительного процесса (в смысле "процесса операционной системы"). Ни в одной ОС мы не встречали такой степени "сетевой прозрачности". В частности, таким образом обеспечивается доступ к любой системной информации на соседних узлах (вплоть до контекста каждого процесса), прямой доступ к удаленным устройствам (начиная с накопителей и заканчивая COM-портами, PCI-шиной и оперативной памятью). Драйверы устройств (и, что особенно важно, псевдоустройств, которые могут быть всем, чем угодно, например, оконной подсистемой со своим специфическим поведением) подгружаются и выгружаются динамически, гарантированно не нарушая работоспособности ядра (любой, кому доводилось перекомпилировать ядро Linux для добавления нового драйвера, оценит это по достоинству). Система удовлетворяет требованиям "жесткого" реального времени. Это -- основная отличительная особенность QNX от своих собратьев "псевдореального" времени или так называемого "мягкого" реального времени, например realtime-надстроек для Windows NT. QNX позиционируется как RT Linux (а это самые высокие требования к системам реального времени, заявленные на сегодняшний день), хотя не является Linux-системой и по многим параметрам превосходит RT-надстройки для Linux за счет архитектурных особенностей и многолетних исследований в этой области. На базе QNX создавались настолько автономные системы, что конечный пользователь узнавал о типе ОС лишь спустя десяток лет после ввода в эксплуатацию при выходе из строя аппаратных средств. Если Linux -- система с полностью открытым исходным кодом, а Windows -- полная противоположность, то QNX занимает в этом контексте некоторое промежуточное положение. Все, что портировано из мира Open Source, естественно, открыто. Многие составные части системы уже либо открыты, либо подробно описаны QSS в примерах и справочной системе. В дальнейшем компания обещает последовательно обнародовать код почти всех компонентов ОС, за исключением микроядра. QNX способна мирно сосуществовать на диске компьютера практически со всеми современными ОС. Один из предлагаемых способов установки -- прямо "поверх" файловой системы FAT32, вся инсталляция занимает не более 10 минут. QNX работает практически со всеми распространенными процессорными архитектурами: MIPS, PowerPC, Hitachi CH4, Intel StrongARM, x86 (для релиза RTP 6.1.0, с каждой новой версией перечень расширяется). В поставку системы входят средства кросс-разработки, позволяющие проектировать и создавать ПО для всех поддерживаемых платформ. Начиная с версии 6.2, QNX будет поставляться с набором установочных файлов для карманных компьютеров iPAQ на базе процессора StrongARM. Система прекрасно работает в многопроцессорных SMP-архитектурах, при этом, что не всегда характерно для SMP, с увеличением количества процессоров в системе наблюдается рост производительности, близкий к линейному (следствие высокой "гранулярности" потоков). ===== И недостатки ===== Существует мнение, что для QNX предлагается мало программного обеспечения. Прежде это действительно имело место, поскольку ОС развивалась достаточно "автономно". Однако в QNX 6 многократно упрощен перенос ПО из Unix. Сегодня доступны: средства разработки практически для все языков от ассемблера до Java и Tcl/Tk, в том числе встроенный генератор приложений Photon Application Builder и CodeForge. С версии 6.2 начнет поставляться Eclipse IDE с расширениями C/C++; текстовые редакторы и процессоры: весь набор традиционных Unix-программ и даже популярный AbiWord; СУБД: IBM DB2, Berkeley DB, MySQL, PostgreSQL, Linter, Empress; сетевые средства: NFS, SMB, Squid, а также большинство сервисов, агентов и клиентов из мира Unix; Web-броузеры: Voyager (встроенный), Opera, Mozilla, вся линейка консольных броузеров Unix. Еще одно часто высказываемое опасение: "по QNX слишком мало литературы". Однако состояние дел не столь безнадежное и, более того, постепенно улучшается. Прежде всего, в составе QNX есть неплохая справочная система по настройке ОС и API разработчика. Большое количество справочных и информационных материалов находится на сайтах QSS ([[www.qnx.com]] и [[support. qnx.com]]), по адресу [[qdn.qnx.com/support/bok/]] располагается довольно обширная база знаний, а на Usenet-сервере [[inn.qnx.com]] функционирует несколько десятков телеконференций, в которых общаются тысячи пользователей и разработчиков. Также по QNX существует несколько книг, написанных ее создателями, одна из них недавно переведена на русский язык. Спектр поддерживаемого оборудования пока существенно уже, чем, скажем, у Windows или Linux. При использовании относительно стандартного (не супернового) аппаратного обеспечения проблем, скорее всего, не возникнет. В "экзотических" случаях (аппаратный RAID или изощренная сетевая плата) -- увы. Тем более что если уж QNX не хочет на "этом" работать, то переубедить ее вряд ли удастся. Но, несмотря на такую капризность, QNX, например, может использоваться даже в "наладонниках" iPAQ. Ну и, пожалуй, самое существенное. Все, сказанное выше относительно свободного распространения, касается только некоммерческого использования. Стоимость же коммерческой лицензии на QNX лежит в диапазоне от 300 долларов до 6 тысяч за одно рабочее место, в зависимости от комплектации системы, количества приобретаемых лицензий и других факторов. ===== Примеры применения QNX в России ===== Как правило, это системы в промышленности, которые управляют довольно сложным и ответственным производством с очень высокими требованиями по времени реакции на аварийные ситуации, требованиями к надёжности и непрерывности управления. - Наиболее известным применением QNX в России является **система автоматизированного контроля и управления разводкой Троицкого моста через Неву в Санкт-Петербурге**, реализованная ЗАО НПП «Промтрансавтоматика». Эта система эксплуатируется с апреля 2002 года. После реконструкции мост ни разу не выбился из графика разводки.\\ \ - **Cистема управления северными магистральными нефтепроводами**, расположенная в г. Ухта. Система включает в себя шесть операторских мест с горячим резервированием, которые выполняют управление одновременно по четырём направлениям магистрального нефтепровода на участке Ярославль-Ухта (протяжённость 1500 км)\\ \ - Система «Сириус-QNX», предназначенная для оперативного диспетчерского контроля и управления **технологическим процессом перекачки нефти** по участкам восьми магистральных нефтепроводов ОАО «Сибнефтепровод».\\ \ - **Система автоматизации станов холодной прокатки** на базе QNX внедрена на 5-ти клетевом стане Магнитогорского металлургического комбината. **Системы управления металлургическим производством** на базе QNX работают в Норильске, Нижнем Тагиле, Электростали.\\ \ - **Система по закачке эфиров целлюлозы** для Ромашкинского месторождения (г. Альметьевск)\\ \ - **Системы управления движением судов в портах** (Санкт-Петербург, Мурманск, Владивосток, Мариуполь) и по Керченскому проливу (порт Кавказ)\\ \ - **Информационно-управляющая система компрессорного цеха газоперекачивающего предприятия**, внедряется на объектах предприятия ООО «Волготрансгаз» ОАО «Газпром». В настоящее время система внедрена в Моркинском ЛПУ МГ, Вятском ЛПУ МГ, Вязниковском ЛПУ МГ и Владимирском ЛПУ МГ, КС «Вязники».\\ \ - «ОАО Салаватнефтеоргсинтез», АСУ ТП** производством бензола** на базе SCADA Realflex. Система управления оперирует более чем 16000 физических каналов. - ДО СМУ-4 «Мосметрострой» г. Москва. АСУ **водооткачки и дымоудаления Гагаринского железнодорожного тоннеля** на базе SCADA СТАТУС-4. Гагаринский тоннель является самым длинным в Европе железнодорожным тоннелем в черте города.\\ \ - **Вычислительные комплексы для решения задач противоаварийной автоматики и противоаварийного управления** различных уровней в энергетических системах производства ЗАО «Институт автоматизации энергетических систем» (г. Новосибирск). В настоящее время в эксплуатации находятся УВК АПНУ Таймырской и Норильской энергосистем, УВК АДВ западной и центральной части ОЭС Сибири.\\ \ - **Система автоматизации диагностирования и контроля**, удаленного мониторинга устройств СЦБ (АДК-СЦБ) на базе QNX Neutrino внедрена на более, чем 177 станциях и 1173 км АБТЦ шести железных дорог ОАО «РЖД». Система автоматизации сортировочной станции (ГАЦ-МП) — 5 сортировочных станций в различных регионах. Разработчик: ООО НПП «Югпромавтоматизация», г. Ростов-на-Дону. ===== Конкуренты ===== Наиболее крупными конкурентами QNX являются [[Windows CE]], VxWorks, OS-9, а так же некоторые варианты ОС на базе [[Linux]]. [[http://itc.ua/print.phtml?ID=9884|ОС QNX сегодня ]]\\ [[http://qnx.org.ru/|Софт для QNX]]\\ [[http://ru.wikipedia.org/wiki/%D0%9E%D0%BF%D0%B5%D1%80%D0%B0%D1%86%D0%B8%D0%BE%D0%BD%D0%BD%D0%B0%D1%8F_%D1%81%D0%B8%D1%81%D1%82%D0%B5%D0%BC%D0%B0_%D1%80%D0%B5%D0%B0%D0%BB%D1%8C%D0%BD%D0%BE%D0%B3%D0%BE_%D0%B2%D1%80%D0%B5%D0%BC%D0%B5%D0%BD%D0%B8|ОС Реального имени]]