Автономная программа , также известная как автономная программа , — это компьютерная программа , которая не загружает никаких внешних модулей, библиотечных функций или программ и которая предназначена для загрузки с помощью процедуры начальной загрузки целевого процессора — она работает на голом железе . В ранних компьютерах, таких как ENIAC без концепции операционной системы , автономные программы были единственным способом запустить компьютер. Автономные программы обычно пишутся на языке ассемблера для определенного оборудования.
Позже автономные программы обычно предоставлялись для служебных функций, таких как форматирование диска . Кроме того, компьютеры с очень ограниченной памятью могут использовать автономные программы, т. е. большинство компьютеров до середины 1950-х годов и позже все еще встроенные процессоры .
Автономные программы в настоящее время в основном ограничиваются SoC или микроконтроллерами (где срок службы батареи, цена и объем данных имеют первостепенное значение) [1] и критическими системами . В крайних случаях необходимо протестировать каждый возможный набор входных данных и ошибок, и, таким образом, узнать каждый потенциальный выходной сигнал; полностью независимый [отдельные физические поставщики и команды программирования], но полностью параллельный мониторинг состояния системы; [2] [3] [4] или когда поверхность атаки должна быть минимизирована; операционная система добавит неприемлемую сложность и неопределенность (примерами служат прерывания безопасности промышленного оператора, [4] коммерческие авиалинии, [2] [3] медицинские приборы, средства управления запуском баллистических ракет и контроллеры заряда литиевых батарей в потребительских устройствах [опасность возгорания и стоимость чипа около 10 центов]). Микроконтроллеры с ограниченными ресурсами также можно сделать более устойчивыми к различным условиям окружающей среды, чем более мощное оборудование, необходимое для операционной системы; это стало возможным благодаря гораздо более низкой тактовой частоте, расстоянию между выводами, отсутствию больших шин данных (например, модулей оперативной памяти DDR4) и ограниченному количеству транзисторов для более широких проектных возможностей и, следовательно, возможности получения более надежных электрических и физических свойств как в компоновке схемы, так и в выборе материалов.