0
  • 聊天消息
  • 系统消息
  • 评论与回复
登录后你可以
  • 下载海量资料
  • 学习在线课程
  • 观看技术视频
  • 写文章/发帖/加入社区
会员中心
创作中心

完善资料让更多小伙伴认识你,还能领取20积分哦,立即完善>

3天内不再提示

谷歌Android设备内核引入主线Linux内核难吗?

汽车玩家 来源:开源中国 作者:xplanet 2019-11-22 10:41 次阅读

Android是基于Linux内核的操作系统,但是,运行在Android设备上的内核其实与Google选择的LTS版本Linux内核有很大不同。

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

谷歌Android设备内核引入主线Linux内核难吗?

这是一个极其漫长的过程,执行多重fork并处理数百万行代码大大减慢了整个开发速度。因此,Android设备使用的内核相较于Linux内核主线要滞后两到三年的时间。Google于10月份最新发布了Pixel 4,其Linux内核则是2017年11月发布的4.14 LTS版本。并且由于过大的工作量,Android设备通常不获取内核更新,它将永远停留在4.14版本上。

再者,各种设备的内核都不尽相同,一台设备的特定内核无法在其他设备上工作。于是,Google正试图缩小各Android设备内核与主线Linux内核间的差距,让设备内核更接近上游内核主线。

在今年的Linux Plumbers Conference上,Android内核团队负责人Sandeep Patil表示,他们的目标是从根本上找到Android运行所需要的、但不必在给定的硬件上运行的东西,然后将其引入上游并尽可能接近主线。

Google的打算是复制其早期工作Project Treble以模块化Android。Project Treble用于在Android和HAL(硬件抽象层)之间创建稳定的接口。与此类似,Google计划稳定Linux的内核ABI,从而提供一个稳定的写入接口,使硬件供应商可以轻松地插入代码,最终消除特定的设备内核。

谷歌Android设备内核引入主线Linux内核难吗?

Google的高级软件工程师MatthiasMännich展示了一幅预想中的内核体系结构图。”下一代Android设备“内核将由通用内核镜像(Generic Kernel Image,GKI)和多个 GKI 模块构成,特定硬件的驱动程序(可能是闭源驱动)将作为内核模块加载。总之在该设想中,所有东西都被模块化了。

考虑到Android生态系统的技术壁垒和多样性,这应该不是一件容易的事情。无论如何,将Android设备内核引入主线Linux内核肯定会使包括Android用户、手机制造商和Linux社区等在内的不少人受益。不过Google的计划刚刚开始,后续还有更多的工作要完成。

声明:本文内容及配图由入驻作者撰写或者入驻合作网站授权转载。文章观点仅代表作者本人,不代表电子发烧友网立场。文章及其配图仅供工程师学习之用,如有内容侵权或者其他违规问题,请联系本站处理。 举报投诉
  • Android
    +关注

    关注

    12

    文章

    3939

    浏览量

    127601
  • 谷歌
    +关注

    关注

    27

    文章

    6173

    浏览量

    105644
  • Linux
    +关注

    关注

    87

    文章

    11322

    浏览量

    209888
收藏 人收藏

    评论

    相关推荐

    腾讯云内核团队修复Linux关键Bug

    腾讯云操作系统(Tencent OS)内核团队近日在Linux社区取得了显著成果。他们提交的两项改进方案,成功解决了自2021年以来一直困扰众多一线厂商,并在近期让多个Linux顶级
    的头像 发表于 12-31 10:58 211次阅读

    嵌入式学习-飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植之内核简介

    学到本章节,大家应该对Linux操作系统都有了一定的了解,但可能还不知道我们拿到手的内核源码都经历了什么。linux有一个庞大的开源社区,每个人都可以向开源社区提交代码。由于linux
    发表于 12-16 13:08

    飞凌嵌入式ElfBoard ELF 1板卡-Linux内核移植之内核简介

    学到本章节,大家应该对Linux操作系统都有了一定的了解,但可能还不知道我们拿到手的内核源码都经历了什么。linux有一个庞大的开源社区,每个人都可以向开源社区提交代码。由于linux
    发表于 12-13 09:03

    deepin社区亮相第19届中国Linux内核开发者大会

    中国 Linux 内核开发者大会,作为中国 Linux 内核领域最具影响力的峰会之一,一直以来都备受瞩目。
    的头像 发表于 10-29 16:35 534次阅读

    linux内核中通用HID触摸驱动

    linux内核中,为HID触摸面板实现了一个通用的驱动程序,位于/drivers/hid/hid-multitouch.c文件中。hid触摸驱动是以struct hid_driver实现,首先定义一个描述hid触摸驱动的结构mt_driver。
    的头像 发表于 10-29 10:55 796次阅读
    <b class='flag-5'>linux</b><b class='flag-5'>内核</b>中通用HID触摸驱动

    详解linux内核的uevent机制

    linux内核中,uevent机制是一种内核和用户空间通信的机制,用于通知用户空间应用程序各种硬件更改或其他事件,比如插入或移除硬件设备(如USB驱动器或网络接口)。uevent表示
    的头像 发表于 09-29 17:01 802次阅读

    linux驱动程序如何加载进内核

    Linux系统中,驱动程序是内核与硬件设备之间的桥梁。它们允许内核与硬件设备进行通信,从而实现对硬件
    的头像 发表于 08-30 15:02 522次阅读

    Linux内核测试技术

    Linux 内核Linux操作系统的核心部分,负责管理硬件资源和提供系统调用接口。随着 Linux 内核的不断发展和更新,其复杂性和代码规
    的头像 发表于 08-13 13:42 526次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>测试技术

    Linux内核中的页面分配机制

    Linux内核中是如何分配出页面的,如果我们站在CPU的角度去看这个问题,CPU能分配出来的页面是以物理页面为单位的。也就是我们计算机中常讲的分页机制。本文就看下Linux内核是如何管
    的头像 发表于 08-07 15:51 316次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>中的页面分配机制

    欢创播报 华为宣布鸿蒙内核已超越Linux内核

    1 华为宣布鸿蒙内核已超越Linux内核   6月21日,在华为开发者大会上, HarmonyOS NEXT(鸿蒙NEXT)——真正独立于安卓和iOS的鸿蒙操作系统,正式登场。这是HarmonyOS
    的头像 发表于 06-27 11:30 864次阅读

    使用 PREEMPT_RT 在 Ubuntu 中构建实时 Linux 内核

    盟通技术干货构建实时Linux内核简介盟通技术干货Motrotech如果需要在Linux中实现实时计算性能,进而有效地将Linux转变为RTOS,那么大多数发行版都可以打上名为PREE
    的头像 发表于 04-12 08:36 2616次阅读
    使用 PREEMPT_RT 在 Ubuntu 中构建实时 <b class='flag-5'>Linux</b> <b class='flag-5'>内核</b>

    C++在Linux内核开发中从争议到成熟

    Linux 内核邮件列表中一篇已有六年历史的老帖近日再次引发激烈讨论 —— 主题是建议将 Linux 内核的开发语言从 C 转换为更现代的 C++。
    的头像 发表于 01-31 14:11 652次阅读
    C++在<b class='flag-5'>Linux</b><b class='flag-5'>内核</b>开发中从争议到成熟

    Ubuntu 24.04 LTS选用Linux 6.8为默认内核

    关于Ubuntu 24.04 LTS使用何种内核版本,一直备受关注。Canonical工程师Andrea Righi昨日宣布,Ubuntu 24.04将默认搭载Linux 6.8内核
    的头像 发表于 01-29 11:27 1167次阅读

    linux内核主要由哪几个部分组成,作用是什么

    Linux内核主要由以下几个部分组成: 进程管理:Linux内核负责管理和调度系统中的进程。它通过进程调度算法来决定哪个进程在什么时间运行以及如何分配系统资源。 内存管理:
    的头像 发表于 01-22 14:34 2725次阅读

    Linux内核中信号的传递过程

    前面我们已经介绍了内核注意到信号的到来,调用相关函数更新进程描述符以便进程接收处理信号。但是,如果目标进程此时没有运行,内核则推迟传递信号。现在,我们看看内核如何处理进程挂起的信号。
    的头像 发表于 01-17 09:51 1212次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>中信号的传递过程