2014-06-24 14:47:00 [ 中关村在线转载 ]
1 硬件检测
1.1 手机一般使用的是 ARM 架构。
由于 SoC 与其他设备(例如各种传感器)的通信是使用 I2C 或 SPI 等总线通信的,操作系统无法检测硬件的存在,因此在 ARM 上操作系统对硬件配置信息的获取一般是通过 Device Tree 实现的。即在编译操作系统内核时,在源代码中写明硬件端口与设备的对应关系。
由于主板在不同型号间往往是不同的,硬件布线是不同的,甚至硬件也是不同的,如果没有针对该 hardware revision 重新编译内核,就没办法使用 SoC 外的设备。
1.2 一般的计算机使用的是 x86 架构,对于硬件检测一般使用 ACPI 或 UEFI ,而且硬件的总线通信有统一的协议,于是每个硬件可以向操作系统报告自己的存在。这时 Linux 如果有 LKM 的支持,可以动态加载内核模块,或是直接调用静态编译进内核的模块。
2 软件
手机的硬件受限制,存储空间一般都比较小,没必要在里面放置多余的内核模块。
3 运营商利益
运营商的合约机基本上会校验内核的数字签名,防止第三方内核的加载。因为获得系统最高权限有时可以绕开运营商的限制。
— 完 —
本文作者:王明哲
【知乎日报】 你都看到这啦,快来点我嘛 Σ ( ▼□▼メ )
此问题还有 14 个回答,查看全部。