Введение
Программное обеспечение для диагностики памяти компьютера.
История
MemTest86 был разработан Крисом Брэди в 1994 году. Он был написан на языках C и ассемблере x86 и распространялся под лицензией GNU General Public License (GPL) для всех версий BIOS. Код загрузки первоначально был взят из Linux 1.2.1. Программа компилируется как позиционно-независимый код, что позволяет ей перемещаться в памяти и тестировать все области. В проприетарной версии PassMark эта возможность отсутствует.
Пластырь BadRAM
Начиная с MemTest86 2.3, программа может выводить список дефектных регионов памяти в формате, необходимом для патча BadRAM ядра Linux. GRUB2 способен передавать эту же информацию неподготовленному ядру, делая патч BadRAM излишним. Microsoft Windows располагает аналогичной функцией (badmemorylist/badmemoryaccess), однако для её настройки требуется ручное преобразование данных.
Покупка PassMark
В феврале 2013 года оригинальный MemTest86 был продан компании PassMark. Версия для BIOS обновлялась по лицензии GPL до версии 4.3.7. MemTest86 версии 5.0 (3 декабря 2013 года) была переписана для загрузки в режиме UEFI, что обеспечило поддержку безопасной загрузки и мыши. Все версии UEFI распространяются под проприетарной бесплатной лицензией. Если UEFI недоступна, версия 5.0 (и более поздние) переключается на загрузку в режиме BIOS и загружает старую версию 4.3.7. Версия 6.0 (13 февраля 2015 года) добавила поддержку оперативной памяти DDR4 и тест на основе исследований Юнгу Кима и др. (подобный MemTest86 2.3). Линейка Memtest86+ на основе BIOS прекратила своё развитие после выпуска версии 5.01 (сентябрь 2013 года). В апреле 2020 года была выпущена финальная версия на основе BIOS – 5.31 beta – с кратким журналом изменений, сообщающим о "множестве исправлений". В мае 2020 года Мартин Уитакер создал форк Memtest86+ 5.31 под названием PCMemTest, переписав его для поддержки UEFI, оперативной памяти DDR4 и DDR5, а также всех современных чипсетов и процессоров AMD и Intel. В октябре 2022 года эта ветвь была вновь объединена с основной, образовав Memtest86+ 6.0.
Усыновление
Memtest86+ включен, опционально или по умолчанию, во многих дистрибутивах Linux, включая Debian, основанный на нем Ubuntu и Arch Linux. Ubuntu включает его в состав стандартной установки, если машина загружается в режиме BIOS, отображая его в меню выбора операционной системы GRUB; версия 6.0, поддерживающая UEFI, доступна начиная с Ubuntu 23.04 Lunar Lobster. В то время как для поддержания работоспособности кодовой базы 2013 года версии Memtest86+ 5.01 требовались существенные исправления от дистрибутивов, выпуск 6.0 не нуждался в столь масштабной доработке.
Общие черты
Существует два направления разработки MemTest86(+). Оригинал известен просто как MemTest86. Другое, известное как Memtest86+, является ответвлением разработки от оригинального MemTest86. Их внешний вид и функциональность на экране были почти идентичны вплоть до версий MemTest86 4.3 и Memtest86+ 5.0 соответственно. Это обусловлено тем, что программа должна напрямую управлять тестируемым оборудованием и оставлять как можно больше оперативной памяти для проверки. Тестирование в MemTest86(+) очень всестороннее, поэтому он способен выявить скрытые проблемы на компьютерах, которые кажутся работоспособными. Для многих чипсетов MemTest86 позволяет подсчитывать ошибки даже в ECC DRAM с коррекцией ошибок (без специальной обработки, схемы коррекции ошибок в памяти могут маскировать проблемы в самих микросхемах памяти). Некоторые ошибки проявляются непостоянно или зависят от конкретных хранимых битов и не возникают при каждом проходе тестирования; такие ошибки могут быть выявлены при многократном повторении тестов в течение длительного времени. Некоторые тесты используют разные данные при каждом проходе для обнаружения ошибок, зависящих от данных. Обе версии теперь поддерживают современные многоядерные процессоры, соответствующие чипсеты и UEFI.