LINUX.ORG.RU

История изменений

Исправление EXL, (текущая версия) :

Аналогичные команды «для BIOS», как и ожидалось, без ELF-заголовка всё значительно короче:

$ printf '\xbe\x10\x7c\xac\x3c\x00\x74\x06\xb4\x0e\xcd\x10\xeb\xf5\xeb\xfe\x48\x69\x2c\x20\x41\x73\x73\x65\x6d\x62\x6c\x65\x72\x20\x66\x72\x6f\x6d\x20\x4c\x49\x4e\x55\x58\x2e\x4f\x52\x47\x2e\x52\x55\x21' > boot.bin

$ dd if=/dev/zero bs=1 count=462 >> boot.bin

$ printf '\x55\xaa' >> boot.bin

$ qemu-system-x86_64 boot.bin

Итог:

https://habrastorage.org/webt/f0/38/s-/f038s-c-rcfocrn2zy1wyefkut0.png

Комментарии:

1. Первая длинная строка, собственно, сама Hello World программа.
2. Вторая строка — «добиваем» NULL'ами до 510 байт.
3. В конец добавляем два нужных байта.
4. Запускаем эмулятор QEMU с нашим файлом.

Исходная версия EXL, :

Аналогичные команды «для BIOS»:

$ printf '\xbe\x10\x7c\xac\x3c\x00\x74\x06\xb4\x0e\xcd\x10\xeb\xf5\xeb\xfe\x48\x69\x2c\x20\x41\x73\x73\x65\x6d\x62\x6c\x65\x72\x20\x66\x72\x6f\x6d\x20\x4c\x49\x4e\x55\x58\x2e\x4f\x52\x47\x2e\x52\x55\x21' > boot.bin

$ dd if=/dev/zero bs=1 count=462 >> boot.bin

$ printf '\x55\xaa' >> boot.bin

$ qemu-system-x86_64 boot.bin

Итог:

https://habrastorage.org/webt/f0/38/s-/f038s-c-rcfocrn2zy1wyefkut0.png

Комментарии:

1. Первая длинная строка, собственно, сама Hello World программа. 2. Вторая строка — «добиваем» NULL'ами до 510 байт. 3. В конец добавляем два нужных байта. 4. Запускаем эмулятор QEMU с нашим файлом.