Linux【1】--Linux初识

一、Linux那些事

Linux诞生于上世纪90年代,它的诞生离不开两个重要支柱,就是Unix和和GNU Project为核心的自由软件运动。

其中Unix与Linux内核有直接血缘关系。赫尔辛基大学学生Linus Torvalds在1991年8月,以1987年Andrew S.Tanenbaum发布的一个用于教学的类Unix系统Minix为蓝本开发了一套新的兼容80386处理器操作系统内核,原代码放在芬兰网上最大的ftp站上,这个就是Linux 0.0.1版,Linux的内核发展到现在已经是一个非常成熟的操作系统内核了,最新稳定的版本为3.3.2[1]。

当然,用户单凭一个操作内核是什么都做不了的,要让一个操作系统能够工作,还需要外壳、编译器(Compiler)、函数库(Libraries)、各种实用程序和应用程序等。GNU Project就与Linux除了内核外的大部分重要软件的诞生密切相关。

GNU Project是由自由软件运动[1]的精神领袖,著名黑客Richard M. Stallman在1983年发起的, GNU Project致力于开发一个自由并且完整的类Unix操作系统,包括软件开发工具和各种应用程序。到1991年 Linux 内核发布之前的时候,GNU已经几乎完成了除了系统内核之外的各种必备软件的开发,但是其操作系统内核GNU Hurd[2]没能够充分吸引开发者,直接导致了GNU的未能完成。Linux内核的发布正好恰逢其会,两者一结合,就诞生了Linux操作系统。

所以,Linux操作系统正式名称应该为GNU/Linux,几乎所有 Linux发行版本中都使用了大量的GNU软件。

当然,除了少数Linux专家之外,多数人是没有能力去选择安装并配置好所有的外围软件的,好在Linux操作系统遵从GNU通用公共许可证(GNU Public License,简称GPL)[1]的规定,因此在不违反GPL规定的前提下,个人,社区,以及商业公司都可以能够自由地把选好的Linux内核、外壳、库、开发工具、外围软件归档在一起进行发布,这样被发布的一个集合体就是我们说的某一种发行版本。

二、Linux 版本

媒体上在介绍Linux时最常提到的一个词就是“自由软件(free software)”了。但是,市面上有那么多的Linux发行版本(Distributions),其中一些还是商业化版本,这到底是怎么回事呢?而且常常被提到的Linux核心版本(kernel version)又是什么,与Linux发行版本又有什么关系呢?我们需要先简单了解一下Linux的基本结构和Linux的历史才能更好地回答这两个问题。

一个完整Linux操作系统往往由4部分组成,即

  • 内核(Kernel)。内核是Linux的心脏,实现操作系统的基本功能,包括控制硬件设备、管理内存、提供硬件接口、处理基本I/O、管理文件系统,为程序分配内存和CPU 时间等等;
  • 外壳(Shell)。外壳是Linux的交流窗口,提供用户与内核进行交互操作的接口;
  • 实用程序(Utilities)。实用程序则是工具,是用户用于进行系统日常操作和管理的一些程序;
  • 应用程序(Applications)。应用程序则是给用户提供各种各样的丰富的功能第三方程序,如各种服务器套件、文档处理套件、各种媒体播放和处理套件。

发行版本彼此之间可能会有很大差异,这些差异主要表现在它们各自的安装程序包上,还表现在安全性与可用性等方面侧重点的不同。例如,有的发行版本专注于提供良好的桌面体验,有的发行版本则适用于作为开发工作站,有的发行版本则有良好的稳定性和安全性,可以作为网络服务器操作系统。

目前,Linux有数百个发行版,主流的发行版也有十数个。其中部分是彻底的自由软件,也有许多著名的商业版本是需要支一定付费用的[2]。但这与“自由软件”并不矛盾:首先,GPL并不限制软件的商业用途,其次,“自由软件” 是权利问题,不是金钱问题,须知自由软件中的“自由”应该是“言论自由(free speech)”中的“自由”,而不是“免费啤酒(free beer)”中的“免费”。

下面我们就简单介绍一下任务一中所提到的几个发行版本。

2.1 Red Hat Enterprise Linux(RHEL)

Red Hat Enterprise Linux(RHEL)是无疑的Linux企业级应用的市场主导者,Red Hat Enterprise Linux (RHEL)也是中国许多企业架构其应用和服务的首选 Linux 发行版本,多年来甚至是Linux的代名词。

  • 优点:技术支持较可靠、更新及时的;用户群庞大、衍生版本众多;服务器软件/硬件生态系统良好,技术支持社区规模大而有活力。

  • 缺点:技术支持和更新服务是需要付费的;采用久为诟病的RMP软件包管理方式。

2.2 Ubuntu Enterprise Linux

Ubuntu是一个流行的Linux发行版,是基于Debian的unstable版本加强而来,以“最好的Linux桌面系统”而闻名,近些年Ubuntu也推出了Ubuntu Enterprise Linux, 在企业Linux应用市场占有率也有较大提高。

  • 优点:技术支持较,用户界面友好,硬件的兼容性好,采用基于Deb的ATP包管理系统。
  • 缺点:技术支持和更新服务是需要付费的, 服务器软件生态系统的规模和活力方面稍弱。

2.3 Community ENTerprise Operating System(CentOS)

CentOS是来自于Red Hat Enterprise Linux依照开GPL规定所发布源代码重新编译而成。这个发行版的目标是100%兼容RHEL。这意味你可以共享RHEL的服务器软件/硬件生态系统,同时也意味着你和RHEL用户享受了相同的安全级别。因此可以用CentOS替代RHEL,CentOS是使用最广泛的RHEL 兼容版本。

  • 优点:与包括更新在内的服务完全免费,具备良好的社区技术支持,如果需要更专业级别的支持,那么还可以平滑的从CentOS转至RHEL,采用基于yum的RMP包管理系统。
  • 缺点:不提供专门技术支持,不包含封闭源代码软件;更新服务较为滞后,当然开发团队的可靠性也无法与上面3类商业版本Linux相比。

2.4 Debian GNU / Linux

Debian GNU / Linux是一款是由GPL和其他自由软件许可协议授权的自由软件组成的Linux操作系统,由Debian Project组织维护。以其坚守Unix和自由软件的精神,以及其给予用户的众多选择而闻名。

  • 优点:Debian是极为精简而稳定的Linux发行版,有着干净的作业环境,采用基于Deb的ATP包管理系统。
  • 缺点:不提供专门技术支持,不包含封闭源代码软件;发行周期过长,稳定版本中软件过时。中文支持不是很完善。

参考资料

宁波城市职业技术学院 http://www.icourse163.org/course/NBCC-437004

药企,独角兽,苏州。团队长期招人,感兴趣的都可以发邮件聊聊:tiehan@sina.cn
个人公众号,比较懒,很少更新,可以在上面提问题,如果回复不及时,可发邮件给我: tiehan@sina.cn