Unix与linux均是是多用户、多任务的操作系统,也有多种版本。Unix诞生于20世纪70年代初,而Linux发明于20世纪90年代初;可以说Unix之于Linux属于承上启下的关系。
Unix诞生于贝尔实验室,而大名鼎鼎的贝尔实验室必须先了解一下。
一、贝尔实验室的始与终
贝尔实验室是一个有史以来最牛的实验室,一个号称改变世界的实验室,一个获得8项(13人)诺贝尔奖(其中7项物理学奖,1项化学奖)的实验室,同时还是一个有着3W多项专利的实验室。但是21世纪的今天,贝尔实验室逐渐落寞,那么其历史发展轨迹如何,可以看一下整理的如下几张图片:
由于贝尔是在1922年就去世了,因此贝尔实验室是由当时美国电话电报公司,即AT&T的总裁“华特·基佛德(Walter Gifford)”主导与西方电子公司创建的,总部位于美国新泽西。
贝尔实验室主要从事电信技术(数学、物理学、材料科学、计算机编程理论)等基础理论研究,同时也涉及电信网络的设备和软件;也就是说,贝尔实验室不仅做理论研究,而且还将理论研究变为产品,这就是所谓的“理论与实践相结合”吧,其主要的研究成果有:
以上就是AT&T旗下的贝尔公司的高光时刻,在20世纪80年代,由于AT&T不断地被拆分和重组,贝尔实验室也跟着树倒猢狲散了。
作为贝尔实验室的背后“大金主”AT&T虽然不断地拆分重组,但是拆分重组后形成了两个美丽国电信市场的两个寡头:AT&T与Verizon,继续活跃在世界通信领域的最前沿。
而贝尔实验室比较悲剧了,在没落的诺基亚旗下,只是一个小小的研究机构。
二、Unix系统的起源与发展
2.1、Unix起源
前面已经介绍了Unix诞生于贝尔实验室,但是创造了Unix的两位大人物必须先介绍一下:肯•汤普森(英文名KenThompson)与丹尼斯•里奇(英文名Dennis Ritchie);肯•汤普森的专业是电子工程,丹尼斯•里奇专业是应用数学。
Unix原本是肯•汤普森自己个人的一个项目,其邀请同在贝尔实验室的同事丹尼斯•里奇一起参与改进Unix项目。丹尼斯•里奇加入后,所使用的设计思路是著名的KISS原则,也就是英文名Keep it simple stupid的缩写,即“保持简单,傻瓜”的意思,也称为“懒人原则”,就是要把一个产品做得连白痴都会用。
在20世纪70年代,共修改了7个版本的Unix,其中前2个版本是基于汇编语言,难于移植与修改,因此只在实验室里面做研究应用;第3版开始,基于B语言修改后,发明了C语言,用C语言编写了第3版的Unix内核,标志着C语言正式踏上历史的舞台。
第4版开始,Unix开始面向公众,引起了学术界的广泛兴趣,并提出要Unix源码;等到第5版,为满足业界需求,出台了“仅用于教育目的”许可协议,遵循该协议的各大学可以使用Unix源码做教材授课,此时Unix与C语言得到迅速的传播;第6版时,出品Unix的贝尔实验室的母公司AT&T,发现Unix市场前景广阔,于是决定从下一个版本开始对Unix进行商业保护;第7版时,新的Unix许可证禁止大学使用Unix源码(需高价费用),给学生教学用都不行。
AT&T的这一行为让各高校和组织很不满,然后以伯克利大学为首的各大学、公司、组织通过第6版本的Unix源码(免费),对Unix进行了各种各样的改进和扩展,发布各种各样的Unix变种,其中最著名的是由Bill Joy(毕业于加利福尼亚州大学伯克利分校)扩展的Berkeley BSD Unix,后续许多开源的Unix操作系统都是基于BSD Unix发展来的。
而AT&T在第7版Unix基础上发布了Unix System系列,基于该系列扩展的系统基本都是闭源的。
2.2、Unix的发展
20世纪80年代开始,Unix系统形成了两大分支:其一是Berkeley BSD Unix(FreeBS、NetBSD、OpenBSD是开源Unix系统),其二是AT&T Unix System系列(基本是闭源Unix)。而Linux跟Unix完全没有关系,只是参考了Unix系统框架,但是Linux源代码完全是从头开始编写的,所以说业界称Linux为类Unix。
Unix系统以功能全面而稳定著称,一般与硬件厂商绑定(即出厂就固化在硬件厂商平台上)。在AT&T宣布收费后,IBM、HP、SUM、Microsoft、SGI等硬件公司购买了Unix授权后,也发布了针对自己硬件平台的Unix(Aix、HP-UX、Solaris、Xenix、IRIX等)。
因此,Unix在个人设备上比较少,一般是在要求安全的大型企业型系统上,比如银行、民航、电信等部门,它们一般都是固定机型的UNIX;电信一般用SUN(Solaris),民航一般用HP(HP-UX),银行一般用IBM(AIX)。
20世纪80年代末,随着AT&T的拆分,在1993年,Unix也被转手卖了,先卖给了Novell;在微软windows系统强势崛起之时,Novell感觉Unix前景不妙,于是在1995年,将其卖给了SCO公司,但是SCO公司没有及时付清尾款,Novell只卖了Unix源代码,保留了Unix的著作权。
Novell与SCO间的理不清的关系,这给后来Windows、Unix、Linux系统专利战争,及IBM、SCO的诉讼战争埋下伏笔(详细可看文章“一段关于 Unix、Linux 和 Windows 的暗黑史”)。
2.3、Apple的个人电脑与操作系统
谈起个人电脑与操作系统,不得不提起Apple,即现在大名鼎鼎的苹果公司;在个人电脑上,比IBM还早(apple在1976年制造了Apple I,IBM在1981年);在桌面操作系统上,也比windows还早。
(1)、早期Apple I/II是不带操作系统的,也没有GUI;
(2)、从macintosh开始,使用的苹果自研的系统Macintosh(也称为System x.x),后面命名为MAC OS 8/9;
(3)、在1988年,苹果公司也在创建Unix衍生出来的系统A/UX,用于Macintosh电脑上;
(4)、Macintosh现在简称为MAC,换过多种处理器架构,早期是摩托罗拉,90年代逐渐替换为PowerPC架构,21世纪之初换为Intel,明年即将换为ARM架构;
(5)、20世纪90年代Macintosh替换为PowerPC 架构的CPU时,A/UX系统并没很好支持,然后Apple公司抛弃了它;
如上图所示,当今使用的apple操作系统版本中,MAC OS X与MAC OS 8/9差距还是很大的;MAC OS 8/9是apple自研的操作系统;而MAC OS X是取BSD Unix(NextStep)、MAC OS 8/9、Mach系统精华的全新系统,内核为Unix,因此苹果的OS X系统是很稳定的。
2.4、Microsoft操作系统
1975就成立的微软,在上世纪80年代中,是操作系统竞争中的新生代。在当时如日中天的Unix下,Microsoft也基于Unix 7.0版本衍生了Xenix操作系统,该系统应用于intel的CPU上,后面发现Unix的版权限制很多,比尔盖茨决定要搞一个自己的操作系统,命运要掌握在自己手中,于是Windows计划开始了。
(1)、首先,Microsoft卖掉了Xenix,出售给了SCO;
(2)、然后,开始Windows开发计划,1985年出了第一版windows 1.0,但是市场反应不好;
(3)、当时IBM可是个人PC市场的老大哥,Microsoft决定拥抱IBM大腿,与其合作开发OS/2系统;但是以失败告终。
(4)windows NT出来后,Microsoft迅速占领了个人PC操作系统市场,后续的发展,大家都懂的。
三、Linux系统的起源与发展
对于Unix,Linux可以说是一个晚辈了,在1991年,Linux内核才出第一个版本,源于其遵循GPL协议完全开发源码,在20世纪90年代,使其衍生出各种版本,迅速流行开来。因为Linux与Unix的相似性,使其在终端市场不断蚕食Unix;现在也在个人PC市场上威胁的Windows的地位。
谈起Linux,必须介绍3个祖师级人物:Andrew S. Tanenbaum、Linus Torvalds、Richard Stallman;
(1)、Tanenbaum是荷兰阿姆斯特丹的Vrije大学计算机科学系的教授,因为AT&T禁止各大学用Unix进行授课,于是Tanenbaum教授参考了Unix架构,用C语言重新编写了Minix系统用于教学,没有使用Unix的代码,严格来讲不是Unix。
(2)、 Linus Torvalds在20世纪80年代末还是个学生,学习的操作系统课程正是Minix系统;因此,其参照Minix系统与BSD Unix的思路,又重新编写了Linux内核,也是没有使用Minix和Unix代码,因此也不是Unix。
(3)Richard Stallman其是GNU与自由软件基金会的创始人,崇尚软件自由,发布GPL协议许可。
真正的Linux发行版是由Linus Torvalds编写的Linux内核,加上Richard Stallman的各GNU软件组合而成的。现在Linux发行版本衍生出了好几个体系。
Linux的发行版非常的多,目前应用比较广泛的是Debian家族与RedHat家族、及SUSE系列;
(1)、Ubuntu是Debian家族的桌面版本,在PC端安装比较得多;
(2)、Fedora是Red Hat家族的桌面版本,Red Hat的新技术会在该版本上测试,因此Fedora适用于学习,喜欢新技术的可以安装该版本;
(3)、centos是Red Hat家族比较稳定的版本,开发源代码,许多Linux服务器就是用该版本进行部署;
(4)、SUSE是德国 SuSE Linux AG公司发行维护的Linux发行版,也是比较稳定的系统。
Linux发行版本很多,甚至许多版本的包管理工具都不一样,如上图所示,但是其内核都是一样的,因此,总体来讲都是相同的,目前最新的Linux内核版本为5.10,如下图所示: