Memtest86

Software di diagnostica proprietario

MemTest86 e Memtest86+ sono due software di diagnostica studiati per testare la memoria RAM dei computer.

MemTest86
software
Schermata di esempio
Schermata di esempio
Screenshot di MemTest86 (ver. 8.3 Pro).
GenereUtility
SviluppatorePassMark Software
Data prima versione1994
Ultima versione10.7 (Build 1000) (8 febbraio 2024)
Sistema operativoMultipiattaforma
LinguaggioC
linguaggio assembly
Licenzafreeware e licenza proprietaria
(licenza non libera)
LinguaInglese, italiano e altre
Sito webwww.memtest86.com/
Memtest86+
software
Screenshot di Memtest86+ (ver. 6.00b2).
Screenshot di Memtest86+ (ver. 6.00b2).
Screenshot di Memtest86+ (ver. 6.00b2).
GenereUtility
SviluppatoreMartin Whitaker e Sam Demeulemeester
Data prima versione2004
Ultima versione7.00 (7 gennaio 2024)
Sistema operativoMultipiattaforma
LinguaggioC
linguaggio assembly
LicenzaGNU GPL v2
(licenza libera)
LinguaInglese
Sito webwww.memtest.org/

Entrambe le applicazioni vanno avviate prima del caricamento del sistema operativo tramite un floppy disk, un Compact disc (CD-ROM), una chiave USB oppure direttamente dal disco principale tramite un boot loader compatibile (ad esempio GRUB). Durante l'esecuzione vengono scritte in RAM lunghe sequenze di bit ed eseguiti test di diverso tipo volti ad individuare eventuali errori di indirizzamento, danni ai chip di memoria e problemi con la cache[senza fonte].

MemTest86 modifica

Storia modifica

MemTest86 è stato sviluppato da Chris Brady nel 1994[1] in C e Assembly e rilasciato sotto licenza GPL.[1] Il codice di avvio era originariamente derivato da quello del kernel Linux 1.2.1.[2] Il programma era compilato come codice position-independent così da avere la possibilità di essere trasferito in altre locazioni e testare nel complesso tutte le regioni di memoria, comprese quelle che precedentemente occupava[3] (la versione proprietaria successivamente sviluppata da PassMark non avrà questa possibilità a causa di alcune limitazioni dovute al supporto UEFI[4]).

Patch BadRAM modifica

Dalla versione 2.3 di MemTest86, il programma può produrre una lista di regioni danneggiate della RAM nel formato atteso per la patch BadRAM per il kernel Linux.[5]. Attualmente, GRUB 2 può fornire le stesse informazioni a un kernel senza tale patch, rendendo così la BadRAM non necessaria[6]). Anche Microsoft Windows possiede una funzione simile (badmemorylist/badmemoryaccess), ma richiede una conversione manuale per effetturare la configurazione.[7]

Ultima versione GPL e acquisizione di PassMark modifica

Nel periodo tra il 2004 e il 2013 è stata rilasciata la versione 4.0 di MemTest86, l'ultima sotto licenza GPL.

Nel Febbraio 2013, l'originale MemTest86 è stato ceduto da Chris Brady alla PassMark Software[8], che ha proseguito lo sviluppo. Il codice sorgente è stato riscritto per il supporto al UEFI, reso disponibile (insieme, tra le altre cose, ad un'interfaccia che consente l'utilizzo del mouse) col rilascio della versione 5.0, il 3 Dicembre 2013. Tutte le versioni compatibili con UEFI (5.0 e successive) sono rilasciate sotto licenza freeware e proprietaria. Quando l'UEFI non è disponibile nel sistema, le versioni dalla 5.0 alla 9.0[senza fonte] eseguono l'avvio in modalità BIOS legacy caricando la versione 4.0; quest'ultima è stata aggiornata fino alla versione 4.3.7, ed è disponibile per il download sempre sotto licenza GPL.[1]

La versione 6.0 (13 Febbraio 2015) ha aggiunto il supporto per le RAM DDR4, nonché un test row-hammer[5] basato su ricerche di Yoongu Kim, et al.[9]. Di recente[senza fonte] è stato introdotto il supporto anche allo standard DDR5, oltre a supportare tutti gli attuali chipset e processori (CPU) AMD e Intel.

Dalla versione 10.0[senza fonte] non è più possibile l'avvio BIOS, per il quale viene consigliato il download della versione 4.3.7.[10]

Memtest86+ modifica

Storia modifica

Nel 2004, dopo che l'originale MemTest86 era rimasto fermo alla versione 3.0 (rilasciata nel 2002), Samuel Demeulemeester ha creato il fork Memtest86+[11] per aggiungere il supporto a nuovi processori e chipset. Da quel momento MemTest86 e Memtest86+ sono stati sviluppati parallelamente. Una proposta di merge dei due progetti è stata avanzata nel 2013 a Demeulemeester, che ha preferito però proseguire lo sviluppo separatamente.[8]

Dalla versione 1.60 di Memtest86+, il programma produce una lista di regioni RAM danneggiate per la patch BadRAM[12] (similmente a MemTest86 2.3).

Lo sviluppo di Memtest86+ è proseguito fino al rilascio della versione 5.01 nel Settembre 2013. Dopo un periodo di stallo, nell'Aprile 2020 la versione 5.31 beta, l'ultima a supportare solo l'avvio BIOS, è stata rilasciata accompagnata da un breve changelog che annunciava la risoluzione di molteplici bug.[13][14]

Nel Maggio 2020, Martin Whitaker ha realizzato un fork della versione 5.31 di Memtest86+, chiamato PCMemTest, riscrivendo il codice per aggiungere supporto a UEFI, RAM DDR4 e DDR5 e ai recenti processori e chipset AMD e Intel.[senza fonte] Nell'Ottobre 2022, è stato effettuato il merge di questo progetto con Memtest86+, a cui è seguito il rilascio della versione 6.0 di quest'ultimo.[15][16] Lo sviluppo viene ora portato avanti congiuntamente da Whitaker e Demeulemeester.[11]

Diffusione modifica

Memtest86+ è distribuito di default o opzionalmente in molte distribuzioni Linux, come ad esempio Debian[17], Ubuntu e Arch Linux.[18] Ubuntu include il programma nell'installazione di default, ed è possibile avviarlo tramite GRUB.[19] La versione 5.01 di Memtest86+ richiedeva l'applicazione di patch significative da parte delle versioni più recenti delle distribuzioni per mantenere funzionante il codice del 2013,[20] mentre dalla versione 6.0 non è richiesta un'applicazione così estesa di patch per eseguire il programma.[21]

Caratteristiche comuni modifica

 
I settori di RAM con problemi vengono visualizzati in maniera prominente. L'applicazione mostra quali posizioni di memoria hanno causato errori in lettura e/o scrittura e quali pattern hanno permesso di evidenziare il problema.

L'interfaccia grafica (GUI) e le funzionalità dei due programmi sono state pressoché le stesse fino alle versioni 5.0 di Memtest86+ e 4.3 di MemTest86.[8]

Dalla versione 5.0, MemTest86 ha aggiunto una GUI utilizzabile tramite mouse e il supporto a UEFI; quest'ultimo è stato fornito da Memtest86+ a partire dalla versione 6.0.

Entrambi i programmi funzionano con quasi tutte le architetture PC-compatibili, dai computer equipaggiati con Intel 80386 e Intel 80486 fino agli ultimi sistemi con processori a 64 bit. Ogni nuovo rilascio aggiunge supporto per nuovi chipset e CPU.[5][13]

I due software sono progettati per essere eseguiti come programmi stand-alone e self-contained da dispositivi USB avviabili, CD-ROM, floppy disk, oppure da un boot manager compatibile senza che venga avviato un sistema operativo.[22]. Questa configurazione è necessaria in quanto i due software devono controllare direttamente l'hardware da testare e lasciare altresì più RAM possibile libera da esaminare.

I test effettuati dai due programmi sono molto esaustivi, e possono individuare problemi altrimenti nascosti su sistemi che sembrano funzionare normalmente.[22][23] Con diversi chipset, MemTest86 consente di rilevare i failure nelle RAM ECC (senza gestioni speciali, i circuiti di memoria con correzione d'errore possono mascherare eventuali problemi con i chip di memoria sottostanti).

Alcuni errori possono manifestarsi in maniera intermittente oppure dipendono dalla sequenza di bit memorizzata, e non vengono rilevati ad ogni esecuzione (pass) di uno dei due programmi; tali failure possono venire scoperti eseguendo più pass per un periodo esteso di tempo. Alcuni test ricorrono a pattern di bit diversi al fine di rilevare gli errori dato-dipendenti.[24]

Entrambi i software ad oggi supportano gli attuali processori multicore e i relativi chipset.[5][13]

Note modifica

  1. ^ a b c (EN) The History of MemTest86, su MemTest86.com. URL consultato il 15 gennaio 2024.
  2. ^ (EN) bootsect.S - codice sorgente, su Git repositories on chromium. URL consultato il 15 gennaio 2024.
    «Copyright (C) 1991, 1992 Linus Torvalds [...] 1-Jan-96 Modified by Chris Brady for use as a boot loader for MemTest-86»
  3. ^ (EN) build-process - leggimi, su Git repositories on chromium. URL consultato il 15 gennaio 2024.
  4. ^ (EN) MemTest86 - Known Issues, su MemTest86.com. URL consultato il 15 gennaio 2024.
    «MemTest86 is also inherently limited by the UEFI environment and as such [...] cannot remap itself to different portions of memory in order to run tests in the section of memory it was occupying»
  5. ^ a b c d (EN) MemTest86 - What's New?, su MemTest86.com. URL consultato il 15 gennaio 2024.
  6. ^ (EN) GNU GRUB Manual - badram, su GNU.org. URL consultato il 15 gennaio 2024.
  7. ^ (EN) How to block out or map out bad RAM in Windows..., su thecomputerperson, 20 aprile 2015. URL consultato il 15 gennaio 2024.
  8. ^ a b c (EN) MemTest86 History, su MemTest86.com. URL consultato il 9 febbraio 2018 (archiviato dall'url originale l'11 maggio 2019).
  9. ^ (EN) Yoongu Kim, Ross Daly, Jeremie Kim, Chris Fallin, Ji Hye Lee, Donghyuk Lee, Chris Wilkerson, Konrad Lai e Onur Mutlu, Flipping Bits in Memory Without Accessing Them: An Experimental Study of DRAM Disturbance Errors (PDF), Carnegie Mellon University, 8 luglio 2014. URL consultato il 15 gennaio 2024.
  10. ^ (EN) MemTest86 download, su MemTest86.com. URL consultato il 15 gennaio 2024.
  11. ^ a b (EN) Memtest86+ Timeline, su Memtest.org. URL consultato il 15 gennaio 2024.
  12. ^ (EN) Memtest86+ dev, su Memtest86.org. URL consultato il 15 gennaio 2024.
  13. ^ a b c (EN) Memtest86+ archives, su Memtest86.org. URL consultato il 15 gennaio 2024.
  14. ^ (EN) Gentoo memtest86+-5.31b version bump, su Gentoo's Bugzilla. URL consultato il 15 gennaio 2024.
  15. ^ (EN) Aaron Klotz, Memtest86+ Is Back! New Version Released After 9 Years, su Tom's Hardware, 24 ottobre 2022. URL consultato il 15 gennaio 2024.
  16. ^ (EN) memtest86+ v6.0 Released As Rewritten Open-Source RAM Tester, su Phoronix.com. URL consultato il 15 gennaio 2024.
  17. ^ (EN) Package: memtest86+, su Debian.org Packages. URL consultato il 15 gennaio 2024.
  18. ^ (EN) Arch Linux - memtest86+, su Arch Linux.org. URL consultato il 15 gennaio 2024.
  19. ^ (EN) MemoryTest, su Ubuntu Documentation. URL consultato il 15 gennaio 2024.
    «Hold down Shift to bring up the GRUB menu. Use the arrow keys to move to the entry labeled Ubuntu, memtest86+»
  20. ^ (EN) Patch tracker: memtest86+ 5.01-3.1, su Debian.org Sources. URL consultato il 15 gennaio 2024.
  21. ^ (EN) Patch tracker: memtest86+ 6.10-4, su Debian.org Sources. URL consultato il 15 gennaio 2024.
  22. ^ a b (EN) Tim Fisher, MemTest86 Free Memory Testing Tool Review, su Lifewire, Dotdash Meredith, 29 agosto 2023. URL consultato il 16 gennaio 2024.
  23. ^ (EN) MemTest86 Test Algorithms, su MemTest86.com. URL consultato il 16 gennaio 2024.
  24. ^ (EN) Individual Test Descriptions, su MemTest86.com. URL consultato il 16 gennaio 2024.

Altri progett modifica

Collegamenti esterni modifica

  Portale Software libero: accedi alle voci di Wikipedia che trattano di software libero