Linux服务器项目实训教程
上QQ阅读APP看书,第一时间看更新

1.1 背景知识

Linux系统是一个类似UNIX的操作系统,它是UNIX在微机上的完整实现,是一个开放自由并符合POSIX 1003.1标准的系统,它的诞生、发展和成长与Minix操作系统、GNU计划密不可分;Linux有其独特的发展历史和特点。

1.1.1 Linux简介

1)Linux系统的历史

Linux系统是一个类似UNIX的操作系统,它是UNIX在微机上的完整实现,它的标志是一个名为Tux的可爱的小企鹅,如图1-1所示。UNIX操作系统是1969年由K. Thompson和D.M. Richie在美国贝尔实验室开发的一种操作系统,由于其良好而稳定的性能迅速在计算机领域中得到广泛的应用,并在随后几十年中被做了不断的改进。

图1-1 Linux的标志

1990年,芬兰人Linus Torvalds接触了为教学而设计的Minix系统后,开始着手研究编写一个开放的、与Minix系统兼容的操作系统。1991年10月5日,Linus Torvalds在赫尔辛基技术大学的一台FTP服务器上发布了一个消息,这也标志着Linux系统的诞生。它公布了第一个Linux的内核版本——0.0.2版。Internet的兴起,使得Linux系统的发展进入快车道,很快就有许多程序员加入Linux系统开发中。

随着编程小组的扩大和完整的操作系统基础软件的出现,Linux开发人员认识到,Linux已经逐渐变成一个成熟的操作系统。1992年3月,内核1.0版本的推出,标志着Linux第一个正式版本诞生。这时能在Linux上运行的软件已经十分广泛了,从编译器到网络软件以及X-Window都有。现在,Linux凭借优秀的设计、不凡的性能,加上IBM、Intel、AMD、DELL、Oracle等国际知名企业的大力支持,市场份额逐步扩大,逐渐成为主流服务器操作系统。

2)Linux版权问题

Linux是基于Copyleft的软件版权模式进行发布的,其实Copyleft是与Copyright(版权所有)相对立的新名称,它是GNU项目制定的通用公共许可证(General Public License, GPL)。GNU项目是由Richard Stallman于1984年提出的,他建立了自由软件基金会(FSF)并提出GNU计划的目的是开发一个完全自由的、与UNIX类似但功能更强大的操作系统,以便给所有的计算机使用者提供一个功能齐全、性能良好的基本系统。它的标志是角马,如图1-2所示。

图1-2 GNU标志图

GPL是由自由软件基金会发行的、用于计算机软件的版权协议许可证书,使用该证书发布的软件被称为自由软件。GPL保证任何人有权使用、拷贝和修改该软件。任何人取得、修改和重新发布自由软件的衍生作品必须以GPL作为它重新发布的许可协议。

小资料:GNU这个名字使用了有趣的递归缩写,它是“GNU's Not UNIX”的递归缩写形式。

3)Linux系统的特点

Linux操作系统作为一个免费、自由、开放的操作系统,它的发展势头迅猛,它拥有如下所述的一些特点:

①完全免费。由于Linux遵循通用公共许可证GPL,因此任何人有使用、拷贝和修改Linux的自由,可以放心地使用Linux而不必担心成为“盗版”用户。

②高效、安全、稳定。UNIX操作系统的稳定性是众所周知的,Linux继承了UNIX核心的设计思想,具有执行效率高、安全性高和稳定性好的特点。Linux系统的连续运行时间通常以年做单位,能连续运行3年以上的Linux服务器并不少见。

③支持多路硬件平台。Linux能在笔记本电脑、PC、工作站甚至大型机上运行,并能在x86、MIPS、PowerPC、SPARC、Alpha等主流的体系结构上运行,可以说Linux是目前支持的硬件平台最多的操作系统。

④友好的用户界面。Linux提供了类似Windows图形界面的X-Window系统,用户可以使用鼠标方便、直观和快捷地进行操作。经过多年的发展,Linux的图形界面技术已经非常成熟,其强大的功能和灵活的配置界面让一向以用户界面友好著称的Windows也黯然失色。

⑤强大的网络功能。网络就是Linux的生命。完善的网络支持是Linux与生俱来的能力,所以Linux在通信和网络功能方面优于其他操作系统,其他操作系统不包含如此紧密地和内核结合在一起的连接网络的能力,也没有内置这些网络特性的灵活性。

⑥支持多任务、多用户。Linux是多任务、多用户的操作系统,可以支持多个使用者同时使用并共享系统的磁盘、外设、处理器等系统资源。Linux的保护机制使每个应用程序和用户互不干扰,一个任务崩溃,其他任务仍照常运行。

1.1.2 Linux体系结构

Linux一般有3个主要部分:内核(kernel)、命令解释层(Shell或其他操作环境)、实用工具。

1)Linux内核

内核是系统的核心,是运行程序和管理磁盘、打印机等硬件设备的核心程序。操作系统向用户提供一个操作界面,它从用户那里接收命令,并且把命令送给内核去执行。

当Linux安装完毕之后,一个通用的内核就被安装到计算机中。这个通用内核能满足绝大部分用户的需求,但这种普遍适用性内核对具体的某一台计算机来说,可能有一些并不需要的内核程序将被安装。因此,Linux允许用户根据自己机器的实际配置定制Linux的内核,从而有效地简化Linux内核,提高系统启动速度。

2)Linux Shell

Shell是系统的用户界面,提供了用户与内核进行交互操作的接口。它接收用户输入的命令,并且把它送入内核执行。

计算机操作系统在系统内核与用户之间提供操作界面,Linux存在多种操作环境,分别是:基于图形界面的集成桌面环境和基于Shell命令行环境。Linux系统中的每个用户都可以根据自己的要求定制自己的用户操作界面。

Shell是一个命令解释器,它解释由用户输入的命令,并且把它们送到内核。Shell编程语言具有普通编程语言的很多特点,如它也有循环结构和分支控制结构等,用这种编程语言编写的Shell程序与其他应用程序具有同样的效果。

同Linux本身一样,Shell也有多种不同的版本。目前BASH(Bourne Again Shell)是GNU/Linux操作系统上默认的Shell。还有Korn Shell和C Shell等Shell版本。

Shell脚本程序是解释型的,也就是说Shell脚本程序不需要进行编译,就能直接逐条解释、逐条执行脚本程序的源语句。

作为命令行操作界面的替代,Linux还提供了像Windows那样的可视化图形界面——X-Window的图形用户界面(GUI)。比较流行的集成桌面环境是KDE和GNOME。GNOME是Red Hat Linux/CentOS默认使用的界面。

3)实用工具

标准的Linux系统都有配套的实用工具程序,如编辑器、浏览器、办公套件及其他系统管理工具等,用户可以自行编写需要的应用程序。

1.1.3 Linux的版本

Linux的版本分为内核版本和发行版本两种。

1)内核版本

内核是运行程序和管理像磁盘和打印机等硬件设备的核心程序,它提供了一个在裸设备与应用程序间的抽象层。内核的开发一直由Linus领导的开发小组控制着,版本也是唯一的。开发小组每隔一段时间发布新的版本或其修订版,从1991年10月Linus向世界公开发布的内核0.0.2版本(0.0.1版本功能相当简陋,所以没有公开发布)到目前最新的内核3.16.2版本,Linux的功能越来越强大。

Linux内核的版本号命名是有一定规则的,版本号的格式通常为“主版本号.次版本号.修正号”。主版本号和次版本号标志着重要的功能变动,修正号表示较小的功能变更。以3.16.2版本为例,3代表主版本号,16代表次版本号,2代表修正号。其中次版本号还有特定的意义:如果是偶数数字,就表示该内核是一个可放心使用的稳定版;如果是奇数数字,则表示该内核加入了某些测试的新功能,是内部可能存在着BUG的测试版。读者可以到Linux内核官方网站http://www.kernel.org下载最新的内核代码。

2)发行版本

仅有内核而没有应用软件的操作系统无法使用,因此许多公司或社区将内核及相关的应用程序组织构成一个完整的操作系统,让一般的用户可以简便地安装和使用Linux,这就是所谓的发行版本(Distribution)。当前各种发行版本超过300种,它们的发行版本号各不相同,使用的内核版本号也可能不一样,非常流行的发行套件有Red Hat/CentOS、SUSE、Ubuntu等。

1.1.4 CentOS7的新特性

CentOS7发布于2014年6月,它是CentOS社区操作系统的第7个重要版本,新版本的主要变化是内核升级为3.10,支持Xen虚拟化技术、集群存储等。CentoOS7的主要特性如下:

①虚拟化技术。支持在各种平台上的虚拟化技术,在Red Hat Enterprise Linux Advanced Plat-form上甚至支持存储与扩展的服务器虚拟化技术,还提供了virt-manager、libvit/virsh管理工具。

②内核与性能的提升。CentOS7基于新的3.10内核,对于多内核处理器的支持更完善,并支持Intel Network Accelerator Technology(IOAT),增强了基于Kexec/Kdump的Dump支持,增强了对于大型SMP系统的支持,增强了管道缓存。

③安全。CentOS7采用SELinux增强了系统的安全性,并且内置图形化的SELinux管理工具,集成了目录和安全机制,增强的IPSec提供了系统安全和性能,新的审核机制还可以提供搜索、产生报表和实时监控能力。

1.1.5 项目设计准备

中小企业在选择网络操作系统时,首先推荐企业版的Linux网络操作系统。主要考虑的是其安全性特点和开源的优势。

1)Linux多重引导

Linux和Windows间的多系统共存有多种实现方式。可以先安装Windows,再安装Linux,最后用Linux内置的GRUB引导程序来实现多系统的引导,这种方式实现起来最简单。

任意先安装Windows还是Linux,最后经过特殊的操作,使用Windows内置的OS Loader来实现多系统引导;或者使用第三方软件来实现Windows和Linux多系统的引导。这种方式实现起来稍显复杂。

2)安装方式

任何硬盘在安装操作系统前都要进行分区。硬盘的分区类型主要有两种:主分区和扩展分区。一个CentOS7提供多种安装方式,分别如下:

①可以从DVD光驱启动安装,绝大多数情况下最为简单快捷的安装方式当然是光驱启动进行安装,需要下载CentOS7光盘映像文件并刻录启动光盘,计算机BIOS需要设置光驱为优先启动项。

②从硬盘安装,即下载镜像文件直接在机器上安装,这是比较环保的安装方式,也容易实现。

③从网络服务器安装,在有网络的环境下从网络安装也是一个不错的选择,CentOS7支持NFS、FTP、HTTP等3种安装方式。

3)磁盘分区规划

(1)磁盘分区简介

硬盘上最多只能有4个主分区,其中一个主分区可以用一个扩展分区来替换。也就是说主分区可以有1~4个,扩展分区可以有0~1个,而扩展分区中可以划分出若干个逻辑分区。

目前常用的硬盘主要有两大类:IDE接口硬盘和SCSI接口硬盘。IDE接口的硬盘读写速度比较慢,但价格相对便宜,是家庭PC常用的硬盘类型。ISCSI接口的硬盘读写速度比较快,但价格相对较贵。通常,要求较高的服务器会采用SCSI接口的硬盘。一台计算机上一般有两个IDE接口(IDE0和IDE1),在每个IDE接口上可连接两个硬盘设备(主盘和从盘)。采用SCSI接口的计算机也遵循这一规律。

Linux的所有设备均表示为/dev目录中的一个文件,如:

IDE接口上的主盘称为/dev/hda;

IDE接口上的从盘称为/dev/hdb;

SCSI接口上的主盘称为/dev/sda;

SCSI接口上的从盘称为/dev/sdb;

IDE接口上主盘的第1个主分区称为/dev/hda1;

IDE接口上主盘的第1个逻辑分区称为/dev/hda5。

由此可知,/dev目录下“hd”打头的设备是IDE硬盘,“sd”打头的设备是SCSI硬盘。

(2)分区方案

对于初次接触Linux的用户来说,分区方案越简单越好,所以最好的选择就是为Linux装备两个分区,一个是用户保存系统和数据的根分区(/),另一个是交换分区。其中交换分区设置为机器物理内存2倍大小即可;根分区则需要根据Linux系统安装后占用资源的大小和所需要保存数据的多少来调整大小,一般划分15~20GB就足够了。