المحاولة الثانية لصنع نظام التشغيل
تأكد من تثبيت البرامج التالية:
ملاحظة: قد تحتاج إلى مزيد من الحزم لبناء sysroot ، مثل flex bison automake autoconf autopoint gperf help2man texinfo libgmp-dev libmpc-dev libmpfr-dev etc
على الأنظمة المستندة إلى Debian ، أوصي بتثبيت LLVM و Clang و LLD من هنا: https://apt.llvm.org
إذا كنت على نظام محدث قائم على Debian (Ubuntu ، Linux Mint ، Pop_OS! ، إلخ) ، يمكنك تثبيت معظمهم بهذا الأمر:
sudo apt install clang lld llvm xorriso tar qemu-system-x86 qemu-system-arm
بالنسبة إلى Meson و Ninja و Xbstrap ، تأكد أولاً من تثبيت Python و Python-PIP ثم تشغيله:
python -m pip install meson ninja xbstrap
اتبع هذه الخطوات لبناء وتشغيل نظام التشغيل:
استنساخ هذا الريبو مع:
git clone --depth=1 https://github.com/ilobilo/ilobilix
حاليًا يجب عليك بناء النظامية يدويًا:
boostrap.ymlmkdir build-sysrootpushd build-sysrootxbstrap init ..xbstrap install basesysroot موجودًا في مصدر Ilobilix الذي يرتبط بـ build-sysroot/system-root ، فقم بإنشائه مع:ln -s $BUILD_SYSROOT_DIR$/system-root $KERNEL_DIR$/sysrootln -s build-sysroot/system-root ../sysrootpopd قم بإعداد نظام الإنشاء:
meson setup builddir --cross-file cross-files/meson-kernel-clang-(x86_64/aarch64)(-ccache).cross-file -Doptions=values
بناء وتشغيل النواة:
ninja -C builddir <see Ninja Targets>
| الاسم الهدف | وصف |
|---|---|
| Run_bios | قم بالتشغيل مع BIOS Legacy (فقط على x86_64) |
| run_bios_debug | نفس الشيء ولكن مع تمكين تصحيح الأخطاء |
| Run_uefi | ركض مع UEFI |
| run_uefi_debug | نفس الشيء ولكن مع تمكين تصحيح الأخطاء |
| نورون | لا تدير نظام التشغيل |
ملحوظات:
-d int و -monitor telnet:127.0.0.1:12345 . إذا تم تمكين خيار gdb ، يضيف -s -Srun_bios ، وإلا run_uefi .| خيارات المشروع | القيمة الافتراضية | وصف |
|---|---|---|
| kernel_cflags | حجج برنامج التحويل البرمجي الإضافي لـ kernel | |
| kernel_cxxflags | حجج برنامج التحويل البرمجي الإضافي CPP للنواة | |
| الوحدات _cflags | حجج مترجم إضافية C للوحدات النمطية | |
| MODULES_CXXFLAGS | وسيطات مترجم إضافية CPP للوحدات النمطية | |
| kernel_ubsan | خطأ شنيع | تمكين ubsanitizer في kernel |
| MODULES_UBSAN | خطأ شنيع | تمكين ubsanitizer في الوحدات النمطية |
| 5lvl_paging | خطأ شنيع | تمكين 5 مستوى الترحيل في kernel |
| syscall_debug | خطأ شنيع | طباعة سجل syscall في وحدة التحكم التسلسلية |
| GDB | خطأ شنيع | أضف -s -S إلى QEMU عند تصحيح الأخطاء |
| noaccel | خطأ شنيع | تعطيل مسرعات QEMU |
| VNC | خطأ شنيع | ابدأ خادم QEMU VNC على 127.0.0.1:5901 |
https://discord.gg/fm5gk3rps7