iOS Kernel Panic! ทำไมถึงเกิด แล้วเกิดจากอะไร

November 23, 2012 12:03 pm Apple, Jailbreak, Linux

Host by img.kusumoto.co

ในรูป เป็น iPhone 4 แน่นอนครับ เพราะใช้ CPU A4 สังเกตจาก Code ARM_S5L8930X ส่วน iOS นั้น เป็นเวอร์ชัน 6.0 (Build 10A403) สังเกตุจาก iBoot ซึ่งเป็น Bootloader ของ iPhone จะเป็น iBoot-1537.4.18 (ขอขอบคุณรูปจาก Wtf’s Mabiko นะครับ)

หลายๆคน คงสงสัยว่า “ทำไมผมต้องเขียนเรื่อง Kernal Panic ทั้งๆที่หลายคนรู้อยู่แล้ว” ตอบตรงนี้เลยนะครับ “เพราะว่าไม่ค่อยเจอปัญหานี้บน iOS ไงหล่ะครับ” เราจะมาไล่อธิบายตั้งแต่ต้นจนจบเลยหล่ะกันครับ

มาทำความรู้จัก Kernel กัน

Kernel เป็นส่วนประกอบสำคัญบนระบบปฎิบัตืิการ Unix ครับ เป็นหัวใจสำคัญในการขับเคลื่อนระบบปฏิบัติการ เป็นสื่อกลางในการพูดคุยกันระหว่าง Hardware และ Software ทำให้ระบบขับเคลื่อนไปได้อย่างราบรื่นครับ

แล้วเกี่ยวอะไรกับ iOS

iOS เป็นระบบปฏิบัติการที่พัฒนาต่อยอดมาจากระบบปฏิบัติการ Unix ซึ่งแน่นอนว่า แกนหลักของระบบปฏิบัติการจะเหมือนกับ Unix แน่นอนครับ

แล้ว Kernel Panic บน iOS เกินขึ้นได้อย่างไร

Kernel Panic เกิดขึ้นได้ทุกเวลาวครับ เกิดได้หลายสาเหตุ ส่วนหนึ่งอาจจะเกิดจากการประมวลผลผิดพลาดของ OS หรือเกิดความผิดพลาดของ Hardware ไม่ว่าจะเป็นที่ Kernel สื่อสารกับ Hardware แล้วไม่ได้ผลที่ต้องการ ทำให้ระบบ Break การทำงานเอาไว้ หรือว่า Hardware ไม่ตอบสนองการสั่งงานจาก OS ผ่าน Kernal ทำให้ต้อง Break การทำงานเอาไว้ แล้วแสดงผลความผิดพลาดออกมา นั่นก็คือ “Kernel Panic” นั่นเอง

สำหรับส่วนของ iOS นั้นเป็นระบบปฏิบัติการปิด! ซึ่งออกแบบมาเป็นระบบเฉพาะของ iPhone iPad iPod เท่านั้น และไม่เปิดโอกาสที่จะให้ผู้ใช้งาน เข้าถึงแกนหลัก (Root) ของระบบปฏิบัติการได้ (ยกเว้นผ่านการ Jailbreak) การเกิด Kernel Panic บน iOS นั้นเป็นไปได้ยาก (แต่ไม่ได้หมายความว่าเป็นไปไม่ได้เลย) เพราะว่า การทำงานระหว่างอุปกรณ์กับระบบปฏิบัติการ อาจจะทำให้เกิดปัญหาขึ้้นมาบ้าง การสื่อสารที่เกิดความผิดพลาด อาจจะเกิดได้บ้าง (แต่ไม่บ่อย) หรือมี Application บางตัว พยายามเข้าถึง Kernel และ iBoots (Jailbreak Tools) แต่ทำได้ไม่สมบูรณ์ จะเกิด Kernal Panic ขึ้นครับ

ปัญหา Kernel Panic นี้้ จะตอบโจทย์เรื่องของ Jailbreak Tools ได้ด้วย เพราะว่าการทำ Jailbraek tools เป็นการเข้าไปแก้ไข Kernel ของระบบปฏิบัติการ หากทำได้ไม่สมบูรณ์ หรือไม่นิ่งพอ จะทำให้เกิดความผิดพลาดระหว่างการทำงาน (Kernel Panic และอื่นๆ) ได้ครับ ทำให้ไม่มีการปล่อยออกมา

บทความนี้ คงตอบหลายๆคำถาม หลายๆคนได้เยอะพอสมควรนะครับ ไปหล่ะ :p