第3章Linux操作系统概述 当普通用户习惯了Windows操作系统时,随着IT技术的发展,特别是大数据、云计算等网络应用的迅速推进,Linux操作系统在网络应用方面所占的比例和所起的作用日益增大。Linux操作系统凭借其开源、高效、安全、廉价等特点,备受各IT公司和工程师的青睐。 3.1Linux简介 Linux操作系统从1991年诞生至今在仅仅20多年的时间里,在全世界众多计算机工程师和爱好者大力支持下,其市场占有率不断地扩大,显示出了强大的生命力。本节主要介绍什么是Linux,它产生的背景等问题。 3.1.1什么是Linux Linux,音标 \[linэks\],是和UNIX、Windows类似的用于管理和控制计算机软件、硬件资源的操作系统(Operating System,OS)软件,即Linux操作系统(本书中简称Linux)。作为操作系统类的系统软件,Linux为用户提供了一个良好的工作环境,为其他的应用软件提供必要的服务和接口。但和Windows不同,Linux是性能和UNIX接近的类UNIX(UNIX Like)操作系统,是UNIX的一个分支。 Linux操作系统稳定、高效、安全、开源,并具有丰富的网络功能,吸引越来越多的企事业单位采用Linux部署其服务器和关键网络应用。近年来,Linux逐步地完善其友好的图形界面,逐步地丰富相关的桌面应用程序,得到了桌面应用用户的认可,在桌面应用领域所占的比例逐渐地增加。 3.1.2Linux的产生 Linux是随着UNIX、C语言及GNU/GPL协议的产生、发展而出现的,是完全模拟UNIX功能的开源操作系统,最早是UNIX操作系统在微型计算机上的实现。 早在20世纪70年代微型计算机出现之前,计算机以大、中、小型计算机和工作站为主,不同计算机的硬件架构,特别是CPU的差别大,不同计算机上运行的操作系统有所不同,大多以UNIX不同的分支为主。 1. UNICS系统 1969年以前,为了使更多用户共用同一台大型计算机的资源,在1965年前后,由美国的贝尔(Bell)实验室、麻省理工学院(MIT)及通用电器公司(GE)共同发起Multics(复杂、多数)项目,目的是研发一套能够让大型计算机同时提供300个以上终端连接的分时操作系统。但到1969年,因进度缓慢、资金缺乏等原因,贝尔实验室退出了该项目研究,为UNIX系统的产生提供了契机。 1969年,参与Multics项目的贝尔实验室的肯·汤普森(Ken Thompson)在DEC公司PDP7计算机系统上用汇编语言开发了一组操作系统内核程序和一个小型的文件系统,简化了复杂庞大的Multics项目,构成了UNIX系统的原型,在贝尔实验室内部广为流传,被称为Unics(Uniplexed Information and Computing System)。 2. C语言出现 由于汇编语言是和计算机硬件相匹配的低级语言,由其开发的程序可移植性不好,要安装到不同的计算机上需要重新编写。 1969年在肯·汤普森和丹尼斯·里奇(Dennis Ritchie)的支持下以BCPL语言为基础,设计出简单且很接近硬件的通用高级程序设计语言B语言。但是由B语言编译出来的内核不太理想。 1972年丹尼斯·里奇以B语言为基础开发出C语言——目前世界上最常用的高级程序语言之一。C语言显现了强大的可移植性(Portability),B语言几乎已遭弃置。图31为丹尼斯·里奇与肯·汤普森合作场景。 图31丹尼斯·里奇(站立者)与肯·汤普森于 1972 年于一台 PDP12前合影 (照片来源: 贝尔实验室提供) 3. UNIX正式版 1973年年初,C语言的主体完成。肯·汤普森(如图32所示)和丹尼斯·里奇(如图33所示)迫不及待地开始用C语言完全重写了UNICS,UNIX正式诞生。用C语言改写的UNIX可被方便地移植到其他类型的计算机上使用。 随着UNIX的发展,C语言自身也在不断地完善。直到今天,各种版本的UNIX内核和周边工具仍然使用C语言作为最主要的开发语言。 隶属于美国电话电报公司(AT&T Inc.,American Telephone & Telegraph)的贝尔实验室对UNIX采取开放态度。伯克利(Berkeley)大学的Bill Joy对取得的UNIX内核的源代码进行修改移植并增加了许多工具和编译程序后形成了UNIX重要分支——BSD图32肯·汤普森 图33丹尼斯·里奇 (Berkeley Software Distribution),原来AT&T的UNIX定义为System V架构。这两种UNIX分支被认为是目前最纯净的UNIX。不同公司因硬件架构不同,UNIX移植后形成了300种左右UNIX版本,主要的UNIX分支如表31所示。表31主要UNIX分支 版本历 史 由 来架构AIXIBM公司发行的UNIX采用PowerPC为内核芯片HPUX(HP)旧系统是从S III(SVRx)发展而来,由HP公司开发采用RARISC为内核芯片SolarisSun Microsystems研发的计算机操作系统,被认为是UNIX操作系统的衍生版本之一采用SPARC为内核芯片IRIX由硅谷图形公司(Silicon Graphics Inc,SGI)以System V与BSD延伸程序为基础所发展成的UNIX操作系统IRIX可以在SGI公司的RISC型计算机上运行,即是并行32位、64位MIPS架构的SGI工作站、服务器DIGITAL UNIX由数字设备公司(DEC)研发采用Alpha内核芯片Linux和BSD由Red Hat公司研发采用IA为内核芯片1979年,AT&T出于商业考虑,在System V第7版中严格限制“不可对学生提供源码”,这导致MINIX系统出现。 4. MINIX——x86架构的UNIX 为了摆脱UNIX版权限制,荷兰阿姆斯特丹自由大学安得鲁·谭邦宁(Andrew Tanenbaum)教授为了讲授计算机操作系统课程需要,从1984年开始开发与UNIX完全兼容的、可以在x86架构上运行MINIX(Mini UNIX)操作系统内核,并于1986年完成。 MINIX不是完全免费的,须通过磁盘/磁带以很便宜的价格购买,不能通过网络直接下载,购买时会附上MINIX的源码。因MINIX主要用于教学,系统更新和改善的需求并不强,这引导了Linux操作系统的出现。 5. GNU与GPL协议 生于1953年美国纽约曼哈顿地区的理查德·马修·斯托曼(Richard Matthew Stallman,网络自称ID为RMS),1971年进入哈佛大学学习,同年受聘于麻省理工学院人工智能实验室(AI Laboratory),成为一名职业黑客,那时黑客圈所关注的是软件的“分享”,并没有专利方面的困扰。 然而进入20世纪80年代后,黑客社群在软件工业商业化的强大压力下试图以专利软件来取代实验室中黑客文化的产物——免费可自由流通的软件。 斯托曼对此感到气愤与无奈。于是他1985年发表了著名的GNU宣言(GNU Not UNIX),开发出一套完全自由免费,兼容于UNIX的操作系统GNU。之后斯托曼凭借其开发的优秀的编辑器Emacs为基础建立了自由软件基金会FSF(Free Software Foundation)来协助该计划推进。 1989年斯托曼与一些律师共同起草了广为使用的GNU通用公共协议证书(GNU General Public License,GNUGPL),创造性地提出了“反版权”(或“版权属左”,或“开权”,Copyleft,与Copyright相对)的概念。 同时,GNU计划中除了最关键的Hurd操作系统内核之外,其他绝大多数外围软件已经完成,特别是利用C语言编译程序GCC(GNU C Complier),为GNU组织下开发的自由软件提高可移植性,推动了GNU软件的应用及推广,如图34所示。 图34自由软件系列 GPL协议软件的主要特点如下。 (1) 开源(Open Source)。用户可取得软件的源码。 (2) 免费(Free)。用户可以免费地自由复制使用软件。 (3) 共享(Share)。用户可以修改优化程序并将修改代码公开。 6. Linux内核 在斯托曼推进遵循GPL协议的系统开发过程中,作为操作系统核心的内核程序Hurd却迟迟未能发布,其他的外围程序的开发过程是基于UNIX的内核的。 当时还是芬兰赫尔辛基大学计算机科学系学生的李纳斯·托瓦兹(Linus Torvalds),使用学校16个终端的UNIX主机,在排队等待时萌生自己开发一款UNIX操作系统的想法。托瓦兹以谭邦宁教授的MINIX为参照学习到操作系统内核设计的理念,并将其安装到INTEL 386架构微型计算机中,并成功测试了386系统的多任务(MultiTasking)性能。因谭邦宁教授对MINIX无改进的意愿,促使托瓦兹围绕着优化386微型计算机性能为目标,在GNU提供的GCC编译器和Bash接口程序支持下,改写其内核源代码与386微型计算机紧密结合在一起,最终编写了第一个可在微型计算机上运行的操作系统内核程序并可读取MINIX的文件系统。 为了得到更多人的意见,托瓦兹将其开发的内核源代码上传到新闻组的FTP(File Transfer Protocol)上Linux目录中供大家下载,从此大家称托瓦兹的内核为Linux。 为了能够与UNIX兼容,托瓦兹开发时参考了标准POSIX(Portable Operating System Interface)规范,确保了Linux系统内核起步时就有良好的可移植性。 托瓦兹因为成功地开发了操作系统Linux内核而荣获2014年计算机先驱奖(For pioneering development of the Linux Kernel using the opensource approach)。他的获奖创造了计算机先驱奖历史上的多个第一: 第一次授予一位芬兰人;第一次授予一位“60后”(其实只差3天就是“70后”);获奖成果是在学生时期取得的。 POSIX是可移植操作系统接口,定义了操作系统应该为应用程序提供的接口标准,是IEEE(Institute of Electrical and Electronic Engineers,电气与电子工程师学会)为要在各种UNIX操作系统上运行的软件而定义的一系列API(Application Programming Interface,应用程序编程接口)标准的总称。POSIX标准旨在期望获得源代码级别的软件可移植性。换句话说,为一个POSIX兼容的操作系统编写的程序,应该可以在任何其他的POSIX操作系统(即使是来自另一个厂商)上编译执行。 1992年,Andrew Tanenbaum和Linus Torvalds(如图35所示)在Usenet新闻组中展开了关于微内核和宏内核、控制和开放等话题的讨论,Andrew Tanenbaum批评Linux采用宏内核设计是过时的,Linus Torvalds给予了反击。但这场辩论没有影响他们之间的个人关系,他们目前关系还是融洽的。 图35安得鲁·谭邦宁(Andrew Tanenbaum,右)和李纳斯·托瓦兹(Linus Torvalds,左) 3.2Linux的构成及发行版 根据Linux诞生过程使人们认识到托瓦兹所开发的Linux内核并不是Linux操作系统的全部。一个操作系统除了内核外,还应该包括外围接口程序和相关工具软件,才能为用户使用计算机系统提供一个完整平台。 3.2.1Linux的构成 Linux操作系统应该完整定义为GNU/Linux。其中Linux侧重操作系统的内核部分,主要由LINUS负责升级与维护(http://www.Kernel.org);GNU侧重操作系统的外围部分,由Stallman团队负责开发与维护(http://www.gnu.org)。 Linux系统主要有4部分构成,即Kernel、Shell、file systems以及users applications。其中Kernel、Shell、file systems构成了基本的操作系统结构,它使得人们可以运行程序、管理文件并使用系统。具体如图36所示。 图36Linux的系统构成 1. Linux内核(Kernel) 它是Linux操作系统的核心,实现了操作系统的基本功能。例如,在硬件方面: 驱动硬件设备(学习驱动主要是调用内核提供的接口来实现对内核的驱动),管理内存,提供硬件接口,管理I/O;在软件方面: 管理文件系统,为程序分配内存和CPU时间。 2. Shell Shell是一个系统的用户界面,它是用户和内核进行交互的接口,是一个解释器,它解释用户输入的命令并将其送入内核运行。 目前主流的Shell主要有bourne Shell(sh)、bourneagain Shell(bash)、korn Shell(ksh)、C Shell(csh)。 注: Bourne Shell,或 sh,是 Version 7 UNIX 默认的UNIX Shell,替代执行文件同为sh的Thompson Shell。它由AT&T贝尔实验室的史蒂夫·伯恩于1977年在Version 7 UNIX中针对大学与学院发布的。它的二进制程序文件在大多数UNIX系统上位于/bin/sh,在很多UNIX版本中,它仍然是root的默认Shell。 3. 文件系统(file systems) 文件系统是文件存放在磁盘等存储设备上的组织方法,Linux采用的是树形目录结构,以/为根目录,按照目录分层方式进行组织,但Linux同时也支持目前大多数主流目录系统,例如,FAT32、VFAT、ext2、ext3、ext4、ISO 9660等。 从用户角度看,Linux系统由用户空间和内核空间两部分组成。 内核空间与用户空间是程序执行的两种不同状态,通过系统调用和硬件中断能够完成从用户空间到内核空间的转移。 (1) 内核空间主要分为:  System Call Interface(系统调用接口);  Kernel(内核);  Architecture Dependent Kernel Code(架构体系内核代码)。 (2) 用户空间主要分为:  User Applications(用户应用程序);  GNU C Library(glibc即c运行库)。 3.2.2Linux的发行版 从Linux诞生到现在,不同的国家、不同应用领域的用户在使用不同的Linux,如Red Hat、UBUNTU、CentOS(Community Enterprise Operating System,社区企业操作系统)等,这些都是指Linux发行版。 1. 什么是Linux发行版 根据Linux操作系统的构成,Linux由遵循GPL协议的内核程序、外围接口程序和相关工具软件程序构成的复杂系统软件,这些软件一般以源代码形式由不同的组织和负责人维护。当用户要安装使用这些以源代码形式发布的软件时,需要经过编译成二进制可执行文件,需要用户具有一定的计算机专业知识,不利于普通用户使用。为此,许多商业公司如Red Hat和非营利社区团体将Linux操作系统涉及的内核、外围软件等相关文件整合在一起,附加自己的工具软件,按照特定的软件包管理形式通过光盘、U盘、网络等方式发布其Linux操作系统,称为Linux的发行版(Distribution),方便用户安装使用Linux。 2. Linux的版本号 虽然Linux有不同的发行版,但各种发行版都是基于Linux内核的。所以,Linux的版本号有发行版本号和内核版本号两种描述方式,且二者是相互独立的。 1) 内核版本号 常见发行版内核版本号形式如下。2.6.18-128.el5-x86_64其中: (1) 第一组数字2,指主版本号;第二组数字6,指次版本号;第三组数字18,指修订版本号;第四组数字128,表示这个当前版本的微调补丁(patch)。 (2) el5表示版本特殊描述标识信息,由内核在编译时指定,不同的发行版有所不同,具有较大的随机性。常用的描述标识如下。  rc(有时也用一个字母r): 表示候选版本(release candidate),rc后的数字表示该正式版本的第几个候选版本,多数情况下,各候选版本之间数字越大越接近正式版;  smp: 表示对称多处理器(Symmetric Multiprocessing);  pp: 在Red Hat Linux中常用来表示测试版本(prepatch);  EL: 在Red Hat Linux中用来表示企业版Linux(Enterprise Linux);  mm: 表示专门用来测试新的技术或新功能的版本;  fc: 在Red Hat Linux中表示Fedora Core。 (3) x86_64指CPU的字长。CPU按字长主要分为32位与64位,其中32位又可以分为i386、i586、i686,而64的CPU则称为x86_64。 Linux内核版本命名在不同的时期有其不同的规范,人们熟悉的也许是 2.x 版本,奇数表示开发版、偶数表示稳定版,图37稳定的4.5内核 但到 2.6.x 以及3.x甚至目前的 4.x,内核版本命名都不遵守这样的约定,截至2016年4月,最新内核的版本号是4.5,如图37所示。 2) 发行版版本号 不同的发行版版本号由发行商根据其发行Linux频率确定,一般变化比内核快。如Fedora目前发行版为 fedora 21,采用最新的内核是3.16.0300。 3) 查看机器使用的Linux版本号 人们可以安装不同的 Linux 发行版,若查看一个发行版使用的内核版本号可以使用如下命令。\[root@archlab-server2 ~\]# cat /etc/issue'发行版版本 CentOS release 6.4(Final) \[root@archlab-server2 ~\]# uname -r'内核版本 2.6.32-358.6.1.el6.i6863. 主流Linux发行版 Linux的发行版本可以大体分为两类,一类是商业公司维护的发行版本,一类是社区组织维护的发行版本,前者以著名的Red Hat(RHEL)为代表,后者以Debian为代表,如图38所示。 图38Linux发行版本 根据不同的软件包管理方式,Linux发行版包括以下系列。 1) Red Hat系列 Red Hat系列包括RHEL(Red Hat Enterprise Linux,也就是所谓的Red Hat Advance Server,收费版本)、Fedora Core(由原来的Red Hat桌面版本发展而来,免费版本,由REDHAT资助,为RHEL提供测试)、CentOS(RHEL的社区克隆版本,可免费升级)。Red Hat是在中国使用人群最多的Linux版本,甚至有人将Red Hat等同于Linux。Red Hat系列的包管理方式采用的是基于RPM(RPM Package Manager)包和YUM(Yellow dog Updater Madified)包的管理方式,包分发方式是编译好的二进制文件。稳定性方面,RHEL和CentOS的稳定性非常好,适合于服务器使用,但是Fedora Core的稳定性较差,最好只用于桌面应用。 2) Debian系列 Debian系列包括Debian和Ubuntu等,是社区类Linux的典范,迄今为止最遵循GNU规范的Linux系统。Debian最具特色的是aptget/dpkg(Advanced Package Tool/Debian Packager)包管理方式, Red Hat的YUM也是在模仿Debian的APT方式,在二进制文件发行方式中,APT应该是最好的了。Ubuntu,严格来说不能算一个独立的发行版本,是基于Debian的unstable版本加强而来。Ubuntu是一个拥有Debian所有的优点,以及自己所加强的优点的近乎完美的 Linux桌面系统。根据选择的桌面系统不同,有3个版本可供选择,基于Gnome的Ubuntu,基于KDE的Kubuntu以及基于Xfc的Xubuntu。特点是界面非常友好,对硬件的支持非常全面,是最适合做桌面系统的Linux发行版本。 3) Gentoo 伟大的Gentoo是Linux世界最年轻的发行版本,正因为年轻,所以能吸取在它之前的所有发行版本的优点,这也是Gentoo被称为最完美的Linux发行版本的原因之一。由于开发者对FreeBSD的熟识,所以Gentoo拥有媲美FreeBSD的广受美誉的ports系统——Portage包管理系统。不同于APT和YUM等二进制文件分发的包管理系统,Portage是基于源代码分发的,必须编译后才能运行,对于大型软件而言比较慢,不过正因为所有软件都是在本地机器编译的,在经过各种定制的编译参数优化后,能将机器的硬件性能发挥到极致。Gentoo是所有Linux发行版本里安装最复杂的,但是又是安装完成后最便于管理的版本,也是在相同硬件环境下运行最快的版本。 4) FreeBSD 需要强调的是: FreeBSD并不是一个Linux系统。但FreeBSD与Linux的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所采用的软件也比较类似,所以可以将FreeBSD视为一个Linux版本来比较。FreeBSD采用Ports包管理系统,与Gentoo类似,基于源代码分发,必须在本地机器编译后才能运行,但是Ports系统没有Portage系统使用简便,使用起来稍微复杂一些。FreeBSD的最大特点就是稳定和高效,是作为服务器操作系统的最佳选择,但对硬件的支持没有Linux完备,所以并不适合作为桌面系统。 目前市场使用主流Linux操作系统如下。 1) Android Android是一种以Linux为基础的开放源码操作系统,主要使用于便携设备,如手机、平板。由Andy Rubin开发,2005年由Google收购注资。正在和Apple 的 IOS争夺市场份额,美国智能手机市场份额接近50%。 主页: http://www.android.com/ 2) Chrome OS Google Chrome OS是一款基于Linux的开源云操作系统,一切的操作与数据储存皆以云服务器为主,秉承了Chrome浏览器快速、简洁、安全的特性,初期定位于上网本、紧凑型以及低成本计算机。 主页: http://www.chromium.org/chromiumos 3) CrunchBang CrunchBang Linux是一份基于Debian的发行,其特色在于轻量级的Openbox窗口管理器和GTK+应用程序。 主页: http://crunchbanglinux.org/ 4) Lubuntu Lubuntu是Ubuntu快速、轻量级且节省能源的变体,它使用LXDE(Lightweight X11 Desktop Environment)桌面。它旨在面向低资源配置系统,并被主要设计用于上网本、移动设备和老旧个人计算机。 主页: http://lubuntu.net/ 5) CentOS CentOS是Red Hat Enterprise Linux的社区版本,免费使用,主要用于服务器。 主页: http://www.centos.org/ 6) Linux Mint Linux Mint是一份基于Ubuntu的发行,其目标是提供一份更完整意义上的即刻可用的体验,目前distrowatch排名第一。主版本使用Gnome桌面,很多不喜欢Ubuntu Unity桌面的用户转到了Linux Mint。 主页: http://linuxmint.com/ 7) Fedora Fedora 基于Red Hat Linux,由Red Hat公司赞助,由Fedora Project社群开发维护的一个开放的、创新的、前瞻性的Linux 发行版。目前使用Gnome 3桌面,Fedora 16 即将发布。 主页: http://fedoraproject.org/ 8) openSUSE openSUSE项目起初是由Novell公司资助的开源Linux项目。使用KDE桌面和易用的YaST软件包管理系统,被评价为最华丽的Linux桌面发行版。 主页: http://www.opensuse.org/ 9) Debian Debian计划是由以创造一份自由操作系统为共同目标的个人团体所组建的协会。这份操作系统就叫作Debian GNU/Linux,简称为Debian。 Debian是一个古老的Linux发行版,以稳定性而著称,有许多运行多年的机器没有重启的案例。 主页: http://www.debian.org/ 10) Oracle Linux Oracle Linux是由Oracle公司提供支持的企业级Linux发行,以Red Hat Linux作为起始,移除了Red Hat的商标,然后加入了Linux的错误修正。 主页: http://www.oracle.com/technologies/linux/ 4. 国产Linux发行版 从2014年4月8日起,美国微软公司停止了对Windows XP操作系统提供服务支持,这引起了社会和广大用户的广泛关图39国内发行版 注和对信息安全的担忧。工信部对此表示,将继续加大力度,支持Linux的国产操作系统的研发和应用,如图39所示。 国产操作系统多为基于Linux的二次开发系统。 1) 深度(Deepin) 深度Linux 是一个致力于为全球用户提供美观易用,安全可靠的 Linux 发行版。它不仅仅对最优秀的开源产品进行集成和配置,还开发了基于 HTML5 技术的全新桌面环境、系统设置中心,以及音乐播放器、视频播放器、软件中心等一系列面向日常使用的应用软件。Deepin非常注重易用的体验和美观的设计,因此对于大多数用户来说,它易用安装和使用,还能够很好地代替Windows系统进行工作与娱乐。 2) 红旗Linux 红旗Linux是由北京中科红旗软件技术有限公司开发的一系列Linux发行版。红旗Linux包括桌面版、工作站版、数据中心服务器版、HA集群版和红旗嵌入式Linux等产品。但由于各方面原因,该公司现已被五甲万京收购。 3) 银河麒麟 银河麒麟是由国防科技大学、中软公司、联想公司、浪潮集团和民族恒星公司合作研制的闭源服务器操作系统。此操作系统是863计划重大攻关科研项目,目标是打破国外操作系统的垄断,银河麒麟研发一套中国自主知识产权的服务器操作系统。银河麒麟完全版共包括实时版、安全版、服务器版3个版本,简化版是基于服务器版简化而成的。 4) 中标麒麟Linux(原中标普华Linux) 中标麒麟Linux桌面软件是上海中标软件有限公司发布的面向桌面应用的操作系统产品。 5) 起点操作系统StartOS(原雨林木风操作系统YLMF OS) StartOS——是由东莞瓦力网络科技有限公司发行的开源操作系统,其前身是由广东雨林木风计算机科技有限公司YLMF OS开发组所研发的YLMF OS,符合国人的使用习惯,预装常用的精品软件,操作系统具有运行速度快、安全稳定、界面美观、操作简洁明快等特点。 6) 凝思磐石安全操作系统 凝思磐石安全操作系统是由北京凝思科技有限公司开发,凝思磐石安全操作系统遵循国内外安全操作系统GB 17859、GB/T 18336、GJB 4936、GJB 4937、GB/T 20272、POSIX、凝思磐石安全操作系统TCSEC、ISO 15408等标准进行设计和实现。 7) 共创Linux桌面操作系统 共创Linux桌面操作系统是由北京共创开源软件有限公司(简称共创开源)采用国际最新的内核,Kernel 2.6.16版本开发的一款Linux桌面操作系统。共创Linux桌面操作系统可以部分地替代现有常用的Windows桌面操作系统。它采用类似于Windows XP风格的图形用户界面,符合Windows XP的操作习惯。 3.3Linux的发展及应用 作为一款类UNIX操作系统, Linux从诞生到现在经历了20多年的发展,凭借其优良的架构和稳定的性能,遵循着广受软件工程师喜爱的GPL发布模式,使其显示出了强大的生命力,迅速地应用到了许多领域中并得到不断的发展。 3.3.1Linux的发展 Linux各版本内核下载网址为https://www.Kernel.org/pub/。Linux的发展简史如下。 1. 1991年 8月25日: 21岁的芬兰学生Linus Benedict Torvalds 在comp.os.minix 新闻组上宣布了他正在编写一个免费的操作系统。 9月1日: Linux 0.01在网上发布。 2. 1992年 1月5日: Linux v0.12 release 版本的内核重新以GUN GPL的协议发布。Linus对这次许可证的更改说了这样一句话“Making Linux GPL’d was definitely the best thing I ever did.”(让Linux遵守GPL绝对是我干过的最正确的事)。 4月5日: 第一个Linux新闻组,comp.os.linux由Ari Lemmke提议并开通。 5月21日: Peter MacDonald 发布第一个独立的Linux安装包SLS(Softlanding Linux System)。可以通过软盘安装,包括比较前沿的TCPIP网络支持和X Window系统。这是Linux的第一个发行版。 3. 1993年 6月17日: Slackware Linux由Patrick Volkerding发布。Slackware被认为是第一个取得广泛成功的Linux发行版,而且它现在还在使用。 8月16日: Ian Murdock(Debian中的“ian”)发布了第一个Debian Linux的发行版。Debian是最有影响力的Linux发行版之一,是MEPIS、Mint、Ubuntu和很多其他发行版的鼻祖。 4. 1994年 3月14日: Linux内核V1.0发布。它支持基于i386单处理器的计算机系统。这3年来,内核代码库已经增长到了176 250行。 11月3日: Red Hat的共同创始人Marc Ewing宣布可以以49.95美元的零售价格获得Red Hat Software Linux的CDROM和30天的安装支持。2012年Red Hat成为第一家市值达10亿美元的开源公司。 5. 1996年 图310Tux 5月9日: 最初由Alan Cox提议,之后又经Linus Torvalds改良,Larry Ewing在1996年创造了现在看到的这只叫做Tux的吉祥物,如图310所示。选定企鹅作为Linux吉祥物的主意来自Linus Torvalds,他说自己被一只企鹅轻轻地咬了一口之后就具有了企鹅的特征。另外一种说法是: 企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于当今世界上的任何国家。Linux选择企鹅图案作标志,其含意也是表明: 开源的Linux为全人类共同所有,任何公司无权将其私有。 6月9日: Linux内核V2.0发布。相比更早的版本,这是一次意义重大的提升,这是第一个在单系统中支持多处理器的稳定内核版本,也支持更多的处理器类型。Linux从此以后成了很多公司一个郑重选择的对象。 10月14日: 1996年Mattias Ettrich发起了KDE桌面项目,因为他深受UNIX桌面系统下应用程序的不一致的困扰。 6. 1998年 5月1日: Google搜索引擎面世。它不仅仅是世界上最好的搜索引擎之一,更是基于Linux的,它的特征是有一个Linux的搜索页面。 12月4日: 一份来自IDC的报告称: 1998年Linux的出货量至少上升了200%,市场占有率上升至少150%。Linux的市场占有率为17%,并且以其他任何操作系统无法企及的速度增长着。 7. 1999年 3月3日: 另一个颇具影响力的桌面系统加入了Linux,就是GNOME桌面系统。在很多主要的Linux发行版比如Debian、Fedora、Red Had Enterprise Linux和SUSE Linux Enterprise Desktop中,GNOME是默认的桌面环境。 8. 2000年 2月4日: 最新的IDC(International Data Corporation)报告表明: Linux现在排在“最受欢迎的服务器操作系统的第2位”,1999年服务器系统销售量占总量的25%。Windows NT以38%位列第1,NetWare以19%排在第3位。 3月11日: 摩托罗拉公司宣布发行HA Linux。这个发行版专注于通信应用领域,对系统不关机连续运行时间要求非常高。它还包括了热交换能力和支持i386和PowerPC架构。 3月23日: 爱立信公布了“Screen Phone HS210”,这是一款基于Linux的触屏手机,具备邮件和网页浏览等功能。爱立信和Opera Software公司同时宣布这款手机将会安装Opera的网页浏览器。 10月30日: 第一个Linux live发行版由Linux咨询顾问Klaus Knopper发布,名字叫做Knoppix。 9. 2001年 1月3日: 美国NAS(美国国家安全局)以GPL许可证发布了SELinux。SELinux提供了标准UNIX权限管理系统以外的另一层安全检查。 10. 2004年 10月20日: Ubuntu以一个不同寻常的版本号4.10和怪异的版本代号“Warty Warthog”(长满疙瘩的非洲疣猪)进入大家的生活。用这个版本号是因为发布日期是2004年10月。Ubuntu的开发由Cannonical Ltd公司主导,公司的创始人是Mark Shuttleworth(不到30岁的亿万富翁)。Ubuntu对于Linux在台式机和笔记本电脑桌面应用的普及起到了重要的推动。 11. 2007年 8月8日: 2007年Linux基金会由开源发展实验室(Open Source Development Labs,OSDL)和自由标准组织(Free Standard Group,FSG)联合成立。这个基金会目的是赞助Linux创始人Linus的工作。基金会得到了主要的Linux和开源公司的支持,包括富士通、HP、IBM、Intel、NEC、Oracle、Qualcomm、三星和来自世界各地的开发者。 11月5日: 与之前大家推测的发布Gphone不同,Google宣布组建开放手机联盟(Open Handset Alliance)和发布Android,它被称为“第一个真正开放的综合移动设备平台”。 12. 2009年 1月29日: 2009年1月纽约时报称“现在预计有超过10亿人在运行Ubuntu系统”。 13. 2011年 5月11日: 2011年Google I/O大会发布了Chrombook。这是一款运行着所谓云操作系统Chrome OS的笔记本,Chome OS是基于Linux内核的。 6月21日: Linus Torvalds 发布了Linux 3.0版本。 14. 2013年 12月13日: Valve公司发布基于Linux的SteamOS操作系统,这是一个视频游戏控制台系统。 15. 2014年 IDC统计2014年智能手机市场,Android出货量为10.59亿部,同比增长32%;市场份额为81.5%,去年同期为78.7%。iPhone市场份额有所下降。 3.3.2Linux的应用 Linux作为遵循GPL协议的开源软件,继承了UNIX操作系统的优良特性,使其在企业环境得到了广泛的应用。特别地,因为Linux内核小巧、可定制,使其天生适用于低功耗、低配置的个人消费类电子产品领域;随着Linux桌面系统不断改善,加之基于Linux的桌面应用软件不断地集成,使Linux在桌面应用中所占的比例逐渐地增加。 目前,Linux主要应用于以下几个领域。 1. 网络服务 Linux操作系统稳定、高效、丰富的网络应用,使其成为企业网络服务器部署的首选,这是Linux的主要应用,如WEB服务器(Apache)、FTP服务器(VSFTP)、DNS服务器(Bind)等均可在Linux系统上实现,如图311所示。 http://toolbar.netcraft.com/site_report?url=www.qq.com 图311Linux提供的网络服务 2. 关键企业应用 随着微处理器性价比不断地提高,金融、电信等大型企业逐渐青睐与Intel兼容的主机环境,为了和原有的UNIX系统兼容,遵循POSIX标准的类UNIX的Linux在如数据库等关键企业应用中崭露头角。 3. 高性能集群计算 Linux系统集成了丰富的软件开发、编译工具、强大的并行处理能力,使其在高性能计算、负载均衡、计算机模拟、辅助设计等方面得到了广泛的应用,TOP 500 在2014年11月统计结果(http://www.top500.org/statistics/list/)如图312所示。 图312高性能集群计算应用 特别是近年来的云计算、大数据挑战,Linux具有得天独厚的优势。 4. 嵌入式产品 因其内核小巧可定制,在一些如路由器、防火墙等网络产品中以及智能手机、PDA、智能电视,甚至汽车电子等消费类电子产品中,Linux都有具体应用。 近2年来,智能手机、PAD等产品大量投放市场,其中广泛采用的Android系统就是基于Linux内核开发的,如图313所示。 新版的Linux在桌面方面全面改善,集成了常见的办公软件(Open Office)、多媒体、网络应用等环境,是和Windows开展竞争的桌面操作系统。特别是UBUNTU与Windows的安装和使用方式相类似,针对中国用户优化的麒麟(kylin)桌面操作系统,打破了Windows一统桌面应用的格局,如图314所示。 图313Android系统 图314ubuntu kylin 第二部分Linux操作系统的安装与管理 第二部分以Linux操作系统的单机安装、管理为主要内容,重点介绍Linux的安装、登录、远程连接、用户及权限管理、文件系统和磁盘管理等内容。第4章Linux操作系统的安装及引导第4章Linux操作系统的安装及引导 本章以CentOS发行版为例,介绍如何安装和引导Linux操作系统。一般专业服务器只安装部署一个操作系统,而初学者在学习过程中可能需要在已经安装有Windows操作系统计算机上再安装部署Linux操作系统,实现多重引导。 4.1系统安装部署方式的选择 在一台计算机中安装部署一个还是多个操作系统,决定了在使用过程中是独立引导还是多重引导。确定了安装部署方式后,在Linux操作系统安装过程中,用户可以选光盘、U盘、硬盘、网络等作为操作系统的安装来源。 4.1.1系统安装部署及引导方式 一般情况下,在一台计算机上只需要安装部署一个操作系统。但为方便学习和使用,可以在一台计算机中同时安装部署多个操作系统。为了学习和组建网络,还可以在一台物理计算机中实现虚拟计算机的多机引导环境。具体说明如下。 1. 独立安装单重引导方式 一般计算机正常使用的情况下,只安装唯一的一个操作系统,如Windows系列或者Linux系列。开机引导时,自动选择这个唯一的操作系统来管理计算机资源。专业服务器一般采用这种模式独立安装一个网络操作系统(Network Operating System,NOS)。这种方式下,唯一的操作系统独占和管理全部的软、硬件资源。 2. 多系统安装部署多重引导方式 在一台计算机中,根据需要,同时部署多个操作系统,如不同系列的操作系统或者同一系列不同版本的操作系统。不同的操作系统安装到不同的硬盘分区。开机引导时,可根据用户的选择引导其中的一个操作系统,且只能选择一个操作系统引导并管理计算机。 3. 基于虚拟机的多机引导方式 一般的用户对Windows桌面系统比较熟悉,在学习Linux的过程中,可以在启动的Windows系统中虚拟出一台计算机并安装Linux操作系统。相对,原来的计算机称为宿主机。这种方式可同时实现宿主机和虚拟机同时运行的多机引导环境,适于Linux初学者或者多机混合组网的情况。3种安装部署引导方式如图41所示。 图41安装部署方式对比 本书为方便用户学习Linux和组网,采用方式3——基于虚拟机的多机安装方式。