Из Википедии, бесплатной энциклопедии
Перейти к навигации Перейти к поиску

QNX ( / ˌ к Ju ˌ ɛ п ɛ к ы / или / к Ju п ɪ к с / ) является коммерческим Unix-подобных операционных систем реального времени , направленный в первую очередь на встроенных систем рынка. QNX была одной из первых коммерчески успешных операционных систем на базе микроядра . [ необходима цитата ] По состоянию на 2020 год он используется в различных устройствах, включая автомобили [1] и мобильные телефоны .

Первоначально продукт был разработан в начале 1980-х канадской компанией Quantum Software Systems , позже переименованной в QNX Software Systems . В конечном итоге в 2010 году компания была приобретена BlackBerry Limited [2].

Описание [ править ]

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

Чтобы продемонстрировать возможности и относительно небольшой размер ОС, в конце 1990-х QNX выпустила демонстрационный образ, который включал POSIX-совместимую ОС QNX 4, полный графический пользовательский интерфейс, графический текстовый редактор, сеть TCP / IP, веб-браузер и веб-сервер, который все помещается на загрузочную дискету 1,44  МБ . [3] [4]

QNX Neutrino (2001) был перенесен на ряд платформ и теперь работает практически на любом современном семействе центральных процессоров (ЦП), которое используется на рынке встраиваемых систем. Сюда входят PowerPC , x86 , MIPS , SH-4 и тесно взаимосвязанные ARM , StrongARM и XScale .

QNX предлагает лицензию для некоммерческих и академических пользователей. [5]

BlackBerry PlayBook планшетный компьютер разработан BlackBerry использует версию ОС QNX в качестве основной операционной системы. Устройства BlackBerry под управлением операционной системы BlackBerry 10 также основаны на QNX.

QNX также используется в автомобильных информационно-развлекательных системах, и многие крупные производители автомобилей предлагают варианты, которые включают встроенную архитектуру QNX. Он поддерживается популярными библиотеками SSL / TLS, такими как wolfSSL . [6]

В последние годы QNX также выбирается в системах автоматизированного привода или ADAS для автомобильных проектов, требующих сертификации функциональной безопасности, которую QNX предоставляет вместе со своим продуктом QNX OS for Safety .

Операционная система QNX также содержит веб-браузер, известный как «Вояджер». [7]

История [ править ]

Гордон Белл и Дэн Додж , оба студенты Университета Ватерлоо в 1980 году, прошли курс ( CS452 ) по операционным системам реального времени, на котором студенты создали базовое микроядро реального времени и пользовательские программы. Оба были убеждены, что в такой системе существует коммерческая потребность, и переехали в запланированное высокотехнологичным сообществом Каната, Онтарио , чтобы в том же году основать Quantum Software Systems. В 1982 году была выпущена первая версия QUNIX для процессора Intel 8088 . В 1984 году Quantum Software Systems переименовала QUNIX в QNX, чтобы избежать проблем, связанных с нарушением прав на товарные знаки.

Одно из первых широко распространенных применений ОС реального времени QNX (RTOS) было в мире без встроенных систем, когда она была выбрана в качестве операционной системы для собственной компьютерной системы системы образования Онтарио , Unisys ICON . На протяжении многих лет QNX использовался в основном для более крупных проектов, так как его ядро ​​44k было слишком большим, чтобы поместиться в однокристальные компьютеры того времени. Система заработала репутацию надежной [ цитата необходима ] и стала использоваться в работающем оборудовании во многих промышленных приложениях.

В конце 80-х Quantum осознал, что рынок стремительно движется к модели интерфейса переносимой операционной системы ( POSIX ), и решил переписать ядро, чтобы оно было более совместимо на низком уровне. В результате появился QNX 4. За это время Патрик Хайден , работая стажером, вместе с Робином Бургенером (в то время штатным сотрудником) разработали новую оконную систему. Эта запатентованная [8] концепция была развита во встраиваемый графический интерфейс пользователя (GUI) под названием QNX Photon microGUI. QNX также предоставил версию X Window System .

К концу 1990-х компания (теперь называемая QNX Software Systems) начала работу над новой версией QNX, разработанной с нуля для поддержки симметричной многопроцессорной обработки (SMP) и для поддержки всех существующих интерфейсов прикладного программирования POSIX (API). ) и любых новых API POSIX, которые можно было ожидать при сохранении архитектуры микроядра. В результате в 2001 году появился QNX Neutrino.

Наряду с ядром Neutrino компания QNX Software Systems стала одним из основателей консорциума Eclipse . В 2002 году компания выпустила набор подключаемых модулей Eclipse, поставляемых вместе с рабочей средой Eclipse, под названием QNX Momentics Tool Suite.

В 2004 году компания объявила, что была продана Harman International Industries . До этого приобретения программное обеспечение QNX уже широко использовалось в автомобильной промышленности для телематических систем. С момента покупки компанией Harman программное обеспечение QNX было разработано более чем для 200 различных марок и моделей автомобилей , в телематических системах, информационно-развлекательных и навигационных устройствах. [ необходима цитата ] По состоянию на середину 2011 года платформа приложений QNX CAR использовалась более чем на 20 миллионах автомобилей. [9] С тех пор компания выпустила несколько промежуточных продуктов, включая QNX Aviage Multimedia Suite, QNX Aviage Acoustic Processing Suite и QNX HMI Suite.

Микроядра IOS-XR от Cisco Systems ( IOS сверхвысокой доступности, представленная в 2004 г.) [10] [11] и модульность программного обеспечения IOS (представленная в 2006 г.) [12] основаны на QNX.

В сентябре 2007 года QNX Software Systems объявила о доступности некоторого исходного кода. [13]

9 апреля 2010 г. Research In Motion объявила о приобретении QNX Software Systems у Harman International Industries. [2] В тот же день доступ к исходному коду QNX был ограничен для публики и любителей. [14]

В сентябре 2010 года компания анонсировала планшетный компьютер , на BlackBerry PlayBook и новой операционной системы BlackBerry Tablet OS , основанной на QNX для запуска на планшете. [15]

18 октября 2011 г. Research In Motion анонсировала BBX, [16] который позже был переименован в BlackBerry 10 , в декабре 2011 г. [17] Устройства Blackberry 10 основаны на операционной системе BlackBerry PlayBook QNX для сенсорных устройств, но адаптированы пользовательский интерфейс для смартфонов, использующий основанный на Qt фреймворк Cascades Native User-Interface.

На Женевском автосалоне Apple продемонстрировала CarPlay, который обеспечивает интерфейс пользователя в стиле iOS для головных устройств совместимых автомобилей. После настройки автопроизводителем QNX можно запрограммировать на передачу своего дисплея и некоторых функций устройству Apple CarPlay. [18] [19]

11 декабря 2014 года Ford Motor Company заявила, что заменит Microsoft Auto на QNX. [1]

В январе 2017 года QNX объявила о предстоящем выпуске своего SDP 7.0 с поддержкой 32- и 64-разрядных платформ Intel и ARM и поддержкой C ++ 14; он был выпущен в марте 2017 года. [20]

Технология [ править ]

Ядро QNX procntoсодержит только планирование ЦП , межпроцессное взаимодействие , перенаправление прерываний и таймеры. Все остальное работает как пользовательский процесс, включая специальный процесс, procкоторый выполняет создание процессов и управление памятью , работая совместно с микроядром . Это стало возможным благодаря двум ключевым механизмам: межпроцессному взаимодействию типа вызова подпрограмм и загрузчику, который может загрузить образ, содержащий ядро ​​и любой желаемый набор пользовательских программ и разделяемых библиотек. В ядре нет драйверов устройств . Сетевой стек основан на коде NetBSD . [21]Помимо поддержки собственных драйверов устройств, QNX поддерживает устаревший сервер io-net manager и сетевые драйверы, перенесенные из NetBSD. [22]

Межпроцессное взаимодействие QNX заключается в отправке сообщения от одного процесса к другому и ожидании ответа. Это единственная операция, которая называется MsgSend. Сообщение копируется ядром [ необходима цитата ] из адресного пространства отправляющего процесса в адресное пространство принимающего процесса. Если принимающий процесс ожидает сообщения, управление ЦП передается одновременно, без прохождения через планировщик ЦП. Таким образом, отправка сообщения другому процессу и ожидание ответа не приводит к «потере очереди» для ЦП. Эта тесная интеграция между передачей сообщений и планированием ЦП является одним из ключевых механизмов, делающих передачу сообщений QNX широко используемой. Большинство Unix и LinuxМеханизмам межпроцессного взаимодействия не хватает такой тесной интеграции, хотя реализация обмена сообщениями типа QNX в пользовательском пространстве для Linux существует . Неправильное решение этой тонкой проблемы является основной причиной неутешительной производительности некоторых других систем с микроядрами, таких как ранние версии Mach . [ необходима цитата ] Процесс-получатель не обязательно должен находиться на одной физической машине.

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

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

Загрузчик - другой ключевой компонент минимальной системы микроядра. Поскольку пользовательские программы могут быть встроены в загрузочный образ, набор драйверов устройств и вспомогательных библиотек, необходимых для запуска, не обязательно должен быть и не находится в ядре. Даже такие функции, как загрузка программы, находятся не в ядре, а в библиотеках общего пользовательского пространства, загружаемых как часть загрузочного образа. В ПЗУ можно поместить весь загрузочный образ , который используется для бездисковых встроенных систем.

Neutrino поддерживает симметричную многопроцессорность и привязку к процессору , что в терминологии QNX называется связанной многопроцессорной обработкой (BMP). BMP используется для улучшения работы с кешем и упрощения миграции приложений, не поддерживающих SMP, на многопроцессорные компьютеры.

Neutrino поддерживает строгое приоритетное планирование и адаптивное планирование разделов (APS). APS гарантирует минимальную процентную долю ЦП для выбранных групп потоков, даже если другие могут иметь более высокий приоритет. Адаптивный планировщик разделов по-прежнему строго вытесняет приоритет, когда система недогружена. Его также можно настроить для запуска выбранного набора критических потоков строго в режиме реального времени , даже если система перегружена.

История выпусков QNX RTOS [ править ]

История QNX RTOS [23]

История выпусков QNX / Neutrino [ править ]

История микроядра QNX / Neutrino - ответвление от QNX 4.24 в 1996 году.

Прозрачная распределенная обработка [ править ]

Благодаря своей микроядерной архитектуре QNX также является распределенной операционной системой . Дэн Додж и Питер ван дер Вин владеют патентом США 6 697 876: Операционная система с распределенным ядром, основанная на функциях распределенной обработки операционной системы QNX, известной под коммерческим названием Transparent Distributed Processing. Это позволяет ядрам QNX на отдельных устройствах получать доступ к системным службам друг друга, используя тот же механизм связи, который используется для доступа к локальным службам.

Форумы [ править ]

OpenQNX - это портал сообщества QNX, созданный и работающий независимо. Доступен канал IRC и доступ к группам новостей через Интернет. Разработчики на сайте представляют самые разные отрасли. [24]

Foundry27 - это веб-сообщество QNX, созданное компанией. Он служит центром разработки QNX Neutrino, где разработчики могут зарегистрироваться, выбрать лицензию, а также получить исходный код и соответствующий инструментарий для ОСРВ. [25]

См. Также [ править ]

  • Voyager (веб-браузер)
  • Сравнение операционных систем
  • BlackBerry 10
  • Android Auto
  • CarPlay , ранее называвшаяся iOS в машине
  • Windows Embedded Automotive
    • Ford Sync
  • Open Handset Alliance
  • NNG

Ссылки [ править ]

  1. ^ a b Бернс, Мэтт (11 декабря 2014 г.). «Ford отказался от Microsoft ради QNX в новейшей платформе для автомобильных технологий» . TechCrunch . Проверено 26 февраля 2015 года .
  2. ^ a b «RIM для покупки программного обеспечения QNX» . Глобус и почта . Торонто. Канадская пресса . 9 апреля 2010 . Проверено 9 апреля 2010 .
  3. Хильдебранд, Дэн (6 июня 1997 г.). «Думайте о малом. (Веб-вызов 1,44 млн)» . marc.info .
  4. ^ "Как мы это сделали!" . Архивировано из оригинального 28 ноября 1999 года . Дата обращения 3 августа 2020 .
  5. ^ «Операционная система реального времени QNX Neutrino» . QNX . 2010-07-15 . Проверено 15 октября 2012 .
  6. ^ "Размеры сборки wolfSSL для встроенной ОСРВ QNX" . wolfSSL . 17 сентября 2010 . Проверено 13 февраля 2019 .
  7. ^ http://www.qnx.com/products/middleware/graphics/voyager.html
  8. ^ US5745759
  9. ^ QNX CAR http://www.qnx.com/products/qnxcar/
  10. ^ Сотрудники QNX (2004-08-17). «QNX предоставляет чрезвычайно надежное микроядро для крупномасштабируемой системы маршрутизации» . Проверено 16 марта 2012 .
  11. ^ «Передовой опыт эксплуатации CRS-1 и IOS XR» . Cisco .
  12. ^ Brad Reese- BradReese.Com (2006-09-26). "Какая ОС стоит за IOS?" . Проверено 16 марта 2012 .
  13. Леру, Поль (12 сентября 2007 г.). «QNX публикует исходный код Neutrino и открывает процесс разработки» . www.qnx.com .
  14. ^ "foundry27: Просмотр вики-страницы: ОбновленоQNXSourceAccessPolicyFAQ" . community.qnx.com .
  15. ^ RIM представляет BlackBerry PlayBook , официальный пресс-релиз, 27 сентября 2010 г.
  16. ^ Молен, Бред (18 октября 2011). «Исследование в движении объявляет о BBX,„сочетает в себе лучшее из BlackBerry и QNX » . Engadget . Проверено 20 января 2013 года .
  17. ^ Артур, Чарльз (2011-12-07). «Производитель BlackBerry RIM вынужден отказаться от имени BBX для нового программного обеспечения» . Хранитель . Лондон . Проверено 20 января 2013 .
  18. ^ «Apple Inc CarPlay предоставляет функции iPhone для GM, BMW, Ford и других автомобильных приборных панелей» . Финансовая почта . Проверено 28 марта 2014 .
  19. ^ «BlackBerry's QNX: Почему это так ценно для Apple, Google, автомобильной промышленности» . ZDNet . Проверено 27 октября 2014 .
  20. ^ «BlackBerry QNX запускает свою самую передовую и безопасную платформу встроенного программного обеспечения для автономного вождения и подключенных автомобилей» . 2017-01-04.
  21. ^ Core Networking 6.4: Сетевой стек нового поколения Neutrino и Foundry27 [1]
  22. ^ "foundry27: Просмотр вики-страницы: Drivers_wiki_page" . community.qnx.com .
  23. ^ Lévénez, Éric (1 мая 2011). «История UNIX» . levenez.com . Проверено 18 мая 2011 года .
  24. ^ Портал сообщества OpenQNX: анонс
  25. ^ Пресс-релизы QNX: Foundry27

Дальнейшее чтение [ править ]

  • Дэн Хильдебранд (1992). «Обзор архитектуры QNX» . Труды семинара по микро-ядрам и другим архитектурам ядра : 113–126. ISBN 1-880446-42-1.

Внешние ссылки [ править ]

  • Официальный веб-сайт
  • QNX в Curlie
  • Разработка для телефонов QNX
  • Литейный27
  • Сообщество пользователей QNX
  • Приложения с открытым исходным кодом
  • GUIdebook> Графические интерфейсы> QNX
  • QNX используется на канадских атомных электростанциях
  • Демонстрационная дискета QNX