GNU/Linux >> Tutoriales Linux >  >> Linux

¿Memtest86+ prueba la memoria que se usa para ejecutarse?

Solución 1:

Obviamente, memtest86+ no puede probar la región de memoria que actualmente contiene el código ejecutable de memtest86+ (pero si hay errores de memoria en esa región, es muy probable que la prueba falle). Sin embargo, memtest86+ puede reubicar su propio código en una dirección diferente en el tiempo de ejecución y, al usar este truco, puede probar toda la memoria que el firmware (BIOS) le permite usar, pero no toda a la vez.

Esta reubicación de código se describe en README.background dentro del archivo de código fuente memtest86+ (el archivo está un poco desactualizado; por ejemplo, indica que las direcciones utilizadas para el código memtest86+ son 0x2000 y 0x200000, pero la dirección baja definida en el código fuente es en realidad 0x10000, y la dirección alta es 0x2000000 o 0x300000 dependiendo de la cantidad de memoria en la máquina).

Pero incluso con este truco de reubicación, memtest86+ no puede probar toda la memoria por las siguientes razones:

  • Por lo general, el firmware (BIOS) reserva algunas regiones de RAM para su propio uso (por ejemplo, tablas ACPI). Si bien la CPU puede acceder a estas regiones de RAM, escribir cualquier cosa en ellas puede resultar en un comportamiento impredecible.

  • Una parte de la RAM se usa para el modo de administración del sistema y ni siquiera es accesible desde la CPU fuera del código SMM privilegiado.

  • El rango de direcciones de RAM entre 640K y 1M es inaccesible debido a las peculiaridades del diseño de la memoria de la PC heredada (parte de esta RAM puede usarse como una sombra para la ROM del BIOS y para SMM, otras partes pueden ser completamente inaccesibles).

Solución 2:

No, memtest no puede probar su propia memoria. Sin embargo, es tan pequeño (solo algunos KB) que apenas importa. EDITAR: esta declaración es incorrecta ya que, como se indica en la respuesta seleccionada, memtest puede reubicarse dinámicamente para probar todos memoria direccionable por el usuario.

--

En teoría, los procesadores modernos pueden, en el momento del arranque, configurar parte de su caché como memoria programable, desde dentro programas muy pequeños (como memtest) se pueden ejecutar sin tocar DRAM en absoluto.

Sin embargo, es una característica específica del modelo (que requiere soporte de BIOS) y no creo que memtest la esté usando.


Linux
  1. Salida de qué comando utilizado para la entrada a Cd?

  2. Linux:¿cómo decide The Oom Killer qué proceso eliminar primero?

  3. Linux:¿Linux realiza un "intercambio oportunista" o es un Theth?

  4. ¿Linux Setuid no funciona?

  5. ¿Qué significa -s y [[]] en una condición If en Bash?

Instalación de la herramienta de prueba de memoria RAM Memtest+ en Redhat 7 Linux

¿Qué significa etc.?

¿Cómo funciona el intercambio de memoria en Linux?

¿Qué significa rc en archivos de puntos?

¿Podemos probar la unidad de asignación de memoria?

du command no analiza directorios ocultos