第3章 Linux系统介绍与虚拟环境的准备

1.1 学习的知识点

1     什么是操作系统?

2     什么是Linux?

3     Linux的起源

4     UNIX操作系统的革命

5     Linux的诞生

6     Linux的发展历程

7     Linux核心概念知识

8     Linux系统组成

9     Linux的特点

10   Linux的应用领域

11    VM虚拟环境准备

 

2.1 具体内容

2.1.1 什么是操作系统?

如果被问到什么是操作系统,可能很多初学者都会一脸茫然。虽然我们都知道平时一直在用的Windows XP、Windows 7、Windows 8其实就是操作系统,却无法准确给出操作系统的定义,或者向提问者解释清楚什么是操作系统。

 

操作系统,英文名称为Operating System,简称OS,是计算机系统中必不可少的基础系统软件,它是应用程序运行及用户操作必备的基础环境支撑,是计算机系统的核心。

 

操作系统的作用是管理和控制计算机系统中的硬件和软件资源,它除了直接管理计算机系统的各种硬件资源(如CPU、内存、磁盘等)以外,还会对系统资源供需的优先顺序进行管理。此外,操作系统还可以控制设备的输入、输出及操作网络与管理文件系统等事务。同时,它也负责对计算机系统中各类软件资源进行管理(例如各类应用软件的安装、运行环境设置等)。图1-1是操作系统与计算机硬件、软件之间的关系示意图。

一句话定义操作系统:没有操作系统计算机没法工作!!!

 

综上所述,可以给操作系统一个基本的定义:

 

操作系统是计算机系统中必不可少的基础系统软件,它的作用是管理和控制计算机系统中的硬件和软件资源,合理地组织计算机系统的工作流程,以便有效地利用这些资源为使用者提供一个功能强大、使用方便的操作环境。它在计算机系统(硬件)与使用者之间起到接口的作用。

上面的定义听起来是不是有些复杂?那老男孩就来帮助大家更简单快速地理解什么是操作系统。操作系统就是处于用户与计算机系统硬件之间用于传递信息的系统程序软件。例如:操作系统会在接收到用户输入的信息后,将其传给计算机系统硬件核心进行处理,然后再把处理结果返回给使用者。图1-2是简单理解操作系统作用的示意图。

 

目前PC(Intel x86系列)上比较常见的操作系统有Windows、Linux、DOS、UNIX等。

 

2.1.2 什么是Linux

与大家熟知的Windows操作系统软件一样,Linux也是一个操作系统软件。但是与Windows不同的是,Linux是一套开放源代码程序的,并可以自由传播的UNIX操作系统软件(UNIX系统是Linux系统的前身,具备很多优秀特性)。其在设计之初,就是基于Intel x86系列CPU架构计算机的。它是一个基于POSIX[注释]的多用户、多任务并且支持多线程和多CPU的操作系统。

 

Linux是由世界各地成千上万的程序员设计和开发实现的。当初开发Linux系统的目的就是建立不受任何商业化软件版权制约的、全世界都能自由使用的类UNIX操作系统兼容产品。在过去的20年里,Linux系统主要被应用于服务器端嵌入式开发个人PC桌面3大领域,其中服务器端、领域是重中之重。

 

从上面的内容可以看出,Linux操作系统之所以如此流行,是因为它具有如下一些特点:

☑    是开放源代码的程序软件,可自由修改。

☑    UNIX系统兼容,具备几乎所有UNIX的优秀特性。

☑    可自由传播,无任何商业化版权制约。

☑    适合Intelx86 CPU系列架构的计算机。

 

2.1.3 Linux的起源

2.1.3.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系统诞生、发展的时间及版本分支介绍,供读者参考。

图 UNIX诞生及版本分支发展简略图解

 

       在图中可以看到,本书的“主人公”Linux系统诞生于1991年左右,可以说Linux是从UNIX发展而来的。

 

2.1.3.2 UNIX的5大优秀特性(了解

细心的读者应该看到前文曾提到“类UNIX操作系统兼容产品”或“类UNIX操作系统软件”吧?可为什么都要开发类UNIX系统呢?那是因为UNIX是一个非常棒的操作系统,它很像一个非常聪明伶俐但不太听话的孩子,而开发者们在开发系统时,一方面想要继承它的“聪明伶俐”,另一方面又想改善它不听话的一面,故而会有如此考虑。

 

那么UNIX都有哪些“聪明伶俐”的特点呢?一起来看看吧。

    1.技术成熟,可靠性高

使用UNIX系统时,即使连续运行若干年也无需重启,它依然可以工作得非常好。毫不夸张地说,只要计算机硬件不坏,UNIX就很难出现问题。

 

    2.极强的可伸缩性

UNIX支持的CPU处理器体系架构非常多,包括Intel/AMD及HP-PA、MIPS、PowerPC、UltraSPARC、ALPHA等RISC芯片,以及SMP、MPP等技术。

 

☑    3.强大的网络功能贷款

 

Internet互联最重要的协议TCP/IP就是在UNIX上开发和发展起来的。此外,UNIX还支持很多常用的网络通信协议,如NFS、DCE、IPX/SPX、SLIP、PPP等。

 

☑    4.强大的数据库支持能力

Oracle、DB2、Sybase、Informix等大型数据库,都把UNIX作为其主要的数据库开发和运行平台,一直到目前为止,依然如此。

 

☑    5.强大的开发功能

正是UNIX促使了C语言的诞生,并相互促进与发展,成为当时工程师的首选操作系统和开发环境。互联网早期有重大意义的软件新技术的出现几乎都在UNIX上,例如:TCP/IP、WWW、Java、XML等。在互联网早期具有重大意义的软件及新技术几乎都出现在UNIX上。

 

2.1.4 UNIX操作系统的革命

20世纪70年代中后期,由于各厂商及商业公司开发的UNIX及内置软件都是针对自己公司特定硬件的,因此在其他公司的硬件上基本上无法直接运行,而且当时没有人对开发基于x86架构CPU的系统感兴趣。另外,20世纪70年代末,UNIX又面临了突如其来地被AT&T回收版权等重大问题,特别是要求禁止对学生群体提供UNIX系统源代码,这一度引起当时UNIX业界的恐慌,也因此产生了商业纠纷。

 

UNIX面临版权回收,以及代码不开源等的问题,直接或间接导致了新的类UNIX系统的诞生,以及自由软件运动的建立和发展。

 

1984年,Richard Stallman发起了开发自由软件的运动,并成立了自由软件基金会(FreeSoftware Foundation,FSF)和GNU项目。当时发起这个自由软件运动和创建GNU项目的目的其实很简单,就是想开发一个类似UNIX系统,并且是自由软件的完整操作系统,也就是要解决20世纪70年代末UNIX版权及软件源代码面临闭源的问题,这个系统叫做GNU操作系统。

 

也是在20世纪80年代初期,同样是由于之前的UNIX系统版权和源代码限制等问题,当时大学里教学UNIX系统的束缚很大。因此,一个大学的教授(名字为AndrewTanenbaum,谭邦宁),大概于1984年开始着手编写新的用于教学的UNIX系统,目标是开发新UNIX系统,使其尽可能地与原有的UNIX系统兼容,并且可以运行于x86 PC平台,这个系统的名字为Minix。

 

老男孩补充:由于谭邦宁开发这个Minix系统的目的只是用于教学,因此,Minix系统的功能无法满足商用的需求,但是Minix的产生对于Linux的诞生是至关重要的影响。

 

2.1.5 Linux的诞生

Linux系统的诞生始于芬兰赫尔辛基大学的一位计算机系名为Linus Torvalds的学生。在大学期间,他接触到了学校的UNIX系统,但是当时的UNIX系统仅为一台主机,且对应了多个终端,使用时存在操作等待时间很长等一些问题,无法满足轻的Linus Torvalds的使用需求。因此他萌生了自己开发一个UNIX的想法。不久,他找到了前文提到的谭邦宁教授开发的用于教学的Minix操作系统,和我们现在一样,他把Minix安装到了他的I386个人计算机上。此后,Torvalds又陆续阅读了Minix系统的源代码,从Minix系统中学到了很多重要的系统核心程序设计理念和设计思想,从而逐步开始了Linux系统雏形的设计和开发。

Linux的标志和吉祥物为一只名字叫作Tux的企鹅——Torvalds’UNIX,如图1-4所示。

企鹅Tux

 

2.1.6 Linux的发展历程

2.1.6.1   Linux的发展历程简介

1984年,AndrewS.Tanenbaum开发了用于教学的UNIX系统,命名为Minix。

1989年,AndrewS.Tanenbaum将Minix系统运行于x86的PC平台。

1990年,芬兰赫尔辛基大学学生Linus Torvalds首次接触Minix系统。

1991年,Linus Torvalds开始在Minix上编写各种驱动程序等操作系统内核组件。

1991年年底,LinusTorvalds公开了Linux内核源码0.02版(http://www.kernel.org),注意,这里公开的Linux内核源码并不是我们现在使用的Linux系统的全部,而仅仅是Linux内核(kernel)部分的代码。

1993年,Linux 1.0版发行,Linux转向GPL版权协议。

1994年,Linux的第一个商业发行版Slackware问世。

1996年,美国国家标准技术局的计算机系统实验室确认Linux版本1.2.13(由Open Linux公司打包)符合POSIX标准。

1999年,Linux的简体中文发行版问世。

2000年后,Linux系统日趋成熟,涌现大量基于Linux服务器平台的应用,并广泛应用于基于ARM技术的嵌入式系统中。

 

2.1.6.2   Linux发展历程中相关人物

我们一定要向前辈们致以深深的敬意,没有他们,就没有今天优秀的Linux系统(如图1-5所示)。

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

 

2.1.7 Linux核心概念知识

2.1.7.1 自由软件与FSF

1.    自由软件

简单地理解,自由软件的核心就是没有商业化软件版权制约源代码开放,可无约束自由传播

注意:自由软件强调的是权利问题,而非是否免费的问题。大家一定要理解这个概念,自由软件中的自由是“言论自由”中的“自由”,而不是“免费啤酒”中的“免费”。

自由意味着freedom,而免费意味着free,这是完全不同的概念。例如:RedHat Linux自由但不免费,CentOSLinux是自由且免费的。

自由软件关乎使用者运行、复制、发布、研究、修改和改进该软件的自由。更精确地说,自由软件赋予软件使用者四种自由:

☑    不论目的为何,有运行该软件的自由。

☑    有研究该软件如何运行,以及按需改写该软件的自由。当然,取得该软件源代码为达成此目的之前提。

☑    有重新发布拷贝的自由。

☑有改进该软件,以及向公众发布改进的自由,这样整个社群都可受惠。同样,取得该软件的源码为达成此目的之前提。

 

2.    FSF

FSF(Free Software Foundation)的中文意思是自由软件基金会,是Richard Stallman于1984年发起和创办的。FSF的主要项目是GNU项目。它的目的是建立可自由发布和可移植的类UNIX操作系统产品。GNU项目本身产生的主要软件包括:Emacs编辑软件、gcc编译软件、bash命令解释程序和编程语言,以及gawk(GNU’s awk)等。

 

2.1.7.2 GNU知识

GNU的全称为GNU’s not unix,意思是“GNU不是UNIX”。GNU计划又称革奴计划,是由RichardStallman在1984年公开发起的,是FSF的主要项目。前面已经提到过,这个项目的目标是建立一套完全自由的和可移植的类UNIX操作系统。

 

GNU类UNIX操作系统是由一系列应用程序、系统库和开发工具构成的软件集合,并加上了用于资源分配和硬件管理的内核。

 

但是GNU自己的内核Hurd仍在开发中,离实用还有一定的距离。因此,这个GNU系统并没有流行起来。现在的GNU系统通常是使用Linux系统的内核,加上GNU项目贡献的一些组件,以及其他相关程序组成的,这样的组合被称为GNU/Linux操作系统。

 

到1991年Linux内核发布的时候,GNU项目已经完成了除系统内核之外的各种必备软件的开发。在LinusTorvalds和其他开发人员的努力下,GNU项目的部分组件又运行到了Linux内核之上,例如:GNU项目里的Emacs、gcc、bash、gawk等,至今都是Linux系统中很重要的基础软件。

 

2.1.7.3 GPL知识

1.    GPL

 

GPL全称为General Public License,中文名为通用公共许可,是一个最著名的开源许可协议,开源社区最著名的Linux内核就是在GPL许可下发布的。GPL许可是由自由软件基金会创建的。

 

1984年,Richard Stallman发起开发自由软件的运动后不久,在其他人的协作下他创立了通用公共许可证(GPL),这对推动自由软件的发展起到至关重要的作用,那么,这个GPL到底是什么意思呢?

 

简单地理解,GPL许可的核心是保证任何人有共享和修改自由软件的自由,任何人有权取得、修改和重新发布自由软件的源代码权利,但都必须同时给出具体更改的源代码。

 

虽然整个Linux内核是基于GNU通用公共许可的,但是Linux内核并不是GNU计划的一部分,这一点请读者不要混淆

 

2.    LGPL

 

LGPL(Lesser General Public License)相对于GPL较为宽松,允许不公开全部源代码,为基于Linux平台开发商业软件提供了更广阔的空间。对于该知识点,本书仅提及一下,有兴趣的读者可到网上查询相关信息。

 

2.1.8 Linux系统组成

Linux操作系统的核心为Linus Torvalds开发的kernel,Linux内核之上的组件分为几部分:一部分是GNU组件,如Emacs、gcc、bash、gawk等;另一些重要组成部分则来自于加利福尼亚大学伯克利分校的BSD UNIX项目和麻省理工学院的X Windows系统项目,以及在这之后成千上万的程序员开发的应用程序等(见表1-1)。正是Linux内核与GNU项目、BSD UNIX及MIT的X11(X Windows)的结合,才使得整个Linux操作系统很快形成,并得到了发展,进而组成了今天优秀的Linux系统。

Linux操作系统=Linux内核+GNU软件及系统软件+必要的应用程序

 

2.1.8.1   Linux系统组成

 

Linux操作系统的核心为Linus Torvalds开发的kernel,Linux内核之上的组件分为几部分:一部分是GNU组件,如Emacs、gcc、bash、gawk等;另一些重要组成部分则来自于加利福尼亚大学伯克利分校的BSD UNIX项目和麻省理工学院的X Windows系统项目,以及在这之后成千上万的程序员开发的应用程序等(见表1-1)。正是Linux内核与GNU项目、BSD UNIX及MIT的X11(X Windows)的结合,才使得整个Linux操作系统很快形成,并得到了发展,进而组成了今天优秀的Linux系统。

 

Linux操作系统=Linux内核+GNU软件及系统软件+必要的应用程序



Linux系统的核心组成原理示意图参照图。

 

2.1.9 Linux的特点

2.1.9.1 Linux为什么受欢迎

Linux系统之所以受到广大计算机爱好者的喜爱,主要原因有两个:

 

1)    Linux属于自由软件,用户不用支付任何费用就可以获得系统和系统的源代码,并且可根据自己的需要对源代码进行必要的修改,无偿使用,无约束地自由传播。

 

       2)    Linux具有UNIX的全部优秀特性,任何使用UNIX操作系统或想要学习UNIX操作系统的人,都可以通过学习Linux来了解UNIX,同样可以获得UNIX中的几乎所有优秀功能,并且Linux系统更开放,社区开发和全世界的使用者也更活跃。

 

2.1.9.2 Linux更多特点介绍

       还记得前文对Linux操作系统特性的小结么?除了那些特点以外,其实Linux还具有如下一些特点:

 

       可以说Linux是UNIX在PC上的克隆版,仿UNIX内核构建,几乎与UNIX指令集向下完全兼容。

 

       是一个完善的支持多用户、多任务、多进程、多CPU的系统。

       具有很高的系统稳定性与可靠性。

       具有很高的系统安全性。

       有完善的网络服务,支持HTTP、FTP、SMTP、POP、SAMBA、SNMP、DNS、DHCP、SSH、TELNET等。

       是基于GNU许可,自由开放的系统。

       有大量第三方免费应用程序。

       得到了众多业界厂商支持,如IBM、Oracle、Intel、HP、MOTO、Google等。

       有完善的大型数据库平台,包括Oracle、DB/2、Sybase、MySQL、d等。

       有完善的图形用户界面,包括GNOME、KDE等。

       有完善的开发平台,包括C/C++、Java、Perl等,支持各类图形界面API,如GTK+、QT等。

 

2.1.10 Linux的应用领域

2.1.10.1 IT服务器Linux系统应用领域

       如今的IT服务器领域是Linux、UNIX、Windows三分天下,Linux系统可谓后起之秀,特别是最近几年来,服务器端Linux操作系统不断地扩大市场份额,每年增长势头迅猛,并且开始对Windows及UNIX服务器市场的地位构成严重威胁。

 

       Linux作为企业级服务器的应用十分广泛,利用Linux系统可以为企业构架WWW服务器、数据库服务器、负载均衡服务器、邮件服务器、DNS服务器、代理服务器(透明网关)、路由器等,不但使企业降低了运营成本,同时还获得了Linux系统带来的高稳定性和高可靠性,且无须考虑商业软件的版权问题。

 

       随着Linux在服务器领域的广泛应用,近几年来,该系统已经渗透到电信、金融、政府、教育、银行、石油等各个行业,同时各大硬件厂商也相继支持Linux操作系统。这一切表明,Linux在服务器市场前景光明。同时,大型、超大型互联网企业(百度、新浪、淘宝等)都在使用Linux系统作为其服务器端的程序运行平台,全球及国内排名前十的网站使用的几乎都是Linux系统,Linux已经逐步渗透到各个领域的企业里。

 

2.1.10.2 嵌入式Linux系统应用领域

       由于Linux系统开放源代码,功能强大、可靠、稳定性强、灵活,而且具有极大的伸缩性,再加上它广泛支持大量的微处理器体系结构、硬件设备、图形支持和通信协议,因此,在嵌入式应用的领域里,从因特网设备(路由器、交换机、防火墙、负载均衡器等)到专用的控制系统(自动售货机、手机、PDA、各种家用电器等),Linux操作系统都有很广阔的应用市场。特别是经过这几年的发展,它已经成功地跻身于主流嵌入式开发平台。例如,在智能手机领域,Android Linux已经在智能手机开发平台牢牢地占据了一席之地。嵌入式系统是另一个应用领域,不是本书讨论的主要话题,读者若对此感兴趣,可参考相关文章和书籍。

 

2.1.10.3 个人桌面Linux应用领域

       所谓个人桌面系统,其实就是我们在办公室使用的个人计算机系统,例如:WindowsXP、Windows 7、MAC等。Linux系统在这方面的支持也已经非常好了,完全可以满足日常的办公及家用需求,例如:

       ·浏览器上网浏览(例如:Firefox浏览器)。

       ·办公室软件(Open Office,兼容微软Office软件)处理数据。

       ·收发电子邮件(例如:ThunderBird软件)。

       ·实时通信(例如:QQ等)。

       ·文字编辑(例如:vi、vim、emac)。

       ·多媒体应用。

       虽然Linux个人桌面系统的支持已经很广泛了,但是在当前的桌面市场份额还远远无法与Windows系统竞争,这其中的最大障碍可能不在于Linux桌面系统产品本身,而在于用户的使用观念、操作习惯和应用技能,以及曾经在Windows上开发的软件的移植问题。

 

2.1.11 如何选择Linux的发行版

2.1.11.1 Linux的发行版本介绍

Linux内核(kernel)版本主要有4个系列,分别为Linux kernel 2.2、Linux kernel 2.4、Linux kernel 2.6、Linux kernel 3.x,更多更新的内核版本请浏览https://www.kernel.org/。

Linux的发行商包括Slackware、Red Hat、Debian、Fedora、TurboLinux、Mandrake、SUSE、CentOS、Ubuntu、红旗、麒麟……

下面来看看其中几个重要的发行版本。

1)RedHat:Red Hat Linux9.0的内核为2.4.20。在版本9.0后,Red Hat不再遵循GPL协议,成为收费产品(但仍开源),发展的新版本依次为Red Hat 3.x、Red Hat 4.x、Red Hat 5.x、Red Hat 6.x、Red Hat 7.x。

2)Fedora:Red Hat的一个分支,仍遵循GPL协议,可以认为是RedHat预发布版(用于实验的小白鼠)。

3)CentOS(Community Enterprise OperatingSystem):Red Hat的另一个重要分支,以Red Hat所发布的源代码重建符合GPL许可协议的Linux系统,即将Red Hat Linux源代码的商标(LOGO)及非自由软件部分去除后再编译而成的版本。目前CentOS已被Red Hat公司收购,但仍开源免费。CentOS Linux是国内互联网公司使用最多的Linux系统版本,也是本书的“主人公”,本书后面所有的内容讲解都是基于CentOS这个操作系统的,绝大部分内容几乎无需任何修改即可适合其他Linux操作系统版本。

提示:有关Linux操作系统,记住Red Hat、CentOS、Ubuntu、Fedora、SUSE、Debian等即可。对于Red Hat与CentOS的区别和联系,有时会被企业面试官问到,需要重点了解。

 

2.1.11. 2 选择适合的Linux系统学习

在了解了Linux版本及应用领域之后,接下来就要定位我们到底该往哪方向发展了。如果你想做一个网站的后端运维工程师,那么就沿着服务器领域的路线;如果你想进入嵌入式领域,那么就要学习嵌入式领域的技能;如果你对桌面Linux系统感兴趣,那么可以深入桌面系统领域。选择的领域不同,学习和要掌握的技能自然就会有差别,因此,这个选择就显得很重要了。当你阅读本书的时候,相信你已经选择了IT服务器Linux系统应用领域。没错,我们整本书的主要内容就是基于Linux服务器应用领域而写的。

 

1) Linux发行版本应用场景

在确定了自己的发展路线后,针对Linux系统选择一个合适的版本就显得尤为重要了。事实上,这个问题也正是大多数初学者最为头疼的一个问题,对于此,笔者的建议如下:

 

如果你是一个Linux爱好者,想选择一个桌面系统,并且既不想用盗版,又不想花太多钱购买商业系统软件,那么可以选择Ubuntu桌面系统。如果你需要服务器端的Linux系统,想用一个比较稳定的服务器系统,或者说目标就是进入企业从事Linux运维工作,那么建议你选择CentOS或Red Hat。在这两者当中又应首选CentOS,因为目前市场的趋势是这样的,CentOS社区非常活跃。如果对系统稳定性、安全性有更高的要求,或者是特殊使用偏好的用户,可以考虑Debian或FreeBSD。

 

如果特别痴迷于新技术体验和追求最新的软件版本,可以选择Fedora,但要容忍Fedora潜在的新技术软件的Bug和系统稳定性的问题。主要侧重服务器领域,并且根据国内互联网企业的市场需求,本书所选择的Linux版本为CentOS,当然所讲的技术也适合Red Hat Linux及其他大部分Linux系列,CentOS是当前国内互联网企业服务器端实际应用最多的系统。

 

2)选择CentOS Linux的版本

本书讲解的Linux运维技术主要是基于CentOS x86_64 Linux的,绝大部分知识几乎无需任何修改同样也适用于Red Hat Linux等同源或类似Linux系统版本。

下面是CentOS的主流版本在国内互联网企业的使用现状说明。

·CentOS 5系列:占25%左右,主流版本有CentOS 5.5、CentOS 5.8、CentOS 5.10、CentOS 5.11,不推荐新手学习。

·CentOS 6系列:占45%左右,主流版本有CentOS 6.2、CentOS 6.4、CentOS 6.6、CentOS 6.7,推荐新手学习。

·CentOS 7系列:刚刚发布不久,目前极少企业正式使用。根据企业的主流应用进行选择才是明智的,不要盲目选择最高的系统版本。

 

综上所述,老男孩推荐学习当下企业的主流应用,即CentOS 6系列,这其中又首选CentOS 6.7。因为只要大版本和企业相同即可,小版本的差别对学习来说几乎无影响,故而可以选择该系列最新的小版本,即CentOS 6.7 x86_64来学习。其实,只要学透一种版本,再学别的系统版本自然就会触类旁通了。

 

2.1.12 搭建学习Linux的运维环境

2.1.12.1 虚拟机软件介绍

简单地说,虚拟机(VirtualMachine)软件就是一套特殊的软件,它可以作为操作系统独立运行,也可以运行于操作系统之上。若是运行于系统之上的虚拟机软件,在一台计算机(PC或笔记本电脑等)上安装虚拟机软件后,就可以模拟若干台相对独立的虚拟PC设备,并且可以在每台虚拟的PC设备上安装运行操作系统,运行网络服务,与真实的计算机设备几乎无任何使用差别。

 

使用时,需要先在计算机上安装虚拟机软件(例如:VMware Workstation),然后通过安装的虚拟机软件创建一个或多个虚拟机系统(即虚拟的计算机设备),最后在这些虚拟的计算机设备上安装操作系统并进行启动配置,最终实现在一台计算机上“同时”运行多个虚拟机设备系统。

 

另外,还可以将这些虚拟的系统连成局域网,用来部署网站集群架构等更深层次的运维技术,这样的虚拟环境在后文会涉及。安装VMware Workstation 12虚拟机软件后打开的软件界面。

 

经过前面对虚拟机软件的介绍,相信读者应该知道虚拟机软件到底是什么了吧。下面,老男孩介绍一些网友常用的虚拟机软件,如表1-1所示。

表 常用的虚拟机软件及选择建议

 

2.1.12.2 通过虚拟机软件学习Linux运维

通过虚拟机软件是初学者学习Linux运维的最佳方式。

在与部分网友和学生的交流中,老男孩发现,很多初学者都认为,学习Linux就必须把自己的计算机安装成Linux系统或必须有真正的服务器设备。这实际上是一些机构、书籍或网络文章给人传导的错误思想和思维。其实,学习Linux最简单、最实用的环境就是虚拟机环境(例如:通过VMware Workstation等软件学习)。老男孩这样说的原因有如下几点:

 

1)利用虚拟机软件搭建Linux学习环境简单,容易上手,最重要的是利用虚拟机模拟出来的Linux与真实的Linux几乎没有任何区别。如果购买服务器,动则一两万元,不是一般的网友所能承受的,而且声音很大,很费电。如果用PC和笔记本电脑搭建Linux(包括双系统共存方式),那就完全是Linux环境了,不但加大你的学习难度(例如:无法用Word记笔记和正常浏览网页),也与实际的工作环境相差很远,即南辕北辙了,企业里运维人员的工作环境绝大多数都是在Windows桌面系统下通过SSH工具(SecureCRT/Xshell)远程连接千百里之外的Linux服务器进行管理和维护的。因此,用虚拟机软件来搭建环境是最接近企业工作环境的。

 

2)搭建Linux集群等大规模环境有时需要同时开启几台虚拟机(每台虚拟机仅需256~512MB内存、6~8GB的硬盘空间即可),此时如果是用服务器或者自己的计算机安装Linux,则很难满足学习要求,购买多台服务器就更不现实了。事实上,仅仅用价值四五千元的个人笔记本电脑就可以轻松满足搭建中小规模Linux集群架构的学习需求。

 

3)如果用虚拟机学习,只要计算机配置高一点,就可以同时开启多个Linux虚拟机,在上班、回家的路上,带着笔记本电脑即可随时学习。如果是多台真实计算机和服务器设备,就无法移动了。当然有读者会说可以放机房里,但这个代价也太大了。大多数学习者很难有这样的资源。

 

4)使用虚拟机系统环境,我们可以随意对虚拟系统进行任何的设置和更改操作,甚至可以格式化虚拟机系统硬盘,进行重新分区等操作,而且完全不用担心会丢掉有用数据,因为虚拟机是系统上运行的一个虚拟软件,对虚拟机系统的任何操作都相当于在操作虚拟机的虚拟机设备和系统,不会影响计算机上的真实数据。

 

2.1.13 选择适合自己的虚拟机软件

 

2.1.13.1 选择适合的虚拟机软件

如果你使用的是Windows系统,那么,老男孩推荐你使用VMware Workstation;如果是Mac OS平台,可以选择Virtual PC;如果你用的是Ubuntu系统,可以选择Xen、KVM、VMware(Linux版本)。本书将以在Windows 7系统上安装VMware Workstation 12.0为例,为大家讲解Linux运维技术,同时会在DELL R710真实服务器环境中进行测试,其他环境的搭建大同小异,进入Linux里面几乎无差别。

 

2.1.13.2 虚拟机软件对硬件的要求

虚拟机软件的原理是利用宿主机物理硬件资源虚拟PC设备,因此对物理机硬件的要求比较高,其中最主要的是内存、硬盘和CPU资源。首先,宿主机物理内存要足够大,最低在4GB以上,因为在创建虚拟设备时,要为每个虚拟机分配一定的内存资源(一般最小为256MB,实际学习时可以设置在256~1024MB之间)和硬盘空间(默认8GB即可),SSD固态盘最好,同样也要分配CPU资源,CPU最好是I5以上,例如:每个虚拟机分配一核CPU。当然了,多个虚拟机系统也可以同时占用一个核,在日常学习Linux时,如果不进行大量并行安装软件等消耗CPU资源的操作,使用虚拟机环境还是非常舒服的。

 

2.1.14 安装与使用VMware虚拟机软件

2.1.14.1. 对VMware Workstation版本的建议

Windows 10发布了,不建议新手使用最新系统作为宿主机学习Linux,因为会遇到各种“坑”,走前人走过的路才是最佳的学习思路,学会后再变通就会好多了,因此,推荐大家使用Windows 7系统和VMware Workstation12.0虚拟机软件,与老男孩使用的一致最佳。

 

2.1.14.2 虚拟机软件的安装

在Windows系统下安装了适合Windows版本的VMware Workstation后,就可以在VMware Workstation上创建虚拟机了。之后运行创建的虚拟机,在虚拟机上安装CentOSLinux操作系统,这个安装过程与在实际生产环境下安装是一样的。

 

VMware Workstation虚拟机软件的安装很简单,只需按照Windows常规方法,持续按“下一步”即可完成。

 

2.1.14..3 安装与使用VMware虚拟机软件

1)虚拟机软件安装完毕后,双击桌面上的VMware Workstation图标,或者在开始程序菜单里找到VMware Workstation图标来启动VM应用程序。

 

2)接下来按Ctrl+N快捷键(或者点选菜单栏File→New virtual machine)创建一个新虚拟机,此时,会出现新建虚拟机向导窗口。

 

3)在图所示的虚拟机创建向导界面中,单选Custom(advanced),即自定义安装,然后单击Next按钮继续,弹出如图所示的界面。

 

4)图描述了虚拟机硬件兼容和虚拟设备大小限制,在图右侧的Limitations下面,可以发现软件对要创建的虚拟机的硬件大小会有限制,例如:内存最大为64GB、CPU为16 processor limit、磁盘为8TB disk size limit等,不过,这些并不会影响学习,保留默认选择即可。然后单击Next按钮继续,此时会出现如图所示的窗口。

 

5)在图所示的界面中,“为虚拟机选择如何安装系统”这一步骤很关键。请选择界面最下面标示的“I will install the operating system later.”,表示创建虚拟机后不再默认安装系统,即创建虚拟机后,我们可以手动选择镜像或将光盘放入虚拟光驱自行安装。如果选择了“Installer disc image file”,则在创建完虚拟机后就会自动安装系统。这虽然很方便,但是会增加太多的安装包,并且会自动分区,这样就不是企业环境安装的标准了。选择完毕,然后单击Next按钮继续,会出现如图所示的界面。

 

6)“为虚拟机选择系统类型及内核版本”也很关键,这一步是选择系统类型及内核版本进行系统安装,如果选错了,可能无法正确安装系统。

这里选择Linux系统类型,内核为“Other Linux 2.6.x kernel64-bit”,也就是说,要安装的系统为CentOS6.6 x86_64系统。也可以在系统类型中直接选择CentOS 64bit(但不推荐,因为笔者没有这样选过,运维思想:多走自己走过的正确的路)。选择完毕,然后单击Next按钮继续,出现如图所示的界面。

7)在图所示的界面中,要为虚拟机起名并选择安装程序的路径,路径要选择大一点的宿主机磁盘分区,剩余空间至少要大于20GB,配置完毕后单击Next按钮继续,出现的界面如图所示。

8)在如图所示的界面,要选择虚拟机对应CPU的颗数,以及每个CPU的核数,默认都是1,选此即可。我们仅仅是用虚拟机来进行学习、实验,不要求虚拟机设备资源有多好。单击Next按钮继续,出现的界面如图所示。

 

9)“为虚拟机选择内存资源大小”也很关键,默认选择的虚拟机内存大小为384MB,建议调整为1024MB。之后,单击Next按钮继续,出现的界面如图所示。

内存大小设置分析:

·创建虚拟机时内存至少大于512MB,最好是2GB以上,否则安装系统可能报错,因为从CentOS 6开始,多数都用图形界面安装系统了,因此,占用的内存会比较大。

·安装Linux之后,启动虚拟机时内存最好在512MB以上,最低是256MB,否则也可能报错。

·如果是CentOS 5系列,安装时内存为256MB,启动时100MB左右即可。CentOS 6系列安装和启动都会占用更多的内存。

 

10)“为虚拟机选择网络类型”极其关键。VMware虚拟机常见的网络类型有Bridged(桥接)、NAT、Host-only(仅主机)3种,在分析如何选择之前,先要简单给大家介绍一下这三种网络类型。

 

·NAT

NAT(Network Address Translation,网络地址转换),NAT模式是比较简单的实现虚拟机上网的方式。简单地理解,NAT模式的虚拟机就是通过宿主机(物理计算机)上网和交换数据的。

在NAT模式下,虚拟机的网卡连接到宿主机的VMnet8上。此时系统的VMware NAT Service服务就充当了路由器,负责将虚拟机发送到VMnet8的包进行地址转换之后发送到实际的网络上,再将实际网络上返回的包进行地址转换后通过VMnet8发送给虚拟机。VMwareDHCP Service负责为虚拟机分配IP地址。NAT网络类型的原理逻辑图如图所示。

图 VMware NAT网络模式原理逻辑图

 

·Bridged(桥接模式)

桥接模式可以简单理解为通过物理主机网卡架设一座桥,从而连入实际的网络中。因此,虚拟机可以被分配与物理主机相同网段的独立IP,所有网络功能和网络中的真实机器几乎完全一样。桥接模式下的虚拟机和网内真实计算机所处的位置是一样的。

在Bridged模式下,计算机设备创建的虚拟机就像一台真正的计算机一样,它会直接连接到实际的网络上,逻辑上上网与宿主机(计算机设备)没有联系。Bridged网络类型的原理逻辑图如图1-19所示。

Bridged网络类型特别适合于局域网环境,其优势是虚拟机像一台真正的主机一样,缺点是可能会与其他物理主机IP冲突,并且在与宿主机交换数据时,都会经过实际的路由器,当不考虑NAT模式的时候,就选择这个桥接模式,在桥接模式下换了网络环境后所有虚拟机的IP都会受影响。

图    VMware Bridged网络模式原理逻辑图

 

·Host-only(仅主机)

在Host-only模式下,虚拟机的网卡会连接到宿主的VMnet1上,但宿主系统并不为虚拟机提供任何路由服务,因此虚拟机只能与宿主机进行通信,不能连接到实际网络上,即无法上网。Host-only网络类型的原理逻辑图如图1-20所示。

11)在图所示的界面选择虚拟机的I/O控制器类型,采用默认类型即可,选择完毕,单击Next按钮继续,出现的界面如图所示。

 

12)在选择虚拟机磁盘类型时,采用默认的SCSI即可(VM高版本会有SAS选项,不过建议不要选),选择完毕,单击Next按钮继续,会出现如图所示界面。

13)在选择虚拟机使用的磁盘时,采用默认的“Create a new virtual disk”,即创建一个虚拟磁盘。选择完毕,单击Next按钮继续,会弹出如图所示的界面。

 

14)指定磁盘容量时,因为是学习给个 10 G 就可以了,选择 将虚拟磁盘拆分成多个文件。

不要选择 立即分配所有磁盘空间。选择完毕,单击Next按钮继续,会弹出如图所示的界面。

 

14)在选择虚拟机使用的磁盘文件名时,仍然采用默认配置。选择完毕,单击Next按钮继续,出现的界面如图所示。

 

15)如图所示界面用于显示配置的虚拟机的所有选项信息,可以通过滚动条下拉查看,单击左下方的“Customize Hardware”可以自定义添加其他硬件,如磁盘、网卡等,这里保留默认。可以将打印机和声卡删除,选择完毕,单击Next按钮继续,会出现如图所示界面。

3.1 面试题

1)请详细描述GNU的相关知识和历史事件。

2)请描述什么是GPL及GPL的内容细节。

3)企业工作中如何选择各Linux发行版?

4)Red Hat Linux和CentOS Linux有什么区别和联系?

5)请说出你认为Linux受欢迎的3个以上特点。

4.1 总结

1)了解什么是操作系统及操作系统简单原理图。

2)了解UNIX的发展历史。

3)了解市场上的常见UNIX系统版本。

4)了解UNIX及Linux诞生发展的几个关键人物。

5)重点了解GNU、GPL的知识。

6)了解Linux系统的特点。

7)了解Linux系统的常见发行版本,不同场景选择。

8)重点了解CentOS和Red Hat的区别和联系。

9)了解CentOS各个版本的应用场景及企业应用情况。

10)学会搭建学习Linux的环境。

注意:最好能口头表达出上述内容。

 

阅读更多
个人分类: 跟老男孩学Linux
想对作者说点什么? 我来说一句

没有更多推荐了,返回首页

不良信息举报

第3章 Linux系统介绍与虚拟环境的准备

最多只允许输入30个字

加入CSDN,享受更精准的内容推荐,与500万程序员共同成长!
关闭
关闭