已阅读5页,还剩43页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
南京大学继续教育学院南京大学继续教育学院 本科毕业论文 论文题目 基于 KVM 的虚拟化平台构建 作者姓名 学科专业 计算机科学与技术 学 号 指导教师 2014 年 09 月 18 日 南京大学南京大学 本科毕业设计 论文 诚信承诺书本科毕业设计 论文 诚信承诺书 本人郑重声明 所呈交的毕业设计 论文 题目 基于 KTM 的虚拟化平台构建 是本人在导师的指导下独立进行研究所取得的 成果 尽本人所知 除了毕业设计 论文 中特别加以标注引用的 内容外 本毕业设计 论文 不包含任何其他个人或集体已经发表 或撰写的成果作品 作者签名 年 月 日 学号 基于 KVM 的虚拟化平台构建 摘 要 在计算机科学中 虚拟化 Virtualization 是一个表现逻辑群组或电脑资源 的子集的进程 用户可以用比原本的组态更好的方式来存取这些进程 这些资 源的新虚拟部份是不受现有资源的架设方式 地域或物理组态所限制 一般所 指的虚拟化资源包括计算能力和资料储存 虚拟机 Virtual machine或VM 可 以像真实机器一样运行程序的计算机的软件实现 本论文使用Linux系统中的Fedora下的KVM虚拟机来搭建多台虚拟机 并运 行不同的操作系统 实现KVM虚拟化平台的搭建 关键词 数据安全 虚拟化平台 虚拟化 ABSTRACT In computing virtualization or virtualisation is the creation of a virtual rather than actual version of something such as a hardware platform operating system storage device or network resources While a physical computer in the classical sense is clearly a complete and actual machine both subjectively from the user s point of view and objectively from the hardware system administrator s point of view a virtual machine is subjectively a complete machine or very close but objectively merely a set of files and running programs on an actual physical machine which the user need not necessarily be aware of In this paper we use the KVM Virtualisation of Linux OS Fedora to create Virtual Machines and run different Operating Systems Then build the KVM Virtualisation Platform Key words Virtualisation Fedora KVM Virtual Machine Virtualisation Platform 目 录 第一章 绪论 1 1 1 虚拟化技术概述 1 1 2 虚拟化技术的应用现状和发展趋势 5 第二章 KVM 虚拟化概述 10 2 1 LINUX系统概述 10 2 1 1 Linux 系统简介 10 2 1 2 Fedora 简介 20 2 2 KVM 虚拟化介绍 20 第三章 KVM 虚拟化平台的搭建 24 3 1 相关命令 24 3 1 1 Sodu 命令 12 3 1 2 Yum 命令 25 3 2 虚拟化平台的搭建 29 3 2 1 KVM 的安装 29 3 2 2 KVM 虚拟机的创建 32 3 2 3 命令行管理虚拟机 42 结束语 43 致谢 44 参考文献 45 南京大学继续教育学院 2012 届本科生毕业设计 论文 0 第一章绪论 什么是虚拟化 虚拟化是以某种用户和应用程序都可以很容易从中获益的方式来表示计 算机资源的过程 而不是根据这些资源的实现 地理位置或物理包装的专有方 式来表示它们 换句话说 它为数据 计算能力 存储资源以及其他资源提供 了一个逻辑视图 而不是物理视图 Jonathan Eunice Illuminata Inc 虚拟化是表示计算机资源的逻辑组 或子集 的过程 这样就可以用从 原始配置中获益的方式访问它们 这种资源的新虚拟视图并不受实现 地理位 置或底层资源的物理配置的限制 Wikipedia 虚拟化 对一组类似资源提供一个通用的抽象接口集 从而隐藏属性和 操作之间的差异 并允许通过一种通用的方式来查看并维护资源 Open Grid Services Architecture Glossary of Terms 1965 年 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 v2 发布 实现了从硬分区 软分区到应用层分 区 最小分区粒度为 1 20 颗 CPU 2005 年 10 月 IBM 发布虚拟 I O 服务器 该服务器的一个组件 IVM 具备 HMC 的部分功能 即在不配置 HMC 的低端 p 系列和 i 系列服务器上 也可配 置多个分区和操作系统 1 1 虚拟化技术概述 虚拟化是一个广义的术语 在计算机方面通常是指计算元件在虚拟的基础 上而不是真实的基础上运行 是一个为了简化管理 优化资源的解决方案 如 同空旷 通透的写字楼 整个楼层几乎看不到墙壁 用户可以用同样的成本构 建出更加自主适用的办公空间 进而节省成本 发挥空间最大利用率 这种把 有限的固定的资源根据不同需求进行重新规划以达到最大利用率的思路 在IT 领域就叫做虚拟化技术 虚拟化技术可以扩大硬件的容量 简化软件的重新配置 CPU的虚拟化技 南京大学继续教育学院 2012 届本科生毕业设计 论文 1 术可以单CPU模拟多CPU并行 允许一个平台同时运行多个操作系统 并且应 用程序都可以在相互独立的空间内运行而互不影响 从而显著提高计算机的工 作效率 虚拟化技术与多任务以及超线程技术是完全不同的 多任务是指在一个操 作系统中多个程序同时并行运行 而在虚拟化技术中 则可以同时运行多个操 作系统 而且每一个操作系统中都有多个程序运行 每一个操作系统都运行在 一个虚拟的CPU或者是虚拟主机上 而超线程技术只是单CPU模拟双CPU来平 衡程序运行性能 这两个模拟出来的CPU是不能分离的 只能协同工作 虚拟化技术的原理 所有的IT设备 不管是PC 服务器还是存储 都有一个共同点 它们被设 计用来完成一组特定的指令 这些指令组成一个指令集 对于虚拟技术而言 虚拟 实际上就是指的虚拟这些指令集 虚拟机有许多不同的类型 但是它们有一个共同的主题就是模拟一个指令 集的概念 每个虚拟机都有一个用户可以访问的指令集 虚拟机把这些虚拟指 令 映射 到计算机的实际指令集 硬分区 软分区 逻辑分区 Solaris Container VMware Xen 微软Virtual Server2005这些虚拟技术都是运用的这 个原理 只是虚拟指令集所处的层次位置不同 虚拟化技术的类型 虚拟化技术之所以会被广泛的采用 都有其应用背景 当前虚拟化技术大 致看来主要有以下几种类型 拆分 整合 迁移 1 拆分 某台计算机性能较高 而工作负荷小 资源没有得到充分利用 这种情况 适用于拆分虚拟技术 可以将这台计算机拆分为逻辑上的多台计算机 同时供 多个用户使用 这样可以使此服务器的硬件资源得到充分的利用 适用面 性能较好的大型机 小型机或服务器 目的 提高计算机的资源利用率 拆分形式的虚拟化示意图如下 2 整合 当前有大量性能一般的计算机 但在气象预报 地质分析等领域 数据计 算往往需要性能极高的计算机 此时可应用虚拟整合技术 将大量性能一般的 计算机整合为一台计算机 以满足客户对整体性能的要求 适用面 性能一般的计算机 目的 通过整合 获得高性能 满足特定数据计算要求 整合形式的虚拟化示意图如下 南京大学继续教育学院 2012 届本科生毕业设计 论文 2 图1 1 拆分形式的虚拟化 图1 2 整合形式的虚拟化 3 迁移 南京大学继续教育学院 2012 届本科生毕业设计 论文 3 1 将一台逻辑服务器中的闲置的一部分资源动态的加入到另一台逻辑服务 器中 提高另一方的性能 2 通过网络将本地资源供远程计算机使用 Windows 下的共享目录 Linux 下的 NFS 等 还包括远程桌面等等 目的 实现资源共享 实现跨系统平台应用等 迁移形式的虚拟化示意图如下 图 1 3 迁移形式的虚拟化 虚拟化的实现形式 1 硬件虚拟化 不需要操作系统支持 可直接实现对硬件资源进行划分 任一分区内的操 作系统和硬件故障不影响其他分区 代表 HP nPAR 2 逻辑虚拟化 不需要操作系统支持 在系统硬件和操作系统之间以软件和固件的形式存 在 任一分区的操作系统故障不影响其他分区 代表 IBM DLPARS HP vPAR VMware ESX Server Xen 相对硬件虚拟模式而言 逻辑虚拟模式会占用一定比例的系统资源 目前 大型主机的虚拟效率一般在 95 以上 虚拟化损耗大约为 2 3 AIX 和 HP UX 上的虚拟效率在 90 以上 虚拟化损耗约为 5 而 x86 架构上的虚拟效 率则在 80 左右 虚拟化损耗大约为 20 3 软件虚拟化 需要主操作系统支持 在主操作系统上运行一个虚拟层软件 可以安装多 种客户操作系统 任何一个客户系统的故障不影响其他用户的操作系统 代表 VMware GSX Server 和微软 Virtual Server2005 4 应用虚拟化 需要主操作系统支持 在单一操作系统上使用 在操作系统和应用之间运 行虚拟层 任何一个应用包的故障不影响其他软件包 南京大学继续教育学院 2012 届本科生毕业设计 论文 4 代表 Solaris Container 和 SWsoft Virtuozzo 虚拟化的实现形式对比 表 1 1 虚拟化实现形式功能对比 功能特性硬件虚拟逻辑虚拟软件虚拟应用虚拟 文件系统独立独立独立不独立 网络地址独立独立独立不独立 OS 数量多个多个多个单个 主 OS不需要不需要需要需要 实施周期慢较慢中等快 应用隔离程度完全强强弱 硬件故障隔离无无无无 实施成本高较高较低低 1 2 虚拟化技术的应用现状和发展趋势 实际应用上 除了金融业 制造业 政府部门和科研领域的用户 许多用 户对服务器整合 虚拟技术并不十分清晰 在当前国内服务器市场 虚拟化的 技术趋势与实际应用还存在较大差距 以下是对虚拟化技术应用较好的行业的 简要分析 1 银行类用户 在虚拟化技术应用上最为积极 银行是国内最早使用大型主机和小型机的 行业 在应用上得到的技术支持最多 对于虚拟技术较为熟悉 期待程度和应 用评价也最高 特点在于对成本敏感度低 对虚拟技术的安全性和使用效率关 注度高 2 政府部门类用户 对虚拟技术的应用虽然不如银行用户那样熟悉 但通过技术人员的努力 仍能以最低的 TCO Total Cost of Ownership 总体拥有成本 获得最多的计算性 能 他们的特点是对预算较敏感 对系统效率提高感兴趣 3 科研单位 随着数据计算量的加大 需要使用虚拟技术来提高系统使用效率 这类用 户对预算敏感度高 对虚拟技术本身倒并不是特别了解 4 计算中心 如国家气象中心 大多采用高性能计算机集群 对计算性能和系统稳定性 要求很高 对系统管理控制方面要求较多 对预算敏感度低 总体而言 与北美和欧洲相对广泛的虚拟技术应用状况相比 国内在虚拟 南京大学继续教育学院 2012 届本科生毕业设计 论文 5 技术应用水平上还存在较大差距 服务器虚拟化的优势 1 维护运行在早期操作系统上的业务应用 对于某些早期操作系统 发行厂商已经停止了系统的维护 不再支持新的 硬件平台 而重写运行在这些系统上的业务应用又不现实 为此 可以将这些 系统迁移到新硬件平台上运行的虚拟系统上 实现业务的延续 2 提高服务器的利用率 虚拟服务器环境 一书指出 多数用户承认 系统平均利用率只有 25 30 之间 这对服务器硬件资源是一种浪费 将多种低消耗的业务利用整合到一台服务器上 可以充分发挥服务器的性 能 从而提高整个系统的整体利用效率 3 动态资源调配 提升业务应用整体的运行质量 可在一台计算机内部的虚拟机之间或是集群系统的各个业务之间进行动态 的的资源调配 进而提升业务应用的整体运行质量 在实际应用上 这一优势 更偏重于集群系统 4 提供相互隔离的 安全的应用执行环境 虚拟系统下的各个子系统相互独立 即使一个子系统遭受攻击而崩溃也不 会对其他系统造成影响 而且在使用备份机制后 子系统可被快速的恢复 5 提供软件调试环境 进行软件测试 保证软件质量 采用虚拟技术后 用户可以在一台计算机上模拟多个系统 多种不同操作 系统 使调试环境搭建简单易行 大大提高工作效率 降低测试成本 服务器虚拟化技术存在的问题 1 虚拟技术的认知 用户对虚拟技术不了解 不明确虚拟技术在提升用户现有系统效率和降低 总体运营成本上的优势 这是阻碍虚拟技术推广的最大障碍 2 虚拟系统的可靠性 客户采用服务器 很大程度上是为了保障业务的稳定性 如果用户在一台 服务器上运行多个业务 类似于多个鸡蛋放在一只篮子 一旦出现重大硬件故 障势必会影响到所有的应用 这种威胁很难消除 而对于用户 这种潜在的业 务危险往往也是不可接受的 3 虚拟系统的运行效率 使用虚拟技术的目的在于提高用户服务器的整体利用效率 如果虚拟系统 的运行效率太低 也就失去了它在服务器上应用的价值 4 平台支持 硬件支持方面 需要虚拟系统能够不断更新 以兼容新的硬件平台 南京大学继续教育学院 2012 届本科生毕业设计 论文 6 操作系统支持 需要能够支持老操作系统 这样对于某些使用早期操作系 统的客户才有意义 对于这两方面 虚拟化平台都需要不断更新 这些都依赖虚拟化提供商的 维护 5 迁移能力 高端应用需要做到零宕机 迁移成本较高 且需要 SAN 集中存储设备的支 持 低端应用 虽然可以使用系统备份还原的迁移模式 以降低系统迁移成本 但迁移效率低 6 部署效率和易用性 当前虚拟化标准尚不统一 移植和管理工具还不够成熟 这也影响到虚拟 化的大面积普及 特别是远程管理功能需要配合虚拟化标准工作大力发展 以 使得不同的虚拟化平台可以通过网络进行统一管理 虚拟化技术的发展趋势 一 发展空间广阔 2011 年虚拟化发展的最大特点是 虚拟化市场仍将快速增长 虚拟化发展 道路远未到穷途末路的地步 因为还有很多企业并没有享受到虚拟化带来的 高效快捷低成本高环保的种种益处 据英特尔集团作出的市场预测 在未来 2011 2016 年间 虚拟化行业全球市场累计达到 2900 亿美元市值 而云计算市 场规模将为 3000 亿美元 对于经济低迷的当前形势来说 这一预测无疑是个重大利好消息 它将有 力推动虚拟化技术的更普遍应用 也有助于企业节省成本 二 SMB 普及迅速 一开始只在大企业开花结果的虚拟化应用 现在也将更多得出现在中小企 业应用场景中 专为 SMB 中小企业打造的虚拟化解决方案将有着巨大的市场 前景 SMB 也将成为虚拟化应用程度最活跃的重要角色 近年来有越来越多的虚拟化服务提供商着眼于 SMB 希望通过提供相应的 虚拟化解决方案来吸引众多中小企业的兴趣 例如 著名的微软 Hyper V 一般 被视为中小企业的一种虚拟化解决方案 根据国外的研究报告称 2011 年将有 35 的中小企业部署 Hyper V 三 自动化呈上升趋势 随着虚拟机的不断增多 迫切需要实现对虚拟化高效和简化管理 手动维 护和管理成百上千台主机将是一件费时又费力的工作 在这种情况下 自然也 就催生了企业对可靠自动化解决方案的需要 未来一年虚拟化平台实现自动化 可能不能实现质的飞跃 不过至少将会比今年有一个量的提升 南京大学继续教育学院 2012 届本科生毕业设计 论文 7 四 完善备份 恢复和实时迁移工具 管理虚拟化环境不仅仅限于自动化 备份 恢复和实时迁移是管理员需要 经常执行的任务 由于没有专为虚拟化环境开发出的一些特定工具 执行这些 任务会成为一件并不容易的事情 虚拟化厂商自然也懂得这一点 让我们相信 他们正在为简化虚拟化环境管理而推出一些优秀的工具 五 桌面虚拟化将稳步发展 一开始桌面虚拟化并未引起人们的注意 不过这种情况将在 2011 年发生改 变 虚拟化的桌面能为用户节省大量开支 你可以通过较少的硬件来运行同样 数目的物理主机 有越来越多的企业通过升级系统到 Windows 7 来实现桌面虚 拟化 从而降低成本 通过桌面虚拟化 用户无需单独添置最新硬件来运行 Windows 7 系统 另一方面 即使有一些新的强大硬件配置 仍然有一些旧的 Windows XP 应用程序在使用 正因为如此 在 XP 上运行桌面虚拟化并不切实际 而让用 户同时拥有两台物理主机 一台运行 XP 另一台运行 Windows 7 则不是个好 方法 尤其是当你在一台主机上通过一个系统既担当主机又扮演虚拟化环境角 色的情况下 桌面虚拟化不仅能够带来管理的便捷 更能带来成本的大幅节约 六 更多 Macs 成为虚拟机 桌面虚拟化不仅仅应用在 Windows 操作系统家族中 有报告指出 2011 年 企业将有更多的主机运行 Macs Macs 对终端用户和设计人员都十分受用 不 过作为企业级操作平台却并不是最好选择 尽管如此 正是因为越来越多的人 使用 iPad 和 MacBook Air 将推动 Mac 操作系统在企业中的应用 从而有更多 的 Macs 运行在虚拟主机上 七 存储虚拟化进一步发展 一谈到虚拟化 我们通常指的是服务器虚拟化 不过存储虚拟化在整个虚 拟化大潮中同样扮演着重要的角色 在 2011 年 虽然不能与服务器虚拟化相提 并论 但存储虚拟化仍将进一步发展 存储虚拟化获得进一步发展 主要在于 磁盘空间剧增而又没有强大处理能力和价格实惠的 NAS 产品支撑 对于企业而言 存储虚拟化的好处显而易见 首先 存储虚拟化能够为企 业提供一个易于学习与使用的 简单的存储界面和管理模型 借此实现对不同 品牌存储产品的管理 其次 存储虚拟化解决方案具备动态数据移植工具 这些 工具能够保证数据在不离线的情况下 动态而透明地从一台设备移动到另一台 设备 这样 IT 管理人员就可以在不中断应用的同时重新分配和扩展存储容量 南京大学继续教育学院 2012 届本科生毕业设计 论文 0 第二章 KVM 虚拟化概述 KVM 是 Kernel Virtual Module 的简写 KVM 是红帽 5 4 发行版中推出的最 新虚拟化技术 KVM 是进入 Linux 内核的虚拟化项目 它刚刚起步 还不为众 人所熟知 但随着 RedHat 下一步推广 KVM 力度的加大 相信不久的将来 KVM 会逐渐占据市场的主要位置 现在所说的虚拟化 一般都是指在 CPU 硬件支持基础之上的虚拟化技术 KVM 也同 hyper V Xen 一样依赖此项技术 没有 CPU 硬件虚拟化的支持 KVM 是无法工作的 准确来说 KVM 是 Linux 的一个模块 可以用 modprobe 去加载 KVM 模 块 加载了模块后 才能进一步通过其他工具创建虚拟机 但仅有 KVM 模块 是远远不够的 因为用户无法直接控制内核模块去作事情 还必须有一个用户 空间的工具才行 这个用户空间的工具 开发者选择了已经成型的开源虚拟化 软件 QEMU 说起来 QEMU 也是一个虚拟化软件 它的特点是可虚拟不同的 CPU 比如说在 x86 的 CPU 上可虚拟一个 Power 的 CPU 并可利用它编译出 可运行在 Power 上的程序 KVM 使用了 QEMU 的一部分 并稍加改造 就成 了可控制 KVM 的用户空间工具了 所以你会看到 官方提供的 KVM 下载有 两大部分三个文件 分别是 KVM 模块 QEMU 工具以及二者的合集 也就是 说 你可以只升级 KVM 模块 也可以只升级 QEMU 工具 这就是 KVM 和 QEMU 的关系 至此 你已经可以使用 QEMU 工具创建虚拟机了 但我们会发现 RedHat 的虚拟化并非如此简单 与之相关的还有 libvirt VMM 等 原因就是因为 QEMU 工具效率不高 不易于使用 libvirt 是一套 C 语言的 API 现在也有其 他语言的了 它负责将不同类型的虚拟化工具的差异完全屏蔽掉 例如 Xen 的 管理命令是 xm 而 KVM 则是 qemu kvm 使用 libvirt 你只需要通过 libvirt 提 供的函数连接到 Xen 或者 KVM 宿主机 便可以用同样的命令指挥不同的虚拟 机了 libvirt 不仅提供了 API 还自带了一套管理虚拟机的命令 virsh 你可 以通过使用 virsh 命令来进一步了解 libvirt 但最终用户更渴望的是图形用户界 面 这就是 VMM 的事情了 VMM 是一套用 python 写的虚拟机管理图形界面 用户可以通过它直观地操作不同的虚拟机 VMM 就是利用了 libvirt 的 API 参 数实现的 2 1Linux 系统概述 2 1 1Linux 系统简介 Linux 是一种自由和开放源码的类 Unix 操作系统 目前存在着许多不同的 南京大学继续教育学院 2012 届本科生毕业设计 论文 1 Linux 但它们都使用了 Linux 内核 Linux 可安装在各种计算机硬件设备中 从 手机 平板电脑 路由器和视频游戏控制台 到台式计算机 大型机和超级计 算机 Linux 是一个领先的操作系统 世界上运算最快的 10 台超级计算机运行 的都是 Linux 操作系统 严格来讲 Linux 这个词本身只表示 Linux 内核 但实 际上人们已经习惯了用 Linux 来形容整个基于 Linux 内核 并且使用 GNU 工 程各种工具和数据库的操作系统 Linux 得名于计算机业余爱好者 Linux Torvalds Linux 操作系统的诞生 1981 年 IBM 公司推出微型计算机 IBM PC 在 1981 1991 年间 MS DOS 操 作系统一直是微机上操作系统的主宰 此时计算机硬件价格虽逐年下降 但软 件价格仍居高不下 当时 Apple 的 MACos 操作系统可以说是性能最好的 但 是其天价没人能够轻易靠近 到 1991 年 GNU 计划已经开发出了许多工具软件 最受期盼的 Gnu C 编 译器已经出现 但还没有开发出免费的 GNU 操作系统 即使是 MINIX 也开始 有了版权 需要购买才能得到源代码 而 GNU 的操作系统 HURD 一直在开发 之中 但并不能在几年内完成 对于 Linux 来说 已经不能等待了 从 1991 年 4 月份起 他开始酝酿并着手编制自己的操作系统 刚开始 他的目的很简 单 只是为了学习 Intel 386 体系结构保护模式运行方式下的编程技术 但后来 Linux 的发展却完全改变了初衷 1991 年初 Linux 开始在一台 386sx 兼容微机上学习 minix 操作系统 通过 学习 他逐渐不能满足于 minix 系统的现有性能 并开始酝酿开发一个新的免 费操作系统 根据 Linux 在 comp os minix 新闻组上发布的消息 我们可以知道 他逐步从学习 minix 系统到开发自己的 Linux 的过程 从 1991 年的 4 月份开始 Linux 几乎花了全部时间研究 386 minix 系统 hack the kernel 并且尝试着移植 GNU 的软件到该系统上 GNU gcc bash gdb 等 并于 4 月 13 日在 comp os minix 上发布说自己已经成功地 将 bash 移植到了 minix 上 而且已经爱不释手 不能离开这个 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 see in minix 你最想在 minix 中见到 什么 在该消息中他首次透露出正在开发一个 免费的 386 486 操作系统 南京大学继续教育学院 2012 届本科生毕业设计 论文 2 并且说只是兴趣而已 代码不会很大 也不会象 GNU 的那样专业 开发免费 操作系统这个想法从 4 月份就开始酝酿了 希望大家反馈一些对于 minix 系统 中喜欢那些特色不喜欢什么等信息 由于实际的和其它一些原因 新开发的系 统刚开始与 minix 很象 并且使用了 minix 的文件系统 并且已经成功地将 bash 1 08 版 和 gcc 1 40 版 移植到了新系统上 而且再过几个月就可以使用 了 最后 Linux 申明他开发的操作系统没有使用一行 minix 的源代码 而且由 于使用了 386 的任务切换特性 所以该操作系统不好移植 没有可移植性 并且只能使用 AT 硬盘 对于 Linux 的移植性问题 Linux 当时并没有考虑 但是目前 Linux 几乎可以运行在任何一种硬件体系结构上 到了 1991 年的 10 月 5 日 Linux 在 comp os minix 新闻组上发布消息 正 式向外宣布 Linux 内核系统的诞生 Free minix like kernel sources for 386 AT 这段消息可以称为 Linux 的诞生宣言 并且一直广为流传 因此 10 月 5 日对 Linux 社区来说是一个特殊的日子 许多后来 Linux 的新版本发布时都选择了 这个日子 所以 RedHat 公司选择这个日子发布它的新系统也不是偶然的 Linux 操作系统开始时被 Linux 取名为 FREAX 英文含义是怪诞的 怪物 异想天开等 在他将新的系统上传到 FTP 服务器上时 管理员 Ari Lemke 很不 喜欢这个名称 即取 Linux 的谐音 Linux 作为该操作系统的目录 于是称为 Linux 系统 Linux 在其传 Just for Fun 中解释 坦白地说 我从来没有想到过要用 Linux 这个名称发布这个操作系统 因为这个名字有些太自负了 而我为最终 发布版准备的是什么名字呢 Freax 实际上 内核代码中某些早期的 Makefile 用于描述如何编译源代码的文件 文件中就已经包含有 Freax 这个名字了 大 约存在了半年左右 但其实这也没什么关系 在当时还不需要一个名字 因为 我还没有向任何人发布过内核代码 而 Ari Lemke 他坚持要用自己的方式将 内核代码放到 ftp 站点上 并且非常不喜欢 Freax 这个名字 他坚持要用现在 这个名字 Linux 我承认当时我并没有跟他多争论 但这都是他取的名字 所以我可以光明正大地说我并不自负 或者部分坦白地说我并没有本位主义思 想 但我想好吧 这也是个好名字 而且以后为这事我总能说服别人 就像我 现在做的这样 Linux Torvalds Just for fun 第 84 88 页 Linux 的基本思想 Linux 的基本思想有两点 第一 一切都是文件 第二 每个软件都有确定 的用途 其中第一条详细来讲就是系统中的所有都归结为一个文件 包括命令 硬件和软件设备 操作系统 进程等等对于操作系统内核而言 都被视为拥有 各自特性或类型的文件 至于说 Linux 是基于 Unix 的 很大程度上也是因为这 南京大学继续教育学院 2012 届本科生毕业设计 论文 3 两者的基本思想十分相近 磁盘以及分区 设备管理在 Linux 中 每一个硬件设备都映射到一个系统的文件 对于硬 盘 光驱等 IDE 或 SCSI 设备也不例外 Linux 把各种 IDE 设备分配了一个 由 hd 前缀组成的文件 而对于各种 SCSI 设备 则分配了一个由 sd 前缀组 成的文件 例如 第一个 IDE 设备 Linux 就定义为 hda 第二个 IDE 设备就定义为 hdb 下面以此类推 而 SCSI 设备就应该是 sda sdb sdc 等 分区数量 要进行分区就必须针对每一个硬件设备进行操作 这就有可能是 一块 IDE 硬盘或是一块 SCSI 硬盘 对于每一个硬盘 IDE 或 SCSI 设备 Linux 分配了一个 1 到 16 的序列号码 这就代表了这块硬盘上面的分区号码 例如 第一个 IDE 硬盘的第一个分区 在 Linux 下面映射的就是 hda1 第二个分区就称作是 hda2 对于 SCSI 硬盘则是 sda1 sda1 等 各分区的作用 在 Linux 中规定 每一个硬盘设备最多能有 4 个主分区 其中包含扩展分区 构成 任何一个扩展分区都要占用一个主分区号码 也 就是在一个硬盘中 主分区和扩展分区一共最多是 4 个 对于早期的 DOS 和 Windows Windows 2000 以前的版本 系统只承认 一个主分区 可以通过在扩展分区上增加逻辑盘符 逻辑分区 的方法 进一 步地细化分区 主分区的作用就是计算机用来进行启动 操作系统 的 因此每一个操作系 统的启动 或者称作是引导程序 都应该存放在主分区上 这就是主分区和扩 展分区及逻辑分区的最大区别 我们在指定安装引导 Linux 的 bootloader 的时候 都要指定在主分区上 就是最好的例证 Linux 规定了主分区 或者扩展分区 占用 1 至 16 号码中的前 4 个号码 以第一个 IDE 硬盘为例说明 主分区 或者扩展分区 占用了 hda1 hda2 hda3 hda4 而逻辑分区占用了 hda5 到 hda16 等 12 个号码 因此 Linux 下面每一个硬盘总共最多有 16 个分区 对于逻辑分区 Linux 规定它们必须建立在扩展分区上 在 DOS 和 Windows 系统上也是如此规定 而不是主分区上 因此 我们可以看到扩展分区能够提供更加灵活的分区模式 但不能用来 作为操作系统 的引导 除去上面这些各种分区的差别 我们就可以简单地把它 们一视同仁了 分区指标 对于每一个 Linux 分区来讲 分区的大小和分区的类型是最主要的指标 南京大学继续教育学院 2012 届本科生毕业设计 论文 4 容量的大小读者很容易理解 但是分区的类型就不是那么容易接受了 分区的类型规定了这个分区上面的文件系统的格式 Linux 支持多种的文件系统格式 其中包含了我们熟悉的 FAT32 FAT16 NTFS HP UX 以及各种 Linux 特有的 Linux Native 和 Linux Swap 分区类型 在 Linux 系统中 可以通过分区类型号码来区别这些不 同类型的分区 文件系统 Linux 继承了 Unix 操作系统结构清晰的特点 在 linux 下的文件结构非常有 条理 但是 上述的优点只有在对 linux 相当熟悉时 才能体会到 根目录 所有的目录 文件 设备都在 之下 就是 Linux 文件系统的组织 者 也是最上级的领导者 bin bin 就是二进制 binary 英文缩写 在一般的系统当中 你都可以在这个 目录下找到 linux 常用的命令 系统所需要的那些命令位于此目录 比如 ls cp mkdir 等命令 功能和 usr bin 类似 这个目录中的文件都是可执行的 普通用户都可以使用的命令 作为基础系统所需要的最基础的命令就是放在这 里 boot Linux 的内核及引导系统程序所需要的文件目录 比如 vmlinuz initrd img 文件都位于这个目录中 在一般情况下 GRUB 或 LILO 系统引导管理器也位 于这个目录 cdrom 这个目录在你刚刚安装系统的时候是空的 你可以将光驱文件系统挂在这 个目录下 例如 mount dev cdrom cdrom dev dev 是设备 device 的英文缩写 这个目录对所有的用户都十分重要 因 为在这个目录中包含了所有 linux 系统中使用的外部设备 但是这里并不是放的 外部设备的驱动程序 这一点和我们常用的 windows dos 操作系统不一样 它 实际上是一个访问这些外部设备的端口 我们可以非常方便地去访问这些外部 设备 和访问一个文件 一个目录没有任何区别 etc etc 这个目录是 linux 系统中最重要的目录之一 在这个目录下存放了系统 管理时要用到的各种配置文件和子目录 我们要用到的网络配置文件 文件系 统 x 系统配置文件 设备配置信息 设置用户信息等都在这个目录下 南京大学继续教育学院 2012 届本科生毕业设计 论文 5 home 如果我们建立一个用户 用户名是 xx 那么在 home 目录下就有一个对应的 home xx 路径 用来存放用户的主目录 lib lib 是库 library 英文缩写 这个目录是用来存放系统动态连接共享库的 几乎所有的应用程序都会用到这个目录下的共享库 因此 千万不要轻易对这 个目录进行什么操作 一旦发生问题 你的系统就不能工作了 lost found 在 ext2 或 ext3 文件系统中 当系统意外崩溃或机器意外关机 而产生一些 文件碎片放在这里 当系统启动的过程中 fsck 工具会检查这里 并修复已经损 坏的文件系统 有时系统发生问题 有很多的文件被移到这个目录中 可能会 用手工的方式来修复 或移到文件到原来的位置上 mnt 这个目录一般是用于存放挂载储存设备的挂载目录的 比如有 cdrom 等目 录 可以参看 etc fstab 的定义 有时我们可以把让系统开机自动挂载文件系统 把挂载点放在这里也是可以的 主要看 etc fstab 中怎么定义了 比如光驱可以 挂载到 mnt cdrom media 有些 linux 的发行版使用这个目录来挂载那些 usb 接口的移动硬盘 包括 U 盘 CD DVD 驱动器等等 opt 这里主要存放那些可选的程序 你想尝试最新的 firefox 测试版吗 那就装到 opt 目录下吧 这样 当你尝试完 想删掉 firefox 的时候 你就可 以直接删除 它 而不影响系统其他任何设置 安装到 opt 目录下的程序 它所有的数据 文件等等都是放在同个目录下面 proc 可以在这个目录下获取系统信息 这些信息是在内存中 由系统自己产生 的 操作系统运行时 进程信息及内核信息 比如 cpu 硬盘分区 内存信息 等 存放在这里 proc 目录伪装的文件系统 proc 的挂载目录 proc 并不是真正 的文件系统 它的定义可以参见 etc fstab root Linux 超级权限用户 root 的家目录 sbin 这个目录是用来存放系统管理员的系统管理程序 大多是涉及系统管理的 命令的存放 是超级权限用户 root 的可执行命令存放地 普通用户无权限执行 南京大学继续教育学院 2012 届本科生毕业设计 论文 6 这个目录下的命令 这个目录和 usr sbin usr X11R6 sbin 或 usr local sbin 目录 是相似的 我们记住就行了 凡是目录 sbin 中包含的都是 root 权限才能执行的 selinux 好像是对 SElinux 的一些配置文件目录 SElinux 可以让你的 linux 更加安全 srv 服务启动后 所需访问的数据目录 举个例子来说 www 服务启动读 取的网页数据就可以放在 srv www 中 sys Linux 内核中设计较新的一种虚拟的基于内存的文件系统 它的作用与 proc 有些类似 但除了与 proc 相同的具有查看和设定内核参数功能之外 还 有为 Linux 统一设备模型作为管理之用 tmp 临时文件目录 用来存放不同程序执行时产生的临时文件 有时用户运行 程序的时候 会产生临时文件 tmp 就用来存放临时文件的 var tmp 目录和 这个目录相似 usr 这是 linux 系统中占用硬盘空间最大的目录 用户的很多应用程序和文件都 存放在这个目录下 在这个目录下 你可以找到那些不适合放在 bin 或 etc 目录 下的额外的工具 比如像游戏啊 一些打印工具拉等等 usr 目录包含了许多 子目录 usr bin 目录用于存放程序 usr share 用于存放一些共享的数据 比如 音乐文件或者图标等等 usr lib 目录用于存放那些不能直接 运行的 但却是许 多程序运行所必需的一些函数库文件 你的软件包管理器 应该是 新立得 吧 会自动帮你管理好 usr 目录的 usr local 这里主要存放那些手动安装的软件 即不是通过 新立得 或 apt get 安装 的软件 它和 usr 目录具有相类似的目录结构 让软件包管理器来管理 usr 目录 而把自定义的脚本 scripts 放到 usr local 目录下面 我想这应该是个不错的主 意 usr share 系统共用的东西存放地 比如 usr share fonts 是字体目录 usr share doc 和 usr share man 帮助文件 var 这个目录的内容是经常变动的 看名字就知道 我们可以理解为 vary 的缩 写 var 下有 var log 这是用来存放系统日志的目录 var www 目录是定义 Apache 服务器站点存放目录 var lib 用来存放一些库文件 比如 MySQL 的 南京大学继续教育学院 2012 届本科生毕业设计 论文 7 以及 MySQL 数据库的的存放地 文件类型 在介绍属性时 提到了最前面的标志 d 或 可以表示目录或文件 那就 是不同的文件种类 Linux 的文件种类主要有下面这几种 普通文件 regular file 就是一般我们存取的文件 由 ls al 显示出来的 属性中 第一个属性为 例如 rwxrwxrwx 另外 依照文件的内容 又 大致可以分为 纯文本文件 ASCII 这是 Unix 系统中最多的一种文件类型 之所以称 为纯文本文件 是因为内容为我们可以直接读到的数据 例如数字 字母等等 设 置文件几乎都属于这种文件类型 举例来说 使用命令 cat bashrc 就可 以看到该文件的内容 cat 是将文件内容读出来 二进制文件 binary 我们在 GNU 发展史中提过 系统其实仅认识且可 以执行二进制文件 binary file Linux 中的可执行文件 脚本 文本方式的批 处理文件不算 就是这种格式的 举例来说 命令 cat 就是一个二进制文件 数据格式的文件 data 有些程序在运行过程中 会读取某些特定格式的 文件 那些特定格式的文件可以称为数据文件 data file 举例来说 Linux 在 用户登入时 都会将登录数据记录在 var log wtmp 文件内 该文件是一个数据 文件 它能通过 last 命令读出来 但使用 cat 时 会读出乱码 因为它是属于一 种特殊格式的文件 目录 directory 就是目录 第一个属性为 d 例如 drwxrwxrwx 连接文件 link 类似 Windows 下面的快捷方式 第一个属性为 l 例 如 lrwxrwxrwx 设备与设备文件 device 与系统外设及存储等相关的一些文件 通常都 集中在 dev 目录 通常又分为两种 块 block 设备文件 就是存储数据以供系统存取的接口设备 简单而言 就是硬盘 例如一号硬盘的代码是 dev hda1 等文件 第一个属性为 b 字符 character 设备文件 即串行端口的接口设备 例如键盘 鼠标等等 第一个属性为 c 套接字 sockets 这类文件通常用在网络数据连接 我们可以启动一个 程序来监听客户端的要求 客户端就可以通过套接字来进行数据通信 第一个 属性为 s 最常在 var run 目录中看到这种文件类型 管道 FIFO pipe FIFO 也是一种特殊的文件类型 它主要的目的是 解 决多个程序同时存取一个文件所造成的错误 FIFO 是 first in first out 先进先 出 的缩写 第一个属性为 p 桌面环境 南京大学继续教育学院 2012 届本科生毕业设计 论文 8 在图形计算中 一个桌面环境 Desktop environment 有时称为桌面管理器 为计算机提供一个图形用户界面 GUI 这个名称来自桌面比拟 对应于早期 的文字命令行界面 CLI 一个典型的桌面环境提供图标 视窗 工具栏 文 件夹 壁纸以及像拖放这样的能力 整体而言 桌面环境在设计和功能上的特 性 赋予了它与众不同的外观和感觉 现今主流的桌面环境有 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 工作站上的各种应用软件以及完成各种任务 GNOME GNOME 即 GNU 网络对象模型环境 The GNU Network Object Model Environment GNU 计划的一部分 开放源码运动的一个重要组成部分 是一 种让使用者容易操作和设定电脑环境的工具 目标是基于自由软件 为 Unix 或者类 Unix 操作系统构造一个功能完善 操作简单以及界面友好的桌面环境 他是 GNU 计划的正式桌面 Xfce Xfce XForms Common Environment 创建于 2007 年 7 月 类似于商业图形环 境 CDE 是一个运行在各类 Unix 下的轻量级桌面环境 原作者 Olivier Fourdan 最先设计 XFce 是基于
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年天津工艺美术职业学院单招职业技能考试题库及答案解析(夺冠系列)
- 2026年浙江特殊教育职业学院单招职业适应性考试题库附答案解析
- 2026年揭阳职业技术学院单招职业倾向性测试必刷测试卷及答案解析(夺冠系列)
- 多核并行交易加速器
- 2026年华东政法大学单招职业技能测试题库带答案解析
- 2026年云南锡业职业技术学院单招职业倾向性测试题库带答案解析
- 2026年四川托普信息技术职业学院单招职业倾向性测试题库带答案解析
- 2026年上海海洋大学单招职业技能测试题库带答案解析
- 基因治疗策略研究-第1篇
- 房屋抵借款合同范本
- 2025年河北省健康体检主检医师题库
- 2025及未来5年吨袋项目投资价值分析报告
- (12)普通高中技术与工程课程标准日常修订版(2017年版2025年修订)
- 2025年全国共青团“新团员入团”应知应会知识考试试卷及参考答案详解【突破训练】
- 脉动真空灭菌器XG1.D使用说明书
- 水基清洗剂培训课件
- 大学语文-辛弃疾《摸鱼儿》《水龙吟》课件
- 大型保险公司合规经营红线培训课件
- 医院医学伦理委员会收支管理制度
- 内镜室护理工作流程
- 人教版英语九年级unit12全单元课件
评论
0/150
提交评论