芯片|同样的内核,为什么linux干净稳定,而android臃肿又乌烟瘴气?

芯片|同样的内核,为什么linux干净稳定,而android臃肿又乌烟瘴气?

文章图片

芯片|同样的内核,为什么linux干净稳定,而android臃肿又乌烟瘴气?

文章图片




要知道如今Windows 11的系统安装包大小在4G~5G之间 , 而Windows 1的系统安装包仅有300KB左右 。 毫无疑问Windows 11比Windows 1臃肿了无数倍 。 Windows 1能作为现如今的生产力工具吗?显然是不能 。 翻看Windows近50年的历史我们就会发现Windows每一个版本都会增加许多新的功能 , 可不仅仅是界面变得花里胡哨更好看了 。 实际上就算实现一个非常小的功能 , 就需要大量的代码作为支撑 。

在前台操作的我们可能很多功能都没有用到 , 但确确实实有很多人因此而受益了 。 俗话说“众口难调” , 而微软却在调制一款符合绝大多人口味的Windows , 这也是Windows这么多年仍然占据桌面操作系统80%以上市场份额的原因 , 微软的Windows同样遵循着摩尔定律和市场需求在不断变胖 。



很多人都把Linux和Windows、MacOS放在一起做比较 , 这也并没有什么错 。 严格意义上来讲Linux是一个遵循GNU通用公共许可证(GPL)的开源作业系统核心 , 它包含了图形界面和其他使用工具 , 任何个人和机构都可以自由地使用Linux的所有底层原始码 , 也可以自由地修改和再发布 。 从Android的系统架构图我们就会发现 , Android同样基于Linux内核 。 2017年3月Android全球设备数量和网络流量超越了微软的Windows , 成为了全球第一大操作系统 。 毫无疑问 , Android之所以能够取得这样的成功在于Google在Linux内核的基础之上做了一些改变和创新 。



上面提到Linux是GPL开源协议 , 按照这个逻辑下去 , 高通、MTK这些芯片厂商的驱动都得开源 , 这个他们是不愿意的 。 谷歌于是就在Linux的上层添加了HAL层(Hardware Abstract Layer)将内核和驱动程序隔离了 , 这样Linux社区就不会认为Android是Linux的分支版本 。 芯片厂商不用开源驱动 , 隔离驱动之后系统升级也就变得更为简单 , 简直就是一举两得 。 因此Android采用了Apache开源协议 , 对免费开放的Android系统修改之后可以不进行开源 。

【芯片|同样的内核,为什么linux干净稳定,而android臃肿又乌烟瘴气?】

很多人都在吐槽Android采用了Java和Dalvik/ART , 大幅的拖慢了软件的执行效率 。 Android采用Java初衷挺简单的 , 就是让庞大数量的Java程序员可以非常容易地转到Android开发 , 这样短时间就可以丰满Android的生态系统 , 这点和独立专行的Windows Phone形成了鲜明的对比 。 既然选择了Java那么逃避不了的就是虚拟机 , 于是就有了Dalvik , 而ART其实就是优化之后的Dalvik 。

Android并没有采用直译的机器码来运行 , 而是采用了Runtime , 很大一部分原因基于“手机”来进行考虑 。 手机必然有很多用户的隐私数据 , 所以就需要为每一个APP定制相互隔离的沙盒环境 , Runtime就是这样诞生的 。 Android杀内存这件事也同样被很多人吐槽 , 很多人都拿IOS的“墓碑”后台做对比 。 Android杀内存是因为早先的Android系统内存太小了 , 几百M是非常常见的 , 所以Android就设计了Low Memory Killer来干掉很久不用的后台APP , 留给用户当前能看到的APP用 。



如今Android原生版本其实对于后台APP是相当宽松的 , 内存显然够用了 , 强杀内存的策略一般是手机厂商自己定制的 , 这样手机就可以更省电 , 而用户也能感觉手机可以非常流畅地运行 。 谁曾想到原先展开仅有几百M的安卓系统 , 如今展开有10GB大小 , 如今任何一个程序都比之前的安卓系统大 。 微信1.0仅有457.7KB , 仅有文字聊天功能 , 如今微信添加了各种各样的功能 , 比如语音信息、朋友圈、支付、小程序等等 , 如今微信安装包150MB左右 , 用一段时间之后轻轻松松就近10GB 。 软件、系统越来越臃肿的原因在于给我们提供了更多的功能 , 方便我们的日常生活、工作 。 所以还就真别较真Android变胖了 , 实际上IOS也变胖了 。