was successfully added to your cart.

[วิเคราะห์] Linux kernel 3.7 และสิ่งที่เปลี่ยนไปสำหรับระบบ Embedded system กับ ARM platform multiple support

By December 12, 2012Uncategorized

ในปัจจุบันการใช้งานระบบปฎิบัติการ Linux ดิสโทรต่างๆ เช่น Ubuntu, Debain, Suse, fedora เป็นต้นจะประกอบไปด้วยแกนกลางควบคุมการทำงานเรียกว่า Linux kernel วันนี้เราจะมาทำความรู้จักกับ Linux kernel 3.7 และฟีเจอร์ที่ส่งผลต่อวงการ Embedded System อย่างมากในโพรเซสการพัฒนา Linux kernel ที่เรียกว่า ARM platform multiple support

<img class="aligncenter" alt="" src="http://3 click here for info.bp.blogspot.com/-y2Xt40M4FYI/UH79_KzmacI/AAAAAAAABsE/Ci8DBv8sgT4/s1600/1.jpg” width=”468″ height=”279″ />

ARM platform multiple support คืออะไรโดนปกติเวลาเราโหลดระบบปฎิบัติการ Linux ดิสโทรต่างๆมาใช้ติดตั้งบนคอมพิวเตอร์สถาปัตยกรรม x86 ซึ่งก็คือคอมพิวเตอร์ปกติของเรา ไม่ว่าจะเป็น INTEL core2duo, i5, i7, AMD ในเมนบอร์ดที่ต่างกันและฮาร์ดแวร์ที่ต่างกันเช่น chipset, ram, GPU เราจะพบว่าเราสามารถติดตั้งในเครื่องคอมพิวเตอร์ต่างๆได้เลยจากไฟล์เดียวกันเนื่องจาก kernel สามารถรู้ข้อมูลนั้นจากการถามฮาร์ดแวร์และ boot ได้ แต่สถานการณ์แบบนั้นไม่สามารถทำได้กับ CPU ตระกูล ARM เช่นเวลาติดตั้งระหว่าง ARM Cortex-A8 หรือ Cortex-A9 จะไม่สามารถใช้ไฟล์เดียวกันได้

แล้วโพรเซสปกติของ ARM ละทั่วไปติดตั้งกันอย่างไร ?

โดยปกติ kernel บน ARM จะใช้วิธีการสร้าง Board support file เช่น mini2440 ก็จะมีไฟล์ของตัวเอง, pandaboard, beaglebone หรือแม้แต่สมาร์ทโฟนรุ่นใหม่ๆ ที่จำเป็นต้องสร้าง Board support file ขึ้นมาให้กับฮาร์ดแวร์นั้นๆ โดยจะใช้ภาษา C ในการสร้าง
แล้ว Board support file ที่ว่ามันจะต้องประกอบไปด้วยอะไรบ้างละมันถึงจะทำงานได้

–  ให้คำจำกัดความของ system-specific และ setup code ต่างๆ ให้ครบถ้วน

– กำหนดรายละเอียดของฮาร์ดแวร์ที่ต่อพ่วงเช่น GPIO, UART, I2C, ETHERNET, LCD ว่าอยู่ที่ขาไหนของ SOC

– สร้างชุดคำสั่งจำเพาะ CPU นั้นๆ โดยส่วนนี้จะถูกส่งจาก boot loader ไปที่ kernel โดยจะเป็นตัวเลขต่างๆ จะเป็นการสร้างรายละเอียดชุดคำสั่งของฮาร์ดแวร์สำหรับ kernel ในการ boot

โดยปกติในปัจจุบันก็เป็นไปได้ที่จะสร้าง kernel เพียงไฟล์เดียวที่จะทำงานได้ในหลายๆ ฮาร์ดแวร์จากผู้ผลิตเดียวกัน ใน platform เดียวกันแต่ยังเป็นไปไม่ได้สำหรับการใช้ kernel ตัวเดียวกันเพื่อข้ามระหว่าง platform

แล้ว kernel 3.7 ละมันเกิดมาเพื่อแก้ปัญหาตรงนี้ โดยการเพิ่มระบบ ARM multiple support เข้าไปช่วยให้สามารถใช้ kernel เดียวกันทำงานระหว่าง platform ได้ ถึงตอนนี้จะยังมีปัญหาและข้อจำกัดอยู่เช่นการซัพพอร์ต legacy CPU แต่ก็เป็นการเริ่มต้นที่ดีสำหรับการสร้าง kernel ในยุคสมัยใหม่

แล้วผลกระทบต่อวงการ Embedded system ละ

– อย่างแรกเกิดข้อดีแน่นอน เรื่องที่ดิสโทรต่างๆ จะสามารถซัพพอร์ต ARM CPU ต่างๆ โดยผู้ใช้โหลด Image ตัวเดียวกันแล้วลงบน ARM เครื่องไหนก็ได้
– นักพัฒนา Embedded system จะสะดวกมากขึ้นในการควบคุม image ไฟล์เมื่อมีการอัพเกรดฮาร์ดแวร์โดยเปลี่ยนแค่ CPU และการอัพเดตเฟริมแวร์ทำได้ง่ายขึ้น
– สมาร์ทโฟนอาจจะออกซอฟแวร์เร็วขึ้นเช่น Android เนื่องจาก kernel ใช้เวลาในการทำน้อยลอง

Leave a Reply

*