2018.11.15
Android设备都基于linux内核,但是这些设备从一开始并没有跑主线内核,因为添加了很多不在主线上的代码,这些主线外代码的内核代码的问题,正在想办法处理;虽然说现在就在这些Android设备上运行主线内核代码并不容易,但是比我们预想的可能更接近。
Android内核从主线LTS内核而来,添加了Android指定代码来得到Android Common Kernel发行版;厂商用这个发行版,并添加一堆主线外的内核代码来制造出运行在指定SoC上的内核。一般合并一个LTS内核到Android Common Kernel可能只需要几个星期,但是之后作为内核在设备上出现还需要几年,这也是为什么Android设备的内核都很古老的原因。
这一内核更新套路还带来其他的问题,Android核需要能够运行在一系列古老内核中,这一约束使Android很难用上新的内核特性,内核升级很缓慢,甚至是不会升级。用了大量非主线代码,上百万行,使它很难合并新的稳定更新。Android内核没有连续迭代开发,也不能在主线内核上跑安卓,Android内核这种管理和开发方式使很多使用linux的优势不复存在,所以需要处理这个问题。