Tổng quan về kernel

Hạt nhân Android dựa trên một hạt nhân Linux được hỗ trợ dài hạn (LTS) ở 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 Android phổ biến (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ợ việc tách mã hạt nhân cốt lõi chung không phụ thuộc vào phần cứng và mô-đun GKI khỏi mô-đun nhà cung cấp dành riêng cho phần cứng.

Hạt nhân GKI tương tác với các mô-đun nhà cung cấp dành riêng cho phần cứng chứa hệ thống trên chip (SoC) và mã dành riêng cho bo mạch. Hoạt động 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ằng Giao diện mô-đun hạt 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 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 hạt nhân GKI và cấu trúc mô-đun của nhà cung cấp:

Cấu trúc GKI
Hình 1. Cấu trúc GKI

Bảng thuật ngữ về hạt nhân

Phần này chứa các thuật ngữ được sử dụng trong toàn bộ tài liệu về nhân.

Loại nhân

Hạt nhân chung Android (ACK)
Là một hạt nhân nằm ở hạ nguồn của hạt nhân LTS và bao gồm các bản vá mà cộng đồng Android quan tâm nhưng chưa được hợp nhất vào dòng chính của Linux hoặc các hạt nhân đượ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à nhân GKI vì các ACK này hỗ trợ việc tách biệt mã Nhân hệ điều hành chung không phụ thuộc vào phần cứng và các mô-đun GKI không phụ thuộc vào phần cứng.
Hạt nhân Dự án nguồn mở Android (AOSP)
Xem Hạt nhân chung của Android.
Hạt nhân tính năng
Lõi đảm bảo triển khai các tính năng phát hành nền tảng. Ví dụ: trong Android 12, hai hạt nhân tính năng là android12-5.4 và android12-5.10. Không thể điều chỉnh các tính năng của Android 12 cho phiên bản cũ của nhân 4.19; bộ tính năng sẽ tương tự như một thiết bị ra mắt với nhân 4.19 trên Android 11 và được nâng cấp lên Android 12.
nhân lõi chung
Phần hạt nhân GKI phổ biến trên tất cả thiết bị.
Hạt nhân Hình ảnh hạt nhân chung (GKI)
Mọi hạt nhân ACK mới hơn (5.4 trở lên) (hiện chỉ có aarch64). Hạt nhân này có hai phần: Hạt nhân GKI cốt lõi với mã chung trên tất cả thiết bị và các mô-đun GKI do Google phát triển có thể được tải động trên các thiết bị nếu có.
Nhân Giao diện mô-đun nhân (KMI)
Xem hạt nhân GKI.
Khởi chạy Kernel
Hạt nhân hợp lệ để khởi chạy thiết bị cho một bản phát hành nền tảng Android nhất định. Ví dụ: trong Android 12, các 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 Linux được hỗ trợ trong 2 đến 6 năm. Hạt nhân LTS được phát hành một lần mỗi năm và là cơ sở cho từng ACK của Google.

Loại nhánh

Nhánh nhân KMI ACK
Nhánh mà hạt nhân GKI được tạo. Ví dụ: android12-5.10 và android13-5.15.
Android-mainline
Nhánh phát triển chính cho các tính năng của Android. Khi một hạt nhân LTS mới được khai báo ở thượng nguồn, hạt nhân GKI mới tương ứng sẽ được phân nhánh từ android-mainline.
Nhánh chính của Linux
Nhánh phát triển chính cho các nhân Linux ngược dòng, bao gồm cả nhân LTS.

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

Hình ảnh khởi động được chứng nhận
Nhân hệ điều hành được phân phối ở dạng tệp nhị phân (boot.img) và được cài đặt ROM vào thiết bị. Hình ảnh này được chứng nhận ở chỗ 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 hạt nhân do Google chứng nhận.
Mô-đun hạt nhân có thể tải động (DLKM)
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à 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 hạt nhân khác.
Dự án GKI
Một dự án của Google giải quyết tình trạng phân mảnh hạt nhân bằng cách tách chức năng hạt nhân cốt lõi phổ biến khỏi chức năng hỗ trợ bảng mạch và SoC 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ừ mộ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 thiết bị Android.
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 cập nhật các mô-đun của nhà cung cấp độc lập với hạt nhân GKI. Giao diện này bao gồm các hàm hạt nhân và dữ liệu toàn cục đã đượ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 ký hiệu theo từng đối tác.
Mô-đun GKI
Các mô-đun hạt nhân 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 hạt nhân GKI và được phân phối cùng với GKI dưới dạng tệp 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 hạt nhân và chỉ tương thích với hạt nhân GKI mà các mô-đun đó được tạo.
Mô-đun nhà cung cấp
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 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.

Tiếp theo là gì?

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