Другие языки программирования и технологии

Чтобы запускать программы нужна программа работающая уже, а что за это программа загрузчик?

Нет не обязательно.
Вообще говоря, парадокс с загрузчиком - аналог парадокса Рассела. Вроде того, является ли загрузчиком та программа, которая загрузила самый первый загрузчик, и если является, то кто тогда загрузил её?

Для меня вообще было высшей магией следующее: на диске два файла одного размера, присматриваясь к ним внимательно, видишь байтики-битики нолики-единички; изменяй любой битик всё ОК, но при этом один является программой, а другой текстовым документом. Один исполняется, а другой нет.
Вы только представьте, начинаем менять битики - и в некоторый момент программа становится текстовым документом. Это магия высшего порядка! Злобное черное колдунство!

Это я к тому, что на самом низком уровне программа НИЧЕМ не отличается от данных.
Возьмите к примеру, логический элемент И. Подали две единицы на вход - и на выходе получили единицу. А теперь одни вход назовем программой, а другой - данными. Так есть 2 программы:
-- программа "ноль" превращает любой вход в 0. Записывается как out := 0;
-- программа "один" пропускает вход на выход без изменений. Записывается как out := in;

Любую из таких "программ" можно зашить в плату, в которую впаяна микросхема с элементом И. Такая "программа" будет работать при включении питания. Процессор, конечно посложнее будет, чем логический элемент, но принцип тот же - он УЖЕ имеет возможность запускать код, находящийся в своём кеше. А грузится в этот кеш по включении питания данные, которые прошиты в ПЗУ (aka программа BIOS).

И уже программа BIOS содержат загрузчик, который подготавливает данные в оперативной памяти, чтобы передать в процессорный кеш. Ну и в том числе выбрать, что делать после того как закончит свою работу: грузиться например с флешки, сети или диска
Иван Соболин
Иван Соболин
11 112
Лучший ответ
Это заблуждение. Изначально программа выполняется напрямую на компьютере. Операционная система это и есть такая программа. Вместо неё можно запустить например калькулятор и всё будет работать.
Павел Б
Павел Б
69 289
если совсем грубо - то операционная система, это в общем случае
Андрей Venя
Андрей Venя
22 439
если следовать твоей логике, то возникает вопрос - как тогда запускается программа загрузчик?)
загрузчик, как ты можешь увидеть из названия - загружает ядро в память, если точнее он ничего не загружает а только указывает на место откуда надо запускать .. это может быть к примеру ещё один загрузчик .. и т. д.
т. е. основная задача загрузчика - найти область на диске где расположена некая программа и передать ей управление

а ещё загрузчик может быть уже неким приложением которое что-то загружает из интернета