Linux简介
# Linux是什么?
与大家熟知的 Windows 操作系统软件一样,Linux 也是一个操作系统软件。但是与Windows 不同的是,Linux 是一套开放源代码程序的、并且可以自由传播的类 Unix操作系统软件。其在设计之初,就是基于 Intel x86 系列CPU 架构计算机的。它是一个基于POSIX的多用户、多任务并且支持多线程和多 CPU 的操作系统。
------
POSIX 全称为 Portable Operating System Interface,中文翻译为可移植操作系统接口,POSIX 标准定义了操作系统应该为应用程序提供的接口标准。
------
Linux 是由世界各地成千上万的程序员设计和开发实现的。当初开发 Linux 系统的目的就是建立不受任何商业化软件版权制约的、全世界都能自由使用的类 Unix 操作系统兼容产品。在过去的20年里,Linux 系统主要被应用于服务器端、嵌人式开发和PC桌面3大领域,其中服务器端领域是重中之重。
我们熟知的大型、超大型互联网企业(百度、騰讯、sina、阿里等)都在使用 Linux系统作为其服务器端的程序运行平台,全球及国内排名前 1000 的 90%以上的网站使用的主流系统都是 Linux 系统。
从上面的内容可以看出,Linux 操作系统之所以如此流行,是因为它具备如下这些优秀的特点。
- 属于自由软件,开放源代码,可自由修改。
- 与Unix兼容,可以说是Unix在个人计算机上的克隆版,具备 Unix 几乎所有的优秀特性。
- 可自由传播,无任何商业化版权制约。
- 适合 intel 等×86 CPU 系列架构的计算机。
Linux的起源
关于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 等。图中给出了Unix 系统诞生、发展的时间及版本分支的介绍,供参考。
从图中可以看到,本书的“主人公”Linux 系统,诞生于1991年左右,因此,可以说 Linux 是从Unix 发展而来的。
Unix 的5大优秀特性
细心的读者应该会看到前文曾提到 “类 Unix 操作系统兼容产品”或“类 Unix 操作系统软件”?为什么都要开发类 Unix 系统呢?那是因为 Unix 是一个非常棒的操作系统,它很像是一个非常聪明伶俐但不太听话的孩子,而开发者们在开发系统时,一方面想要继承它的“聪明伶俐”,另一方面又想改善它不听话的一面,故而会有如此考虑。
那么 Unix 都有哪些 “聪明伶俐”的特点呢?下面一起来看看吧。
-
技术成熟,可靠性高
使用 Unix 系统时,即使连续运行若干年也无须重启,它依然可以工作得非常好。可以毫不夸张地说,只要计算机硬件不坏,Unix 就会很难出现问题。 -
极强的可伸缩性
Unix 支持的 CPU 处理器体系架构非常多,包括 Intel/AMD 及 HP-PA、 MPS、PowerPC、UItraSPARC、ALPHA 等 RISC 芯片,以及 SMP、MPP 等技术。
提示:可能是由于早期各大厂商都基于 Unix进行适合自己的硬件开发,因此,Unix支持的 CPU 架构才更多。 -
强大的网络功能
Internet 互联最重要的协议 ICP/IP 就是在 Unix 上开发和发展起来的。此外,Unix还支持非常多的常用的网络通信协议,如 NFS、DCE、IPX/SPX、SLIP、PPP 等。 -
强大的数据库支持能力
Oracle、DB2、Sybase、Informix 等大型数据库,都将 Unix 作为其主要的数据库开发和运行平台,一直到目前为止,依然如此。 -
强大的开发功能
正是 Unix 促使了 C 语言的诞生,并相互促进与发展,成为当时工程师的首选操作系统和开发环境。互联网早期具有重大意义的软件新技术的出现几乎都在Unix上,例如:TCP/IP、 WWW、Java、XML 等。
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 平台,这个系统的名宇为 Minixo。不过,由于谭邦宁开发这个 Minix 系统的目的只是用于教学,因此,Minix 系统的
功能无法满足商用的需求,但是 Minix 的产生对于 Linux 的诞生又是至关重要的一个关键成因,且看下文。
Linux 的诞生
Linux 系统的诞生开始于芬兰赫尔辛基大学的一位计算机系的学生,其名字为 Linus Torvalds。 在大学期间,他接触到了学校的 Unix 系统,但是,当时的 Unix 系统仅为一台主机,且对应了多个终端,使用时存在操作等待时间很长等一些体验极差的问题,无法满足年轻的 Linus Torvalds 的使用需求。因此他就萌生了自己开发一个 Unix 的想法,
不久之后,他就找到了前文提到的谭邦宁教投开发的用于教学的 Minix 操作系统,与我们现在一样,他将 Minix 安装到了他的 I386个人计算机上。此后,Torvalds 又开始陆续阅读了 Minix 系统的源代码,从 Minix 系统中学到了很多重要的系统核心程序设计理念和和设计思想,从而逐步开始了 Linux 系统维形的设计和开发。
Linux 的标志和吉祥物为一只名字叫作 Tux 的企鹅。
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.kernelorg),注意,这里公开的 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 Flat 9.0 版本的支持,标志着 Red Hat Linux 的正式完结。原本的桌面版 Red Hlat Linux 发行包则与来自民间的 Fedora 计划合并,成为 Fedora Core 发行版本。Red Hat 公司不再开发桌面版的 Linux 发行包,而将全部力量集中在服务器版的开发上,也就是Red Hat Enterprise Linux 版。
13)2005年10月,RHEL4 发布。
14)2007 年3月,主流版本 RHELS 发 布,Cent OS 系统开始在中国互联网公司流行。
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 方面做了很大优化。
总结:上面涉及的一些重要知识点
Linux 发展历程中的相关重要人物
Richard Stallman 自由软件运动发起人
Andrew S. Tanenbaum Minix开发者
Linus Torvalds 在Minix上写Linux内核,Linux之父
关于自由软件与 FSF
1、自由软件:(freedom自由,而非free免费),自由不一定意味着免费。例如,Red Hat Linux 自由但不免费,CentOS Linux 则是自由且免费的。
简单地理解,自由软件的核心就是没有商业化软件版权制约,源代码开放,可以无约束地自由传播。
自由软件关乎使用者运行、复制、发布、研究、修改和改进该软件的自由。更精确地说,自由软件赋予软件使用者四种自由,具体如下:
- 不论目的为何,有运行该软件的自由。
- 有研究该软件如何运行,以及按需改写该软件的自由
- 重新发布拷贝的自由。
- 有改进该软件,以及向公众发布改进版本的自由,这样整个社群都可受惠。同样,取得该软件的源码为达成此目的之前提。
2、自由软件基金会 FSF
FSF (Free Software Foundation)的中文意思是自由软件基金会,是 Richard Stallman于1984年发起和创办的。FSF 的主要项目是 GNU 项日。它的目标是建立可自由发布和可移植的类 Unix 操作系统产品。GNU 项目本身产生的主要软件包括:Emnacs 编辑软件、gcc编译软件、bash 命令解释程序和编程语言,以及gawk (GNU's axk)等。
关于GNU
GNU 的全称为 GNU's not Unix,意思是“GNU 不是 UnixGNU 计划,又称革奴计划,是由 Richard Stallman 在 1984 年公开发起的,是FSF 的主要项目。前面己经提到过,这个项目的目标是建立一套完全自由的和可移植的类 Unix 操作系统。
GNU 类 Unix 操作系统是由一系列应用程序、系统库和开发工具构成的软件集合(例如,Emacs 编辑软件、gcc 编译软件、bash 命令解释程序和编程语言,以及gawk等),并加上了用于资源分配和硬件管理的内核。但是GNU 自己的内核 Hurd 仍在开发中,离实用还有一定的距离。因此,这个GNU 系统并没有流行起来。现在的GNU 系统通常是使用 Linux 系统的内核、再加上GNU 项目贡献的一些组件,以及其他相关程序组成的,这样的组合被称为 GNU/Linux操作系统。
到 1991年Linux 内核发布的时候,GNU 项目已经完成了除系统内核之外的各种必备软件的开发。在Linus Torvalds
和其他开发人员的努力下,GNU项目的部分组件又运行到了Linux 内核之上,例如,GNU项目里的 Emacs、gee、bash、
gaxk等,至今都是 Linux 系统中很重要的基础软件。
关于GPL和LGPL
GPL 全称为 General Public License,中文名为通用公共许可,由自由软件基金会 (Free Software Foundation)创建,是一个最著名的开源许可协议。Linux 内核就是在 GPL许可下发布的。
1934年,Richard Stallman 发起开发自由软件的运动后不久,在其他人的协作下,他创立了通用公共许可证(GPL),这对推动自由软件的发展起到了至关重要的作用,那么,这个GPL 到底是什么意思呢?
简单的理解,GPL 的核心,是保证任何人有共享和修改自由软件的自由,任何人有权取得、修改和重新发布自由软件源代码的权利,但都必须同时给出具体更改的源代码。
LGPL
LGPL (Lesser General Public License)相对于 GPL 则较为宽松,其允许不公开全部源代码,这为基于 Linux 平台开发商业软件提供了更广阔的空间。对于该知识点,本书仅提及一下,有兴趣的读者可到网上查询相关信息。