Sự khác biệt giữa Kernel Linux và Kernel Android là gì?


Câu trả lời:


7

Sự khác biệt thay đổi từ phiên bản sang phiên bản (cả Linux và Android) và hạt nhân chính xác là khác nhau cho mỗi thiết bị. Một hạt nhân cho Android là một hạt nhân Linux chính thống, với các trình điều khiển bổ sung cho thiết bị cụ thể và các chức năng bổ sung khác, chẳng hạn như quản lý năng lượng nâng cao hoặc hỗ trợ đồ họa nhanh hơn.

Nhiều tính năng trong nhân Android sau đó được thêm vào Linux ngược dòng sau khi cộng đồng nguồn mở đã chấp nhận (và có lẽ đã sửa đổi) chúng, nhưng các tính năng khác không bao giờ bị ngược dòng, vì chúng không được các nhà phát triển nhân Linux chấp nhận hoặc vì chúng ' chỉ áp dụng cho Android hoặc cho phần cứng cụ thể.


3
Hầu hết các trình điều khiển cho phần cứng cụ thể của Android đã được chấp nhận vào kernel mainline; nhưng một số tính năng, chẳng hạn như khóa thức gây ra một cuộc tranh cãi lớn thời gian trước, vẫn còn có vấn đề vì nhà phát triển nhân chính và android không đồng ý liệu đó có phải là một ý tưởng tốt hay không.
Nói dối Ryan

"Hạt nhân cho Android là hạt nhân Linux chính thống, có trình điều khiển bổ sung cho thiết bị cụ thể và các chức năng bổ sung khác, chẳng hạn như quản lý năng lượng nâng cao hoặc hỗ trợ đồ họa nhanh hơn", vậy chủ yếu là trình điều khiển? Không có mã nguồn thay đổi?
Guerlando OC

@GuerlandoOCs Tôi không chắc bạn nghĩ trình điều khiển là gì nếu không phải là thay đổi mã nguồn, nhưng bất kể, "chức năng bổ sung khác" mà tôi đã đề cập là khá lớn trong những ngày này. Có nhiều thay đổi mã nguồn.
Dan Hulme

@DanHulme là các bản vá thay đổi nguồn hoặc chỉ là mã được thay đổi bằng tay? Làm thế nào tôi có thể thấy những thứ đã thay đổi? Tôi đã đọc rằng bạn có thể vá kernel linux của mình để tương thích với Android, nhưng những bản vá đó ở đâu để tôi có thể đọc chúng?
Guerlando OC

5

Bên cạnh những khác biệt cụ thể về thiết bị và khóa thức mà Dan Hulme và Lie Ryan đề cập, Android đã loại bỏ các tính năng của System V IPC (hàng đợi tin nhắn, phân đoạn bộ nhớ chia sẻ, semaphores) có thể dẫn đến rò rỉ tài nguyên ( http://www.kandroid.org/ndk /docs/system/libc/SYSV-IPC.html ). Đây có lẽ chỉ là vấn đề cấu hình kernel build. Ngoài ra, IPC Android được lựa chọn, được gọi là Binder, có một số hỗ trợ trong kernel mà theo hiểu biết của tôi không được bao gồm trong các nhân Linux tiêu chuẩn.


4

Tôi nghĩ rằng Nguồn Android này là một tài liệu tuyệt vời để hiểu nó.

đây là danh sách các thay đổi được thực hiện từ kernel mainline cho android kernel 4.14.

Các tính năng lớn nhất bao gồm:

  • Lập kế hoạch nhận biết năng lượng 19,8% (kernel / calendar)
  • Mạng 13,8% (mạng / bộ lọc mạng)
  • 13,5% Sdcardfs (fs / sdcardfs)
  • 9,4% USB (trình điều khiển / usb)
  • 7.2% SoC (vòm / arm64, vòm / x86)
  • 6,2% f2fs (fs / f2fs - backport từ thượng nguồn)
  • Đầu vào 6,1% (trình điều khiển / đầu vào / misc)
  • Trình gỡ lỗi 5,4% FIQ (trình điều khiển / dàn / android / fiq_debugger)
  • Trình giả lập cá vàng 3,6% (trình điều khiển / nền tảng / cá vàng)
  • Độ chính xác 3,4% (trình điều khiển / md)
  • 11,6% khác

Sự khác biệt từ LTS

Khi được so sánh với LTS (4.14.0), hạt nhân phổ biến của Android có 355 thay đổi, chèn 32266 và xóa 1546 (tính đến tháng 2 năm 2018).

nhập mô tả hình ảnh ở đây


Tôi không hiểu tại sao mọi người downvote ??? Tôi đã viết câu trả lời, trong vòng 5 giây tôi đã nhận được !! Nice
chankruze

+1 cho câu trả lời của bạn. Drive-by downvoters hút.
iBug

+1. Bạn là tốt nhất trong số những người khác.
Irfan Latif
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.