Introdução
O QNX é um sistema operacional de tempo real amplamente conhecido por sua confiabilidade, estabilidade e alto desempenho, características essenciais para aplicações em sistemas críticos, incluindo aeroespacial e defesa, automotivo, robótica, dispositivos médicos e controle industrial.
Destaca-se por possuir uma arquitetura de microkernel, uma abordagem que difere significativamente dos kernels monolíticos mais comuns.
Apesar de não ser de código aberto, é possível obter licenças de avaliação e acadêmicas.
Sua arquitetura modular oferece segurança e estabilidade, com serviços como gerenciamento de memória, escalonamento de processos e comunicação entre processos.
Neste artigo, entraremos na essência do Sistema Operacional de Tempo Real QNX, destacando suas características técnicas fundamentais e explorando como elas impactam diretamente na desempenho, segurança, disponibilidade e confiabilidade.
Revisão histórica
A história do sistema operacional QNX remonta à década de 1980, quando foi desenvolvido por Gordon Bell e Dan Dodge na empresa Quantum Software Systems, no Canadá.
Em 1982, a Quantum Software Systems mudou seu nome para QNX Software Systems para refletir o foco crescente no desenvolvimento do sistema operacional QNX.
Uma virada significativa ocorreu em 2004, quando a empresa QNX Software Systems se tornou subsidiária da Harman International. A BlackBerry (anteriormente conhecida como Research In Motion ou RIM) adquiriu a QNX Software Systems em 2010 da Harman International Industries, integrou o QNX em sua oferta de softwares para dispositivos móveis e também continuou a desenvolver e suportar o sistema operacional para outros setores.
Com o tempo, a BlackBerry agregou o QNX em sua estratégia, especialmente no setor automotivo e tornou-se uma escolha popular para sistemas de infoentretenimento em veículos, painéis digitais, controles de motor e outros componentes críticos em automóveis.
Onde QNX é utilizado?
Segundo a QNX Software Systems, setores críticos onde adaptabilidade, confiabilidade e capacidade de tempo real (hard real time) são necessidades, a escolha por um sistema operacional com as características do QNX é uma escolha fundamentada.
Isto faz com que QNX seja utilizado em diversas indústrias como: aeroespacial e defesa, dispositivos médicos, controles industriais, transporte ferroviário, veículos autônomos, robótica automação e maquinário pesado.
Licenças
O QNX não é um sistema operacional open-source, seu código-fonte não está disponível publicamente e seu desenvolvimento é conduzido internamente pela equipe da QNX Software Systems.
Embora não seja de código aberto, existem basicamente duas licenças disponíveis para fins de avaliação e desenvolvimento, uma limitada em 30 dias e outra para uso acadêmico permanente.
É necessário criar uma conta myQNX e preencher um formulário de solicitação, no entanto, esta licença de avaliação de 30 dias é apenas para projetos comerciais. Informações para esta modalidade pode ser obtida em QNX SDP 8.0 30-day evaluation.
Licenças acadêmicas são concedidas a instituições elegíveis e seus docentes, a partir do programa QNX-in-Education como forma de apoio à pesquisa, desenvolvimento e educação continuada. É gratuita e as licenças não expiram. Veja mais em QNX-in-Education FAQ.
O que é um Microkernel?
Um microkernel é uma arquitetura de sistema operacional que adota uma abordagem modular e minimalista, projetada para manter no núcleo (kernel) apenas funcionalidades essenciais, como o gerenciamento de memória, escalonamento de processos e comunicação entre processos (IPC).
Drivers de dispositivos e sistemas de arquivos, por exemplo, são implementadas como processos em espaço de usuário isolados de outros serviços. Este é um dos benefícios de segurança a favor dos microkernels bastante discutido, o argumento é que este isolamento proporciona maior segurança e estabilidade, uma vez que falhas em um serviço não afetam diretamente outros.
O verdadeiro objetivo ao projetar um sistema operacional microkernel não é simplesmente “torná-lo pequeno”. Um sistema operacional microkernel incorpora uma mudança fundamental na abordagem de fornecimento de funcionalidade do sistema operacional. A modularidade é a chave, o tamanho é apenas um “efeito colateral”.
O QNX não está sozinho nessa, longe disso, ficou curioso? Veja uma lista de sistemas operacionais baseados em arquitetura microkernel.
- Minix 3 (https://www.minix3.org/)
- Integrity (http://www.ghs.com/news/20040731_INTEGRITY.html)
- PikeOS (http://www.sysgo.com/en/products/pikeos/technology/microkernel/)
- Symbian (http://www.symbian.com/developer/techlib/papers/HWinterupt/HwInterrupt.pdf)
- L4Linux (http://l4linux.org/)
- Singularity (http://research.microsoft.com/os/singularity/)
- K42 (http://encyclopedia.thefreedictionary.com/K42)
- Mac OS X (http://arstechnica.com/reviews/2q00/macos-qna/macos-x-qa-3.html)
- HURD (Mach) (http://www.gnu.org/software/hurd/hurd.html)
- Coyotos (http://www.coyotos.org/)
Sem a necessidade de entrar nos conceitos de um kernel com arquitetura monolítica, a figura a seguir ilustra suas diferenças principais.

Arquitetura Microkernel do QNX
QNX Neutrino RTOS, chamado de procnto, consiste em apenas um microkernel e um gerenciador de processos.
Praticamente não há diferenças entre os as aplicações escritas pelos usuários e os demais processos que estendem a funcionalidade do sistema operacional (drivers de dispositivos, sistemas de arquivos, etc.). Cada processo é executado em um espaço de memória completamente separado dos demais e a comunicação entre eles é feita por diversos mecanismos de IPC (Interprocess Communication).
A filosofia de design, desde sua concepção, é fortemente apoiada pelos mecanismos de IPC, especialmente a passagem de mensagens.
A figura a seguir é uma das mais representativas destes conceitos.
Segundo os desenvolvedores do QNX, seu enorme diferencial é que seu núcleo (kernel), dedica-se exclusivamente a algumas funcionalidades fundamentais:
- Thread Services: Através de primitivas POSIX, o microkernel oferece serviços essenciais para a criação e manipulação de threads.
- Signal Services: Utilizando primitivas POSIX, proporciona uma comunicação eficaz entre os componentes do sistema.
- Message-Passing Services: O microkernel assume a responsabilidade pelo encaminhamento de todas as mensagens entre os threads em todo o sistema.
- Synchronization Services: Através de primitivas de sincronização de thread POSIX, o microkernel viabiliza a ordem apropriada de execução.
- Scheduling Services: Agenda threads para execução, seguindo diversas políticas de agendamento (FIFO, Round-Robin e Sporadic).
- Timer Services: O microkernel fornece um conjunto abrangente de serviços de timer POSIX.
- Process Management Services: A integração entre o microkernel e o gerenciador de processos forma uma unidade coesa, denominada “procnto”. O gerenciador de processos assume a responsabilidade pelo controle de processos, gerenciamento de memória e manipulação de “pathname space”.
Outros componentes do QNX Neutrino RTOS
A arquitetura do microkernel é complementada com diversos aspectos do sistema operacional como o monitoramento de eventos do sistema (instrumented microkernel), processamento multicore, dynamic linking, device drivers, networking, fault recovery (high availability manager), adaptive partitioning e muito mais.
Conclusão
A trajetória histórica do QNX, desde sua concepção na década de 1980 até sua integração estratégica pela BlackBerry destaca sua consolidação em setores críticos e adaptação às demandas de sistemas embarcados avançados e de missão crítica.
A arquitetura microkernel do QNX Neutrino RTOS evidencia os benefícios de uma abordagem modular e minimalista que mantém apenas funcionalidades essenciais no núcleo, como gerenciamento de memória, escalonamento de processos e coordena a comunicação entre processos (IPC).
Referências
- Bylinsky, G. (2003, 17 de março). Heroes of Manufacturing. *FORTUNE Magazine*. http://money.cnn.com/magazines/fortune/fortune_archive/2003/03/17/339245/index.htm
- CrackBerry. (s.d.). RIM Acquires QNX Software Unit from Harman International – RIM Wants a Piece of the Automotive Infotainment Market? https://crackberry.com/rim-acquires-qnx-software-unit-harman-international-rim-wants-piece-automotive-infotainment-market
- Gordon Bell (QNX). (s.d.). https://en-academic.com/dic.nsf/enwiki/1365668
- Lakrintis, A. (s.d.). BlackBerry QNX: A Retrospective. https://www.linkedin.com/pulse/blackberry-qnx-retrospective-angelos-lakrintis/
- Matt Rickard – Tanenbaum–Torvalds Debates, Part 1. (s.d.). https://matt-rickard.com/tanenbaum-torvalds-debates-part-1
- Microkernel.info. (s.d.). http://www.microkernel.info/
- QNX. (s.d.). About BlackBerry QNX. https://blackberry.qnx.com/en/company
- QNX. (s.d.). Microkernel architecture. https://www.qnx.com/developers/docs/8.0/com.qnx.doc.neutrino.sys_arch/topic/intro_MICROKERNELARCH.html
- QNX. (s.d.). QNX Neutrino RTOS 7.1. https://blackberry.qnx.com/en/products/foundation-software/qnx-rtos
- QNX. (s.d.). QNX News Releases – QNX Joins Harman International Family. https://www.qnx.com/news/pr_1121_1.html
- QNX. (s.d.). QNX News Releases – Research In Motion to Acquire QNX Software Systems from Harman International. https://www.qnx.com/news/pr_4114_1.html
- Tanenbaum, A. S. (s.d.). Tanenbaum-Torvalds Debate Part II. *Department of Computer Science*. https://www.cs.vu.nl/~ast/reliable-os/
- Tanenbaum, A. (1992). LINUX is obsolete. *Google Groups*. https://groups.google.com/g/comp.os.minix/c/wlhw16QWltI?pli=1
- Wikipedia. (s.d.). Microkernel. https://en.wikipedia.org/wiki/Microkernel









