× 时速云培训挂件

为什么Linux内核代码60%都是驱动? 想知道就戳这里

因为Linux内核驱动在过去几年就已经经历过明显“越来越臃肿”的事件了。而且在过去也经常发生代码膨胀-架构优化-削减代码的事件,但是基本上是各个子模块自己搞的,所以对整体代码量影响不会很明显。

Linux

2020-10-29 104

为什么Linux内核代码60%都是驱动? 想知道就戳这里

因为Linux内核驱动在过去几年就已经经历过明显“越来越臃肿”的事件了。而且在过去也经常发生代码膨胀-架构优化-削减代码的事件,但是基本上是各个子模块自己搞的,所以对整体代码量影响不会很明显。

大部分人对linux误解很深。如果用常人眼光来看待linux,那么内核是内核,驱动就是驱动,是分开的。驱动是内核模块、内核组件,是可以被动态装载的(甚至不需要重启)。

从代码的角度上讲,内核跟驱动必然是分开的。否则开发linux内核的那帮人也太屌了,能写出几十万种设备驱动。很多人被软吹一带节奏说win是微内核,就觉得不明觉厉,听上去就很“模块化”“现代化”,linux是宏内核就是“臃肿不堪”“包罗万象”。常人毕竟不是开发者,而linux开发者在面对软吹带节奏的时候确实不好反驳,因为内核模块在装载到内核之后确实是属于内核,共享寻址空间,此时说“内核膨胀”没有问题。但要搞清楚,此“内核膨胀”不是彼“内核膨胀”。大众对于驱动的关切重心应该是“模块”而非“内核”。

软吹其实是知道大众的这个心理,却刻意回避了这个理解重心把运行时加载的驱动占据了内核绝大部分渲染成内核代码一大部分是驱动代码,说着十句话里九句真然后剩下一句夹带私货的春秋笔法,本着哪怕被1%的专业人士嘲笑的风险也要疯狂带飞声浪。毕竟三人成虎。久而久之节奏被带成了大众都以为宏内核的内涵就是驱动甚至出现了“宏内核是不是设计缺陷”的讨论。简直无厘头。

所以linux发行版里确实很多驱动,但这并不意味着linux纯内核代码会因此而膨胀。不然你的电视机遥控器上咋跑linux?linux又怎么能裁剪到只有区区几M?尽管linux纯内核代码量也确实不少了,由于win不开源所以也没有直观的比较说linux内核代码一定比win臃肿。

回到问题,你确实用不着很多驱动,你也没有那么多种硬件,发行版也确实给你打上了,但这并不是linux本身的锅而是发行版的行为,为了让你开箱即用。这是首先要明确的。其次很多发行版也意识到了该问题并开始着手剔除一些过于老旧的设备驱动。你的焦虑就跟当初那些鼓吹ipv6的嚷嚷ipv4马上就用完啦,接下来手机,笔记本,电脑各种设备面临无网可用的境地一样。都是情绪渲染。被带了节奏。

相关文章

  • 联系电话 010-53512850

  • 联系邮箱 enquiry@linuxfoundation.cn

Linux基金会开源软件大学 Copyright © 2019 linuxfoundation.cn, ICP license, no. 京ICP备17074266号-2