「太平洋电脑网」黑科技 or 大势所趋?谈谈手机 GPU 驱动升级那点事


[PConline杂谈]最近 , MIUI开始推送独立GPU驱动的事情 , 引起了很多朋友的关注 。 众所周知 , 手机的硬件驱动往往不能像电脑一样 , 独立安装升级 , 现在情况居然发生了变化 , 不少朋友纷纷感叹这简直就是黑科技 。
「太平洋电脑网」黑科技 or 大势所趋?谈谈手机 GPU 驱动升级那点事
本文插图
【「太平洋电脑网」黑科技 or 大势所趋?谈谈手机 GPU 驱动升级那点事】应用商店竟然可以推送GPU驱动更新?
GPU驱动能够独立升级 , 对于用户体验来说 , 无疑是一件好事情 。 通过独立的驱动更新 , 手机能够更迅速便捷地获得新驱动带来的性能提升、问题修复 。 这样的好事情 , 在别的安卓上也会有吗?这是独门科技还是大势所趋?这就来谈谈吧 。
安卓为何没法单独升级驱动?
安卓之所以长时间以来 , 没法像Windows那样灵活升级驱动 , 是和系统架构息息相关的 。 安卓基于Linux , 而Linux使用的是宏内核 , 系统内核和驱动等模块紧密结合 。 而Windows的架构更接近于微内核 , 系统各模块之间分离度较高 。
宏内核和微内核(类微内核)的特性 , 会反映到驱动的更新推送的体验上 。 由于宏内核将驱动和系统内核耦合在一起 , 因此如果想要升级驱动 , 往往需要升级系统;而Windows这样的类微内核系统 , 则可以独立升级驱动 。 微软为了兼容更多硬件 , 还为驱动设计了标准模型 , 例如图形驱动的WDDM , 音频架构UAA等 , 只要驱动编写符合WDDM、UAA等架构 , 就可以自行安装升级 , 无需对系统内核进行改动 。
传统意义上的安卓系统架构 , 可见显示驱动、相机驱动等等都是被打包在Linux内核当中的
尽管宏内核在驱动升级方面不够灵活 , 但Linux之所以如此设计 , 还是有道理的——宏内核耦合度高 , 这可以带来更高的进程间IPC通讯效率 , 性能更为出色 。 因此 , 我们可以看到Linux广泛应用于各类不同性能的设备之上 , 超算用Linux能够更加物尽其用 , 智能手环这样的小物件用Linux则可以带来更流畅的体验 。
安卓的改变:装驱动越来越像Windows?
然而 , 宏内核在移动互联网/物联网时代 , 则遭遇到了一些挑战 。 各式各样智能设备迅速涌现 , 令硬件适配成为了一个不得不面对的问题 。
以安卓机为例 , 市面上的安卓机使用了不同的CPU、GPU、基带、CODEC等等 , 由于宏内核的高耦合度 , 安卓机很难对操作系统和硬件驱动进行单独升级 , 无论想要升级系统还是想要升级驱动 , 厂商都需要为每个安卓机型号单独制作系统镜像 。 并不是每个厂商都会选择投入大精力到系统维护当中的 , 这导致了安卓系统和驱动升级困难 , 最后的结果就是安卓机系统版本的碎片化 。
为此 , Google改变了安卓的形态 , 在安卓8.0中推行了ProjectTreble机制 , 将系统(AndroidOSframework)单独分区 , 和硬件驱动(Vendorimplementation)分离 , 此后厂商可以为设备单独推送新版安卓 , 而不需要重新适配驱动 。 ProjectTreble大大简化了安卓系统的升级流程 , 我们也可以观察到 , 安卓8.0以后的设备 , 升级安卓大版本的速度比以前更快了 。
ProjectTreble将Google的安卓系统框架和硬件供应商提供的驱动作了分离
但这还不够 。 在安卓10当中 , Google推行了ProjectMainline , 将系统进一步细分模块化 。 在安卓10中 , 14个系统组件被Mainline化 , 媒体解码器、权限控制器、网络组件等系统组件 , 都可以像普通APP一样 , 通过应用商店来更新——GPU驱动能够独立更新 , 就得益于此 。
可以说 , 安卓通过ProjectTreble和ProjectMainline , 正变得越来越"微内核" 。 在尚未正式发布的安卓11中 , 安卓的组件模块达到了20个之多 , 安卓的系统维护将会变得前所未有地灵活 , 变得越来越像PC 。