Linux入职基础-4.5_内核的主要版本发展历史

内核的主要版本发展历史

Linux操作系统从诞生到1.0版的正式出现,实际上,Linux系统并没有0.00这个版本,但是自从Linus在自己的80386兼容机上实验成功在时钟中断控制下两个任务相互切换运行时,在某种程度上更增强了他开发自己操作系统的想法。因此我们也将其列为一个版本。共发布了如表1-1中所示的一些主要版本。

表1-1

版本号

发布/编制日期

说明

0.00

1991.2-4

两个进程,分别在屏幕上显示AAA… BBB…

0.01

1991.9.7

第一个正式向外公布的Linux 内核版本。多线程文件系统、分段和分页内存管理。这时还不包含软盘驱动程序。

0.02

1991.10.5

该版本以及0.03 版是内部版本,目前已经无法找到

0.10

1991.10

由Ted Ts’o发布的Linux内核版本。增加了内存分配库函数。

①、在boot目录中含有一个把as86汇编语法转换成gas汇编语法的脚本程序。

②、能够使用GCC编译内核;

③、支持加载/卸载(mount/umount)文件系统的操作;

④、把原来的引导程序boot/boot.s分割成boot/bootsect.s和boot/setup.s两个程序;

⑤、支持16MB物理内存;为驱动程序和内存管理程序分别建立了自己的子目录;

⑥、增加了软盘驱动程序;

⑦、支持文件预读操作;

⑧、支持dev/port和dev/null设备;

⑨、重写了kernel/signal.c代码;

⑩、添加了对sigaction()的支持;

0.11

1991.12.8

基本可以正常运行的内核版本。支持硬盘和软驱设备以及串行通信。

①执行程序的需求加载;

②启动时可执行/etc/rc初始文件;

③建立起数学协处理器仿真程序框架程序结构;

④Ted Ts'o增加了对脚本程序的处理代码;

⑤Galen Hunt添加了对多种显示卡的支持;

⑥John T. Kohl修改了kernel/console.c程序,使控制台支持鸣叫功能和KILL字符;

⑦提供了对多种语言键盘的支持。

0.12

1992.1.15

主要增加了数学协处理器的软件模拟程序。增加了作业控制、虚拟控制台、文件符号链接和虚拟内存对换(swapping)功能。

①Ted Ts'o添加了终端信号处理支持;

②启动时可以改变使用的屏幕行列值;

③改正了一个文件IO引起的竞争条件;

④增加了对共享库的支持,节省了内存使用量;

⑤符号链接处理;⑥删除目录系统调用;

⑦Peter MacDonald实现了虚拟终端支持,使得Linux比当时的某些商业版UNIX还要更胜一筹;

⑧实现对select()函数的支持,这是Peter MacDonald根据一些人为MINIX提供的补丁程序修改而成的,但是MINIX却没有采纳这些补丁程序;

⑨可重新执行的系统调用;

⑩Linus编制完成数学协处理器仿真代码;

0.95.x(即0.13)

1992.3.8

加入虚拟文件系统支持,但还是只包含一个MINIX文件系统。

①增加了登录界面;

②Ross Biro添加了调试代码(ptrace);

③软盘驱动器磁道缓冲,改善了软盘驱动程序和文件系统的性能。;

④非阻塞管道文件操作;

⑤系统重启(Ctrl-Alt-Del);

⑥swapon()系统调用,从而可以实时选择交换设备;

⑦支持递归符号链接;

⑧支持4个串行端口;

⑨支持硬盘分区,改变了硬盘命名和编号方式;

⑩支持更多种类键盘; James Wiegand编制了最初的并行口驱动程序等,支持CDROM。

0.96.x

1992.5.12

①开始加入UNIX Socket支持。

②增加了ext文件系统alpha测试程序。

③SCSI驱动程序被正式加入内核。软盘类型自动识别。

④改善了串行驱动、高速缓冲、内存管理的性能,支持动态链接库,并开始能运行X-Windows程序。

⑤原汇编语言编制的键盘驱动程序已用C重写。与0.95内核代码比较有很大的修改。

0.97.x

1992.8.1

加了对新的SCSI驱动程序的支持;动态高速缓冲功能;msdos和ext文件系统支持;总线鼠标驱动程序。内核被映射到线性地址3GB开始处。

0.98.x

1992.9.28

①、改善对TCP/IP(0.8.1)网络的支持,纠正了extfs的错误。

②、重写了内存管理部分(mm),每个进程有4GB逻辑地址空间(内核占用1GB)。

③、从0.98.4开始每个进程可同时打开256个文件(原来是32个),并且进程的内核堆栈独立使用一个内存页面。

0.99.x

1992.12.13

重新设计进程对内存的使用分配,每个进程有4GB线性空间。不断地在改进网络代码。NFS支持。

1.0

1994.3.14

第一个正式版

1.2

1995.3.7

 

2.0.40

2004.2.8

源代码大小7.2MB(经gzip压缩后)

2.2.26

2004.2.25

源代码大小19MB(经gzip压缩后)

2.4.31

2005.6.1

源代码大小37MB(经gzip压缩后)

①、提供了大量的处理器芯片的支持,增加了对IA 64、S/390、SuperH这3种体系结构的处理器的支持。

②、对ISA 即插即用设备的支持,比如可以从一个即插即用的IDE控制器上启动系统。

③、增加对更多的文件系统支持,如新增加对Windows NT的NTFS,网络文件系统的NFS支持。

④、对USB总线的支持,如键盘、鼠标、音箱、Modem等等USB接口设备。

⑤、在内核级提供内建Java解释器的支持。

⑥、支持在SMP(对称多处理器系统)下的多个IO-APIC(输入输出的高级可编程中断控制器),提高了对高端服务器的支持效率。

⑦、支持多达10个IDE控制器。

⑧、支持到多达4GB的内存,16块以太网卡,同时支持最大容量为2GB的文件。

⑨新增支持ATM网络适配器等高速网络设。

2.6.14                                 

2005.11.9

源代码大小47MB(经gzip压缩后)

①、支持多处理器配置和64位计算。

②、支持实现高效率线程处理的本机POSIX线程库(NPTL)。

2.6.25

2008.4.17

源代码大小58MB(经gzip压缩后)

备注:。

Linus自己的内核已经丢失,现存的0.10版内核代码是TedTs'o当时保存下来的版本。另外,从0.95版开始,对内核的许多改进工作(提供补丁程序)均以其他人为主了,而Linus的主要任务是对内核的维护和决定是否采用某个补丁程序。

到现在为止,最新的内核版本是2008年4月4日公布的2.6.25版。其中包括大约16000个文件,使用gzip压缩后源代码软件包也有58MB左右!

版本术语

Alpha版本是内部测试版,是比Beta版还早的测试版,一般不向外部发布,会有很多Bug,除非你也是测试人员,否则不建议使用。

Beta版本是测试版,这个阶段的版本会一直加入新的功能。

RC版本(Release Candidate) 是发行候选版本。和Beta版最大的差别在于Beta阶段会一直加入新的功能,但是到了RC版本,几乎就不会加入新的功能了,而主要着重于除错。

RTM版本(Releaseto Manufacture)是给工厂大量压片的版本,内容跟正式版是一样的。

OEM版本是给计算机厂商随着计算机贩卖的,也就是随机版。只能随机器出货,不能零售。只能全新安装,不能从旧有操作系统升级。如果买笔记型计算机或品牌计算机就会有随机版软件。包装不像零售版精美,通常只有一面CD和说明书(授权书)。

RTL版本(Retail)是真正的正式版,正式上架零售版。

参考文献:《Linux内核完全剖析》 


  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值