在你要学习Linux之前有必要先了解下它的发展史,很有趣哦,学习下那些工程师的钻研精神。
Linux的内核原型是1991年由托瓦兹(Linus Torvalds)写出来的,他是怎么写出来的?Linux的开发为什么这么迅速?它为什么是免费的?为什么有那么版本(distributions)? 下面认识下吧:
早期的Linux是针对386来开发的,由于Linux只是一套操作系统并不含有其他的应用程序,下载了Linux内核并且实际安装之后,只能看着计算机运行,所以为了自己的需求,再在Linux上面安装所需要的软件。不同的硬件的功能函数并不相同,所以同一套操作系统是无法
在不同的硬件平台上面运行的。
Windows操作系统是针对个人计算机X86架构的硬件去设计的,所以只能在X86个人计算机动作;不过,Linux由于是Open Source(开放源代码)的操作系统,它的程序代码可以被修改成适合在各种机器上面运行,也就是说Linux具有“可移植性”!
Linux提供了一个完整的操作系统当中最底层的硬件控制与资源管理的完整架构,这是沿袭了Unix良好的传统而来的,所以相当稳定并且功能强大。让我们了解下Linux之前的UNIX的历史
Linux的老大哥UNIX发行于20世纪70年代,当时就是一个相当稳定而成熟的操作系统了。
早期的计算机还没普遍你很难碰到,那会的计算机架构不好使用,指令周期还慢,操作接口也麻烦,输入设备只有卡片阅读机,输出设备就打印机。要知道那个时代编写程序很麻烦,程序员必须先将程序相关的信息在读卡纸上打洞,然后再将读卡纸插入卡片阅读机来将
信息读入主机中运算,如果程序有地方写错,光重新打卡就惨的不得了,还有主机少,用户多,得等啊!太浪费时间了!(这些小篇之前还真不了解,学习了~)
后来硬件改进了,有键盘了,不过还是主机少用户多,还得等。60年代初麻省理工学院开发了"分时操作系统",可以让大型主机提供多个终端机连接进入主机。这也就是近代操作系统的鼻祖,让多个用户在某一段时间内分别使用CPU资源,别误认为大家是同时在使用该主
机的资源,事实上CPU是在每个用户的工作之间进行切换。
1965年前后,由贝尔实验室(Bell),麻省理工学院(MIT)及通用电气公司(GE)共同发起的Multics(复杂、多数的意思)的项目,就是让大型主机可以同时提供300台以上的终端机使用。69年前后,项目进度落后,资金短缺贝尔实验室就退出了,但最终项目组还是开发出了他们的系统,这期间培养出来的人才相当优秀。Ken Thompson(肯 汤普森)就是当时其中的一位!
汤普森希望开发一个小的操作系统供自己的需求,独自经过4个星期的奋斗,以汇编语言写出了一组内核程序,同时包括一些内核工具程序,以及一个小的文件系统,这就是UNIX的原型。这个小系统当时在贝尔实验室内部相当好用,戏称这个系统为Unics(当时还未有UNIX名称)。但因为这个系统自身是汇编语言写的,汇编语言具有专一性,当时的计算机架构都不太相同,所以每次安装到不同的机器都要重新编写汇编语言,不方便啊!后来Thompson与Ritchie合作将Unics改成更高级的程序语言来编写。当时现成的高级语言有B语言,但B语言编译出来的内核性能不是很好,后来Ritchie就以C语言重新改写与编译Unics的内核,相对于汇编语言需要与硬件有密切的配合,高级C语言与硬件的相关性就没有那么大了,所以这个改变也使得UNIX很容易被移植到不同的机器上,最后发行出UNIX的正式版本!
1977年又出现一个重要的UNIX分支——BSD诞生
当时UNIX是较开放的,是以高级的C语言写成的,具有可移植性,只要取得UNIX的源码,针对大型主机的特性加以修订原有的源码(Source Code),就可以将UNIX移植到另一台不同的主机上。
73年UNIX与学术界合作开发!柏克莱大学的Bill Joy在取得UNIX的内核源码后,开始修改成适合自己机器的版本,同时增加了很多工具与编译程序,最终将它命名为Berkeley Software Distribution(BSD),这就是UNIX很重要的一个分支。Bill Joy也是Sun这家公司的创办
者(感觉这群高级黑客太牛了!)之后很多商业公司开始了UNIX操作系统的开发。
1984年Minix操作系统诞生
由于贝尔实验室隶属于美国电信大厂AT&T公司的,后来AT&T由于商业的考虑以及在当时实环境下的思考,将UNIX的版权收回去,还特别提到了“不可对学生提供源码”的严格限制。这就对学校里的教导UNIX内核源码相关学问的教授有影响了,没内核源码如何教导学生认
识UNIX呢?于是乎,AndrewTanenbaum(谭宁邦)教授自己动手写了Minix这个UNIX Like的内核程序!在编写过程中为了避免版权纠纷,谭宁邦完成不看UNIX内核源码!84年开始编写,86年完成。Minix不是完成免费的,必须通过磁盘/磁带购买才行,但会附上Minix的源码,意味着用户可以学习Minix的内核程序设计概念(这个特色对于Linux的开始开发阶段,可是有很大关系!)