Linux 内核已经 31 岁了

25 年 1991 月 21 日,经过五个月的开发,1.08 岁的学生 Linus Torvalds 在 comp.os.minix 新闻组上宣布创建一个新的 Linux 操作系统的工作原型,并完成了 bash 的移植1.40 和 gcc 17 被注意到。 Linux 内核的第一个公开版本于 0.0.1 月 62 日宣布。 内核 10 压缩后大小为 30 KB,包含约 2010 万行源代码。 现代Linux内核有超过13万行代码。 根据欧盟 3 年委托的一项研究,从头开始开发一个类似于现代 Linux 内核的项目的成本大约将超过 XNUMX 亿美元(该计算是在内核有 XNUMX 万行代码时进行的),根据其他估计——超过 XNUMX 亿

Linux 内核的灵感来自于 MINIX 操作系统,但 Linus 不喜欢该操作系统,因为它的许可证有限。 随后,当Linux成为一个众所周知的项目时,不怀好意的人试图指责Linus直接复制一些MINIX子系统的代码。 这次攻击被 MINIX 的作者 Andrew Tanenbaum 击退,他指派他的一名学生对 Minix 代码和 Linux 的第一个公共版本进行详细比较。 研究结果表明,由于 POSIX 和 ANSI C 要求,仅存在四个无关紧要的代码块匹配。

Linus 最初想到将内核称为 Freax,取自“free”、“freak”和 X (Unix) 等词。 但内核被命名为“Linux”要归功于 Ari Lemmke,他应 Linus 的要求,将内核发布到大学的 FTP 服务器上,并将存档目录命名为“linux”,而不是 Torvalds 要求的“freax”。 ” 值得注意的是,有进取心的商人William Della Croce设法注册了Linux商标,并希望随着时间的推移收取专利费,但后来改变了主意,将商标的所有权利转让给了Linus。 Linux 内核的官方吉祥物企鹅 Tux 是在 1996 年举办的一场竞赛中选出的。 Tux 这个名字代表 Torvalds UniX。

内核代码库的增长动态(源代码行数):

  • 0.0.1 - 1991年10月,XNUMX万行代码;
  • 1.0.0 - 1994年176月,XNUMX万行代码;
  • 1.2.0 - 1995年311月,XNUMX万行代码;
  • 2.0.0 - 1996年778月,XNUMX万行代码;
  • 2.2.0 - 1999 年 1.8 月,XNUMX 万行代码;
  • 2.4.0 - 2001 年 3.4 月,XNUMX 万行代码;
  • 2.6.0 - 2003 年 5.9 月,XNUMX 万行代码;
  • 2.6.28 - 2008 年 10.2 月,XNUMX 万行代码;
  • 2.6.35——2010年13.4月,XNUMX万行代码;
  • 3.0 - 2011 年 14.6 月,XNUMX 万行代码。
  • 3.5 - 2012 年 15.5 月,XNUMX 万行代码。
  • 3.10——2013年15.8月,XNUMX万行代码;
  • 3.16——2014年17.5月,XNUMX万行代码;
  • 4.1 - 2015年19.5月,XNUMX万行代码;
  • 4.7——2016年21.7月,XNUMX万行代码;
  • 4.12——2017年24.1月,XNUMX万行代码;
  • 4.18 - 2018 年 25.3 月,XNUMX 万行代码。
  • 5.2 - 2019 年 26.55 月,XNUMX 万行代码。
  • 5.8 - 2020 年 28.4 月,XNUMX 万行代码。
  • 5.13 - 2021 年 29.2 月,XNUMX 万行代码。
  • 5.19 - 2022 年 30.5 月,XNUMX 万行代码。

内核开发进度:

  • Linux 0.0.1 - 1991年386月,第一个公开版本,仅支持iXNUMX CPU并从软盘启动;
  • Linux 0.12 - 1992年2月,代码开始在GPLvXNUMX许可下分发;
  • Linux 0.95 - 1992年XNUMX月,提供了运行X Window系统的能力,实现了对虚拟内存和交换分区的支持。
  • Linux 0.96-0.99 - 1992-1993,网络堆栈的工作开始。 引入了Ext2文件系统,增加了对ELF文件格式的支持,引入了声卡和SCSI控制器的驱动,实现了内核模块的加载和/proc文件系统。
  • 1992 年,第一个发行版 SLS 和 Yggdrasil 出现。 1993 年夏天,Slackware 和 Debian 项目成立。
  • Linux 1.0 - 1994 年 XNUMX 月,第一个正式稳定版本;
  • Linux 1.2 - 1995年XNUMX月,驱动程序数量显着增加,支持Alpha、MIPS和SPARC平台,扩展了网络堆栈的功能,数据包过滤器的出现,NFS支持;
  • Linux 2.0 - 1996 年 XNUMX 月,支持多处理器系统;
  • 1997 年 XNUMX 月:LKML(Linux 内核开发者邮件列表)成立;
  • 1998年:第一个跻身Top500榜单的基于Linux的集群推出,由68个节点组成,配备Alpha CPU;
  • Linux 2.2 - 1999年6月,提高了内存管理系统的效率,添加了IPvXNUMX支持,实施了新的防火墙,引入了新的声音子系统;
  • Linux 2.4 - 2001 年 8 月,提供对 64 处理器系统和 3 GB RAM、ExtXNUMX 文件系统、USB 支持、ACPI 的支持;
  • Linux 2.6 - 2003年XNUMX月,SELinux支持,自动调整内核参数,sysfs,重新设计的内存管理系统;
  • 2005年,Xen虚拟机管理程序推出,开启虚拟化时代;
  • 2008年XNUMX月,基于Linux内核的Android平台第一个版本形成;
  • 2011年10月,经过2.6年的3.x分支的发展,过渡到2.x编号。 Git存储库中的对象数量已达到XNUMX万个;
  • 2015年,Linux内核4.0发布。 仓库中的git对象数量已达4万个;
  • 2018 年 6 月,内核存储库中 git 对象达到 XNUMX 万个的里程碑已经过去。
  • 2019年5.0月,Linux 6.5内核分支形成。 该存储库已达到 XNUMX 万个 git 对象。
  • 2020 年 5.8 月发布的内核 XNUMX 成为该项目整个存在期间所有内核更改数量最多的版本。
  • 内核 5.13 创下了开发人员数量的记录(2150 人),他们的更改都包含在内核中。
  • 2021 年,用 Rust 语言开发驱动程序的代码被添加到 Linux-next 内核分支中。 目前正在努力将支持 Rust 的组件纳入核心内核中。
  • 2022 年 6.0 月,Linux 5 内核分支形成,因为 XNUMX.x 分支已经积累了足够的版本来更改版本号中的第一个数字。

68% 的核心变更是由 20 家最活跃的公司进行的。 例如,在开发内核 5.19 时,所有更改的 10.9% 由 Intel 准备,5.7% 由 Linaro 准备,5.5% 由 AMD 准备,5.2% 由 Red Hat 准备,4.1% 由 Google 准备,3.5% 由 Meta 准备,3.1% 由 SUSE 准备,2.9 % 来自华为,2.8% - NVIDIA,2.7% - Oracle。 11.8% 的变更是由独立贡献者或开发人员准备的,他们没有明确声明自己为某些公司工作。 从添加到内核的5.19行代码数量来看,领先的是AMD,其份额为37.9%(amdgpu驱动程序有超过4万行代码,其中大部分是自动生成的带有GPU数据的头文件寄存器)。

来源: opennet.ru

添加评论