因此,谷歌试图缩小Android设备内核与主线Linux内核之间的差距,让设备内核更接近上游内核的主线。无论如何,将Android设备内核引入主线Linux内核,肯定会让很多人受益,包括Android用户、手机厂商和Linux社区。

谷歌系统升级,安卓将采用Linux内核,满足手机高性能需求,你怎么看?

首先作为一个前资深的 Android 程序员,一定要纠正一下这个问题,不是谷歌系统升级,安卓将采用 Linux 内核。不是将。而是 Android 一直就是采用的 Linux 内核。安卓Android本身就是一种基于 Linux 的自由及开放源代码的操作系统。系统内核Android 是运行于 Linux kernel 之上,但并不是 GNU/Linux。

因为在一般 GNU/Linux 里支持的功能,Android 大都没有支持,包括 CairoX11AlsaFFmpegGTKPango 及 Glibc 等都被移除掉了。Android 又以 Bionic 取代 Glibc以 Skia 取代 Cairo再以 opencore 取代 FFmpeg 等等。

Android 为了达到商业应用,必须移除被 GNU GPL 授权证所约束的部份,例如 Android 将驱动程序移到 Userspace,使得 Linux driver 与 Linux kernel 彻底分开。Bionic/Libc/Kernel/ 并非标准的 Kernel header files。

Android 的 Kernel header 是利用工具由 Linux Kernel header 所产生的,这样做是为了保留常数数据结构与宏。Android 的 Linux kernel 控制包括安全Security,存储器管理Memory Management,程序管理Process Management,网络堆栈Network Stack, 驱动程序模型Driver Model等。

下载 Android 源码之前,先要安装其构建工具 Repo 来初始化源码。Repo 是 Android 用来辅助 Git 工作的一个工具。通过上述我们就可以看出 Android 就是运行在 Linux Kernel 之上的,基于授权版权等原因,它只不过是没有 GNU/Linux 功能那么全面。为什么会出现这个问题?Android 是基于 Linux 内核的操作系统,但是,运行在 Android 设备上的内核其实与 Google 选择的 LTS 版本 Linux 内核有很大不同。

在到达每一台 Android 设备前,内核会经历三个阶段的 forkGoogle 会先选择某个 LTS长期支持版本的 Linux 内核,打上 Android 操作系统的特定补丁,使其成为 Android 通用内核紧接着,通用内核被交付给高通等 SoC 供应商,打上硬件补丁最后,SoC 内核再被移交至设备制造商,打上设备特定的各类元件补丁,这也就构成到每台设备中的设备内核。

这是一个及其漫长的过程,执行多重 fork 并处理数百万行代码大大减慢了整个开发速度。因此,Android 设备使用的内核相较于 Linux 内核主线要滞后两到三年的时间。Google 于 10 月份最新发布了 Pixel 4,其 Linux 内核则是 2017 年 11 月发布的 4.14 LTS 版本。

而且由于工作量过大,Android设备通常得不到内核更新,会一直停留在4.14版本。再者,各种设备的核心是不一样的,一个设备的特定核心无法在其他设备上工作。因此,谷歌试图缩小Android设备内核与主线Linux内核之间的差距,让设备内核更接近上游内核的主线。在今年的Linux水管工大会上,Android内核团队负责人Sandeep Patil表示,他们的目标是从根本上找到Android需要运行但不必在给定硬件上运行的东西,然后在上游引入,并尽可能靠近主线。


文章TAG:哪个手机内核最好  手机  内核  高性能  需求  
下一篇