克日,随着 Linux 6.14 rc1 的发布,Linux 内核的源代码总量初次凌驾 4000 万行。作为从服务器到物联网设备的核心支柱,Linux 内核已发展为当代技能体系中不可或缺的关键组件。这一里程碑也引发众人热议,代码体量的扩大,对代码质量与性能的一连提升毕竟是好照旧坏? Linux 内核作为无数开源操纵体系的支柱,随着 6.14 rc1 版本的发布,克日告竣了一个令人瞩目的里程碑:其代码行数突破 4000 万行大关,这些代码不光包罗实际的代码内容,还包括表明、文档,乃至为了布局和可读性而保存的空行。 稳步增长:从课堂走向科技前沿的 Linux 自 1991 年由 Linus Torvalds 以学术项目的情势创建以来,Linux 内核不断发展,现已成为从服务器、超等计算机到智能手机和物联网设备等多种技能的核心。 2015 年,Linux 内核的代码行数到达了 2000 万行,这在当时已是一个紧张的里程碑。 十年后,这一数字翻了一番,内核以每两个月新增约 40 万行代码的速度一连增长。 2025 年 1 月初发布的 Linux 6.13 版本包罗 39,819,522 行代码,而随着迩来发布的 Linux 6.14 rc1 的源代码,这一数字现现在已飙升至 40,063,856 行。 Linux 内核代码数目为什么涨得这么快? 毋庸置疑,Linux 内核源代码的增长速度相称快。探索其背后的原因,可归因于以下关键因素: 1. 硬件支持的不断扩展 Linux 以其广泛的兼容性著称,可以大概支持从 x86、ARM 到 RISC-V 等多种架构和设备。
2. 高效的模块化计划 只管 Linux 内核体量巨大,但并非全部代码都会在每个体系上运行。其模块化计划确保了驱动和组件仅在检测到对应硬件时才会加载,从而优化资源利用。 3. 美满的文档与代码质量 开发者社区一直在积极美满代码文档并添加有用的表明,使新贡献者更容易上手,同时确保内核的高质量和可维护性。 实际来看,Linux 内核代码的快速增长并非偶尔,而是数十年环球开发者团体积极的结果,也是内核不断顺应日益多样化技能生态需求的体现。 关于内核巨细的争论:大部分代码对平凡用户实在没啥用 然而,Linux内核的增长引发了技能界的争论,不少网友在外交媒体或技能论坛上分为两大派系。一方以为在 Linux 中增长更多功能和支持可以使 Linux 可以大概顺应从企业服务器到嵌入式体系等各种设备和情况,因此他们以为Linux 内核代码行数并不紧张。 另一方的开发职员以为,通过删除冗余功能,内核可以从进一步优化中受益。对于后者,他们以为内核源代码中的很大一部分可能与特定的计算机或用户毫无关系。 要知道 Linux 内核中支持各种处置惩罚器架构的代码约莫有 450 万行。然而,如果你的体系只利用 x86 架构(大多数 PC 利用的架构),编译器会跳过这些代码中的大部分。实际上,专门针对 x86 架构的代码不到 50 万行。 别的,编译器会针对你利用的 x86 芯片架构进一步优化,这意味着即使在这 50 万行代码中,尚有更多内容不会被利用。比如,当前主流的 x86-64 架构,其内核代码约 49.3 万行,但此中仍包罗大量用于早期 32 位版本的内容。换句话说,即便是现今的 64 位 CPU,仍然会继续很多汗青代码,而非全部内容都被实际实行或调用。 检察 arch 目次:约莫非常之九的 Linux 架构代码与 x86 体系无关 编译设置帮你筛掉了很多没用的东西 Linux 利用的是偏单体内核的计划,不光包罗当代操纵体系内核的核心功能,还包括大量的驱动步伐。而这些驱动步伐的数目非常惊人,总计约 2500 万行代码。 但如果你是针对本身的体系编译内核,此中很多驱动代码根本用不上。和架构代码类似,有些驱动只实用于特定平台,乃至都不能在 64 位 x86 体系上编译。即使可以编译,也不代表驱动一定会被包罗进去——这完全取决于在编译前由人通过工具(比如 make menuconfig 或 make xconfig)设置的“蓝图”文件(.config)。 内核的哪些函数和驱动步伐须要编译是由职员在构建设置期间决定的 无用的驱动不会被加载 可能有履历非常老道的 Linux 资深专家会想:即便筛掉了很多驱动代码,一些主流发行版(比如 Debian)仍会为相应平台激活大部分驱动,如许会不会留下安全隐患?确实,这是个公道的担忧,但不必过于担心。大多数驱动都会被编译成模块,而这些模块大部分情况下根本不会被内核加载。 比如,在一个捏造机中安装了 GNOME 桌面的 Debian GNU/Linux 12.8,体系只会加载 4000 个内核模块中的 100 多个。如果直接运行在物理硬件上,可能会加载两倍的模块,但即便云云,也执偾全部模块的 5% 左右。 更紧张的是,如果 Linux 内核检测不到对应的硬件,它根本不会加载干系驱动模块。固然,这对文件体系、网络协议或其他与硬件无关的模块并不实用。如果你担心这些模块的安全标题,可以通过简单的下令克制体系启动后加载新模块: echo 1 > /proc/sys/kernel/modules_disabled如允许以有用阻断潜在的安全弊端。 未来 Linux 代码增长还会继续 值得注意的是,随着新产物和技能层出不穷,Linux 内核的规模还会继续增长,由于此中大多数都得到了 Linux 的支持。面临这股永无止境的海潮,偶尔的代码清算就像杯水车薪,由于内核开发者通常只会移除那些已经没人会用的旧硬件驱动。这也是很多人喜好 Linux 的原因之一——它经常能让十几年前的老电脑抖擞第二春。 多年来,Linux 内核的增长速度已经稳固在每 9 到 10 周增长约莫 40 万行代码的水平。不过,每个版本的增长情况差异很大:偶尔新版本的内核代码乃至会缩减,而偶尔则会暴增凌驾一百万行。 这种代码体积快速增长的紧张原因通常是计算机天生的硬件界说头文件。这些文件可能会占用好几兆,比如 Linux 中针对 AMD 当代显卡芯片的头文件就已经凌驾了 500 万行代码——虽然大部分内容是编译器不会真正利用的硬件特性文档。 即便云云,开发者们现在正在讨论将未利用的界说移到外部存储。这种做法可能会大幅缩小内核的体积。“代码越少越好”的支持者自然会欢迎这种变革,但这并不是为了镌汰体积而镌汰体积,而是为了改善安全性、维护性和性能——不过这些优势可能微乎其微,乃至感觉不到。 全部代码都很紧张 如果按照一些人的要求,把那些很少用到的旧驱动,乃至全部驱动都移除,反而会对安全性、维护性和性能造成负面影响。毕竟这些驱动仍然有需求存在,如果被移除,它们很可能会被转移到外部维护。 这种做法会严峻限定 Linux 的“众人之力”原则,由于这些代码及其修改将不再由履历丰富的内核维护者举行质量检察,也不会在官方内核测试体系中被反复编译和查抄性能变革。别的,它还会躲避诸如“内核自掩护项目”(Kernel Self Protection Project)等积极的范围,而这些项目致力于一连优化内核代码,进步体系安全性和内核的妥当性。 在某些情况下,驱动外包反而会导致更多的外部内核代码。实际履历表明,由硬件厂商在官方内核代码之外维护的驱动标题重重。比如,Linux 内核开发者通常会在原有驱动的底子上添加对新一代硬件的支持,而硬件厂商却更倾向于基于旧驱动重新创建一个新驱动。结果是错误修复或优化须要在多个地方重复举行,而如许的做法通常是事倍功半。更糟糕的是,很多厂商并不会长期维护驱动,通常只支持几年,乃至维护得不敷充实。 对用户的负面影响 如果驱动步伐由外部团队维护,对用户来说会变得贫苦很多。用户无法像现在如许直接通过内核免费获取驱动步伐。虽然 Linux 发行版可以重新打包这些驱动并包罗在体系中,但这无疑会给每个人带来额外的工作量。结果可能是得不偿失,乃至可能让事情变得比如今更糟糕。 有些人可能会发起为驱动步伐创建一个新的会合式存储库,但这种做法并不会比当前内核自带的会合管理更有优势。至少在没有人给 Linux 提供稳固接口,将驱动步伐与内核其他部分解耦之前,如许做意义不大。这种稳固接口一直是一个老生常谈的需求,目的是让用户像在 Windows 体系中那样,可以独立更新驱动步伐和内核,从而简化安装和管理过程。 不过,是否能真正实现这些好处,以及这种做法会给 Linux 开发带来哪些巨大劣势,都不是简单的标题。有一点很明白:这些接口须要大量额外的代码来包管向前和向后兼容。而这些代码通常容易堕落,从而引发安全弊端。如许的计划反而会与追求“精简内核”的目的背道而驰。 难以克制的“增重” 以上观点可能会让人以为内核代码不须要任何精简,但事实并非云云。和全部复杂软件一样,Linux 内核中也存在很多可以优化的地方。就像其他软件一样,Linux 的某些部分随着时间推移渐渐增长了“冗余”。比方,新版内核在只有几兆内存的老旧体系上运行得越来越差。 然而,这些标题比看上去要复杂得多,甚职苄些像“自行车棚效应”(bikeshedding):就像计划核电站时,每个人都对建一个自行车棚有发言权,由于它看似简单;但实际上,很多“节流开销的简单办法”在内核中可能反而拔苗助长,乃至是外貌功夫,就像一些杂志允许的快速减肥法一样不靠谱。 固然,像身段多余的脂肪一样,代码“增重”终极也可能给 Linux 带来康健标题。然而,从现在来看,还没有迹象表明这种标题会在短期内出现。实际上,人们已经对 Linux 的“膨胀”担忧了二十多年,但 Linux 内核依然妥当发展。停止现在,Linux 仍然是天下上最乐成的操纵体系内核,这大概正是由于它的“体积”。 对此,你怎样对待 Linux 内核代码的快速增长? 泉源: https://www.tomshardware.com/software/linux/linux-kernel-source-expands-beyond-40-million-lines-it-has-doubled-in-size-in-a-decade https://www.heise.de/forum/heise-online/Kommentare/Linux-durchbricht-40-Millionen-Zeilen-Marke/forum-555052/comment/ https://www.heise.de/en/background/Numbers-please-Linux-soon-to-weigh-40-million-lines-of-code-10250618.html |

专注IT众包服务
平台只专注IT众包,服务数 十万用户,快速解决需求

资金安全
交易资金托管平台,保障资 金安全,确认完成再付款

实力商家
优秀软件人才汇集,实力服务商入驻,高效解决需求

全程监管
交易过程中产生纠纷,官方100%介入受理,交易无忧

微信访问
手机APP