Sıfırdan işletim sistemi yazmak | 2 | Bootloader Yazımı

5:50 AM ,

Gerekenler

Derleme ve çalıştırma yapabilmek için nasm (Netwide Assembler, a portable 80x86 assembler), dd (copy a file, converting and formatting) ve qemu (emulator) programlarının kurulu olması gerekmektedir. dd zaten linux dağıtımlarında varsayılan olarak gelmektedir. Diğer iki program ise;
  • sudo apt-get install nasm
  • sudo apt-get install qemu
ile kurulumları yapılabilir.

Bootloader kodumuz

POC olarak yazdığımız bootloader örneği aşağıdaki gibidir.

Bootloader'ın kaynak kodu
Yazdığımız bootloader assembly programı içinde komutların neler yaptığı tek tek açıklanmıştır. Şimdi derleme ve çalıştırma sürecine geçebiliriz.

Derleme&Çalıştırma

Build işlemi 3 basamaktan oluşmakta 
  • nasm -f bin -o boot.bin boot.asm
    Nasm ile flat binary türünde output üretebilmek için -f bin parametresinin kullanılması gerekir.
  • dd status=noxfer conv=notrunc if=boot.bin of=boot.flp
    dd ile floppy disk imajı oluşturmak için yukarıdaki komut kullanılır.
  • qemu-system-i386 boot.flp
    emulatör ile imajı ayağı kaldırmak için yukarıdaki gibi bir komut yürütülür.

Note:

  • Düz kod dosyası (flat binary) : Başlık kısmı olmayan, tanımlayıcı (descriptors) gibi bilgilerin olmadığı makine kodlarıdır.