1 pontos por GN⁺ 2025-10-07 | 1 comentários | Compartilhar no WhatsApp
  • QNX é um sistema operacional de tempo real baseado em microkernel que surgiu no Canadá no início dos anos 1980
  • Oferece suporte a diversos tipos de hardware, incluindo IBM PC, além de alta portabilidade, passagem de mensagens distribuída, grande confiabilidade e um ambiente de multitarefa
  • Teve grande influência ao ser adotado em computadores educacionais, infraestrutura industrial e sistemas veiculares
  • Reforçou a compatibilidade com Unix por meio da conformidade com POSIX e evoluiu com uma GUI leve (Photon) e diversos recursos de rede
  • Continuou a elevar estabilidade, desempenho e segurança, acompanhando mudanças recentes de mercado em áreas como automotiva, embarcados e mobilidade

O início do sistema operacional QNX

  • Em 1979, Gordon Bell e Dan Dodge, da University of Waterloo, ganharam experiência por meio do projeto de sistema operacional de tempo real chamado Thoth
    • O Thoth se destacava por alta portabilidade, passagem síncrona de mensagens e operação independente de hardware
  • Após se formarem, Bell e Dodge fundaram a Quantum Software Systems (mais tarde QNX Software Systems) e iniciaram o desenvolvimento de seu próprio SO em um microcomputador protótipo baseado em 6809

QUNIX — o predecessor do QNX

  • A primeira versão, QUNIX 0.1, era baseada em microkernel, uma mistura de elementos de CP/M e UNIX, e foi desenvolvida como o primeiro SO de tempo real com microkernel para IBM PC
  • Diferentemente do Unix tradicional, introduziu uma estrutura própria de diretórios, como /cmds, /config, /sys, além de um conjunto de comandos próprio, como help
  • Havia limitações iniciais, como suporte a disco rígido (HDD de 5 MB no QUNIX 0.4) e boot baseado em disquete

A transição para QNX e o crescimento

  • Por questões de marca registrada da AT&T, o nome foi alterado de QUNIX para QNX em 1982, com o lançamento oficial do QNX 1.0 em 1983
    • Kernel: cerca de 10.000 linhas de código em C, com características de microkernel como escalonamento, message passing e tratamento de prioridades
    • A maior parte dos serviços (sistema de arquivos, drivers, rede etc.) seguia uma arquitetura de comunicação baseada em mensagens
    • Suporte a filas de mensagens com transparência de rede, até 250 tarefas simultâneas e múltiplos usuários
  • Era vendido por US$ 650 (em 1983), incluindo compilador C, editor e suporte a rede
  • QNX 1.2 (1984): melhorias em pattern matching, programação de shell, suporte ao IBM AT, redução de preço etc.

Entrada no setor educacional: Burroughs ICON

  • Foi adotado no projeto de computador educacional padrão do Ministério da Educação de Ontário, levando ao desenvolvimento do computador ICON (80186, 512K RAM, com QNX)
  • Boot via servidor de arquivos em rede (ARCNET), sem dispositivo de armazenamento individual; os usuários usavam diretórios pessoais no servidor
  • Houve tentativa de criar lessonware baseado em hipertexto, além da construção de um sistema avançado com vários softwares educacionais, rede, áudio e expansibilidade

Expansão nos mercados industrial e comercial

  • Na segunda metade dos anos 1980, refletiu demandas do mercado com suporte a IBM PS/2, LAN, GUI e emulação de DOS (QDOS, RUNDOS)
  • Em 1987, o QNX 2 trouxe upgrades como modo protegido do IBM AT, rede BSD, arquivos de 1 TB, 32 portas seriais e uma GUI simples (House)
  • A organização também cresceu, com expansão do escritório e mudança para uma nova sede

Adoção de POSIX e a GUI Photon

  • QNX 4.0 (1991): conformidade com POSIX, kernel ainda menor (7K, 605 LOC), IPC, rede e melhorias de desempenho
  • Em 1994, foi lançado o QNX Photon microGUI: GUI leve baseada em microkernel, transparência de rede e suporte a diversos dispositivos
    • O Photon podia escalar de ambientes com recursos limitados até GUIs mais avançadas, além de oferecer API compatível com X Window
    • Todo o ambiente de demonstração (rede, navegador web, gerenciamento de arquivos etc.) era leve o suficiente para rodar em um único disquete de 1,44 MB

Sistemas embarcados e distribuídos, e a evolução para o Neutrino

  • Até o QNX 4.25 (1997), houve várias melhorias, e o sistema liderou entre os SOs de tempo real em grandes empresas e ambientes industriais, como usinas, medicina, transporte e espaço
  • Em 1996, surgiu o QNX Neutrino 1.0: SMP, POSIX aprimorado, amplo suporte a CPUs, adoção de GNU/GCC e melhorias no gerenciamento de processos/threads
    • O gerenciamento de memória e o isolamento de processos tornaram-se mais rigorosos, e a adoção do código de rede do NetBSD ampliou sua versatilidade

Parcerias e entrada em mercados

  • Em 1998, houve tentativa de parceria com a Amiga (que no fim acabou adotando Linux)
  • Neutrino 2.0/2.1 (1999): UPM (mecanismo de proteção em nível de kernel), suporte a múltiplas arquiteturas como PowerPC/MIPS/ARM e maior diversidade no ambiente de desenvolvimento
  • Em 1999, em cooperação com a Motorola, entrou no mercado de sistemas de infotainment automotivo (navegação, áudio etc.)

Anos 2000: multimídia, automotivo e mobilidade

  • QNX 6.0 (2001): streaming multimídia, gerenciador de pacotes web e integração de ambientes de desenvolvimento para várias CPUs/arquiteturas
  • Modernização com o Momentics Tool Suite baseado em Eclipse (2002), clustering de rede, IPv6 etc.
  • Após a aquisição pela Harman International em 2004, houve foco nos mercados embarcado e automotivo, com a introdução da plataforma QNX CAR e adoção por grandes fabricantes de veículos
  • Comercialização em larga escala: até 2010, estava embarcado em 17 milhões de veículos e mais de 200 modelos

Aquisição pela BlackBerry e evolução em mobilidade/segurança

  • Em 2010, a Research in Motion (BlackBerry) adquiriu a QNX, expandindo-a como sistema operacional do BlackBerry PlayBook e do BB10 (=BBX)
    • Kernel QNX Safety (certificações ISO/IEC, segurança para sistemas mission-critical), ampliando a presença no mercado embarcado certificado
    • Melhorias contínuas no Photon, rede, multimídia, UI/UX etc.
  • BBX (2013): UI centrada em gestos, multitarefa e vários frameworks de aplicativos, com hardware de alto desempenho
    • Acabou não conseguindo competir por fatores como ecossistema limitado de apps e remoção do teclado, embora sua vida útil tenha sido estendida até 2022

Conclusão

  • QNX se destacou por tempo real, design de kernel atômico, multiprocessamento com transparência de rede, escalabilidade e segurança
  • Construiu um espaço próprio em compatibilidade com Unix e nos setores industrial, automotivo e de embarcados
  • Embora tenha fracassado na disputa com o open source e na entrada em ambientes móveis de massa, mantém reputação de padrão industrial em áreas mission-critical

1 comentários

 
GN⁺ 2025-10-07
Comentários do Hacker News
  • Tenho algumas lembranças divertidas relacionadas a esse OS. Quando eu estava no ensino fundamental, havia computadores ICON na sala de aula, e eu me lembro de competir com meus amigos para girar o trackball o mais rápido possível. Quando trabalhei na BlackBerry, desenvolvi um recurso para fazer o QNX BlackBerry funcionar como dispositivo Bluetooth HID. Isso permitia até controlar um notebook remotamente com o trackpad e o teclado físico, e era realmente útil em apresentações. Mas algum PM mandou limitar esse recurso apenas ao PlayBook, então ele acabou ficando praticamente inútil. Lembro claramente do Dan Dodge argumentando que, por ser um padrão, não se deveria impor restrições. Passei a admirar o Dan Dodge, e não gostaria de trabalhar de novo com esse PM

    • É surpreendente que o computador ICON fosse baseado nesse OS. Naquela época, ele era muito mais avançado do que os PCs comuns. A exceção era o recurso de conversar entre ICONs, que podia facilmente derrubar outros sistemas ou até a rede inteira

    • QNX acabou virando o BlackBerry 10. Foi o melhor OS móvel que já usei. É uma pena que tão poucas pessoas tenham usado

    • Já usei o recurso HID em que você trabalhou e gostei muito

    • O KDE Connect faz praticamente a mesma coisa, e melhor. É sinceramente excelente

    • Gostaria que a experiência do ICON pudesse ser preservada em um emulador. Hoje em dia, parece que daria até para emular uma rede ICON inteira no navegador

  • Eu gostava muito da estética minimalista do QNX Photon. Mantive uma configuração complexa do FVWM só para preservar ao máximo a vibe do Photon. Como referência, aqui vai uma captura de tela do meu desktop Gentoo de 2004: captura de tela do desktop

    • Eu também peguei sua configuração e a mantive por mais de 15 anos

    • Ainda parece bonito hoje. Fico curioso se você ainda tem os dotfiles

    • É muito melhor que meu tema do WindowMaker. Seu tema de FVWM é realmente bonito

    • O que aparece na captura de tela não é um clone do Winamp?

  • Gostei muito da ideia do QNX e criei expectativas enormes. Na época, nossa equipe estava migrando um processador óptico de alimentos de DSP para hardware de uso geral (FireWire, 1394). O isolamento de processos do QNX era impressionante, mas o overhead da transferência de dados baseada em mensagens não era tão satisfatório. No fim, pagamos US$ 2 mil para ter suporte a isochronous mode/dma no driver 1394 do Linux e usamos isso com extensões RT. A lição que tirei disso foi a “lei da conservação da feiura”. Em sistemas de software, sempre sobra alguma “feiura” inevitável em algum ponto, e quando você melhora um lado, essa “feiura” se desloca para outro

    • Acho que a “lei da conservação da feiura” é essencialmente muito parecida com o “princípio do colchão d’água”. Em sistemas com certo grau de complexidade, se você aperta um problema em um lugar, ele inevitavelmente aparece em outro. Se quiser saber mais sobre o princípio do colchão d’água, pode ver aqui

    • Há uma ideia para acelerar a passagem de mensagens no QNX. É um jeito de enviar mensagens usando o mecanismo de paginação, atualizando apenas a tabela de páginas sem copiar os dados. Claro que ainda existe o overhead de double TSS load em comparação com um macro kernel, mas é rápido. Ainda assim, a elegância tem seu preço. Quando você considera latência, confiabilidade, estabilidade e precisão, esses fatores pesam muito mais do que a simples velocidade de processamento

    • Hoje em dia, o DSMP (Direct System Memory Protection) é totalmente suportado, e o desempenho do sistema também melhorou muito, então acho que o overhead da passagem de mensagens não é um problema tão grande. Na verdade, vejo mais vantagens nisso

    • Fico me perguntando se “optical food processor” é uma metáfora ou um dispositivo real que usa imagens para cortar comida

  • A foto do ICON neste blog é justamente do meu ICON e foi tirada do meu blog (obrigado por citar a fonte). Compartilho meu post sobre computadores ICON no QNX. No primeiro texto também há um link para um vídeo de demonstração do QNX no YouTube
    post sobre o ICON
    post sobre o LEXICON

    • Fico curioso se você pretende fazer backup do software ou das ROMs no archive.org. A criação de um emulador desse sistema ficou travada por causa do problema de acesso às ROMs
  • Por volta de 2002, acessei meu cable modem via telnet e fiquei impressionado ao ver que ele rodava QNX

  • Por volta de 1996, recebi um QNX que cabia em um único disquete, com GUI de RTOS e até pilha de rede, e fiquei maravilhado com o tamanho reduzido. Só a instalação do Slackware já exigia vários discos, então o QNX parecia inacreditável

    • Eu também lembro. Até navegador web vinha naquele pequeno demo. Se quiser experimentar você mesmo, pode fazer isso aqui

    • Essas versões demo, na verdade, serviam justamente para mostrar recursos. Na época, o QNX era tão impressionante no mercado de live CDs que as pessoas não cansavam de elogiar. Aliás, também havia um Linux com X11 e navegador web rodando a partir de disquete, o que também era realmente incrível link para comentário no HN

    • Lembro de mexer com desktop Linux por volta de 2000 e levar um susto quando baixei o demo do QNX

  • Usei o QNX 4 para construir um sistema robótico na universidade. Conseguimos montar um robô hard real-time completo usando placas de CPU 486/Pentium conectadas em rede. Fiquei impressionado que as system calls básicas do QNX (send/receive/reply) eram implementadas inline no arquivo de cabeçalho com praticamente três linhas de assembly. Com base nessa experiência, aprendi muito implementando recursos parecidos em vxWorks, SunOS, Linux e outros no campo da robótica
    artigo sobre o sistema robótico

    • O QNX já foi o “padrão que tornou possível o impossível” entre os microkernels usados de verdade no mundo real. Hoje em dia, fico curioso para saber onde ele se posicionaria em comparação com OSs mais recentes como Nintendo Switch Horizon, seL4 e HarmonyOS NEXT
  • Se você quiser experimentar QNX no Raspberry Pi, compartilho um texto que pode servir de referência: guia de instalação do QNX no Raspberry Pi

  • Criei um servidor de áudio em QNX e até portei funcionalidades de codificação e reprodução de MP3. Quando visitei a sede, o Dan Dodge instruiu a equipe a nos dar todo o suporte possível. Graças a isso, conseguimos lançar a startup com estabilidade, e isso nos ajudou bastante até migrarmos para Linux seis anos depois

    • História muito legal. Vamos tentar reviver esse espírito com o QNX Everywhere. O plano é oferecer acesso gratuito à comunidade e dar o máximo de suporte possível
  • Na Quantum, eles diziam respeitar o Unix, mas promoviam o QNX como um design dos anos 1980 que se tornaria o OS dos anos 1990. Na época, não levaram em conta GNU, internet, Microsoft Windows, desenvolvimento por terceiros, a barreira de entrada dos apps baseados em Windows, a web, shareware, BBS, VAR, o movimento do software livre e assim por diante. O mercado de sistemas operacionais é winner-takes-all, e a política de preços de algumas centenas de dólares foi um erro fatal. Talvez fosse inevitável naquela época, mas havia claramente uma falta de percepção do problema. Claro, eles também demoraram a perceber a importância da GUI, e a Photon GUI só apareceu no QNX 4.1 (1994)

    • Esse OS era um sistema singular: compatível com POSIX, escalável até desktop e servidor, extremamente estável e ainda capaz de controle em tempo real. Graças às características de tempo real, a interação era muito fluida, e esse tipo de nicho permitiu que a empresa sobrevivesse até os anos 1990 e 2000. O demo de 1999, que colocava GUI completa, rede e navegador web em apenas 1,44 MB, continua sendo uma compressão funcional tão impressionante que eu nunca vi nada no mesmo nível até hoje. Hoje, o Linux em tempo real já alcança desempenho no nível do QNX, e desde o QNX 6.6 o desenvolvimento self-hosting também foi abandonado, o que reduziu parte do apelo. Do ponto de vista de negócios, faz sentido focar no mercado automotivo e embarcado, mas como entusiasta de tecnologia isso deixa um gosto amargo. Com licenças caras e concorrência do Linux em tempo real (na ponta mais alta) e de Zephyr/FreeRTOS (na ponta mais baixa), não consigo pensar em muitos motivos para escolher QNX em novos projetos. Se alguém tiver exemplos recentes de escolha do QNX, gostaria de ouvir opiniões