SlideShare uma empresa Scribd logo
1 de 22
Baixar para ler offline
QNX Neutrino

         César Lincoln Cavalcante Mattos
         Raphael Torres Santos Carvalho
         Levi Lopes Soares e Silva
QNX Neutrino

História
Em 1980, Gordon Bell e Dan Dodge, estudantes da Universidade de WaterLoo fundam a
Quantum Software Systems. Em 1982, a primeira versão do QNX é lançada para Intel 8088.
Nos primeiros anos, o QNX ficou difundido somente no mundo não-embarcado, pois seu
kernel de 44k era muito grande para esse tipo de aplicação.
No fim dos anos 80, a Quantum percebeu que o mercado estava migrando rapidamente
para o modelo POSIX e decidiu reescrever o kernel para maior compatibilidade em baixo
nível. O resultado foi o QNX 4. Nesse mesmo tempo, foi desenvolvido um sistema de janelas,
nomeado de Photon microGUI.
QNX Neutrino

História
Em 2001, saiu o QNX Neutrino, nova versão do QNX, totalmente compatível com POSIX e
desenvolvida desde o início para ser compatível com SMP (Symmetric Multiprocessing),
mantendo a arquitetura de microkernel.
Em 2004 a companhia anunciou sua venda para Harman International Industries. Antes
dessa aquisição, o QNX já havia sido usado extensamente na indústria automotiva para
sistemas telemáticos. Desde sua compra pela Harman, o QNX têm sido projetado sobre 180
modelos diferentes de automóvel.
Em 12 de setembro de 2007, a QNX Software Systems abriu o código fonte do seu sistema
operacional de tempo real QNX Neutrino, para uso não-comercial.
QNX Neutrino

Arquitetura Geral
 Microkernel
 Modularizada - Qualquer componente pode ser interrompido, removido ou adicionado
dinamicamente.
 Multi-target - ARM, MIPS, PowerPC, SH-4, StrongARM, XScale, x86.
 Suporte a POSIX.
 Suporte a J2ME.
 Suporte a ambientes multi-core.
 Sistema de arquivos em espaço de usuário com capacidade de compressão e acesso a
arquivos via rede.
 QNX Photon microGUI - Sistema de interface.
QNX Neutrino

Arquitetura Geral
QNX Neutrino

Características RT
 O kernel QNX contém apenas escalonador de CPU, comunicação inter-processos,
redirecionamento de interrupção e temporizadores.
 Todos os processos executam em espaço de usuário, incluindo um processo especial
conhecido como proc, que opera em conjunto com o microkernel na criação de outras tarefas
e no gerenciamento de memória.
 Esta organização é possível devido a dois mecanismos chaves – um subroutine-call para
comunicação inter-processos, e um boot loader que pode carregar uma imagem contendo,
além do kernel, programas de usuário e bibliotecas compartilhadas.
 Microkernel é inteiramente preemptivo com escalonador baseado em prioridades.
 Suporte a clusters de tolerância a falhas.
 Otimizado para sistemas distribuídos, inclusive com acesso a recursos externos
compartilhados.
 CPM (Critical Process Monitor). - quot;Smart watchdogquot; que automaticamente reinicializa
processos críticos quando estes falharem, reduzindo o MTTR (Mean Time to Repair) do
sistema .
QNX Neutrino

Características RT
As requisições de I/O são executadas através de troca de mensagens. Threads de alta
prioridade recebem serviço de I/O antes das de baixa prioridade, uma característica essencial
em um sistema hard real-time.
 O conjunto de device drivers e bibliotecas de suporte necessários para inicialização do
sistema não estão no kernel. É possível colocar uma imagem de boot contendo esse conjunto
de aplicações na ROM, o que pode ser útil em sistemas embarcados.
 O QNX Neutrino suporta Symmetric Multiprocessing (SMP) e Bound Multiprocessing (BMP).
BMP é usado para facilitar a migração de aplicação non-SMP safe para computadores
multiprocessadores.
 O QNX Neutrino permite que em um Pentium III um processamento de interrupção de 0,55µs
no qual os eventos podem ser registrados. Para efeito de comparação, sistemas operacionais
de tempo compartilhado reagem a eventos somente após aproximadamente 10 ms.
QNX Neutrino

Comunicação Inter-Processos (IPC)
Utiliza um pathname space que permite qualquer processo requisitar serviços de outros
processos através de chamadas POSIX, como open(), read(), write() e lseek(). Essas
chamadas são convertida de maneira transparente em trocas de mensagens feitas através
de um quot;barramento de softwarequot;.
Na operação da troca de mensagens, a mensagem é copiada, pelo kernel, do espaço de
endereço do processo emissor para aquele do processo receptor. Se o processo receptor
estiver esperando pela mensagem, o controle da CPU é transferido no mesmo instante, sem
passar através do escalonador. Portanto, enviar uma mensagem para outro processo e
esperar pela resposta não resultam em perda de um turno pela CPU. Esta integração entre
passagem de mensagem e escalonador é o principal motivo da grande utilização desse tipo
de IPC no QNX.
QNX Neutrino

Comunicação Inter-Processos (IPC)
As mensagens podem ser manipuladas diretamente através das funções MsgSend(),
MsgReceive() e MsgReply().
 É possível utilizar mecanismos de IPC tradicionais, como pipes, FIFOs, memória
compartilhada, signals, etc.
 O sistema de TDP (Transparent Distributed Processing), permite a comunicação entre
processos distribuídos.
QNX Neutrino

Arquitetura Geral
QNX Neutrino

Desenvolvimento
 Compatibilidade POSIX.
QNX Neutrino

Instrumented Kernel
 É possível substituir o kernel padrão do QNX Neutrino por um instrumented kernel, onde
podemos debugar todas as partes do sistema em busca de possíveis deadlocks, problemas
de temporização, falhas lógicas, etc.
 Pode-se ainda selecionar as informações que serão buscadas através de filtros definidos
pelo usuário.
QNX Neutrino

QNX Photon microGUI
 GUI modular para sistemas embedded.
 Suporte a múltiplas janelas, múltiplas camadas.
 Display de gráficos e animações 2D e 3D.
 Framework multimídia com suporte aos formatos AAC, MP3, MPEG-1, WAV, AIFF, IFF, AU,
etc.
 Possibilidade de alterar qualquer parte da interface sem a necessidade de reiniciar o
sistema, pois os serviços da GUI rodam como aplicações em áreas de memória reservada.
 Capacidade de se integrar a aplicações Java.
 Conexão com desktops Windows remotos através do Phindows.
 QNX Voyager - Web Browser para sistemas embedded.
QNX Neutrino

QNX Momentics Development Suite
 IDE de desenvolvimento multilinguagem (C, C++ e embedded C++) baseada no Eclipse que
pode ser utilizada no Windows, Linux, Solaris ou no próprio QNX neutrino.
 Ambiente de debug integrado com suporte a aplicações multi-thread multi-processadas
(mais de uma CPU).
 Sytem Profiler e Application Profiler - Permitem monitorar a performace da aplicação,
verificar conflitos de temporização, estado das threads, traces e interações com o
instrumented kernel.
 Ferramenta de análise de memória - Traça um mapa de utilização da memória.
 Target System Tools - Monitora todas as caracterísitcas de execução da aplicação
diretamente no hardware alvo.
 Application Builder - Ferramenta para construção de interfaces Photon.
QNX Neutrino

QNX Momentics Development Suite
QNX Neutrino

QNX Momentics Development Suite
QNX Neutrino

QNX Momentics Development Suite
QNX Neutrino

QNX Momentics Development Suite
QNX Neutrino

QNX Momentics Development Suite
QNX Neutrino

Outros TDKs (Technology Development Kits)
 Adaptative Partitioning - Realoca tempo de processamento entre processos de forma
dinâmica, maximizando o uso da CPU e evitando inanição.
 Resource Manager Framework - Framework para desenvolvimento de drivers em espaço de
usuário.
QNX Neutrino

Principais Clientes
Boeing
BTI Photonics
Chrysler
Cisco
Deltex Medical
Grayson Wireless (Allen Telecom)
Hyundai
NASA
Naval Undersea Warfare Center
Physiometrix PSA 4000
U.S. Army (Exército dos E.U.A)
Siemens AXIOM Arti
QNX Neutrino

Referências
http://www.qnx.com/
http://en.wikipedia.org/wiki/QNX
http://pt.wikipedia.org/wiki/QNX
http://www.guiadeti.com.br/anuario/empresa.2006-09-26.0069492949/solucao.2006-09-26.766977
http://www.operating-system.org/betriebssystem/_english/bs-qnx.htm

Mais conteúdo relacionado

Mais procurados

Five common customer use cases for Virtual SAN - VMworld US / 2015
Five common customer use cases for Virtual SAN - VMworld US / 2015Five common customer use cases for Virtual SAN - VMworld US / 2015
Five common customer use cases for Virtual SAN - VMworld US / 2015Duncan Epping
 
Openstack live migration
Openstack live migrationOpenstack live migration
Openstack live migrationymtech
 
VMware Advance Troubleshooting Workshop - Day 4
VMware Advance Troubleshooting Workshop - Day 4VMware Advance Troubleshooting Workshop - Day 4
VMware Advance Troubleshooting Workshop - Day 4Vepsun Technologies
 
OpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdfOpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdfssuser1490e8
 
Linux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBLinux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBshimosawa
 
“Linux Kernel CPU Hotplug in the Multicore System”
“Linux Kernel CPU Hotplug in the Multicore System”“Linux Kernel CPU Hotplug in the Multicore System”
“Linux Kernel CPU Hotplug in the Multicore System”GlobalLogic Ukraine
 
High availability virtualization with proxmox
High availability virtualization with proxmoxHigh availability virtualization with proxmox
High availability virtualization with proxmoxOriol Izquierdo Vibalda
 
Linux kernel architecture
Linux kernel architectureLinux kernel architecture
Linux kernel architectureSHAJANA BASHEER
 
Docker, Linux Containers (LXC), and security
Docker, Linux Containers (LXC), and securityDocker, Linux Containers (LXC), and security
Docker, Linux Containers (LXC), and securityJérôme Petazzoni
 
[Container Plumbing Days 2023] Why was nerdctl made?
[Container Plumbing Days 2023] Why was nerdctl made?[Container Plumbing Days 2023] Why was nerdctl made?
[Container Plumbing Days 2023] Why was nerdctl made?Akihiro Suda
 
NVMe Over Fabrics Support in Linux
NVMe Over Fabrics Support in LinuxNVMe Over Fabrics Support in Linux
NVMe Over Fabrics Support in LinuxLF Events
 
VMware ESXi 6.0 Installation Process
VMware ESXi 6.0 Installation ProcessVMware ESXi 6.0 Installation Process
VMware ESXi 6.0 Installation ProcessNetProtocol Xpert
 

Mais procurados (20)

Five common customer use cases for Virtual SAN - VMworld US / 2015
Five common customer use cases for Virtual SAN - VMworld US / 2015Five common customer use cases for Virtual SAN - VMworld US / 2015
Five common customer use cases for Virtual SAN - VMworld US / 2015
 
Introduction to Linux
Introduction to LinuxIntroduction to Linux
Introduction to Linux
 
Qemu
QemuQemu
Qemu
 
QNX OS
QNX OSQNX OS
QNX OS
 
Openstack live migration
Openstack live migrationOpenstack live migration
Openstack live migration
 
Embedded Hypervisor for ARM
Embedded Hypervisor for ARMEmbedded Hypervisor for ARM
Embedded Hypervisor for ARM
 
VMware Advance Troubleshooting Workshop - Day 4
VMware Advance Troubleshooting Workshop - Day 4VMware Advance Troubleshooting Workshop - Day 4
VMware Advance Troubleshooting Workshop - Day 4
 
OpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdfOpenShift Virtualization- Technical Overview.pdf
OpenShift Virtualization- Technical Overview.pdf
 
Pipeline
PipelinePipeline
Pipeline
 
Linux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKBLinux Kernel Booting Process (1) - For NLKB
Linux Kernel Booting Process (1) - For NLKB
 
“Linux Kernel CPU Hotplug in the Multicore System”
“Linux Kernel CPU Hotplug in the Multicore System”“Linux Kernel CPU Hotplug in the Multicore System”
“Linux Kernel CPU Hotplug in the Multicore System”
 
High availability virtualization with proxmox
High availability virtualization with proxmoxHigh availability virtualization with proxmox
High availability virtualization with proxmox
 
Linux kernel architecture
Linux kernel architectureLinux kernel architecture
Linux kernel architecture
 
Docker, Linux Containers (LXC), and security
Docker, Linux Containers (LXC), and securityDocker, Linux Containers (LXC), and security
Docker, Linux Containers (LXC), and security
 
U N I X
U N I XU N I X
U N I X
 
[Container Plumbing Days 2023] Why was nerdctl made?
[Container Plumbing Days 2023] Why was nerdctl made?[Container Plumbing Days 2023] Why was nerdctl made?
[Container Plumbing Days 2023] Why was nerdctl made?
 
NVMe Over Fabrics Support in Linux
NVMe Over Fabrics Support in LinuxNVMe Over Fabrics Support in Linux
NVMe Over Fabrics Support in Linux
 
01. Kubernetes-PPT.pptx
01. Kubernetes-PPT.pptx01. Kubernetes-PPT.pptx
01. Kubernetes-PPT.pptx
 
Nutanix
NutanixNutanix
Nutanix
 
VMware ESXi 6.0 Installation Process
VMware ESXi 6.0 Installation ProcessVMware ESXi 6.0 Installation Process
VMware ESXi 6.0 Installation Process
 

Destaque

Dtq4_portugués
Dtq4_portuguésDtq4_portugués
Dtq4_portuguésDTQ4
 
Sistema Embarcados - Sistemas operacionais
Sistema Embarcados - Sistemas operacionaisSistema Embarcados - Sistemas operacionais
Sistema Embarcados - Sistemas operacionaisLuiz Eduardo
 
Sistema operacional embarcado
Sistema operacional embarcadoSistema operacional embarcado
Sistema operacional embarcadoJaime Teixeira
 
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosSistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosArthur Emanuel
 
Sistemas operativos distribuidos e de redes
Sistemas operativos distribuidos e de redesSistemas operativos distribuidos e de redes
Sistemas operativos distribuidos e de redesPortal_do_Estudante_SD
 
Palestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPalestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPET Computação
 

Destaque (9)

Dtq4_portugués
Dtq4_portuguésDtq4_portugués
Dtq4_portugués
 
Sistemas embarcados
Sistemas embarcadosSistemas embarcados
Sistemas embarcados
 
Seminário QNX
Seminário QNXSeminário QNX
Seminário QNX
 
Sistemas embarcados
Sistemas embarcadosSistemas embarcados
Sistemas embarcados
 
Sistema Embarcados - Sistemas operacionais
Sistema Embarcados - Sistemas operacionaisSistema Embarcados - Sistemas operacionais
Sistema Embarcados - Sistemas operacionais
 
Sistema operacional embarcado
Sistema operacional embarcadoSistema operacional embarcado
Sistema operacional embarcado
 
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais DistribuídosSistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
Sistemas Distribuídos - Aula 11 - Sistemas Operacionais Distribuídos
 
Sistemas operativos distribuidos e de redes
Sistemas operativos distribuidos e de redesSistemas operativos distribuidos e de redes
Sistemas operativos distribuidos e de redes
 
Palestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas EmbarcadosPalestra PET.Com - Sistemas Embarcados
Palestra PET.Com - Sistemas Embarcados
 

Semelhante a História e arquitetura do sistema operacional QNX Neutrino

Minicurso Virtualizacao com Proxmox - Maicon Wendhausen - FLISOL Natal 2017
Minicurso Virtualizacao com Proxmox - Maicon Wendhausen - FLISOL Natal 2017Minicurso Virtualizacao com Proxmox - Maicon Wendhausen - FLISOL Natal 2017
Minicurso Virtualizacao com Proxmox - Maicon Wendhausen - FLISOL Natal 2017PotiLivre Sobrenome
 
Introdução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosIntrodução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosRodrigo Almeida
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcadotdc-globalcode
 
O futuro do Openstack, NFV, SDN e Cloud Computing - FISL 2014
O futuro do Openstack, NFV, SDN e Cloud Computing - FISL 2014O futuro do Openstack, NFV, SDN e Cloud Computing - FISL 2014
O futuro do Openstack, NFV, SDN e Cloud Computing - FISL 2014Marcelo Dieder
 
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)Caio Candido
 
Cloud computing & Cloudstack: Como ter sua nuvem sem tempestades
Cloud computing & Cloudstack: Como ter sua nuvem sem tempestadesCloud computing & Cloudstack: Como ter sua nuvem sem tempestades
Cloud computing & Cloudstack: Como ter sua nuvem sem tempestadesRicardo Martins ☁
 
Amazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon Web Services LATAM
 
ReVir – Programabilidade em Redes Virtualizadas
ReVir – Programabilidade em Redes VirtualizadasReVir – Programabilidade em Redes Virtualizadas
ReVir – Programabilidade em Redes VirtualizadasWanderson Paim
 
Arquiteturas_risc_e_cisc
Arquiteturas_risc_e_ciscArquiteturas_risc_e_cisc
Arquiteturas_risc_e_ciscBruno Dias
 
Histórico e Fundamentos das Redes de Nova Geração (NGN)
Histórico e Fundamentos das Redes de Nova Geração (NGN)Histórico e Fundamentos das Redes de Nova Geração (NGN)
Histórico e Fundamentos das Redes de Nova Geração (NGN)Frederico Madeira
 
Containers em produção!
Containers em produção!Containers em produção!
Containers em produção!Evandro Couto
 
Qt tchelinux-2010
Qt tchelinux-2010Qt tchelinux-2010
Qt tchelinux-2010Wagner Reck
 

Semelhante a História e arquitetura do sistema operacional QNX Neutrino (20)

Minicurso Virtualizacao com Proxmox - Maicon Wendhausen - FLISOL Natal 2017
Minicurso Virtualizacao com Proxmox - Maicon Wendhausen - FLISOL Natal 2017Minicurso Virtualizacao com Proxmox - Maicon Wendhausen - FLISOL Natal 2017
Minicurso Virtualizacao com Proxmox - Maicon Wendhausen - FLISOL Natal 2017
 
Introdução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcadosIntrodução aos sistemas operacionais embarcados
Introdução aos sistemas operacionais embarcados
 
TDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux EmbarcadoTDC2016SP - Trilha Linux Embarcado
TDC2016SP - Trilha Linux Embarcado
 
O futuro do Openstack, NFV, SDN e Cloud Computing - FISL 2014
O futuro do Openstack, NFV, SDN e Cloud Computing - FISL 2014O futuro do Openstack, NFV, SDN e Cloud Computing - FISL 2014
O futuro do Openstack, NFV, SDN e Cloud Computing - FISL 2014
 
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
DevOps containers x86 - Baremetal, Virtual e Cloud (pt_br)
 
Consegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + PuppetConsegi 2011: Ganeti + Puppet
Consegi 2011: Ganeti + Puppet
 
Cloud computing & Cloudstack: Como ter sua nuvem sem tempestades
Cloud computing & Cloudstack: Como ter sua nuvem sem tempestadesCloud computing & Cloudstack: Como ter sua nuvem sem tempestades
Cloud computing & Cloudstack: Como ter sua nuvem sem tempestades
 
Amazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenhoAmazon EC2 boas praticas e otimizações de desempenho
Amazon EC2 boas praticas e otimizações de desempenho
 
ReVir – Programabilidade em Redes Virtualizadas
ReVir – Programabilidade em Redes VirtualizadasReVir – Programabilidade em Redes Virtualizadas
ReVir – Programabilidade em Redes Virtualizadas
 
Programabilidade em Redes Virtualizadas
Programabilidade em Redes VirtualizadasProgramabilidade em Redes Virtualizadas
Programabilidade em Redes Virtualizadas
 
Snort
SnortSnort
Snort
 
Embarcados
EmbarcadosEmbarcados
Embarcados
 
Boteco Xen
Boteco XenBoteco Xen
Boteco Xen
 
Arquiteturas_risc_e_cisc
Arquiteturas_risc_e_ciscArquiteturas_risc_e_cisc
Arquiteturas_risc_e_cisc
 
Arquitetura de-computadores-apostila-avançada completa
Arquitetura de-computadores-apostila-avançada completaArquitetura de-computadores-apostila-avançada completa
Arquitetura de-computadores-apostila-avançada completa
 
Palestra
PalestraPalestra
Palestra
 
Histórico e Fundamentos das Redes de Nova Geração (NGN)
Histórico e Fundamentos das Redes de Nova Geração (NGN)Histórico e Fundamentos das Redes de Nova Geração (NGN)
Histórico e Fundamentos das Redes de Nova Geração (NGN)
 
Cluster
ClusterCluster
Cluster
 
Containers em produção!
Containers em produção!Containers em produção!
Containers em produção!
 
Qt tchelinux-2010
Qt tchelinux-2010Qt tchelinux-2010
Qt tchelinux-2010
 

Mais de Líus Fontenelle Carneiro (18)

DSPic
DSPicDSPic
DSPic
 
Transputer
TransputerTransputer
Transputer
 
AVR
AVRAVR
AVR
 
Wavecom
WavecomWavecom
Wavecom
 
PSoC
PSoCPSoC
PSoC
 
HC11
HC11HC11
HC11
 
Blackfin
BlackfinBlackfin
Blackfin
 
ARM
ARMARM
ARM
 
Zilog
ZilogZilog
Zilog
 
Apresentação sobre o kernel Linux v2.0
Apresentação sobre o kernel Linux v2.0Apresentação sobre o kernel Linux v2.0
Apresentação sobre o kernel Linux v2.0
 
Microcontroladores AVR
Microcontroladores AVRMicrocontroladores AVR
Microcontroladores AVR
 
Java Web Start
Java Web StartJava Web Start
Java Web Start
 
Rtai Apresentacao
Rtai ApresentacaoRtai Apresentacao
Rtai Apresentacao
 
Apresentacao sobre o KURT
Apresentacao sobre o KURTApresentacao sobre o KURT
Apresentacao sobre o KURT
 
Sistemas Operacionais de Tempo Real
Sistemas Operacionais de Tempo RealSistemas Operacionais de Tempo Real
Sistemas Operacionais de Tempo Real
 
Programação para Redes de Computadores: Multithread e Multicast
Programação para Redes de Computadores: Multithread e MulticastProgramação para Redes de Computadores: Multithread e Multicast
Programação para Redes de Computadores: Multithread e Multicast
 
Sistemas Distribuídos: RMI, CORBA e SOA
Sistemas Distribuídos: RMI, CORBA e SOASistemas Distribuídos: RMI, CORBA e SOA
Sistemas Distribuídos: RMI, CORBA e SOA
 
Kernel Linux
Kernel LinuxKernel Linux
Kernel Linux
 

História e arquitetura do sistema operacional QNX Neutrino

  • 1. QNX Neutrino César Lincoln Cavalcante Mattos Raphael Torres Santos Carvalho Levi Lopes Soares e Silva
  • 2. QNX Neutrino História Em 1980, Gordon Bell e Dan Dodge, estudantes da Universidade de WaterLoo fundam a Quantum Software Systems. Em 1982, a primeira versão do QNX é lançada para Intel 8088. Nos primeiros anos, o QNX ficou difundido somente no mundo não-embarcado, pois seu kernel de 44k era muito grande para esse tipo de aplicação. No fim dos anos 80, a Quantum percebeu que o mercado estava migrando rapidamente para o modelo POSIX e decidiu reescrever o kernel para maior compatibilidade em baixo nível. O resultado foi o QNX 4. Nesse mesmo tempo, foi desenvolvido um sistema de janelas, nomeado de Photon microGUI.
  • 3. QNX Neutrino História Em 2001, saiu o QNX Neutrino, nova versão do QNX, totalmente compatível com POSIX e desenvolvida desde o início para ser compatível com SMP (Symmetric Multiprocessing), mantendo a arquitetura de microkernel. Em 2004 a companhia anunciou sua venda para Harman International Industries. Antes dessa aquisição, o QNX já havia sido usado extensamente na indústria automotiva para sistemas telemáticos. Desde sua compra pela Harman, o QNX têm sido projetado sobre 180 modelos diferentes de automóvel. Em 12 de setembro de 2007, a QNX Software Systems abriu o código fonte do seu sistema operacional de tempo real QNX Neutrino, para uso não-comercial.
  • 4. QNX Neutrino Arquitetura Geral  Microkernel  Modularizada - Qualquer componente pode ser interrompido, removido ou adicionado dinamicamente.  Multi-target - ARM, MIPS, PowerPC, SH-4, StrongARM, XScale, x86.  Suporte a POSIX.  Suporte a J2ME.  Suporte a ambientes multi-core.  Sistema de arquivos em espaço de usuário com capacidade de compressão e acesso a arquivos via rede.  QNX Photon microGUI - Sistema de interface.
  • 6. QNX Neutrino Características RT  O kernel QNX contém apenas escalonador de CPU, comunicação inter-processos, redirecionamento de interrupção e temporizadores.  Todos os processos executam em espaço de usuário, incluindo um processo especial conhecido como proc, que opera em conjunto com o microkernel na criação de outras tarefas e no gerenciamento de memória.  Esta organização é possível devido a dois mecanismos chaves – um subroutine-call para comunicação inter-processos, e um boot loader que pode carregar uma imagem contendo, além do kernel, programas de usuário e bibliotecas compartilhadas.  Microkernel é inteiramente preemptivo com escalonador baseado em prioridades.  Suporte a clusters de tolerância a falhas.  Otimizado para sistemas distribuídos, inclusive com acesso a recursos externos compartilhados.  CPM (Critical Process Monitor). - quot;Smart watchdogquot; que automaticamente reinicializa processos críticos quando estes falharem, reduzindo o MTTR (Mean Time to Repair) do sistema .
  • 7. QNX Neutrino Características RT As requisições de I/O são executadas através de troca de mensagens. Threads de alta prioridade recebem serviço de I/O antes das de baixa prioridade, uma característica essencial em um sistema hard real-time.  O conjunto de device drivers e bibliotecas de suporte necessários para inicialização do sistema não estão no kernel. É possível colocar uma imagem de boot contendo esse conjunto de aplicações na ROM, o que pode ser útil em sistemas embarcados.  O QNX Neutrino suporta Symmetric Multiprocessing (SMP) e Bound Multiprocessing (BMP). BMP é usado para facilitar a migração de aplicação non-SMP safe para computadores multiprocessadores.  O QNX Neutrino permite que em um Pentium III um processamento de interrupção de 0,55µs no qual os eventos podem ser registrados. Para efeito de comparação, sistemas operacionais de tempo compartilhado reagem a eventos somente após aproximadamente 10 ms.
  • 8. QNX Neutrino Comunicação Inter-Processos (IPC) Utiliza um pathname space que permite qualquer processo requisitar serviços de outros processos através de chamadas POSIX, como open(), read(), write() e lseek(). Essas chamadas são convertida de maneira transparente em trocas de mensagens feitas através de um quot;barramento de softwarequot;. Na operação da troca de mensagens, a mensagem é copiada, pelo kernel, do espaço de endereço do processo emissor para aquele do processo receptor. Se o processo receptor estiver esperando pela mensagem, o controle da CPU é transferido no mesmo instante, sem passar através do escalonador. Portanto, enviar uma mensagem para outro processo e esperar pela resposta não resultam em perda de um turno pela CPU. Esta integração entre passagem de mensagem e escalonador é o principal motivo da grande utilização desse tipo de IPC no QNX.
  • 9. QNX Neutrino Comunicação Inter-Processos (IPC) As mensagens podem ser manipuladas diretamente através das funções MsgSend(), MsgReceive() e MsgReply().  É possível utilizar mecanismos de IPC tradicionais, como pipes, FIFOs, memória compartilhada, signals, etc.  O sistema de TDP (Transparent Distributed Processing), permite a comunicação entre processos distribuídos.
  • 12. QNX Neutrino Instrumented Kernel  É possível substituir o kernel padrão do QNX Neutrino por um instrumented kernel, onde podemos debugar todas as partes do sistema em busca de possíveis deadlocks, problemas de temporização, falhas lógicas, etc.  Pode-se ainda selecionar as informações que serão buscadas através de filtros definidos pelo usuário.
  • 13. QNX Neutrino QNX Photon microGUI  GUI modular para sistemas embedded.  Suporte a múltiplas janelas, múltiplas camadas.  Display de gráficos e animações 2D e 3D.  Framework multimídia com suporte aos formatos AAC, MP3, MPEG-1, WAV, AIFF, IFF, AU, etc.  Possibilidade de alterar qualquer parte da interface sem a necessidade de reiniciar o sistema, pois os serviços da GUI rodam como aplicações em áreas de memória reservada.  Capacidade de se integrar a aplicações Java.  Conexão com desktops Windows remotos através do Phindows.  QNX Voyager - Web Browser para sistemas embedded.
  • 14. QNX Neutrino QNX Momentics Development Suite  IDE de desenvolvimento multilinguagem (C, C++ e embedded C++) baseada no Eclipse que pode ser utilizada no Windows, Linux, Solaris ou no próprio QNX neutrino.  Ambiente de debug integrado com suporte a aplicações multi-thread multi-processadas (mais de uma CPU).  Sytem Profiler e Application Profiler - Permitem monitorar a performace da aplicação, verificar conflitos de temporização, estado das threads, traces e interações com o instrumented kernel.  Ferramenta de análise de memória - Traça um mapa de utilização da memória.  Target System Tools - Monitora todas as caracterísitcas de execução da aplicação diretamente no hardware alvo.  Application Builder - Ferramenta para construção de interfaces Photon.
  • 15. QNX Neutrino QNX Momentics Development Suite
  • 16. QNX Neutrino QNX Momentics Development Suite
  • 17. QNX Neutrino QNX Momentics Development Suite
  • 18. QNX Neutrino QNX Momentics Development Suite
  • 19. QNX Neutrino QNX Momentics Development Suite
  • 20. QNX Neutrino Outros TDKs (Technology Development Kits)  Adaptative Partitioning - Realoca tempo de processamento entre processos de forma dinâmica, maximizando o uso da CPU e evitando inanição.  Resource Manager Framework - Framework para desenvolvimento de drivers em espaço de usuário.
  • 21. QNX Neutrino Principais Clientes Boeing BTI Photonics Chrysler Cisco Deltex Medical Grayson Wireless (Allen Telecom) Hyundai NASA Naval Undersea Warfare Center Physiometrix PSA 4000 U.S. Army (Exército dos E.U.A) Siemens AXIOM Arti