1.2 Linux的起源
1.2.1 Unix的历史
说到Linux的起源,就不得不提到Linux之前的Unix系统。Unix系统于1969年在AT&T的贝尔实验室诞生,20世纪70年代,它逐步盛行,这期间,又产生了一个比较重要的分支,即大约诞生于1977年的BSD(Berkeley Software Distribution)系统。从BSD系统开始,各大厂商及商业公司开始了根据公司自身的硬件架构,并以BSD系统为基础进行Unix系统的研发,从而产生了各种版本的Unix系统,例如,SUN公司的Solaris,IBM公司的AIX,HP公司的HP UNIX等。图1-3给出了Unix系统诞生、发展的时间及版本分支的介绍,供读者参考。
从图1-3中可以看到,本书的“主人公”Linux系统,诞生于1991年左右,因此,可以说Linux是从Unix发展而来的。
1.2.2 Unix的5大优秀特性
细心的读者应该会看到前文曾提到“类Unix操作系统兼容产品”或“类Unix操作系统软件”?为什么都要开发类Unix系统呢?那是因为Unix是一个非常棒的操作系统,它很像是一个非常聪明伶俐但不太听话的孩子,而开发者们在开发系统时,一方面想要继承它的“聪明伶俐”,另一方面又想改善它不听话的一面,故而会有如此考虑。
图1-3 Unix诞生及版本分支发展简略图解
那么Unix都有哪些“聪明伶俐”的特点呢?下面一起来看看吧。
❏技术成熟,可靠性高
使用Unix系统时,即使连续运行若干年也无须重启,它依然可以工作得非常好。可以毫不夸张地说,只要计算机硬件不坏,Unix就会很难出现问题。
❏极强的可伸缩性
Unix支持的CPU处理器体系架构非常多,包括Intel/AMD及HP-PA、MIPS、PowerPC、UltraSPARC、ALPHA等RISC芯片,以及SMP、MPP等技术。
提示:可能是由于早期各大厂商都基于Unix进行适合自己的硬件开发,因此,Unix支持的CPU架构才更多。
❏强大的网络功能
Internet互联最重要的协议TCP/IP就是在Unix上开发和发展起来的。此外,Unix还支持非常多的常用的网络通信协议,如NFS、DCE、IPX/SPX、SLIP、PPP等。
❏强大的数据库支持能力
Oracle、DB2、Sybase、Informix等大型数据库,都将Unix作为其主要的数据库开发和运行平台,一直到目前为止,依然如此。
❏强大的开发功能
正是Unix促使了C语言的诞生,并相互促进与发展,成为当时工程师的首选操作系统和开发环境。互联网早期具有重大意义的软件新技术的出现几乎都在Unix上,例如:TCP/IP、WWW、Java、XML等。
1.2.3 Unix操作系统的革命
20世纪70年代中后期,由于各厂商及商业公司开发的Unix及内置软件都是针对自己公司的特定硬件而进行的,因此在其他公司的硬件上基本上无法直接运行,而且当时没有人对开发基于x86架构CPU的系统感兴趣。另外,20世纪70年代末,Unix又面临了突如其来的被AT&T回收版权的重大问题,特别是要求禁止对学生群体提供Unix系统源代码,这样的问题一度引起了当时Unix业界的恐慌,也因此产生了种种商业纠纷。
由于Unix面临版权回收问题,以及代码不开源等问题,这直接或间接地导致了新的类Unix系统的诞生以及自由软件运动的建立和发展。
1984年,Richard Stallman发起了开发自由软件的运动,并成立了自由软件基金会(Free Software Foundation,FSF)和GNU项目。当时发起这个自由软件运动和创建GNU项目的目的其实很简单,就是想开发一个类似于Unix系统、并且是自由软件的完整操作系统,也就是要解决20世纪70年代末Unix版权问题以及软件源代码面临闭源的问题,这个系统称为GNU操作系统。
也是在20世纪80年代初期,同样是由于之前的Unix系统版权和源代码限制等问题,使得当时大学里教学Unix系统的束缚很大。因此,当时的一个大学的教授,名为Andrew Tanenbaum(谭邦宁),于1984年(大概)开始着手编写新的用于教学的Unix系统,目标是开发新的类Unix系统应尽可能地与原有的Unix系统兼容,并且可以运行于x86 PC平台,这个系统的名字为Minix。
不过,由于谭邦宁开发这个Minix系统的目的只是用于教学,因此,Minix系统的功能无法满足商用的需求,但是Minix的产生对于Linux的诞生又是至关重要的一个关键成因,且看下文。
1.2.4 Linux的诞生
Linux系统的诞生开始于芬兰赫尔辛基大学的一位计算机系的学生,其名字为Linus Torvalds。在大学期间,他接触到了学校的Unix系统,但是,当时的Unix系统仅为一台主机,且对应了多个终端,使用时存在操作等待时间很长等一些体验极差的问题,无法满足年轻的Linus Torvalds的使用需求。因此他就萌生了自己开发一个Unix的想法,不久之后,他就找到了前文提到的谭邦宁教授开发的用于教学的Minix操作系统,与我们现在一样,他将Minix安装到了他的I386个人计算机上。此后,Torvalds又开始陆续阅读了Minix系统的源代码,从Minix系统中学到了很多重要的系统核心程序设计理念和设计思想,从而逐步开始了Linux系统雏形的设计和开发。
Linux的标志和吉祥物为一只名字叫作Tux的企鹅——Torvalds’Unix,如图1-4所示。
图1-4 企鹅Tux
1.2.5 Linux的发展历程
1.Linux的发展历程简介
1)1984年,Andrew S.Tanenbaum开发了用于教学的Unix系统,命名为Minix。
2)1989年,Andrew S.Tanenbaum将Minix系统运行于x86的个人计算机平台上。
3)1990年,芬兰赫尔辛基大学学生Linus Torvalds首次接触Minix系统。
4)1991年,Linus Torvalds开始在Minix上编写各种驱动程序等操作系统内核组件。
5)1991年底,Linus Torvalds公开了Linux内核源码0.02版(http://www.kernel.org),注意,这里公开的Linux内核源码并不是我们现在使用的Linux系统的全部,而仅仅是Linux内核kernel部分的代码。
6)1993年,Linux 1.0版发行,Linux转向GPL版权协议。
7)1994年,Linux的第一个商业发行版Slackware问世。
8)1995年,Red Hat软件公司成立,同年发布了Red Hat Linux 2.0。
8)1996年,美国国家标准技术局的计算机系统实验室确认Linux版本1.2.13(由Open Linux公司打包)符合POSIX标准。
9)1997年,Red Hat Linux 5.0发布,它支持Intel、Alpha和Sparc平台以及大多数的应用软件。极其简单易用的RPM模块化的安装、配置和卸载工具,使程序的安装可在15分钟内完成。软件升级也更加方便了。
10)1999年,Linux的简体中文发行版问世。
11)2003年4月,Red Hat Linux 9.0发布。其重点放在改善桌面应用方面,包括改进安装过程、更好的字体浏览、更好的打印服务等。2003年,Red Hat的Linux市场份额为80%以上。
12)2004年4月,Red Hat公司正式停止对Red Hat 9.0版本的支持,标志着Red Hat Linux的正式完结。原本的桌面版Red Hat Linux发行包则与来自民间的Fedora计划合并,成为Fedora Core发行版本。Red Hat公司不再开发桌面版的Linux发行包,而将全部力量集中在服务器版的开发上,也就是Red Hat Enterprise Linux版。
13)2005年10月,RHEL4发布。
14)2007年3月,主流版本RHEL5发布,CentOS系统开始在中国互联网公司流行。
15)2010年4月,RHEL6(RedHat Enterprise Linux 6.0)BETA测试版发布。
16)2014年6月RedHat Enterprise Linux 7.0发布,RHEL7.0版本相较于RHEL6.0以前的版本有了较大的变化,例如,内核版本升级到3.10以上,系统启动和基本管理变化较大,文件系统也由传统的ext改为xfs,同时在大数据、云计算、Docker方面做了很大优化。
2.Linux发展历程中的相关人物
我们在使用优秀的Linux系统时,一定要向前辈们致以深深的敬意,没有他们,就没有今天优秀的Linux系统存在(如图1-5所示)。
图1-5 Linux系统诞生发展过程中关键代表人物