Я пытался написать операционную систему из какого-то учебника, и я мог запустить программу на виртуальной машине Qemu.
Однако, когда я попытался запустить на реальной машине, компьютер никогда не загрузится успешно, потому чтоКомпьютер не считает, что ОС находится на диске.
Я сделал следующие шаги: 1.hello.asm
mov ah, 0x0e
mov al, 'A'
int 0x10
jmp $
times 510 - ($ - $$) db 0
dw 0xaa55
скомпилировать файл сборки
nasm -f bin hello.asm -o hello.bin
Я могу загрузить файл bin, запустив
qemu-system-x86_64 hello.bin
, однако он не может работать на реальной машине, если я записываю файл на USB-диск (USB-диск может записать другую систему и работать правильно) на dd if=hello.bin of=/dev/sdb
.
После того, как я подключу USB и выберу загрузку с USB-диска.Компьютер просто пропускает мою операционную систему с USB-диска и загружается с моего жесткого диска.Это та же самая ситуация, когда на USB-диске ничего нет.
Но если я буду работать как qemu-system-x86_64 /dev/sdb
, симулятор сможет успешно загрузиться с моего USB.
Я новичок в этомполе.Может ли кто-нибудь помочь мне об этой проблеме, которая долго смущала меня.
Большое спасибо.