Tiny OS هو نظام تشغيل يعمل على بنية x86_64 .
تم تطوير هذا المشروع على نظام linux . على أنظمة windows ، يمكنك تشغيل نظام linux الفرعي عن طريق تثبيت WSL .
إذا كنت تستخدم WSL :
windows ؛ يوصى بتثبيت Xming أو VCXSVR.-ac ، أو التحقق من disable access control من خلال واجهة المستخدم الرسومية.WSL :WSL (الإصدار 1): export DISPLAY=:0WSL2 (الإصدار 2): export DISPLAY= $( cat /etc/resolv.conf | grep nameserver | awk ' {print $2} ' ) :0~/.bashrc أو ~/.profile .Could not initialize SDL (No available video device) ... أو أي أخطاء حول GTK ، تحقق مما إذا كان خادم X الخاص بك قد تم بدء تشغيله وإذا تم تعيين DISPLAY متغير البيئة بشكل صحيح. Rust هي لغة برمجة حديثة على مستوى النظام ، ويتم تطوير هذا المشروع بشكل أساسي باستخدام لغة Rust . قم بتنزيله وتثبيته من خلال موقع Rust الرسمي. ملاحظة: يتطلب هذا المشروع تثبيت الإصدار nightly من أدوات الأدوات.
بعد اكتمال التثبيت ، قم بتثبيت llvm-tools عبر rustup :
rustup component add llvm-tools-preview تثبيت بعض الأدوات المفيدة من خلال cargo للتنمية:
cargo install cargo-binutilsbochs المحاكي محاكاة عبر محاكاة bochs . رابط تنزيل رمز المصدر: Source Forge - Bochs x86 PC Emulator. بعد التنزيل وتجميع وتثبيت.
الأمر كما يلي:
cargo run --release مسار صورة kernel المترجم هو target/os.img .
قم بإنشاء ملف os.img في دليل ./bochs من خلال bximage :
bximage -func=create -hd=10M -imgmode=flat ./bochs/os.img -q engrave ./target/os.img in ./bochs/os.img من خلال أداة dd :
# 注意下面的参数 count 要根据生成的 target/os.img 文件的大小进行调整
dd if=target/os.img of=bochs/os.img bs=512 count=250 conv=notruncbochs يحتوي bochs/conf على ملفات التكوين التالية في الدليل:
bochsdbg-gdb.bxrc : يمكنك تصحيحها عن بُعد من خلال gdb وربط localhost:1234 (تحتاج إلى تمكين- --enable-gdb-stub عند تجميع bochs )bochsdbg-win : Open bochs debugger مع واجهة رسومية على منصة windowbochsrc.bxrc : ملف تكوين bochs الأساسي ، دون وظيفة debug تشغيل bochs لتمكين المحاكاة:
bochs -q -f bochs/conf/bochsrc.bxrcqemu على عكس bochs ، يمكن qemu تحميل target/os.img الذي تم إنشاؤه مباشرة:
qemu-system-x86_64 -drive format=raw,file=bochs/os.img -boot c
يوجد ملف Makefile في الدليل الجذر للمشروع ، والذي يحدد بعض أوامر التشغيل والتصحيح:
clean : تستخدم لتنظيف الملفات التي تم إنشاؤهاbuild-release : يستخدم لتجميع صور kernel إصدار releasebuild-debug : يستخدم لتجميع صور kernel إصدار debug (غير مكتمل)run-bochs : يستخدم لتجميع صور kernel وبدء محاكاة bochsrun-qemu : يستخدم لتجميع صور kernel وبدء محاكاة qemudebug-bochs : يستخدم لتجميع صور kernel ، وبدء bochs debug عن بُعد عبر rust-gdbdebug-qemu : يستخدم لتجميع صور kernel ، وبدء qemu debug عن بُعد عبر rust-gdb ينقسم هذا المشروع بشكل أساسي إلى 4 أجزاء:
builder : يقع في دليل src ، ويستخدم بشكل أساسي لتجميع وبناء صور kernelboot : يقع في دليل boot ، وهو bootloader لنظام tiny OSboot_info : يقع في دليل boot_info ، ويوفر بنية BootInfokernel : يقع في دليل kernel ، وهو رمز kernel tiny OS long mode BootInfo لتمرير المعلومات من مرحلة bootloader إلى kernel elf logger (المستخدم لتنفيذ وظائف طباعة tiny os وتصحيح الأخطاء أثناء تطوير kernel) Page Fault المعالجة الأولية GP Fault Double Fault linked_list_allocator buddy system spawn متاح عالميا FAT32 shellBuilder أكثر مرونة (يمكنك اختيار تجميع debug release الصور) bochs مباشرة ، بدلاً من نقشها في bochs/os.img من خلال أداة dd