Introdução ao QNX: Uma visão
abrangente
12/04/2024
Fabiano B. D'Acunti
ÍNDICE DE CONTEÚDO
Introdução
Revisão histórica
Onde QNX é utilizado?
Licenças
O que é um Microkernel?
Arquitetura Microkernel do QNX
Outros componentes do QNX Neutrino RTOS
Conclusão
Referências
Este post faz parte da série Sistema Operacional de Tempo Real QNX. Leia também os
outros posts da série:
Introdução ao QNX: Uma visão abrangente
Desvendando a Filosofia do QNX Neutrino RTOS
Configurando o Ambiente de Desenvolvimento para QNX
Desenvolvimento de IPC no QNX – Fundamentos
Desenvolvendo Resource Managers no QNX – Um Guia Prático
Gerenciamento da Alta Disponibilidade (High Availability Manager)
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.
Embarcados Experience 2024: Evento Presencial
Participe do Embarcados Experience 2024 em São Paulo. Conhecimento técnico,
palestras, workshops e oportunidade de networking com profissionais experientes.
Inscreva-se agora
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 microkernel 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.pd
f)
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.
F
igura 1: Comparativo entre sistemas operacionais baseados em arquitetura monolítica
e microkernel Fonte: Wikimedia
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.
Fi
gura 2: A arquitetura do QNX RTOS Comparativo entre sistemas operacionais
baseados em arquitetura monolítica e microkernel Fonte: QNX Developers
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
1. 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
2. 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
3. Gordon Bell (QNX). (s.d.). https://en-academic.com/dic.nsf/enwiki/1365668
4. Lakrintis, A. (s.d.). BlackBerry QNX: A Retrospective.
https://www.linkedin.com/pulse/blackberry-qnx-retrospective-angelos-lakrintis/
5. Matt Rickard – Tanenbaum–Torvalds Debates, Part 1. (s.d.). https://matt-
rickard.com/tanenbaum-torvalds-debates-part-1
6. Microkernel.info. (s.d.). http://www.microkernel.info/
7. QNX. (s.d.). About BlackBerry QNX. https://blackberry.qnx.com/en/company
8. QNX. (s.d.). Microkernel architecture.
https://www.qnx.com/developers/docs/8.0/com.qnx.doc.neutrino.sys_arch/
topic/intro_MICROKERNELARCH.html
9. QNX. (s.d.). QNX Neutrino RTOS 7.1.
https://blackberry.qnx.com/en/products/foundation-software/qnx-rtos
10. QNX. (s.d.). QNX News Releases – QNX Joins Harman International Family.
https://www.qnx.com/news/pr_1121_1.html
11. 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
12. Tanenbaum, A. S. (s.d.). Tanenbaum-Torvalds Debate Part II. *Department of
Computer Science*. https://www.cs.vu.nl/~ast/reliable-os/
13. Tanenbaum, A. (1992). LINUX is obsolete. *Google Groups*.
https://groups.google.com/g/comp.os.minix/c/wlhw16QWltI?pli=1
14. Wikipedia. (s.d.). Microkernel. https://en.wikipedia.org/wiki/Microkernel
Outros artigos da série
Desvendando a Filosofia do QNX Neutrino RTOS >>
Fabiano B. D'Acunti
6 posts
https://www.linkedin.com/in/fabiano-bozzi-d-acunti/
Engenheiro Eletrônico com experiência no desenvolvimento de projetos em Sistemas
Embarcados e uma sólida trajetória em iniciativas de pesquisa, desenvolvimento e
inovação em diversas áreas tecnológicas. (Aeronaves Não Tripuladas (UAVs) -
Equipamentos Eletromédicos - Telemática - Agricultura de Precisão - Automação
Residencial - Rastreamento de Veículos - Automação Eletropneumática - Segurança
Eletrônica).
Esta obra está licenciada com uma Licença Creative Commons Atribuição-
CompartilhaIgual 4.0 Internacional.