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

เคอร์เนล Android ขึ้นอยู่กับเคอร์เนล Linux Long Term Supported (LTS) อัปสตรีม ที่ Google เคอร์เนล LTS จะรวมกับแพตช์เฉพาะของ Android เพื่อสร้างสิ่งที่เรียกว่า Android Common Kernels (ACKs)

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

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

อภิธานศัพท์เคอร์เนล

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

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

เคอร์เนลสามัญของ Android (ACK)
เคอร์เนลที่ดาวน์สตรีมของเคอร์เนล LTS และรวมถึงแพตช์ที่น่าสนใจสำหรับชุมชน Android ที่ยังไม่ได้รวมเข้ากับเคอร์เนล Linux mainline หรือ Long Term Supported (LTS) ACKs ที่ใหม่กว่า (เวอร์ชัน 5.4 ขึ้นไป) เรียกอีกอย่างว่าเคอร์เนล GKI เนื่องจากรองรับการแยกรหัสเคอร์เนลทั่วไปที่ไม่เชื่อเรื่องฮาร์ดแวร์ของฮาร์ดแวร์และโมดูล GKI ที่ไม่เชื่อเรื่องฮาร์ดแวร์ของฮาร์ดแวร์
เคอร์เนล Android Open Source Project (AOSP)
ดู เคอร์เนลทั่วไปของ Android
คุณลักษณะเคอร์เนล
เคอร์เนลที่รับประกันว่าจะมีการนำคุณลักษณะการเผยแพร่แพลตฟอร์มไปใช้ ตัวอย่างเช่น ใน Android 12 เคอร์เนลคุณลักษณะสองรายการคือ android12-5.4 และ android12-5.10 ฟีเจอร์ของ Android 12 ไม่สามารถแบ็คพอร์ตไปยังเคอร์เนล 4.19 ได้ ชุดคุณสมบัติจะคล้ายกับอุปกรณ์ที่เปิดตัวด้วย 4.19 บน R และอัปเกรดเป็น S)
เคอร์เนลหลักทั่วไป
ส่วนของ เคอร์เนล GKI ที่ใช้ร่วมกันในทุกอุปกรณ์
เคอร์เนลรูปภาพเคอร์เนลทั่วไป (GKI)
เคอร์เนล ACK ที่ใหม่กว่า (5.4 ขึ้นไป) (ปัจจุบันคือ aarch64 เท่านั้น) เคอร์เนลนี้มีสองส่วน: เคอร์เนล 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
ลินุกซ์เมนไลน์
สาขาการพัฒนาหลักสำหรับเคอร์เนลลินุกซ์อัปสตรีม รวมถึงเคอร์เนล LTS

ข้อกำหนดอื่น ๆ

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

อะไรต่อไป?

  • หากคุณยังใหม่ต่อการพัฒนาเคอร์เนลของ Android คุณอาจต้องการเริ่มต้นด้วยการอ่านข้อความต่อไปนี้:
  • หากคุณยังใหม่กับการพัฒนาเคอร์เนล GKI ให้เริ่มต้นด้วยการอ่าน การพัฒนา GKI
  • หากคุณกำลังใช้เคอร์เนลเวอร์ชัน 4.19 หรือเก่ากว่า และกำลังมองหาเอกสารที่เกี่ยวข้อง โปรดดูส่วน ภาพรวมของเคอร์เนลก่อนหน้า (<=4.19)