Memtest86

MemTest86와 Memtest86+는 대부분의 메모리 주소에 테스트 패턴을 기록하고 데이터를 다시 읽어보고 오류를 비교함으로써 x86 아키텍처 컴퓨터의 랜덤 액세스 메모리(RAM)의 오류를 위한 스트레스 테스트 및 일반 테스트를 수행하기 위해 설계된 메모리 테스트 소프트웨어 프로그램이다. 기록되는 임의의 데이터 패턴을 RAM이 수용하고 올바르게 보관하는지, 각기 다른 비트의 메모리가 상호작용하는 부분에 오류가 없는지, 메모리 주소 간 충돌이 없는지 확인을 시도한다.

역사 
MemTest86은 1994년 크리스 브래디(Chris Brady)가 개발하였다. MemTest86가 버전 3.0(2002년 릴리스)에서 2년 간 멈춰있는 동안, Samuel Demeulemeester는 더 새로운 CPU와 칩셋을 지원하기 위해 Memtest86+ 포크를 만들었다. 2018년1월 기준으로 최신 버전의 Memtest86+는 5.01이다.

MemTest86는 C와 x86 어셈블리어로 작성되었다. MemTest86(바이오스 버전)과 MemTest86+ 포크의 소스 코드는 GNU 일반 공중 사용 허가서(GPL)로 공개되어 있다. 부트로딩 코드는 처음부터 리눅스 1.2.1에서 비롯된 것이다. 프로그램은 위치 독립 코드로 컴파일되어 있어서 직접 이동해가며 메모리 영역 전반을 테스트할 수 있다. 두 버전 모두 현행의 멀티 코어 CPU 및 호환 칩셋을 지원한다.

MemTest86 2.3과 Memtest86+ 1.60을 기점으로 리눅스 커널용 BadRAM 패치에 의해 예측되는 포맷으로 불량 RAM 영역 목록을 출력할 수 있다. GRUB을 사용하면 패치되지 않은 커널의 동일한 정보를 제공할 수 있으므로 BadRAM 패치가 필요하지 않다.

2013년 2월, 오리지널 MemTest86은 패스마크(PassMark)에 판매되었다. 바이오스 버전은 버전 4.3.7까지 GPL 라이선스로 업데이트되었다. 그때까지 2개 포크의 기능 집합은 대체적으로 동일하였다.

버전 5.0(2013년 12월 3일)은 UEFI 부팅을 위해 다시 작성되어 안전 부팅(secure boot) 승인과 마우스 지원을 가능케 한다. 모든 UEFI 버전들은 사유 프리웨어 라이선스로 공개된다. UEFI를 사용할 수 없는 경우 버전 5.0 이상에서 BIOS 부팅으로 회귀하여 구 버전 4.3.7을 불러들인다. 버전 6.0.0(2015년 12월 13일)은 DDR4 RAM 지원, 또 김윤구 등의 연구에 기반한 row-hammer 테스트를 추가한다.

각주

외부 링크 

 Official website of Memtest86+

컴퓨터 메모리
윈도우용 유틸리티
어셈블리어 소프트웨어