Tag Archives: Raspberry Pi

การศึกษาลินุกซ์เคอร์เนล ด้วย Raspberry Pi: ลินุกซ์เคอร์เนลโมดูล

การแบ่งชนิดของเคอร์เนล โมโนลิทิก เคอร์เนล (Monolithic kernel) เป็นเคอร์เนลที่รวมการทำงานทุกส่วนไว้ด้วยกันทั้งหมด ทำให้การทำงานร่วมกันระหว่างส่วนต่างๆรวดเร็ว เพราะไม่มีโอเวอร์เฮดของการสื่อสารระหว่างส่วนต่างๆในข้อมูลที่ส่งให้กัน ทำให้การประมวลผลเร็ว แต่มีข้อเสียหลักคือเมื่อเคอร์เนลล่มจะทำให้ระบบทั้งหมดจะหยุดการทำงานทันที ไมโครเคอร์เนล (Microkernel) เป็นเคอร์เนลที่แบ่งการทำงานในแต่ละส่วนออกจากกัน (อาจจะอยู่กันคนละเครื่อง) เช่น ส่วนของการสื่อสาร ส่วนของอุปกรณ์ ส่วนจัดการหน่วยความจำ และอื่นๆ ในทางแนวคิด ไมโครเคอร์เนลมีความเสถียรสูงเนื่องจากแบ่งการทำงานทุกส่วนออกจากกัน แต่ละส่วนจะมีความสามารถในการอยู่ได้ด้วยตัวเอง และสามารถทำงานสนับสนุนหรือทดแทนกันได้ เมื่อส่วนใดมีปัญหา ทำให้ไม่มีผลกระทบต่อกัน ข้อเสียคือไม่สามารถดึงประสิทธิภาพของระบบออกมาได้เต็มที่ เนื่องจากซีพียูต้องจัดการเรื่องโอเวอร์เฮดของการส่งข้อมูลหากันระหว่างส่วนต่างๆ ด้วย ลินุกซ์เป็นระบบปฏิบัติการแบบโมโนลิทิก เคอร์เนล (Monolithic kernel) คือรวมการทำงานทุกส่วนอยู่ในไบนารี่เดียวกัน แต่รองรับการทำงานแบบโมดูลในการปรับเปลี่ยน/เพิ่มเติม ความสามารถในขณะทำงานได้

การศึกษาลินุกซ์เคอร์เนล ด้วย Raspberry Pi: ทำความรู้จักกับ device tree

Device Tree คืออะไร คนที่เคยเล่น Raspbian OS image คงเคยเห็นไฟล์ .dtb ที่อยู่บน sd card และต้องใช้คู่กับลีนุกซ์เคอร์เนลใน ขั้นตอนการบูตระบบ แต่อาจจะยังไม่รู้ว่ามันคืออะไร ไฟล์ .dtb นี้คือ Device Tree Blob (DTB) หรือ Flattened Device Tree (FDT) ใช้สำหรับการระบุรายละเอียดของฮาร์ดแวร์ของบอร์ดใหักับลินุกซ์เคอร์เนลในช่วงการบูต บน wikipedia อธิบายแบบไม่ยาวมากไว้ว่า “The device tree is a data structure for describing hardware, which originated from Open Firmware. The data structure can hold any kind of data… Read More »