Minix
Torvalds大学期间通过开源的Minix学习到了很多内核程序设计的设计概念。
对386硬件的多任务测试
多任务即为CPU在不同的任务之间快速切换,而人感觉不出切换的时间。正是这个原因,同时开两个文件可以比先后开两个文件耗时一点点。
早期x86计算机对于多任务的性能不佳。386计算机推出后情况好了很多。Torvalds在他的386计算机上成功实现了多任务测试。
※要达到多任务(Multi-Tasking)的环境,除了硬件(主要是CPU)需要能够具有多任务的特性外,操作系统也需要支持这个功能!
初次释出Linux0.02
因不满足于Minix,Torvalds开始自己开发操作系统内核。好在有GNU项目提供的bash工作环境软件以及GCC编译程序等自由软件。开发结束后他将内核上传到了网上(FTP文件夹的名字恰好是Linux)供人们下载。
同时为了兼容UNIX系统,Torvalds为了让所有软件都可以在Linux上运行,他开始参考POSIX规范。从此Linux开始广泛流传并大受欢迎。
※POSIX是可携式操作系统接口(Portable Operating System Interface),重点在于规范内核与应用程序之间的接口。
Linux开发:虚拟团队的产生
单一个人维护阶段
Torvalds发布的Linux内核放置在FTP上面,并告知大家新的版本信息,等到用户下载了这个内核并且安装之后,如果发生问题,或者是由于特殊要求需要某些硬件的驱动程序,那么这些用户就会主动反馈给Torvalds。在他能够解决的问题范围内,他都能很快速地进行Linux内核的更新与排错。
广大志愿者加入阶段
因为Linux内核是开源的,所以志愿者很容易就能够跟随Linux的原本设计架构,并且写出兼容的驱动程序或者软件。
因为这种随时都有程序代码加入的状况,于是Linux便逐渐开发成具有模块的功能。就是将某些功能独立于内核之外,在需要的时候才加载到内核中。如此一来,如果有新的硬件驱动程序或者其他协议的程序代码进来时,就可以模块化,大大增加了Linux内核的可维护能力!
内核功能细部分工阶段
越来越多的人成为了Torvalds的开发副手,自愿传送修补程序的黑客志愿者。他们其实都没有见过面,称这群人为虚拟团队。为了虚拟团队数据的传输,Linux成立了内核网站www.Kernel.org
1994年,虚拟团队完成了Linux的内核正式版Version 1.0
1996年,更新了Version 2.0
在1994年之后,Linux便被移植到很多的硬件上面去了。除了x86之外,IBM HP Sun等公司的硬件也都有被Linux支持。
Linux的内核版本
内核版本命名一般是:
主版本.次版本.释出版本-修改版本
如2.6.18-92.e15
次版本号为奇数表示开发中版本,为偶数表示稳定版本。
释出版本则是在主次版本架构不变的情况下,新增的功能累计到一定程度后所新释出的内核版本。
而由于Linux内核是使用GPL的授权,因此大家都能够进行内核程序代码的修改。因此如果有针对某个版本的内核修改过部分的程序代码,那么那个被修改过的新的内核版本就可以加上修改版本了。
Linux的内核版本和distribution版本不是一个概念。
Linux distributions
可完全安装的Linux发布套件
很多商业公司或者非盈利团体将Linux内核加上可运行的软件集成起来,加上自己具有创意的工具程序,这个工具程序可以让用户以光盘或者通过网络直接安装管理Linux系统。这个”Kernel+Softwares+Tools”的可完全安装的系统我们称之为Linux distribution
各大Linux Distributions的主要异同:支持标准
为了让各大Linux Distributions不至于差异太大,有Linux Standard Base(LSB)和目录架构的File system Hierarchy Standard(FHS)来规范开发者。
基本上,每个Linux distributions除了架构的严谨度和选择的套件内容外差异并不太大。
Distributions主要分为两大系统:一是使用RPM方式安装软件的系统(Red Hat等) 二是使用Debian的dpkg方式安装软件的系统(Ubuntu等)
Linux在中国
中国台湾地区发起的CLE项目开发了很多中文套件及翻译了很多的英文文件。
选择适合的Linux distribution
先选定一个版本,从头彻尾地了解它,继续使用其他的版本时就可以很快进入状况。