QNX heeft een lange geruite geschiedenis als een ingesloten besturingssysteem. QNX was altijd populair om een echt tijdbesturingssysteem te zijn met een MicroKernel-architectuur. Dat wil zeggen, de kernel-functies lopen als een set gecoördineerde taken in plaats van als een enkel stuk code. Een recente release van QNX 7 (zie video, hieronder) Hiermee kan deze worden uitgevoerd op 64-bits desktopcomputers en [Elahav] heeft een beslissing genomen om deze ingebedde RTOS aan te pakken in een desktop-besturingssysteem.
Dat kan lawaai vergezocht, hoe QNX echter een Posix-conform systeem is, evenals alle functies die u zou verwachten in een systeem zoals Linux of BSD. Het is gewoon niet gericht op de desktopmarkt en als gevolg hiervan heeft niet veel hulpmiddelen voor het uitvoeren van het bureaublad. QNX is niet het type RTO’s dat je zult ontdekken op een Arduino. Het is veel meer typerend in dingen zoals automobielsystemen (het draait bijvoorbeeld het OnStar-systeem van General Motor).
Hij begon met een klein ITX-bord, evenals geïnstalleerde QNX. Gewoonlijk stelt u op voor een ingebed systeem op een werkstation en verzendt u vervolgens de code naar het doelsysteem, maar [Elahav] nam de tijd om een ontwikkelsysteem te krijgen dat aan het doelwit werkt. Er was één probleem. De ingebouwde VI-editor was primitief door hedendaagse normen. Hij is normaal gesproken een Emacs-gebruiker, maar zelfs vim zou veel beter zijn dan de “Stock” VI. Hoewel een EMACS-poort mogelijk zou zijn, zou het eveneens een groot deel van bibliotheken moeten worden geport, dus zijn allereerste taak was om de VIM-broncode te verzamelen om te compileren.
Bleek niet zo simpel te zijn als hij had gehoopt. Het ontwikkelde systeem verwachte specifieke GNU-gereedschappen die nog niet bestonden (hoewel gemeenschappelijke versies van de gereedschappen, zoals grep, bestonden). Dus moest hij erachter komen hoe ze compileer vim kunnen oversteken. Achteraf heeft [Elahav] een beslissing genomen die hij eerst de GNU-gereedschappen moet hebben geporteerd. Hij moest een oude code van VIM elimineren die gericht was op een oudere versie van QNX.
De rest van de ervaring verliep relatief goed. Hij behandeld om SDL te ontwikkelen, evenals een poort over enkele games. QT bestaat op QNX, maar met een configuratie die het embedded-systeem voorgeeft (bijvoorbeeld, wat het volledige scherm toont). Building QT-apps was mogelijk, maar zonder een geschikte vensterbeheerder was het nog steeds niet de desktopervaring die hij wilde. Een paar weken later behandelde hij een Window Manager. Houd in gedachten, het schermontwerp van QNX is niet x, dus het grijpen van een bestaand stuk code was geen waarschijnlijke optie.
Is het praktisch? Misschien, hoewel we de beschikbare eigenlijke code niet hebben gezien. Is het wenselijk? Hoogstwaarschijnlijk niet, tenzij je al qnx gebruikt, evenals zelfs dan weten we het niet zeker. Het is echter een uitstekend verhaal over het soort moeilijkheden bij het nuttigen van iets bruikbaar, een probleem waarvan we hebben opgemerkt voordat u uw eigen CPU ontwikkelt. Natuurlijk begon [Elahav] met een vrij rijke omgeving. Als je iemand Bootstrap bijna alles wilt zien, inspecteer je A2Z. Evenals als je een tijdje geleden bent en geloof dat je in gedachten houdt, heb je nog een QNX Desktop-omgeving, je bent het niet verkeerd.