1 คะแนน โดย GN⁺ 2025-11-10 | 1 ความคิดเห็น | แชร์ทาง WhatsApp
  • Ironclad คือ เคอร์เนลตระกูล Unix แบบเรียลไทม์ที่อิงการพิสูจน์ความถูกต้องเชิงรูปแบบ สำหรับการใช้งานทั่วไปและสภาพแวดล้อมแบบฝังตัว
    • การพิสูจน์ความถูกต้องเชิงรูปแบบ (Formal verification) : ชุดกระบวนการและการตรวจสอบที่โค้ดเคอร์เนลต้องผ่านเพื่อรับประกัน การไม่มีข้อผิดพลาดขณะรันไทม์ (AoRTE, Absence of Runtime Errors) และความถูกต้องขององค์ประกอบต่าง ๆ
  • เขียนด้วย SPARK และ Ada และประกอบด้วย ซอฟต์แวร์เสรี 100%
  • รองรับ อินเทอร์เฟซที่เข้ากันได้กับ POSIX, มัลติทาสก์แบบแย่งการประมวลผล, การควบคุมการเข้าถึงแบบบังคับ (MAC) และ การจัดตารางแบบฮาร์ดเรียลไทม์
  • เผยแพร่ภายใต้ สัญญาอนุญาต GPLv3 และคงโครงสร้างแบบ โอเพนซอร์สอย่างสมบูรณ์ โดยไม่มี firmware blob
  • สามารถพอร์ตไปยังหลายแพลตฟอร์มได้ และกำลังขยายระบบนิเวศผ่านดิสโทรอย่าง Gloire

ภาพรวมของเคอร์เนลระบบปฏิบัติการ Ironclad

  • Ironclad คือ เคอร์เนลตระกูล UNIX ที่รองรับเรียลไทม์ ซึ่งมีการนำ การพิสูจน์ความถูกต้องเชิงรูปแบบ (formal verification) มาใช้บางส่วน
    • ออกแบบมาสำหรับทั้งงานทั่วไปและระบบฝังตัว
    • การพิสูจน์ความถูกต้องเชิงรูปแบบ (Formal verification) : ชุดกระบวนการและการตรวจสอบที่โค้ดเคอร์เนลต้องผ่านเพื่อรับประกัน การไม่มีข้อผิดพลาดขณะรันไทม์ (AoRTE, Absence of Runtime Errors) และความถูกต้องขององค์ประกอบต่าง ๆ
    • เพื่อสิ่งนี้จึงใช้ ** SPARK** ซึ่งเป็นซับเซ็ตของ Ada
    • โค้ดทั้งหมดประกอบด้วย ซอฟต์แวร์เสรี
  • เคอร์เนลมี อินเทอร์เฟซที่เข้ากันได้กับ POSIX และรองรับ มัลติทาสก์แบบแย่งการประมวลผล, การควบคุมการเข้าถึงแบบบังคับ (MAC) และ การจัดตารางแบบฮาร์ดเรียลไทม์
    • มอบประสบการณ์การพัฒนาที่คล้ายกับสภาพแวดล้อม UNIX เดิม
    • เป็นโครงสร้างที่เหมาะกับระบบที่ต้องการการควบคุมแบบเรียลไทม์

คุณลักษณะในฐานะซอฟต์แวร์เสรี

  • Ironclad เผยแพร่เป็นโอเพนซอร์สอย่างสมบูรณ์ภายใต้ สัญญาอนุญาต GPLv3
    • ไม่มี firmware blob รวมอยู่ในเคอร์เนล
    • องค์ประกอบทั้งหมดของสแตกถูกจัดให้ในรูปแบบโอเพนซอร์ส

การพิสูจน์ความถูกต้องเชิงรูปแบบ (Formal Verification)

  • ใช้ ความสามารถด้านการพิสูจน์ความถูกต้องเชิงรูปแบบของภาษา SPARK เพื่อรับประกันการไม่มีข้อผิดพลาดและความถูกต้องขององค์ประกอบหลัก
  • SPARK ทำการตรวจสอบความสอดคล้องเชิงตรรกะของโค้ดในเชิงคณิตศาสตร์ โดยระบุ เงื่อนไขก่อนหน้า (Pre), เงื่อนไขภายหลัง (Post), การพึ่งพา (Depends) เป็นต้น ไว้ในโค้ด Ada
    • สิ่งที่อยู่ในขอบเขตการตรวจสอบ ได้แก่ โมดูลเข้ารหัส, ระบบ MAC และ ฟังก์ชันที่เกี่ยวข้องกับส่วนติดต่อผู้ใช้

การพกพาและสภาพแวดล้อมการพัฒนา

  • Ironclad ถูกพอร์ตไปยัง แพลตฟอร์มและบอร์ด หลายแบบ และออกแบบมาให้รองรับการพอร์ตเพิ่มเติมได้ง่าย
    • พึ่งพาเพียง GNU toolchain จึงทำ cross-compilation ได้อย่างสะดวก
    • ด้วย ความเข้ากันได้กับ POSIX จึงทำให้การพอร์ตซอฟต์แวร์และการพัฒนาทำได้ง่าย

ดิสโทรและระบบนิเวศ

  • โครงการ Ironclad จัดเตรียม ดิสโทร (distribution) สำหรับสถาปัตยกรรมและบอร์ดหลากหลายแบบ
    • ดิสโทรเสรีและโอเพนซอร์สที่เป็นตัวแทนคือ Gloire
    • มี อิมเมจดิสโทรในรูปแบบ tarball ให้ดาวน์โหลด

การสนับสนุนโครงการและความยั่งยืน

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

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

 
GN⁺ 2025-11-10
ความคิดเห็นจาก Hacker News
  • เป็นโปรเจกต์ที่น่าสนใจ อยากรู้ข้อจำกัดของการพิสูจน์เชิงรูปนัยของ เวลาการทำงานกรณีแย่ที่สุด (WCET)
    ยังมีเคอร์เนลที่ผ่านการตรวจพิสูจน์อื่น ๆ อย่าง seL4, atmosphere และยังสามารถวางชั้นความเข้ากันได้แบบ POSIX เหมือน genode ได้ด้วย
    ยังมีเคอร์เนลที่เข้ากันได้สมบูรณ์และมีความ成熟อย่าง QNX หรือ VxWorks อยู่แล้ว ดังนั้นการตรวจพิสูจน์อย่างสมบูรณ์อาจไม่ได้เพิ่มคุณค่ามากนัก
    แต่แทบไม่เคยเห็นกรณีที่มีทั้ง WCET + การตรวจพิสูจน์เชิงรูปนัย + ความเข้ากันได้กับ POSIX ครบพร้อมกัน
    ในขั้นปัจจุบันยังมองว่ายากที่จะบอกว่ามี ความพร้อมใช้งาน สูงพอจะนำไปใช้กับงานเรียลไทม์ตามที่ระบุในเอกสารได้ทันที

    • ไม่ว่ารัฐบาลไหนก็อยู่ในโลกที่สามารถทำ RCE กับ OS ได้ ดังนั้นการตรวจพิสูจน์เชิงรูปนัยของการแยกโปรเซสจึงสำคัญมาก
      seL4 เร็วกว่า Linux มาก แต่ตัวนี้ดูน่าจะช้า POSIX มีปัญหาโดยธรรมชาติอยู่แล้ว และ MAC ก็ซับซ้อนเกินไปจนใช้งานจริงได้ยาก
    • ตอนนี้ยังอยู่ในระดับ stone แต่ต่อไปก็ดูมีโอกาสจะได้รับ การรับรองอย่างเป็นทางการ ได้ OS ที่ผ่านการตรวจพิสูจน์เชิงรูปนัยถือเป็นความก้าวหน้าครั้งใหญ่ด้านความปลอดภัย
  • Ada อยู่ในกลุ่ม ภาษาแบบ Wirth (สาย Pascal) จนถึงตอนนี้เคอร์เนลคล้าย Unix ที่เขียนด้วยภาษาในสาย Wirth ที่ผมรู้จักมีแค่ TUNIS
    TUNIS ถูกพัฒนาด้วย Concurrent Euclid

    • ยังมี SPIN ที่พัฒนาที่มหาวิทยาลัยวอชิงตันในยุค 90 เป็นระบบบนพื้นฐานไมโครเคอร์เนลที่เขียนด้วย Modula-3 และรองรับอินเทอร์เฟซ system call ของ Digital UNIX
      อีกทั้งในยุค 80 Sol ของ INRIA ก็ถูกพัฒนาด้วยภาษาถิ่นของ Pascal และให้สภาพแวดล้อมที่เข้ากันได้กับ Unix ก่อนจะต่อยอดไปเป็น Chorus
  • ยังมีบริษัทด้าน NDA ที่ใช้ชื่อ Ironclad อยู่ด้วย ควรระวังเรื่อง เครื่องหมายการค้า
    ถึงอย่างนั้นก็ดีใจมากที่มีความพยายามแบบนี้ แต่ในโลกความจริง ห่วงโซ่ที่อ่อนแอที่สุดของความปลอดภัยคือชั้นเฟิร์มแวร์
    ความฝันของผมคือฮาร์ดแวร์อย่าง Framework Computer จะมี เฟิร์มแวร์ EFI ที่ผ่านการตรวจพิสูจน์ และมีเฟิร์มแวร์ของแต่ละองค์ประกอบที่ผ่านการตรวจสอบได้

    • Ironclad ยังเป็นชื่อของ ไลบรารีเข้ารหัสลับ หลักของ Common Lisp ด้วย (ironclad GitHub)
    • ลองดู MNT Research ได้เช่นกัน ทำโน้ตบุ๊กที่ซ่อมได้ และเปิดซอร์สทั้งฮาร์ดแวร์และซอฟต์แวร์ (mnt.re)
    • การตรวจพิสูจน์เฟิร์มแวร์ต้องใช้เคอร์เนลอีกตัวแยกต่างหาก ตอนนี้เรื่องแบบนี้ควรถูกกำกับในระดับ กฎระเบียบ ได้แล้ว
    • เครื่องหมายการค้าจะไม่เป็นปัญหาถ้าเป็น คนละอุตสาหกรรม แม้ชื่อจะเหมือนกัน เช่นกรณี Apple Computer กับ Apple Music ของ Beatles (xkcd 386)
  • การสร้าง OS ใหม่เป็นเรื่องที่ ทะเยอทะยานมาก ช่วงนี้ Radiant Computer ก็เพิ่งถูกพูดถึง เลยสงสัยว่ายังมีโปรเจกต์น่าสนใจคล้ายกันอีกไหม

    • Asterinas (เคอร์เนลที่เข้ากันได้กับ Linux) และ Redox OS ดูมีอนาคต
    • ยังมี SerenityOS
    • แม้จะเป็นทางเลือกเก่า แต่ Haiku OS ก็ยังน่าสนใจอยู่
    • ผมเองก็มีไอเดียเกี่ยวกับ OS อยู่ กำลังคิดหลายองค์ประกอบตั้งแต่ฮาร์ดแวร์ เคอร์เนล ไปจนถึงโปรแกรมผู้ใช้
    • ReactOS ก็ยังพัฒนาต่อเนื่อง แม้จะไม่ใช่ OS ใหม่ทั้งหมด แต่ก็ยังถือว่าใหม่ในแบบของมัน
  • หวังว่าสักวัน เคอร์เนลที่ผ่านการตรวจพิสูจน์เชิงรูปนัยอย่างสมบูรณ์ จะกลายเป็นเรื่องแพร่หลาย
    คงเป็นไปไม่ได้ที่จะพิสูจน์ Linux ทั้งหมด แต่ seL4 อาจมีโอกาสในตลาดอย่างสมาร์ตโฟนได้

  • ถ้าดูจาก โรดแมปการตรวจพิสูจน์ ของพวกเขา ก็ยังแรงเกินไปที่จะเรียกว่า “การตรวจพิสูจน์เชิงรูปนัย”
    ไม่มีการพิสูจน์คุณสมบัติหลักของเคอร์เนล และยังไม่ถึงระดับของเคอร์เนลอย่าง seL4 หรือ Tock

  • CuBit เป็นอีก OS ที่เขียนด้วย SPARK/Ada
    ดูซอร์สได้ที่ GitHub

  • สำหรับผู้ใช้ทั่วไป เคอร์เนลอย่างเดียวไม่มีประโยชน์อะไร
    ตัวอย่าง OS ที่ใช้เคอร์เนล Ironclad คือ Gloire

  • เอกสารเกี่ยวกับ MAC จัดทำไว้ดีมาก (Mandatory Access Control)

  • พอดูคำว่า “สอบถามราคา” ของ SPARK แล้ว มันดูเหมือนคำว่า free ในอีกความหมาย มากกว่าจะเป็น ‘ซอฟต์แวร์เสรี’

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