QNX tem um histórico quadriculado longo como um sistema operacional incorporado. QNX sempre foi popular por ser um sistema operacional de tempo genuíno com uma arquitetura de microkernel. Ou seja, as funções do kernel são executadas como um conjunto de tarefas coordenadas em vez de como uma única parte de código. Um lançamento recente do QNX 7 (ver vídeo, abaixo) permite que ele seja executado em computadores de mesa de 64 bits, bem como [Elahav] tomou uma decisão de lidar com a transformação deste sistema operacional incorporado em um sistema operacional de desktop.
Isso pode ruído, no entanto, o QNX é um sistema compatível com Posix, bem como tem todos os recursos que você esperaria em um sistema como Linux ou BSD. Não é destinado ao mercado desktop, bem como como resultado, não tem muita ferramentas para administrar a área de trabalho. QNX não é o tipo de rtos que você descobrirá em um arduino. É muito mais típico em coisas como sistemas de automóvel (por exemplo, ele executa o sistema OnStar do Motor Geral).
Ele começou com um minúsculo Board ITX, bem como o QNX instalado. Normalmente, você estabelece para um sistema incorporado em uma estação de trabalho, bem como basta enviar o código até o sistema de destino, no entanto [Elahav] assumiu o tempo para obter um sistema de desenvolvimento que trabalha no alvo. Houve um problema. O editor VI incorporado foi primitivo pelos padrões contemporâneos. Ele é normalmente um usuário do Emacs, no entanto, até mesmo o VIM seria muito melhor do que o “estoque” vi. Enquanto um porto de Emacs seria possível, isso também precisava de portar uma grande quantidade de bibliotecas, então seu primeiro trabalho foi obter o código-fonte VIM para compilar.
Acabou por não ser tão simples quanto ele esperava. O sistema de desenvolvimento esperava ferramentas específicas do GNU que não existiam ainda (embora versões comuns das ferramentas, como o Grep, existiam). Então ele teve que descobrir exatamente como cruzar o vim compilar. Em retrospecto, [Elahav] tomou uma decisão que ele deve ter acabado de perceber as ferramentas do GNU primeiro. Ele teve que eliminar algum código antigo do VIM que foi destinado a uma versão mais antiga do QNX.
O resto da experiência foi relativamente bem. Ele lidou em desenvolver o SDL, bem como o porto por alguns jogos. O QT existe no qnx, no entanto, com uma configuração que favorece o sistema incorporado (por exemplo, o que mostra a tela inteira). Building qt apps foi possível, no entanto, sem um gerente de janela apropriado, ainda não era a experiência desktop que ele queria. Algumas semanas depois, ele lidou com um gerente de janela. Tenha em mente, o design da tela do QNX não é X, então agarra uma peça de código existente não foi uma opção provável.
É prático? Talvez, embora não vejamos o código real disponível. É desejável? Muito provavelmente não, a menos que você esteja utilizando o QNX já, assim como ainda não temos certeza. No entanto, é uma excelente história do tipo de dificuldades incluídas em fazer algo offbeat útil, um problema que apontamos antes quando você desenvolve sua própria CPU. Claro, [Elahav] começou com um ambiente bastante rico. Se você quer ver alguém bootstrap quase tudo, inspecione a A2Z. Bem como se você esteve por algum tempo, assim como acreditar em ter em mente mais um ambiente de desktop Qnx, você não está errado.