爆增千倍 内核体积惹争议
当17年前首次发布Linux 0.01版时,它包含大约10000行代码;而到了去年秋天,内核代码已经超过了1000万行。
尽管这1000万行代码中包含一些空白行和注释行,内核的规模也已经成为众多观察家关注的目标,其中有很多人指责内核已经变得非常笨重和臃肿。
托沃兹承认,内核体积本身不是什么问题,但是它却可以带来一些其它挑战,其中最大的一个问题是,如何维护如此庞大的代码,而同时又不能牺牲质量。
如果内核体积过大,升级开发将非常困难,越小的项目维护起来越容易。“而对于一个大项目,不可避免的会碰到一个问题,没有一个人能够对其完全了解,这势必会给维护带来极大的挑战。”
内核体积肯定是一个潜在的问题,托沃兹补充说。“这将使得人们进入这个项目的门槛大大提高,因为它的复杂性会让人们望而却步,而且会让人们在排查故障时面临更大的挑战。”
托沃兹表示,另一方面“我不得不说我们花费了太多的精力来争论这些问题,我们的开发模式已经很好的升级,而且我们拥有大量的开发者,我认为他们实际上非常具有创新精神,不会沉陷于多余的问题中。”
此外,“尽管内核的复杂性有所增加,我们保持了一个模块化非常好的体系架构,多数复杂的功能模块采取了类似驱动程序的方式,虽然比较复杂,但多数复杂度仅限于‘本地’。这使得它们可以更容易的被管理,举例来说,你必须非常熟悉一个硬件,才能为其编写驱动,但是在为它编写驱动时你无需考虑其它硬件。”
麦克同样认为,内核体积增长不是什么问题,因为没有多少人真正关心其体积大小。
麦克表示,绝大多数内核程序包是架构代码和设备驱动程序;如果它的体积过于庞大,人们可以编写一个脚本来将内核按架构进行分拆,也可以移除某些老的或很少用到的驱动。
尽管有多种方法可以让内核实现“瘦身”,但是Slashdot博客马丁·埃斯皮诺萨(Martin Espinoza)认为这样做的必要性不大,现在存储空间已经不再是什么障碍,几乎没有人还在使用软驱,将内核存储在一个非常小的容量设备上的时代已经过去了。磁盘空间和内存都如此便宜,相对来说Linux内核的体积还是非常小的。
汉纳表示,“我不再继续认为Linux仅适合小存储空间模式,当时的32M已经是一个较大的空间,这似乎与Linux一直奉行的‘run lean, run clean’理念有些背道而驰。”
但是,“在我看来,这可能是Linux历史上最具幻想性的想法之一,”汉纳表示,按照所有的标准来说,Linux“仍然继续非常苗条和干净,但是李纳斯预见到存储空间将变为类似日用品的东西,这个预测在今天成为了现实。”
汉纳表示,“随着Linux复杂性增加,它的体积势必就会增长,但是它的增长趋势依然非常平稳。更多的风险和伤害来自于软件中粗心和散漫态度的膨胀。Linux依然是当今最为简洁的操作系统之一,尤其是在考虑其服务范围的情况下。”
来自教育行业的博客作者罗伯特·普森(Robert Pogson)表示,在他的PC上使用Linux时没有碰到过速度问题。存在问题的是其他瘦客户端设备,这类设备的CPU资源相对较低,因此需要一个精简版的内核。
但是他表示,人们可以定制化一个内核,只添加所需的驱动,从而获得更优异的性能。总体来讲,不管内核开发者在做什么,他在使用内核中没有碰到过什么问题。