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

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

ACKs สร้างขึ้นจากที่เก็บ kernel/common ที่เก็บนี้เป็นซูเปอร์เซ็ตของเคอร์เนล Linux ต้นน้ำ โดยมีแพตช์เพิ่มเติมที่เฉพาะเจาะจงกับ Android

ACKs เวอร์ชัน 5.10 ขึ้นไปเรียกอีกอย่างว่าเคอร์เนล *Generic Kernel Images (GKI) เคอร์เนล GKI รองรับการแยกโค้ด generic core kernel ที่ไม่ขึ้นกับฮาร์ดแวร์และ โมดูล GKI ออกจาก โมดูลของผู้ให้บริการที่เฉพาะเจาะจงกับฮาร์ดแวร์

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

สถาปัตยกรรมเคอร์เนล GKI และโมดูลของผู้ให้บริการ

รูปที่ 1 สถาปัตยกรรมเคอร์เนล GKI และโมดูลของผู้ให้บริการ

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

ต่อไปนี้เป็นคำที่ใช้ในเอกสารประกอบของเคอร์เนล

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

Android Common Kernel (ACK)
เคอร์เนลที่อยู่ปลายน้ำของเคอร์เนล LTS และมีแพตช์ที่สำคัญต่อชุมชน Android แพตช์เหล่านี้ยังไม่ได้ผสานรวมเข้ากับเคอร์เนลหลักของ Linux หรือเคอร์เนล GKI ระยะยาว

เคอร์เนลเวอร์ชัน 5.10 ขึ้นไปเรียกอีกอย่างว่า เคอร์เนล Generic Kernel Image (GKI)

เคอร์เนลโครงการโอเพนซอร์ส Android (AOSP)
ดู Android Common Kernel

เราไม่สามารถย้อนกลับฟีเจอร์ของ Android 12 ไปยังเคอร์เนล 4.19 ได้ ชุดฟีเจอร์จะคล้ายกับอุปกรณ์ที่เปิดตัวด้วย 4.19 ใน Android 11 และอัปเกรดเป็น Android 12

เคอร์เนล Generic Kernel Image (GKI)

เคอร์เนล ACK เวอร์ชัน 5.10 ขึ้นไป(aarch64 เท่านั้น) เคอร์เนล GKI มี 2 ส่วน ได้แก่

  • เคอร์เนลทั่วไป - ส่วนของเคอร์เนล GKI ที่ใช้ร่วมกันในอุปกรณ์ทั้งหมด

  • โมดูล GKI - โมดูลเคอร์เนลที่ Google สร้างขึ้นและโหลดแบบไดนามิก ในอุปกรณ์ได้เมื่อเหมาะสม โมดูลเหล่านี้สร้างขึ้นเป็นอาร์ติแฟกต์ของเคอร์เนล GKI และจัดส่งพร้อมกับ GKI เป็นอาร์ไคฟ์ system_dlkm_staging_archive.tar.gz โมดูล GKI ได้รับการลงนามโดย Google โดยใช้คู่คีย์เวลาบิลด์เคอร์เนล และใช้ได้กับเคอร์เนล GKI ที่สร้างขึ้นด้วยเท่านั้น

เคอร์เนล Kernel Module Interface (KMI)

ดูเคอร์เนล GKI

เคอร์เนล Long Term Supported (LTS)

เคอร์เนล Linux ที่ได้รับการสนับสนุนเป็นเวลา 2-6 ปี เคอร์เนล LTS จะ เผยแพร่ปีละครั้งและเป็นพื้นฐานของ เคอร์เนล Android Common Kernel แต่ละรายการของ Google

ประเภทสาขา

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

Linux mainline :สาขาการพัฒนาหลักสำหรับเคอร์เนล Linux ต้นน้ำ รวมถึงเคอร์เนล LTS

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

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

Generic Kernel Image (GKI) :อิมเมจบูตที่ Google รับรอง ซึ่งมีเคอร์เนล GKIที่สร้างขึ้นจาก ซอร์สทรีACKและเหมาะที่จะแฟลชลงในพาร์ติชันบูต ของอุปกรณ์ที่ใช้ Android

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

ขั้นตอนถัดไป

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

หากคุณเพิ่งเริ่มต้นพัฒนาเคอร์เนล GKI โปรดเริ่มต้นด้วยการอ่าน การพัฒนา GKI