3 คะแนน โดย GN⁺ 2024-01-04 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Maestro คือเคอร์เนลและระบบปฏิบัติการลักษณะคล้าย Unix ที่เขียนขึ้นใหม่ตั้งแต่ต้นด้วยภาษา Rust
  • เดิมทีเริ่มพัฒนาด้วยภาษา C แต่เมื่อการรักษาฐานโค้ดให้สะอาดเป็นเรื่องยาก จึงเปลี่ยนมาใช้ Rust
  • Rust ช่วยให้เริ่มโครงการใหม่ตั้งแต่ต้นได้อย่างสร้างสรรค์กว่าการเขียนเคอร์เนลคล้าย Linux ด้วย C และยังช่วยลดความยากของการเขียนโปรแกรมเคอร์เนลด้วยการใช้ประโยชน์จากความปลอดภัยของ Rust

สถานะปัจจุบันของโครงการ

  • ปัจจุบัน Maestro เป็นเคอร์เนลแบบ monolithic ที่รองรับเฉพาะสถาปัตยกรรม x86 (32 บิต)
  • ณ เวลาที่เขียนนี้ มีการพัฒนา system call ของ Linux ไปแล้วราว 135 รายการ คิดเป็นประมาณ 31%
  • นอกจากเคอร์เนลแล้ว ภายใน OS ยังมีองค์ประกอบอย่างระบบบูตและตัวจัดการดีมอน Solfège, ชุดคำสั่งยูทิลิตีระบบ maestro-utils และตัวจัดการแพ็กเกจ blimp
  • มีการทดสอบแล้วว่าซอฟต์แวร์ภายนอกอย่าง musl (ไลบรารีมาตรฐานภาษา C), bash, คำสั่งบางส่วนของ GNU coreutils และ neofetch (เวอร์ชันที่แพตช์แล้ว) สามารถทำงานบน OS นี้ได้

ลองทดสอบด้วยตัวเอง!

  • ระบบปฏิบัติการนี้ยังอยู่ในระยะเริ่มต้นของการพัฒนาและไม่เสถียรอย่างมาก จึงไม่แนะนำให้ติดตั้งบนเครื่องที่มีข้อมูลสำคัญ
  • มีการทดสอบหลักบน QEMU, VMWare และ VirtualBox
  • มี 2 วิธีในการติดตั้ง OS: ดาวน์โหลดไฟล์ .iso ที่บิลด์ไว้ล่วงหน้า หรือบิลด์ ISO ด้วยตัวเอง
  • แพ็กเกจที่ติดตั้งจะถูกเก็บไว้ใน RAM (initramsfs) แทนดิสก์ จึงต้องมี RAM เพียงพอ (อย่างน้อย 1GB)

เกี่ยวกับบล็อกนี้

  • จุดประสงค์ของบล็อกนี้ไม่ใช่การเขียนบทสอนเกี่ยวกับวิธีสร้าง OS แต่เพื่อสำรวจหัวข้อที่ลึกขึ้น แบ่งปันวิธีแก้ปัญหา และค้นพบว่าคอมพิวเตอร์ ระบบปฏิบัติการ และอินเทอร์เน็ตทำงานอย่างไร
  • ขอแนะนำ osdev.org และบล็อกของ Philipp Oppermann เป็นพิเศษ

สิ่งที่จะตามมา

  • ยังต้องมีการจัดระเบียบฐานโค้ดและปรับแต่งประสิทธิภาพ
  • การแก้ memory leak และการปรับแต่งประสิทธิภาพอาจเป็นหัวข้อของบทความในบล็อก
  • เป้าหมายถัดไปคือทำให้ตัวจัดการแพ็กเกจทำงานได้อย่างสมบูรณ์บน OS
  • ยังต้องมีการรองรับเครือข่ายและไลบรารีแบบใช้ร่วมกัน

วิธีช่วยเหลือ

  • คุณสามารถติดตามโครงการได้โดยกดดาวให้กับ GitHub repository, สมัครรับจดหมายข่าว, ติดตาม RSS feed และเข้าร่วม Discord

ความเห็นจาก GN⁺

  • โครงการ Maestro เป็นระบบปฏิบัติการลักษณะคล้าย Unix ที่เขียนด้วยภาษา Rust โดยมีจุดสำคัญคือการมุ่งเน้นทั้งความปลอดภัยและนวัตกรรมในการพัฒนาเคอร์เนล
  • โครงการนี้มอบโอกาสที่น่าสนใจให้กับนักพัฒนาที่ต้องการมีส่วนร่วมกับชุมชนโอเพนซอร์ส และอาจช่วยให้เข้าใจปฏิสัมพันธ์ระหว่างฮาร์ดแวร์กับซอฟต์แวร์จริงได้ดีขึ้น
  • อาจเป็นสื่อการเรียนรู้ที่มีประโยชน์สำหรับวิศวกรซอฟต์แวร์ระดับเริ่มต้นที่ต้องการสัมผัสข้อดีและข้อจำกัดของการเขียนโปรแกรมระบบด้วย Rust ในโลกจริง

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

 
GN⁺ 2024-01-04
ความคิดเห็นจาก Hacker News
  • ขอบคุณสำหรับการสนับสนุนโครงการ

    • โครงการนี้ใช้ความพยายามอย่างมาก และมีความหมายอย่างยิ่งต่อผู้พัฒนา
    • ตอนนี้เว็บไซต์ช้ามากหรืออาจล่มอยู่ มีทราฟฟิกจำนวนมากเกินคาด และสงสัยว่าอาจถูกโจมตีแบบ DoS
    • เมื่อกลับถึงบ้านแล้วจะพยายามปรับปรุงเว็บไซต์ ตอนนี้ยังไม่สามารถใส่ใจได้มากนักเพราะติดงาน
    • ต้องขออภัยในความไม่สะดวก แต่ก็ดีใจที่มีคนให้ความสนใจกับโครงการนี้
  • ความเห็นเกี่ยวกับโครงการเล็ก ๆ ที่ยอดเยี่ยม

    • น่าทึ่งที่ยังบูตไปได้ไกลขนาดนี้ทั้งที่ยังไม่ได้อิมพลีเมนต์แม้แต่หนึ่งในสามของ system call ของ Linux
    • คาดว่า system call ที่ยังไม่ได้อิมพลีเมนต์น่าจะซับซ้อนยิ่งกว่าเดิม
    • ตัวอย่างเช่น ชั้น TTY ตอนนี้ดูเหมือนยังเป็นแบบพื้นฐาน และการทำให้ถูกต้องน่าจะต้องใช้แรงงานอีกมาก
    • ดังนั้นอย่าคาดหวังว่า Maestro จะรันแอปพลิเคชัน Linux ได้ภายใน 3 ปีข้างหน้า
  • ความเห็นเกี่ยวกับความปลอดภัย/การทดสอบเจาะระบบ

    • เนื่องจากโครงการนี้พัฒนาด้วย Rust จึงอยากเห็นการทดสอบด้านความปลอดภัยว่าแฮ็กเกอร์จะหาช่องโหว่ได้หรือไม่
  • การกล่าวถึงโครงการ Kerla

    • เคยมี Kerla (โมโนลิธิกเคอร์เนลที่เขียนด้วย Rust และตั้งเป้าให้เข้ากันได้กับ Linux ABI) เช่นกัน แต่ไม่มีความเคลื่อนไหวมาหลายปีแล้ว
  • ความเห็นเกี่ยวกับข้อเสียของการใช้ภาษา C และความยากของการพัฒนา OS

    • ข้อเสียและความยากส่วนใหญ่อยู่ที่การดีบัก
    • แม้การย้ายมาใช้ Rust จะช่วยกำจัดข้อผิดพลาดด้านหน่วยความจำบางประเภทได้ แต่ก็สงสัยว่าการดีบักยังคงยากเหมือนเดิมหรือไม่ หรือหลังจากย้ายแล้วจำเป็นต้องดีบักน้อยลงจนทำให้ง่ายขึ้น
  • การกล่าวถึงการหยุดพัฒนาของโครงการ Kerla

    • กล่าวถึงว่า Kerla ซึ่งเป็นโครงการที่เคยมีคนลองทำมาก่อนแล้ว ได้หยุดพัฒนาไปแล้ว
  • ความเห็นเกี่ยวกับความซับซ้อนของคอมพิวเตอร์

    • คอมพิวเตอร์เป็นหนึ่งในเครื่องมือที่ซับซ้อนที่สุดที่มนุษยชาติสร้างขึ้น
  • คำแนะนำเรื่องการชำระหนี้ทางเทคนิค

    • ตอนเริ่มต้นเป็นโปรเจกต์ของโรงเรียน อาจมีการตัดมุมเพราะข้อจำกัดด้านเวลา แต่ตอนนี้ถึงเวลาต้องชำระหนี้ทางเทคนิคแล้ว และแนะนำให้รักษาแนวคิดแบบนี้ต่อไป
  • ความสนใจเกี่ยวกับ Gource

    • สนใจมากกับเครื่องมือชื่อ Gource ที่ผู้เขียนใช้สร้างวิดีโอการมีส่วนร่วม เคยคิดไอเดียคล้าย ๆ กันมาก่อน แต่ดูเหมือนจะไม่มีไอเดียไหนเป็นของใหม่จริง ๆ
  • ความสนใจในการสร้างเคอร์เนล

    • ชอบแนวคิดการสร้างเคอร์เนลเพื่อการเรียนรู้อย่างมาก และสงสัยว่าใช้แหล่งข้อมูลใดในการทำความเข้าใจเกี่ยวกับเคอร์เนล/OS โดยรวม