Google จะเดินหน้าพัฒนานวัตกรรมสำหรับ Android ในเคอร์เนล Linux หลัก

ในการประชุม Linux Plumbers 2021 Google ได้พูดคุยเกี่ยวกับความสำเร็จของความคิดริเริ่มในการเปลี่ยนแพลตฟอร์ม Android ไปใช้เคอร์เนล Linux ปกติแทนที่จะใช้เคอร์เนลเวอร์ชันของตัวเอง ซึ่งรวมถึงการเปลี่ยนแปลงเฉพาะสำหรับแพลตฟอร์ม Android

การเปลี่ยนแปลงที่สำคัญที่สุดในการพัฒนาคือการตัดสินใจที่จะเปลี่ยนมาใช้โมเดล "Upstream First" หลังจากปี 2023 ซึ่งหมายถึงการพัฒนาคุณสมบัติเคอร์เนลใหม่ทั้งหมดที่จำเป็นในแพลตฟอร์ม Android โดยตรงในเคอร์เนล Linux หลัก และไม่ใช่ในสาขาแยกต่างหาก ( ฟังก์ชันการทำงานจะได้รับการเลื่อนระดับเป็นฟังก์ชันหลักก่อน) เคอร์เนลจากนั้นใช้ใน Android และไม่ใช่ในทางกลับกัน) การโอนแพตช์เพิ่มเติมทั้งหมดที่เหลืออยู่ในสาขา Android Common Kernel ไปยังเคอร์เนลหลักก็มีการวางแผนในปี 2023 และ 2024 เช่นกัน

ในอนาคตอันใกล้นี้ สำหรับแพลตฟอร์ม Android 12 ที่คาดไว้ในช่วงต้นเดือนตุลาคม จะมีการนำเสนอชุดเคอร์เนล “Generic Kernel Image” (GKI) ให้ใกล้เคียงกับเคอร์เนล 5.10 ปกติมากที่สุด สำหรับรุ่นเหล่านี้ จะมีการเผยแพร่การอัปเดตเป็นประจำ ซึ่งจะโพสต์ในพื้นที่เก็บข้อมูล ci.android.com ในเคอร์เนล GKI ส่วนเพิ่มเติมเฉพาะแพลตฟอร์ม Android รวมถึงตัวจัดการที่เกี่ยวข้องกับการสนับสนุนฮาร์ดแวร์จาก OEM จะถูกวางไว้ในโมดูลเคอร์เนลที่แยกจากกัน โมดูลเหล่านี้ไม่ได้เชื่อมโยงกับเวอร์ชันของเคอร์เนลหลักและสามารถพัฒนาแยกกันได้ ซึ่งช่วยลดความยุ่งยากในการบำรุงรักษาและการเปลี่ยนอุปกรณ์ไปยังสาขาเคอร์เนลใหม่ได้อย่างมาก

Google จะเดินหน้าพัฒนานวัตกรรมสำหรับ Android ในเคอร์เนล Linux หลัก

อินเทอร์เฟซที่ผู้ผลิตอุปกรณ์ต้องการนั้นถูกนำไปใช้ในรูปแบบของ hooks ซึ่งช่วยให้คุณเปลี่ยนพฤติกรรมของเคอร์เนลได้โดยไม่ต้องทำการเปลี่ยนแปลงโค้ด โดยรวมแล้ว เคอร์เนล android12-5.10 มี hook ปกติ 194 hooks ซึ่งคล้ายกับจุดติดตาม และ hooks เฉพาะ 107 อันที่ให้คุณเรียกใช้ตัวจัดการในบริบทที่ไม่ใช่อะตอมมิก ในเคอร์เนล GKI ผู้ผลิตฮาร์ดแวร์ไม่ได้รับอนุญาตให้ใช้แพตช์เฉพาะกับเคอร์เนลหลัก และส่วนประกอบการสนับสนุนฮาร์ดแวร์จะต้องจัดหาโดยผู้จำหน่ายในรูปแบบของโมดูลเคอร์เนลเพิ่มเติมเท่านั้น ซึ่งจะต้องรับประกันความเข้ากันได้กับเคอร์เนลหลัก

ให้เราระลึกว่าแพลตฟอร์ม Android กำลังพัฒนาสาขาเคอร์เนลของตัวเอง - เคอร์เนลทั่วไปของ Android บนพื้นฐานของการสร้างแอสเซมบลีเฉพาะแยกกันสำหรับแต่ละอุปกรณ์ Android แต่ละสาขามีตัวเลือกมากมายให้กับผู้ผลิตสำหรับเค้าโครงเคอร์เนลสำหรับอุปกรณ์ของตน ตัวอย่างเช่น Android 11 เสนอเคอร์เนลพื้นฐานสามตัวเลือก - 4.14, 4.19 และ 5.4 และ Android 12 เสนอเคอร์เนลพื้นฐาน 4.19, 5.4 และ 5.10 ตัวเลือก 5.10 ได้รับการออกแบบให้เป็นอิมเมจเคอร์เนลทั่วไป ซึ่งความสามารถที่จำเป็นสำหรับ OEM จะถูกถ่ายโอนไปยังอัปสตรีม วางในโมดูล หรือถ่ายโอนไปยังเคอร์เนลทั่วไปของ Android

ก่อนการถือกำเนิดของ GKI เคอร์เนล Android ต้องผ่านการเตรียมการหลายขั้นตอน:

  • ตามเคอร์เนล LTS หลัก (3.18, 4.4, 4.9, 4.14, 4.19, 5.4) สาขาของ "Android Common Kernel" ถูกสร้างขึ้นซึ่งมีการถ่ายโอนแพตช์เฉพาะของ Android (ก่อนหน้านี้ขนาดของการเปลี่ยนแปลงถึงหลายล้านบรรทัด ).
  • จาก "Android Common Kernel" ผู้ผลิตชิปเช่น Qualcomm, Samsung และ MediaTek ได้ก่อตั้ง "SoC Kernel" ซึ่งมีโปรแกรมเสริมเพื่อรองรับฮาร์ดแวร์
  • จาก SoC Kernel ผู้ผลิตอุปกรณ์ได้สร้าง Device Kernel ซึ่งรวมถึงการเปลี่ยนแปลงที่เกี่ยวข้องกับการรองรับอุปกรณ์เพิ่มเติม หน้าจอ กล้อง ระบบเสียง ฯลฯ

วิธีการนี้มีความซับซ้อนอย่างมากในการใช้งานการอัปเดตเพื่อกำจัดช่องโหว่และการเปลี่ยนไปใช้สาขาเคอร์เนลใหม่ แม้ว่า Google จะออกการอัปเดตเคอร์เนล Android เป็นประจำ (เคอร์เนลทั่วไปของ Android) แต่ผู้จำหน่ายมักจะส่งมอบการอัปเดตเหล่านี้ช้าหรือโดยทั่วไปใช้เคอร์เนลเดียวกันตลอดวงจรการใช้งานของอุปกรณ์ทั้งหมด



ที่มา: opennet.ru

เพิ่มความคิดเห็น