Рабочий стол по умолчанию в QNX 6.4.1 | |
Разработчик | Ежевика |
---|---|
Семейство ОС | Unix-подобный |
Рабочее состояние | Текущий |
Исходная модель | Закрытый источник |
Начальная версия | 1982 |
Последний релиз | 7.1 / июль 2020 г . |
Маркетинговая цель | Встроенные системы |
Менеджер пакетов | Возможность использовать фреймворк Pkgsrc из проекта NetBSD |
Платформы | Текущие: x86-64 , ARM32 , ARM64 Бывшие: MIPS , PowerPC , SH-4 , StrongARM , XScale |
Тип ядра | RTOS ( микроядро ) |
Лицензия | Проприетарный |
Официальный сайт | www |
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 для обеспечения безопасности .
Операционная система QNX также содержала веб-браузер, известный как «Вояджер». [7]
История [ править ]
Гордон Белл и Дэн Додж , оба студенты Университета Ватерлоо в 1980 году, прошли курс ( CS452 ) по операционным системам реального времени, в котором студенты создали базовое микроядро реального времени и пользовательские программы. Оба были убеждены, что в такой системе существует коммерческая потребность, и переехали в планируемое высокотехнологичным сообществом Каната, Онтарио , чтобы в том же году основать Quantum Software Systems. В 1982 году была выпущена первая версия QUNIX для процессора Intel 8088 . В 1984 году Quantum Software Systems переименовала QUNIX в QNX, чтобы избежать проблем, связанных с нарушением прав на товарные знаки.
Одно из первых широко распространенных применений ОС реального времени QNX (RTOS) было в мире без встроенных систем, когда она была выбрана в качестве операционной системы для собственной компьютерной системы системы образования Онтарио , Unisys ICON . На протяжении многих лет QNX использовался в основном для более крупных проектов, поскольку его ядро 44k было слишком большим, чтобы поместиться в однокристальные компьютеры того времени. Система завоевала репутацию надежной [ необходима цитата ] и стала использоваться в работающем оборудовании во многих промышленных приложениях.
В конце 1980-х Quantum осознал, что рынок стремительно движется к модели интерфейса переносимой операционной системы ( POSIX ), и решил переписать ядро, чтобы оно было более совместимым на низком уровне. В результате появился QNX 4. За это время Патрик Хайден , работая стажером, вместе с Робином Бургенером (в то время штатным сотрудником) разработали новую оконную систему. Эта запатентованная [8] концепция была развита во встраиваемый графический интерфейс пользователя (GUI) под названием QNX Photon microGUI. QNX также предоставил версию X Window System .
К концу 1990-х компания (теперь называемая QNX Software Systems) начала работу над новой версией QNX, разработанной с нуля для поддержки симметричной многопроцессорной обработки (SMP) и для поддержки всех текущих интерфейсов прикладного программирования POSIX (API-интерфейсы). ) и любых новых API POSIX, которые можно было бы ожидать при сохранении архитектуры микроядра. Результатом стал QNX Neutrino, выпущенный в 2001 году.
Вместе с ядром 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]
Версия | Датировать | Среда распространения | Ноты |
---|---|---|---|
1981 г. | Основание QUNIX . | ||
Бета | 1983 г. | Как QNX Beta | |
1.0 | 1984 | ||
2.0 | 1987 г. | Элементы 4.3BSD, такие как TCP / IP и PPP, объединены в QNX 2.0 . | |
2,21 | 1989 г. | QNX 2.21 | |
4.0 | 1990 г. | QNX 4.0 | |
4.1 | 1994 г. | Элементы 4.4BSD в QNX 4.1 | |
4.2 | 1995 г. | QNX 4.2 | |
4,22 | 1995 г. | QNX 4.22 | |
4,24 | 1995 г. | QNX / Neutrino 1.0 является форком QNX 4.24. | |
4,25 | 1997 г. | QNX 4.25 продолжается после форка с QNX / Neutrino 1.0. |
История выпусков QNX / Neutrino [ править ]
История микроядра QNX / Neutrino - ответвление от QNX 4.24 в 1996 году.
Выпускать | Датировать | Ноты |
---|---|---|
1.0 | 1996 г. | QNX / Neutrino 1.0, разветвленный от QNX 4.24 |
2.0 | 1998 г. | QNX / Neutrino 2.0 |
2.10 | 1999 г. | QNX / Neutrino 2.10 (QRTP) |
6 | 18 января 2001 г. | QNX ОСРВ 6 |
6.1.0 | 2001 г. | QNX ОСРВ 6 |
6.1.0 (патч А) | 28 сентября 2001 г. | |
6.2 | 4 июня 2002 г. | QNX 6.2 (Momentics) |
6.2 (патч А) | 18 октября 2002 г. | QNX 6.2 |
6.2.1 | 18 февраля 2003 г. | QNX 6.2.1 (Momentics) |
6.3 | 3 июня 2004 г. | QNX 6.3 |
6.3.0 с пакетом обновления 1 | ? | |
6.3.0 с пакетом обновления 2 (SP2) | ? | |
6.3.0 SP3 / OS 6.3.2 | ||
6.3.2 | ||
6.4.0 | 30 октября 2008 г. | ОСРВ QNX Neutrino 6.4.0 |
6.4.1 | Май 2009 г. | ОСРВ QNX Neutrino 6.4.1 |
6.5.0 | Июль 2010 г. | QNX Neutrino RTOS 6.5.0 разветвляется для создания BBX, как было объявлено 18 октября 2011 года, а затем анонсирована под названием « BlackBerry 10 OS» 1 мая 2012 года. |
6.5 SP1 | 11 июля 2012 г. | ОСРВ QNX Neutrino 6.5 SP1 |
6,6 | 28 февраля 2014 г. | QNX 6.6 |
7.0 | 4 января 2017 г. | QNX SDP 7.0 , первая версия с поддержкой 64-бит |
7.1 | 23 июля 2020 г. | QNX SDP 7.1 |
Прозрачная распределенная обработка [ править ]
Благодаря своей микроядерной архитектуре QNX также является распределенной операционной системой . Дэн Додж и Питер ван дер Вин владеют патентом США 6 697 876: Операционная система с распределенным ядром, основанная на функциях распределенной обработки операционной системы QNX, известной под коммерческим названием Transparent Distributed Processing. Это позволяет ядрам QNX на отдельных устройствах получать доступ к системным службам друг друга, используя тот же механизм связи, который используется для доступа к локальным службам.
Форумы [ править ]
OpenQNX - это портал сообщества QNX, созданный и работающий независимо. Доступен канал IRC и доступ к группам новостей через Интернет. Разработчики на сайте представляют самые разные отрасли. [24]
Foundry27 - это веб-сообщество QNX, созданное компанией. Он служит центром разработки QNX Neutrino, где разработчики могут зарегистрироваться, выбрать лицензию и получить исходный код и связанный с ним инструментарий ОСРВ. [25]
См. Также [ править ]
Викискладе есть медиафайлы по теме QNX . |
- Сравнение операционных систем
- BlackBerry 10
- Android Auto
- CarPlay , ранее iOS в машине
- Windows Embedded Automotive
- Ford Sync
- Open Handset Alliance
- NNG
Ссылки [ править ]
- ^ a b Бернс, Мэтт (11 декабря 2014 г.). «Ford отказывается от Microsoft ради QNX в новейшей автомобильной технической платформе» . TechCrunch . Проверено 26 февраля 2015 года .
- ^ a b «RIM для покупки программного обеспечения QNX» . Глобус и почта . Торонто. Канадская пресса . 9 апреля 2010 . Проверено 9 апреля 2010 .
- ↑ Хильдебранд, Дэн (6 июня 1997 г.). «Думайте о малом. (Веб-вызов 1,44 млн)» . marc.info .
- ^ "Как мы это сделали!" . Архивировано из оригинального 28 ноября 1999 года . Дата обращения 3 августа 2020 .
- ^ «Операционная система реального времени QNX Neutrino» . QNX . 2010-07-15 . Проверено 15 октября 2012 .
- ^ "Размеры сборки wolfSSL для встроенной ОСРВ QNX" . wolfSSL . 17 сентября 2010 . Проверено 13 февраля 2019 .
- ^ http://www.qnx.com/products/middleware/graphics/voyager.html
- ^ US5745759
- ^ QNX CAR http://www.qnx.com/products/qnxcar/
- ^ Сотрудники QNX (2004-08-17). «QNX предоставляет чрезвычайно надежное микроядро для крупномасштабируемой системы маршрутизации» . Проверено 16 марта 2012 .
- ^ "Рекомендации по эксплуатации CRS-1 и IOS XR" . Cisco .
- ^ Brad Reese- BradReese.Com (2006-09-26). "Какая ОС стоит за IOS?" . Проверено 16 марта 2012 .
- ↑ Леру, Поль (12 сентября 2007 г.). «QNX публикует исходный код Neutrino и открывает процесс разработки» . www.qnx.com .
- ^ "foundry27: Просмотр вики-страницы: ОбновленоQNXSourceAccessPolicyFAQ" . community.qnx.com .
- ^ RIM представляет BlackBerry PlayBook , официальный пресс-релиз, 27 сентября 2010 г.
- ^ Молен, Бред (18 октября 2011). «Исследование в движении объявляет о BBX,„сочетает в себе лучшее из BlackBerry и QNX “ » . Engadget . Проверено 20 января 2013 года .
- ^ Артур, Чарльз (2011-12-07). «Производитель BlackBerry RIM вынужден отказаться от имени BBX для нового программного обеспечения» . Хранитель . Лондон . Проверено 20 января 2013 .
- ^ «Apple Inc CarPlay предоставляет функции iPhone для GM, BMW, Ford и других автомобильных приборных панелей» . Финансовая почта . Проверено 28 марта 2014 .
- ^ «BlackBerry's QNX: Почему это так ценно для Apple, Google, автомобильной промышленности» . ZDNet . Проверено 27 октября 2014 .
- ^ «BlackBerry QNX запускает свою самую передовую и безопасную платформу встроенного программного обеспечения для автономного вождения и подключенных автомобилей» . 2017-01-04.
- ^ Core Networking 6.4: Сетевой стек нового поколения Neutrino и Foundry27 [1]
- ^ "foundry27: Просмотр вики-страницы: Drivers_wiki_page" . community.qnx.com .
- ^ Lévénez, Éric (1 мая 2011). «История UNIX» . levenez.com . Проверено 18 мая 2011 года .
- ^ Портал сообщества OpenQNX: анонс
- ^ Пресс-релизы QNX: Foundry27
Дальнейшее чтение [ править ]
- Дэн Хильдебранд (1992). «Обзор архитектуры QNX» . Труды семинара по микро-ядрам и другим архитектурам ядра : 113–126. ISBN 1-880446-42-1.
Внешние ссылки [ править ]
- Официальный сайт
- QNX в Керли
- Разработка для телефонов QNX
- Литейный27
- Сообщество пользователей QNX
- Приложения с открытым исходным кодом
- GUIdebook> Графические интерфейсы> QNX
- QNX используется на канадских атомных электростанциях
- Демонстрационная дискета QNX