Original author(s) | Chris Brady |
---|---|
Developer(s) | PassMark Software |
Initial release | 1994[1] |
Stable release | |
Written in | C, assembly language |
Available in | 12 languages [3] |
List of languages English, French, German, Czech, Polish, Russian, Spanish, Portuguese, Italian, Catalan, Japanese, Chinese | |
Type | Utility |
License | freeware, proprietary license |
Website | www |
Developer(s) | Martin Whitaker, Sam Demeulemeester |
---|---|
Initial release | 2004[4] |
Stable release | |
Repository | |
Written in | C, assembly language |
Available in | English |
Type | Utility |
License | GNU General Public License, version 2.0 |
Website | www |
MemTest86 and Memtest86+ are memory test software programs designed to test and stress test an x86 architecture computer's random-access memory (RAM) for errors, by writing test patterns to most memory addresses, reading back the data, and comparing for errors. [6] 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.
MemTest86 was developed by Chris Brady in 1994. [1] It was written in C and x86 assembly, and for all BIOS versions, was released under the GNU General Public License (GPL). The bootloading code was originally derived from Linux 1.2.1. [7] The program is compiled as position-independent code so as to be able to move itself around and test all the memory regions. [8] The proprietary PassMark version does not have this ability. [9]
Starting from MemTest86 2.3, the program can output a list of bad RAM regions in the format expected by the BadRAM patch for the Linux kernel. [10] GRUB2 is able to supply this same information to an unpatched kernel, making the BadRAM patch unnecessary. [11] Microsoft Windows has a similar feature (badmemorylist/badmemoryaccess), but manual conversion is required for setting it up.[ citation needed ]
In February 2013, the original MemTest86 was sold to PassMark. The BIOS version was updated under GPL until version 4.3.7.
MemTest86 Version 5.0 (3 December 2013) was rewritten for UEFI booting (initially with fallback to BIOS booting on non-UEFI systems), allowing for secure boot approval and mouse support. All UEFI versions are released under a proprietary freeware license. Version 6.0 (13 Feb 2015) adds support for DDR4 RAM, and a row-hammer test based on research from Yoongu Kim, et al.. [1] [10] [12] Version 8.0 removed backward compatibility with non-UEFI systems, requiring a separate download of the older version 4.3.7. [10]
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.
From version 1.60, the program can output a list of bad RAM regions in the format expected by the BadRAM patch for the Linux kernel [13] (similar to MemTest86 2.3).
The BIOS-based line of Memtest86+ entered a stall after the release of version 5.01 (September 2013). In April 2020, the final BIOS-based version, 5.31 beta, was released with a short changelog claiming "many fixes". [14] [15]
In May 2020, Martin Whitaker forked Memtest86+ 5.31 into PCMemTest, rewriting it for UEFI support, DDR4 and DDR5 RAM, and supporting all current AMD and Intel chipsets and CPUs. In October 2022, this branch merged back, becoming Memtest86+ 6.0. [16] [17]
Memtest86+ is included, optionally or by default, in many Linux distributions, including Debian, [18] the derived Ubuntu, and Arch Linux. [19] Ubuntu includes it as part of the default installation if the machine is booting in BIOS mode, showing it in the GRUB OS-select menu; [20] the version 6.0, UEFI-capable, is available from Ubuntu 23.04 Lunar Lobster. [21] Whilst Memtest86+ version 5.01 required significant patching by distributions to keep the 2013 code base functional, [22] the 6.0 release did not require such extensive patching. [23]
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, respectively, MemTest86 4.3 and Memtest86+ 5.0. [1]
Version 5.0 of MemTest86 added a mouse-driven graphical user interface (GUI) and UEFI support; the latter was added by Memtest86+ from version 6.0.[ citation needed ]
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. [10] [13]
MemTest86(+) is designed to run as a stand-alone, self-contained program from a bootable USB flash drive, CD-ROM, floppy disk, or from a suitable boot manager without an operating system present. [24] 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. [24] [25] With many chipsets, MemTest86 allows counting of failures even in error-correcting ECC DRAM (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. [26]
Both versions now support current multi-core processors, the corresponding chipsets, and UEFI. [4] [27]
In computing, BIOS is firmware used to provide runtime services for operating systems and programs and to perform hardware initialization during the booting process. The BIOS firmware comes pre-installed on an IBM PC or IBM PC compatible's system board and exists in some UEFI-based systems to maintain compatibility with operating systems that do not support UEFI native operation. The name originates from the Basic Input/Output System used in the CP/M operating system in 1975. The BIOS originally proprietary to the IBM PC has been reverse engineered by some companies looking to create compatible systems. The interface of that original system serves as a de facto standard.
A Linux distribution is an operating system made from a software collection that includes the Linux kernel and often a package management system. They are often obtained from the website of each distribution, which are available for a wide variety of systems ranging from embedded devices and personal computers to servers and powerful supercomputers.
Knoppix, stylized KNOPPIX, is an operating system based on Debian designed to be run directly from a CD / DVD or a USB flash drive. It was first released in 2000 by German Linux consultant Klaus Knopper, and was one of the first popular live distributions. Knoppix is loaded from the removable medium and decompressed into a RAM drive. The decompression is transparent and on-the-fly.
GNU 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 user the choice to boot one of multiple operating systems installed on a computer or select a specific kernel configuration available on a particular operating system's partitions.
In computing, Physical Address Extension (PAE), sometimes referred to as Page Address Extension, is a memory management feature for the x86 architecture. PAE was first introduced by Intel in the Pentium Pro, and later by AMD in the Athlon processor. It defines a page table hierarchy of three levels (instead of two), with table entries of 64 bits each instead of 32, allowing these CPUs to directly access a physical address space larger than 4 gigabytes (232 bytes).
Unified Extensible Firmware Interface is a specification that defines an architecture for the platform firmware used for booting a computer's hardware and its interface for interaction with the operating system. Examples of firmware that implement the specification are AMI Aptio, Phoenix SecureCore, TianoCore EDK II, InsydeH2O.
Puppy Linux is a family of light-weight Linux distributions that focus on ease of use and minimal memory footprint. The entire system can be run from random-access memory (RAM) with current versions generally taking up about 600 MB (64-bit), 300 MB (32-bit), allowing the boot medium to be removed after the operating system has started. Applications such as AbiWord, Gnumeric and MPlayer are included, along with a choice of lightweight web browsers and a utility for downloading other packages. The distribution was originally developed by Barry Kauler and other members of the community, until Kauler retired in 2013. The tool Woof can build a Puppy Linux distribution from the binary packages of other Linux distributions.
coreboot, formerly known as LinuxBIOS, is a software project aimed at replacing proprietary firmware found in most computers with a lightweight firmware designed to perform only the minimum number of tasks necessary to load and run a modern 32-bit or 64-bit operating system.
A power-on self-test (POST) is a process performed by firmware or software routines immediately after a computer or other digital electronic device is powered on.
Video BIOS is the BIOS of a graphics card in a computer. It initializes the graphics card at the computer's boot time. It also implements INT 10h interrupt and VESA BIOS Extensions (VBE) for basic text and videomode output before a specific video driver is loaded. In UEFI 2.x systems, the INT 10h and the VBE are replaced by the UEFI GOP.
Advanced Configuration and Power Interface (ACPI) is an open standard that operating systems can use to discover and configure computer hardware components, to perform power management, auto configuration, and status monitoring. It was first released in December 1996. ACPI aims to replace Advanced Power Management (APM), the MultiProcessor Specification, and the Plug and Play BIOS (PnP) Specification. ACPI brings power management under the control of the operating system, as opposed to the previous BIOS-centric system that relied on platform-specific firmware to determine power management and configuration policies. The specification is central to the Operating System-directed configuration and Power Management (OSPM) system. ACPI defines hardware abstraction interfaces between the device's firmware, the computer hardware components, and the operating systems.
loadlin is a Linux boot loader that runs under 16-bit real-mode DOS. It allows the Linux system to load and replace the running DOS without altering existing DOS system files.
The EFIsystem partition or ESP is a partition on a data storage device that is used by computers that have the Unified Extensible Firmware Interface (UEFI). When a computer is booted, UEFI firmware loads files stored on the ESP to start operating systems and various utilities.
nouveau is a free and open-source graphics device driver for Nvidia video cards and the Tegra family of SoCs written by independent software engineers, with minor help from Nvidia employees.
Wubi is a free software Ubuntu installer, that was the official Windows-based software, from 2008 until 2013, to install Ubuntu from within Windows, to a single file within an existing Windows partition.
Long-term support (LTS) is a product lifecycle management policy in which a stable release of computer software is maintained for a longer period of time than the standard edition. The term is typically reserved for open-source software, where it describes a software edition that is supported for months or years longer than the software's standard edition.
Matthew Garrett is an Irish technologist, programmer, and free software activist who is a major contributor to a series of free software projects including Linux, GNOME, Debian, Ubuntu, and Red Hat. He has received the Free Software Award from the Free Software Foundation (FSF) for his work on Secure Boot, UEFI, and the Linux kernel.
rEFInd is a boot manager for UEFI and EFI-based machines. It can be used to boot multiple operating systems that are installed on a single non-volatile device. It also provides a way to launch UEFI applications.
Copyright (C) 1991, 1992 Linus Torvalds 1-Jan-96 Modified by Chris Brady
MemTest86 cannot remap itself to different portions of memory in order to run tests in the section of memory it was occupying.
Hold down Shift to bring up the GRUB menu. Use the arrow keys to move to the entry labeled Ubuntu, memtest86+