Principio de gestión de memoria utilizado por Linux


Respuestas:


7

Linux usa ambos. Utiliza la segmentación para mapear todo el espacio de direcciones disponible al tiempo que otorga diferentes derechos de acceso: básicamente un núcleo y una vista de espacio de usuario. Puede seleccionar el código fuente de Linux para KERNEL_DS (segmento de datos del kernel) para algunos ejemplos.

La paginación se usa para implementar memoria virtual (Grep para "struct gdt_page" en el kernel, como punto de partida)


6

La gestión de memoria en Linux funciona exclusivamente por paginación.

Linux admite páginas "pequeñas" (generalmente 4kB) y "grandes" (2M). El primero "simplemente funciona" sin que usted sepa o no haga nada especial, y el segundo necesita un tratamiento especial (debe reservarse en el momento del arranque y mapearse a través de un dispositivo especial).

El único contexto en el que aparece "segmento" en Linux es la llamada al sistema brk (), que se utiliza para aumentar el segmento de datos de un proceso (normalmente no necesitará esto, malloc lo hace sin que tenga que preocuparse). Pero de cualquier manera, la memoria viene en páginas y se administra en páginas, y no tiene nada que ver con la segmentación x86.


La segmentación X86 era obsoleta cuando salió el i386. Linux nunca ha usado la segmentación para la gestión de la memoria. Algunos derivados como ELKS y (posiblemente) uClinux podrían.
LawrenceC
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.