QNX - QNX

QNX
Logo QNX.jpeg
Snímek obrazovky QNX 6.4.1.png
Výchozí plocha v QNX 6.4.1
Vývojář BlackBerry (dříve QNX Software Systems )
Rodina OS Unixové
Pracovní stav Proud
Zdrojový model Uzavřený zdroj
První vydání 1982 ; Před 39 lety ( 1982 )
Poslední vydání 7.1 / červenec 2020 ; před 1 rokem ( 2020-07 )
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 .com

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, prockterý 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í

externí odkazy