Задумывались ли вы когда-нибудь над тем, что заставляет работать ваш ПК? Я имею в виду по-настоящему работать, а не просто дежурную фразу вроде «процессор загружает операционную систему». Сейчас это стало также очевидно, как и то, что предметы состоят из атомов.
Речь идёт о главных компонентах: когда вы нажимаете кнопку включения и блок питания подаёт напряжение через свои 12, 5 и 3-вольтные линии к материнской плате. Откуда процессору вообще знать, что запускать, и как происходит загрузка в память, когда загружать пока, по сути, нечего?
Такой ход мыслей сложился у нас после мысленного эксперимента: окажись вы в комнате с одной только дискетой и ПК с пустым жёстким диском, смогли бы вы загрузить компьютер и запустить операционную систему? И более того, что надо делать, чтобы запустить ОС?
Ответы на эти вопросы содержатся в данной статье. Она состоит из двух частей. Сначала мы взглянем на мысленный эксперимент, о котором писалось выше, и попытаемся ответить на вопрос: что нужно программировать в первую очередь, чтобы заставить систему загружаться? А потом соберём настоящую операционную систему при помощи дистрибутива Arch Linux, чтобы наглядно показать слаженную работу компонентов нижнего уровня. Сделайте глубокий вдох, мы погружаемся…