hipervisor incorporado

A ideia de usar um hipervisor em um computador poderoso é bem conhecida. Ele facilita o uso simultâneo de vários sistemas operacionais e fornece um ambiente virtualizado no qual o software herdado não modificado pode ser implantado. Os hipervisores também têm seu lugar nos sistemas embarcados modernos. Este artigo considera as características de um hipervisor integrado , a funcionalidade que ele pode fornecer e alguns aplicativos típicos.

Algumas tecnologias realmente não deveriam existir. No entanto, eles o fazem porque atendem a uma necessidade específica. Freqüentemente, essas técnicas ampliam algo para fazê-lo funcionar de maneiras que não foram originalmente planejadas. Uma máquina de fax é um exemplo. Em um ambiente de escritório de papel, muitas vezes há a necessidade de mover documentos de A para B. Inicialmente, isso resultou na criação do correio. Mas o envio de fax é uma maneira elegante de usar linhas telefônicas para produzir resultados semelhantes. Os faxes desapareceram quase da noite para o dia depois que o e-mail se tornou comum. A banda larga doméstica é outro exemplo – fios de cobre antigos são usados ​​para fornecer conexões digitais em velocidades que eram consideradas absolutamente impossíveis apenas alguns anos atrás. Os hipervisores são outra tecnologia "não deveria existir" que se consolidou no mundo.

O que é um hipervisor?

De um modo geral, um hipervisor é uma camada de software que permite que vários sistemas operacionais sejam executados simultaneamente em uma única plataforma de hardware. Eles são usados ​​há décadas em mainframes e mais recentemente em desktops, mas agora estão começando a se tornar muito relevantes para desenvolvedores embarcados.

Os hipervisores não são realmente uma tecnologia nova - os primeiros produtos reconhecíveis foram introduzidos em computadores mainframe há cerca de 50 anos. A motivação então era fazer o melhor uso de recursos caros. O uso eficiente de hardware caro é necessário para ser totalmente econômico, e o tempo de inatividade é caro. Os investimentos em software precisam ser protegidos, portanto, facilitar a execução perfeita em um novo hardware é atraente. Ironicamente, o software de virtualização inicial da IBM foi distribuído em código-fonte (sem suporte inicialmente) e modificado/aprimorado pelos usuários. Passaram-se muitos anos antes que o conceito de código aberto fosse concebido.

No contexto dos sistemas embarcados modernos , lembre-se de quais são os benefícios de executar vários sistemas operacionais em um único hardware? A resposta mais importante é a segurança. O hipervisor fornece uma camada muito forte de isolamento e proteção entre os sistemas operacionais convidados, garantindo que um aplicativo multithread não interfira em outro. A reutilização de IP é uma motivação secundária, mas ainda muito importante, para executar vários sistemas operacionais. Imagine que você deseja usar algum IP de software importante do Linux em seu design. No entanto, seu dispositivo é em tempo real, portanto, um RTOS faz mais sentido. Se multicore não for uma opção (já que é outra maneira de executar vários sistemas operacionais em um dispositivo), usar um hipervisor é o caminho a seguir para que você possa executar o Linux e o RTOS.

virtual

Tipos de hipervisores Existem essencialmente dois tipos de hipervisores, chamados imaginativamente de Tipo 1 e Tipo 2. O tipo 2 requer um sistema operacional de host subjacente. Para aplicativos incorporados, o Tipo 1 faz mais sentido para a maioria dos aplicativos.

Multicore – SMP e AMP

Declarações sobre um hipervisor que habilita vários sistemas operacionais em uma única plataforma de hardware implicam que isso significa um processador. Na verdade, muitos produtos suportam o uso de várias CPUs e alocam recursos por meio do hypervisor. Explorar isso requer um pouco mais de consideração sobre os fundamentos multicore.

Do ponto de vista do software, existem essencialmente dois tipos de arquiteturas multicore: multiprocessamento simétrico (SMP) e multiprocessamento assimétrico (AMP). Com o SMP, é possível rodar um único sistema operacional em todos os núcleos da CPU, que devem ter a mesma arquitetura. Os sistemas operacionais precisam ser projetados especificamente para serem executados em sistemas SMP. Em um sistema AMP, cada CPU executa seu próprio sistema operacional (ou nenhum). As CPUs não precisam ter a mesma arquitetura.

Hipervisores e Multicore

Todos os sistemas embarcados possuem recursos finitos que precisam ser gerenciados. Pode-se dizer que esta é a chave para o desenvolvimento de software embarcado. Para fins de discussão, consideraremos um sistema de exemplo hipotético com uma única porta serial. Dependendo da configuração do software e do hardware da CPU, esta porta pode ser gerenciada de várias maneiras.

Em um sistema de núcleo único, o sistema operacional pode gerenciar o acesso à porta serial e pode arbitrar entre várias tarefas que podem querer usá-lo. Há muitas maneiras de fazer isso, e aqui está a maneira mais fácil de fazer isso.

Se o sistema tiver vários núcleos idênticos, pode ser útil configurá-lo como um SMP (única instância do sistema operacional em execução em todos os núcleos). Versões SMP de muitos produtos RTOS estão disponíveis (como o Nucleus), e o Linux com suporte a SMP também é uma opção. Esse método é ideal se o aplicativo se beneficiar da capacidade do sistema operacional de alocar energia da CPU conforme necessário. O sistema operacional pode gerenciar o acesso às portas seriais da mesma forma que em um sistema de núcleo único.

Em muitos sistemas, o SMP não é atraente porque é necessário um controle mais preciso ou o sistema possui tantos núcleos que o desempenho pode ser prejudicado. Em outros lugares, o SMP está fora de questão, pois os núcleos não são idênticos. Nesses casos, faz sentido ter uma configuração de AMP com instâncias de SO separadas em cada núcleo. Isso apresenta um desafio: como você gerencia uma única porta serial?

Se todos os núcleos de um sistema forem adequados para executar um hipervisor, ele poderá ser executado em todos os núcleos e o sistema operacional de cada núcleo será considerado um "convidado". O acesso à porta serial pode então ser gerenciado por um hypervisor.

Se um ou mais núcleos não puderem executar um hypervisor (porque são processadores de desempenho inferior), outra opção (por exemplo, Heterogeneous Multicore Framework HMF da Mentor Embedded) pode ser usada. Isso facilita o gerenciamento de núcleos menores por um hipervisor em execução em outro lugar (em uma CPU mais potente no mesmo chip). Assim, o hipervisor pode gerenciar o acesso às portas seriais por todos os núcleos do sistema (seja executando o hipervisor ou o HMF).

Aplicativos de hipervisor incorporado O hipervisor integrado pode

Encontre o seu lugar em três áreas de aplicação:

Indústria automobilística

indústria

o médico

carro

Nesse caso, o software de entretenimento informativo, os controles do painel e a telemática podem ser executados em um único chip de vários núcleos. Como pode haver necessidade de uma combinação de sistemas operacionais, como RTOS para instrumentação e GPS e Linux para áudio, um hipervisor faz todo o sentido.

indústria

Para aplicações industriais (fábricas, minas, usinas de energia, etc.), o controle em tempo real (RTOS) e redes complexas (Linux) são frequentemente necessários. Além disso, nos últimos anos tem havido uma preocupação crescente com ataques cibernéticos ou a introdução de malware em sistemas de controle. Os hipervisores são uma maneira ideal de separar sistemas e manter a segurança.

o médico

O sistema de saúde apresenta alguns novos desafios. Frequentemente, há uma combinação de recursos em tempo real (monitoramento do paciente e controle de terapia) e não em tempo real (armazenamento de dados, rede e interface do usuário), portanto, inicialmente, os hipervisores parecem atraentes. A confidencialidade dos dados do paciente é fundamental, por isso a segurança dos procedimentos de gestão torna-se importante. Por fim, a capacidade de separar completamente as partes do sistema que requerem autenticação (geralmente a parte em tempo real) torna os hypervisors atraentes.

A Internet das Coisas embarcada precisa aprender muito, não aprenda a rota e o conteúdo errados, o que fará com que seu salário suba!

Compartilhe um pacote de dados com todos, cerca de 150 G. O conteúdo de aprendizado, as escrituras presenciais e os projetos nele são relativamente novos e completos! (Clique para encontrar um pequeno assistente para receber)

Acho que você gosta

Origin blog.csdn.net/m0_70911440/article/details/131958541
Recomendado
Clasificación