Введение

Системное программное обеспечение; предшественник современных операционных систем
В вычислительной технике резидентный монитор — это тип системного программного обеспечения, которое использовалось во многих ранних компьютерах с 1950-х по 1970-е годы. Его можно рассматривать как предшественника операционной системы. Название происходит от программы, которая постоянно находится в памяти компьютера, то есть является резидентной. Резидентный монитор мог очищать память от последней запущенной программы (за исключением самого себя), загружать программы, осуществлять поиск данных программ и поддерживать стандартные процедуры ввода-вывода в памяти.

Текущее использование

Функциональность резидентного монитора присутствует во многих встраиваемых системах, загрузчиках и различных встроенных командных строках. Изначальные функции, присутствующие во всех резидентных мониторах, дополняются современными функциями, работающими с аппаратным обеспечением при загрузке, дисками, Ethernet, беспроводными контроллерами и т.д. Обычно к этим функциям обращаются через последовательный терминал или физическую клавиатуру и дисплей, если они подключены. Такой резидентный монитор часто называют отладчиком, загрузчиком, интерфейсом командной строки (CLI) и т.п. Изначальное значение резидентного монитора с доступом через последовательный порт или терминал используется нечасто, хотя функциональность осталась прежней и была расширена. Типичные функции резидентного монитора включают просмотр и редактирование оперативной памяти и/или ПЗУ (включая flash EEPROM) и иногда специальных функциональных регистров, возможность перехода к коду по указанному адресу, возможность вызова кода по заданному адресу, возможность заполнения диапазона адресов константой, например, 0x00, и другие. Более продвинутые функции включают локальную дизассемблию в инструкции языка ассемблера процессора и даже ассемблирование и запись в flash-память из кода, вводимого оператором. Кроме того, код можно загружать и выгружать из различных источников, а некоторые продвинутые мониторы поддерживают ряд сетевых протоколов для этого, а также форматирование и чтение FAT и других файловых систем, как правило, из flash-памяти на шинах USB или CFcard. Для встраиваемых процессоров многие отладчики с режимом "только программное обеспечение" используют концепции и функции резидентного монитора, к которым часто обращается графический IDE. Они ничем не отличаются от традиционных командных строк резидентного монитора с доступом по последовательной линии, но пользователи об этом не знают. Рано или поздно разработчики и опытные пользователи обнаружат эти низкоуровневые встроенные функции резидентного монитора при написании низкоуровневого API-кода на хосте для связи с встраиваемой целевой системой для отладки и запуска тестовых примеров кода. Некоторые современные микроконтроллеры имеют встроенные последовательные мониторы или расширенные загрузчики, доступные разработчикам в качестве опций. Многие из них имеют открытый исходный код. Примеры включают PAULMON2, AVR DebugMonitor и загрузчик и монитор Bamo128 Arduino. В целом, большинство современных резидентных мониторов для встраиваемых вычислений могут быть скомпилированы с учетом различных ограничений памяти, от небольших и минималистичных до больших, занимая до 25% кодового пространства, доступного на процессоре AVR ATmega328 с 32 килобайтами flash-памяти, например. Во многих случаях резидентные мониторы могут быть более эффективны, чем отладка с помощью printf, и очень полезны при разработке с ограниченным бюджетом, который не позволяет использовать полноценный аппаратный отладчик (ICD).