MemTest86 y Memtest86+ son programas de prueba de memoria diseñados para probar y someter a pruebas de estrés la memoria de acceso aleatorio (RAM) de una computadora con arquitectura x86 en busca de errores, escribiendo patrones de prueba en la mayoría de las direcciones de memoria, leyendo los datos y comparándolos en busca de errores. [6] Cada uno intenta verificar que la RAM acepte y retenga correctamente patrones arbitrarios de datos escritos en ella, que no haya errores donde interactúen diferentes bits de memoria y que no haya conflictos entre direcciones de memoria.
MemTest86 fue desarrollado por Chris Brady en 1994. [1] Fue escrito en C y en lenguaje ensamblador x86 , y para todas las versiones de BIOS , fue publicado bajo la Licencia Pública General GNU (GPL). El código de arranque se derivó originalmente de Linux 1.2.1 . [7] El programa está compilado como código independiente de la posición para poder moverse por sí mismo y probar todas las regiones de memoria. [8] La versión propietaria de PassMark no tiene esta capacidad. [9]
A partir de MemTest86 2.3, el programa puede generar una lista de regiones de RAM defectuosas en el formato esperado por el parche BadRAM para el kernel de Linux . [10] GRUB2 puede proporcionar esta misma información a un kernel sin parchear, lo que hace innecesario el parche BadRAM. [11] Microsoft Windows tiene una función similar (badmemorylist/badmemoryaccess), pero se requiere una conversión manual para configurarla. [ cita requerida ]
En febrero de 2013, el MemTest86 original fue vendido a PassMark. La versión BIOS fue actualizada bajo licencia GPL hasta la versión 4.3.7.
La versión 5.0 de MemTest86 (3 de diciembre de 2013) fue reescrita para el arranque UEFI (inicialmente con respaldo al arranque BIOS en sistemas que no son UEFI), lo que permite la aprobación de arranque seguro y compatibilidad con mouse. Todas las versiones UEFI se lanzan bajo una licencia freeware propietaria. La versión 6.0 (13 de febrero de 2015) agrega compatibilidad con RAM DDR4 y una prueba de martillo en fila basada en la investigación de Yoongu Kim, et al . [1] [10] [12] La versión 8.0 eliminó la compatibilidad con versiones anteriores de sistemas que no son UEFI, lo que requiere una descarga por separado de la versión anterior 4.3.7. [10]
Después de que MemTest86 permaneciera en la versión 3.0 (lanzamiento de 2002) durante dos años, Samuel Demeulemeester creó la bifurcación Memtest86+ para agregar soporte para CPU y chipsets más nuevos.
A partir de la versión 1.60, el programa puede generar una lista de regiones de RAM defectuosas en el formato esperado por el parche BadRAM para el kernel de Linux [13] (similar a MemTest86 2.3 ).
La línea de Memtest86+ basada en BIOS entró en un estancamiento después del lanzamiento de la versión 5.01 (septiembre de 2013). En abril de 2020, se lanzó la versión final basada en BIOS, 5.31 beta, con un breve registro de cambios que afirmaba "muchas correcciones". [14] [15]
En mayo de 2020, Martin Whitaker bifurcó Memtest86+ 5.31 en PCMemTest , reescribiéndolo para que admita UEFI, RAM DDR4 y DDR5 y admita todos los chipsets y CPU AMD e Intel actuales. En octubre de 2022, esta rama se fusionó nuevamente y se convirtió en Memtest86+ 6.0. [16] [17]
Memtest86+ está incluido, opcionalmente o por defecto, en muchas distribuciones Linux , incluyendo Debian , [18] el derivado Ubuntu y Arch Linux . [19] Ubuntu lo incluye como parte de la instalación por defecto si la máquina está arrancando en modo BIOS, mostrándolo en el menú de selección de SO de GRUB ; [20] la versión 6.0, con capacidad UEFI, está disponible en Ubuntu 23.04 Lunar Lobster. [21] Mientras que la versión 5.01 de Memtest86+ requirió de parches significativos por parte de las distribuciones para mantener funcional la base de código de 2013, [22] la versión 6.0 no requirió de parches tan extensos. [23]
Existen dos corrientes de desarrollo de MemTest86(+). La original se conoce simplemente como MemTest86 . La otra, conocida como Memtest86+ , es una bifurcación de desarrollo de la MemTest86 original. Su apariencia en pantalla y funcionalidad eran casi idénticas hasta, respectivamente, MemTest86 4.3 y Memtest86+ 5.0. [1]
La versión 5.0 de MemTest86 agregó una interfaz gráfica de usuario (GUI) controlada por mouse y soporte UEFI; este último fue agregado por Memtest86+ a partir de la versión 6.0. [ cita requerida ]
Estos programas funcionan con casi todas las computadoras compatibles con PC, desde los sistemas basados en 80386 y 80486 hasta los sistemas más recientes con procesadores de 64 bits. Cada nueva versión agrega compatibilidad con procesadores y chipsets más nuevos. [10] [13]
MemTest86(+) está diseñado para ejecutarse como un programa independiente y autónomo desde una unidad flash USB de arranque , un CD-ROM , un disquete o desde un administrador de arranque adecuado sin un sistema operativo presente. [24] Esto se debe a que el programa debe controlar directamente el hardware que se está probando y dejar la mayor cantidad posible de espacio de RAM para el examen.
Las pruebas de MemTest86(+) son muy completas, por lo que puede encontrar problemas ocultos en máquinas que parecen funcionar normalmente. [24] [25] Con muchos conjuntos de chips , MemTest86 permite el recuento de fallas incluso en DRAM ECC con corrección de errores (sin un manejo especial, los circuitos de memoria con corrección de errores pueden enmascarar problemas con los chips de memoria subyacentes).
Algunos errores se manifiestan de forma intermitente o dependen de los bits precisos que se almacenan, y no ocurren en cada pasada; dichos errores pueden revelarse al ejecutar muchas pasadas durante un período prolongado. Algunas pruebas utilizan datos diferentes en cada pasada para revelar errores dependientes de los datos. [26]
Ambas versiones ahora admiten los procesadores multinúcleo actuales , los conjuntos de chips correspondientes y UEFI. [4] [27]
Copyright (C) 1991, 1992 Linus Torvalds 1 de enero de 1996 Modificado por Chris Brady
MemTest86 no puede reasignarse a diferentes partes de la memoria para ejecutar pruebas en la sección de memoria que estaba ocupando.
Mantenga presionada la tecla Shift para abrir el menú de GRUB. Utilice las teclas de flecha para desplazarse hasta la entrada etiquetada Ubuntu, memtest86+