Создание операционной системы с нуля. Эта операционная система построена для i386+ 32 -битный Intel X86. Любые другие платформы могут не работать и не были протестированы.
Просто введите make run , который создаст все необходимые файлы, и запустите в эмуляторе QEMU. Makefile - это съемки, поэтому благодарны любые предложения по лучшим make -файлам.
nasm - для сборки загрузчикаgcc - для составления ядра и включенной библиотеки Cld - Для связывания всех файлов ядра вместеobjcopy - для создания двоичного файла ELF из ядра из файла ELFar - для создания библиотеки Cmake - запустить makefileqemu - запустить ОСWindows Linux subsystem :cmd - для использования команд Windows в терминале подсистемы Linuxpartcopy - Windows CMD для создания загрузочного сектораimdisk - Windows CMD для создания и монтажа дискетаcopy - Windows CMS для копирования файлов на гибкое изображение Мне жаль, что это повредит людям, чтобы увидеть, как использует Windows и Linux вместе, поэтому, если у кого -то есть предложения и/или лучше, что я могу использовать, пожалуйста, дайте мне знать. Makefiles для меня новые, поэтому любые внесенные изменения, можете ли вы прокомментировать их, чтобы я мог понять, что происходит. Особенно лучше, что просто использует команды Linux, будет лучше. Я попытался использовать dd для создания загрузочного сектора, но не смог заставить его работать правильно, поэтому любой способ проезда по некоторым командам Windows будет хорошим. Вы можете написать мне по электронной почте по адресу [email protected], если у вас есть какие -либо изменения.
Вы можете запустить make debug , которая создаст все необходимые файлы, и запустить в эмуляторе QEMU. Затем вы можете прикрепить отладчик GDB, добавив строки в .gdbinit или напрямую ввести команды:
set architecture i386
target remote localhost:1234
br *0x7c00
c
Это установит архитектуру на 16 -битный x86, так как это то, что загрузчик кодируется для начала. Затем подключается к эмулятору на порту 1234 (по умолчанию для QEMU). Затем устанавливает точку разрыва в начале загрузчика. Запускает ОС и останавливается в начале загрузчика.
Если хотите сломать в начале ядра, адрес, который он загружается, IS 0x100000. Так что замените br *0x7c00 на br *0x100000 .
Вы запускаете мою операционную систему на своем собственном риске на реальном оборудовании. Нет никакой гарантии, что оборудование не будет повреждено при запуске ОС. Так что запустите в виртуальной машине или эмуляторе для безопасности.