毕业论文-基于KVM的虚拟化平台构建

上传人:新** 文档编号:568472765 上传时间:2024-07-24 格式:PDF 页数:47 大小:2.58MB
返回 下载 相关 举报
毕业论文-基于KVM的虚拟化平台构建_第1页
第1页 / 共47页
毕业论文-基于KVM的虚拟化平台构建_第2页
第2页 / 共47页
毕业论文-基于KVM的虚拟化平台构建_第3页
第3页 / 共47页
毕业论文-基于KVM的虚拟化平台构建_第4页
第4页 / 共47页
毕业论文-基于KVM的虚拟化平台构建_第5页
第5页 / 共47页
点击查看更多>>
资源描述

《毕业论文-基于KVM的虚拟化平台构建》由会员分享,可在线阅读,更多相关《毕业论文-基于KVM的虚拟化平台构建(47页珍藏版)》请在金锄头文库上搜索。

1、-南京大学继续教育学院南京大学继续教育学院论文题目作者姓名学科专业学号指导教师基于 KVM 的虚拟化平台构建计算机科学与技术2014 年09 月 18 日-本科毕业论文-南京大学南京大学本科毕业设计本科毕业设计( (论文论文) )诚信承诺书诚信承诺书本人郑重声明:所呈交的毕业设计(论文)(题目:基于 KTM 的虚拟化平台构建)是本人在导师的指导下独立进行研究所取得的成果。尽本人所知,除了毕业设计(论文)中特别加以标注引用的内容外,本毕业设计(论文)不包含任何其他个人或集体已经发表或撰写的成果作品。作者签名:年月日(学号):-基于 KVM 的虚拟化平台构建摘要在计算机科学中,虚拟化(Virtua

2、lization)是一个表现逻辑群组或电脑资源的子集的进程,用户可以用比原本的组态更好的方式来存取这些进程 .这些资源的新虚拟部份是不受现有资源的架设方式,地域或物理组态所限制.一般所指的虚拟化资源包括计算能力和资料储存。虚拟机(Virtual machine或VM),可以像真实机器一样运行程序的计算机的软件实现。本论文使用Linux系统中的Fedora下的KVM虚拟机来搭建多台虚拟机,并运行不同的操作系统,实现KVM虚拟化平台的搭建。关键词: :数据安全,虚拟化平台,虚拟化ABSTRACTABSTRACTIn computing, virtualization (or virtualisat

3、ion) is the creation of a virtual (ratherthan actual) version of something, such as a hardware platform, operating system,storage device, or network resources.While a physical computer in the classicalsense is clearly a complete and actual machine, both subjectively (from the userspoint of view) and

4、 objectively (from the hardware system administrators point ofview), a virtual machine is subjectively a complete machine (or very close), butobjectively merely a set of files and running programs on an actual, physicalmachine (which the user need not necessarily be aware of).In this paper,we use th

5、e KVM Virtualisation of Linux OS-Fedora to createVirtual Machines and run different Operating Systems.Then build the KVMVirtualisation Platform。Key wordsKey words:Virtualisation; Fedora; KVM Virtual Machine; Virtualisation Platform-目录第一章绪论 . 01.1 虚拟化技术概述 .01.2 虚拟化技术的应用现状和发展趋势 .5第二章 KVM 虚拟化概述. 102。1

6、LINUX系统概述 .102。1.1 Linux 系统简介.102。1.2 Fedora 简介.202。2 KVM 虚拟化介绍 .20第三章 KVM 虚拟化平台的搭建. 243.1 相关命令 .243.1。1 Sodu 命令.错错误误! !未定义书签。未定义书签。3.1.2 Yum 命令.253。2 虚拟化平台的搭建 .293.2.1 KVM 的安装.293。2.2 KVM 虚拟机的创建.323。2.3 命令行管理虚拟机 .42结束语. 错误错误! !未定义书签。未定义书签。3致谢. 04参考文献. 5-第一章绪论什么是虚拟化?“虚拟化是以某种用户和应用程序都可以很容易从中获益的方式来表示计算

7、机资源的过程,而不是根据这些资源的实现、 地理位置或物理包装的专有方式来表示它们。换句话说,它为数据、计算能力、存储资源以及其他资源提供了一个逻辑视图,而不是物理视图.”Jonathan Eunice,Illuminata Inc“虚拟化是表示计算机资源的逻辑组(或子集)的过程,这样就可以用从原始配置中获益的方式访问它们。这种资源的新虚拟视图并不受实现、地理位置或底层资源的物理配置的限制。 ”Wikipedia“虚拟化:对一组类似资源提供一个通用的抽象接口集,从而隐藏属性和操作之间的差异,并允许通过一种通用的方式来查看并维护资源。 ”-Open GridServices Architectur

8、e Glossary of Terms1965 年,IBM7044 机器 ,虚拟机开端;1967 年,Djiskstra 实现第一个虚拟系统;2001 年,AIX 5L v5.1 发布,IBM 首次在小型机上实现了逻辑分区。2002 年,AIX 5L v5。2 发布,IBM 在小型机上实现了动态逻辑分区。2004 年,8 月,AIX 5L v5.3 实现了微分区技术,最小分区粒度为 1/10 个 CPU,且最多支持 254 个虚拟 I/O.同年 10 月,Solaris 10 实现了 Solaris Container 功能,支持应用层面的计算资源调配。2005 年,1 月,HP-UX 11i

9、 v2 发布,实现了从硬分区、软分区到应用层分区,最小分区粒度为 1/20 颗 CPU.2005年10月, IBM发布虚拟I/O服务器,该服务器的一个组件 IVM具备HMC的部分功能。即在不配置 HMC 的低端 p 系列和 i 系列服务器上,也可配置多个分区和操作系统.1。1 虚拟化技术概述虚拟化是一个广义的术语,在计算机方面通常是指计算元件在虚拟的基础上而不是真实的基础上运行,是一个为了简化管理,优化资源的解决方案。如同空旷、通透的写字楼,整个楼层几乎看不到墙壁,用户可以用同样的成本构建出更加自主适用的办公空间,进而节省成本,发挥空间最大利用率.这种把有限的固定的资源根据不同需求进行重新规划

10、以达到最大利用率的思路, 在IT领域就叫做虚拟化技术。虚拟化技术可以扩大硬件的容量,简化软件的重新配置。CPU的虚拟化技术-可以单CPU模拟多CPU并行,允许一个平台同时运行多个操作系统,并且应用程序都可以在相互独立的空间内运行而互不影响,从而显著提高计算机的工作效率.虚拟化技术与多任务以及超线程技术是完全不同的 .多任务是指在一个操作系统中多个程序同时并行运行,而在虚拟化技术中,则可以同时运行多个操作系统, 而且每一个操作系统中都有多个程序运行,每一个操作系统都运行在一个虚拟的CPU或者是虚拟主机上; 而超线程技术只是单CPU模拟双CPU来平衡程序运行性能,这两个模拟出来的CPU是不能分离的

11、,只能协同工作.虚拟化技术的原理:所有的IT设备,不管是PC、服务器还是存储,都有一个共同点:它们被设计用来完成一组特定的指令。这些指令组成一个指令集。对于虚拟技术而言,“虚拟”实际上就是指的虚拟这些指令集。虚拟机有许多不同的类型, 但是它们有一个共同的主题就是模拟一个指令集的概念。 每个虚拟机都有一个用户可以访问的指令集。 虚拟机把这些虚拟指令“映射”到计算机的实际指令集。硬分区、软分区、逻辑分区、Solaris Container、VMware、Xen、微软Virtual Server2005这些虚拟技术都是运用的这个原理,只是虚拟指令集所处的层次位置不同。虚拟化技术的类型:虚拟化技术之所

12、以会被广泛的采用, 都有其应用背景,当前虚拟化技术大致看来主要有以下几种类型:拆分、整合、迁移。1、拆分:某台计算机性能较高,而工作负荷小,资源没有得到充分利用 .这种情况适用于拆分虚拟技术,可以将这台计算机拆分为逻辑上的多台计算机,同时供多个用户使用。这样可以使此服务器的硬件资源得到充分的利用。适用面:性能较好的大型机、小型机或服务器。目的:提高计算机的资源利用率。拆分形式的虚拟化示意图如下2、整合:当前有大量性能一般的计算机,但在气象预报、地质分析等领域 ,数据计算往往需要性能极高的计算机,此时可应用虚拟整合技术,将大量性能一般的计算机整合为一台计算机,以满足客户对整体性能的要求.适用面:

13、性能一般的计算机目的:通过整合,获得高性能,满足特定数据计算要求。整合形式的虚拟化示意图如下:-图11拆分形式的虚拟化图12整合形式的虚拟化3、迁移:1、将一台逻辑服务器中的闲置的一部分资源动态的加入到另一台逻辑服务-器中,提高另一方的性能.2、通过网络将本地资源供远程计算机使用 .Windows 下的共享目录,Linux下的 NFS 等,还包括远程桌面等等。目的:实现资源共享,实现跨系统平台应用等.迁移形式的虚拟化示意图如下:图 1-3迁移形式的虚拟化虚拟化的实现形式:1、硬件虚拟化:不需要操作系统支持,可直接实现对硬件资源进行划分,任一分区内的操作系统和硬件故障不影响其他分区。代表:HP

14、nPAR2、逻辑虚拟化不需要操作系统支持。在系统硬件和操作系统之间以软件和固件的形式存在,任一分区的操作系统故障不影响其他分区.代表:IBM DLPARS、HP vPAR、VMware ESX Server、Xen。相对硬件虚拟模式而言, 逻辑虚拟模式会占用一定比例的系统资源。目前大型主机的虚拟效率一般在 95%以上,虚拟化损耗大约为 2%3;AIX 和 HP-UX上的虚拟效率在 90以上,虚拟化损耗约为 5%;而 x86 架构上的虚拟效率则在80左右,虚拟化损耗大约为 20。3、软件虚拟化需要主操作系统支持。在主操作系统上运行一个虚拟层软件,可以安装多种客户操作系统,任何一个客户系统的故障不

15、影响其他用户的操作系统代表:VMware GSX Server 和微软 Virtual Server20054、应用虚拟化需要主操作系统支持。在单一操作系统上使用,在操作系统和应用之间运行虚拟层,任何一个应用包的故障不影响其他软件包。代表:Solaris Container 和 SWsoft Virtuozzo-虚拟化的实现形式对比:表 1-1虚拟化实现形式功能对比功能特性文件系统网络地址OS 数量主 OS实施周期应用隔离程度硬件故障隔离实施成本硬件虚拟独立独立多个不需要慢完全无高逻辑虚拟独立独立多个不需要较慢强无较高软件虚拟独立独立多个需要中等强无较低应用虚拟不独立不独立单个需要快弱无低1.

16、2 虚拟化技术的应用现状和发展趋势实际应用上,除了金融业、制造业、政府部门和科研领域的用户,许多用户对服务器整合、虚拟技术并不十分清晰。在当前国内服务器市场 ,虚拟化的技术趋势与实际应用还存在较大差距。 以下是对虚拟化技术应用较好的行业的简要分析.1、银行类用户在虚拟化技术应用上最为积极 .银行是国内最早使用大型主机和小型机的行业,在应用上得到的技术支持最多,对于虚拟技术较为熟悉,期待程度和应用评价也最高。 特点在于对成本敏感度低, 对虚拟技术的安全性和使用效率关注度高.2、政府部门类用户对虚拟技术的应用虽然不如银行用户那样熟悉,但通过技术人员的努力,仍能以最低的 TCO(Total Cost

17、 of Ownership, 总体拥有成本 )获得最多的计算性能。他们的特点是对预算较敏感,对系统效率提高感兴趣.3、科研单位随着数据计算量的加大,需要使用虚拟技术来提高系统使用效率.这类用户对预算敏感度高,对虚拟技术本身倒并不是特别了解。4、计算中心如国家气象中心,大多采用高性能计算机集群,对计算性能和系统稳定性要求很高,对系统管理控制方面要求较多,对预算敏感度低.总体而言,与北美和欧洲相对广泛的虚拟技术应用状况相比, 国内在虚拟技术应用水平上还存在较大差距.服务器虚拟化的优势:-1、维护运行在早期操作系统上的业务应用对于某些早期操作系统,发行厂商已经停止了系统的维护,不再支持新的硬件平台,

18、而重写运行在这些系统上的业务应用又不现实.为此,可以将这些系统迁移到新硬件平台上运行的虚拟系统上,实现业务的延续.2、提高服务器的利用率虚拟服务器环境一书指出: “多数用户承认,系统平均利用率只有 25%30%之间” 。这对服务器硬件资源是一种浪费。将多种低消耗的业务利用整合到一台服务器上, 可以充分发挥服务器的性能,从而提高整个系统的整体利用效率。3、动态资源调配,提升业务应用整体的运行质量可在一台计算机内部的虚拟机之间或是集群系统的各个业务之间进行动态的的资源调配,进而提升业务应用的整体运行质量。在实际应用上,这一优势更偏重于集群系统。4、提供相互隔离的,安全的应用执行环境虚拟系统下的各个

19、子系统相互独立,即使一个子系统遭受攻击而崩溃也不会对其他系统造成影响.而且在使用备份机制后,子系统可被快速的恢复。5、提供软件调试环境,进行软件测试,保证软件质量采用虚拟技术后,用户可以在一台计算机上模拟多个系统,多种不同操作系统,使调试环境搭建简单易行,大大提高工作效率,降低测试成本。服务器虚拟化技术存在的问题:1、虚拟技术的认知用户对虚拟技术不了解,不明确虚拟技术在提升用户现有系统效率和降低总体运营成本上的优势,这是阻碍虚拟技术推广的最大障碍。2、虚拟系统的可靠性客户采用服务器,很大程度上是为了保障业务的稳定性。如果用户在一台服务器上运行多个业务,类似于多个鸡蛋放在一只篮子,一旦出现重大硬

20、件故障势必会影响到所有的应用,这种威胁很难消除。而对于用户,这种潜在的业务危险往往也是不可接受的。3、虚拟系统的运行效率使用虚拟技术的目的在于提高用户服务器的整体利用效率 ,如果虚拟系统的运行效率太低,也就失去了它在服务器上应用的价值。4、平台支持硬件支持方面,需要虚拟系统能够不断更新,以兼容新的硬件平台。操作系统支持, 需要能够支持老操作系统.这样对于某些使用早期操作系统的客户才有意义.-对于这两方面,虚拟化平台都需要不断更新,这些都依赖虚拟化提供商的维护。5、迁移能力高端应用需要做到零宕机,迁移成本较高,且需要 SAN 集中存储设备的支持;低端应用,虽然可以使用系统备份还原的迁移模式,以降

21、低系统迁移成本,但迁移效率低。6、部署效率和易用性当前虚拟化标准尚不统一,移植和管理工具还不够成熟,这也影响到虚拟化的大面积普及。 特别是远程管理功能需要配合虚拟化标准工作大力发展,以使得不同的虚拟化平台可以通过网络进行统一管理。虚拟化技术的发展趋势:一、发展空间广阔2011 年虚拟化发展的最大特点是,虚拟化市场仍将快速增长。虚拟化发展道路远未到穷途末路的地步因为还有很多企业并没有享受到虚拟化带来的高效快捷低成本高环保的种种益处。据英特尔集团作出的市场预测,在未来2011-2016 年间, 虚拟化行业全球市场累计达到 2900 亿美元市值, 而云计算市场规模将为 3000 亿美元。对于经济低迷

22、的当前形势来说,这一预测无疑是个重大利好消息,它将有力推动虚拟化技术的更普遍应用,也有助于企业节省成本.二、SMB 普及迅速一开始只在大企业开花结果的虚拟化应用,现在也将更多得出现在中小企业应用场景中。 专为 SMB 中小企业打造的虚拟化解决方案将有着巨大的市场前景,SMB 也将成为虚拟化应用程度最活跃的重要角色。近年来有越来越多的虚拟化服务提供商着眼于 SMB,希望通过提供相应的虚拟化解决方案来吸引众多中小企业的兴趣。例如,著名的微软HyperV 一般被视为中小企业的一种虚拟化解决方案 .根据国外的研究报告称, 2011 年将有35%的中小企业部署 HyperV.三、自动化呈上升趋势随着虚拟

23、机的不断增多,迫切需要实现对虚拟化高效和简化管理。手动维护和管理成百上千台主机将是一件费时又费力的工作 ,在这种情况下,自然也就催生了企业对可靠自动化解决方案的需要。 未来一年虚拟化平台实现自动化可能不能实现质的飞跃,不过至少将会比今年有一个量的提升。四、完善备份、恢复和实时迁移工具管理虚拟化环境不仅仅限于自动化。备份,恢复和实时迁移是管理员需要经-常执行的任务,由于没有专为虚拟化环境开发出的一些特定工具,执行这些任务会成为一件并不容易的事情.虚拟化厂商自然也懂得这一点,让我们相信他们正在为简化虚拟化环境管理而推出一些优秀的工具。五、桌面虚拟化将稳步发展一开始桌面虚拟化并未引起人们的注意,不过

24、这种情况将在 2011 年发生改变.虚拟化的桌面能为用户节省大量开支,你可以通过较少的硬件来运行同样数目的物理主机。有越来越多的企业通过升级系统到 Windows 7 来实现桌面虚拟化,从而降低成本.通过桌面虚拟化,用户无需单独添置最新硬件来运行 Windows7 系统。另一方面,即使有一些新的强大硬件配置,仍然有一些旧的 Windows XP 应用程序在使用。正因为如此,在XP 上运行桌面虚拟化并不切实际。而让用户同时拥有两台物理主机一台运行 XP 另一台运行 Windows 7, 则不是个好方法,尤其是当你在一台主机上通过一个系统既担当主机又扮演虚拟化环境角色的情况下。桌面虚拟化不仅能够带

25、来管理的便捷,更能带来成本的大幅节约。六、更多 Macs 成为虚拟机桌面虚拟化不仅仅应用在 Windows 操作系统家族中。有报告指出,2011 年企业将有更多的主机运行 Macs。 Macs 对终端用户和设计人员都十分受用,不过作为企业级操作平台却并不是最好选择。尽管如此,正是因为越来越多的人使用iPad 和 MacBook Air, 将推动 Mac 操作系统在企业中的应用, 从而有更多的 Macs运行在虚拟主机上。七、存储虚拟化进一步发展一谈到虚拟化,我们通常指的是服务器虚拟化,不过存储虚拟化在整个虚拟化大潮中同样扮演着重要的角色。在 2011 年,虽然不能与服务器虚拟化相提并论,但存储虚

26、拟化仍将进一步发展。存储虚拟化获得进一步发展,主要在于磁盘空间剧增而又没有强大处理能力和价格实惠的 NAS 产品支撑.对于企业而言, 存储虚拟化的好处显而易见:首先, 存储虚拟化能够为企业提供一个易于学习与使用的、简单的存储界面和管理模型,借此实现对不同品牌存储产品的管理;其次,存储虚拟化解决方案具备动态数据移植工具,这些工具能够保证数据在不离线的情况下,动态而透明地从一台设备移动到另一台设备,这样,IT 管理人员就可以在不中断应用的同时重新分配和扩展存储容量-第二章KVM 虚拟化概述KVM 是 Kernel Virtual Module的简写。 KVM 是红帽 5。4 发行版中推出的最新虚拟

27、化技术。KVM 是进入 Linux 内核的虚拟化项目,它刚刚起步,还不为众人所熟知。但随着 RedHat 下一步推广 KVM 力度的加大,相信不久的将来 KVM会逐渐占据市场的主要位置。现在所说的虚拟化,一般都是指在 CPU 硬件支持基础之上的虚拟化技术。KVM 也同 hyper-V、 Xen 一样依赖此项技术。 没有 CPU 硬件虚拟化的支持, KVM是无法工作的。准确来说, KVM 是 Linux 的一个模块。 可以用 modprobe 去加载 KVM 模块。加载了模块后,才能进一步通过其他工具创建虚拟机。但仅有KVM 模块是远远不够的,因为用户无法直接控制内核模块去作事情 :还必须有一个

28、用户空间的工具才行。 这个用户空间的工具, 开发者选择了已经成型的开源虚拟化软件QEMU。说起来 QEMU 也是一个虚拟化软件。它的特点是可虚拟不同的 CPU。比如说在x86 的 CPU 上可虚拟一个 Power 的 CPU,并可利用它编译出可运行在 Power 上的程序。KVM 使用了 QEMU 的一部分,并稍加改造,就成了可控制 KVM 的用户空间工具了.所以你会看到, 官方提供的 KVM 下载有两大部分三个文件, 分别是KVM 模块、QEMU 工具以及二者的合集。也就是说,你可以只升级 KVM 模块,也可以只升级 QEMU 工具.这就是 KVM 和 QEMU 的关系。至此, 你已经可以使

29、用 QEMU 工具创建虚拟机了.但我们会发现 RedHat 的虚拟化并非如此简单。与之相关的还有 libvirt、VMM 等.原因就是因为 QEMU 工具效率不高, 不易于使用。libvirt 是一套 C 语言的 API,现在也有其他语言的了。它负责将不同类型的虚拟化工具的差异完全屏蔽掉.例如 Xen 的管理命令是 xm,而 KVM 则是 qemu-kvm。 使用 libvirt,你只需要通过 libvirt 提供的函数连接到 Xen或者 KVM 宿主机,便可以用同样的命令指挥不同的虚拟机了。libvirt 不仅提供了API,还自带了一套管理虚拟机的命令virsh。你可以通过使用 virsh

30、命令来进一步了解 libvirt。但最终用户更渴望的是图形用户界面,这就是VMM 的事情了。 VMM 是一套用 python 写的虚拟机管理图形界面, 用户可以通过它直观地操作不同的虚拟机。VMM 就是利用了 libvirt 的 API 参数实现的.2.1Linux 系统概述2。1。1Linux 系统简介Linux 是一种自由和开放源码的类Unix 操作系统.目前存在着许多不同的Linux,但它们都使用了 Linux 内核.Linux 可安装在各种计算机硬件设备中,从手机、平板电脑、路由器和视频游戏控制台,到台式计算机、大型机和超级计算机。-Linux 是一个领先的操作系统,世界上运算最快的

31、10 台超级计算机运行的都是Linux 操作系统。严格来讲,Linux 这个词本身只表示 Linux 内核,但实际上人们已经习惯了用 Linux 来形容整个基于 Linux 内核,并且使用GNU 工程各种工具和数据库的操作系统。Linux 得名于计算机业余爱好者 Linux Torvalds.Linux 操作系统的诞生:1981 年 IBM 公司推出微型计算机 IBM PC。在 1981-1991 年间 MSDOS 操作系统一直是微机上操作系统的主宰。此时计算机硬件价格虽逐年下降,但软件价格仍居高不下。当时 Apple 的 MACos 操作系统可以说是性能最好的,但是其天价没人能够轻易靠近。到

32、 1991 年, GNU 计划已经开发出了许多工具软件。 最受期盼的 Gnu C 编译器已经出现,但还没有开发出免费的 GNU 操作系统。即使是 MINIX 也开始有了版权,需要购买才能得到源代码。而 GNU 的操作系统 HURD 一直在开发之中,但并不能在几年内完成。对于 Linux 来说,已经不能等待了.从 1991 年 4 月份起,他开始酝酿并着手编制自己的操作系统.刚开始,他的目的很简单,只是为了学习Intel 386 体系结构保护模式运行方式下的编程技术。 但后来 Linux 的发展却完全改变了初衷。1991 年初,Linux 开始在一台 386sx 兼容微机上学习 minix 操作

33、系统.通过学习,他逐渐不能满足于minix 系统的现有性能,并开始酝酿开发一个新的免费操作系统。根据 Linux 在 comp.os.minix 新闻组上发布的消息,我们可以知道他逐步从学习 minix 系统到开发自己的 Linux 的过程。从 1991 年的 4 月份开始,Linux 几乎花了全部时间研究 386minix 系统(hack the kernel) ,并且尝试着移植 GNU 的软件到该系统上(GNU gcc、bash、gdb 等) 。并于 4 月 13 日在 comp.os.minix 上发布说自己已经成功地将 bash 移植到了 minix 上,而且已经爱不释手、不能离开这个

34、 shell 软件了。第一个与 Linux 有关的消息是在 1991 年 7 月 3 日在 comp。 os。 minix 上发布的 (当然此时还不存在 Linux 这个名称, 当时 Linux 的脑子里想的可能是 FREAX,FREAX 的英文含义是怪诞的、 怪物、 异想天开等) .其中透露了他正在进行 Linux系统的开发,并且在 Linux 最初的时候已经想到要实现与 POSIX(UNIX 的国际标准)的兼容问题了。在 Linux 的下一发布的消息中(1991 年 8 月 25 日 comp。os。minix),他向所有 minix 用户询问What would you like to

35、see in minix?(”你最想在 minix 中见到什么?”),在该消息中他首次透露出正在开发一个(免费的)386(486)操作系统,并且说只是兴趣而已,代码不会很大,也不会象GNU 的那样专业。开发免费操作系统这个想法从 4 月份就开始酝酿了,希望大家反馈一些对于 minix系统中喜欢那些特色不喜欢什么等信息,由于实际的和其它一些原因 ,新开发的-系统刚开始与 minix 很象(并且使用了 minix 的文件系统) 。并且已经成功地将bash(1.08 版)和 gcc(1.40 版)移植到了新系统上,而且再过几个月就可以使用了。最后,Linux 申明他开发的操作系统没有使用一行 min

36、ix 的源代码;而且由于使用了 386 的任务切换特性, 所以该操作系统不好移植(没有可移植性) , 并且只能使用 AT 硬盘。对于 Linux 的移植性问题,Linux 当时并没有考虑.但是目前Linux 几乎可以运行在任何一种硬件体系结构上。到了 1991 年的 10 月 5 日,Linux 在 comp。os。minix 新闻组上发布消息,正式向外宣布 Linux 内核系统的诞生 (Free minixlike kernel sources for 386AT) 。这段消息可以称为Linux的诞生宣言, 并且一直广为流传。 因此10月5日对Linux社区来说是一个特殊的日子,许多后来 L

37、inux 的新版本发布时都选择了这个日子。所以 RedHat 公司选择这个日子发布它的新系统也不是偶然的。Linux 操作系统开始时被 Linux 取名为 FREAX,英文含义是怪诞的、怪物、异想天开等.在他将新的系统上传到 FTP 服务器上时,管理员 Ari Lemke 很不喜欢这个名称,即取 Linux 的谐音 Linux 作为该操作系统的目录,于是称为 Linux系统。Linux 在其传 Just for Fun 中解释: 坦白地说, 我从来没有想到过要用 Linux这个名称发布这个操作系统,因为这个名字有些太自负了。而我为最终发布版准备的是什么名字呢 Freax.实际上,内核代码中某些

38、早期的 Makefile 用于描述如何编译源代码的文件 - 文件中就已经包含有”Freax这个名字了,大约存在了半年左右。但其实这也没什么关系,在当时还不需要一个名字,因为我还没有向任何人发布过内核代码.而Ari Lemke, 他坚持要用自己的方式将内核代码放到 ftp站点上,并且非常不喜欢 Freax 这个名字.他坚持要用现在这个名字(Linux),我承认当时我并没有跟他多争论。但这都是他取的名字。所以我可以光明正大地说我并不自负,或者部分坦白地说我并没有本位主义思想。但我想好吧,这也是个好名字,而且以后为这事我总能说服别人,就像我现在做的这样。 ” LinuxTorvaldsJust fo

39、r fun第 8488 页。Linux 的基本思想:Linux 的基本思想有两点:第一,一切都是文件;第二,每个软件都有确定的用途.其中第一条详细来讲就是系统中的所有都归结为一个文件,包括命令、硬件和软件设备、操作系统、进程等等对于操作系统内核而言 ,都被视为拥有各自特性或类型的文件。至于说 Linux 是基于 Unix 的,很大程度上也是因为这两者的基本思想十分相近。磁盘以及分区:设备管理在 Linux 中, 每一个硬件设备都映射到一个系统的文件, 对于硬盘、-光驱等 IDE 或 SCSI 设备也不例外。 Linux 把各种 IDE 设备分配了一个由 hd前缀组成的文件;而对于各种 SCSI

40、 设备,则分配了一个由 sd 前缀组成的文件。例如,第一个 IDE 设备,Linux 就定义为 hda;第二个 IDE 设备就定义为hdb;下面以此类推.而 SCSI 设备就应该是 sda、sdb、sdc 等。分区数量 要进行分区就必须针对每一个硬件设备进行操作,这就有可能是一块 IDE 硬盘或是一块 SCSI 硬盘。 对于每一个硬盘 (IDE 或 SCSI)设备, Linux分配了一个 1 到 16 的序列号码,这就代表了这块硬盘上面的分区号码。例如,第一个 IDE 硬盘的第一个分区,在 Linux 下面映射的就是 hda1,第二个分区就称作是 hda2。对于 SCSI 硬盘则是 sda1、

41、sda1 等。各分区的作用 在 Linux 中规定,每一个硬盘设备最多能有 4 个主分区(其中包含扩展分区)构成,任何一个扩展分区都要占用一个主分区号码,也就是在一个硬盘中,主分区和扩展分区一共最多是 4 个。对于早期的 DOS 和 Windows (Windows 2000 以前的版本) , 系统只承认一个主分区,可以通过在扩展分区上增加逻辑盘符(逻辑分区)的方法,进一步地细化分区。主分区的作用就是计算机用来进行启动操作系统 的,因此每一个操作系统的启动,或者称作是引导程序,都应该存放在主分区上 .这就是主分区和扩展分区及逻辑分区的最大区别.我们在指定安装引导 Linux 的 bootloa

42、der 的时候,都要指定在主分区上,就是最好的例证。Linux 规定了主分区(或者扩展分区)占用 1 至 16 号码中的前 4 个号码.以第一个 IDE 硬盘为例说明,主分区(或者扩展分区)占用了 hda1、hda2、hda3、hda4,而逻辑分区占用了 hda5 到 hda16 等 12 个号码。因此,Linux 下面每一个硬盘总共最多有 16 个分区。对于逻辑分区,Linux 规定它们必须建立在扩展分区上(在 DOS 和 Windows系统上也是如此规定) ,而不是主分区上。因此,我们可以看到扩展分区能够提供更加灵活的分区模式, 但不能用来作为操作系统 的引导。除去上面这些各种分区的差别,

43、我们就可以简单地把它们一视同仁了。分区指标:对于每一个 Linux 分区来讲,分区的大小和分区的类型是最主要的指标。容量的大小读者很容易理解,但是分区的类型就不是那么容易接受了.分区的类型规定了这个分区上面的文件系统的格式。Linux 支持多种的文件系统格式,其中包含了我们熟悉的 FAT32、FAT16、NTFS、HPUX,以及各种 Linux 特有的 Linux Native 和 Linux Swap 分区类型.-在 Linux 系统中,可以通过分区类型号码来区别这些不同类型的分区。文件系统:Linux 继承了 Unix 操作系统结构清晰的特点。在 linux 下的文件结构非常有条理。但是,

44、上述的优点只有在对 linux 相当熟悉时,才能体会到。/根目录,所有的目录、文件、设备都在/之下,/就是 Linux 文件系统的组织者,也是最上级的领导者./binbin 就是二进制(binary)英文缩写。在一般的系统当中,你都可以在这个目录下找到 linux 常用的命令.系统所需要的那些命令位于此目录,比如 ls、cp、mkdir 等命令;功能和/usr/bin 类似,这个目录中的文件都是可执行的、普通用户都可以使用的命令。作为基础系统所需要的最基础的命令就是放在这里。/bootLinux 的内核及引导系统程序所需要的文件目录,比如 vmlinuz initrd.img 文件都位于这个目

45、录中。 在一般情况下,GRUB 或 LILO 系统引导管理器也位于这个目录。/cdrom这个目录在你刚刚安装系统的时候是空的。你可以将光驱文件系统挂在这个目录下。例如:mount /dev/cdrom /cdrom/devdev 是设备(device)的英文缩写。这个目录对所有的用户都十分重要。因为在这个目录中包含了所有linux系统中使用的外部设备.但是这里并不是放的外部设备的驱动程序。这一点和我们常用的 windows,dos 操作系统不一样。它实际上是一个访问这些外部设备的端口。我们可以非常方便地去访问这些外部设备,和访问一个文件,一个目录没有任何区别。/etcetc 这个目录是 lin

46、ux 系统中最重要的目录之一。在这个目录下存放了系统管理时要用到的各种配置文件和子目录。我们要用到的网络配置文件,文件系统,x系统配置文件,设备配置信息,设置用户信息等都在这个目录下。/home如果我们建立一个用户,用户名是”xx,那么在/home 目录下就有一个对应的/home/xx 路径,用来存放用户的主目录./liblib 是库(library)英文缩写。这个目录是用来存放系统动态连接共享库的。几乎所有的应用程序都会用到这个目录下的共享库。因此,千万不要轻易对这个-目录进行什么操作,一旦发生问题,你的系统就不能工作了。/lost+found在 ext2 或 ext3 文件系统中,当系统意

47、外崩溃或机器意外关机,而产生一些文件碎片放在这里。当系统启动的过程中 fsck 工具会检查这里,并修复已经损坏的文件系统。有时系统发生问题,有很多的文件被移到这个目录中,可能会用手工的方式来修复,或移到文件到原来的位置上。/mnt这个目录一般是用于存放挂载储存设备的挂载目录的,比如有 cdrom 等目录。可以参看/etc/fstab 的定义。有时我们可以把让系统开机自动挂载文件系统,把挂载点放在这里也是可以的.主要看/etc/fstab 中怎么定义了;比如光驱可以挂载到/mnt/cdrom。media有些 linux 的发行版使用这个目录来挂载那些 usb 接口的移动硬盘(包括 U盘) 、CD

48、/DVD 驱动器等等./opt这里主要存放那些可选的程序。 你想尝试最新的 firefox 测试版吗?那就装到/opt 目录下吧, 这样, 当你尝试完,想删掉 firefox 的时候, 你就可 以直接删除它,而不影响系统其他任何设置。 安装到/opt 目录下的程序,它所有的数据、 文件等等都是放在同个目录下面./proc可以在这个目录下获取系统信息。 这些信息是在内存中, 由系统自己产生的。操作系统运行时,进程信息及内核信息(比如 cpu、硬盘分区、内存信息等)存放在这里。 /proc 目录伪装的文件系统 proc 的挂载目录,proc 并不是真正的文件系统,它的定义可以参见 /etc/fst

49、ab/rootLinux 超级权限用户 root 的家目录。/sbin这个目录是用来存放系统管理员的系统管理程序。大多是涉及系统管理的命令的存放,是超级权限用户 root 的可执行命令存放地,普通用户无权限执行这个目录下的命令,这个目录和/usr/sbin; /usr/X11R6/sbin 或/usr/local/sbin 目录是相似的;我们记住就行了,凡是目录 sbin 中包含的都是 root 权限才能执行的./selinux 好像是对 SElinux 的一些配置文件目录,SElinux 可以让你的 linux更加安全./srv 服务启动后,所需访问的数据目录,举个例子来说,www 服务启动

50、读取的网页数据就可以放在/srv/www 中-/sysLinux 内核中设计较新的一种虚拟的基于内存的文件系统, 它的作用与 proc有些类似,但除了与proc 相同的具有查看和设定内核参数功能之外,还有为Linux 统一设备模型作为管理之用./tmp临时文件目录,用来存放不同程序执行时产生的临时文件。有时用户运行程序的时候,会产生临时文件./tmp 就用来存放临时文件的./var/tmp 目录和这个目录相似。/usr这是 linux 系统中占用硬盘空间最大的目录.用户的很多应用程序和文件都存放在这个目录下.在这个目录下,你可以找到那些不适合放在/bin 或/etc 目录下的额外的工具。比如像

51、游戏啊,一些打印工具拉等等./usr 目录包含了许多子目录:/usr/bin 目录用于存放程序;/usr/share 用于存放一些共享的数据,比如音乐文件或者图标等等;/usr/lib 目录用于存放那些不能直接 运行的,但却是许多程序运行所必需的一些函数库文件。你的软件包管理器(应该是“新立得吧)会自动帮你管理好/usr 目录的。/usr/local这里主要存放那些手动安装的软件,即不是通过“新立得”或aptget 安装的软件。 它和/usr 目录具有相类似的目录结构。让软件包管理器来管理/usr 目录,而把自定义的脚本(scripts)放到/usr/local 目录下面,我想这应该是个不错的

52、主意。/usr/share系统共用的东西存放地,比如 /usr/share/fonts 是字体目录,/usr/share/doc 和/usr/share/man 帮助文件。/var这个目录的内容是经常变动的,看名字就知道,我们可以理解为 vary 的缩写,/var 下有/var/log 这是用来存放系统日志的目录。/var/ www 目录是定义 Apache服务器站点存放目录; /var/lib 用来存放一些库文件,比如MySQL 的,以及MySQL 数据库的的存放地。文件类型在介绍属性时,提到了最前面的标志(d 或 )可以表示目录或文件,那就是不同的文件种类。Linux 的文件种类主要有下面

53、这几种:普通文件(regular file) :就是一般我们存取的文件,由 ls -al 显示出来的属性中,第一个属性为 ,例如 -rwxrwxrwx 。另外,依照文件的内容,又大致可以分为:纯文本文件(ASCII):这是 Unix 系统中最多的一种文件类型,之所以称为-纯文本文件,是因为内容为我们可以直接读到的数据,例如数字、字母等等。设置文件几乎都属于这种文件类型。举例来说,使用命令“cat /.bashrc”就可以看到该文件的内容(cat 是将文件内容读出来).二进制文件(binary):我们在 GNU 发展史中提过,系统其实仅认识且可以执行二进制文件(binary file) 。Lin

54、ux 中的可执行文件(脚本,文本方式的批处理文件不算)就是这种格式的。举例来说,命令 cat 就是一个二进制文件。数据格式的文件(data) :有些程序在运行过程中,会读取某些特定格式的文件,那些特定格式的文件可以称为数据文件(data file).举例来说,Linux 在用户登入时,都会将登录数据记录在 /var/log/wtmp 文件内,该文件是一个数据文件,它能通过 last 命令读出来.但使用 cat 时, 会读出乱码.因为它是属于一种特殊格式的文件。目录(directory):就是目录,第一个属性为 d ,例如 drwxrwxrwx.连接文件(link) :类似 Windows 下面

55、的快捷方式。第一个属性为 l ,例如 lrwxrwxrwx 。设备与设备文件(device):与系统外设及存储等相关的一些文件,通常都集中在/dev 目录.通常又分为两种:块(block)设备文件:就是存储数据以供系统存取的接口设备,简单而言就是硬盘。例如一号硬盘的代码是 /dev/hda1 等文件.第一个属性为 b 。字符(character)设备文件:即串行端口的接口设备,例如键盘、鼠标等等。第一个属性为 c。套接字(sockets) :这类文件通常用在网络数据连接。我们可以启动一个程序来监听客户端的要求,客户端就可以通过套接字来进行数据通信。第一个属性为 s ,最常在 /var/run

56、目录中看到这种文件类型。管道(FIFO,pipe):FIFO 也是一种特殊的文件类型,它主要的目的是,解决多个程序同时存取一个文件所造成的错误。FIFO 是 first-in-first-out(先进先出)的缩写.第一个属性为 p。桌面环境:在图形计算中,一个桌面环境(Desktop environment,有时称为桌面管理器)为计算机提供一个图形用户界面(GUI).这个名称来自桌面比拟,对应于早期的文字命令行界面(CLI) 。一个典型的桌面环境提供图标,视窗,工具栏,文件夹,壁纸以及像拖放这样的能力。整体而言,桌面环境在设计和功能上的特性 ,赋予了它与众不同的外观和感觉.现今主流的桌面环境有

57、 KDE,gnome,Xfce,LXDE 等,除此之外还有 Ambient,EDE,IRIX Interactive Desktop,Mezzo,Sugar,CDE 等。KDE-KDE(Kool Desktop Environment) 项目始建于 1996 年 10 月, 相对于 GNOME还要早一些.KDE项目是由图形排版工具 Lyx的开发者、 一位名为Matthias Ettrich的德国人发起的,目的是为满足普通用户也能够通过简单易用的桌面来管理Unix 工作站上的各种应用软件以及完成各种任务。GNOMEGNOME 即 GNU 网络对象模型环境( The GNU Network Obj

58、ect ModelEnvironment),GNU 计划的一部分,开放源码运动的一个重要组成部分。是一种让使用者容易操作和设定电脑环境的工具。目标是基于自由软件,为Unix 或者类 Unix 操作系统构造一个功能完善、操作简单以及界面友好的桌面环境,他是 GNU 计划的正式桌面。XfceXfce(XForms Common Environment)创建于 2007 年 7 月,类似于商业图形环境 CDE, 是一个运行在各类 Unix 下的轻量级桌面环境。 原作者 Olivier Fourdan最先设计 XFce 是基于 XForms 三维图形库。Xfce 设计目的是用来提高系统的效率,在节省系

59、统资源的同时,能够快速加载和执行应用程序。Linux 的特点:1、完全免费Linux 是一款免费的操作系统,用户可以通过网络或其他途径免费获得,并可以任意修改其源代码。这是其他的操作系统所做不到的 .正是由于这一点,来自全世界的无数程序员参与了 Linux 的修改、编写工作,程序员可以根据自己的兴趣和灵感对其进行改变.这让 Linux 吸收了无数程序员的精华,不断壮大.完全兼容 POSIX 1。0 标准这使得可以在Linux下通过相应的模拟器运行常见的DOS、 Windows的程序。这为用户从 Windows 转到 Linux 奠定了基础。 许多用户在考虑使用 Linux 时, 就想到以前在

60、Windows 下常见的程序是否能正常运行 ,这一点就消除了他们的疑虑。2、多用户、多任务Linux 支持多用户,各个用户对于自己的文件设备有自己特殊的权利,保证了各用户之间互不影响.多任务则是现在电脑最主要的一个特点, Linux 可以使多个程序同时并独立地运行.3、良好的界面Linux 同时具有字符界面和图形界面.在字符界面用户可以通过键盘输入相应的指令来进行操作.它同时也提供了类似 Windows 图形界面的 X-Window 系统,用户可以使用鼠标对其进行操作。在 X-Window 环境中就和在 Windows 中相似,可以说是一个 Linux 版的 Windows。-4、丰富的网络功

61、能Unix 是在互联网的基础上繁荣起来的,Linux 的网络功能当然不会逊色。它的网络功能和其内核紧密相连,在这方面 Linux 要优于其他操作系统。在 Linux中,用户可以轻松实现网页浏览、文件传输、远程登陆等网络工作.并且可以作为服务器提供 WWW、FTP、EMail 等服务.5、可靠的安全、稳定性能Linux 采取了许多安全技术措施,其中有对读、写进行权限控制、审计跟踪、核心授权等技术,这些都为安全提供了保障。Linux 由于需要应用到网络服务器,这对稳定性也有比较高的要求,实际上 Linux 在这方面也十分出色。6、支持多种平台Linux 可以运行在多种硬件平台上,如具有 x86、6

62、80x0、SPARC、Alpha 等处理器的平台。此外Linux 还是一种嵌入式操作系统,可以运行在掌上电脑、机顶盒或游戏机上.2001 年 1 月份发布的 Linux 2。4 版内核已经能够完全支持 Intel64 位芯片架构。同时 Linux 也支持多处理器技术。多个处理器同时工作,使系统性能大大提高。7、实际应用过去,Linux 主要被用作服务器的操作系统,因为它的廉价、灵活性及 Unix背景。 传统上, 以 Linux 为基础的 “LAMP (Linux,Apache, MySQL, Perl/PHP/Python的组合) ”技术,除了已在开发者群体中广泛流行,它亦是现时提供网站服务供

63、应商最常使用的平台。基于其低廉成本与高度可设置性,Linux 常常被应用于嵌入式系统,例如机顶盒、移动电话及移动装置等.在移动电话上,Linux 已经成为 Symbian OS 的主要竞争者;而在移动装置上,则成为 Windows CE 与 Palm OS 外之另一个选择.目前流行的 TiVo 数码摄影机使用了经过客制化后的 Linux。此外,有不少硬件式的网络防火墙及路由器,例如部份 LinkSys 的产品,其内部都是使用 Linux 来驱动、并采用了操作系统提供的防火墙及路由功能。采用 Linux的超级电脑亦愈来愈多,根据 2008 年11月的 TOP500超级电脑列表,现时世上最快速的超

64、级电脑使用 Linux 作为其操作系统。而在表列的 500 套系统里,采用 Linux 为操作系统的,占了 439 组(即 87.8%) 。2006 年开始发售的 SONY PlayStation 3亦可使用 Linux 的操作系统, 它有一个能使其成为一个桌面系统的 Yellow Dog Linux。之前,Sony 亦曾为他们的PlayStation 2 推出过一套名为 PS2 Linux 的 DIY 组件.Ubuntu 自 9。04 版本,恢复了 PPC 支持(包括 PlayStation 3) 。而随着 OLPC 的 XO-1, 华硕的 Eee PC 等低价电脑的推行, 许多人乐观的认为

65、在低端 PC 市场,linux 的市场占有率正在快速的增长。但在 Windows 进入此-一市场后,Linux 的市占率快速下滑。现在 Windows 系统在所有的 PC 市场中,都占有绝对优势。2。1.2Fedora 简介Fedora Linux(第七版以前为 Fedora Core)是较具知名度的 Linux 发行包之一,由 Fedora Project 社区开发、红帽公司赞助,目标是创建一套新颖、多功能并且自由(开放源代码)的操作系统。Fedora 基于 Red Hat Linux,在 Red Hat Linux 终止发行后,红帽公司计划以Fedora 来取代 Red Hat Linux

66、 在个人领域的应用,而另外发行的 Red Hat EnterpriseLinux(Red Hat 企业版 Linux,RHEL)则取代Red Hat Linux 在商业应用的领域.Fedora 的功能对于用户而言, 它是一套功能完备、 更新快速的免费操作系统,而对赞助者 Red Hat 公司而言,它是许多新技术的测试平台,被认为可用的技术最终会加入到 Red Hat Enterprise Linux 中。Fedora 大约每六个月发布新版本,目前 Fedora 最新的版本是 Fedora 16。Fedora 是一个开放的、创新的、前瞻性的操作系统和平台 ,基于 Linux。它允许任何人自由地使

67、用、修改和重发布,无论现在还是将来。它由一个强大的社群开发,这个社群的成员以自己的不懈努力,提供并维护自由、开放源码的软件和开放的标准。Fedora 项目由 Fedora 基金会管理和控制,得到了 Red Hat, Inc.的支持.Fedora 是一个独立的操作系统,是 Linux 的一个发行版,可运行的体系结构包括 x86(即 i386i686), x86_64 和 PowerPC.特点见下表:表 21Fedora 的特点项目与Red Hat Linux的相似度描述Fedora 承继了 Red Hat Linux 的安装接口 Anaconda、 桌面环境 (同时包含 Gnome 和 KDE)

68、 、 包管理器 RPM、 多国语系支持以及许多设置工具,所以习于使用 Red Hat 操作系统的用户会感到相当熟悉,也因为如此,Fedora 用户在转移至 RHEL、CentOS 等系统时较不会面临太多差异。引入新技术因其趋近半年一次的发布周期,Fedora 在引入新技术的部分颇为快速,通常每一个版本都会引入最新版的Xorg、 Gnome 以及 KDE。 另外较重大的更新有:Fedora Core 2开始使用 2.6 版的 Linux 内核,并新增SELinux 安全加强模块。Fedora Core 4 引入 GCC 4。0 版、PHP 5。0版以及 Xen 虚拟技术支持。Fedora Cor

69、e 5 新增 SCIM 多国语言输入框架以及 MySQL 5。0 版。Fedora Core 6 新增 Compiz 3D 窗口管理器。自由软件的推广Fedora Project 在自由软件的推广上有积极的作为。其内置自由软件的GNU Java 运行环境 libgcj 可成功运行 Eclipse 等 Java 软件,而不需使用 Sun 的 Java 运行环境。另外 Fedora 也不支持专利封闭的多媒体格-式 (如MP3等), 并建议用户支持诸如Ogg等开放的多媒体格式。FedoraCore 5 引入了 Mono 计划, Mono 是开放源代码且跨平台的。 NET 运行环境与开发工具。软件包F

70、edora 使用 yum 工具来协助 RPM 包的管理,可以有效避免相依性地狱(dependency hell)的问题,用户并可以利用yum 来方便取得原先 Fedora 因专利权因素所缺乏的功能,例如:MP3 播放支持、DVD 影片支持以及 NTFS 文件系统支持等功能。 Fedora 的官方包库在收纳上有其多样性,例如 ClamAV(杀毒软件)与 Wine(Windows软件转译器)都可在官方包库中取得, 另外也包含许多开放源代码的游戏软件。 livna和 freshrpms 等社区也提供了和官方包库兼容的第三方包, 用户可从中取得 NVIDIA 和 ATI 的 3D 显卡驱动程序或是 V

71、LC、MPlayer 等播放软件.多平台支持Fedora 官方支持 x86、x8664 以及 PowerPC 处理器,游戏机方面,Fedora Core 5、Fedora Core 6、Fedora 7 也已成功安装在 PlayStation 3上。表 2-2Fedora 的缺点:项目发布信息Fedora 经常引入新颖甚至是具实验性的软件版本或技术,致使得商业公司诸如 CodeWeavers 认为难以对其提供可靠的技术支援。系统安装Fedora 使用的 Anaconda 安装工具预设会启动图形介面以及 ACPI支援,使得安装时所要求的硬体兼容性提高,使用者在安装时发生错误就必须尝试更改安装设定

72、。但是,Fedora 9 之后的安装变的比较简单,可以完全脱离光盘载体,能直接从硬盘引导安装。此外,对硬件的支持也已经非常完善,安装过程完毕,相应的设备驱动基本全部正确安装到位,这其中甚至包括挂接在USB HUB 上的无线网卡。发布周期与维护Fedora 以趋近半年一次的速度发布新版本, 而每个版本目前提供约 13个月的更新维护。使用已停止支援版本的使用者必须升级至新版本才能获得更新,然而旧版与新版之间有时会带有软体的重大变动(例如PHP 4 与 PHP 5、MySQL 4 与 MySQL 5),这些变动可能会造成使用者原先的服务无法正常运作。SELinuxFedora 预设会启动 SELin

73、ux 安全加强模组, 使用者在未正确设定 (或者关闭)SELinux 的情形下,可能会造成系统的服务或功能无法正常运作.Java 支持Fedora 内建自由软件的 GNU Java 运行环境 libgcj,有些 Java 技术-无法完善的执行,使用者如果欲使用Sun 的 Java 必须经过特别设定。2.2KVM 虚拟化介绍KVM 是 Kernel Virtual Module的简写。 KVM 是红帽 5。4 发行版中推出的最新虚拟化技术.KVM 是进入 Linux 内核的虚拟化项目,它刚刚起步,还不为众人所熟知。但随着 RedHat 下一步推广 KVM 力度的加大,相信不久的将来 KVM会逐渐

74、占据市场的主要位置.现在所说的虚拟化,一般都是指在 CPU 硬件支持基础之上的虚拟化技术。KVM 也同 hyperV、Xen 一样依赖此项技术。没有 CPU 硬件虚拟化的支持,KVM 是无法工作的.准确来说, KVM 是 Linux 的一个模块。 可以用 modprobe 去加载 KVM 模块。加载了模块后,才能进一步通过其他工具创建虚拟机。但仅有KVM 模块是远远不够的, 因为用户无法直接控制内核模块去作事情:还必须有一个用户空间的工具才行。 这个用户空间的工具, 开发者选择了已经成型的开源虚拟化软件QEMU。说起来 QEMU 也是一个虚拟化软件。它的特点是可虚拟不同的 CPU。比如说在x8

75、6 的 CPU 上可虚拟一个 Power 的 CPU,并可利用它编译出可运行在 Power 上的程序.KVM 使用了 QEMU 的一部分,并稍加改造,就成了可控制 KVM 的用户空间工具了。所以你会看到,官方提供的KVM 下载有两大部分三个文件,分别是 KVM 模块、 QEMU 工具以及二者的合集.也就是说, 你可以只升级 KVM 模块,也可以只升级 QEMU 工具。这就是 KVM 和 QEMU 的关系。至此, 你已经可以使用 QEMU 工具创建虚拟机了.但我们会发现 RedHat 的虚拟化并非如此简单.与之相关的还有 libvirt、VMM 等。原因就是因为 QEMU 工具效率不高,不易于使

76、用。libvirt 是一套 C 语言的 API,现在也有其他语言的了.它负责将不同类型的虚拟化工具的差异完全屏蔽掉。 例如 Xen 的管理命令是 xm,而 KVM 则是 qemukvm。使用 libvirt,你只需要通过 libvirt 提供的函数连接到Xen 或者 KVM 宿主机,便可以用同样的命令指挥不同的虚拟机了。libvirt 不仅提供了 API,还自带了一套管理虚拟机的命令virsh。你可以通过使用 virsh命令来进一步了解 libvirt.但最终用户更渴望的是图形用户界面, 这就是 VMM 的事情了。 VMM 是一套用 python 写的虚拟机管理图形界面, 用户可以通过它直观地

77、操作不同的虚拟机。VMM 就是利用了 libvirt 的 API 参数实现的。-第三章KVM 虚拟化平台的搭建本章主要是对虚拟化平台的搭建过程进行说明。主要是从相关命令和搭建过程说明。3.1 相关命令3.1.1Sudo 命令“Sudo”是 Unix/Linux 平台上的一个非常有用的工具, 它允许系统管理员分配给普通用户一些合理的“权利”, 让他们执行一些只有超级用户或其他特许用户才能完成的任务,比如:运行一些像mount,halt,su 之类的命令,或者编辑一些系统配置文件,像/etc/mtab, /etc/samba/smb.conf 等。这样以来,就不仅减少了 root用户的登陆次数和管

78、理时间,也提高了系统安全性.1。sudo 的特点sudo 扮演的角色注定了它要在安全方面格外谨慎, 否则就会导致非法用户攫取 root 权限。同时,它还要兼顾易用性,让系统管理员能够更有效,更方便地使用它.sudo 设计者的宗旨是: 给用户尽可能少的权限但仍允许完成他们的工作。所以,sudo 有以下特点: 1. sudo 能够限制指定用户在指定主机上运行某些命令。 2. sudo 可以提供日志,忠实地记录每个用户使用 sudo 做了些什么, 并且能将日志传到中心主机或者日志服务器.# 3. sudo 为系统管理员提供配置文件,允许系统管理员集中地管理用户的使用权限和使用的主机。它默认的存放位置

79、是/etc/sudoers。 4。sudo 使用时间戳文件来完成类似“检票的系统。当用户执行 sudo 并且输入密码后,用户获得了一张默认存活期为 5 分钟的“入场券”(默认值可以在编译的时候改变)。超时以后,用户必须重新输入密码。2。 sudo 命令sudo程序本身就是一个设置了SUID位的二进制文件.我们可以检查一下它的权限:ls l /usr/bin/sudo-s-x-x 2 root root 106832 02-12 17:41 /usr/bin/sudo它的所有者是root, 所以每个用户都可以像root那样执行该程序.设置了SUID的程序在运行时可以给使用者以所有者的 EUID.

80、这也是为什么设置了 SUID 的程序必须小心编写。但是设置一个命令文件的 SUID 和用 sudo 来运行它是不同的概念,它们起着不同的作用.sudo 的配置都记录在/etc/sudoers 文件中,我们下面将会详细说明。配置文件-指明哪些用户可以执行哪些命令。要使用 sudo,用户必须提供一个指定用户名和密码。 注意:sudo 需要的不是目标用户的密码,而是执行 sudo 的用户的密码。 如果不在 sudoers 中的用户通过 sudo 执行命令, sudo 会向管理员报告这一事件。 用户可以通过 sudo v 来查看自己是否是在 sudoers 之中。如果是,它还可以更新你的“入场券”上的

81、时间;如果不是,它会提示你,但不会通知管理员.sudo 命令格式如下:sudo K -L -V h -k | l | vsudo HPSb -aauth_type cclass|- -p prompt -u username#uid e file . i -s command下面我们再来看一下 sudo 其它常用的一些参数:sudo -h Help 列出使用方法,退出。sudo -V Version 显示版本信息,并退出.sudo l List 列出当前用户可以执行的命令。 只有在 sudoers 里的用户才能使用该选项.sudo -u username#uid User 以指定用户的身份执行

82、命令。后面的用户是除root 以外的,可以是用户名,也可以是uid。sudo -k Kill 清除“入场卷上的时间,下次再使用 sudo 时要再输入密码。sudo K Sure kill 与-k 类似, 但是它还要撕毁“入场卷”,也就是删除时间戳文件。sudo b command Background 在后台执行指定的命令。sudo p prompt command Prompt可以更改询问密码的提示语,其中u 会代换为使用者帐号名称,h 会显示主机名称。非常人性化的设计。sudo e file Edit 不是执行命令,而是修改文件,相当于命令 sudoedit。3.1.2 Yum 命令本系总

83、所周知,Redhat 和 Fedora 的软件安装命令是 rpm,但是用 rpm 安装软件最大的麻烦就是需要手动寻找安装该软件所需要的一系列依赖关系,超级 麻烦不说, 要是软件不用了需要卸载的话由于卸载掉了某个依赖关系而导致其他的软件不能用是非常恼人的。令人高兴的是,Fedora 终于推出了类似于 ubuntu 中的apt 的命令 yum,令 Fedora 的软件安装变得简单容易.Yum 有以下特点:*可以同时配置多个资源库(Repository)*简洁的配置文件(/etc/yum.conf)*自动解决增加或删除 rpm 包时遇到的倚赖性问题*使用方便保持与 RPM 数据库的一致性-yum,是

84、 Yellow dog Updater Modified 的简称,起初是由 yellow dog 这一发行版的开发者 Terra Soft研发,用python 写成,那时还叫做 yup(yellow dog updater),后经杜克大学的 LinuxDuke 开发团队进行改进,遂有此名。yum 的宗旨是自动化地升级,安装/移除 rpm 包,收集 rpm 包的相 关信息,检查依赖性并自动提示用户解决。yum 的关键之处是要有可靠的 repository,顾名思义,这是软件的仓库,它可以是 http 或 ftp 站点, 也可以是本地软件池,但必须包含 rpm 的 header,header 包括

85、了 rpm 包的各种信息,包括描述,功能,提供的文件,依赖性等。正是收集了这些 header 并加以分析,才能自动化地完成余下的任务.1.yum 的一切配置信息都储存在一个叫 yum。conf 的配置文件中,通常位于/etc 目录下,这是整个 yum 系统的重中之重,我在的F7 中查看了这一文件,大家一起来看下:hanlongwh_eric F7 常用文档$ sudo more /etc/yum。confmaincachedir=/var/cache/yumkeepcache=0debuglevel=2logfile=/var/log/yum。logexactarch=1obsoletes=1

86、gpgcheck=1plugins=1metadata_expire=1800 PUT YOUR REPOS HERE OR IN separate files named file.repo in /etc/yum.repos。d下面简单的对这一文件作简要的说明:cachedir:yum 缓存的目录,yum 在此存储下载的 rpm 包和数据库,一般是/var/cache/yum。debuglevel:除错级别,010 ,默认是 2logfile:yum 的日志文件,默认是/var/log/yum.log。exactarch,有两个选项 1 和 0,代表是否只升级和你安装软件包 cpu 体系一

87、致的包,如果设为 1,则如你安装了一个 i386 的 rpm,则 yum 不会用 686 的包来升级.gpgchkeck= 有 1 和 0 两个选择,分别代表是否是否进行 gpg 校验,如果没有这一项,默认好像也是检查的.2.好了,接下来就是 yum 的使用了,首先用 yum 来升级软件,yum 的操作大-都须有超级用户的权限,当然可以用 sudo.yum update,这一步是必须的,yum 会从服务器的 header 目录下载 rpm 的header,放在本地的缓存中,这可能会花费一定的时间,但比起 yum 给我们带来方便,这些时间的花费又算的了什么呢?header 下载完毕,yum 会判

88、断是否有可更新的软件包,如果有,它会询问你的意见,是否更新,还是说 y 吧,把系统始终 up to date 总是不错的, 这时 yum 开始下载软件包并使用调用 rpm 安装,这可能要一定时间,取决于要更新软件的数目和网络状况,万一网络断了,也没关系,再进行一次就可以了.升级完毕, 以后每天只要使用 yum check-update 检查一下有无跟新,如果有,就用 yum update 进行跟新,时刻保持系统为最新,堵住一切发现的漏洞。用 yum update packagename 对某个单独包进行升级。现在简单的把 yum 软件升级的一些命令罗列一下:(更新:我在安装 wine 的时候是

89、用 rpm 一个一个安装的,先安装以来关系,然后在安装 wine 的主包,但是刚刚在论坛上发现来一个好的帖子,就 yum 的本地安装.参数是-localinstall$yum localinstall wine*这样的话,yum 会自动安装所有的依赖关系,而不用 rpm 一个一个的安装了,省了好多工作。还有一个与他类似的参数:$yum localupdate wine*如果有 wine 的新版本,而且你也下载到来本地,就可以这样本地更新 wine了。 )(1)列出所有可更新的软件清单命令:yum check-update(2)安装所有更新软件命令:yum update(3)仅安装指定的软件命令

90、:yum install(4)仅更新指定的软件命令:yum update(5)列出所有可安裝的软件清单命令:yum list3。使用 yum 安装和卸载软件,有个前提是 yum 安装的软件包都是 rpm 格式的。安装的命令是,yum install xxx,yum 会查询数据库,有无这一软件包,如果有,则检查其依赖冲突关系,如果没有依赖冲突,那么最好,下载安装;如果有,-则会给出提示,询问是否要同时安装依赖,或删除冲突的包,你可以自己作出判断删除的命令是,yum remove xxx,同安装一样,yum 也会查询数据库,给出解决依赖关系的提示。(1)用 YUM 安装软件包命令:yum inst

91、all(2)用 YUM 删除软件包命令:yum remove4。用 yum 查询想安装的软件我们常会碰到这样的情况,想要安装一个软件 ,只知道它和某方面有关,但又不能确切知道它的名字。 这时 yum 的查询功能就起作用了。 你可以用 yum searchkeyword 这样的命令来进行搜索,比如我们要则安装一个 Instant Messenger,但又不知到底有哪些,这时不妨用 yum search messenger 这样的指令进行搜索,yum 会搜索所有可用 rpm 的描述,列出所有描述中和 messeger 有关的 rpm 包,于是我们可能得到 gaim,kopete 等等,并从中选择。

92、有时我们还会碰到安装了一个包,但又不知道其用途,我们可以用 yum infopackagename 这个指令来获取信息。(1)使用 YUM 查找软件包命令:yum search(2)列出所有可安装的软件包命令:yum list(3)列出所有可更新的软件包命令:yum list updates(4)列出所有已安装的软件包命令:yum list installed(5)列出所有已安装但不在 Yum Repository 內的软件包命令:yum list extras(6)列出所指定的软件包命令:yum list(7)使用 YUM 获取软件包信息命令:yum info(8)列出所有软件包的信息命令:

93、yum info(9)列出所有可更新的软件包信息命令:yum info updates-(10)列出所有已安裝的软件包信息命令:yum info installed(11)列出所有已安裝但不在 Yum Repository 內的软件包信息命令:yum info extras(12)列出软件包提供哪些文件命令:yum provides5。清除 YUM 缓存yum 会把下载的软件包和 header 存储在 cache 中,而不会自动删除。如果我们觉得它们占用了磁盘空间,可以使用 yum clean 指令进行清除,更精确的用法是yum clean headers清除header, yum clean

94、 packages清除下载的rpm包,yum cleanall 清除所有(1)清除缓存目录(/var/cache/yum)下的软件包命令:yum clean packages(2)清除缓存目录(/var/cache/yum)下的 headers命令:yum clean headers(3)清除缓存目录(/var/cache/yum)下旧的 headers命令:yum clean oldheaders(4)清除缓存目录(/var/cache/yum)下的软件包及旧的 headers命令:yum clean, yum clean all (= yum clean packages; yum cle

95、anoldheaders)3。2 虚拟化平台的搭建3.2.1KVM 的安装安装 KVM 之前首先要确定 CPU 是否支持硬件虚拟化。有两种方法查看:1:/proc/cpuinfo输入之后可以看到如下信息:-图 31查看 CPU 信息方式一看到/proc/cpuinfo 里面有 vmx 说明 CPU 支持硬件虚拟化就可以了。2.lscpu输入之后可以看到如下信息:-图 32查看 CPU 信息方式二红字标注的是 intel CPU 的虚拟化技术 VT-x,有该项说明 CPU 支持硬件虚拟化.接下来是安装加载 KVM 内核模块,由于我使用的是 intel 的 CPU,所以输入以下两条命令:图 3-3

96、加载 KVM 内核模块命令接下来是安装 KVM 的组件包,有 KVM,QEMU,virtmanager 和 libvirt。这时候就需要使用 yum install 命令来安装,先介绍下各个组件:(1)QEMU:QEMU 是一套由 Fabrice Bellard 所编写的模拟处理器的自由软件。它与Bochs,PearPC 近似,但其具有某些后两者所不具备的特性,如高速度及跨平台的特性。经由 kqemu 这个开源的加速器,QEMU 能模拟至接近真实电脑的速度。(2)Virtmanager:即虚拟机管理器,是创建和管理虚拟客户端的图形工具。有 redhat 红帽公司资助开发,主要应用于 redha

97、t 的云计算解决方案中。(3)libvirt:libvirt 是一套免费、开源的支持 Linux 下主流虚拟化工具的 C函数库,其旨在为包括 Xen 在内的各种虚拟化工具提供一套方便、可靠的编程接口,支持与C,C+,Ruby,Python 等多种主流开发语言的绑定.当前主流 Linux平台上默认的虚拟化管理工具 virtmanager(图形化),virtinstall(命令行模式)等均基于 libvirt 开发而成.接下来就使用 yum install 来安装这些组件,输入命令:-yum install kvm qemu virtmanager libvirt就可以一次全部安装所有组件。3.2

98、。2KVM 虚拟机的创建KVM 虚拟化组件安装完成后,就可以创建 KVM 虚拟机了。点击左上角活动系统工具虚拟系统管理器,打开之后出现如下窗口:图 34虚拟系统管理主界面单击新建虚拟机的按钮,出现如下对话框:-图 3-5创建新虚拟机输入名称和系统安装方式这里可以填写创建的虚拟机的名称,这台虚拟机打算安装 windows2003,所以可以起名为 windows2003,由于我采用了加载 windows2003 镜像的安装方式,所以,安装系统的方式选择本地安装(ISO 镜像或者光驱) 。点击前进:-图 3-6选择镜像地址和操作系统类型这里我们选择使用 ISO 镜像,这边我们安装 windows20

99、03,所以操作系统类型需要选择 windows,版本选择 Microsoft Windows Server 2003,然后单击浏览,出现以下对话框:-图 37选择镜像文件地址在存放 ISO 的文件夹下面选择相应的 windows2003 的 ISO 然后点击打开。点击前进:-图 38选择虚拟机的内存和CPU 的设置这边可以调节分配给虚拟机的内存的大小和 CPU 的数量,我们这里分配1024MB 的内存空间就可以了,点击前进:-图 3-9调节虚拟机的磁盘空间这里是可以调节分配给虚拟机的硬盘空间大小,我们选择 8GB,点击前进:-图 310确认虚拟机信息和设置网卡这边是最后对之前设置的虚拟的相应属

100、性进行确认, 点开高级选项可以对虚拟机的网卡,虚拟类型和构架进行设置.点击完成之后就可以出现 windows2003 的安装界面:-图 311安装系统界面-按照正常步骤安装完成之后就可以进入 windows2003 的系统了:图 3-12虚拟机运行的 windows2003 的界面到此 windows2003 的虚拟机已经完全搭建完毕.同理搭建一台虚拟机来安装linux 系统 ubuntu:图 312虚拟机运行的 ubuntu 的界面-至此两台分别安装了 windows 和 linux 的虚拟机已经完全搭建完毕。在虚拟机的窗口点击查看详情可以查看虚拟机的详细配置:图 313查看虚拟机信息在搭建

101、完两台虚拟机之后, 在虚拟系统管理器里可以看到已搭建的两台虚拟机:图 3-14搭建两台虚拟机后虚拟系统管理器的主页面-以后需要打开虚拟机只要选择相应的虚拟机然后点击打开即可.3。2.3 命令行管理虚拟机1。开关机命令:virsh start 虚拟机名称开机virsh create /etc/libvirt/qemu/虚拟机名称.xml 直接通过主机配置文档启动主机virsh destroy 虚拟机名称强制关闭电源virsh list -all查看虚拟机状态2。添加删除虚拟机:virsh create /etc/libvirt/qemu/虚拟机名称。 xml #直接通过主机配置文档启动主机vir

102、sh undefine 虚拟机名称移除虚拟机3.使用已存在的虚拟机配置文档安装新的虚拟机qemuimg create -f qcow2 /virhost/kvm_node/虚拟机名称。 img 20G#为新建虚拟机生产磁盘镜像文件virsh dumpxml node4 /etc/libvirt/qemu/虚拟机名称。 xml导出虚拟机的硬件配置信息为/etc/libvirt/qemu/虚拟机名称.xml。-结束语经过了几个月的紧张忙碌, 毕业设计终于快要完成了。 在这几个月的时间里,我感受到了一个技术人员的艰辛,更加感受到如果自己将来想在这一条路走下去, 所要学习的东西还有很多很多, 我想这种

103、感觉不仅仅是我一个人所感受到的,而是每一个即将面临毕业的大四学生都会感受到的。毕业设计快要结束了, 在过去的几个月里我总觉得这时间是那样的漫长,每天过的是那样的辛苦,但是现在当我看着自己几个月辛苦做出的毕业设计的时候,心中的那些疲劳的影子早已消失。经过这次毕业设计,可以说将我大学四年所学的知识进行了一次全面的总结,有些学过的知识忘记了,经过毕业设计我又从新复习了一遍, 有些知识自己过去就不会但自己又不知道, 经过这次毕业设计,又将这些不足的地方弥补了, 最重要的是从毕业设计的过程中我又学到了更多新的知识。尽管我仅仅只是搭建了两台 KVM 虚拟机,但是这个过程中,我在在独立思考,独立解决问题方面

104、都大有所提高,为我以后的工作奠定了良好的基础。总之,通过这次毕业设计,我在个人动手能力方面有了很大的提高,同时对虚拟化的知识有了进一步的认识,而且对大学四年所学的知识有了一个全面的回顾,这些都对我将来的工作生涯起到了至关重要的作用-致谢在本次毕业设计实现与完成本论文的过程中, 得到了指导教师多方面的帮助与指导,她经常抽出时间来检查我的设计进展,并及时给与指导、帮助和纠正。在写论文的过程中,对我的论文结构和内容也做出了详细的建议和指导.在此真诚感谢她的耐心指导。 对于我所提出的问题和遇到的困难都给予细心的解答和真诚的帮助.在此过程中,她严谨的治学态度、敬业的工作精神都给予了我很大的鼓励与鞭策.同

105、时,也感谢帮助过我的项目经理,我们共同对遇到的难题进行探讨和解决,一起研究讨论,攻克很多技术难题。感谢各位领导、老师,感谢在大学期间的学习、生活期间给予我关心、帮助和鼓励的朋友们。论文参阅了大量的国内外有关文献,对文献的作者同样表示由衷的感谢。-参考文献1 Daniel P Bovet,Marco Cesati.Understanding the LinuxKernelM.USA:OReilly Media,2005。2 Kivity A,Kamay Y,Laor D,et al.KVM:the Linux virtual machine monitorC。Proceedings of the

106、Linux Symposium2007.Linux Symposium,2007:255230.3 Chernicoff, David.HP VDI Moves to Center StageM 。ZDNet,August 19, 20114 Baburajan, Rajani。The Rising Cloud Storage Market Opportunity Strengthens VendorsN 。Info TECH,August 24, 2011.5 Oestreich, Ken.Converged InfrastructureM.CTO Forum, November 15, 2

107、010。6 宋吉广。Linux 内核虚拟化 KVM 详解J.软件世界,2007, (11).7 张俊然,张亚婷,严莉,周显军.KVM 的优化及其具体实现J 。西南科技大学学报,2010,(01).8 于波。Linux KVM 的虚拟化性能J。软件世界,2007,(11)。9 张彬彬,汪小林,杨亮,赖荣凤,王振林,罗英伟,李晓明。修改客户操作系统优化KVM 虚拟机的 I/O 性能J 。计算机学报,2010,(12).10 虚拟化EB/OL.http:/baike。 虚拟化技术EB/OL 。http:/baike。baidu。com/view/13605。htm.12Getting started

108、 with virtualizationEB/OL .http: / fedoraproject。 org/ wiki/Virtualization_Quick_StartQEMU.2FKVM_without_Libvirt。13 HOW TO 13KVMEB/OL.http:/www。linux-kvm.org/page/HOWTO.14 王金波。虚拟化与云计算M。电子工业出版社,2009。15 英特尔开源软件技术中心,复旦大学并行处理研究所.系统虚拟化原理与实现M 。清华大学出版社,2009.16 张文盛。虚拟化服务器的应用研究J.办公自动化,2010,08.17 时卫东.基于内核的虚拟化的研究D。吉林:吉林大学,2011.18 崔泽永.基于 KVM 的虚拟机调度方法研究D.北京:北方工业大学,2011。19 刘军,陈闵强,王会清。KVM 系统中远程虚拟存储的研究J。武汉工程大学学报,2010,07。20 宋炳智。KVM 技术在全专业综合监控轮询管理系统中的应用J 。邮电设计技术,2009,06。21 王海欢。基于 KVM 的远程管理J.视听界(广播电视技术),2010,03.-

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 建筑/环境 > 施工组织

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号