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

    文章

    4035

    浏览量

    134529
  • 谷歌
    +关注

    关注

    27

    文章

    6259

    浏览量

    111992
  • Linux
    +关注

    关注

    88

    文章

    11821

    浏览量

    219594
收藏 人收藏
加入交流群
微信小助手二维码

扫码添加小助手

加入工程师交流群

    评论

    相关推荐
    热点推荐

    如何理解Linux内核中的PCIe驱动

    我们习惯了用 Verilog 去死磕 PCIe 的底层协议状态机。但一旦越过硬件边界来到操作系统层面,Linux 内核是如何接管并驱动这些 PCI/PCIe 设备的呢?由于不同的 CPU 架构实现了
    的头像 发表于 04-11 17:22 1275次阅读

    Linux内核驱动开发的技术核心精要

    嵌入式Linux驱动开发是连接硬件与操作系统的关键环节。随着内核演进(如Linux 6.13)和硬件复杂度提升,开发者需掌握并发控制、中断分层、内存管理、设备树、调试工具等核心知识。本
    发表于 03-10 13:56

    进迭时空 Upstream | K3 获得 Linux 7.0 内核原生支持

    款符合RVA23规范的RISC-V量产芯片,成功获得Linux内核主线原生支持。01.战略先行:对标一流,确立“Pre-siliconUpstream”目标早在K
    的头像 发表于 02-27 18:10 1.2w次阅读
    进迭时空 Upstream | K3 获得 <b class='flag-5'>Linux</b> 7.0 <b class='flag-5'>内核</b>原生支持

    深入理解设备树chosen节点:固件与内核的“配置桥梁”

    在嵌入式 Linux 开发中,设备树(Device Tree)是连接硬件与内核的关键纽带。但有一个节点很特殊 —— 它不描述任何硬件模块,却直接决定内核能否正常启动,这就是chosen
    的头像 发表于 02-09 16:36 306次阅读
    深入理解<b class='flag-5'>设备</b>树chosen节点:固件与<b class='flag-5'>内核</b>的“配置桥梁”

    Linux 6.8 内核 - 错误:找不到 cmdline 扁平化设备树怎么解决?

    我正在尝试一个新的 6.8 linux 内核,但我在启动时收到这个错误: 从0x44000000到0x40200000的移动图像,end=41724000 错误:未找到 cmdline 扁平化设备
    发表于 02-09 07:13

    Linux内核的“心跳”:jiffies如何为系统计时?

    Linux 内核的世界里,有一个默默工作的 "计时器"——jiffies。它不像我们手机上的时钟那样显示年月日,却掌控着内核中绝大多数时间相关的操作:从进程调度到设备驱动的定时检查
    的头像 发表于 02-04 16:27 942次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>的“心跳”:jiffies如何为系统计时?

    深入RK3588内核:rockchip_linux_defconfig的作用与调试价值

    在 RK3588 芯片的 Linux 开发中,有一个文件始终是开发者绕不开的核心 ——kernel/arch/arm64/configs/rockchip_linux_defconfig。无论是首次
    的头像 发表于 02-03 15:56 1386次阅读
    深入RK3588<b class='flag-5'>内核</b>:rockchip_<b class='flag-5'>linux</b>_defconfig的作用与调试价值

    Linux系统内核参数调优实战指南

    Linux 内核参数调优是系统性能优化的核心环节。随着云原生架构的普及和硬件性能的飞速提升,默认的内核参数配置往往无法充分发挥系统潜力。在高并发 Web 服务、大数据处理、容器化部署等场景下,合理的
    的头像 发表于 01-28 14:27 740次阅读

    【「Linux 设备驱动开发(第 2 版)」阅读体验】+读深入理解Linux内核内存分配

    每个内存地址是虚拟的,不是直接指向RAM中的任何地址。当用户访问内存中的存储单元时,都会进行地址转换以匹配相应的物理内存。书籍的第10章讨论了五个主题,对Linux内核内存分配进行详细讲解。 接着
    发表于 01-16 20:05

    【「Linux 设备驱动开发(第 2 版)」阅读体验】Linux内核开发基础

    感谢电子发烧友论坛提供的《Linux设备驱动开发(第2版)》阅读机会,测评将从Linux内核开发基础、Linux
    发表于 01-12 22:45

    【「Linux 设备驱动开发(第 2 版)」阅读体验】+读内核处理的核心辅助函数

    上周收到《Linux 设备驱动开发(第 2 版)》书籍,这是一本介绍Linux内核开发的指导性书籍。全面了解Linux
    发表于 01-10 22:08

    深入解析RK平台Android/Linux Bootloader核心文件:android_bootloader.c

    Bootloader是Android设备启动的第一道“关卡”,负责初始化硬件、加载系统镜像并完成内核启动的前置准备。在基于U-Boot的Android
    的头像 发表于 01-09 10:58 1443次阅读
    深入解析RK平台<b class='flag-5'>Android</b>/<b class='flag-5'>Linux</b> Bootloader核心文件:<b class='flag-5'>android</b>_bootloader.c

    Linux内核printk日志级别全解析:从参数解读到实操配置

    一、开篇:一个命令引出的核心问题 在 Linux 终端执行 cat /proc/sys/kernel/printk,你可能会看到这样的输出: 这串数字不是随机的,而是内核日志系统的“核心配置开关
    的头像 发表于 11-20 15:54 1990次阅读
    <b class='flag-5'>Linux</b><b class='flag-5'>内核</b>printk日志级别全解析:从参数解读到实操配置

    Linux内核参数调优方案

    在高并发微服务环境中,网络性能往往成为K8s集群的瓶颈。本文将深入探讨如何通过精细化的Linux内核参数调优,让你的K8s节点网络性能提升30%以上。
    的头像 发表于 08-06 17:50 1184次阅读

    如何配置和验证Linux内核参数

    Linux系统运维和性能优化中,内核参数(sysctl)的配置至关重要。合理的参数调整可以显著提升网络性能、系统稳定性及资源利用率。然而,仅仅修改参数是不够的,如何验证这些参数是否生效同样关键。
    的头像 发表于 05-29 17:40 1395次阅读