Memtest86

Uit Wikipedia, de vrije encyclopedie
Ga naar: navigatie, zoeken
Memtest86
Een schermafbeelding van Memtest86+
Een schermafbeelding van Memtest86+
Ontwikkelaar Memtest86: Chris Brady
Memtest86+: Samuel Demeulemeester
Recentste versie Memtest86: 4.0 (28 oktober 2011)
Memtest86+: 4.20 (25 januari 2011)
Besturingssysteem Alleenstaand opstartbaar programma
Geschreven in x86-assembly
Licentie GPL v2.0
Website Memtest86: www.memtest86.com
Memtest86+: www.memtest.org
Portaal  Portaalicoon   Informatica

Memtest86 en Memtest86+ zijn opensourceprogramma's ontworpen om het werkgeheugen (RAM) van van een x86-computer te controleren op fouten. De test controleert of het werkgeheugen de willekeurige patronen van gegevens die naar het geheugen worden geschreven correct zijn terug te lezen uit dit geheugen.

Beschrijving[bewerken]

Er bestaan twee versies (of ontwikkelingsstromen) van Memtest86. Het origineel is bekend als Memtest86, de andere als Memtest86+. Memtest+ werd ontwikkeld om nieuwere chipsets te ondersteunen. Beide versies zien er hetzelfde uit.

Deze programma's werken met oude verouderde 80386- (i386) en 80486- (i486) computers en de laatste, maar niet verouderde, P4 en nieuwere chipsets. Ze worden van tijd tot tijd vernieuwd voor nieuwere chipsets.[1][2]

Memtest86 kan gestart worden vanaf een opstartbare harde schijf, diskette, cd-rom of USB-stick met een geschikte bootloader zonder dat er een besturingssysteem aanwezig is. De reden hiervoor is dat het programma de hardware die getest wordt direct moet kunnen aanspreken en zo veel mogelijk RAM moet vrijhouden. Het is een snelle en makkelijk manier om het programma op te starten. Het voorkomt het draaien van een complex besturingssysteem of programma die de geheugentest kan beïnvloeden. Een defecte harde schijf kan bijvoorbeeld een vertekend beeld geven over de staat van het werkgeheugen.

De geheugentesten zijn zeer uitgebreid [3], waardoor het problemen vindt op systemen die normaal lijken te werken.

De tijd die het programma nodig heeft om alle tests eenmaal uit te voeren kan variëren van een paar minuten tot enkele uren. Dit hangt af de snelheid en de grootte van het geheugen en de snelheid van de processor (cpu). Bepaalde fouten in het geheugen zijn zo subtiel dat Memtest86 deze niet bij elke test opmerkt. Om er zeker van te zijn dat alle in het geheugen aanwezige fouten worden gedetecteerd is het van belang om de test meerdere keren achter elkaar uit te voeren. De test gebruikt namelijk bij elke test andere data.[4] Ook worden fouten soms pas opgemerkt nadat het geheugen door het gebruik warm geworden is. Daarom zal het programma blijven draaien totdat de gebruiker het systeem opnieuw opstart.

Distributie[bewerken]

Oorspronkelijk waren de programma's beschikbaar op het internet als kleine imagebestanden, bedoeld voor diskettes. Het bevatte ook een klein Windowsprogramma om een diskette opstartbaar te maken. Onder Linux en Unix kan het standaard dd-commando worden gebruikt om een opstartbare diskette aan te maken. De diskette kan vervolgens direct opgestart worden op de computer zonder een besturingssysteem.

Aangezien diskettes verouderd zijn en zelden nog gebruikt worden, bevatten de distributies nu images voor USB-sticks en cd-roms, waarmee opstartbare USB-sticks of cd-roms kunnen worden gebrand. Veel LiveCD's van Linuxdistributies (zoals Knoppix en Ubuntu) bevatten standaard een optie om bij het opstarten van de CD Memtest86 de laden, in plaats van het opstarten van Linux.

Daarnaast worden bepaalde moederborden standaard geleverd met MemTest86 geïntegreerd in het BIOS. De gebruiker kan bij het opstarten dan vaak een bepaalde toets op het toetsenbord aanslaan om MemTest86 op te starten. De gebruiker hoeft dan geen opstartschijf te gebruiken.

Geschiedenis[bewerken]

Memtest86 is ontwikkeld door Chris Brady. Nadat versie 3.0 (uitgebracht in 2002) van Memtest86 na twee jaar nog niet opgevolgd was door een nieuwe versie, creëerde Samuel Demeulemeester Memtest86+ om nieuwe CPU's en chipsets te ondersteunen. Vanaf 2009 worden beiden actief bijgehouden[5][6].

Memtest86 is geschreven in C en x86-assembly. De broncode wordt uitgebracht onder de GNU General Public License (GPL). De bootloading code kwam oorspronkelijk uit de Linux 1.2.1. Beide versies, Memtest86 en Memtest86+, ondersteunen momenteel dual- en quad-core-CPU's en de daarbij behorende chipsets. De laatste uitgebrachte versie van Memtest86+ ondersteunt Intel-gebaseerde Macintosh-computers.

Vanaf Memtest86 versie 2.3[1] en Memtest86+ versie 1.60[2] kan de Linuxkernel een lijst van slechte RAM-gebieden in het formaat van verwachte BadRAM (slechte RAM) [7] patch gebruiken. Het Linuxsysteem kan dan veilig een RAM-module gebruiken als deze een paar slechte bits bevat[8]. GRUB 2 is in staat om deze informatie te leveren aan een kernel die deze patch niet bevat[9]. Hierdoor is deze BadRAM-patch bij het gebruik van GRUB niet nodig.

Werking[bewerken]

Zo ziet defect geheugen eruit: twee onjuiste bits gedetecteerd. We zien niet alleen welke bits gefaald hebben, maar ook welke patronen voor het falen zorgden.

Memtest86 schrijft series van testpatronen naar geheugenadressen, leest deze geschreven data terug en vergelijkt deze vervolgens op fouten[10].

De standaard procedure doet 9 verschillende tests, variërend in toegang patronen en testgegevens. Een tiende test, bit fade genoemd, kan worden geselecteerd vanuit het menu. Deze beschrijft het totale geheugen met nullen. Hierna pauzeert het programma voor 90 minuten, waarna het controleert of de bits veranderd zijn. Dit wordt herhaald met enen voor een totaal van drie uur per test.

Cachegeheugen (zoals aanwezig op processorchips) wordt niet uitgeschakeld tijdens de tests. Toch worden toegangspatronen zo ontworpen zodat de meeste cachegeheugens geleegd worden. Dit gebeurt om ervoor te zorgen dat geheugentoegang gezien kan worden door het RAM.

Veel chipsets kunnen RAM-snelheden en timing rapporteren via Serial Presence Detect (SPD) of Enhanced Performance Profiles (EPP), en sommigen kunnen zelfs de snelheid van het geheugen veranderen, als de verwachte geheugensnelheid hoger is dan dat dit standaard bedoeld is (overclocking). Memtest86 kan testen de prestatie van het geheugen vrij is van fouten met de snellere instellingen.

Sommige hardware kan de "PAT status" (PAT: ingeschakeld of PAT: uitgeschakeld) rapporteren. Dit betreft een verwijzing naar Intel Performance acceleration technology; er kunnen BIOS-instellingen bestaan die dit aspect van geheugentiming beïnvloeden.

Deze informatie, indien deze toegankelijk is voor het programma, kan weergegeven worden via de menuopties.

Externe links[bewerken]

Portal.svg Portaal Vrije software
Bronnen, noten en/of referenties