1 คะแนน โดย GN⁺ 2024-07-15 | 1 ความคิดเห็น | แชร์ทาง WhatsApp

Fusion OS

Fusion เป็นระบบปฏิบัติการงานอดิเรกสำหรับ x86-64 ที่พัฒนาด้วย Nim โดยมีการบันทึกกระบวนการพัฒนาไว้ที่ https://0xc0ffee.netlify.app

ภาพหน้าจอ

  • บูตโหลดเดอร์ UEFI
  • GUI ( หมายเหตุ: ภาพหน้าจอนี้นำมาจากสาขา graphics ที่ยังอยู่ระหว่างการพัฒนา )
  • การบูตเคอร์เนล Fusion

ฟีเจอร์

ฟีเจอร์ที่พัฒนาแล้วในปัจจุบัน:

  • บูตโหลดเดอร์ UEFI
  • ตัวจัดการหน่วยความจำกายภาพ
  • ตัวจัดการหน่วยความจำเสมือน
  • พื้นที่แอดเดรสเดียว
  • โหมดผู้ใช้
  • มัลติทาสกิงแบบ preemptive
  • system call
  • ตัวโหลด ELF
  • timer interrupt

ฟีเจอร์ที่วางแผนไว้:

  • demand paging
  • การสื่อสารระหว่างโปรเซส
  • ดิสก์ I/O
  • ระบบไฟล์
  • อินพุตคีย์บอร์ด/เมาส์
  • เชลล์
  • GUI
  • เครือข่าย

การบิลด์

หากต้องการบิลด์ Fusion ต้องติดตั้ง dependencies ต่อไปนี้:

  • Nim
  • LLVM (clang และ lld)
  • Just

บิลด์ Fusion ด้วยคำสั่งต่อไปนี้:

just build

การรัน

ปัจจุบัน Fusion รันบน QEMU ดังนั้นต้องติดตั้ง QEMU ก่อน จากนั้นรัน Fusion ด้วยคำสั่งต่อไปนี้:

just run

ใบอนุญาต

MIT

สรุปโดย GN⁺

Fusion OS เป็นระบบปฏิบัติการงานอดิเรกสำหรับ x86-64 ที่พัฒนาด้วย Nim เหมาะสำหรับผู้ที่ต้องการเรียนรู้กระบวนการพัฒนาระบบปฏิบัติการ ปัจจุบันมีการพัฒนาฟีเจอร์พื้นฐานแล้ว เช่น บูตโหลดเดอร์ UEFI ตัวจัดการหน่วยความจำกายภาพและเสมือน และโหมดผู้ใช้ ในอนาคตมีแผนจะเพิ่มฟีเจอร์ต่าง ๆ เช่น demand paging การสื่อสารระหว่างโปรเซส และระบบไฟล์ สามารถทดสอบได้ง่ายผ่าน QEMU จึงเหมาะทั้งสำหรับการพัฒนาและการเรียนรู้ โปรเจ็กต์ที่คล้ายกันได้แก่ xv6 และ OSDev

1 ความคิดเห็น

 
GN⁺ 2024-07-15
ความคิดเห็นจาก Hacker News
  • ผู้เขียนมาเอง พร้อมตอบคำถาม
  • บล็อก/เอกสารของคุณยอดเยี่ยมมาก บล็อกและเอกสารทำได้ดีมาก สมดุลระหว่างการสาธิตกับการอธิบายลงตัวพอดี
  • เยี่ยมเลย ฉันชอบเห็นอะไรแบบนี้ ดีใจที่ได้เห็นโปรเจ็กต์แบบนี้ ฉันแวะเวียนอยู่กับ ecosystem ของ Nim เป็นพัก ๆ มาหลายปีแล้ว และยินดีที่เห็นโปรเจ็กต์เล็ก ๆ นี้เดินหน้าต่อไป
  • เจ๋งดี! อ่านโมดูล ELF ได้ง่ายดูสนุกมาก สักวันหนึ่งฉันอยากเขียน RTOS ด้วย Nim ฉันสนุกกับการเขียนโปรแกรมฝังตัวด้วย Nim และคิดว่าการทำ RTOS ก็น่าจะสนุกเหมือนกัน
  • Nim คืออะไร และเป้าหมายการออกแบบหลักของ Fusion คืออะไร อย่าหวังว่าจะเป็นคำถามพื้นฐานเกินไปนะ ฉันไม่มีความรู้พื้นฐานเกี่ยวกับหัวข้อนี้เลย เลยอยากให้ใครสักคนช่วยอธิบาย
  • บันทึกการพัฒนาของผู้เขียน Fusion: แชร์ลิงก์บันทึกการพัฒนาของผู้เขียน Fusion
  • เมื่อเทียบกับ TempleOS แล้วเป็นอย่างไร สงสัยว่ามันต่างจาก TempleOS ตรงไหนบ้าง ฟังดูคล้ายกันตรงที่ใช้ single address space
  • ปัญหาของ Nim ที่ทำให้หลายคนไม่กล้าใช้ คือมันไม่สนตัวพิมพ์ใหญ่เล็กและรูปแบบการเขียน นี่คือจุดอ่อนของ Nim
    • ตัวอย่าง: Is_land == island == IsLaND == is-land
    • ในสภาพแวดล้อมแบบทีมหรือโปรเจ็กต์จริง สิ่งนี้เป็นปัญหาได้
    • อยากรู้ว่าตอนนี้สถานการณ์ไปถึงไหนแล้ว ตอนที่เช็กล่าสุด ผู้พัฒนาหลักตัดสินใจว่าจะไม่ดำเนินการใด ๆ แม้มีการโหวตยอดนิยมบน GitHub
    • นอกเหนือจากนั้น โปรเจ็กต์ Fusion OS และเอกสารยอดเยี่ยมมาก