QNX
![]() | |
![]() Рабочий стол по умолчанию в QNX 6.4.1. | |
Разработчик | BlackBerry (ранее QNX Software Systems ) |
---|---|
Семейство ОС | Unix-подобный |
Рабочее состояние | Текущий |
Исходная модель | Закрытый исходный код |
Первоначальный выпуск | 1982 год |
Последний выпуск | 8.0 / декабрь 2023 г |
Маркетинговая цель | Встроенные системы |
Менеджер пакетов | Возможность использовать структуру Pkgsrc из проекта NetBSD. |
Платформы | Текущий: x86-64 , ARM32 , ARM64 Ранее: MIPS , PowerPC , SH-4 , StrongARM , XScale. |
ядра Тип | ОСРВ ( микроядро ) |
Пользовательское пространство | ПОСИКС |
Лицензия | Собственный |
Официальный сайт | ежевика |
QNX ( / ˌ k juː ˌ ɛ n ˈ ɛ k s / или / ˈ k juː n ɪ k s / ) — коммерческая Unix-подобная операционная система реального времени , ориентированная в первую очередь на рынок встраиваемых систем .
Продукт был первоначально разработан в начале 1980-х годов канадской компанией Quantum Software Systems, позже переименованной в QNX Software Systems.
По состоянию на 2022 год [update]он используется в различных устройствах, включая автомобили , [1] медицинские приборы , программные логические контроллеры , автоматизированное производство , поезда и многое другое.
История
[ редактировать ]![]() |
Гордон Белл и Дэн Додж , оба студенты Университета Ватерлоо в 1980 году, прошли курс по операционным системам реального времени, на котором студенты построили базовое микроядро реального времени и пользовательские программы. Оба были убеждены, что в такой системе существует коммерческая потребность, и переехали в запланированное высокотехнологичное сообщество Каната, Онтарио , чтобы в том же году основать Quantum Software Systems. В 1982 году была выпущена первая версия QUNIX для процессора Intel 8088 . В 1984 году Quantum Software Systems переименовала QUNIX в QNX, чтобы избежать проблем с нарушением прав на товарный знак.
Одно из первых широко распространенных применений ОС реального времени QNX (RTOS) произошло в мире невстраиваемых систем, когда она была выбрана в качестве операционной системы для Онтарио собственной компьютерной разработки системы образования — Unisys ICON . На протяжении многих лет QNX использовался в основном для более крупных проектов, поскольку его ядро размером 44 КБ было слишком большим, чтобы поместиться в одночиповые компьютеры той эпохи. Система заслужила репутацию надежной. [ нужна ссылка ] и стал использоваться в работающем оборудовании во многих отраслях промышленности.
В конце 1980-х годов компания Quantum осознала, что рынок быстро движется в сторону модели интерфейса переносимой операционной системы ( POSIX ), и решила переписать ядро, чтобы сделать его более совместимым на низком уровне. Результатом стала QNX 4. За это время Патрик Хейден , работая стажёром, вместе с Робином Бургенером (на тот момент штатным сотрудником) разработали новую оконную систему. Это запатентованное [2] Концепция была развита во встраиваемом графическом интерфейсе пользователя (GUI) под названием QNX Photon microGUI. QNX также предоставила версию X Window System .
Чтобы продемонстрировать возможности ОС и ее относительно небольшой размер, в конце 1990-х годов компания QNX выпустила демонстрационный образ, который включал POSIX-совместимую ОС QNX 4, полный графический интерфейс пользователя, графический текстовый редактор, сеть TCP/IP, веб-браузер и веб-сервер, которые все поместилось на загрузочную объемом 1,44 МБ дискету для ПК 386. [3] [4]
К концу 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 миллионах автомобилей. [5] С тех пор компания выпустила несколько продуктов промежуточного программного обеспечения , включая QNX Aviage Multimedia Suite, QNX Aviage Acoustic Processing Suite и QNX HMI Suite.
Микроядра Cisco Systems IOS -XR (IOS сверхвысокой доступности, представленная в 2004 г.) [6] [7] и модульность программного обеспечения IOS (введена в 2006 г.) [8] основаны на QNX.
В сентябре 2007 года компания QNX Software Systems объявила о доступности части своего исходного кода . [9]
9 апреля 2010 года компания Research In Motion (позже переименованная в BlackBerry Limited ) объявила о приобретении QNX Software Systems у Harman International Industries. [10] В тот же день доступ к исходному коду QNX был ограничен для общественности и любителей. [11]
В сентябре 2010 года компания анонсировала планшетный компьютер BlackBerry PlayBook и новую операционную систему BlackBerry Tablet OS на базе QNX для работы на планшете. [12]
18 октября 2011 г. компания Research In Motion анонсировала выпуск BBX. [13] который позже был переименован в BlackBerry 10 , в декабре 2011 года. [14] Устройства Blackberry 10 основаны на операционной системе BlackBerry PlayBook QNX для сенсорных устройств, но адаптируют пользовательский интерфейс для смартфонов с помощью платформы Cascades Native User-Interface на базе Qt .
На Женевском автосалоне Apple продемонстрировала CarPlay , который обеспечивает пользовательский интерфейс в стиле iOS для головных устройств совместимых автомобилей. После настройки автопроизводителем QNX можно запрограммировать на передачу своего дисплея и некоторых функций на устройство Apple CarPlay. [15] [16]
11 декабря 2014 года Ford Motor Company заявила, что заменит Microsoft Auto на QNX. [1]
В январе 2017 года QNX объявила о предстоящем выпуске своего SDP 7.0 с поддержкой 32- и 64-битных платформ Intel и ARM, а также поддержкой C++14 . Он был выпущен в марте 2017 года. [17]
В декабре 2023 года компания QNX выпустила QNX SDP 8.0, основанную на микроядре следующего поколения с поддержкой новейших 64-разрядных платформ Intel и ARM [v8 и v9], набор инструментов на основе GCC12 и набор инструментов QNX для Visual Studio Code . [18]
Технология
[ редактировать ]Как операционная система на основе микроядра , QNX основана на идее запуска большей части операционной системы ядра в виде ряда небольших задач, называемых диспетчерами ресурсов. Это отличается от более традиционного монолитного ядра , в котором ядро операционной системы представляет собой одну очень большую программу, состоящую из огромного количества частей, со специальными возможностями. В случае с QNX использование микроядра позволяет пользователям (разработчикам) отключать любые ненужные им функции без необходимости смены ОС. Вместо этого такие службы просто не будут работать.
Ядро QNX, procnto
(также имя двоичной исполняемой программы для самого процесса QNX Neutrino («nto») («proc»)), содержит только планирование ЦП , межпроцессное взаимодействие , перенаправление прерываний и таймеры. Все остальное выполняется как пользовательский процесс, включая специальный процесс, известный как proc
который выполняет создание процессов и управление памятью , работая совместно с микроядром . Это становится возможным благодаря двум ключевым механизмам: межпроцессному взаимодействию типа вызова подпрограммы и загрузчику , который может загружать образ, содержащий ядро и любой желаемый набор пользовательских программ и общих библиотек. нет драйверов устройств В ядре . Сетевой стек основан на коде NetBSD . [19] Помимо поддержки собственных драйверов устройств, QNX поддерживает устаревший сервер io-net Manager и сетевые драйверы, портированные из NetBSD. [20]
Межпроцессное взаимодействие QNX заключается в отправке сообщения от одного процесса другому и ожидании ответа. Это одна операция, называемая MsgSend
. Сообщение копируется ядром, [ нужна ссылка ] из адресного пространства отправляющего процесса в адресное пространство принимающего процесса. Если принимающий процесс ожидает сообщения, управление ЦП передается одновременно, без прохождения через планировщик ЦП. Таким образом, отправка сообщения другому процессу и ожидание ответа не приводит к «потере хода» ЦП. Эта тесная интеграция между передачей сообщений и планированием ЦП является одним из ключевых механизмов, который делает передачу сообщений QNX широко используемой. Большинству Unix и Linux механизмов межпроцессного взаимодействия в пользовательском пространстве не хватает такой тесной интеграции, хотя реализация обмена сообщениями типа QNX для Linux существует . Неправильное решение этой тонкой проблемы является основной причиной неутешительной производительности некоторых других систем микроядра, таких как ранние версии Mach . [ нужна ссылка ] Процесс-получатель не обязательно должен находиться на одном физическом компьютере.
Все операции ввода-вывода, операции с файловой системой и сетевые операции должны были выполняться через этот механизм, а передаваемые данные копировались во время передачи сообщений. Более поздние версии QNX сокращают количество отдельных процессов и интегрируют сетевой стек и другие функциональные блоки в отдельные приложения по соображениям производительности.
Приоритет обработки сообщений определяется приоритетом потока . Поскольку запросы ввода-вывода выполняются с использованием передачи сообщений, потоки с высоким приоритетом получают услуги ввода-вывода раньше потоков с низким приоритетом, что является важной функцией в системе жесткого реального времени .
Загрузчик — еще один ключевой компонент минимальной системы микроядра. Поскольку пользовательские программы могут быть встроены в загрузочный образ, набор драйверов устройств и вспомогательных библиотек, необходимых для запуска, не обязательно должен находиться в ядре и не находится в нем. Даже такие функции, как загрузка программ, находятся не в ядре, а в общих библиотеках пользовательского пространства, загружаемых как часть загрузочного образа. можно поместить весь загрузочный образ В ПЗУ , который используется для бездисковых встраиваемых систем.
Neutrino поддерживает симметричную многопроцессорную обработку и привязку процессоров , называемую связанной многопроцессорной обработкой (BMP) в терминологии QNX. BMP используется для улучшения доступа к кэшу и облегчения миграции приложений, не поддерживающих SMP, на многопроцессорные компьютеры.
Neutrino поддерживает строгое планирование с вытеснением приоритетов и адаптивное планирование разделов (APS). APS гарантирует минимальный процент использования ЦП для выбранных групп потоков, даже если другие могут иметь более высокий приоритет. Адаптивный планировщик разделов по-прежнему строго вытесняет приоритеты, когда система недогружена. Его также можно настроить для запуска выбранного набора критических потоков строго в режиме реального времени , даже когда система перегружена.
Операционная система QNX также содержала веб-браузер, известный как Voyager. [21]
Благодаря своей микроядерной архитектуре QNX также является распределенной операционной системой . Дэн Додж и Питер ван дер Вин владеют патентом США № 6697876: Операционная система с распределенным ядром , основанная на функциях распределенной обработки операционной системы QNX, известных под коммерческим названием «Прозрачная распределенная обработка». Это позволяет ядрам QNX на отдельных устройствах получать доступ к системным службам друг друга, эффективно используя тот же механизм связи, который используется для доступа к локальным службам. [ нужен неосновной источник ]
Релизы
[ редактировать ]Версия | Дата | Среда распространения | Примечания |
---|---|---|---|
1981 | Основание компании QUNIX . | ||
Бета | 1983 | Как бета-версия QNX | |
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. |
Выпускать | Дата | Примечания |
---|---|---|
1.0 | 1996 | QNX/Neutrino 1.0 как ответвление от QNX 4.24 |
2.0 | 1998 | QNX/Нейтрино 2.0 |
2.10 | 1999 | QNX/Нейтрино 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 (Моментикс) |
6.2 (патч А) | 18 октября 2002 г. | QNX 6.2 |
6.2.1 | 18 февраля 2003 г. | QNX 6.2.1 (Моментикс) |
6.3 | 3 июня 2004 г. | QNX 6.3 |
6.3.0 SP1 | ? | |
6.3.0 SP2 | ? | |
6.3.0 SP3/ ОС 6.3.2 | ? | |
6.3.2 | 16 августа 2006 г. [23] | |
6.4.0 | 30 октября 2008 г. | ОСРВ QNX Нейтрино 6.4.0 |
6.4.1 | май 2009 г. | ОСРВ QNX Нейтрино 6.4.1 |
6.5.0 | июль 2010 г. | QNX Neutrino RTOS 6.5.0 создан для создания BBX, как было объявлено 18 октября 2011 г. и представлено позднее, получила название « BlackBerry 10 1 мая 2012 года OS». |
6.5 СП1 | 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 СДП 7.1 |
8.0 | декабрь 2023 г. | QNX СДП 8.0 [24] |
Использование
[ редактировать ]BlackBerry PlayBook Планшетный компьютер , разработанный BlackBerry, использует версию QNX в качестве основной операционной системы. Операционная система BlackBerry 10 также основана на QNX.
QNX также используется в автомобильных информационно-развлекательных системах, причем многие крупные автопроизводители предлагают варианты со встроенной архитектурой QNX. Он поддерживается популярными библиотеками SSL/TLS, такими как wolfSSL . [25]
С момента появления «Safe Kernel 1.0» в 2010 году QNX проектировался и впоследствии использовался в системах автоматизированного привода или ADAS для автомобильных проектов, для которых требуется RTOS, сертифицированная по функциональной безопасности . QNX обеспечивает это в своей ОС QNX для продуктов безопасности. [26]
QNX Neutrino (2001 г.) был портирован на ряд платформ и теперь работает практически на любом современном семействе центральных процессоров (ЦП), которое используется на рынке встраиваемых систем. Сюда входят PowerPC , x86 , MIPS , SH-4 и тесно взаимосвязанная группа ARM , StrongARM и XScale .
Лицензирование
[ редактировать ]QNX предлагает лицензию для некоммерческих и академических пользователей. [27] В январе 2024 года BlackBerry представила QNX Everywhere, чтобы сделать QNX более доступным для любителей. QNX Everywhere еще не стал общедоступным.
Сообщество
[ редактировать ]- OpenQNX — это портал сообщества QNX, созданный и работающий независимо. Доступен канал IRC и доступ к группам новостей через Интернет. На сайте разработчики представляют самые разные отрасли. [28]
- Foundry27 — это интернет-сообщество QNX, созданное компанией. Он служит центром разработки QNX Neutrino, где разработчики могут зарегистрироваться, выбрать лицензию и получить исходный код и соответствующий набор инструментов ОСРВ. [29]
См. также
[ редактировать ]- Сравнение операционных систем
- Андроид Авто
- Android Автомобильная промышленность
- Автомобильный Linux
- CarPlay
- Форд Синк
- Windows Embedded для автомобильной промышленности
- OpenHarmony
- ГармонияОС СЛЕДУЮЩИЙ
Ссылки
[ редактировать ]- ^ Перейти обратно: а б Бернс, Мэтт (11 декабря 2014 г.). «Ford отказывается от Microsoft в пользу QNX в новейшей автомобильной технической платформе» . ТехКранч . Проверено 26 февраля 2015 г.
- ^ US5745759
- ^ Хильдебранд, Дэн (6 июня 1997 г.). «Думай о малом. (Интернет-вызов 1,44 млн)» . marc.info .
- ^ «Как мы это сделали!» . Архивировано из оригинала 28 ноября 1999 года . Проверено 3 августа 2020 г.
- ^ АВТОМОБИЛЬ QNX http://www.qnx.com/products/qnxcar/
- ^ Сотрудники QNX (17 августа 2004 г.). «QNX предлагает чрезвычайно надежное микроядро для масштабируемой системы маршрутизации» . Проверено 16 марта 2012 г.
- ^ «Передовые методы эксплуатации CRS-1 и IOS XR» . Циско .
- ^ Брэд Риз - BradReese.Com (26 сентября 2006 г.). «Какая ОС стоит за IOS?» . Архивировано из оригинала 22 декабря 2011 г. Проверено 16 марта 2012 г.
- ^ Леру, Поль (12 сентября 2007 г.). «QNX публикует исходный код Neutrino и открывает процесс разработки» . www.qnx.com .
- ^ «RIM купит программное обеспечение QNX» . Глобус и почта . Торонто. Канадская пресса . 9 апреля 2010 года . Проверено 9 апреля 2010 г.
- ^ «foundry27: просмотреть вики-страницу: UpdatedQNXSourceAccessPolicyFAQ» . сообщество.qnx.com .
- ^ «RIM представляет BlackBerry PlayBook» (официальный пресс-релиз). 27 сентября 2010 г.
- ^ Молен, Брэд (18 октября 2011 г.). «Research in Motion анонсирует BBX, «объединяющий в себе лучшее от BlackBerry и QNX» » . Engadget . Проверено 20 января 2013 г.
- ^ Артур, Чарльз (07 декабря 2011 г.). «Производитель BlackBerry RIM вынужден отказаться от названия BBX ради нового программного обеспечения» . Хранитель . Лондон . Проверено 20 января 2013 г.
- ^ Хартли, Мэтт (3 марта 2014 г.). «Apple Inc CarPlay добавляет функции iPhone на приборные панели автомобилей GM, BMW, Ford и других автомобилей» . Финансовый пост . Проверено 28 марта 2014 г.
- ^ «QNX от BlackBerry: почему он так ценен для Apple, Google и автомобильной промышленности» . ЗДНет . Проверено 27 октября 2014 г.
- ^ «BlackBerry QNX запускает самую передовую и безопасную встраиваемую программную платформу для автономного вождения и подключенных автомобилей» . 04.01.2017.
- ^ «Платформа разработки программного обеспечения QNX® (SDP) 8.0» . 11 декабря 2023 г.
- ^ «Базовая сеть 6.4: сетевой стек следующего поколения Neutrino и Foundry27» .
- ^ «foundry27: Просмотр вики-страницы: Drivers_wiki_page» . сообщество.qnx.com .
- ^ «QNX Neutrino RTOS – Встроенная ОС | BlackBerry QNX | BlackBerry QNX» .
- ^ Левенес, Эрик (1 мая 2011 г.). «История UNIX» . levenez.com . Проверено 18 мая 2011 г.
- ^ «Примечания к выпуску QNX® Neutrino® Core OS 6.3.2» . 16 августа 2006 г.
- ^ «Платформа разработки программного обеспечения QNX® (SDP) 8.0: Примечания к выпуску» . 11 декабря 2023 г.
- ^ «Размеры сборки wolfSSL для встроенной ОСРВ QNX» . волкSSL . 17 сентября 2010 г. Проверено 13 февраля 2019 г.
- ^ «Операционная система QNX для безопасности» .
- ^ «Операционная система реального времени QNX Neutrino» . QNX . 15 июля 2010 г. Проверено 15 октября 2012 г.
- ^ Портал сообщества OpenQNX: объявить
- ^ Пресс-релизы QNX: Foundry27
Дальнейшее чтение
[ редактировать ]- Дэн Хильдебранд (1992). «Обзор архитектуры QNX» . Материалы семинара по микроядрам и другим архитектурам ядра : 113–126. ISBN 1-880446-42-1 .
Внешние ссылки
[ редактировать ]
- 1980 заведений в Онтарио
- Операционные системы ARM
- БлэкБерри Лимитед
- Вычислительные платформы
- Распределенные операционные системы
- Встроенные операционные системы
- Информационные технологические компании Канады
- Легкие Unix-подобные системы
- Операционные системы на основе микроядра
- Микроядра
- Мобильные операционные системы
- Собственные операционные системы
- Операционные системы реального времени
- Операционные системы для планшетов
- Компании-разработчики программного обеспечения, основанные в 1980 году.