AskOverflow.Dev

AskOverflow.Dev Logo AskOverflow.Dev Logo

AskOverflow.Dev Navigation

  • Início
  • system&network
  • Ubuntu
  • Unix
  • DBA
  • Computer
  • Coding
  • LangChain

Mobile menu

Close
  • Início
  • system&network
    • Recentes
    • Highest score
    • tags
  • Ubuntu
    • Recentes
    • Highest score
    • tags
  • Unix
    • Recentes
    • tags
  • DBA
    • Recentes
    • tags
  • Computer
    • Recentes
    • tags
  • Coding
    • Recentes
    • tags
Início / unix / Perguntas / 743852
Accepted
ptiza_v_nebe
ptiza_v_nebe
Asked: 2023-04-24 16:51:03 +0800 CST2023-04-24 16:51:03 +0800 CST 2023-04-24 16:51:03 +0800 CST

Como o XEN funciona sem VHE no ARM?

  • 772

O XEN tem suporte para ARM e também é possível executá-lo em uma CPU sem cap VHE (virtual hardware extension) que foi introduzido com a extensão ARMV8.1-A. Pelo que entendi, o kernel linux de uma vm convidada se comunica com o hipervisor xen por meio de chamadas HVC. A chamada HVC é um recurso de hardware, pois acho que está disponível apenas no sistema habilitado para VHE. Mas como funciona sem VHE? Também com HVCs, mas como algum tipo de chamada de software? Por favor, corrija-me se eu estiver errado no meu entendimento.

kernel
  • 1 1 respostas
  • 21 Views

1 respostas

  • Voted
  1. Best Answer
    Gilles 'SO- stop being evil'
    2023-04-25T06:55:34+08:002023-04-25T06:55:34+08:00

    O Xen on Arm normalmente usa as extensões de virtualização que estão presentes nos chips ARMv7 de ponta desde 2010, e são uma parte não opcional do ARMv8. A virtualização de braço adiciona um nível de privilégio extra, o hipervisor, que possui sua própria virtualização de memória. A relação entre o sistema e o hipervisor é muito semelhante à relação entre o usuário e o sistema: a MMU realiza uma tradução dos endereços virtuais (VA) do usuário (usando o mapeamento de memória de cada partição do usuário) para os endereços do sistema (IPA — “endereço físico intermediário”), e então outra conversão (usando o mapeamento de memória de cada partição do sistema) de endereços de sistema para endereços físicos (PA). O código do modo de usuário chama a instrução SVC para entrar no modo do sistema e o código do modo do sistema chama a instrução HVC para entrar no modo de hipervisor.

    Quando um kernel contém um hypervisor, o próprio hypervisor é executado no modo hypervisor. O restante do kernel pode ser executado no modo de hipervisor ou no modo de sistema, dependendo do design desse kernel. Até onde eu sei, o Xen roda o Linux no modo de sistema mais partes específicas do Xen no modo hypervisor.

    As extensões de host de virtualização v8.1- A simplificam o design de um kernel mais hipervisor como o Xen, permitindo que um kernel praticamente não modificado seja executado com privilégios de hipervisor. As partes do kernel (chamadas por instruções SVC ou por interrupções no nível do sistema) não precisam fazer chamadas HVC para executar operações do hypervisor. Isso ajuda no desempenho porque as chamadas HVC exigem opções de contexto adicionais que requerem alguma invalidação de cache, salvamento de registro e entradas TLB extras, pois cada nível tem seus próprios mapeamentos de memória.

    (Também havia uma versão inicial do Xen ARM que não usava as extensões de virtualização. Embora esse projeto fosse chamado de “Secure Xen on ARM” , pelo que sei, ele só podia executar kernels convidados paravirtualizados e não havia segurança limite entre os kernels convidados e o host.)

    • 1

relate perguntas

  • Como /proc/net/wireless é um "clone" de /proc/net/dev?

  • Danos no kernel do Linux Mint

  • Como os desenvolvedores do kernel Linux lidam com seu trabalho com milhões de linhas de código? É um método? [fechado]

  • Passe o sistema de arquivos raiz por rótulo para o kernel do Linux

  • Acesse o sistema de arquivos como usuário root

Sidebar

Stats

  • Perguntas 205573
  • respostas 270741
  • best respostas 135370
  • utilizador 68524
  • Highest score
  • respostas
  • Marko Smith

    Possível firmware ausente /lib/firmware/i915/* para o módulo i915

    • 3 respostas
  • Marko Smith

    Falha ao buscar o repositório de backports jessie

    • 4 respostas
  • Marko Smith

    Como exportar uma chave privada GPG e uma chave pública para um arquivo

    • 4 respostas
  • Marko Smith

    Como podemos executar um comando armazenado em uma variável?

    • 5 respostas
  • Marko Smith

    Como configurar o systemd-resolved e o systemd-networkd para usar o servidor DNS local para resolver domínios locais e o servidor DNS remoto para domínios remotos?

    • 3 respostas
  • Marko Smith

    apt-get update error no Kali Linux após a atualização do dist [duplicado]

    • 2 respostas
  • Marko Smith

    Como ver as últimas linhas x do log de serviço systemctl

    • 5 respostas
  • Marko Smith

    Nano - pule para o final do arquivo

    • 8 respostas
  • Marko Smith

    erro grub: você precisa carregar o kernel primeiro

    • 4 respostas
  • Marko Smith

    Como baixar o pacote não instalá-lo com o comando apt-get?

    • 7 respostas
  • Martin Hope
    user12345 Falha ao buscar o repositório de backports jessie 2019-03-27 04:39:28 +0800 CST
  • Martin Hope
    Carl Por que a maioria dos exemplos do systemd contém WantedBy=multi-user.target? 2019-03-15 11:49:25 +0800 CST
  • Martin Hope
    rocky Como exportar uma chave privada GPG e uma chave pública para um arquivo 2018-11-16 05:36:15 +0800 CST
  • Martin Hope
    Evan Carroll status systemctl mostra: "Estado: degradado" 2018-06-03 18:48:17 +0800 CST
  • Martin Hope
    Tim Como podemos executar um comando armazenado em uma variável? 2018-05-21 04:46:29 +0800 CST
  • Martin Hope
    Ankur S Por que /dev/null é um arquivo? Por que sua função não é implementada como um programa simples? 2018-04-17 07:28:04 +0800 CST
  • Martin Hope
    user3191334 Como ver as últimas linhas x do log de serviço systemctl 2018-02-07 00:14:16 +0800 CST
  • Martin Hope
    Marko Pacak Nano - pule para o final do arquivo 2018-02-01 01:53:03 +0800 CST
  • Martin Hope
    Kidburla Por que verdadeiro e falso são tão grandes? 2018-01-26 12:14:47 +0800 CST
  • Martin Hope
    Christos Baziotis Substitua a string em um arquivo de texto enorme (70 GB), uma linha 2017-12-30 06:58:33 +0800 CST

Hot tag

linux bash debian shell-script text-processing ubuntu centos shell awk ssh

Explore

  • Início
  • Perguntas
    • Recentes
    • Highest score
  • tag
  • help

Footer

AskOverflow.Dev

About Us

  • About Us
  • Contact Us

Legal Stuff

  • Privacy Policy

Language

  • Pt
  • Server
  • Unix

© 2023 AskOverflow.DEV All Rights Reserve