Nhân hệ điều hành Android dựa trên một phiên bản ngược dòng (upstream) Hạt nhân Linux hỗ trợ dài hạn (LTS). Tại Google, LTS nhân hệ điều hành được kết hợp với bản vá dành riêng cho Android để tạo thành cái được gọi là Hạt nhân phổ biến trên Android (ACK).
Các ACK mới hơn (phiên bản 5.4 trở lên) còn được gọi là hạt nhân GKI. Hạt nhân GKI hỗ trợ phân tách mã nhân cốt lõi chung không phụ thuộc vào phần cứng và các mô-đun GKI trong dành riêng cho phần cứng mô-đun nhà cung cấp.
Hạt nhân GKI tương tác với mô-đun nhà cung cấp dành riêng cho phần cứng có chứa hệ thống trên một chip (SoC) và mã dành riêng cho bo mạch. Sự tương tác giữa hạt nhân GKI và các mô-đun của nhà cung cấp được bật bởi Giao diện mô-đun Kernel (KMI) bao gồm các danh sách biểu tượng xác định và dữ liệu toàn cục theo yêu cầu của mô-đun nhà cung cấp. Hình 1 thể hiện hạt nhân GKI và nhà cung cấp cấu trúc mô-đun:
Bảng chú giải thuật ngữ hạt nhân
Phần này bao gồm các thuật ngữ được sử dụng xuyên suốt tài liệu về kernel.
Loại hạt nhân
- Hạt nhân phổ biến trên Android (ACK)
- Một hạt nhân ở hạ nguồn của hạt nhân LTS và chứa các bản vá mà Android quan tâm chưa được hợp nhất vào nhân hệ điều hành dòng chính của Linux hoặc nhân hệ điều hành được hỗ trợ dài hạn (LTS). Các ACK mới hơn (phiên bản 5.4 trở lên) còn được gọi là hạt nhân GKI vì chúng hỗ trợ tách riêng Mã hạt nhân chung và các mô-đun GKI độc lập về phần cứng.
- Nhân của Dự án nguồn mở Android (AOSP)
- Xem Hạt nhân phổ biến của Android.
- Hạt nhân tính năng
- Một nhân hệ điều hành mà các tính năng phát hành trên nền tảng được đảm bảo sẽ được triển khai. Cho ví dụ: trong Android 12, hai nhân tính năng là android12-5.4 và android12-5.10. Các tính năng của Android 12 không thể được điều chỉnh cho phiên bản cũ là 4.19 nhân; bộ tính năng sẽ tương tự thành một thiết bị chạy Android 4.19 và được nâng cấp lên Android 12.
- nhân cơ bản lõi chung
- Phần của hạt nhân GKI phổ biến trên tất cả các thiết bị.
- Hạt nhân Hình ảnh hạt nhân chung (GKI)
- Bất kỳ phiên bản nào mới hơn (5.4 trở lên) hạt nhân ACK (hiện chỉ dành cho aarch64). Chiến dịch này nhân hệ điều hành có hai phần: Nhân GKI cốt lõi với mã dùng chung trên tất cả thiết bị và các mô-đun GKI do Google phát triển và có thể tự động tải lên các thiết bị (nếu có).
- Hạt nhân Giao diện mô-đun hạt nhân (KMI)
- Hãy xem hạt nhân GKI.
- Khởi chạy hạt nhân
- Một hạt nhân hợp lệ để chạy một thiết bị trong một bản phát hành cụ thể trên nền tảng Android. Cho ví dụ: trong Android 12, hạt nhân khởi chạy hợp lệ là 4.19, 5.4 và 5.10.
- Hạt nhân được hỗ trợ dài hạn (LTS)
- Một nhân hệ điều hành Linux được hỗ trợ trong 2 đến 6 năm. LTS (hỗ trợ dài hạn) kernel được phát hành một lần mỗi năm và là cơ sở cho mỗi ACK của Google.
Loại chi nhánh
- Nhánh nhân ACK KMI
- Nhánh mà hạt nhân GKI được tạo. Ví dụ: android12-5.10 và android13-5.15.
- Dòng chính của Android
- Nhánh phát triển chính cho các tính năng của Android. Khi LTS mới nhân hệ điều hành được khai báo ngược dòng, thì hạt nhân GKI mới tương ứng là được phân nhánh từ android-mainline.
- Đường dây chính của Linux
- Nhánh phát triển chính cho nhân hệ điều hành Linux ngược dòng, bao gồm cả nhân LTS.
Điều khoản khác
- Hình ảnh khởi động được chứng nhận
- Hạt nhân được phân phối ở dạng nhị phân (
boot.img
) và cài đặt ROM trên thiết bị. Hình ảnh này được chứng nhận vì có chứa các chứng chỉ nhúng nên Google có thể xác minh rằng thiết bị đi kèm với một nhân hệ điều hành được Google chứng nhận. - Mô-đun nhân hệ điều hành có thể tải một cách linh động (DLKM)
- Một mô-đun có thể được tải động trong quá trình khởi động thiết bị, tuỳ thuộc vào nhu cầu của
thiết bị. GKI và mô-đun nhà cung cấp đều là hai loại DLKM. DLKM được phát hành ở
.ko
và có thể là trình điều khiển hoặc có thể cung cấp chức năng hạt nhân khác. - Dự án GKI
- Một dự án của Google giải quyết vấn đề phân mảnh hạt nhân bằng cách tách nhân hệ điều hành lõi chung từ hệ thống SoC dành riêng cho nhà cung cấp và khả năng hỗ trợ bo mạch thành các mô-đun có thể tải.
- Hình ảnh hạt nhân chung (GKI)
- Hình ảnh khởi động được Google chứng nhận có chứa hạt nhân GKI được tạo từ cây nguồn ACK và phù hợp để cài đặt ROM vào phân vùng khởi động của một thiết bị Android.
- Từ khóa phủ định (KMI)
- Giao diện giữa hạt nhân GKI và các mô-đun của nhà cung cấp cho phép nhà cung cấp các mô-đun được cập nhật độc lập với nhân GKI. Giao diện này bao gồm nhân các hàm và dữ liệu chung đã được xác định là phần phụ thuộc của nhà cung cấp/OEM bằng cách sử dụng danh sách biểu tượng cho mỗi đối tác.
- Mô-đun GKI
- Các mô-đun kernel do Google xây dựng có thể tải linh động trên các thiết bị (nếu có).
Các mô-đun này được xây dựng dưới dạng cấu phần phần mềm của hạt nhân GKI và được phân phối
cùng với GKI trong vai trò kho lưu trữ
system_dlkm_staging_archive.tar.gz
. Mô-đun GKI được Google ký bằng cặp khoá thời gian xây dựng nhân và chỉ tương thích với GKI nhân hệ điều hành mà chúng được xây dựng. - Mô-đun nhà cung cấp
- Một mô-đun dành riêng cho phần cứng do một đối tác phát triển, có chứa SoC cũng như mô-đun dành riêng cho thiết bị của Google. Mô-đun nhà cung cấp là một loại mô-đun nhân hệ điều hành có thể tải linh động.
Tiếp theo là gì?
- Nếu mới làm quen với việc phát triển nhân hệ điều hành Android, bạn có thể bắt đầu bằng cách đọc hướng dẫn sau:
- Hạt nhân ổn định dài hạn – Thông tin cơ bản về các hạt nhân LTS ngược dòng (upstream) chuyển dữ liệu vào ACK.
- Hạt nhân phổ biến trên Android – Thông tin cơ bản về ACK.
- Nếu bạn chưa quen với việc phát triển hạt nhân GKI, hãy bắt đầu bằng cách đọc Phát triển GKI.
- Nếu bạn đang sử dụng phiên bản kernel từ 4.19 trở xuống và đang tìm tài liệu liên quan, hãy tham khảo phần Trước phần tổng quan về hạt nhân (<=4.19).