Самотестирование при включении питания ( POST ) — это процесс, выполняемый встроенным ПО или программными процедурами сразу после включения компьютера или другого цифрового электронного устройства. [1]
Процессы POST могут устанавливать начальное состояние устройства из прошивки и обнаруживать, неисправны ли какие-либо аппаратные компоненты. Результаты POST могут отображаться на панели, которая является частью устройства, выводиться на внешнее устройство или сохраняться для будущего извлечения диагностическим инструментом. В некоторых компьютерах может быть предусмотрена индикаторная лампа или динамик для отображения кодов ошибок в виде последовательности вспышек или звуковых сигналов в случае неисправности дисплея компьютера.
Процедуры POST являются частью предзагрузочной последовательности компьютера . Если они завершаются успешно, вызывается код загрузчика начальной загрузки для загрузки операционной системы .
В компьютерах , совместимых с IBM PC , основные функции POST выполняются BIOS или UEFI .
В компьютерах, совместимых с IBM PC , основные обязанности POST обрабатываются BIOS или UEFI, которые могут передавать некоторые из этих обязанностей другим программам, разработанным для инициализации очень специфических периферийных устройств , в частности, для инициализации видео и SCSI . Эти другие специфические программы обычно известны как дополнительные ПЗУ или по отдельности как видео BIOS , SCSI BIOS и т. д.
В более ранних BIOS, вплоть до начала тысячелетия, POST выполнял тщательную проверку всех устройств, включая полную проверку памяти. Эта разработка IBM была смоделирована по образцу их более крупных систем мэйнфреймов, которые выполняли полную проверку оборудования как часть процесса холодного запуска. По мере того, как платформа ПК превращалась в более массовое потребительское устройство, функции высокой надежности, вдохновленные мэйнфреймами и мини-компьютерами, такие как память с контролем четности и тщательная проверка памяти в каждом POST, были исключены из большинства моделей. Экспоненциальный рост размеров памяти ПК, вызванный столь же экспоненциальным падением цен на память, также был фактором в этом, поскольку продолжительность теста памяти с использованием данного ЦП прямо пропорциональна размеру памяти.
Оригинальный IBM PC мог быть оснащен всего лишь 16 КБ ОЗУ и обычно имел от 64 до 640 КБ; в зависимости от объема установленной памяти, компьютеру 4,77 МГц 8088 требовалось от 5 секунд до 1,5 минут для завершения POST, и не было возможности пропустить его. Начиная с IBM XT , во время POST отображался счетчик памяти вместо пустого экрана. [2] Современный ПК с частотой шины около 1 ГГц и 32-битной шиной может быть в 2000 или даже 5000 раз быстрее, но может иметь гораздо больше ГБ памяти. Поскольку время загрузки сейчас вызывает больше беспокойства, чем в 1980-х годах, 30-60-секундный тест памяти добавляет нежелательную задержку ради преимущества уверенности, которое не воспринимается большинством пользователей как стоящее этой цены. Большинство клонированных BIOS ПК позволяли пользователю пропустить проверку POST RAM нажатием клавиши, а более современные машины часто вообще не проводили проверку RAM, если только она не была включена через настройки BIOS. Кроме того, современная DRAM значительно надежнее, чем DRAM в 1980-х годах.
Во время POST BIOS должен интегрировать несколько конкурирующих, меняющихся и даже взаимоисключающих стандартов и инициатив для матрицы оборудования и операционных систем, которые, как ожидается, ПК будет поддерживать, хотя в большинстве случаев отображаются только простые тесты памяти и экран настройки. Основные обязанности основного BIOS во время POST включают:
Вышеуказанные функции обслуживаются POST во всех версиях BIOS вплоть до самой первой. В более поздних версиях BIOS POST также:
В ранних версиях BIOS процедура POST не организовывала и не выбирала загрузочные устройства, а просто определяла дискеты или жесткие диски, с которых система всегда пыталась загрузиться в указанном порядке.
BIOS начинает свой POST, когда процессор сбрасывается. Первая ячейка памяти, которую пытается выполнить процессор, известна как вектор сброса . В случае жесткой перезагрузки северный мост направит запрос на выборку кода в BIOS, расположенный во флэш-памяти системы . Для теплой загрузки BIOS будет расположен в соответствующем месте в ОЗУ , а северный мост направит вызов вектора сброса в ОЗУ. В более ранних системах ПК, до того, как чипсеты стали стандартными, ПЗУ BIOS располагалось в диапазоне адресов, который включал вектор сброса, и BIOS запускался непосредственно из ПЗУ. Вот почему ПЗУ BIOS материнской платы находится в сегменте F000 на обычной карте памяти .
Во время потока POST современного BIOS одним из первых действий BIOS является определение причины его выполнения. Например, для холодной загрузки ему может потребоваться выполнить все свои функции. Однако, если система поддерживает методы энергосбережения или быстрой загрузки, BIOS может обойти стандартное обнаружение устройств POST и просто запрограммировать устройства из предварительно загруженной таблицы системных устройств.
В рамках последовательности запуска процедуры POST могут отображать пользователю запрос на нажатие клавиши для доступа к встроенным функциям настройки BIOS. Это позволяет пользователю устанавливать различные параметры, относящиеся к материнской плате, до загрузки операционной системы. Если клавиша не нажата, POST перейдет к последовательности загрузки, необходимой для загрузки установленной операционной системы.
Многие современные реализации BIOS и UEFI показывают логотип производителя во время POST и скрывают классические текстовые экраны, если не происходит ошибка. Текстовый экран часто можно включить в настройках BIOS, отключив опцию «Тихая загрузка».
Оригинальная BIOS IBM сделала диагностическую информацию POST доступной путем вывода числа на порт ввода-вывода 0x80 (отображение на экране было невозможно при некоторых режимах сбоя). Генерировались как индикация хода выполнения, так и коды ошибок; в случае сбоя, который не генерировал код, был доступен код последней успешной операции для помощи в диагностике проблемы. Используя логический анализатор или специальную карту POST —интерфейсную карту, которая показывает вывод порта 0x80 на небольшом дисплее—техник мог определить источник проблемы. После запуска операционной системы на компьютере код, отображаемый такой платой, может стать бессмысленным, поскольку некоторые ОС, например Linux , используют порт 0x80 для операций синхронизации ввода-вывода. Фактические числовые коды для возможных стадий и состояний ошибок различаются у разных поставщиков BIOS. Коды для разных версий BIOS от одного поставщика также могут различаться, хотя многие коды остаются неизменными в разных версиях.
Более поздние BIOS использовали последовательность звуковых сигналов от динамика ПК , подключенного к материнской плате (если он есть и работает), для сигнализации кодов ошибок. Некоторые поставщики разработали собственные варианты или усовершенствования, такие как D-Bracket от MSI. Коды звуковых сигналов POST различаются от производителя к производителю.
Информация о числовых и звуковых кодах доступна у производителей BIOS и материнских плат. Существуют веб-сайты, которые собирают коды для многих BIOS. [3]
Эти звуковые коды POST рассматриваются специально на экзамене CompTIA A+ :
Компьютеры Macintosh от Apple также выполняют POST после холодной загрузки . В случае фатальной ошибки Mac не издаст звук запуска .
Mac, выпущенные до 1987 года, при неудачном прохождении POST, выходили из строя без звука и зависали, с одной шестнадцатеричной строкой и значком грустного Mac на экране, если работали. Mac, выпущенные после 1987 года, но до 1998 года, при неудачном прохождении POST, немедленно останавливались с « звонком смерти », который представляет собой звук, который зависит от модели; это может быть простой звуковой сигнал, звук автокатастрофы, звук бьющегося стекла, короткий музыкальный тон или что-то еще. На экране, если он работал, будет значок грустного Mac вместе с двумя шестнадцатеричными строками, которые можно использовать для определения проблемы. Некоторые Mac, выпущенные примерно в это время, не используют звонок смерти, как Mac, выпущенные до 1987 года, но сохранили тот же формат, что и те, которые использовали звонки смерти, например, наличие значка грустного Mac и двух шестнадцатеричных строк на экране. Более поздние компьютеры Mac Old World на базе архитектуры PCI, выпущенные до 1998 года, не отображают ни значок Sad Mac, ни шестнадцатеричные строки на экране, а воспроизводят только сигнал смерти.
Когда Apple представила iMac в 1998 году, это был радикальный отход от других компьютеров Mac того времени. iMac начал производство New World Mac , как их называют; New World Mac, такие как iMac G3 , Power Macintosh G3 (Blue & White) , Power Mac G4 (PCI Graphics) , PowerBook G3 (бронзовая клавиатура) и PowerBook G3 (FireWire) , загружают Mac OS ROM с жесткого диска. В случае ошибки, которая не является фатальной аппаратной ошибкой, они отображают тот же экран, что и при удержании ⌘ Command+ ⌥ Option+ O+ Fпри запуске, но с сообщением об ошибке вместо подсказки «0 >». В случае фатальной аппаратной ошибки они издают следующие звуковые сигналы: [5]
Звуковые коды были пересмотрены в октябре 1999 года. [6] Кроме того, на некоторых моделях светодиод питания будет мигать в такт.
С появлением компьютеров Mac на базе Intel с прошивкой на базе EFI звуки запуска снова изменились. [7] [8] Они отсутствуют в компьютерах Mac на базе Intel, оснащенных чипом безопасности T2 , [7] поскольку их процесс POST отличается от тех, у которых нет чипа безопасности T2.
Переход Mac на Apple Silicon ознаменовал радикальное изменение процесса POST в Mac. В отличие от большинства компьютеров Mac на базе Intel, использующих прошивку на базе EFI, эти компьютеры Mac на базе Apple Silicon используют загрузочное ПЗУ , которое загружает загрузчик низкого уровня (LLB), аналогичный прошивке, обнаруженной в iPhone и iPad . Как и в компьютерах Mac на базе Intel с чипом безопасности T2, звуки запуска отсутствуют. В случае ошибки, которая не является фатальной аппаратной ошибкой, на экране отобразится восклицательный знак или устройство перейдет в режим обновления прошивки устройства (DFU). В случае фатальной аппаратной ошибки на экране ничего не будет отображаться, и не будет слышно звука. Кроме того, на некоторых моделях светодиод питания будет мигать в такт.
Историческая линейка компьютеров Amiga , от A1000 до 4000, представляет собой интересную последовательность POST, которая предлагает пользователю с помощью последовательности мигающих экранов разных цветов (а не звуковых сигналов, как в других системах) сообщить, были ли различные аппаратные POST-тесты корректными или же они не прошли:
Система Amiga выполняет следующие шаги при загрузке:
Если система не проходит тест ПЗУ, экран становится красным и система останавливается.
Почти все модели Amiga при включении демонстрируют одну и ту же последовательность цветов: черный экран, темно-серый, светло-серый цветные экраны, заполняющие весь экран монитора в быстрой последовательности (Amiga обычно требуется от 2 до 3 секунд для включения и загрузки). [9]
A4000 во время загрузки отображает только светло-серый экран (это происходит через 2 или максимум 3 секунды)
Клавиатуры исторических моделей Amiga не являются фирменными, как это было в ранние компьютерные века, но более прагматично они были основаны на международном стандарте ANSI / ISO 8859-1 . Сама клавиатура была интеллектуальным устройством и имела свой собственный процессор и 4 килобайта оперативной памяти для хранения буфера последовательности нажатых клавиш, таким образом, она могла сообщать пользователю, если обнаружена неисправность, мигая своим основным светодиодом в следующей последовательности:
Многие встроенные системы, такие как системы в основных бытовых приборах, авионике , средствах связи или медицинском оборудовании, имеют встроенные процедуры самотестирования , которые автоматически запускаются при включении питания. [10]