Embedded Linux
Last updated
Last updated
Assoc. Prof. Wiroon Sriborrirux, Founder of Advance Innovation Center (AIC) and Bangsaen Design House (BDH), Electrical Engineering Department, Faculty of Engineering, Burapha University
ระบบปฏิบัติการลีนุกซ์ที่ถูกฝังเข้าไปอยู่ในบอร์ดสมองกลจะถูกเรียกว่า ระบบปฏิบัติการลีนุกซ์แบบฝังตัว (Embedding Linux) ซึ่งเป็นระบบที่ถูกปรับแต่งเคอร์เนลและโปรแกรมระบบให้สามารถทำงานได้บนสถาปัตยกรรมของหน่วยประมวลผลกลางของบอร์ดนั้นๆ ซึ่งเรียกวิธีการนี้เป็นทับศัพท์ภาษาอังกฤษว่าการ “Porting” นอกจากนั้นในปัจจุบันก็มีบริษัทจำนวนมากที่ขายผลิตภัณฑ์ที่มีระบบปฏิบัติการลีนุกซ์แบบฝังตัวอยู่ภายใน และก็ยังมีอีกหลายกลุ่มบริษัทที่ทำธุรกิจเกี่ยวกับการให้บริการแบบองค์รวมทางด้านการพัฒนาระบบปฏิบัติการลีนุกซ์แบบฝังตัว ไม่ว่าจะเป็นลีนุกซ์คอร์เนลที่ถูกปรับแต่งพิเศษ เครื่องมือการคอมไพล์สำหรับสถาปัตยกรรมต่างๆ (Cross-development tools) และ ไลบรารีทางด้านการทำงานแบบเวลาจริง (Real time extensions) เป็นต้น ถือได้ว่าระบบปฎิบัติการลีนุกซ์นั้นเป็นระบบปฏิบัติการที่เหมาะสำหรับการทำงานทางด้านระบบสมองกลฝังตัวมากที่สุด เนื่องจากมีโปรแกรมไลบรารีต่างๆ มีชุดเครื่องมือในการพัฒนาที่ครบถ้วนเพียงพอสำหรับระบบสมองกลฝังตัว
องค์ประกอบที่นักพัฒนาหรือผู้สนใจด้านเทคโนโลยีระบบสมองกลฝังตัวควรทำความเข้าใจดังแสดงในตารางข้างล่าง
ตารางองค์ประกอบสำคัญพื้นฐานในการเตรียมสำหรับบอร์ดสมองกลฝังตัว
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 ได้
โครงสร้างสถาปัตยกรรมของระบบปฏิบัติการลีนุกซ์แบบฝังตัว จะไม่แตกต่างมากเมื่อเทียบกับระบบปฏิบัติการลีนุกซ์ทั่วไป ดังแสดงในรูปข้างล่าง