Selamat datang di ... uh ... brightsystem?
Ini adalah X86_64 OS yang ditulis sepenuhnya dari awal (tidak ada dependensi), dibuat oleh Anda.
Proyek ini ditulis tanpa bantuan GitHub Codestealer, Openai's ChatGPThief, atau algoritma prediktif yang mencuri konten serupa lainnya.
TLDR: Bencana Mid-Rewrite dan Parsial! Seru!
_old memiliki kernel fungsional yang menggunakan perpustakaan besar dari Phil-OPP dan beberapa lainnya. Kode tidak terdokumentasi dengan sangat baik, tetapi tidak terlalu rumit, jadi itu harus cukup mudah dibaca. Itu dibuat untuk forum pengembangan OS yang luar biasa di sekolah menengah saya.
Yang lainnya adalah penulisan ulang tanpa ketergantungan WIP saya. Saat ini, ia hanya memiliki bootloader BIOS yang dapat memasukkan mode 64-bit. Langkah selanjutnya adalah mengimplementasikan parser ELF, lalu loader elf, dan kemudian memuat kernel (yang hanya akan menjadi file elf).
Versi baru BS didokumentasikan dengan sangat baik, termasuk sumber daya untuk penelitian lebih lanjut. Bagian dari tujuan saya adalah membuat kode demo yang sangat baik ini untuk pemrogram masa depan untuk merujuk dan belajar dari.
Setiap folder memiliki readme dan semoga cukup jelas, tapi inilah daftar konten yang kasar untuk repo ini:
boot : Semua peti di bootloader BS.kernel : Kernel BS (saat ini kosong sampai ELF Loader ditulis).lib : Perpustakaan pembantu yang digunakan oleh BS. Ini memiliki alat build, Frieren (WIP Elf Loader), dan perpustakaan umum (yang akan segera dibagi menjadi beberapa peti). Peti ini memiliki perpustakaan sendiri karena mereka digunakan oleh beberapa peti di BS (misalnya, bootloader memuat ELF, tetapi sistem operasi akhir akan dapat juga).qemu : Peti yang membangun BS menjadi disk akhir dan meluncurkannya di Qemu. Untuk versi BS yang lama dan lebih fungsional dengan dependensi, jalankan cargo r di folder _old .
Versi baru ini menggunakan sistem build khusus saya, Bargo, jadi Anda harus menginstal itu pertama (Fear Not - Bargo hanya memiliki 1 ketergantungan, parser TOML bebas ketergantungan, dan harus dikompilasi dalam hitungan detik). Bargo semacam pembungkus di sekitar kargo, sehingga Anda dapat menggunakannya hampir persis sama - bargo b untuk membangun, bargo r untuk dijalankan, -r untuk mode rilis, dll.
Jika Anda bertanya -tanya mengapa BS menggunakan Bargo, bukan kargo, itu karena kargo tidak memiliki semua fitur yang saya butuhkan. Saya perlu skrip pasca-membangun, dan kemampuan untuk menggunakan build-std untuk beberapa target, karena bootloader memiliki target yang berbeda dari kernel dan OS. Saya mencoba berjam -jam, tetapi tidak dapat menghasilkan cara waras untuk mengimplementasikannya dalam kargo vanilla.
Kedua versi berjalan di QEMU, jadi pastikan itu diinstal terlebih dahulu. Jika Anda ingin membangun dan menjalankannya secara manual, perintah yang digunakan di bawahnya pada dasarnya bermuara pada ini: cargo b; qemu-system-x86_64 -drive format=raw,file=target/bs.bin,index=0 . Untuk versi lama, Anda ingin memuat file _old/disk.bin bukan target/bs.bin .