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

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

ACK được xây dựng từ kho lưu trữ kernel/common. Kho lưu trữ này là một tập hợp con của kernel Linux ở nguồn gốc, 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à kernel *hình ảnh kernel chung (GKI)*. Kernel GKI hỗ trợ việc tách mã kernel cốt lõi chung không phụ thuộc vào phần cứng và các mô-đun GKI khỏi các mô-đun của nhà cung cấp dành riêng cho phần cứng.

Tương tác giữa kernel GKI và các mô-đun của nhà cung cấp được bật bằng Giao diện mô-đun kernel (KMI) bao gồm các danh sách ký hiệu xác định các hàm và dữ liệu toàn cục 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 kernel GKI và mô-đun của nhà cung cấp:

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

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

Bảng chú giải kernel

Sau đây là các thuật ngữ được sử dụng trong tài liệu về kernel.

Các loại kernel

Kernel chung cho Android (ACK)
Một kernel ở hạ nguồn của kernel 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 dòng chính của Linux hoặc các kernel GKI Hỗ trợ dài hạn.

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

Kernel Dự án nguồn mở Android (AOSP)
Xem Kernel chung cho Android.

Bạn không thể điều chỉnh các tính năng của Android 12 cho các kernel 4.19; tập hợp tính năng sẽ tương tự như một thiết bị chạy Android 11 với kernel 4.19 và nâng cấp lên Android 12.

Kernel Hình ảnh kernel chung (GKI)

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

  • Kernel chung – Phần kernel GKI chung cho tất cả thiết bị.

  • Mô-đun GKI – Các mô-đun kernel do Google tạo có thể được tải động 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 kernel 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 kernel và chỉ tương thích với kernel GKI mà chúng được tạo.

Kernel Giao diện mô-đun kernel (KMI)

Xem kernel GKI.

Kernel Hỗ trợ dài hạn (LTS)

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

Các loại nhánh

Nhánh kernel KMI ACK
Nhánh mà các kernel GKI được tạo. Tên nhánh tương ứng với 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 kernel LTS mới được khai báo ở nguồn gốc, kernel GKI mới tương ứng sẽ được phân nhánh từ android-mainline.

Dòng chính của Linux : Nhánh phát triển chính cho các kernel Linux ở nguồn gốc, bao gồm cả các kernel LTS.

Điều khoản khác

Hình ảnh khởi động được chứng nhận
Kernel đượ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ì chứa các chứng chỉ được nhúng để Google có thể xác minh rằng thiết bị được vận chuyển với một kernel do Google chứng nhận.
Mô-đun kernel có thể tải độ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ị. Cả mô-đun GKI và 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 kernel khác.
Dự án GKI
Một dự án của Google giải quyết vấn đề phân mảnh nhân hệ điều hành bằng cách tách chức năng nhân hệ điều hành cốt lõi chung khỏi SoC dành riêng cho nhà cung cấp và hỗ trợ bo mạch thành các mô-đun có thể tải.

Hình ảnh kernel chung (GKI) : Một hình ảnh khởi động được Google chứng nhận, chứa một kernel 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 kernel (KMI)
Một giao diện giữa kernel 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 kernel GKI. Giao diện này bao gồm các hàm kernel và dữ liệu toàn cục đã đượ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 ký hiệu cho mỗi đối tác.
Mô-đun của 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 chức năng dành riêng cho SoC và thiết bị. Mô-đun của nhà cung cấp là một loại mô-đun kernel có thể tải động.

Các bước tiếp theo

Nếu bạn mới làm quen với việc phát triển kernel 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 kernel GKI, hãy bắt đầu bằng cách đọc bài viết Phát triển GKI.