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 / 410090
Accepted
Eloy
Eloy
Asked: 2017-12-11 11:20:42 +0800 CST2017-12-11 11:20:42 +0800 CST 2017-12-11 11:20:42 +0800 CST

Como o kernel do Linux recupera tabelas ACPI do firmware do sistema?

  • 772

Quando o kernel do Linux inicializa, ele recupera as tabelas ACPI do firmware do sistema. Após a inicialização do sistema, posso recuperar as tabelas da memória do kernel em execução com utilitários comoacpidump

Talvez essa questão não seja realmente específica do Linux, porque outros sistemas operacionais precisam seguir algum procedimento comparável, mas ainda estou interessado em como o kernel do Linux os recupera do firmware do sistema inicialmente. Eu examinei alguns códigos-fonte do kernel, mas não consigo obter uma resposta direta sobre como isso funciona.

linux-kernel acpi
  • 1 1 respostas
  • 2949 Views

1 respostas

  • Voted
  1. Best Answer
    telcoM
    2017-12-11T13:26:20+08:002017-12-11T13:26:20+08:00

    Consulte: http://wiki.osdev.org/RSDP

    A primeira etapa na recuperação das tabelas ACPI é encontrar o Root System Description Pointer, ou RSDP.

    Em sistemas UEFI, é fornecido convenientemente dentro do EFI_SYSTEM_TABLE.

    Em sistemas BIOS tradicionais, duas áreas de memória precisam ser pesquisadas. Primeiro, no endereço de modo real de 16 bits 0x40E, haverá um ponteiro de segmento de 2 bytes indicando onde a área de dados do BIOS estendida (EBDA) está localizada. O RSDP pode estar dentro do primeiro 1 KiB de EBDA, identificado pela string "RSD PTR", que com certeza está localizada em um limite de 16 bytes.

    A outra área possível é a área principal do BIOS abaixo de 1 MiB, ou endereços de modo real 0x000E0000 a 0x000FFFFF.

    Como todos os conteúdos de firmware (flash EEP)ROM, estes já são copiados para a RAM ("sombra") pelo próprio firmware por motivos de desempenho: o acesso ao armazenamento de firmware não volátil é geralmente bastante complicado e não muito rápido.

    • 5

relate perguntas

  • Como posso fazer meu console framebuffer funcionar?

  • Bloqueando montagem syscall

  • Por que a versão 30 das ferramentas sem fio se tornou uma versão beta permanente?

  • tamanho da pilha do programa

  • Quais dongles WiFi 802.11ac (ou posteriores) funcionam com o kernel Linux 4.13

Sidebar

Stats

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

    Matriz JSON para bash variáveis ​​usando jq

    • 4 respostas
  • Marko Smith

    A data pode formatar a hora atual para o fuso horário GMT? [duplicado]

    • 2 respostas
  • Marko Smith

    bash + lê variáveis ​​e valores do arquivo pelo script bash

    • 4 respostas
  • Marko Smith

    Como posso copiar um diretório e renomeá-lo no mesmo comando?

    • 4 respostas
  • Marko Smith

    conexão ssh. Conexão X11 rejeitada devido a autenticação incorreta

    • 3 respostas
  • Marko Smith

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

    • 7 respostas
  • Marko Smith

    comando systemctl não funciona no RHEL 6

    • 3 respostas
  • Marko Smith

    rsync porta 22 e 873 uso

    • 2 respostas
  • Marko Smith

    snap /dev/loop em 100% de utilização -- sem espaço livre

    • 1 respostas
  • Marko Smith

    chave de impressão jq e valor para todos no subobjeto

    • 2 respostas
  • Martin Hope
    EHerman Matriz JSON para bash variáveis ​​usando jq 2017-12-31 14:50:58 +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
  • Martin Hope
    Drux A data pode formatar a hora atual para o fuso horário GMT? [duplicado] 2017-12-26 11:35:07 +0800 CST
  • Martin Hope
    AllisonC Como posso copiar um diretório e renomeá-lo no mesmo comando? 2017-12-22 05:28:06 +0800 CST
  • Martin Hope
    Steve Como as permissões de arquivo funcionam para o usuário "root"? 2017-12-22 02:46:01 +0800 CST
  • Martin Hope
    Bagas Sanjaya Por que o Linux usa LF como caractere de nova linha? 2017-12-20 05:48:21 +0800 CST
  • Martin Hope
    Cbhihe Altere o editor padrão para vim para _ sudo systemctl edit [unit-file] _ 2017-12-03 10:11:38 +0800 CST
  • Martin Hope
    showkey Como baixar o pacote não instalá-lo com o comando apt-get? 2017-12-03 02:15:02 +0800 CST
  • Martin Hope
    youxiao Por que os diretórios /home, /usr, /var, etc. têm o mesmo número de inode (2)? 2017-12-02 05:33:41 +0800 CST
  • Martin Hope
    user223600 gpg — o comando list-keys gera uid [ desconhecido ] depois de importar a chave privada para uma instalação limpa 2017-11-26 18:26:02 +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