QNX

Qnx
QNX logo.jpeg
QNX 6.4.1 screenshot.png
Der Standarddesktop in QNX 6.4.1
Entwickler Brombeere (Früher QNX Software Systems)
OS -Familie Unix-artig
Arbeitszustand Aktuell
Quellmodell Geschlossene Quelle
Erstveröffentlichung 1982; Vor 40 Jahren
Neueste Erscheinung 7.1 / Juli 2020; vor 2 Jahren
Marketingziel Eingebettete Systeme
Paket-Manager In der Lage, ein PKGSRC -Framework aus dem NetBSD -Projekt zu verwenden
Plattformen Aktuell: x86-64, ARM32, ARM64
Ehemalige: MIPS, Powerpc, Sh-4, Starker Arm, Xscale
Kernel Typ RTOs (Mikrokernel)
Userland Posix
Lizenz Proprietär
Offizielle Website Brombeere.qnx.com

Qnx (/ˌkJuː ˌɛn ˈɛks/ oder /ˈkJuːnɪks/) ist ein Werbespot Unix-artig Echtzeit-Betriebssystem, vor allem auf die eingebettete Systeme Markt. QNX war einer der ersten kommerziell erfolgreichen Mikrokernel Betriebssysteme.

Das Produkt wurde ursprünglich Anfang der 1980er Jahre von entwickelt kanadisch Firmenquanten -Softwaresysteme, später in QNX -Softwaresysteme umbenannt.

Ab 2020Es wird in verschiedenen Geräten einschließlich Autos verwendet[1] und Mobiltelefone.

Geschichte

Gordon Bell und Dan Dodgebeide Schüler bei der Universität von Waterloo 1980 belegte er einen Kurs in Echtzeit-Betriebssystemen, in dem die Schüler ein grundlegendes Echtzeit-Microkernel- und Benutzerprogramme bauten. Beide waren überzeugt, dass ein solches System kommerziell erforderlich war und in die High-Tech-geplante Gemeinschaft wechselte Kanata, Ontario, um Quantum -Softwaresysteme in diesem Jahr zu starten. 1982 wurde die erste Version von Qunix für die veröffentlicht Intel 8088 ZENTRALPROZESSOR. 1984 benannten Quantensoftware -Systeme Qunix in QNX um, um Markenverletzungsherausforderungen zu vermeiden.

Eine der ersten weit verbreiteten Verwendungen des QNX-Echtzeit-OS (RTOs) war in der nicht eingefassten Welt, als es als Betriebssystem für die ausgewählt wurde Ontario eigenes Computerdesign des Bildungssystems, die Unisys Ikone. Im Laufe der Jahre wurde QNX hauptsächlich für größere Projekte verwendet, da sein 44-km-Kernel zu groß war, um in die Ein-Chip-Computer der Ära zu passen. Das System hat einen Ruf für Zuverlässigkeit erlangt und in vielen industriellen Anwendungen bei laufenden Maschinen eingesetzt.

In den späten 1980er Jahren erkannte Quantum, dass sich der Markt schnell in Richtung der tragbaren Betriebssystemschnittstelle bewegte (Grenzfläche (Posix) Modell und beschloss, den Kernel neu zu schreiben, um auf niedriger Ebene viel kompatibler zu sein. Das Ergebnis war QNX 4. In dieser Zeit Patrick HaydenWährend er als Praktikant zusammen mit Robin Burgener (damals Vollzeitbeschäftigter) arbeitete, entwickelte er ein neues Fenstersystem. Das patentierte[2] Das Konzept wurde zum Einbettungsbett entwickelt grafische Benutzeroberfläche (GUI) nannte den QNX Photon Microgui. QNX stellte auch eine Version des X Fenstersystem.

Um die Fähigkeit und die relativ geringe Größe des Betriebssystems zu demonstrieren, veröffentlichte QNX Ende der neunziger Jahre ein Demo-Bild, das das posix-konforme QNX 4-OS, eine vollständige grafische Benutzeroberfläche, ein grafischer Texteditor, TCP/IP-Netzwerk, Webbrowser und Webserver enthielt, das Alle passen auf einen bootfähigen 1.44Mb Diskette Für den 386 PC.[3][4]

Gegen Ende der neunziger Jahre begann das Unternehmen, das dann QNX -Softwaresysteme genannt wurde Symmetrische Multiprozessierung (SMP) fähig und alle Strom zu unterstützen Posix Anwendungsprogrammierschnittstellen (API) und alle neuen POSIX -APIs, die erwartet werden könnten, während sie die Mikrokernel -Architektur behalten. Dies führte zu QNX Neutrino, das 2001 veröffentlicht wurde.

Zusammen mit dem Neutrino -Kernel wurde QNX -Softwaresysteme Gründungsmitglied der Finsternis (integrierte Entwicklungsumgebung) Konsortium. Das Unternehmen veröffentlichte eine Reihe von Sonnenfinsternis Plugins Mit der Eclipse Workbench im Jahr 2002 verpackt und QNX Momentics Tool Suite genannt.

Im Jahr 2004 kündigte das Unternehmen an, an das verkauft worden sei Harman International Branchen. Vor dieser Akquisition wurde die QNX -Software bereits in der Automobilindustrie für häufig verwendet Telematik Systeme. Seit dem Kauf von Harman wurde die QNX -Software in über 200 verschiedene entwickelt Automobil Marken und Modelle, in Telematiksystemen sowie in Infotainment- und Navigationseinheiten. Die QNX-Autoanwendungsplattform fuhr Mitte 2011 in über 20 Millionen Fahrzeugen.[5] Das Unternehmen hat seitdem mehrere veröffentlicht Middleware Produkte einschließlich der QNX Aviage Multimedia Suite, der QNX Aviage Acoustic Processing Suite und der QNX HMI Suite.

Die Mikrokernel von Cisco -Systeme' IOS-XR (Ultrahohe Verfügbarkeit iOS, eingeführt 2004)[6][7] und IOS -Software -Modularität (eingeführt 2006)[8] basieren auf QNX.

Im September 2007 kündigte QNX Softwares Systems die Verfügbarkeit einiger seiner Angaben an Quellcode.[9]

Am 9. April 2010, Forschung in Bewegung (später umbenannt in Blackberry Limited) kündigte an, QNX -Softwaresysteme von Harman International Industries zu erwerben.[10] Am selben Tag wurde der Zugriff auf den QNX -Quellcode von der Öffentlichkeit und Hobbyisten beschränkt.[11]

Im September 2010 kündigte das Unternehmen a an Tablet, das Blackberry Playbookund ein neues Betriebssystem Blackberry Tablet OS Basierend auf QNX zum Ausführen auf dem Tablet.[12]

Am 18. Oktober 2011 kündigte Research In Motion "BBX" an,[13] was später umbenannt wurde Blackberry 10, im Dezember 2011.[14] Blackberry 10 -Geräte bauen auf dem BlackBerry Playbook QNX -basierte Betriebssystem für Touch -Geräte auf, passen Sie jedoch die Benutzeroberfläche an Smartphones Verwendung der Qt Basierte Cascades native Benutzeroberflächen-Framework.

Auf der Genfer Autosalon demonstrierte Apple Carplay das liefert an iOS-ähnliche Benutzeroberfläche zu Kopfeinheiten in kompatiblen Fahrzeugen. Sobald der Autohersteller vom Autohersteller konfiguriert wurde, kann QNX so programmiert werden, dass er sein Display und einige Funktionen an ein Apple CarPlay -Gerät abgeben.[15][16]

Am 11. Dezember 2014, Ford Motor Company erklärte, dass es ersetzen würde Microsoft Auto mit QNX.[1]

Im Januar 2017 kündigte QNX die bevorstehende Veröffentlichung seines SDP 7.0 mit Unterstützung für Intel und Arm an 32- und 64-Bit Plattformen und Unterstützung für C ++ 14. Es wurde im März 2017 veröffentlicht.[17]

Technologie

Als ein Mikrokernel-Basiertes Betriebssystem basiert auf der Idee, den größten Teil der auszuführen Betriebssystem Kernel in Form einer Reihe kleiner Aufgaben, benannte Ressourcenmanager. Dies unterscheidet sich von den traditionelleren monolithischer Kernel, in dem der Kernel des Betriebssystems ein sehr großes Programm ist, das aus einer Vielzahl von Teilen besteht, mit besonderen Fähigkeiten. Bei QNX ermöglicht die Verwendung eines Mikrokernels Benutzern (Entwickler), alle Funktionen auszuschalten, die sie nicht benötigen, ohne das Betriebssystem zu ändern. Stattdessen werden solche Dienste einfach nicht ausgeführt.

Der QNX -Kernel, procnto, enthält nur CPU -Planung, Interprozesskommunikation, unterbrechen Umleitung und Timer. Alles andere läuft als Benutzerprozess, einschließlich eines speziellen Prozesss als bekannt als Proc was die Prozesserstellung durchführt und Speicherverwaltung durch Betrieb in Verbindung mit dem Mikrokernel. Dies wird durch zwei Schlüsselmechanismen ermöglicht: Interprozess-Kommunikation vom Unterroutine-Call-Typ und a Bootlader Dies kann ein Bild laden, das den Kernel und alle gewünschten Mengen von Benutzerprogrammen und gemeinsam genutzten Bibliotheken enthält. Es gibt keine Gerätetreiber im Kernel. Der Netzwerkstapel basiert auf Netbsd Code.[18] Zusammen mit seiner Unterstützung für seine eigenen nativen Gerätefahrer unterstützt QNX sein Erbe. IO-NET-Manager Server und die Netzwerktreiber portieren von NetBSD.[19]

QNX Interprocess -Kommunikation besteht darin, eine Nachricht von einem Prozess an einen anderen zu senden und auf eine Antwort zu warten. Dies ist eine einzelne Operation, genannt Msgsend. Die Nachricht wird vom Kernel vom Adressraum des Sendeprozesses bis zum Empfangsprozess kopiert. Wenn der Empfangsprozess auf die Nachricht wartet, wird die Steuerung der CPU gleichzeitig ohne Durchlauf des CPU -Schedulers übertragen. Das Senden einer Nachricht an einen anderen Prozess und das Warten auf eine Antwort führt nicht dazu, dass die CPU "an der Reihe" verliert. Diese enge Integration zwischen Nachrichtenübergang und CPU -Planung ist einer der wichtigsten Mechanismen, mit denen die QNX -Nachrichten weitgehend verwendet werden können. Die meisten Unix und Linux Interprozess -Kommunikationsmechanismen fehlen diese enge Integration, obwohl a Benutzerraum Implementierung von Messaging vom QNX-Typ für Linux existiert. Das Misshandeln dieses subtilen Problems ist ein Hauptgrund für die enttäuschende Leistung einiger anderer Mikrokernel -Systeme wie frühen Versionen von Mach. Der Empfängerprozess muss nicht auf derselben physischen Maschine liegen.

Alle E/A -Operationen, Dateisystemvorgänge und Netzwerkoperationen sollten diesen Mechanismus durcharbeiten, und die übertragenen Daten wurden während des Nachrichtenübergangs kopiert. Spätere Versionen von QNX reduzieren die Anzahl separater Prozesse und integrieren aus Leistungsgründen den Netzwerkstapel und andere Funktionsblöcke in einzelnen Anwendungen.

Die Handhabung der Nachrichten wird priorisiert von Faden Priorität. Da E/A -Anfragen mithilfe von Nachrichtenübergaben durchgeführt werden, erhalten Threads mit hoher Priorität einen E/A -Service vor niedrigen Prioritätsthreads, eine wesentliche Funktion in a Harte Echtzeit System.

Der Bootlader ist die andere Schlüsselkomponente des minimalen Mikrokernel -Systems. Da Benutzerprogramme in das Boot -Image integriert werden können, müssen die für das Start benötigten Geräte -Treiber und Support -Bibliotheken nicht im Kernel sein und nicht. Sogar Funktionen wie Programmladen befinden sich nicht im Kernel, sondern befinden sich in freigegebenen Benutzer-Raum-Bibliotheken, die als Teil des Boot-Images geladen werden. Es ist möglich, ein ganz Rom, die für scheibenlose eingebettete Systeme verwendet wird.

Neutrino unterstützt Symmetrische Multiprozessierung und Prozessoraffinität, gebundene Multiprozessing (BMP) in der QNX -Terminologie. BMP wird verwendet, um das Cache-Treffer zu verbessern und die Migration von nicht-smp sicheren Anwendungen auf Multi-Proprozessor-Computer zu verringern.

Neutrino unterstützt strikte vorrangig-preemptive Planung und adaptive Partitionsplanung (APS). APS garantiert ausgewählten Gruppen von Threads minimale CPU -Prozentsätze, obwohl andere möglicherweise eine höhere Priorität haben. Der adaptive Partitionsplaner ist nach wie vor streng vorrangig vorgegeben, wenn das System unterbelastet ist. Es kann auch so konfiguriert werden, dass ein ausgewählter Satz kritischer Threads strikt ausgeführt wird Echtzeit, auch wenn das System überlastet ist.

Das QNX -Betriebssystem enthielt auch einen Webbrowser mit dem Namen "Voyager".[20]

Wegen seines Mikrokernel Architektur QNX ist auch a verteiltes Betriebssystem. Dan Dodge und Peter van der Veen Hold US -Patent 6.697.876: Distributed Kernel -Betriebssystem Basierend auf den verteilten Verarbeitungsfunktionen des QNX -Betriebssystems im Handel als transparente verteilte Verarbeitung bekannt. Auf diese Weise können die QNX -Kernel auf separaten Geräten auf die Systemdienste des anderen zugreifen, die den gleichen Kommunikationsmechanismus wie zum Zugriff auf lokale Dienste verwenden.

Veröffentlichungen

Qnx RTOS -Geschichte[21]
Ausführung Datum Verteilungsmedium Anmerkungen
1981 Qunix Gegründet.
Beta 1983 Wie QNX Beta
1.0 1984
2.0 1987 Elemente von 4.3bsd wie TCP/IP und Ppp verschmolzen zu Qnx 2.0.
2.21 1989 QNX 2.21
4.0 1990 QNX 4.0
4.1 1994 Elemente von 4,4bsd in QNX 4.1
4.2 1995 QNX 4.2
4.22 1995 QNX 4.22
4.24 1995 Qnx/Neutrino 1.0 stammt aus QNX 4.24
4.25 1997 QNX 4.25 Fortsetzung nach Gabel mit QNX/Neutrino 1.0.
QNX/Neutrino Microkernel -Geschichte - gestrichen von QNX 4.24 im Jahr 1996.
Veröffentlichung Datum Anmerkungen
1.0 1996 Qnx/Neutrino 1.0 wie aus QNX 4.24 gegabelt
2.0 1998 Qnx/Neutrino 2.0
2.10 1999 Qnx/Neutrino 2.10 (QRTP)
6 18. Januar 2001 Qnx RTOS 6
6.1.0 2001 Qnx RTOS 6
6.1.0 (Patch a) 28. September 2001
6.2 4. Juni 2002 Qnx 6.2 (Momentic)
6.2 (Patch a) 18. Oktober 2002 QNX 6.2
6.2.1 18. Februar 2003 QNX 6.2.1 (Momentic)
6.3 3. Juni 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. Oktober 2008 QNX Neutrino RTOS 6.4.0
6.4.1 Mai 2009 QNX Neutrino RTOS 6.4.1
6.5.0 Juli 2010 QNX Neutrino RTOS 6.5.0 ist gegabelt, um BBX zu produzieren,
wie am 18. Oktober 2011 angekündigt und später vorschau
genannt "Blackberry 10 OS "Am 1. Mai 2012.
6.5 SP1 11. Juli 2012 QNX Neutrino RTOS 6.5 SP1
6.6 28. Februar 2014 QNX 6.6
7.0 4. Januar 2017 QNX SDP 7.0, erste Version mit 64-Bit-Unterstützung
7.1 23. Juli 2020 QNX SDP 7.1

Verwendet

Das Blackberry Playbook Tablet Entworfen von Blackberry verwendet Eine Version von QNX als primäres Betriebssystem. Geräte von Blackberry laufen die Blackberry 10 Das Betriebssystem basiert auch auf QNX.

QNX wird auch in Auto -Infotainment -Systemen verwendet, wobei viele große Autohersteller Varianten anbieten, die eine eingebettete QNX -Architektur enthalten. Es wird von beliebter unterstützt SSL/TLS Bibliotheken wie Wolfssl.[22]

In den letzten[wenn?] Jahre QNX wurde im automatisierten Laufwerk oder im automatischen Laufwerk verwendet oder Adas Systeme für Automobilprojekte, die a erfordern Funktionssicherheit Zertifizierung. Qnx liefert dies mit its QNX OS zur Sicherheit Produkt.

Qnx Neutrino (2001) war portiert auf eine Reihe von Plattformen und läuft jetzt praktisch auf jeden modernen Zentrale Verarbeitungseinheit (CPU) Familie, die im eingebetteten Markt verwendet wird. Dies beinhaltet die Powerpc, x86, MIPS, Sh-4und die eng miteinander verbundenen von ARM, Starker Arm, und Xscale.

Lizenzierung

QNX bietet eine Lizenz für nichtkommerzielle und akademische Benutzer.[23]

Gemeinschaft

  • OpenQNX ist ein QNX -Community -Portal, das unabhängig voneinander gegründet und betrieben wird. Ein IRC -Kanal- und Newsgroups -Zugriff über Web ist verfügbar. Verschiedene Branchen werden von den Entwicklern auf dem Gelände vertreten.[24]
  • Gießerei27 ist eine webbasierte QNX-Community, die vom Unternehmen gegründet wurde. Es dient als Hub für die QNX -Neutrino -Entwicklung, bei der sich Entwickler registrieren, die Lizenz auswählen und den Quellcode und das zugehörige Toolkit der RTOs erhalten können.[25]

Siehe auch

Verweise

  1. ^ a b Burns, Matt (11. Dezember 2014). "Ford greift Microsoft für QNX in der neuesten Tech-Plattform in Fahrzeuge". Techcrunch. Abgerufen 26. Februar, 2015.
  2. ^ US5745759
  3. ^ Hildebrand, Dan (6. Juni 1997). "Denken Sie klein. (Die 1,44 m Web Challenge)". marc.info.
  4. ^ "Wie wir es gemacht haben!". Archiviert von das Original am 28. November 1999. Abgerufen 3. August 2020.
  5. ^ Qnx Auto http://www.qnx.com/products/qnxcar/
  6. ^ QNX Staff (2004-08-17). "QNX liefert ein äußerst zuverlässiges Mikrokernel für ein massiv skalierbares Routing -System". Abgerufen 2012-03-16.
  7. ^ "CRS-1 und iOS XR operative Best Practices". Cisco.
  8. ^ Brad Reese- Bradreese.com (2006-09-26). "Welches Betriebssystem ist hinter iOS?". Abgerufen 2012-03-16.
  9. ^ Leroux, Paul (12. September 2007). "QNX veröffentlicht Neutrino -Quellcode und öffnet den Entwicklungsprozess". www.qnx.com.
  10. ^ "RIM, um QNX -Software zu kaufen". The Globe and Mail. Toronto. Die kanadische Presse. 9. April 2010. Abgerufen 2010-04-09.
  11. ^ "Foundry27: Wiki -Seite anzeigen: aktualisiertQNXSourceAccessspolicyfaq". Community.qnx.com.
  12. ^ RIM enthüllt das Blackberry Playbook, offizielle Pressemitteilung, 27. September 2010
  13. ^ Molen, Brad (18. Oktober 2011). "Research in Motion kündigt BBX an, 'kombiniert das Beste von Blackberry und Qnx'". Engadget. Abgerufen 20. Januar 2013.
  14. ^ Arthur, Charles (2011-12-07). "Blackberry-Maker Rim muss den BBX-Namen für neue Software fallen lassen". Wächter. London. Abgerufen 2013-01-20.
  15. ^ Hartley, Matt (3. März 2014). "Apple Inc CarPlay bringt iPhone -Funktionen zu GM, BMW, Ford und anderen Auto -Dashboards.". Finanzpost. Abgerufen 2014-03-28.
  16. ^ "BlackBerry's QNX: Warum ist es für Apple, Google, Autoindustrie so wertvoll.". ZDNET. Abgerufen 2014-10-27.
  17. ^ "Blackberry QNX startet seine fortschrittlichste und sichere eingebettete Softwareplattform für autonome Laufwerk und verbundene Autos". 2017-01-04.
  18. ^ Kernnetzwerke 6.4: Neutrinos nächstes Gen -Networking -Stack und Foundry27 [1]
  19. ^ "Foundry27: Wiki -Seite anzeigen: treiber_wiki_page". Community.qnx.com.
  20. ^ "Qnx Neutrino RTOS - Embedded OS | Blackberry Qnx | Blackberry Qnx".
  21. ^ Lévénez, Éric (1. Mai 2011). "Unix -Geschichte". levenez.com. Abgerufen 18. Mai, 2011.
  22. ^ "Wolfssl bauen Größen für die QNX -eingebetteten RTOs". Wolfssl. 17. September 2010. Abgerufen 2019-02-13.
  23. ^ "QNX Neutrino Echtzeitbetriebssystem". Qnx. 2010-07-15. Abgerufen 2012-10-15.
  24. ^ OpenQNX Community Portal: Bekannt geben
  25. ^ QNX -Pressemitteilungen: Gießerei27

Weitere Lektüre

Externe Links