stringtranslate.com

QNX

QNX ( / ˌ k juː ˌ ɛ n ˈ ɛ k s / или / ˈ k juː n ɪ k s / ) — коммерческая Unix-подобная операционная система реального времени , ориентированная в первую очередь на рынок встраиваемых систем .

Первоначально продукт был разработан в начале 1980-х годов канадской компанией Quantum Software Systems, позднее переименованной в QNX Software Systems.

По состоянию на 2022 год он используется в различных устройствах, включая автомобили , [1] медицинские приборы , программные логические контроллеры , автоматизированное производство , поезда и многое другое.

История

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

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

В конце 1980-х годов Quantum поняла, что рынок быстро движется к модели Portable Operating System Interface ( 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) и всех текущих интерфейсов прикладного программирования (API) POSIX и любых новых 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 Software Modularity (представлено в 2006 г.) [8] были основаны на QNX. IOS Software Modularity так и не получила распространения и была ограничена только небольшим тиражом для Catalyst 6500, в то время как IOS XR перешла на Linux с версии 6.x.

В сентябре 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] который в декабре 2011 года был переименован в BlackBerry 10. [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]

17 июля 2024 года QNX запустила QNX Containers, предоставляя основанную на стандартах среду для развертывания, выполнения и управления контейнерной технологией на устройствах на базе QNX. [19]

14 сентября 2024 года была анонсирована файловая система QNX Filesystem for Safety (QFS). QFS — это файловая система проверки целостности, соответствующая POSIX и сертифицированная по ISO 26262, которая предоставляет OEM-производителям и другим поставщикам встроенного программного обеспечения дополнительный уровень проверки при создании систем, критически важных для безопасности. [20]

Технологии

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

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

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

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

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

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

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

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

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

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

Релизы

Использует

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

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

С момента появления «Safe Kernel 1.0» в 2010 году QNX был спроектирован и впоследствии использовался в автоматизированных системах привода или ADAS для автомобильных проектов, которым требуется сертифицированная по функциональной безопасности RTOS. QNX предоставляет это с помощью своих продуктов QNX OS for Safety. [28]

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

По состоянию на 26 июня 2023 года программное обеспечение QNX установлено более чем в 235 миллионах транспортных средств по всему миру, включая большинство ведущих производителей оригинального оборудования и автомобилей первого уровня, таких как BMW, Bosch, Continental, Dongfeng Motor, Geely, Honda, Mercedes-Benz, Toyota, Volkswagen, Volvo и другие. [29]

Лицензирование

QNX предлагает лицензию для некоммерческих и академических пользователей. [30] В январе 2024 года BlackBerry представила QNX Everywhere, чтобы сделать QNX более доступным для любителей. QNX Everywhere пока не стал общедоступным.

Сообщество

Смотрите также

Ссылки

  1. ^ ab Бернс, Мэтт (11 декабря 2014 г.). «Ford отказывается от Microsoft в пользу QNX в новейшей технологической платформе для автомобилей». TechCrunch . Получено 26 февраля 2015 г.
  2. ^ US5745759
  3. Хильдебранд, Дэн (6 июня 1997 г.). «Думай о малом. (Вызов веб-сайту в 1,44 млн. страниц)». marc.info .
  4. ^ "How we did it!". Архивировано из оригинала 28 ноября 1999 года . Получено 3 августа 2020 года .
  5. ^ АВТОМОБИЛЬ QNX http://www.qnx.com/products/qnxcar/
  6. ^ Сотрудники QNX (2004-08-17). "QNX предоставляет чрезвычайно надежное микроядро для масштабируемой системы маршрутизации" . Получено 2012-03-16 .
  7. ^ "Рекомендации по эксплуатации CRS-1 и IOS XR". Cisco .
  8. ^ Брэд Риз- BradReese.Com (2006-09-26). "Какая ОС стоит за IOS?". Архивировано из оригинала 2011-12-22 . Получено 2012-03-16 .
  9. ^ Леру, Пол (12 сентября 2007 г.). «QNX публикует исходный код Neutrino и открывает процесс разработки». www.qnx.com .
  10. ^ "RIM покупает QNX Software". The Globe and Mail . Торонто. The Canadian Press . 9 апреля 2010 г. Получено 2010-04-09 .
  11. ^ "foundry27: Просмотр страницы Wiki: UpdatedQNXSourceAccessPolicyFAQ". community.qnx.com .
  12. ^ "RIM представляет BlackBerry PlayBook" (официальный пресс-релиз). 27 сентября 2010 г.
  13. ^ Молен, Брэд (18 октября 2011 г.). «Research in Motion анонсирует BBX, «сочетающий в себе лучшее из BlackBerry и QNX». Engadget . Получено 20 января 2013 г.
  14. ^ Артур, Чарльз (2011-12-07). «Производитель BlackBerry RIM вынужден отказаться от названия BBX для нового программного обеспечения». Guardian . Лондон . Получено 20-01-2013 .
  15. ^ Хартли, Мэтт (3 марта 2014 г.). «Apple Inc CarPlay приносит функции iPhone на приборные панели GM, BMW, Ford и других автомобилей». Financial Post . Получено 28.03.2014 .
  16. ^ "QNX от BlackBerry: почему он так ценен для Apple, Google и автомобильной промышленности". ZDNet . Получено 27 октября 2014 г.
  17. ^ «BlackBerry QNX запускает свою самую передовую и безопасную встроенную программную платформу для автономного вождения и подключенных автомобилей». 2017-01-04.
  18. ^ "Платформа разработки программного обеспечения QNX® (SDP) 8.0". 11 декабря 2023 г.
  19. ^ "QNX добавляет контейнеры QNX в портфолио доверенных платформ разработки программного обеспечения". www.blackberry.com . Получено 2024-09-23 .
  20. ^ "BlackBerry QNX усиливает портфель автомобильного программного обеспечения с помощью новой файловой системы с сертификатом безопасности". www.blackberry.com . Получено 23 сентября 2024 г.
  21. ^ «Core Networking 6.4: сетевой стек следующего поколения Neutrino и Foundry27».
  22. ^ "foundry27: Просмотр страницы Wiki: Drivers_wiki_page". community.qnx.com .
  23. ^ «ОСРВ QNX Neutrino – Встроенная ОС | BlackBerry QNX | BlackBerry QNX» .
  24. ^ Левенес, Эрик (1 мая 2011 г.). "История UNIX". levenez.com . Получено 18 мая 2011 г. .
  25. ^ «Примечания к выпуску QNX® Neutrino® Core OS 6.3.2» . 16 августа 2006 г.
  26. ^ «Платформа разработки программного обеспечения QNX® (SDP) 8.0: Примечания к выпуску». 11 декабря 2023 г.
  27. ^ "Размеры сборки wolfSSL для встроенной ОСРВ QNX". wolfSSL . 17 сентября 2010 . Получено 13.02.2019 .
  28. ^ «QNX OS для безопасности».
  29. ^ «Программное обеспечение BlackBerry теперь встроено в более чем 235 миллионов транспортных средств». www.blackberry.com . Получено 2024-09-23 .
  30. ^ "Операционная система реального времени QNX Neutrino". QNX . 2010-07-15 . Получено 2012-10-15 .
  31. ^ Портал сообщества OpenQNX: Анонс
  32. ^ Пресс-релизы QNX: Foundry27

Дальнейшее чтение

Внешние ссылки