Hai semuanya, tutorial ini dimaksudkan untuk menjadi ekspansi yang diperbarui pada tutorial yang ada yang lebih fokus pada arsitektur X86_64 64-bit. Ini tidak dimaksudkan untuk menjadi pengantar C atau perakitan, jadi Anda mungkin ingin belajar di tempat lain terlebih dahulu. Kami melakukan yang terbaik untuk mendokumentasikan semuanya dengan benar, jadi jika ada sesuatu yang tidak Anda mengerti, maka Anda mungkin perlu kembali beberapa bab.
Ini belum lengkap, tetapi sampai pada titik di mana kami merasa itu bisa membantu.
Tutorial ini ditujukan untuk orang -orang yang memiliki pemahaman umum tentang C dan perakitan, tetapi belum tentu ahli komputer. Ini dirancang agar dapat diakses mungkin, jadi mungkin terasa seperti kita terlalu menjelaskan beberapa konsep (dan tidak apa-apa). Namun, jika Anda merasa tersesat tanpa harapan , beri tahu kami. Kami membuat proyek ini karena kami tidak menyukai penjaga gerbang yang terlihat dalam pengembangan OS, dan kami akan dengan senang hati mengubah penjelasan kami atau mengarahkan Anda ke sumber daya lain yang mungkin lebih membantu.
Jika Anda ingin berkontribusi pada proyek ini, atau menambahkan sesuatu sendiri, silakan kirim permintaan tarik. Saya akan mencoba untuk mendapatkan semuanya secepat mungkin :)
Tutorial ini menggunakan rangkaian kompiler LLVM, termasuk clang dan ld.lld . Jika Anda tidak menginstalnya, Anda harus melakukannya dan menambahkannya ke jalur Anda. Kami juga menggunakan nasm untuk Assembler kami, dan qemu-system-x86_64 sebagai emulator kami. Secara opsional, gdb dapat digunakan untuk men -debug kode kernel. Meskipun tidak diperlukan, tutorial ini menggunakan skrip shell untuk mempermudah membangun dan men -debug. Kami sangat menyarankan agar Anda memasang bash di /bin/bash (atau setidaknya symlink di sana). Jika tidak, Anda dapat menjalankan skrip menggunakan perintah bash .
Anda harus dapat menjalankan semua perintah di atas di jendela terminal tanpa menentukan jalur lengkap. Jika Anda tidak bisa, Anda mungkin perlu menginstalnya dan menambahkannya ke jalur Anda. Tutorial ini telah diuji pada MacOS (Catalina dan Big Sur) serta Ubuntu (20.04). Tidak ada sistem operasi lain yang secara resmi didukung, meskipun harus berjalan dengan baik pada sebagian besar mesin *nix.
Catatan: MacOS
gdbmengalami kesulitan dengan simbol debug dari kernel (ELFS64). Anda mungkin perlu mengubah level output debug menjadi -glldb di makefiles dan menggunakannya sebagai gantinya, atau membangungdbbaru dari sumber.
Itu saja! Tidak perlu memasang kompiler silang atau alat lain, karena dentang sudah sebagian besar sudah dibahas. Semoga sukses, dan jika Anda kesulitan, jangan ragu untuk memberi tahu kami!