Memtest86+ ist eine freie Software zum Testen des Arbeitsspeichers eines Computersystems.

Memtest86+


Bildschirmfoto von Memtest86+. Ein Pass ist bereits ohne Fehler abgeschlossen, der zweite läuft gerade.
Basisdaten

Hauptentwickler Samuel Demeulemeester, Martin Whitaker (ab Version 6.0)
Entwickler Chris Brady (Memtest86 bis Version 3), Samuel Demeulemeester (bis Version 5.31b), Martin Whitaker (PCMemTest)
Erscheinungsjahr 2004[1]
Aktuelle Version 7.20[2]
(11. November 2024)
Aktuelle Vorabversion 5.31b[3]
(12. April 2020)
Betriebssystem Startmedium, Architekturen: x86 (inkl. x64)
Programmier­sprache C[4], Assemblersprache
Kategorie Systemsoftware
Lizenz GNU General Public License, Version 2[5]
deutschsprachig nein
memtest.org

Geschichte

Bearbeiten

Samuel Demeulemeester veröffentlichte es als Abspaltung von Memtest86 auf Basis der Version 3.0, nachdem diese von Mai 2002 bis März 2004 nicht aktualisiert worden war. Memtest86+ steht wie seine damalige Vorlage weiterhin unter der GNU General Public License, während Memtest86 mittlerweile als proprietäre Software weiterentwickelt wird.[6]

Ab Version 4.10 wird Memtest86+ mit Installer für Speicherkarten, USB-Sticks und für das Booten im Netzwerk (PXE) im Modus legacy-BIOS angeboten.

Auf Basis von Version 5.01 spaltete Martin Whitaker das Programm PCMemTest ab, zwischen 2020 und 2021 erschienen dessen Versionen 1.0 bis 1.5.[7] 2022 wurde die Codebasis beider Programme wieder als Memtest86+ Version 6.0 zusammengeführt, an dem nunmehr Sam Demeulemeester und Martin Whitaker gemeinsam arbeiten.[8]

Arbeitsweise

Bearbeiten
 
Hier zeigen sich beim 11. Pass im 7. Test erhebliche Fehler.

Memtest86+ arbeitet unabhängig von einem installierten Betriebssystem direkt auf der Hardware als so genanntes Bare metal program und kann von einem USB-Stick oder über das Netzwerk mittels Preboot Execution Environment (PXE) gestartet werden. Es läuft sowohl im BIOS- als auch im UEFI-Modus.

Die Software überprüft den Arbeitsspeicher mit 11 unterschiedlichen Tests, durchnummeriert von 0 bis 10. In jedem davon wird der komplette Speicher abschnittsweise mit bestimmten Testmustern beschrieben, die anschließend wieder ausgelesen und auf Korrektheit überprüft werden. Abweichungen zwischen den ausgelesenen und den ursprünglich geschriebenen Mustern werden als Fehler gemeldet und aufgelistet. Neben reinen Zufallswerten sind die meisten Testmuster so gestaltet, dass darin einzelne oder abwechselnde Bits wiederholt verschoben oder invertiert werden, um bewusst sämtliche Speicherzellen technisch auszulasten:[9]

  • Tests 0 bis 2: Adresstests. Dies sind noch keine Stresstests, hier wird nur die Ansprechbarkeit jedes Speicherbereichs geprüft. Als Testwerte werden einzelne Bits oder die Adresse des Speicherbereichs selbst verwendet. Test 0 läuft auf aktuellen Systemen sehr schnell, mitunter fast unmerklich durch.
  • Tests 3 bis 6: „Moving inversions“. Unterschiedliche Bitmuster werden abwechselnd mit ihren Inversionen geschrieben, wobei sich Besonderheiten innerhalb der Muster weiterbewegen.
  • Test 7: „Block move“. Der Speicherbereich wird vollgeschrieben, dann werden die einzelnen Blöcke direkt im Speicher verschoben. Ausgewertet wird dieser Test erst nach allen Verschiebungen, daher erlaubt er keine genaue Lokalisierung aufgetretener Fehler. Dieser Test ist vergleichbar mit dem Spiel Stille Post.
  • Test 8: Schreiben von Zufallszahlenfolgen und ihren Inversionen.
  • Test 9: „Modulo 20“. Erneuter Test mit Zufallszahlen nach einem anderen Algorithmus.
  • Test 10: „Bit fade“. Der Speicherbereich wird vollständig mit einheitlichen Bitwerten gefüllt und dann eine Zeitlang (in der aktuellen Version 80 Sekunden) ruhen gelassen. Danach müssen alle Werte noch korrekt auslesbar sein.

Die Software selbst, die ja auch im Arbeitsspeicher gehalten werden muss, arbeitet positionsunabhängig und verschiebt sich selbst während der Laufzeit im Speicher, so dass sie sich nicht im Wege ist und der gesamte Speicher getestet werden kann.

Ein vollständiger Durchlauf aller 11 Tests wird Pass genannt und benötigt auf aktuellen Systemen rund 15 bis 30 Minuten, kann aber je nach CPU-Geschwindigkeit und Speichervolumen auch eine Stunde oder länger dauern. Anschließend beginnt sofort der nächste Pass; die Software läuft weiter, bis sie gestoppt wird. Mindestens ein vollständiger Pass ohne Fehler wird als Nachweis eines fehlerfrei arbeitenden Speichers betrachtet, wobei manche Fehler sich auch erst nach mehreren Passes zeigen. Andererseits bedeuten aufgetretene Fehler nicht zwingend einen defekten Arbeitsspeicher; die Ursache kann auch in der CPU, im Mainboard oder in der Konfiguration (etwa Übertakten) liegen.

Bearbeiten
Commons: Memtest86 – Sammlung von Bildern, Videos und Audiodateien

Einzelnachweise

Bearbeiten
  1. www.memtest.org.
  2. Release 7.20. 11. November 2024 (abgerufen am 26. November 2024).
  3. Memtest86+. 12. April 2020.
  4. www.openhub.net.
  5. github.com.
  6. Memtest86+. Archiviert vom Original am 27. Mai 2022; abgerufen am 29. Mai 2022 (englisch): „Memtest86+ v6 is an unified, free, open-source memory testing tool, released under GNU GPL v2.0. … Memtest86+ is unrelated to 'Memtest86', a closed-source `Freemium` software released in 2013 by PassMark Software Pty Ltd.“
  7. Martin Whitaker: Releases – martinwhitaker/pcmemtest. In: GitHub. 16. Oktober 2021, abgerufen am 29. Mai 2022 (englisch).
  8. Memtest86+. Archiviert vom Original am 27. Mai 2022; abgerufen am 29. Mai 2022 (englisch): „The new v6 code base (originally called PCMemTest) was provided by Martin Whitaker, based on Memtest86+ v5, developed by Sam Demeulemeester. Both are now working on Memtest86+.“
  9. Präzise Beschreibung aller Tests auf der Website des Anbieters, abgerufen am 7. Juli 2022