《 跟老男孩学Linux运维:核心基础篇(上)(第2版)》 —1.2 Linux的起源

举报
华章计算机 发表于 2019/11/15 13:09:16 2019/11/15
【摘要】 本节书摘来自华章计算机《跟老男孩学Linux运维:核心基础篇(上)(第2版)》一书中第1章,第1.2节,作者是老男孩 。

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是一个非常棒的操作系统,它很像是一个非常聪明伶俐但不太听话的孩子,而开发者们在开发系统时,一方面想要继承它的“聪明伶俐”,另一方面又想改善它不听话的一面,故而会有如此考虑。

 image.png

图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扷nix,如图1-4所示。

image.png

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所示)。

 image.png

图1-5 Linux系统诞生发展过程中关键代表人物


【版权声明】本文为华为云社区用户转载文章,如果您发现本社区中有涉嫌抄袭的内容,欢迎发送邮件进行举报,并提供相关证据,一经查实,本社区将立刻删除涉嫌侵权内容,举报邮箱: cloudbbs@huaweicloud.com
  • 点赞
  • 收藏
  • 关注作者

评论(0

0/1000
抱歉,系统识别当前为高风险访问,暂不支持该操作

全部回复

上滑加载中

设置昵称

在此一键设置昵称,即可参与社区互动!

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。

*长度不超过10个汉字或20个英文字符,设置后3个月内不可修改。