ความพยายามครั้งที่สองในการสร้างระบบปฏิบัติการ
ตรวจสอบให้แน่ใจว่าคุณติดตั้งโปรแกรมต่อไปนี้:
หมายเหตุ: คุณอาจต้องใช้แพ็คเกจเพิ่มเติมเพื่อสร้าง sysroot เช่น flex bison automake autoconf autopoint gperf help2man texinfo libgmp-dev libmpc-dev libmpfr-dev ฯลฯ
ในระบบที่ใช้ 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
ทำตามขั้นตอนเหล่านี้เพื่อสร้างและเรียกใช้ระบบปฏิบัติการ:
โคลน repo นี้ด้วย:
git clone --depth=1 https://github.com/ilobilo/ilobilix
ขณะนี้คุณต้องสร้าง Sysroot ด้วยตนเอง:
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 ดั้งเดิม (เฉพาะใน 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_cxxflags | ข้อโต้แย้งคอมไพเลอร์ CPP พิเศษสำหรับเคอร์เนล | |
| โมดูล _cflags | อาร์กิวเมนต์คอมไพเลอร์พิเศษสำหรับโมดูล | |
| MODULES_CXXFLAGS | อาร์กิวเมนต์คอมไพเลอร์ CPP พิเศษสำหรับโมดูล | |
| kernel_ubsan | เท็จ | เปิดใช้งาน Ubsanitizer ในเคอร์เนล |
| โมดูล _ubsan | เท็จ | เปิดใช้งาน Ubsanitizer ในโมดูล |
| 5lvl_paging | เท็จ | เปิดใช้งาน 5 ระดับการเพจในเคอร์เนล |
| syscall_debug | เท็จ | พิมพ์ Syscall log ในคอนโซลอนุกรม |
| GDB | เท็จ | เพิ่ม -s -S ถึง QEMU เมื่อทำการดีบัก |
| ไม่ได้ | เท็จ | ปิดใช้งานเครื่องเร่งความเร็ว QEMU |
| VNC | เท็จ | เริ่มเซิร์ฟเวอร์ QEMU VNC บน 127.0.0.1:5901 |
https://discord.gg/fm5gk3rps7