Tổng quan về hạt nhân

Nhân Android dựa trên nhân Linux được hỗ trợ dài hạn (LTS) ở nguồn thượng nguồn. Tại Google, các nhân LTS được kết hợp với các bản vá dành riêng cho Android để tạo thành Nhân chung Android (ACK).

ACK được tạo từ kho lưu trữ kernel/common. Kho lưu trữ này là một tập hợp con của hạt nhân Linux nguồn, có thêm các bản vá dành riêng cho Android.

ACK từ 5.10 trở lên còn được gọi là hạt nhân *hình ảnh hạt nhân chung (GKI). Các nhân GKI hỗ trợ việc tách mã nhân chung không phụ thuộc vào phần cứng và các mô-đun GKI khỏi các mô-đun dành riêng cho phần cứng của nhà cung cấp.

Tương tác giữa nhân GKI và các mô-đun của nhà cung cấp được thực hiện thông qua Giao diện mô-đun nhân (KMI) bao gồm các danh sách biểu tượng xác định các hàm và dữ liệu chung mà các mô-đun của nhà cung cấp yêu cầu. Hình 1 cho thấy kiến trúc mô-đun nhà cung cấp và nhân GKI:

Kiến trúc mô-đun nhà cung cấp và nhân GKI.

Hình 1. Kiến trúc mô-đun nhà cung cấp và nhân GKI.

Bảng thuật ngữ về kernel

Sau đây là các thuật ngữ được dùng trong tài liệu về nhân.

Các loại hạt nhân

Nhân chung Android (ACK)
Một nhân hạ nguồn của nhân LTS và bao gồm các bản vá quan trọng đối với cộng đồng Android. Các bản vá này chưa được hợp nhất vào nhân Linux mainline hoặc nhân GKI dài hạn.

Nhân có phiên bản từ 5.10 trở lên còn được gọi là nhân Hình ảnh nhân chung (GKI).

Nhân Dự án nguồn mở Android (AOSP)
Xem Nhân chung của Android.

Không thể điều chỉnh các tính năng của Android 12 cho phiên bản cũ để dùng trên nhân 4.19; bộ tính năng này sẽ tương tự như một thiết bị chạy nhân 4.19 trên Android 11 và nâng cấp lên Android 12.

Nhân Hình ảnh chung của nhân (GKI)

Mọi nhân ACK từ 5.10 trở lên(chỉ aarch64). Nhân GKI có 2 phần sau:

  • Nhân chung – Phần nhân GKI dùng chung cho tất cả các thiết bị.

  • Các mô-đun GKI – Các mô-đun kernel do Google tạo và có thể được tải linh hoạt trên các thiết bị (nếu có). Các mô-đun này được tạo dưới dạng cấu phần phần mềm của nhân GKI và được phân phối cùng với GKI dưới dạng kho lưu trữ system_dlkm_staging_archive.tar.gz. Các mô-đun GKI được Google ký bằng cặp khoá thời gian tạo bản dựng của nhân và chỉ tương thích với nhân GKI mà chúng được tạo.

Nhân Giao diện mô-đun nhân (KMI)

Xem phần Nhân GKI.

Nhân được hỗ trợ dài hạn (LTS)

Nhân Linux được hỗ trợ từ 2 đến 6 năm. Nhân LTS được phát hành mỗi năm một lần và là cơ sở cho từng Nhân chung Android của Google.

Các loại nhánh

Nhánh hạt nhân KMI ACK
Nhánh mà nhân GKI được tạo. Tên nhánh tương ứng với các phiên bản kernel, chẳng hạn như android15-6.6.
Android-mainline
Nhánh phát triển chính cho các tính năng của Android. Khi một nhân LTS mới được khai báo ở nguồn thượng nguồn, nhân GKI tương ứng sẽ được phân nhánh từ android-mainline.

Linux mainline (Linux chính thống): Nhánh phát triển chính cho các hạt nhân Linux nguồn mở, bao gồm cả các hạt nhân LTS.

Các điều khoản khác

Hình ảnh khởi động được chứng nhận
Nhân được phân phối ở dạng nhị phân (boot.img) và được cài đặt vào thiết bị. Hình ảnh này được coi là đã đượ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ị được vận chuyển cùng với một nhân được Google chứng nhận.
Mô-đun kernel có thể tải linh hoạt (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à các mô-đun của nhà cung cấp đều là các loại DLKM. DLKM được phát hành ở dạng .ko và có thể là trình điều khiển hoặc có thể cung cấp chức năng khác của nhân.
Dự án GKI
Một dự án của Google nhằm giải quyết tình trạng phân mảnh kernel bằng cách tách chức năng kernel cốt lõi chung khỏi SoC và hỗ trợ bảng dành riêng cho nhà cung cấp 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, chứa hạt nhân GKI được tạo từ cây nguồn ACK và phù hợp để cài đặt vào phân vùng khởi động của thiết bị chạy Android.

Giao diện mô-đun nhân (KMI)
Một giao diện giữa nhân GKI và các mô-đun của nhà cung cấp, cho phép các mô-đun của nhà cung cấp được cập nhật độc lập với nhân GKI. Giao diện này bao gồm các hàm nhân và dữ liệu chung đã được xác định là các 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 nhà cung cấp
Một mô-đun dành riêng cho phần cứng do đối tác phát triển và chứa SoC cũng như chức năng dành riêng cho thiết bị. Mô-đun nhà cung cấp là một loại mô-đun hạt nhân có thể tải động.

Các bước tiếp theo

Nếu bạn mới làm quen với hoạt động phát triển nhân Android, hãy bắt đầu bằng cách đọc những nội dung sau:

Nếu bạn mới làm quen với việc phát triển nhân GKI, hãy bắt đầu bằng cách đọc bài viết Phát triển GKI.