relate perguntas
-
Existe uma maneira de fazer ls mostrar arquivos ocultos apenas para determinados diretórios?
-
Inicie/pare o serviço systemd usando o atalho de teclado [fechado]
-
Necessidade de algumas chamadas de sistema
-
astyle não altera a formatação do arquivo de origem
-
Passe o sistema de arquivos raiz por rótulo para o kernel do Linux
x86
O mapa de memória virtual x86 de 64 bits divide o espaço de endereço em dois: a seção inferior (com o bit superior definido como 0) é o espaço do usuário, a seção superior (com o bit superior definido como 1) é o espaço do kernel. (Observe que x86-64 define endereços “canônicos” de “metade inferior” e “metade superior”, com um número de bits efetivamente limitado a 48 ou 57; consulte Wikipedia ou Intel SDM , volume 3 seção 4.5, para obter detalhes.)
O mapa completo está documentado em detalhes no kernel ; atualmente parece
0000_0000_0000_0000
0000_7fff_ffff_ffff
0000_8000_0000_0000
ffff_7fff_ffff_ffff
ffff_8000_0000_0000
ffff_ffff_ffff_ffff
com endereços virtuais de 48 bits. A variante de 57 bits tem a mesma estrutura, com 64 PiB de espaço de endereço utilizável em ambos os lados de um furo de 16K PiB:
0000_0000_0000_0000
00ff_ffff_ffff_ffff
0100_0000_0000_0000
feff_ffff_ffff_ffff
ff00_0000_0000_0000
ffff_ffff_ffff_ffff
(Observe que 16K PiB = 16M TiB = 2 64 bytes. A grande maioria do espaço de endereço disponível não é canônico.)
Ambos os layouts fornecem acesso ao mesmo espaço de endereço físico, usando 52 linhas de endereço (4 PiB). A paginação de 4 níveis fornece acesso apenas a um subconjunto de 256 TiB a qualquer momento; A paginação de 5 níveis fornece acesso ao espaço de endereço físico completo. As CPUs x86 atuais podem lidar com muito menos do que isso; até onde eu sei, o máximo que uma CPU de soquete único pode suportar é 6TiB.
Ao contrário do caso de 32 bits, o mapa de memória de “64 bits” é um reflexo direto das restrições de hardware.
BRAÇO
O ARM de 64 bits tem uma distinção de endereço semelhante em hardware: os doze ou dezesseis bits superiores são 0 para espaço do usuário, 1 para espaço do kernel. O Linux usa 39, 42 ou 48 bits para endereços virtuais, dependendo do número de níveis da tabela de páginas e do tamanho da página. Com o ARMv8.2-LVA, outros quatro bits são adicionados, resultando em endereços virtuais de 52 bits.
Isso também está documentado em detalhes no kernel .