Membuat sistem operasi dari awal. Sistem operasi ini dibangun untuk i386+ 32bit Intel x86. Platform lain mungkin tidak berfungsi dan belum diuji.
Cukup ketik make run yang akan membuat semua file yang dibutuhkan dan dijalankan di emulator QEMU. Makefile berantakan, jadi setiap saran tentang makefile yang lebih baik dihargai.
nasm - Untuk merakit bootloadergcc - Untuk mengkompilasi kernel dan termasuk C Libraryld - Untuk menautkan semua file kernel bersama -samaobjcopy - Untuk membuat biner kernel dari file periar - Untuk membuat Perpustakaan Perpustakaan Cmake - untuk menjalankan makefileqemu - Untuk menjalankan OSWindows Linux subsystem :cmd - Untuk menggunakan perintah Windows di terminal subsistem Linuxpartcopy - Windows CMD untuk membuat sektor bootimdisk - Windows CMD untuk membuat dan memasang gambar floppycopy - Windows CMS untuk menyalin file ke gambar floppy Saya minta maaf karena ini akan melukai orang untuk melihat menggunakan Windows dan Linux bersama -sama, jadi jika ada yang punya saran dan/atau Makefile yang lebih baik yang berfungsi yang dapat saya gunakan, beri tahu saya. Makefiles baru bagi saya sehingga setiap perubahan yang dibuat, dapatkah Anda mengomentari mereka sehingga saya dapat memahami apa yang sedang terjadi. Terutama Makefile yang hanya menggunakan perintah Linux akan menjadi yang terbaik. Saya telah mencoba menggunakan dd untuk membuat sektor boot tetapi tidak bisa membuatnya bekerja dengan benar, jadi cara apa pun untuk naik beberapa perintah Windows akan bagus. Anda dapat mengirim email kepada saya di [email protected] jika Anda memiliki perubahan.
Anda dapat menjalankan make debug yang akan membuat semua file yang dibutuhkan dan dijalankan di emulator QEMU. Anda kemudian dapat melampirkan debugger GDB dengan menambahkan garis ke .gdbinit atau ketik perintah secara langsung:
set architecture i386
target remote localhost:1234
br *0x7c00
c
Ini akan mengatur arsitektur menjadi 16 bit x86 karena ini adalah apa yang dikodekan oleh bootloader untuk memulai. Kemudian terhubung ke emulator pada port 1234 (default untuk qemu). Kemudian menetapkan titik istirahat di awal bootloader. Memulai OS dan berhenti di awal bootloader.
Jika ingin istirahat di awal kernel, alamatnya dimuat pada 0x100000. Jadi ganti br *0x7c00 dengan br *0x100000 .
Anda menjalankan sistem operasi saya dengan risiko Anda sendiri pada perangkat keras nyata. Tidak ada jaminan bahwa perangkat keras tidak akan rusak dengan menjalankan OS. Jadi jalankan di mesin virtual atau emulator untuk keselamatan.