OS งานอดิเรกที่จะช่วยให้ฉันเรียนรู้เกี่ยวกับสิ่งเคอร์เนลในที่สุดเพื่อเข้าสู่การพัฒนาเคอร์เนล Linux ปัจจุบันรองรับ:
ฉันตั้งเป้าหมายที่จะทำให้รหัสอ่านและจัดระเบียบได้ดี บล็อกติดตามการพัฒนาของโครงการนี้ที่นี่ https://jmnl.xyz/ และ Wiki ให้ข้อมูลเพิ่มเติมเกี่ยวกับโครงการและภายใน
ติดตั้งแพ็คเกจต่อไปนี้:
xorriso สำหรับ Debian/Ubuntu; libisoburn บน archlinuxgrubmtoolsimagemagickqemu (แนะนำ)bochs (ไม่บังคับ)clang + แพ็คเกจการพัฒนาเช่น base-devel บน Archlinux (ไม่บังคับ)วิ่ง
make toolchain
ในการสร้าง cross-compiler ที่จำเป็นในการรวบรวมเกล็ดหิมะ คำสั่งนี้จะดาวน์โหลดและเรียกใช้สคริปต์ Build สำหรับ gcc และ binutils จากเซิร์ฟเวอร์ GNU FTP และติดตั้ง cross-compiler ใน toolchain/compiler
แทนที่จะสร้างเชนเครื่องมือของคุณเองคุณสามารถรวบรวม Snowflakeos ด้วย clang ของระบบของคุณ: เพียงแค่ไม่มีการทำความเข้าใจกับกลุ่มบรรทัดต่อไปนี้ใน Makefile หลัก:
# CC=clang
# LD=ld
# AR=ar
# AS=as
# CFLAGS+=-target i386-pc-none-eabi -m32
# CFLAGS+=-mno-mmx -mno-sse -mno-sse2 หาก distro ของคุณมีคอมไพเลอร์ข้ามคุณอาจต้องการประหยัดเวลาและใช้งาน ในการทำเช่นนั้นคุณต้องแก้ไขตัวแปรต่อไปนี้ใน Makefile หลักเพื่อให้ตรงกับการทำงานของคอมไพเลอร์ข้ามของคุณ:
AR=$(HOST)-ar
AS=$(HOST)-as
LD=$(HOST)-ld
CC=$(HOST)-gcc --sysroot=$(SYSROOT) -isystem=/$(INCLUDEDIR)
คุณสามารถแก้ไข HOST หรือ Hardcode ชื่อ Executables โดยตรง
เรียกใช้อย่างใดอย่างหนึ่ง
make qemu # or
make bochs
เพื่อทดสอบเกล็ดหิมะใน VM ดูรอบแก้ไข/ดีบักสำหรับตัวเลือกเพิ่มเติมเกี่ยวกับวิธีการรวบรวมและเรียกใช้ Snowflakeos
การทดสอบโครงการนี้เกี่ยวกับฮาร์ดแวร์จริงเป็นไปได้ คุณสามารถคัดลอก SnowflakeOS.iso ไปยังไดรฟ์ USB โดยใช้ dd เช่นเดียวกับที่คุณทำเมื่อสร้าง USB สดของระบบปฏิบัติการอื่นและบูตโดยตรง
โปรดทราบว่าสิ่งนี้ไม่ค่อยมีการทดสอบใครจะรู้ว่ามันจะทำอะไร :) ฉันชอบที่จะได้ยินเกี่ยวกับเรื่องนี้ถ้าคุณลองสิ่งนี้กับฮาร์ดแวร์ ฯลฯ ...
ยินดีต้อนรับการมีส่วนร่วมมากที่สุดในทุกรูปแบบ! ปรึกษา CONTRIBUTING.md และวิกิของโครงการนี้เพื่อขอคำแนะนำ