Embedded Linux
ระบบปฏิบัติการลีนุกซ์ที่ถูกฝังเข้าไปอยู่ในบอร์ดสมองกลจะถูกเรียกว่า ระบบปฏิบัติการลีนุกซ์แบบฝังตัว (Embedding Linux) ซึ่งเป็นระบบที่ถูกปรับแต่งเคอร์เนลและโปรแกรมระบบให้สามารถทำงานได้บนสถาปัตยกรรมของหน่วยประมวลผลกลางของบอร์ดนั้นๆ ซึ่งเรียกวิธีการนี้เป็นทับศัพท์ภาษาอังกฤษว่าการ “Porting” นอกจากนั้นในปัจจุบันก็มีบริษัทจำนวนมากที่ขายผลิตภัณฑ์ที่มีระบบปฏิบัติการลีนุกซ์แบบฝังตัวอยู่ภายใน และก็ยังมีอีกหลายกลุ่มบริษัทที่ทำธุรกิจเกี่ยวกับการให้บริการแบบองค์รวมทางด้านการพัฒนาระบบปฏิบัติการลีนุกซ์แบบฝังตัว ไม่ว่าจะเป็นลีนุกซ์คอร์เนลที่ถูกปรับแต่งพิเศษ เครื่องมือการคอมไพล์สำหรับสถาปัตยกรรมต่างๆ (Cross-development tools) และ ไลบรารีทางด้านการทำงานแบบเวลาจริง (Real time extensions) เป็นต้น ถือได้ว่าระบบปฎิบัติการลีนุกซ์นั้นเป็นระบบปฏิบัติการที่เหมาะสำหรับการทำงานทางด้านระบบสมองกลฝังตัวมากที่สุด เนื่องจากมีโปรแกรมไลบรารีต่างๆ มีชุดเครื่องมือในการพัฒนาที่ครบถ้วนเพียงพอสำหรับระบบสมองกลฝังตัว
องค์ประกอบการเตรียมสภาพแวดล้อมสำหรับ Embedded Linux
องค์ประกอบที่นักพัฒนาหรือผู้สนใจด้านเทคโนโลยีระบบสมองกลฝังตัวควรทำความเข้าใจดังแสดงในตารางข้างล่าง
ตารางองค์ประกอบสำคัญพื้นฐานในการเตรียมสำหรับบอร์ดสมองกลฝังตัว
BSP (Board Support Package)
ภายในบรรจุตัว bootloader และ Kernel ที่รองรับและเข้ากันได้กับรุ่นของฮาร์ดแวร์ที่ใช้ในบอร์ดสมองกลฝังตัวที่เลือกใช้
Cross Toolchains
เครื่องมือพัฒนาที่สามารถแปลงรหัสเพื่อให้ทำงานข้ามแพลตฟอร์มได้
Third-party components
ไลบรารีต่างๆ และโปรแกรมพิเศษจากนักพัฒนาภายนอก ซึ่งอาจจะมีลิขสิทธิ์การใช้งาน เช่น GPLv3, Apache, MIT เป็นต้น
Hardware และ Accessories
- เครื่อง Host คือ เครื่องคอมพิวเตอร์ที่ติดตั้งระบบปฏิบัติการลีนุกซ์ สำหรับปรับแต่งลีนุกซ์คอร์เนลและคอมไพล์โปรแกรมต่างๆสำหรับบอร์ด target
- เครื่อง Target คือ บอร์ดสมองกลฝังตัว เช่น Beagleboard, Versatile Express, Pandaboard, ODROID, FriendlyARM เป็นต้น
- สาย Cable ต่างๆ เช่น LAN Cable, Serial Cable, USB-to-Serial เป็นต้น
- MMC/SD Card
สำหรับขั้นตอนสำคัญของการพัฒนาระบบสมองกลฝังตัวนั้น สามารถแบ่งออกได้เป็น 4 ส่วนหลักคือ
เนื่องจากบอร์ดสมองกลฝังตัวจำเป็นต้องมี bootloader ที่มีการตั้งค่าเกี่ยวกับตำแหน่งของ Kernel Image, root file system และค่าพารามิเตอร์ที่จำเป็น เพื่อให้บอร์ดสามารถบูทเข้าสู่ระบบปฏิบัติการลีนุกซ์แบบฝังตัวได้สมบูรณ์แบบ ซึ่งถ้าบอร์ดเชื่อมต่ออยู่กับ Ethernet LAN ก็สามารถเข้าสู่ระบบผ่าน telnet หรือ ssh เข้าไปได้ แต่อย่างไรก็ตามในระหว่างการพัฒนาควรใช้ serial console เพื่อใช้สำรองการเชื่อมต่อในกรณีไม่สามารถต่อ LAN ได้
เนื่องจากบอร์ดสมองกลฝังตัวส่วนใหญ่ถึงแม้จะมีประสิทธิภาพสูงแต่ก็ไม่สามารถใช้คอมไพล์ Kernel ได้ด้วยข้อจำกัดของทรัพยากรภายใน เช่น หน่วยความจำ พลังงานที่จำกัด ดังนั้นงานเหล่านี้ทั้งหมดจะทำอยู่บนเครื่อง Host ก่อนจะ Porting เข้าบอร์ดสมองกลฝังตัว
ภายใน root file system จะบรรจุโปรแกรมของระบบและโปรแกรมสำหรับผู้ใช้ที่สามารถทำงานกับเคอร์เนลและสถาปัตยกรรมนั้นๆได้ ถ้าปราศจาก root file system แล้วจะเกิดเหตุการณ์แสดงข้อความดังนี้ “Kernel panic” และหยุดทำงานในที่สุด ซึ่งตำแหน่งการวาง root file system นั้นมีอยู่อย่างน้อย 2 แบบคือเก็บไว้ใน Flash Storage เช่น MMC, SDCard และเก็บไว้ในระบบเครือข่ายเช่น NFS
เนื่องจากบอร์ดสมองกลฝังตัวไม่สามารถคอมไพล์ Kernel ด้วยตัวเองได้ จึงจำเป็นต้องทำอยู่บนเครื่อง Host ไม่ว่าจะเป็นการคอมไพล์โปรแกรมด้วยเครื่องมือในการคอมไพล์ที่เรียกกันว่า Cross Toolchain หรือการดีบักโปรแกรมที่กำลังทำงานบนบอร์ดสมองกลฝังตัวด้วย gdb เป็นต้น
โครงสร้างสถาปัตยกรรมของระบบปฏิบัติการลีนุกซ์แบบฝังตัว จะไม่แตกต่างมากเมื่อเทียบกับระบบปฏิบัติการลีนุกซ์ทั่วไป ดังแสดงในรูปข้างล่าง

Last updated
Was this helpful?