FAVORITAR
FecharPlease login

Introdução ao QNX: Uma visão abrangente

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.

No dia 25 de Junho de 2024, ocorrerá o “Seminário de Sistemas Embarcados e IoT 2024“, no Holiday Inn Anhembi — Parque Anhembi, São Paulo–SP.

Garanta seu ingresso

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.

Sem a necessidade de entrar nos conceitos de um kernel com arquitetura monolítica, a figura a seguir ilustra suas diferenças principais.

Figura 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.

Figura 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 >>
Licença Creative Commons Esta obra está licenciada com uma Licença Creative Commons Atribuição-CompartilhaIgual 4.0 Internacional.
Comentários:
Notificações
Notificar
0 Comentários
Inline Feedbacks
View all comments
Home » Software » Introdução ao QNX: Uma visão abrangente

EM DESTAQUE

WEBINARS

LEIA TAMBÉM

JUNTE-SE HOJE À COMUNIDADE EMBARCADOS

Talvez você goste:


Seminário de
Sistemas Embarcados e IoT 2024
 
Data: 25/06 | Local: Hotel Holiday Inn Anhembi, São Paulo-SP
 
GARANTA SEU INGRESSO

 
close-link