ภาพรวมเคอร์เนล

เคอร์เนล Android อิงตามเคอร์เนล Linux ที่มีการรองรับระยะยาว (LTS) Google รวมเคอร์เนล LTS เข้ากับแพตช์สำหรับ Android โดยเฉพาะเพื่อสร้างสิ่งที่เรียกว่าเคอร์เนล Android ทั่วไป (ACK)

ACK เวอร์ชันใหม่ (เวอร์ชัน 5.4 ขึ้นไป) เรียกอีกอย่างว่าเคอร์เนล GKI เคอร์เนล GKI รองรับการแยกรหัสเคอร์เนลหลักทั่วไปที่ไม่เจาะจงฮาร์ดแวร์และโมดูล GKI ออกจากโมดูลของผู้ให้บริการที่เจาะจงฮาร์ดแวร์

เคอร์เนล GKI จะโต้ตอบกับโมดูลของผู้ให้บริการสำหรับฮาร์ดแวร์โดยเฉพาะซึ่งมีระบบวงจรรวมบนชิป (SoC) และโค้ดสำหรับบอร์ดโดยเฉพาะ การโต้ตอบระหว่างเคอร์เนล GKI กับโมดูลของผู้ให้บริการจะทําได้โดยใช้ Kernel Module Interface (KMI) ซึ่งประกอบด้วยรายการสัญลักษณ์ที่ระบุฟังก์ชันและข้อมูลส่วนกลางที่จําเป็นสําหรับโมดูลของผู้ให้บริการ รูปที่ 1 แสดงเคอร์เนล GKI และสถาปัตยกรรมของข้อบังคับของผู้ให้บริการ

สถาปัตยกรรม GKI
รูปที่ 1 สถาปัตยกรรม GKI

อภิธานศัพท์เกี่ยวกับเคอร์เนล

ส่วนนี้มีคำศัพท์ที่ใช้ตลอดทั้งเอกสารประกอบของเคิร์กเนล

ประเภทเคอร์เนล

Android Common Kernel (ACK)
เคอร์เนลที่ดาวน์สตรีมมาจากเคอร์เนล LTS และมีแพตช์ที่ชุมชน Android สนใจซึ่งยังไม่ได้ผสานรวมเข้ากับเมนไลน์ของ Linux หรือเคอร์เนลที่มีการสนับสนุนระยะยาว (LTS) ACK เวอร์ชันใหม่ (เวอร์ชัน 5.4 ขึ้นไป) เรียกอีกอย่างว่าเคอร์เนล GKI เนื่องจากรองรับการแยกโค้ดเคอร์เนลทั่วไปที่ไม่คำนึงถึงฮาร์ดแวร์และโมดูล GKI ที่ไม่คำนึงถึงฮาร์ดแวร์
เคอร์เนลของโครงการโอเพนซอร์ส Android (AOSP)
ดูเคอร์เนลทั่วไปของ Android
เคอร์เนลฟีเจอร์
เคอร์เนลที่รับประกันว่าจะมีการใช้ฟีเจอร์ของรุ่นแพลตฟอร์ม ตัวอย่างเช่น ใน Android 12 เคอร์เนลฟีเจอร์ 2 รายการคือ android12-5.4 และ android12-5.10 ฟีเจอร์ของ Android 12 ไม่สามารถพอร์ตไปยังเคอร์เนล 4.19 ได้ ชุดฟีเจอร์จะคล้ายกับอุปกรณ์ที่เปิดตัวด้วย 4.19 ใน Android 11 และอัปเกรดเป็น Android 12
เคอร์เนลแกนประมวลผลทั่วไป
ส่วนของเคอร์เนล GKI ที่เหมือนกันในทุกอุปกรณ์
เคอร์เนลของ Generic Kernel Image (GKI)
เคอร์เนล ACK เวอร์ชันใหม่กว่า (5.4 ขึ้นไป) (ปัจจุบันมีเฉพาะ aarch64 เท่านั้น) เคอร์เนลนี้มี 2 ส่วน ได้แก่ เคอร์เนล GKI หลักที่มีโค้ดที่ใช้ร่วมกันในอุปกรณ์ทั้งหมดและโมดูล GKI ที่พัฒนาโดย Google ซึ่งสามารถโหลดแบบไดนามิกในอุปกรณ์ได้ (หากมี)
เคอร์เนลของอินเทอร์เฟซโมดูลเคอร์เนล (KMI)
ดูเคอร์เนล GKI
เปิดเคอร์เนล
เคอร์เนลที่ใช้ได้กับการเปิดตัวอุปกรณ์สำหรับแพลตฟอร์ม Android เวอร์ชันหนึ่งๆ ตัวอย่างเช่น ใน Android 12 เคอร์เนลที่ใช้งานได้ในการเปิดตัวคือ 4.19, 5.4 และ 5.10
เคอร์เนลที่รองรับระยะยาว (LTS)
เคอร์เนล Linux ที่รองรับ 2-6 ปี เคอร์เนล LTS จะเผยแพร่ปีละครั้งและเป็นพื้นฐานของ ACK แต่ละรุ่นของ Google

ประเภทสาขา

ACK สาขาเคอร์เนล KMI
สาขาที่ใช้สร้างเคอร์เนล GKI เช่น android12-5.10 และ android13-5.15
Android-mainline
สาขาการพัฒนาหลักสำหรับฟีเจอร์ Android เมื่อมีการประกาศ LTS เคอร์เนลใหม่ในอัปสตรีม ระบบจะแยก เคอร์เนล GKI ใหม่ที่เกี่ยวข้องออกจาก android-mainline
เวอร์ชันหลักของ Linux
สาขาการพัฒนาหลักสำหรับเคอร์เนล Linux เวอร์ชันอัปสตรีม รวมถึงเคอร์เนล LTS

คำศัพท์อื่นๆ

อิมเมจบูทที่ผ่านการรับรอง
เคอร์เนลที่ส่งในรูปแบบไบนารี (boot.img) และแฟลชลงในอุปกรณ์ รูปภาพนี้ได้รับการรับรองในแง่ที่มีใบรับรองที่ฝังอยู่เพื่อให้ Google ยืนยันได้ว่าอุปกรณ์มาพร้อมกับเคอร์เนลที่ Google รับรอง
โมดูลเคอร์เนลที่โหลดแบบไดนามิก (DLKM)
โมดูลที่โหลดแบบไดนามิกได้ในระหว่างการบูตอุปกรณ์ โดยขึ้นอยู่กับความต้องการของอุปกรณ์ ทั้ง GKI และข้อบังคับของผู้ให้บริการเป็น DLKM ทั้ง 2 ประเภท DLKM จะเผยแพร่ในรูปแบบ .ko และอาจเป็นไดรเวอร์หรือสามารถส่งฟังก์ชันการทำงานของเคอร์เนลอื่นๆ
โปรเจ็กต์ GKI
โปรเจ็กต์ของ Google ที่จัดการการแยกตัวของเคอร์เนลโดยแยกฟังก์ชันการทำงานของเคอร์เนลหลักทั่วไปออกจากการรองรับ SoC และบอร์ดที่เจาะจงของผู้ให้บริการเป็นโมดูลที่โหลดได้
อิมเมจเคอร์เนลทั่วไป (GKI)
อิมเมจการบูตที่ผ่านการรับรองจาก Google ซึ่งมีเคอร์เนล GKI ที่สร้างขึ้นจากซอร์สทรี ACK และเหมาะสำหรับแฟลชลงในพาร์ติชันการบูตของอุปกรณ์ Android
KMI
อินเทอร์เฟซระหว่างเคอร์เนล GKI กับโมดูลของผู้ให้บริการ ซึ่งช่วยให้อัปเดตโมดูลของผู้ให้บริการได้โดยไม่ขึ้นอยู่กับเคอร์เนล GKI อินเทอร์เฟซนี้ประกอบด้วยฟังก์ชันเคอร์เนลและข้อมูลส่วนกลางที่ระบุว่าเป็นข้อกำหนดของผู้ให้บริการ/OEM โดยใช้รายการสัญลักษณ์ต่อพาร์ทเนอร์
โมดูล GKI
โมดูลเคอร์เนลที่ Google สร้างขึ้นซึ่งสามารถโหลดแบบไดนามิกในอุปกรณ์ได้ (หากมี) โมดูลเหล่านี้สร้างขึ้นเพื่อเป็นอาร์ติแฟกต์ของเคอร์เนล GKI และส่งพร้อมกับ GKI ในรูปแบบไฟล์ system_dlkm_staging_archive.tar.gz Google ลงนามในโมดูล GKI โดยใช้คู่คีย์เวลาสร้างเคอร์เนล และใช้ได้กับเคอร์เนล GKI ที่สร้างขึ้นเท่านั้น
โมดูลผู้ให้บริการ
โมดูลเฉพาะฮาร์ดแวร์ที่พัฒนาโดยพาร์ทเนอร์และมีฟังก์ชันการทำงานเฉพาะ SoC และอุปกรณ์ โมดูลของผู้ให้บริการคือโมดูลเคอร์เนลที่โหลดแบบไดนามิกได้

สิ่งต่อไปที่ควรทำ

  • หากคุณเพิ่งเริ่มพัฒนาเคอร์เนล Android คุณอาจต้องเริ่มต้นด้วยการอ่านข้อมูลต่อไปนี้
  • หากคุณเพิ่งเริ่มพัฒนาเคอร์เนล GKI ให้เริ่มต้นด้วยการอ่านการพัฒนา GKI