Настройка и работа в Linux
adb5321d

Теперь давайте сделаем ЭТО


Для создания исполняемых файлов вам нужно выполнить следующие команды:

as86 boot.s -o boot.o

ld86 -d boot.o -o boot

cc write.c -o write

Сперва, мы компилируем объектный файл boot.o из boot.s . Затем конвертируем его в двоичный, boot . Ключ -d заставляет компоновщик ld86 удалить все заголовки и создать "голый" двоичный файл. Если у вас возникли сомнения или появились неясности в этом вопросе, прочтите страницы справочного руководства по as86 и ld86. Последним мы компилируем C-программу и получаем исполняемый файл write.

Вставьте пустую дискету в дисковод и наберите команду (Убедитесь, что у вас есть права на запись в /dev/fd0. И вообще, никто вам не мешает использовать для тех же целей команду dd [dd if=boot of=/dev/fd0 ]. или команду копирования cp [cp boot /dev/fd0 ]. Возможно, автор планирует расширить возможности этой программы для дальнейшего использования в следующих статьях. Прим.перев.):

./write

Перезагрузите машину. Настройте BIOS так, чтобы система грузилась в первую очередь с дискеты. Вставьте дискету в дисковод и дождитесь, пока компьютер загрузится с нее.

Теперь вы можете видеть символ 'A' (белого цвета на синем фоне). Это означает, что программа, которую мы написали и скопировали в загрузочный сектор, была загружена с дискеты и выполнена. Теперь она находится в бесконечном "программном" цикле в конце кода загрузчика. Чтобы вернуться в привычную среду обитания (читай -- Linux 8-) нужно перезагрузить компьютер, предварительно удалив дискету из дисковода.

В дальнейшем, мы сможем вставлять больше кода в нашу программу загрузки, заставляя ее делать более сложные вещи (используя прерывания BIOS, переключение в защищенный режим и прочее.) Следующие части (вторая, третья и пр.) этой статьи станут вашими проводниками на пути усовершенствования кода нашего загрузчика. До встречи!



Содержание раздела