Linux的前世今生
Linux是什么(UNIX-Minix-Linux)
计算机主机由一堆硬件所组成,为了有效地控制这些硬件资源,于是乎就有操作系统的产生。
操作系统除了有效地控制这些硬件资源的分配,并提供计算机运算所需要的功能(如网络功能)之外,为了要提供程序员更容易开发软件的环境,所以操作系统也会提供一整组系统调用接口来给程序员开发用!
因此只要能够让硬件准备妥当的情况,就是一个普通的操作系统,Linux就是一个操作系统。
操作系统指的是(系统调用和内核部分),不包括应用程序
Windows操作系统本来就是针对x86硬件架构进行的设计,所有它当然只能在x86的计算机上运行,在不同的硬件架构平台当然就无法运行,也就是说,每种操作系统都是在它专门的硬件架构上运行的,Linux由于是开源的操作系统,所以它的程序代码可以被修改成适合在各种硬件架构上面运行,Linux是具有“可移植性”,这是一个很重要的功能。
为什么说Linux是很稳定的操作系统?它是如何来的?
1969年以前:MIT与GE的“Multics”系统
当时的学校里只有一代主机可使用,如果多人要使用怎么办,20世界60年代初麻省理工学院发展了所谓的:
兼容分时系统(这个兼容分时系统可以说是近代操作系统的鼻祖,它可以让多个用户在某一段时间内分别使用CPU的资源,感觉上你会觉得大家是同时使用该主机的资源,实际上是CPU在每个用户的工作之间进行切换,在当时这可是跨时代的技术)
此时的终端只具备输入与输出功能,本身完全不具备任何运算或软件安装的能力,而且比较先进的主机大概也只能提供30个左右的终端而已。
为了强化主机功能让更用户使用主机资源,1965年前后贝尔实验室(Bell)、麻省理工学院(MIT)以及通用电器公司(GE)共同发起了Multics计划,目的是时间300个以上的终端用于联机使用,1969年前后计划进度落后,资金也短缺,所有该计划虽然在研究,但是贝尔实验室还是退出了该计划的研究工作。
1969年Ken Thompson的小型file server system
Ken Thompson为参加Multics计划中的人员之一,从该计划中收到启发。
因为自己的需求,系统开发一个小小的操作系统以供自己使用。
经过4个星期的奋斗,它终于以汇编语言写出了一组内核程序,同时包括一些内核工具程序,以及一个小小的文件系统,这个系统就是UNIX的原型。
Ken Thompson的这个文件系统有连个重要的概念:
1.所有的程序或系统设备都是文件;
2.不管程序本身还是附属文件,所写的程序只有一个目的,且要有效地完成目标。
这些概念在后来对于Linux的发展有相当重要的影响
1973年:UNIX的正式诞生
由于Ken Thompson写的那个操作系统太好用了,所以在贝尔实验室内部广为流传,并且数度经过改版。
Ken Thompson与Ritchie合作想将Unics改以高级程序语言来编写,当时现成高级程序语言有B语言,但是由于B语言所编译出来的内核性能不是很好,后来Dennis Ritchie将B语言重新改写成C语言,再以C语言重新改写并变异了Unics内核,最后命名并发行了UNIIX的正式版本。
由于UNIX是以比较高级的C语言编写,相对于汇编语言需要与硬件有密切的配合,高级的C语言与硬件的相关性没有这么大,所有,这个改变也使UNIX很容易被移植到不同的机器上。
1977年重要的UNIX分支----BSD的诞生
因为UNIX的可移植性,在1973年与加州伯克利大学合作
伯克利大学取得了内核源码后,修改成了适合自己机器的版本,并且同时增加了很多工具软件与编译器,最终命名为Berkeley Software Distribution(BSD)
1979年:重要的System V架构与版权声明
商业公司开始了UNIX的操作系统开发
早期每一家生产计算机硬件的公司还没有所谓的“协议”的概念,所有每一个计算机公司出产的硬件自然就不相同,因此他们必须要为自己的计算机硬件开发合适的UNIX系统。
早期的UNIX只能与服务器或大型工作站中使用,但是到了1979年AT&推出了system V第七版后,这个情况就有点改善了。(特别提到“不可对学生提供源码码”的严格限制。)
这一版最重要的特色是可以支持x86架构的个人计算机,也就是说system V可以在个人计算机上面安装与运行。
目前被称为“纯种的UNIX”指的就是system V以及BSD这两套软件。
1984之一:x86架构的Minix操作系统开始编写并与两年后诞生
1979年的版权声明,不能为学生提供源代码,影响最大的是学校老师,没有内核源代码如何教育学生
既然unix第七版可以移植到Intel x86架构上,那么是否可以将UNIX移植到x86上面呢!
有了这个想法Tanenbaum教授动手写了Minix这个UNIX-like内核程序,并于1986年完成,此版本也到此为止,并没有上升到很高的高度。
1984之二:GNU计划的推广
1984年,斯托曼开始奋起了GNU计划目的:
建立一个自由、开放的UNIX操作系统
斯托曼编写了gcc编译器
成立自由软件基金会
GNU的通用公共许可证
1985年为了避免GNU所开发的自由软件被其他人所利用而成为专利软件,所有他与律师草拟了有名的:“通用公共许可证”
1991年:芬兰学生Linus Torvalds的一则简讯
1991年芬兰赫尔辛基大学的Linus Torvalds在BBS上面贴了一则信息,宣城他以bash、gcc等GNU的工具写了一个小小的内核程序,该内核程序可以在intel的386机器上面运行,折让很多人感兴趣,从此开始了Linux的不平凡之路。
林纳斯.托瓦兹的Linux
与Minix之间
林纳斯.托瓦兹1969年出生,外祖父是赫尔辛基大学的统计学家,从小林纳斯.托瓦兹管理一些微型计算机
1988年林纳斯.托瓦兹顺利进入了赫尔辛基大学计算机科学系
上学期间想搞一台UNIX来玩,它购买了intel386机器,并使用了Tanenbaum教授动手写的Minix系统
对386硬件的多任务测试
为了彻底发挥386的性能,托瓦兹花了不少时间在测试386机器,它的主要测试就是测试386的多任务性能
首先,它写了3个小程序 ,一个程序会持续输出A,一个会持续输出B,最后一个会将两个程序进行切换。
它将三个程序同时执行,结果,它看到屏幕上很顺利地一直出现ABABAB,它知道,它成功了
。
初次发布Linux0.02
它发现Minix虽然真的很棒,但是Tanenbaum教授就是不愿意进行功能的加强,导致那些工程师在操作系统功能上面的需求无法满足。
这时候年轻的托瓦兹就上:“既然如此,那我为何不自己来改写一个我想要的操作系统?”于是他就开始了内核程序的编写。
有趣的是,因为托瓦兹放置内核的那个FTP网站的管理员将放置的目录起名为Linux,从此,大家便称这个内核为Linux
为了让自己的Linux系统兼容UNIX系统,于是托瓦兹开始参考标准的POSIX规范修改Linux
Linux的发展:虚拟团队的产生
单人维护阶段
广大黑客志愿者加入阶段
内核功能详细分工发展阶段
1994年完成了Linux内核正式版,Version 1.0
1996年完成了2.0版
2011年完成了3.0版
2015年发布了4.0版
此外还指明了企鹅为Linux的吉祥物
Linux发行版本
– | RPM软件管理 | DPKG软件管理 | 其他未分类 |
---|---|---|---|
商业公司 | RHEL(Red Hat) | Ubutu(Canonical Ltd.) | – |
商业公司 | suse(Mircro Focus) | – | – |
网络社区 | Fadora | Debian | Gentoo |
网络社区 | CentOs | B2D | – |
网络社区 | openSUSE | – | – |