Princípio de gerenciamento de memória usado pelo Linux


Respostas:


7

O Linux usa os dois. Ele usa a segmentação para mapear todo o espaço de endereço disponível e ao mesmo tempo conceder direitos de acesso diferentes: basicamente um kernel e uma visualização do espaço do usuário. Você pode grep o código fonte do Linux para KERNEL_DS (segmento de dados do kernel) para alguns exemplos.

A paginação é então usada para implementar a memória virtual (Grep para "struct gdt_page" no kernel, para um ponto de partida)


6

O gerenciamento de memória no Linux funciona exclusivamente por paginação.

O Linux suporta páginas "pequenas" (geralmente 4kB) e "grandes" (2M). O primeiro "apenas funciona" sem que você saiba ou faça algo especial, e o último precisa de tratamento especial (deve ser reservado no momento da inicialização e mapeado por um dispositivo especial).

O único contexto em que "segmento" aparece no Linux é o syscall brk () que é usado para aumentar o segmento de dados de um processo (você normalmente não precisará disso, o malloc faz isso sem que você precise se preocupar). De qualquer forma, a memória vem em páginas e é gerenciada em páginas, e não tem nada a ver com a segmentação x86.


A segmentação X86 estava obsoleta quando o i386 foi lançado. O Linux nunca usou a segmentação para gerenciamento de memória. Alguns derivados como ELKS e (possivelmente) uClinux podem.
LawrenceC
Ao utilizar nosso site, você reconhece que leu e compreendeu nossa Política de Cookies e nossa Política de Privacidade.
Licensed under cc by-sa 3.0 with attribution required.