HOME

TheInfoList



OR:

MemTest86 and Memtest86+ are
memory test software Memory testers are specialized test equipment used to test and verify memory modules. Types Memory module testers can be broadly categorized into two types, hardware memory testers and software diagnostic programs that run in a PC environme ...
programs designed to test and stress test an
x86 x86 (also known as 80x86 or the 8086 family) is a family of complex instruction set computer (CISC) instruction set architectures initially developed by Intel based on the Intel 8086 microprocessor and its 8088 variant. The 8086 was intr ...
architecture computer's
random-access memory Random-access memory (RAM; ) is a form of computer memory that can be read and changed in any order, typically used to store working data and machine code. A random-access memory device allows data items to be read or written in almost the ...
(RAM) for errors, by writing test patterns to most memory addresses, reading back the data, and comparing for errors. Each tries to verify that the RAM will accept and correctly retain arbitrary patterns of data written to it, that there are no errors where different bits of memory interact, and that there are no conflicts between memory addresses.


History

MemTest86 was developed by Chris Brady in 1994. After MemTest86 remained at version 3.0 (2002 release) for two years, Samuel Demeulemeester created the Memtest86+ fork to add support for newer CPUs and chipsets. the latest version of Memtest86+ is 5.01. MemTest86 is written in C and x86 assembly. The source code of MemTest86 (BIOS version) and of the MemTest86+ fork is released under the
GNU General Public License The GNU General Public License (GNU GPL or simply GPL) is a series of widely used free software licenses that guarantee end users the four freedoms to run, study, share, and modify the software. The license was the first copyleft for general ...
(GPL). The bootloading code was originally derived from Linux 1.2.1. The program is compiled as
position-independent code In computing, position-independent code (PIC) or position-independent executable (PIE) is a body of machine code that, being placed somewhere in the primary memory, executes properly regardless of its absolute address. PIC is commonly used fo ...
so as to be able to move itself around and test all the memory regions. Both versions now support current
multi-core processor A multi-core processor is a microprocessor on a single integrated circuit with two or more separate processing units, called cores, each of which reads and executes program instructions. The instructions are ordinary CPU instructions (such ...
s and the corresponding chipsets. Starting from MemTest86 2.3 and Memtest86+ 1.60, the program can output a list of bad RAM regions in the format expected by the BadRAM patch for the
Linux kernel The Linux kernel is a free and open-source, monolithic, modular, multitasking, Unix-like operating system kernel. It was originally authored in 1991 by Linus Torvalds for his i386-based PC, and it was soon adopted as the kernel for the GNU ...
.
GRUB2 GNU GRUB (short for GNU GRand Unified Bootloader, commonly referred to as GRUB) is a boot loader package from the GNU Project. GRUB is the reference implementation of the Free Software Foundation's Multiboot Specification, which provides a us ...
is able to supply this same information to an unpatched kernel, making the BadRAM patch unnecessary. Microsoft Windows has a similar feature (badmemorylist/badmemoryaccess), but manual conversion is required for setting it up. In February 2013, the original MemTest86 was sold to PassMark. The BIOS version was updated under GPL until version 4.3.7. By then the feature set of the two forks were approximately equal. MemTest86 Version 5.0 (3 December 2013) was rewritten for
UEFI UEFI (Unified Extensible Firmware Interface) is a set of specifications written by the UEFI Forum. They define the architecture of the platform firmware used for booting and its interface for interaction with the operating system. Examples ...
booting, allowing for
secure boot UEFI (Unified Extensible Firmware Interface) is a set of specifications written by the UEFI Forum. They define the architecture of the platform firmware used for booting and its interface for interaction with the operating system. Examples of ...
approval and mouse support. All UEFI versions are released under a proprietary freeware license. When UEFI is not available, Version 5.0 (and later) fall back to BIOS booting and loads the old version 4.3.7. Version 6.0.0 (13 Feb 2015) adds support for
DDR4 Double Data Rate 4 Synchronous Dynamic Random-Access Memory (DDR4 SDRAM) is a type of synchronous dynamic random-access memory with a high bandwidth (" double data rate") interface. Released to the market in 2014, it is a variant of dynamic ran ...
RAM, and a row-hammer test based on research from Yoongu Kim, ''et al.''. Version 10 states only UEFI boot and will not boot on non-UEFI systems, requiring separate download of the older 4.3.7 version which is also maintained on the official website downloads for that purpose. MemTest86+ 6.0 was released in October 2022, being rewritten for UEFI support, DDR4 and
DDR5 Double Data Rate 5 Synchronous Dynamic Random-Access Memory (DDR5 SDRAM) is a type of synchronous dynamic random-access memory. Compared to its predecessor DDR4 SDRAM, DDR5 was planned to reduce power consumption, while doubling bandwidth. Th ...
RAM, and supporting all current AMD and Intel chipsets and CPUs.


Features

There are two development streams of Memtest86. The original is simply known as ''MemTest86''. The other, known as ''Memtest86+'', is a development fork of the original MemTest86. Their on-screen appearance and functionality were almost identical up until the v4 releases. However, version 5 of MemTest86 added a mouse-driven
graphical user interface The GUI ( "UI" by itself is still usually pronounced . or ), graphical user interface, is a form of user interface that allows users to interact with electronic devices through graphical icons and audio indicator such as primary notation, ins ...
(GUI) and UEFI support. These programs work with nearly all PC-compatible computers from 80386- and 80486-based systems to the latest systems with 64-bit processors. Each new release adds support for newer processors and chipsets. MemTest86(+) is designed to run as a stand-alone, self-contained program from a bootable
USB flash drive Universal Serial Bus (USB) is an industry standard that establishes specifications for cables, connectors and protocols for connection, communication and power supply ( interfacing) between computers, peripherals and other computers. A bro ...
,
CD-ROM A CD-ROM (, compact disc read-only memory) is a type of read-only memory consisting of a pre-pressed optical compact disc that contains data. Computers can read—but not write or erase—CD-ROMs. Some CDs, called enhanced CDs, hold both com ...
,
floppy disk A floppy disk or floppy diskette (casually referred to as a floppy, or a diskette) is an obsolescent type of disk storage composed of a thin and flexible disk of a magnetic storage medium in a square or nearly square plastic enclosure lined ...
, or from a suitable boot manager without an
operating system An operating system (OS) is system software that manages computer hardware, software resources, and provides common daemon (computing), services for computer programs. Time-sharing operating systems scheduler (computing), schedule tasks for ef ...
present. This is because the program must directly control the hardware being tested and leave as much of the RAM space as possible for examination. MemTest86(+)'s testing is very comprehensive, so it can find otherwise hidden problems on machines that appear to work normally. With many
chipset In a computer system, a chipset is a set of electronic components in one or more integrated circuits known as a "Data Flow Management System" that manages the data flow between the processor, memory and peripherals. It is usually found on the mo ...
s, MemTest86 allows counting of failures even in error-correcting ECC
DRAM Dynamic random-access memory (dynamic RAM or DRAM) is a type of random-access semiconductor memory that stores each bit of data in a memory cell, usually consisting of a tiny capacitor and a transistor, both typically based on metal-oxid ...
(without special handling, error correcting memory circuits can mask problems with the underlying memory chips). Some errors manifest intermittently or depend on the precise bits being stored, and do not occur on each pass; such errors may be revealed by running many passes over an extended period. Some tests use different data each pass to reveal data-dependent errors.


Adoption

MemTest86+ is a part of many
Linux distribution A Linux distribution (often abbreviated as distro) is an operating system made from a software collection that includes the Linux kernel and, often, a package management system. Linux users usually obtain their operating system by downloading one ...
s, including
Debian Debian (), also known as Debian GNU/Linux, is a Linux distribution composed of free and open-source software, developed by the community-supported Debian Project, which was established by Ian Murdock on August 16, 1993. The first version of De ...
, the derived
Ubuntu Ubuntu ( ) is a Linux distribution based on Debian and composed mostly of free and open-source software. Ubuntu is officially released in three editions: '' Desktop'', ''Server'', and ''Core'' for Internet of things devices and robots. All ...
, and
Arch Linux Arch Linux () is an independently developed, x86-64 general-purpose Linux distribution that strives to provide the latest stable versions of most software by following a rolling-release model. The default installation is a minimal base system, ...
. Ubuntu includes it as part of the default installation if the machine is booting in BIOS mode; it is available from the GRUB OS-select menu. These distributions include many types of patches to keep the 2013 code base functional. For example, Debian has patches that update the
makefile In software development, Make is a build automation tool that automatically builds executable programs and libraries from source code by reading files called ''Makefiles'' which specify how to derive the target program. Though integrated ...
for GCC version 5 and makes the program
Multiboot Multi-booting is the act of installing multiple operating systems on a single computer, and being able to choose which one to boot. The term dual-booting refers to the common configuration of specifically two operating systems. Multi-booting ma ...
compliant.


References


External links

{{Portal, Free and open-source software
Official website of Memtest86

Official website of Memtest86+

History and differences, Memtest86 vs Memtest86+
Assembly language software Computer memory Free utility software Utilities for Windows