百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

Android 支持主线 Linux 内核指日可待?

ahcoder 2025-02-19 10:44 36 浏览

整理 | 郭芮

作为当前市场上唯一能与 iOS 抗衡的移动操作系统,基于 Linux 开发的 Android 系统重要性不言而喻。但是为了使其更加适应智能手机的需求,华为、三星以及谷歌自己等 OEM 厂商,乃至高通和联发科等芯片厂商,其实都在 Android 系统的底层方面进行了大量的修改。这也就不可避免地带来了系统安全性、维护性等诸多问题,从而备受开发者吐槽。

为什么 Android 设备总是运行古老的内核?

如果你对手机有一定的了解,那么你肯定知道谷歌的 Android 系统是基于 Linux 内核的操作系统,但是,运行在 Android 设备上的内核其实与 Google 选择的 LTS 版本 Linux 内核有很大不同。

通常来说,Android 设备使用的内核会经历三次 fork:

首先是 Google 选择一个 LTS 版本,将其转变成 Android Common 内核——即打上了 Android OS 特有的补丁;

Android Common 随后提供给 SoC 供应商如高通,经历第二次 fork,打上高通硬件补丁变成 SoC 内核;

该内核之后提供给设备制造商经历第三次 fork ,打上支持设备不同元件的内核补丁变成设备内核,这个内核才是最后随手机提供给客户的。

在去年的 Linux Plumbers 大会上,谷歌工程师 Sandeep Patil 也曾就这个问题详细介绍过。他表示:

Android 内核起初是一个来自主线的长期稳定(LTS)版本,这些版本结合 Android 核心的专有代码构成了 Android 公共内核版本。供应商选择一个公共内核,然后添加更多的树外代码,从而创建一个特定于片上系统(SoC)的内核,并提供给设备制造商。

最终,这些 SoC 内核中的其中一个被冻结,可能加入了另外一些树外代码,作为一个特定设备模型的内核。现在,只需要几周就可以把一个 LTS 版本合并到 Android 公共内核中,但它仍然需要几年才能成为设备内核。

这就是为什么 Android 设备总是运行古老的内核。

以 Google 10 月份最新发布的旗舰手机 Pixel 4 为例,其使用的是 Linux kernel 4.14 LTS,这个版本是在 2017 年 11 月发布的,而且在可预见的未来,该型号的手机会一直停留在 4.14——总之,Android 内核的开发和管理方式从一开始就消除了使用 Linux 带来的许多优势:内核更新缓慢,大量树外代码的使用使得要合并新的稳定更新变得极为困难。

为减少这样的代码、提升系统的安全性,同时也为了更方便地维护系统,谷歌已经投入了大量的资源,并试图缩小各 Android 设备内核与主线 Linux 内核间的差距,让设备内核更接近上游内核主线。

模块化的未来?

在今年的 Linux Plumbers Conference 大会上,谷歌工程师在公司如何使 Android 系统底层更加接近主流 Linux 内核方面做了演讲。

其表示,具体方法是模块化:谷歌计划稳定 Linux 的内核 ABI,Android 内核将由 Generic Kernel Image (GKI) 和多个 GKI 模块构成,以模块化方式加载所需的硬件驱动或其它补丁,从而提供一个稳定的写入接口,使硬件供应商可以轻松地插入代码,最终消除特定的设备内核。

总之在该设想中,所有东西都将被模块化。

随着 Linux 内核的演变,目前的 Linux 内核与以往相比更加适合在移动设备当中使用,因此谷歌已经不需要对目前主流的系统内核进行很大的改动。谷歌表示,计划的第一步是将在 Android 内核方面的修改更多地回归到主流 Linux 内核上。截至 2018 年 2 月,与 Linux 4.14.0 内核相比,Android 通用内核插入了 32000 行代码,并且删除了 1500 多行代码。与几年前 60000 行代码的插入量相比,谷歌已经大幅度减少了对内核代码的修改程度。

此外,根据谷歌的计划,目前处于开发阶段的 Fuchsia 系统将在未来代替目前主流的 Android 系统。这款采用自定义内核的系统,可以更好地消除与 Linux 系统有关的技术障碍。对于芯片制造商与 OEM 商场的修改,谷歌将驱动程序和应用程序与 Android 内核区分开,从而保持系统内核的纯净度——其 2017 年推出的 Project Treble 项目也是谷歌计划的一部分。

这也意味着,虽然在 Android 设备上运行主线内核的梦想还没有实现,但谷歌的动作可能会让这一天来得比想象中更快。

写在最后

无论如何,将 Android 设备内核引入主线 Linux 内核肯定会是大势所趋的未来,包括 Android 用户、手机制造商和 Linux 社区等在内的不少人都将受益。在引导 Android 内核尽可能接近主线的路上,谷歌也一直在努力。但是考虑到 Android 生态系统的技术壁垒和多样性,这应该不是一件容易的事情。

不过谷歌的计划刚刚开始,后续的工作就留待继续完成了。

参考链接:

https://arstechnica.com/gadgets/2019/11/google-outlines-plans-for-mainline-linux-kernel-support-in-android/

https://www.solidot.org/story?sid=62680

https://blog.csdn.net/weixin_33725270/article/details/89167718

【End】

相关推荐

Linux ntp时钟同步问题(linux ntp同步命令)

有时候,操作系统会报linux的ntp时钟错误。从时钟源同步时间超时。我查看了一下ntp的时钟源,发现执行ntpq-p显示超时。执行nslookup时钟服务器域名,发现可以正常解析。执行了n...

linux服务器同步利器Rsync全介绍(付脚本)

1、认识Rsync(remotesynchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远程两个主机之间的文件...

如何使用Rsync同步两个网站服务器的内容

本头条号每天坚持更新原创干货技术文章,欢迎关注本头条号"Linux学习教程",公众号名称“Linux入门学习教程"。如需学习视频,请复制以下信息到手机浏览器或电脑浏览器上:zc...

Linux TB级小文件同步备份解决方案

在某些电子档案存储的业务系统下,按照业务场景要求,需要将产生的所有电子影像资料永久存储,并支持备份;因为“钞能力”等原因,一般备份存储只有一个节点(即:一个备份存储服务器);这样就要求研发工程师,不...

CentOS7下使用Lsyncd实现文件实时同步

Lsyncd简单介绍Lsyncd使用文件系统事件接口(inotify或fsevents)来监视本地文件和目录的更改。Lsyncd在几秒钟内将这些文件事件整理核对后,然后生成一个或多个进程以将更...

如何手动同步Linux系统时间并与互联网时间保持同步?

在Linux系统中,正确的时间同步对于许多任务都是至关重要的。一些关键应用程序可能需要准确的时间戳才能正常工作,而一些安全功能也需要确保所有服务器的时间都是准确的。NTP服务可以自动同步系统时间和互...

Linux服务器Rsync定时同步一键化配置指南

1、主从服务器同时安装rsyncopenssh-clientaptupdate&&aptinstall-yrsyncopenssh-client2、主服务器安装好后输入以下命令生成密钥...

Linux系统如何使用NTPDATE命令设置时间同步

简介:咱们在使用Linux系统的时候,常常能发现用了一阵子之后,Linux系统的时间就对不上了。已经知道的情况是,安装Linux的时候选的时区是Asia/Shanghai,可这系统运行了一...

开源的Linux文件同步工具有哪些?(linux 文件夹 同步)

Linux系统之间经常需要文件同步,一个好的文件同步工具省时省力,这里介绍几款开源的Linux文件同步工具1.rsync:rsync是Linux上一个功能强大的命令行工具,可以在不同的服务器之间同...

Linux 系统使用 rsync + inotify 实现文件实时同步

Linux系统使用rsync+inotify实现文件实时同步简介inotify监控文件的变化后通知rsync进行文件的同步#配置免密登录ssh-keygen-trsaca...

Linux 远程数据同步工具详解(linux远程同步命令)

一、简介1认识Rsync(remotesynchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件。Rsync使用所谓的“Rsync算法”来使本地和远程两个主机之...

构建基于 Linux 的 NTP 时间同步集群与时间安全防护实战指南

一、为什么时间同步对系统如此重要?在分布式系统、数据库复制、消息队列、审计日志、安全认证(如Kerberos)、容器编排等场景中,系统时间一致性是保障正确性与安全性的基础。一旦服务器间时间漂移,可能...

每日Linux学习:同步备份工具 rsync

rsync是一个用于高效同步文件和目录的工具。它通过仅传输变化的部分(增量传输)来节省时间和带宽,支持本地同步、远程同步(通过SSH),还能保留文件原有权限、时间戳等属性。本文通过几个常用的实例来...

Chromixium OS 1.0发布 基于Ubuntu发行版

Chromixium项目宣布chromixiumOS1发布,一款基于Ubuntu的Linux分支,chromixiumOS试图重新打造一款外观和感觉与ChromeOS相似的完...

iOS8.0.X~iOS8.1完美越狱!盘古团队出品

【巴士速递·移动情报站】最新消息,iOS8.1越狱了!!此次越狱依旧是iOS7时代我国的大神盘古团队带来的,而该次越狱支持最新的iPhone6、iPhone6Plus、iPadAir2和iPad...