เคอร์เนลเสาหินเป็นเคอร์เนลที่ให้บริการทั้งหมด (ระบบไฟล์ VFS ไดรเวอร์อุปกรณ์ ฯลฯ ) รวมถึงฟังก์ชั่นหลัก (การตั้งเวลาการจัดสรรหน่วยความจำและอื่น ๆ ) เป็นกลุ่มถักแน่นที่ใช้พื้นที่เดียวกัน ตรงข้ามกับmicrokernelโดยตรง
microkernel ชอบวิธีการที่ฟังก์ชันหลักถูกแยกออกจากบริการระบบและไดรเวอร์อุปกรณ์ (ซึ่งโดยทั่วไปเป็นเพียงบริการระบบ) ตัวอย่างเช่น VFS (ระบบไฟล์เสมือน) และระบบไฟล์ของอุปกรณ์บล็อก (เช่น minixfs) เป็นกระบวนการแยกต่างหากที่ทำงานนอกพื้นที่ของเคอร์เนลโดยใช้ IPC เพื่อสื่อสารกับเคอร์เนลบริการอื่น ๆ และกระบวนการผู้ใช้ กล่าวโดยย่อถ้าเป็นโมดูลใน Linux ก็เป็นบริการใน microkernel ซึ่งระบุกระบวนการแยก
อย่าสับสนระหว่างเคอร์เนลโมดูลาร์ให้เป็นอะไรก็ได้ยกเว้นเสาหิน เมล็ดที่มีขนาดใหญ่บางตัวสามารถรวบรวมเป็นโมดูลได้ (เช่น Linux) สิ่งที่สำคัญคือโมดูลจะถูกแทรกและเรียกใช้จากพื้นที่เดียวกันที่รองรับการทำงานหลัก (พื้นที่เคอร์เนล)
ข้อดีของ microkernel คือบริการใด ๆ ที่ล้มเหลวสามารถเริ่มต้นใหม่ได้อย่างง่ายดายตัวอย่างเช่นไม่มีเคอร์เนลหยุดหากระบบไฟล์รูทส่งการยกเลิก สิ่งนี้ยังถูกมองว่าเป็นข้อเสียเพราะมันสามารถซ่อนข้อบกพร่องที่สำคัญได้ (หรือทำให้พวกมันดูไม่สำคัญนักเพราะปัญหาดูเหมือนจะแก้ไขตัวเองอย่างต่อเนื่อง) มันถูกมองว่าเป็นข้อได้เปรียบที่ยิ่งใหญ่ในสถานการณ์ที่คุณไม่สามารถแก้ไขบางอย่างได้อย่างสะดวกสบายเมื่อมีการปรับใช้
เสียเปรียบ microkernel การให้คือการที่ไม่ตรงกันส่งข้อความ IPC จะเป็นเรื่องยากมากที่จะแก้ปัญหาโดยเฉพาะอย่างยิ่งถ้าซ่านจะดำเนินการ นอกจากนี้การติดตามปัญหา FS / write หมายถึงการตรวจสอบกระบวนการพื้นที่ผู้ใช้บริการอุปกรณ์บล็อกบริการ VFS บริการระบบไฟล์และบริการ PCI (อาจ) หากคุณได้รับที่ว่างในเวลาที่จะดูบริการ IPC ซึ่งมักจะง่ายกว่าในเคอร์เนลเสาหิน GNU Hurdประสบปัญหาการแก้ไขข้อบกพร่อง ( อ้างอิง ) ฉันจะไม่เข้าสู่จุดตรวจเมื่อต้องรับมือกับคิวข้อความที่ซับซ้อน Microkernels ไม่ได้มีไว้สำหรับลมใจ
เส้นทางที่สั้นที่สุดในการทำงานของเคอร์เนลที่เสถียรคือวิธีการแบบเสาหิน วิธีใดวิธีหนึ่งสามารถเสนออินเตอร์เฟส POSIX ซึ่งการออกแบบเคอร์เนลกลายเป็นที่สนใจของใครบางคนเพียงแค่ต้องการเขียนโค้ดเพื่อรันบนการออกแบบใด ๆ ก็ตาม
ฉันใช้ Linux (เสาหิน) ในการผลิต แต่ส่วนใหญ่ของการเรียนรู้ของฉันแฮ็กหรือ tinkering กับการพัฒนาเคอร์เนลจะเข้าสู่ microkernel เฉพาะHelenOS
แก้ไข
หากคุณได้คำตอบที่ยืดยาวของฉันคุณอาจจะสนุกกับการอ่านการอภิปราย ' Torvalds-Tanenbaum ที่ยอดเยี่ยมเกี่ยวกับการออกแบบเคอร์เนล ' แม้จะสนุกกว่าที่จะอ่านในปี 2013 มากกว่า 20 ปีหลังจากที่มันปรากฏขึ้น ส่วนที่สนุกที่สุดคือลายเซ็นของ Linus ในหนึ่งในข้อความสุดท้าย:
Linus "my first, and hopefully last flamefest" Torvalds
เห็นได้ชัดว่านั่นไม่เป็นความจริงเลยนอกจากคำทำนายของ Tanenbaum ว่า x86 จะล้าสมัยในไม่ช้า
หมายเหตุ:
เมื่อฉันพูดว่า "Minix" ฉันไม่ได้หมายถึง Minix 3 นอกจากนี้เมื่อฉันพูดถึง The HURD ฉันกำลังอ้างอิง (ส่วนใหญ่) Mach microkernel Mach ฉันไม่ได้ตั้งใจจะดูถูกงานล่าสุดของผู้อื่น