PAE

La versión actual de la página aún no ha sido revisada por colaboradores experimentados y puede diferir significativamente de la versión revisada el 15 de mayo de 2022; la verificación requiere 1 edición .

La extensión de dirección física (PAE) es un modo de funcionamiento de la unidad de gestión de memoria integrada de los procesadores compatibles con x86 , que utiliza entradas de tablas de páginas de 64 bits (de las cuales solo 36 bits se utilizan para el direccionamiento), con las que el procesador puede direccionar 64 GB de memoria física (en lugar de 4 GB direccionables cuando se usan tablas de 32 bits), aunque cada tarea (programa) aún puede direccionar un máximo de 4 GB de memoria virtual [1] . Además, en los nuevos modelos de procesadores en modo PAE, el bit alto del elemento de tabla de página se encarga de prohibir la ejecución de código en la página, lo que dificulta el ataque por el método de desbordamiento de búfer .

La extensión apareció por primera vez en el procesador Pentium Pro . Para usar el direccionamiento de memoria de 36 bits, es necesario admitir la expansión de direcciones físicas a nivel de software (habilitando el modo PAE en el sistema operativo ) y hardware: se requiere soporte tanto del procesador como de la placa base (puede determinarse por el CPUID dominio). Las placas base compatibles con PAE eran generalmente caras y estaban destinadas a servidores. [2] .

Aplicación

Problemas

Soporte para PAE en varios sistemas operativos

Ventanas

A partir de Windows XP Service Pack 2, de forma predeterminada, en los procesadores sin ejecución (NX) o ejecución deshabilitada (XD), el sistema usa PAE para poder usar DEP [7] .

En clientes Microsoft Windows de 32 bits (a partir de Windows XP SP2), el uso de PAE de 36 bits está habilitado por la clave /PAE en el archivo boot.ini , sin embargo, la dirección física máxima de la RAM disponible para el sistema operativo está limitada artificialmente a nivel de kernel por razones de marketing [8] . En Windows XP, este límite es de 4 GB, Windows Server 2003 Enterprise Edition de 32 bits admite hasta 64 GB. Hay programas que le permiten eludir el límite de memoria disponible [9] , pero su uso es una violación del acuerdo de licencia de Microsoft [10] . En el caso de 4 GB de RAM, la memoria se puede utilizar casi por completo en Windows XP moviendo las áreas de espacio de direcciones del sistema por encima de 4 GB, una función admitida por algunas versiones de BIOS. Sin embargo, según Microsoft, la introducción del límite de espacio de direcciones de 4 GB se debe a la falta de compatibilidad con el espacio de direcciones de 36 bits o a la falta de compatibilidad de algunos controladores de dispositivos [11] .

Uno de los requisitos mínimos del sistema para Windows 8 es que el procesador sea compatible con PAE.

Otra posibilidad para utilizar más de 4 gigabytes de memoria es la interfaz de extensiones de ventanas de dirección .

Las versiones regulares de Windows de 32 bits admiten hasta 4-8 GB de RAM, centro de datos, hasta 32-64. En las versiones Starter de Windows XP y Vista, el límite es de 0,5 a 1 GB [12] .

También para aplicaciones de 32 bits en Windows, puede usar un parche especial que elimina el límite de 2 GB de RAM sin tener que volver a compilarlo. Aplicable para aplicaciones de 32 bits en un entorno Windows de 64 bits con un propósito similar. Esto se necesita principalmente para aumentar el espacio de direcciones de las aplicaciones de 32 bits, ya que están limitadas a los 2 GB por proceso mencionados anteriormente [13] . Vale la pena señalar que este método no siempre funciona y la aplicación puede dejar de iniciarse. En algunos casos, una aplicación parcheada de esta manera puede aumentar su rendimiento, como la velocidad a la que se inicia un nivel en algunos juegos.

linux

El kernel de Linux tiene soporte completo para PAE desde la versión 2.3.23 (1999) [14] . Admite direccionamiento físico de 36 bits: hasta 64 GB de RAM . Para ejecutar un kernel construido con soporte PAE (opción CONFIG_X86_PAE=y ), se requiere un procesador con esta función; no es posible arrancar en procesadores anteriores como Pentium Pro o Pentium M. Muchas distribuciones vienen con un paquete de kernel PAE opcional o usan uno por defecto. Por ejemplo, desde 2009, Fedora cambió a un kernel PAE [15]. En 2012, algunas distribuciones, como RHEL 6 y Ubuntu 12.10, dejaron de distribuir kernels que no eran PAE [16] [17] . Fedora y Debian continúan distribuyendo versiones PAE y no PAE del kernel [18] [19] .

Se requiere habilitar PAE para admitir la funcionalidad NX (disponible desde los kernels 2.6.8) [20] [21] .

FreeBSD

FreeBSD es compatible con PAE: en la línea 4.x desde 4.9, en la línea 5.x desde 5.1, todas las 6.xy posteriores. No todos los controladores admiten más de 4 GB de RAM y, por lo tanto, es posible que no funcionen correctamente.

Mac OS X

En Mac OS X , el modo PAE está activado de forma predeterminada cuando se utiliza el kernel de 32 bits.

Solaris

Solaris es compatible con PAE desde la versión 7. Sin embargo, es posible que los controladores de terceros no funcionen correctamente.

Véase también

Notas

  1. parte del espacio de direcciones, generalmente de 0,9 a 2 GB, se reserva para las necesidades del sistema operativo y no está disponible para la aplicación, consulte la barrera de 3 GB , [1] Archivado el 6 de enero de 2014 en Wayback Machine .
  2. Corporación Intel. Compatibilidad con la memoria del sistema de 4 GB del chipset Intel (pdf). Manual del desarrollador de la familia Pentium Pro 7 (febrero de 2005). - "En los sistemas basados ​​en un solo procesador para dispositivos móviles, de escritorio, estaciones de trabajo y servidores de nivel de entrada, los conjuntos de chips pueden estar limitados a 4 GB de memoria máxima. En las estaciones de trabajo y los conjuntos de chips de servidor Intel de doble procesador de hoy en día, el tamaño máximo de la memoria del sistema puede ser superior a 16 GB". Archivado desde el original el 28 de octubre de 2014.
  3. Jaime Adams. Protección de Linux contra explotaciones de desbordamiento  (inglés)  (enlace descendente) . infosec (23 de septiembre de 2010). - "La mayoría de las distribuciones de Linux incluyen compatibilidad con NX con un kernel habilitado para PAE (kernel-PAE). Sin embargo, algunas personas no instalan el kernel de extensión de dirección física (PAE) porque piensan que es solo para proporcionar soporte para memoria física superior a 4 GB". Consultado el 27 de noviembre de 2013. Archivado desde el original el 3 de diciembre de 2013.
  4. Extensión de dirección física . Consultado el 1 de noviembre de 2011. Archivado desde el original el 28 de octubre de 2011.
  5. Por ejemplo, el controlador Microsoft Device Emulator
  6. Extensión de dirección física: memoria PAE y Windows . Fecha de acceso: 23 de diciembre de 2013. Archivado desde el original el 24 de diciembre de 2013.
  7. La memoria RAM informada por el cuadro de diálogo Propiedades del sistema y la herramienta Información del sistema es menor de lo esperado en Windows Vista o en Windows XP Service Pack 2 o una versión posterior . Consultado el 2 de diciembre de 2009. Archivado desde el original el 4 de junio de 2011.
  8. Memoria con licencia en Windows Vista Archivado el 12 de abril de 2022 en Wayback Machine // Geoff Chappell,   2012
  9. Cómo usar 4 GB de RAM completos en Windows 7 de 32 bits (Gavotte RAMDisk en Windows 7) | Página de inicio de Jens Scheffler . Fecha de acceso: 26 de diciembre de 2013. Archivado desde el original el 6 de febrero de 2014.
  10. Geoff Chappell - Analista de software. Memoria con licencia en Windows Vista de 32 bits  . — “Que las ediciones de 32 bits de Windows que comienzan con Windows Vista están limitadas a 4 GB... Las ediciones de 32 bits de Windows Vista y Windows 7 contienen código para usar memoria física por encima de 4 GB. Microsoft simplemente no te da licencia para usar ese código". Fecha de acceso: 26 de diciembre de 2013. Archivado desde el original el 10 de diciembre de 2013.
  11. Una vez más sobre Windows y cuatro gigabytes Copia de archivo del 24 de diciembre de 2013 en Wayback Machine // IXBT 8 de agosto de 2012 Igor Petrovich Leiko
  12. Límites de memoria para versiones de Windows . Microsoft (25 de marzo de 2010). Consultado el 5 de abril de 2010. Archivado desde el original el 20 de junio de 2009.
  13. Rompiendo los límites de Windows: memoria virtual  (inglés) , Mark Russinovich en ruso . Archivado desde el original el 30 de noviembre de 2018. Consultado el 29 de noviembre de 2018.
  14. 2.3.23-pre4 x86 64 GB RAM cambia [parche HIGHMEM] explicado un poco . Consultado el 27 de noviembre de 2013. Archivado desde el original el 10 de enero de 2014.
  15. Especificaciones de x86 para Fedora 11 . Consultado el 27 de noviembre de 2013. Archivado desde el original el 10 de mayo de 2013.
  16. Habilitación de PAE . Consultado el 28 de abril de 2013. Archivado desde el original el 13 de marzo de 2011.
  17. Notas de la versión de RHEL 6, 12.6. Actualizaciones generales del kernel 12.6.1. Extensión de dirección física (PAE) . sombrero rojo. - "El kernel predeterminado enviado con la versión de arquitectura x86 de Red Hat Enterprise Linux 6 está habilitado para PAE. Un procesador habilitado para PAE es un requisito mínimo para la variante x86 de Red Hat Enterprise Linux 6.". Consultado el 27 de noviembre de 2013. Archivado desde el original el 3 de diciembre de 2013.
  18. Features/ArchitectureSupport Archivado el 3 de diciembre de 2013 en Wayback Machine // Fedora
  19. Capítulo 29. Actualización manual del kernel Archivado el 3 de junio de 2014 en Wayback Machine // Documentación de Fedora 12: "29.1. Descripción general de los paquetes del kernel»
  20. Professional Linux Kernel Architecture Archivado el 5 de diciembre de 2013 en Wayback Machine , Figura 3.16 Flujo de código para paging_init , “Execute Disable Protection también está habilitado si es compatible con el procesador y si el kernel se compiló con soporte PAE; Desafortunadamente, la función no está disponible de otra manera".
  21. corbeta . Compatibilidad con x86 NX , LWN (2 de junio de 2004). Archivado desde el original el 2 de diciembre de 2013. Consultado el 27 de noviembre de 2013.

Enlaces