Linux内核25年的开发是否可以通俗易懂地加以限定或抽象?[关闭]


12

Linux内核已有25年的历史了。如果我不得不提出自1991年(成立之日)以来Linux内核的发展历史的简短版本,而直到1994年直到现在,尤其是1994年以来(1.0.0)的简短版本,我都做不到。在阅读每个内核发行说明之前,我所能做的最好的就是提供以下内容,这些内容是在3.11版之前添加到内核的常规发行功能(省略说明和链接):

  • Linux内核的1.0版于1994年3月14日发布。此Linux内核发行版仅支持基于单处理器,基于i386的计算机系统。可移植性成为一个问题,因此 1.2版(1995年3月7日发布)获得了对使用基于Alpha,SPARC和MIPS架构的处理器的计算机系统的支持。
  • 2.0版于1996年6月9日发布。该系列共有41个版本。2.0的主要功能是SMP支持(即在单个系统中支持多个处理器)以及对更多类型的处理器的支持。
  • 2.2版(1999年1月26日发布)删除了全局自旋锁,并提供了改进的SMP支持,并增加了对m68k和PowerPC架构以及新文件系统的支持(包括对Microsoft NTFS的只读支持)。
  • 2001年1月4日发布的2.4.0版包含对ISA即插即用,USB和PC卡的支持。它还包括对惠普公司PA-RISC处理器的支持。2.4.x的开发发生了一些变化,在整个系列的整个过程中提供了更多功能,包括:支持蓝牙,逻辑卷管理器(LVM)版本1,RAID支持,InterMezzo和ext3文件系统。
  • 版本2.6.0于2003年12月18日发布。针对2.6.x的开发进一步朝着在整个系列中包含新功能的方向发展。在2.6系列中所做的更改包括:将µClinux集成到主线内核源中,PAE支持,对几行新CPU的支持,将ALSA集成到主线内核源中,最多支持2 32个用户( (从2 16开始),最多支持2 29个进程ID(仅64位,32位Arch仍限制为2 15)),大大增加了设备类型的数量和每种类型的设备的数量,改进了64位支持,支持文件系统,支持文件大小最大为16 TB,内核抢占,支持本机POSIX线程库(NPTL),将用户模式Linux集成到主线内核源中,将SELinux集成到主线内核源中,InfiniBand支持等等。同样值得注意的是,在整个2.6.x版本中增加了几个文件系统:FUSE,JFS,XFS,ext4等。有关2.6内核系列历史记录的详细信息,可以在kernel.org 2.6内核系列源代码发布区域的ChangeLog文件中找到。
  • 3.0版于2011年7月22日发布。Torvalds宣布最大的变化是“什么都没有,绝对没有。” 2011年5月30日,Torvalds宣布:“ ...确保我们真正发布下一个发行版,不仅是一个全新的闪亮数字,而且是一个好的内核。” 经过预期的6-7周的开发过程后,它将在Linux 20周年纪念日附近发布。
  • 在2012年12月,Torvalds决定通过取消对i386处理器的支持来降低内核的复杂性,从而使3.7内核系列 成为仍支持原始处理器的最后一个。同一系列统一支持ARM处理器。
  • 2013年9月2日发布的3.11版增加了许多新功能,例如用于open(2)的新O_TMPFILE标志,以减少临时文件漏洞,实验性AMD Radeon动态电源管理,低延迟网络轮询和zswap(压缩交换缓存)。

我还可以补充一点,Linux基金会多年来一直在报告内核开发。以下是2012-2013年内核开发亮点:

  • 来自3,738个代表536家公司(我们知道)的个人开发人员已合并了将近92,000个变更集。
  • 大量重要的新功能已合并到主线中。其中包括完整的无滴答操作,用户命名空间,用于ARM的KVM和Xen虚拟化,调度程序中的每个实体负载跟踪,用户空间检查点/重新启动,64位ARM体系结构支持,面向F2FS闪存的文件系统,旨在改善许多联网性能的网络在延迟和缓冲区膨胀问题上,两个独立的子系统为块存储设备提供了快速缓存,等等。
  • 关于Android特定内核功能的长期争论已完全消失在后台。备受关注的“唤醒锁”功能已被最新的Android设备中使用的另一种主线解决方案悄然取代。
  • 在此期间,使用自动化工具查找开发内核中的错误的使用显着增加。诸如“三位一体”模糊测试仪和零日构建和启动系统之类的工具正在预发行内核中发现大量错误,从而缩短了开发周期并使社区能够提供更高质量的发行版。
  • 来自移动和嵌入式行业的贡献继续增加。例如,Linaro,Samsung和TI共同贡献了本白皮书先前版本的4.4%的更改;在截至3.10的时期内,他们贡献了几乎所有变化的11%。
  • 核心项目首次参加了“妇女外联方案”,为41个职位申请了7个职位。在应用过程中,向内核提交了374个补丁,而3.10内核发行版中接受了超过1/3的补丁。实习过程现在正在进行中,但是直到将来的内核发行时,结果才开始显示。

此外,量化内核所发生的事情并不难,因为我们拥有超越单个提交的指标。例如,我们知道1994年的1.0.0内核有176250行代码;我们知道像3.10这样的现代内核具有15803499行代码。数量更多。内核发布频率增加了(3.10为63天),更改率也有所提高(每小时9次提交或更多)。引用Linux Foundation:

在过去的任何公共软件项目中,保持这种变化速度多年的能力都是前所未有的。

但是所有这些在我看来并没有什么洞察力。因此,我会问:

  1. 除了线性构成组成该内核的所有列出功能的线性加法之外,这个四分之一世纪的演变是否可以被概括地视为合格
  2. 这是否带来了有关Linux内核的含义或发展方向的任何见解?经过25年的发展,可以肯定地得出一些结论吗?

寻找一个通俗易懂的抽象答案,说明一切,而不必诉诸一切。


我突然跳出“最多支持229个进程ID”的名字,因此我在Google上进行了搜索,唯一的参考似乎是该段落原始来源。我以为进程ID的范围是16位(有符号),即〜16,000,但实际上可能不止于此。当然不是几百个。
goldilocks 2014年

3
这个问题过于笼统,因为它正在寻找有关该主题的Wikipedia文章。
吉尔(Gilles)'所以

您打算在这里写论文吗?很好,但是如果您对要执行的操作有明确的建议,那么会有所帮助。我想这不只是要为您的第二天晚上在当地的水坑准备好总结;)
goldilocks 2014年

1
我隐约记得,至少有一些人计划对此或类似内容撰写论文。我怀疑您会找到有关该主题的学术文献...除了指向现有出版物,似乎您的问题还需要几个月的研究才能回答。
derobert 2014年

关于您的问题,也许您需要告诉我们有关外行的条款,以便在此处获得良好的答案。除此之外,将其发布到lkml并获得他们对您的年代的反馈。如果您错过了重要的事情,他们会让您知道。
Bananguin 2014年

Answers:


11

你问:

除了线性构成组成该内核的所有列出功能的线性加法之外,这个四分之一世纪的演变是否可以被概括地视为合格?这是否带来了有关Linux内核的含义或发展方向的任何见解?

我怀疑这样的问题是否有明确的答案。但是,我认为理解Linux内核发展的推动力并不难。

首先,计算机已变得越来越重要。乔姆斯基在某处表示,它们对任何工业化经济都至关重要。没有操作系统,计算机就什么也不是,这使操作系统很重要。

在80年代和90年代,专有操作系统逐渐兴起。从某种意义上讲,这是一种不自然的状况。微软的Windows一度占据主导地位,从某种意义上说仍然如此,但它只是通过利用网络效应来保持其地位。

随着Internet的兴起,生产社区操作系统成为可能。但是,这样的操作系统只有在不能专有化的情况下才有用。BSD操作系统家族不在该类别中。因此,Linux内核成为无法专有的社区操作系统的核心。

请注意,许多大型计算机供应商已经落后于Linux内核。为什么?个人关心自由。社区关心自由。公司只关心利润和相关策略。我相信,如果您愿意的话,许多计算机公司都对“商品化”操作系统,“公平竞争环境”的概念持和平态度。他们以微软通过专有操作系统来赚钱为例,但并不是每个人都可以成为微软,可以说,只有一个供应商处于这样的权力地位是有问题的,如果仅仅是因为它可以从其他公司的角度来看,它们是不公平的优势。

因此,我认为,由于大多数公司都无法成为微软,甚至可能不想成为微软,因此决定支持“商品”操作系统。再次,一个公平的竞争环境。这样,每个人都可以将其用于任何目的的操作系统,并且该组中的任何人都不比其他任何人有优势。另一种看待它的方式是,使某种基本的操作系统专有权成为对自由市场原则的严重干扰。一般而言,如果公司可以站在赢家的一面,他们并不是特别赞成自由市场,但如果不能,那就是自由市场。

Linux内核的大多数特性实际上可以从这些动态中得出。例如,类Unix操作系统的模块化和可延展性非常适合于被设计为“商品”的OS。另外,内核项目的快速发展本质部分是因为它试图满足所有许多公司的需求,使其成为他们想要的东西。虽然很多活动都围绕硬件支持/驱动程序进行,但是在该领域之外也有很多活动。不断开发新功能并维护和改进现有功能。

当然,我们不应轻视社区(通常称为自由软件社区)或有时称为FOSS(自由和开源软件)的愿望,以拥有不受公司控制的可供普通民众使用的免费操作系统。毕竟,像Debian和Fedora这样的项目是由相信这些价值观的志愿者开展的。但是,我认为公司所扮演的角色也不应被低估。


1
+1提出了社会政治力量的问题,这使得带有GNU的Linux组合在主流中令人困惑。我认为这是起源的一个非常重要的方面,尽管它看起来可能是“非技术性的问题”,但实际上却是操作系统开发的定义特征-特别是Eric S. Raymond的著作-以及它被广泛的硬件制造商采用以及作为互联网历史上占主导地位的平台
goldilocks 2014年

^请注意,许多人家里有一个Linux内核,因此甚至都不知道(您的路由器,DVR盒等)
goldilocks 2014年

我赞扬您的回答:及时定位内核,并呼吁流行的动态-计算的发展;商业吸引力;市场力量;互联网; 计算自由;许可;以及以上所有这些对内核实现的影响,以及对整个Linux的展望。我必须在您的声明中读到有关“非自然状态”的信息,我们可能缺乏历史角度来正确评估这一点-这很重要。尽管我真的真正专注于内核本身,但是我会在上面更多地考虑您的观点和意见。谢谢!

1
@goldilocks:更不用说您的Android手机了。
slebetman
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.