Tiny OS adalah sistem operasi yang berjalan pada arsitektur x86_64 .
Proyek ini dikembangkan pada sistem linux . Pada sistem windows , Anda dapat menjalankan subsistem linux dengan menginstal WSL .
Jika Anda menggunakan WSL :
windows ; disarankan untuk menginstal XMing atau VCXSVR.-ac , atau memeriksa disable access control melalui GUI.WSL :WSL (versi 1): export DISPLAY=:0WSL2 (versi 2): export DISPLAY= $( cat /etc/resolv.conf | grep nameserver | awk ' {print $2} ' ) :0~/.bashrc atau ~/.profile .Could not initialize SDL (No available video device) ... atau kesalahan apa pun tentang GTK, periksa apakah server X Anda dimulai dan apakah DISPLAY variabel lingkungan diatur dengan benar. Rust adalah bahasa pemrograman tingkat sistem modern, dan proyek ini terutama dikembangkan menggunakan bahasa Rust . Unduh dan instal melalui situs web resmi Rust. Catatan: Proyek ini membutuhkan pemasangan versi nightly toolchain malam.
Setelah instalasi selesai, instal llvm-tools melalui rustup :
rustup component add llvm-tools-preview Instal beberapa alat yang berguna melalui cargo untuk pengembangan:
cargo install cargo-binutilsbochs Emulator Simulasi melalui Simulator bochs . Tautan Unduh Kode Sumber: Sumber Forge - Emulator PC Bochs X86. Setelah mengunduh, mengkompilasi dan menginstal.
Perintahnya adalah sebagai berikut:
cargo run --release Jalur gambar kernel yang dikompilasi adalah target/os.img .
Buat file os.img di direktori ./bochs melalui bximage :
bximage -func=create -hd=10M -imgmode=flat ./bochs/os.img -q Engrave ./target/os.img ke ./bochs/os.img melalui alat dd :
# 注意下面的参数 count 要根据生成的 target/os.img 文件的大小进行调整
dd if=target/os.img of=bochs/os.img bs=512 count=250 conv=notruncbochs bochs/conf memiliki file konfigurasi berikut di direktori:
bochsdbg-gdb.bxrc : Anda dapat melakukan debug dari jarak jauh melalui gdb dan mengikat localhost:1234 (Anda perlu mengaktifkan --enable-gdb-stub saat menyusun bochs )bochsdbg-win : Open bochs debugger dengan antarmuka grafis di platform windowbochsrc.bxrc : File konfigurasi bochs paling dasar, tanpa fungsi debug Jalankan bochs untuk mengaktifkan simulasi:
bochs -q -f bochs/conf/bochsrc.bxrcqemu Tidak seperti bochs , qemu dapat secara langsung memuat target/os.img :
qemu-system-x86_64 -drive format=raw,file=bochs/os.img -boot c
Ada file Makefile di direktori root proyek, yang mendefinisikan beberapa perintah berjalan dan debugging:
clean : Digunakan untuk membersihkan file yang dihasilkanbuild-release : Digunakan untuk mengkompilasi versi release gambar kernelbuild-debug : Digunakan untuk mengkompilasi gambar kernel versi debug (tidak selesai)run-bochs : Digunakan untuk mengkompilasi gambar kernel dan memulai simulasi bochsrun-qemu : Digunakan untuk mengkompilasi gambar kernel dan memulai simulasi qemudebug-bochs : Digunakan untuk menyusun gambar kernel, mulai bochs dan debug jarak jauh melalui rust-gdbdebug-qemu : Digunakan untuk mengkompilasi gambar kernel, mulai qemu dan debug jarak jauh melalui rust-gdb Proyek ini terutama dibagi menjadi 4 bagian:
builder : Terletak di direktori src , ini terutama digunakan untuk menyusun dan membangun gambar kernelboot : Terletak di direktori boot , itu adalah bootloader untuk tiny OSboot_info : Terletak di direktori boot_info , ia menyediakan struktur BootInfokernel : Terletak di direktori kernel , itu adalah kode kernel dari tiny OS long mode BootInfo untuk menyampaikan informasi dari tahap bootloader ke kernel elf kernel logger (digunakan untuk mengimplementasikan fungsi pencetakan tiny os dan debug selama pengembangan kernel) Page Fault pemrosesan pendahuluan GP Fault Double Fault linked_list_allocator buddy system spawn yang tersedia secara global FAT32 shellBuilder yang lebih fleksibel (Anda dapat memilih untuk mengkompilasi debug dan release gambar) bochs secara langsung, alih -alih mengukirnya menjadi bochs/os.img melalui alat dd