Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
MemTest86
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Split|MemTest86|Memtest86+|date=February 2025}} {{Short description|Computer memory diagnostics software}} {{Use dmy dates|date=September 2024}} {{Infobox software | name = MemTest86 | screenshot = Memtest86 v83p.png | screenshot alt = A text-mode screen displaying many statistics | caption = A screenshot of MemTest86 (ver. 8.3 Pro) | author = {{wikidata|properties|Q1849262|P170}} | developer = {{wikidata|properties|Q1849262|P178}} | released = {{Start date and age|{{wikidata|properties|Q1849262|P577}}}}<ref name="86history" /> | latest release version = {{wikidata|property|preferred|references|edit|Q1849262|P348|P548=Q2804309}} | latest release date = {{wikidata|qualifier|preferred|single|Q1849262|P348|P548=Q2804309|P577}} | programming language = {{wikidata|properties|Q1849262|P277}} | language = {{wikidata|properties|Q1849262|P407}} | language count = 12 | language footnote = <ref>{{cite web |url=https://www.memtest86.com/compare.html |title=MemTest86 Feature Comparison |website=MemTest86.com |access-date=22 August 2024 }}</ref> | genre = [[Utility software|Utility]] | license = {{wikidata|properties|Q1849262|P275}} | website = }} {{Infobox software | name = Memtest86+ | screenshot = Memtest86+-6.00b2.png | screenshot alt = A blue text-mode screen displaying many statistics | caption = A screenshot of Memtest86+ (ver. 6.00b2) | developer = {{wikidata|properties|Q64996107|P178}} | released = {{Start date and age|{{wikidata|properties|Q64996107|P577}}}}<ref name="86+his" /> | latest release version = {{wikidata|property|preferred|references|edit|Q64996107|P348|P548=Q2804309}} | latest release date = {{wikidata|qualifier|preferred|single|Q64996107|P348|P548=Q2804309|P577}} | repo = | qid = Q64996107 | programming language = {{wikidata|properties|Q64996107|P277}} | language = {{wikidata|properties|Q64996107|P407}} | genre = Utility | license = {{wikidata|properties|Q64996107|P275}} | website = }} '''MemTest86''' and '''Memtest86+''' are [[memory test software]] programs designed to test and [[stress testing (software)|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.<ref>{{cite web |url=https://www.memtest86.com/technical.htm |title=MemTest86 Technical Information |publisher=PassMark Software |website=MemTest86.com |access-date=22 October 2015 }}</ref> 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== ===History=== MemTest86 was developed by Chris Brady in 1994.<ref name="86history">{{cite web |url=https://www.memtest86.com/history.htm |title=MemTest86 History |website=MemTest86.com |archive-url=https://web.archive.org/web/20190511082509/https://www.memtest86.com/history.htm |archive-date=11 May 2019 }}</ref> It was written in [[C (programming language)|C]] and x86 [[assembly language|assembly]], and for all [[BIOS]] versions, was released under the [[GNU General Public License]] (GPL). The bootloading code was originally derived from [[Linux kernel|Linux 1.2.1]].<ref>{{cite web |title=bootsect.S - chromiumos/third_party/memtest - Git at Google |url=https://chromium.googlesource.com/chromiumos/third_party/memtest/+/master/bootsect.S |website=ChromiumOS Source |quote=Copyright (C) 1991, 1992 Linus Torvalds 1-Jan-96 Modified by Chris Brady }}</ref> The program is compiled as [[position-independent code]] so as to be able to move itself around and test all the memory regions.<ref>{{cite web |title=README.build-process - chromiumos/third_party/memtest - Git at Google |url=https://chromium.googlesource.com/chromiumos/third_party/memtest/+/master/README.build-process |website=chromium.googlesource.com }}</ref> The proprietary PassMark version does not have this ability.<ref>{{Cite web |title=MemTest86 β Known Issues |url=https://www.memtest86.com/tech_blacklist-file.html |website=MemTest86.com |access-date=31 October 2023 |quote=MemTest86 cannot remap itself to different portions of memory in order to run tests in the section of memory it was occupying. }}</ref> ====BadRAM patch==== 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]].<ref name="86chg">{{Cite web |url=https://www.memtest86.com/whats-new.html |title=What's New? |website=MemTest86 |access-date=6 September 2024 }}</ref> [[GRUB2]] is able to supply this same information to an unpatched kernel, making the BadRAM patch unnecessary.<ref>{{cite web |url=https://www.gnu.org/software/grub/manual/grub.html#badram |title=GNU GRUB Manual 1.99 Β§ Badram }}</ref> Microsoft Windows has a similar feature (badmemorylist/badmemoryaccess), but manual conversion is required for setting it up.{{Citation needed|date=September 2024}} ====PassMark purchase==== 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 [[Unified Extensible Firmware Interface|UEFI]] booting (initially with fallback to BIOS booting on non-UEFI systems), allowing for [[Unified Extensible Firmware Interface#Secure Boot|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 SDRAM|DDR4]] RAM, and a [[Row hammer|row-hammer]] test based on research from Yoongu Kim, ''et al.''.<ref name="86history" /><ref name="86chg" /><ref>{{cite web |last1=Kim |first1=Yoongu |last2=Daly |first2=Ross |last3=Kim |first3=Jeremie |last4=Fallin |first4=Chris |last5=Lee |first5=Ji Hye |last6=Lee |first6=Donghyuk |last7=Wilkerson |first7=Chris |last8=Lai |first8=Konrad |last9=Mutlu |first9=Onur |date=8 July 2014 |url=https://www.ece.cmu.edu/~safari/pubs/kim-isca14.pdf |title=Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors |publisher=[[Carnegie Mellon University]] |access-date=7 April 2015 }}</ref> Version 8.0 removed [[backward compatibility]] with non-UEFI systems, requiring a separate download of the older version 4.3.7.<ref name="86chg" /> ==Memtest86+== ===History=== 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<ref name="86+chg">{{Cite web |url=https://www.memtest.org/#change |title=Memtest86+ - Advanced Memory Diagnostic Tool |website=MemTest.org }}</ref> (similar to [[Memtest86#BadRAM patch|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".<ref>{{cite web |title=Memtest86+ Archives |url=https://www.memtest.org/archives |website=Memtest86+ }}</ref><ref>{{cite web |title=728766 β sys-apps/memtest86+-5.31b version bump |url=https://bugs.gentoo.org/728766 |website=Bugs.Gentoo.org }}</ref> In May 2020, Martin Whitaker forked Memtest86+ 5.31 into '''PCMemTest''', rewriting it for UEFI support, DDR4 and [[DDR5 SDRAM|DDR5]] RAM, and supporting all current AMD and Intel chipsets and CPUs. In October 2022, this branch merged back, becoming Memtest86+ 6.0.<ref>{{Cite web |last=Klotz |first=Aaron |date=24 October 2022 |title=Memtest86+ Is Back! New Version Released After 9 Years |url=https://www.tomshardware.com/news/memtest86-plus-is-back-after-9-years |website=Tom's Hardware |access-date=25 October 2022 }}</ref><ref>{{Cite web |title=memtest86+ v6.0 Released As Rewritten Open-Source RAM Tester |url=https://www.phoronix.com/news/memtest86-6.0-Released |website=Phoronix.com |access-date=25 October 2022 }}</ref> ===Adoption=== Memtest86+ is included, optionally or by default, in many [[Linux distribution]]s, including [[Debian]],<ref>{{cite web |url=https://packages.debian.org/stable/memtest86+ |title=Package: memtest86+ |website=Debian Packages |access-date=15 January 2024 }}</ref> the derived [[Ubuntu]], and [[Arch Linux]].<ref>{{cite web |title=Arch Linux - memtest86+ 5.01-3 (any) |url=https://www.archlinux.org/packages/extra/any/memtest86+/ |access-date=7 April 2019 }}</ref> 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;<ref>{{cite web |title=MemoryTest |url=https://help.ubuntu.com/community/MemoryTest |website=Ubuntu Help Wiki |access-date=7 April 2019 |quote=Hold down Shift to bring up the GRUB menu. Use the arrow keys to move to the entry labeled Ubuntu, memtest86+ }}</ref> the version 6.0, UEFI-capable, is available from Ubuntu 23.04 Lunar Lobster.<ref>{{cite web |url=https://packages.debian.org/stable/memtest86+ |title=Memtest86+ 6.10-4 (amd64 binary) in Ubuntu Lunar |website=Ubuntu Launchpad |access-date=16 January 2024 }}</ref> Whilst Memtest86+ version 5.01 required significant [[Patch (computing)|patching]] by distributions to keep the 2013 code base functional,<ref>{{cite web |title=Patch tracker: memtest86+ |url=https://sources.debian.org/patches/memtest86%2B/5.01-3.1/ |website=Debian Sources |access-date=20 September 2023 }}</ref> the 6.0 release did not require such extensive patching.<ref>{{cite web |title=Patch tracker: memtest86+ |url=https://sources.debian.org/patches/memtest86%2B/6.10-4/ |website=Debian Sources |access-date=20 September 2023 }}</ref> ==Common features== [[File:Memtest86+ memory errors.png|thumb|Detections of faulty memory are displayed prominently. The application shows which memory locations failed and which patterns made them fail.]] 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 until MemTest86 4.3 and Memtest86+ 5.0.<ref name="86history" /> 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|date=September 2024}} These programs work with nearly all PC-compatible computers from [[i386|80386-]] and 80486-based systems to the latest systems with 64-bit processors. Each new release adds support for newer processors and chipsets.<ref name="86chg" /><ref name="86+chg" /> 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.<ref name="Fisher 2018">{{cite web |last=Fisher |first=Tim |date=6 February 2018 |title=MemTest86 v7.5 Free Memory Testing Tool Review |url=https://www.lifewire.com/memtest86-review-2626145 |website=[[Lifewire]]|publisher=[[Dotdash]] |access-date=24 February 2018 }}</ref> 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.<ref name="Fisher 2018" /><ref>{{cite web |url=https://www.memtest86.com/technical.htm#algo |title=MemTest86 Technical Information: Algorithms |publisher=PassMark Software |website=MemTest86.com |access-date=1 November 2014 }}</ref> With many [[chipset]]s, MemTest86 allows counting of failures even in error-correcting [[error-correcting code|ECC]] [[dynamic RAM|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.<ref>{{cite web|url=https://www.memtest86.com/technical.htm#detailed|title=MemTest86 Technical Information: Detailed Descriptions|publisher=PassMark Software|website=MemTest86.com |access-date=22 October 2015 }}</ref> Both versions now support current [[multi-core processor]]s, the corresponding chipsets, and UEFI.<ref name="86+his">{{cite web |url=https://www.memtest.org/#history |title=Memtest86+ History |website=Memtest.org }}</ref><ref>{{cite web |url=https://www.memtest86.com/support.html |title=MemTest86 Support |website=MemTest86.com }}</ref> ==References== {{Reflist}} ==External links== {{Commons category}} {{Portal|Free and open-source software}} * [https://www.memtest86.com/ Official website of MemTest86] * [https://www.memtest.org/ Official website of Memtest86+] [[Category:Assembly language software]] [[Category:Computer memory]] [[Category:Free utility software]] [[Category:Utilities for Windows]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Ambox
(
edit
)
Template:Citation needed
(
edit
)
Template:Cite web
(
edit
)
Template:Commons category
(
edit
)
Template:Infobox
(
edit
)
Template:Infobox software
(
edit
)
Template:Main other
(
edit
)
Template:Portal
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)
Template:Sister project
(
edit
)
Template:Split
(
edit
)
Template:Template other
(
edit
)
Template:Use dmy dates
(
edit
)