QNX - QNX
Vývojář | BlackBerry (dříve QNX Software Systems ) |
---|---|
Rodina OS | Unixové |
Pracovní stav | Proud |
Zdrojový model | Uzavřený zdroj |
První vydání | 1982 |
Poslední vydání | 7.1 / červenec 2020 |
Marketingový cíl | Vestavěné systémy |
Správce balíčků | Schopen používat rámec Pkgsrc z projektu NetBSD |
Platformy | Aktuální: x86-64 , ARM32 , ARM64 Bývalý: MIPS , PowerPC , SH-4 , StrongARM , XScale |
Typ jádra | RTOS ( mikrojádro ) |
Uživatelská země | POSIX |
Licence | Proprietární |
Oficiální webové stránky | blackberry |
QNX ( / ˌ k ju ˌ ɛ n ɛ K s / nebo / k ju n ɪ k y / ) je komerční Unix-jako operační systém v reálném čase , zaměřené především na vestavěných systémů trhu. QNX byl jedním z prvních komerčně úspěšných mikrojádrových operačních systémů. Od roku 2020 se používá v různých zařízeních, včetně automobilů a mobilních telefonů .
Produkt byl původně vyvinut na začátku 80. let kanadskou společností Quantum Software Systems , později přejmenovanou na QNX Software Systems . Společnost nakonec získala společnost BlackBerry Limited v roce 2010.
Popis
Jako operační systém na bázi mikrojádra je QNX založen na myšlence spouštět většinu jádra operačního systému ve formě řady malých úkolů, pojmenovaných Resource Managers. To se liší od tradičnějšího monolitického jádra , ve kterém je jádro operačního systému velmi rozsáhlý program složený z velkého počtu částí se speciálními schopnostmi. V případě QNX umožňuje použití mikrojádra uživatelům (vývojářům) vypnout všechny funkce, které nepotřebují, aniž by museli měnit OS. Místo toho se takové služby jednoduše nespustí.
Aby společnost QNX demonstrovala schopnost operačního systému a relativně malou velikost, vydala na konci devadesátých let ukázkový obrázek, který obsahoval operační systém QNX 4 kompatibilní s POSIX, úplné grafické uživatelské rozhraní, grafický textový editor, sítě TCP/IP, webový prohlížeč a webový server, který vše se vejde na zaváděcí disketu 1,44 MB pro počítač 386.
QNX Neutrino (2001) byl přenesen na řadu platforem a nyní běží prakticky na jakékoli moderní rodině centrálních procesorových jednotek (CPU), která se používá na integrovaném trhu. To zahrnuje PowerPC , x86 , MIPS , SH-4 a úzce propojené ARM , StrongARM a XScale .
QNX nabízí licenci pro nekomerční a akademické uživatele.
BlackBerry PlayBook tablet počítač navržený BlackBerry používá verzi QNX jako primární operační systém. Zařízení od BlackBerry s operačním systémem BlackBerry 10 vycházejí také z QNX.
QNX se také používá v informačních a zábavních systémech automobilů, přičemž mnoho velkých automobilek nabízí varianty, které obsahují integrovanou architekturu QNX. Je podporován populárními knihovnami SSL/TLS , jako je wolfSSL .
V posledních letech byl QNX používán v automatizovaných pohonech nebo systémech ADAS pro automobilové projekty, které vyžadují certifikaci funkční bezpečnosti . QNX to poskytuje se svým produktem QNX OS for Safety .
Operační systém QNX také obsahoval webový prohlížeč známý jako „Voyager“.
Dějiny
Gordon Bell a Dan Dodge , oba studenti University of Waterloo v roce 1980, absolvovali kurz ( CS452 ) v operačních systémech v reálném čase, ve kterém studenti sestrojili základní mikrokernel a uživatelské programy v reálném čase. Oba byli přesvědčeni, že takový systém existuje z komerčního hlediska, a v tom roce se přestěhovali do high-tech plánované komunity Kanata v Ontariu , aby spustili Quantum Software Systems. V roce 1982 byla vydána první verze QUNIX pro procesor Intel 8088 . V roce 1984 přejmenovala společnost Quantum Software Systems QUNIX na QNX ve snaze vyhnout se jakýmkoli problémům s porušováním ochranných známek.
Jedno z prvních rozšířených použití operačního systému QNX v reálném čase (RTOS) bylo v neembedovém světě, když byl vybrán jako operační systém pro vlastní počítačový design vzdělávacího systému Ontario , Unisys ICON . V průběhu let byl QNX používán převážně pro větší projekty, protože jeho 44k jádro bylo příliš velké na to, aby se vešlo do jednočipových počítačů té doby. Systém si získal pověst spolehlivosti a stal se používán v provozních strojích v mnoha průmyslových aplikacích.
Na konci osmdesátých let si společnost Quantum uvědomila, že se trh rychle pohybuje směrem k modelu POSIX (Portable Operating System Interface ) a rozhodl se přepsat jádro, aby bylo na nízké úrovni mnohem kompatibilnější. Výsledkem byl QNX 4. Během této doby Patrick Hayden , když pracoval jako stážista, spolu s Robinem Burgenerem (v té době zaměstnancem na plný úvazek) vyvinul nový okenní systém. Tento patentovaný koncept byl vyvinut do integrovatelného grafického uživatelského rozhraní (GUI) s názvem QNX Photon microGUI. Společnost QNX také poskytla verzi systému X Window .
Ke konci devadesátých let začala společnost, tehdy pojmenovaná QNX Software Systems, pracovat na nové verzi QNX, navržené od základů tak, aby byla schopná symetrického multiprocesingu (SMP), a na podporu všech současných rozhraní pro programování aplikací (API) POSIX ) a jakákoli nová rozhraní POSIX API, která lze očekávat při zachování architektury mikrojádra. Výsledkem byl QNX Neutrino, vydaný v roce 2001.
Spolu s jádrem Neutrino se společnost QNX Software Systems stala zakládajícím členem konsorcia Eclipse ( integrované vývojové prostředí ). Společnost vydala v roce 2002 sadu Eclipse plug-inů zabalených s pracovním stolem Eclipse a pojmenovala QNX Momentics Tool Suite.
V roce 2004 společnost oznámila, že byla prodána společnosti Harman International Industries. Před touto akvizicí byl software QNX již široce používán v automobilovém průmyslu pro telematické systémy. Od nákupu společností Harman byl software QNX navržen pro více než 200 různých automobilových značek a modelů, v telematických systémech a v informačních a navigačních jednotkách. V polovině roku 2011 fungovala aplikační platforma QNX CAR ve více než 20 milionech vozidel. Společnost od té doby vydala několik produktů middlewaru, včetně QNX Aviage Multimedia Suite, QNX Aviage Acoustic Processing Suite a QNX HMI Suite.
Mikrojádra IOS-XR společnosti Cisco Systems ( IOS s mimořádně vysokou dostupností, zavedena v roce 2004) a softwarová modularita IOS (zavedená v roce 2006) vycházejí z QNX.
V září 2007 společnost QNX Software Systems oznámila dostupnost některých svých zdrojových kódů .
9. dubna 2010 společnost Research In Motion oznámila, že koupí softwarové systémy QNX od společnosti Harman International Industries. Ve stejný den byl přístup ke zdrojovým kódům QNX veřejnosti a fandům omezen.
V září 2010 společnost oznámila tabletový počítač , BlackBerry PlayBook a nový operační systém BlackBerry Tablet OS založený na QNX pro běh na tabletu.
18. října 2011 společnost Research In Motion v prosinci 2011 oznámila „BBX“, která byla později přejmenována na BlackBerry 10. Zařízení Blackberry 10 staví na operačním systému založeném na BlackBerry PlayBook QNX pro dotyková zařízení, ale přizpůsobují uživatelské rozhraní pro smartphony pomocí Nativní rámec uživatelského rozhraní Cascades založený na Qt .
Na ženevském autosalonu Apple předvedl CarPlay, který poskytuje uživatelské rozhraní podobné iOS pro hlavní jednotky v kompatibilních vozidlech. Jakmile je výrobce automobilů nakonfigurován, QNX lze naprogramovat tak, aby předával svůj displej a některé funkce zařízení Apple CarPlay.
11. prosince 2014, Ford Motor Company uvedla, že nahradí Microsoft Auto s QNX.
V lednu 2017 společnost QNX oznámila nadcházející vydání svého SDP 7.0 s podporou 32bitových a 64bitových platforem Intel a ARM a podporou C ++ 14 . To bylo propuštěno v březnu 2017.
Bezpečnostní problém
V srpnu 2021 byla oznámena vysoce riziková zranitelnost starších verzí QNX.
Technologie
Jádro QNX procnto
, obsahuje pouze plánování CPU , meziprocesovou komunikaci , přesměrování přerušení a časovače. Všechno ostatní běží jako uživatelský proces, včetně speciálního procesu známého jako, proc
který provádí vytváření procesů a správu paměti tím, že pracuje ve spojení s mikrojádrem . To umožňují dva klíčové mechanismy: meziprocesová komunikace typu podprogramu a zaváděcí zavaděč, který dokáže načíst obraz obsahující jádro a libovolnou sadu uživatelských programů a sdílených knihoven. V jádře nejsou žádné ovladače zařízení . Síťový zásobník je založen na kódu NetBSD . Spolu s podporou vlastních, nativních ovladačů zařízení podporuje QNX svůj starší server io-net manager a síťové ovladače portované z NetBSD.
Komunikace mezi procesy QNX spočívá v odeslání zprávy z jednoho procesu do druhého a čekání na odpověď. Jedná se o jedinou operaci, tzv MsgSend
. Zprávu zkopíruje jádro z adresního prostoru odesílacího procesu do přijímacího procesu. Pokud proces příjmu čeká na zprávu, řízení CPU se přenáší současně, bez průchodu plánovačem CPU. Odeslání zprávy jinému procesu a čekání na odpověď tedy nemá za následek „ztrátu tahu“ pro CPU. Tato těsná integrace mezi předáváním zpráv a plánováním CPU je jedním z klíčových mechanismů, díky nimž je předávání zpráv QNX široce použitelné. Většina interprocesních komunikačních mechanismů Unixu a Linuxu postrádá tuto těsnou integraci, přestože implementace zasílání zpráv typu QNX pro Linux v uživatelském prostoru existuje . Nesprávné zacházení s tímto jemným problémem je hlavním důvodem neuspokojivého výkonu některých jiných mikrojádrových systémů, jako jsou rané verze Machu . Proces příjemce nemusí být na stejném fyzickém počítači.
Všechny I/O operace, operace se souborovým systémem a síťové operace měly fungovat tímto mechanismem a přenesená data byla zkopírována během předávání zpráv. Pozdější verze QNX snižují počet oddělených procesů a integrují síťový zásobník a další funkční bloky do jednotlivých aplikací z důvodu výkonu.
Zpracování zpráv má prioritu podle priority vlákna . Vzhledem k tomu, že požadavky I/O jsou prováděny pomocí předávání zpráv, vlákna s vysokou prioritou přijímají službu I/O před vlákny s nízkou prioritou, což je základní funkce v tvrdém systému v reálném čase .
Zaváděcí zavaděč je další klíčovou součástí systému minimálního mikrojádra. Protože do spouštěcí bitové kopie lze zabudovat uživatelské programy, sada ovladačů zařízení a knihoven podpory potřebných pro spuštění nemusí a nemusí být v jádře. I takové funkce, jako je načítání programu, nejsou v jádře, ale místo toho jsou ve sdílených knihovnách uživatelského prostoru načteny jako součást spouštěcího obrazu. Do ROM , která se používá pro bezdiskové vestavěné systémy, je možné vložit celý spouštěcí obraz .
Neutrino podporuje symetrické multiprocesing a afinitu k procesoru , v terminologii QNX nazývané vázané multiprocesing (BMP). BMP se používá ke zlepšení ukládání do mezipaměti a ke zjednodušení migrace aplikací, které nejsou bezpečné pro SMP, do víceprocesorových počítačů.
Neutrino podporuje přísné prioritní plánování a adaptivní plánování oddílů (APS). APS zaručuje minimální procento CPU vybraným skupinám vláken, přestože ostatní mohou mít vyšší prioritu. Když je systém nedostatečně nabitý, adaptivní plánovač oddílů je stále přísně prioritní. Lze jej také nakonfigurovat tak, aby běžel vybranou sadu kritických vláken striktně v reálném čase , i když je systém přetížen.
Historie vydání QNX RTOS
Historie QNX RTOS
Verze | datum | Distribuční médium | Poznámky |
---|---|---|---|
1981 | Založen QUNIX . | ||
Beta | 1983 | Jako QNX Beta | |
1,0 | 1984 | ||
2.0 | 1987 | Prvky 4.3BSD jako TCP/IP a PPP byly sloučeny do QNX 2.0 . | |
2.21 | 1989 | QNX 2.21 | |
4,0 | 1990 | QNX 4.0 | |
4.1 | 1994 | Prvky 4,4BSD do QNX 4.1 | |
4.2 | 1995 | QNX 4.2 | |
4.22 | 1995 | QNX 4.22 | |
4.24 | 1995 | QNX/Neutrino 1.0 je vidlicový od QNX 4.24 | |
4.25 | 1997 | QNX 4.25 pokračuje po forku s QNX/Neutrino 1.0. |
Historie vydání QNX/Neutrino
Historie mikrojádra QNX/Neutrino - vidlicový od QNX 4,24 v roce 1996.
Uvolnění | datum | Poznámky |
---|---|---|
1,0 | 1996 | QNX/Neutrino 1.0 jako vidlicový od QNX 4.24 |
2.0 | 1998 | QNX/Neutrino 2.0 |
2.10 | 1999 | QNX/Neutrino 2.10 (QRTP) |
6 | 18. ledna 2001 | QNX RTOS 6 |
6.1.0 | 2001 | QNX RTOS 6 |
6.1.0 (oprava A) | 28. září 2001 | |
6.2 | 4. června 2002 | QNX 6.2 (Momentics) |
6.2 (patch A) | 18. října 2002 | QNX 6.2 |
6.2.1 | 18. února 2003 | QNX 6.2.1 (Momentics) |
6.3 | 3. června 2004 | QNX 6.3 |
6.3.0 SP1 | ? | |
6.3.0 SP2 | ? | |
6.3.0 SP3/ OS 6.3.2 |
||
6.3.2 | ||
6.4.0 | 30. října 2008 | QNX Neutrino RTOS 6.4.0 |
6.4.1 | Květen 2009 | QNX Neutrino RTOS 6.4.1 |
6.5.0 | Červenec 2010 |
QNX Neutrino RTOS 6.5.0 je rozvětvený na produkci BBX, jak bylo oznámeno 18. října 2011, a později v náhledu s názvem „ BlackBerry 10 OS“ 1. května 2012. |
6,5 SP1 | 11. července 2012 | QNX Neutrino RTOS 6.5 SP1 |
6.6 | 28. února 2014 | QNX 6.6 |
7.0 | 4. ledna 2017 | QNX SDP 7.0 , první verze s 64bitovou podporou |
7.1 | 23. července 2020 | QNX SDP 7.1 |
Transparentní distribuované zpracování
Díky své mikrojádrové architektuře je QNX také distribuovaným operačním systémem . Dan Dodge a Peter van der Veen jsou držiteli patentu USA 6 697 876: Operační systém distribuovaného jádra založený na funkcích distribuovaného zpracování operačního systému QNX, komerčně známých jako Transparentní distribuované zpracování. To umožňuje jádrům QNX na samostatných zařízeních vzájemný přístup k systémovým službám pomocí efektivního stejného komunikačního mechanismu, jaký se používá pro přístup k místním službám.
Fóra
OpenQNX je komunitní portál QNX vytvořený a provozovaný samostatně. K dispozici je kanál IRC a diskusní skupiny prostřednictvím webu. Různorodá průmyslová odvětví jsou na webu zastoupena vývojáři.
Foundry27 je webová komunita QNX založená společností. Slouží jako rozbočovač pro vývoj QNX Neutrino, kde se vývojáři mohou zaregistrovat, vybrat si licenci a získat zdrojový kód a související sadu nástrojů RTOS.
Viz také
Reference
Další čtení
- Dan Hildebrand (1992). „Architektonický přehled QNX“ . Sborník z workshopu o mikrojádrech a jiných architekturách jádra : 113–126. ISBN 1-880446-42-1.