的 機 器 指 令, 由 Java 虛 機 器 代 表 第 三 種 是 Unix 虛 擬 機 器 模 型 我 們 將 一 一 介 紹 這 些 不 同 派 別 的 VM 模 型 IBM 虛 擬 機 器 模 型 現 今 所 使 用 的 主 要 VM 模 型 之 一 就 是 IBM(Internation



Similar documents
自由軟體社群發展經驗與 Linux認證介紹

Microsoft PowerPoint - lect01.ppt

Java 1 Java String Date

投影片 1

CH01.indd

Learning Java

作 業 系 統 簡 介 光 有 電 腦 硬 體, 會 不 容 易 使 用 必 須 要 有 適 當 的 程 式, 才 方 便 操 作 硬 體 衍 生 作 業 系 統 需 求 : 提 供 方 便 使 用 者 執 行 程 式 平 台 有 效 使 用 各 種 電 腦 硬 體 資 源 Jingo C. Lia

Cloudy computing forEducation

LinuxÓû§»ù´¡

BYOD IP+Optical (IP NGN) API 4. End-to-End (Service Aware) 5. IP NGN (IP Next Generation Network) ( ) Prime Carrier Management Access Edge Co

Sun Storage Common Array Manager 阵列管理指南,版本 6.9.0

第一章

政府機關資訊通報第295期(5月)

目次 

DocHdl2OnPPMtmpTarget

本文由筱驀釹贡献


大学计算机基础B.doc

声 明 本 公 司 及 全 体 董 事 监 事 高 级 管 理 人 员 承 诺 不 存 在 虚 假 记 载 误 导 性 陈 述 或 重 大 遗 漏, 并 对 其 真 实 性 准 确 性 完 整 性 承 担 个 别 和 连 带 的 法 律 责 任 本 公 司 负 责 人 和 主 管 会 计 工 作 的

Microsoft Word _2 課本1225_OK_0222修.doc

目 录 1. 概 述 总 体 方 案 方 案 概 述 软 件 部 署 架 构 技 术 原 理 访 问 场 景 典 型 设 备 ipad 配 置 使 用 示 例 详 细

第 15 章 程 式 編 写 語 言 15.1 程 式 編 写 語 言 的 角 色 程 式 編 寫 語 言 是 程 式 編 寫 員 與 電 腦 溝 通 的 界 面 語 法 是 一 組 規 則 讓 程 式 編 寫 員 將 字 詞 集 合 起 來 電 腦 是 處 理 位 元 和 字 節 的 機 器, 與

经华名家讲堂

collateral 1.doc

<4D F736F F F696E74202D20C8EDBCFEB2E2CAD4D1A7CFB0D7CAC1CF2E BBCE6C8DDC4A3CABD5D>

相 关 知 识 1 计 算 机 工 作 原 理 1946 年 2 月, 世 界 上 第 一 台 电 子 计 算 机 ENIAC (Electronic Numerical Integrator And Computer, 电 子 数 字 积 分 计 算 机 ) 诞 生 于 美 国 宾 夕 法 尼 亚

handsome-招股书-新规则-final-version-0422.PDF

StorageTek Virtual Storage Manager GUI - 安全指南

人 物 訪 中 華 技 術 I N T E R V I E W 壹 前 言 當 您 搭 乘 台 鐵 縱 貫 線 南 下 列 車, 於 駛 入 高 雄 岡 山 地 區 時, 映 入 眼 簾 的 是 一 座 佔 地 約 30,000 坪 的 綠 色 巨 型 鋼 構 廠 房 及 碩 大 的 皆 豪 鋼 構

<4D F736F F F696E74202D BB7BC3D2A4CEBFECB27AA4E8A6A1BBA1A9FA205BACDBAE65BCD2A6A15D>

UNIX Shell Shell UNIX, 21 UN IX, UNIX UNIX UNIX vi UNIX UNIX Shell, UNIX Shell Shell UNIX Shell, Shell Shell Shell Shell Shell UNIX, (CIP) UNIX Shell

V A. 1 Hyper-V R2 V C. A. Hyper-V B. Microsoft SCOM 20 V C. MAP D. Microsoft SCVMM 2008 V B. V D. 2. IT IT 2

IBM System x 系列手册

普 通 高 等 教 育 十 二 五 重 点 规 划 教 材 计 算 机 系 列 中 国 科 学 院 教 材 建 设 专 家 委 员 会 十 二 五 规 划 教 材 操 作 系 统 戴 仕 明 姚 昌 顺 主 编 姜 华 张 希 伟 副 主 编 郑 尚 志 梁 宝 华 参 编 参 编 周 进 钱 进

营 销 策 划 岗 部 门 招 聘 职 位 招 聘 人 数 岗 位 职 责 基 本 要 求 岗 位 任 职 要 求 6 参 与 项 目 产 品 研 究 客 户 需 求 研 究 竞 争 环 境 研 究 价 格 研 究 等 项 目 市 场 研 究 ; 7 公 司 经 纪 业 务 的 品 牌 管 理, 对

A Preliminary Implementation of Linux Kernel Virus and Process Hiding

ソフトウェア説明書 CA Introscope 9 (9.5)

网上路演公告-final.PDF

次世代のITインフラ“Compute”を先取り!HPが統合型アプライアンス「HP ConvergedSystem」を推進する理由

SiteView技术白皮书

Dell AppAssure 安装和升级指南

AppAssure 5

校友会系统白皮书feb_08

06 最新計算機概論 6-1 電腦軟體的類型 (software) (system software) (application software) Microsoft Office Adobe Photoshop Internet Explorer Macromedia Dreamweaver (

HP StorageWorks Automated Storage Manager 用户指南

产品手册: CA GEN r8

存储视频监控封面(210×270mm)-0725

1 IT IT IT IT Virtual Machine, VM VM VM VM Operating Systems, OS IT

<4D F736F F D2031A3AD4A617661BCBCCAF5CAC6CDB7D5FDBEA22E646F63>

G indd

51434S Fundamentals of the UNIX system 5 40, H3064S HPE-UX System and Network Administration I 5 40, H3065S HPE-UX System

Red Flag Linux Desktop 4.0 Red Flag Linux Desktop 4.0 1

Microsoft Word 資訊專業證照研析報告

Hitachi Vantara Hitachi Vantara Hitachi, Ltd. Hitachi Vantara IT OT Go Go

LSI U320 SCSI卡用户手册.doc

公 司 年 度 大 事 记 2015 年 10 月 -11 月, 公 司 完 成 股 份 制 改 造 10 月 13 日, 百 灵 有 限 临 时 股 东 会 作 出 决 议, 同 意 各 发 起 人 将 其 在 百 灵 有 限 拥 有 的 截 至 2015 年 8 月 31 日 经 审 计 的 原

清华得实WebST网络安全行业解决方案

Microsoft Word 中的文档

Dell EMC Data Domain DDOS 5.5 Data Domain Data Domain Data Domain : Data Domain Boost (DDBoost) Dell EMC DDBoost Data Domain DDBoost Source De-Dup Bac

05 01 X Window X Window Linux Linux X Window X Window Webmin Web Linux Linux X Window X Window Notebook PC X Window X Window module Linux Linux kernel

IT Data-intensive application,iscsi Middl

陕西职业技术学院(用标志)

Norton Ghost 15.0 安裝操作指南

2 Java 语 言 程 序 设 计 教 程 简 单 性 Java 语 言 的 语 法 与 C 语 言 和 C++ 语 言 很 接 近, 使 得 大 多 数 程 序 员 很 容 易 学 习 和 使 用 Java 另 一 方 面,Java 丢 弃 了 C++ 中 很 少 使 用 的 很 难

... 3 vsphere Hypervisor ESXi ESXi DCUI...4 NVIDIA GRID...4 Horizon with GRID vgpu...4 Horizon with GRID vdga.

Microsoft Word htm

软件概述

網路安全:理論與實務 第二版

epub 75-1

ebook140-9

软 件 工 程 专 业 习 指 南 目 录 一 软 件 工 程 专 业 设 置 背 景 与 发 展 前 景... 3 二 软 件 工 程 专 业 实 践 教 条 件... 4 三 软 件 工 程 专 业 课 程 类 型 及 核 方 式 软 件 工 程 专 业 课 程 类 型...7

前言

Basic System Administration

スライド 1

1 1 DELL PowerEdge CD SERVER 1 OS: Novell Netware 3.12, CPU:1*PII-450MHz, RAM:256MB, HardDisk:18GB*1,9GB*2 DOS OS: Web Browser Inter

PowerPoint 演示文稿

F4

白 皮 书 英 特 尔 IT 部 门 实 施 Apache Hadoop* 英 特 尔 分 发 版 软 件 的 最 佳 实 践 目 录 要 点 概 述...1 业 务 挑 战...2 Hadoop* 分 发 版 注 意 事 项...3 Hadoop* 基 础 架 构 注 意 事 项

<5C5C D2D CB1BEB5D8B4C5C5CC CBACDCAA25CBBD45CBDF8D0D0D6D05CD5FEB2C95CCAFDD7D65CC2DBD6A4BBE15C E31322E3234C2DBD6A4B8E529C3B7D6DDCAD0CAFDD7D6BBAFB3C7CAD0D7DBBACF2E2E2E2E646F63>

前言

<4D F736F F D D342DA57CA7DEA447B14D2DA475B57BBB50BADEB27AC3FEB14DA447B8D5C344>

Microsoft Word - PS2_linux_guide_cn.doc

Sun Fire V440 Server Administration Guide - zh_TW

概述

A9RF716.tmp

csa-faq.pdf

6112 http / /mops.tse.com.tw http / /

<4D F736F F D20CAB5D1E9CAD2B9DCC0EDC6BDCCA856342E315FD1A7C9FAD3C3BBA7B2D9D7F7D6B8C4CF2E646F63>

1.doc

ArcIMS ArcIMS Shape ArcIMS Monitor ArcIMS Tasker ArcIMS Windows NT UNIX ArcIMS ArcIMS MapService ArcIMS ArcIMS ArcIMS ArcIMS JAVA Windows NT UNIX ArcI

<4D F736F F D20B4F2D3A1B8E5CEE5A3BAD5E3BDADB4F3D1A7D0C5CFA2BBAFBDA8C9E8B1EAD7BCB9E6B7B62E646F63>

Microsoft Word - cr_xi_supported_platforms_tw.doc

Paratune用户手册

スライド 1

XXX专业本科人才培养方案

目 录 第 一 章 概 述 总 体 框 架 临 床 信 息 系 统 建 设 医 院 管 理 信 息 系 统 信 息 平 台 建 设 需 求... 5 第 二 章 基 于 电 子 病 历 的 临 床 信 息 系 统 建 设 需 求...

职 位 类 别 : 测 试 工 程 师 工 作 经 验 或 实 习 经 历 : 不 限 岗 位 要 求 : 1. 本 科 及 其 以 上 学 历, 计 算 机 相 关 专 业 2014 届 毕 业 生 ; 2. 实 习 时 间 要 求, 尽 量 一 周 五 个 工 作 日 ; 3. 熟 悉 Wind

一个开放源码的嵌入式仿真环境 ― SkyEye

SAP HANA 最 简 单 的 理 解 ERP CRM SRM BI 列 存 储 2

一 Grass 是 什 么 1 简 介 GRASS (Geographic Resources Analysis Support System, 地 理 资 源 分 析 支 持 系 统 ) 是 最 负 盛 名 的 开 源 地 理 信 息 系 统 (GIS) 以 下 是 它 的 一 些 特 点 : 1

Transcription:

第 二 章 虛 擬 機 器 的 系 統 程 式 技 術 虛 擬 機 器 (Virtual Machine, 簡 稱 VM) 已 是 日 常 生 活 中 常 會 應 用 到 的 技 術 VM 是 一 個 虛 擬 化 方 式 來 建 立 一 個 電 腦 系 統 平 台 的 機 器,VM 的 行 為 就 像 有 多 個 作 業 系 統 或 是 多 個 應 用 程 式 運 作 在 同 一 台 實 體 的 主 機 上, 也 就 是 說,VM 允 許 使 用 者 在 一 個 系 統 上 運 行 多 個 作 業 系 統 在 本 章 節 中, 我 們 將 介 紹 什 麼 是 VM VM 的 發 展 歷 史 VM 的 種 類 以 及 虛 擬 化 VM 的 功 能 與 型 態 2.1 虛 擬 機 器 的 介 紹 VM 技 術 是 一 種 抽 象 虛 擬 化 技 術, 允 許 使 用 者 在 一 個 系 統 上 運 行 多 個 作 業 系 統 VM 的 方 法 就 像 是 透 過 軟 體 來 模 擬 虛 擬 的 硬 體 元 件, 使 得 程 序 或 是 作 業 系 統 可 在 虛 擬 化 的 硬 體 元 件 上 運 作 利 用 VM 技 術 所 建 立 的 虛 擬 電 腦 系 統 平 台 就 等 同 於 是 一 台 電 腦 且 可 在 虛 擬 電 腦 系 統 平 台 上 執 行 軟 體 程 序 的 應 用, 例 如 : 使 用 者 想 在 Windows 作 業 系 統 上 運 作 一 個 Linux 作 業 系 統 時, 使 用 者 可 透 過 VM 技 術 來 實 現 因 此,VM 主 要 優 勢 在 於 當 在 一 台 主 機 上 安 裝 多 個 作 業 系 統 時 可 完 全 相 互 獨 立, 且 對 於 使 用 者 而 言, 能 夠 允 許 在 每 一 個 作 業 系 統 或 程 序 之 間 都 具 有 良 好 的 安 全 性 效 果 VM 本 質 特 性 是 執 行 在 VM 上 的 軟 體 必 需 受 限 於 VM 所 提 供 的 抽 象 化 資 源, 也 就 是 說 在 VM 上 執 行 的 軟 體 只 能 使 用 VM 內 部 的 抽 象 化 資 源 來 執 行 該 程 序, 而 不 會 佔 用 到 實 體 電 腦 的 資 源 VM 通 常 會 考 量 下 列 幾 個 問 題 : 在 許 多 程 序 之 間 如 何 達 成 共 享 相 同 硬 體 的 問 題 如 何 能 夠 允 許 軟 體 在 不 同 的 作 業 系 統 之 間 運 作 如 何 在 新 式 電 腦 上 運 作 較 舊 的 軟 體 上 述 這 些 問 題 都 能 夠 透 過 VM 技 術 來 解 決, 所 以 在 計 算 機 系 統 中 VM 是 一 種 不 可 或 缺 的 技 術 在 VM 世 界 中 有 三 個 主 要 的 思 想 流 派 : 第 一 種 就 是 一 個 一 對 一 的 映 射, 由 IBM 虛 擬 機 器 模 型 為 代 表 第 二 種 是 包 含 每 一 個 虛 擬 指 令 對 映

的 機 器 指 令, 由 Java 虛 機 器 代 表 第 三 種 是 Unix 虛 擬 機 器 模 型 我 們 將 一 一 介 紹 這 些 不 同 派 別 的 VM 模 型 IBM 虛 擬 機 器 模 型 現 今 所 使 用 的 主 要 VM 模 型 之 一 就 是 IBM(International Business Machines) 的 虛 擬 機 器 IBM 模 型 在 每 一 個 VM 中 複 製 一 模 一 樣 的 真 實 機 器 有 了 這 個 概 念, 可 將 一 個 大 型 且 有 超 強 運 作 能 力 的 超 級 電 腦 劃 分 出 比 原 本 電 腦 主 機 還 要 多 台 的 虛 擬 機 器, 但 這 些 劃 分 出 來 的 虛 擬 機 器 因 會 比 原 本 電 腦 主 機 所 擁 有 的 資 源 稍 微 不 足, 所 以 效 能 表 現 會 較 差 IBM 的 虛 擬 機 器 觀 點 是 類 似 於 一 種 以 映 射 出 其 它 虛 擬 機 器 的 功 能 性 這 意 味 著 VM 擷 取 虛 擬 指 令, 然 後 將 這 些 虛 擬 指 令 映 射 到 機 器 上 的 實 際 指 令 來 執 行 在 IBM VM 架 構 下, 這 些 指 令 基 本 上 是 以 一 對 一 的 映 射 方 式 來 執 行, 也 就 是 說, 每 一 個 虛 擬 指 令 都 映 射 到 一 個 相 對 應 的 實 體 機 器 指 令 來 執 行 需 執 行 的 虛 擬 指 令 從 本 質 上 來 說, 使 用 者 有 實 際 地 存 取 並 直 接 地 執 行 所 有 在 機 器 上 的 指 令 IBM VM 作 業 系 統 是 如 何 維 護 系 統 的 安 全? 如 果 它 將 所 有 功 能 性 的 指 令 都 給 使 用 者 時, 那 將 會 映 射 出 所 有 在 實 際 機 器 上 的 所 有 功 能 性 指 令 在 這 樣 的 情 況 下, 對 於 系 統 上 的 安 全 將 是 一 個 重 要 挑 戰 所 以 其 安 全 措 施 是 阻 止 一 些 敏 感 性 指 令 映 射 執 行, 例 如 : 那 些 企 圖 直 接 修 改 處 理 器 的 記 憶 體 或 暫 存 器 的 指 令, 如 果 這 樣 類 型 的 指 令 允 許 使 用 者 直 接 地 修 改 實 際 機 器 的 話, 將 會 改 變 其 他 VMs 可 能 在 任 何 特 定 時 間 來 運 行 如 果 不 允 許 使 用 者 直 接 地 修 改 實 際 機 器 的 話, 則 每 一 個 使 用 者 的 VM 不 會 完 全 地 獨 立, 因 此 可 能 損 害 到 其 它 使 用 者 的 環 境 從 本 質 上 來 說,IBM VM 系 統 直 接 地 執 行 所 有 非 敏 感 性 的 指 令, 並 且 阻 止 那 些 敏 感 性 的 指 令 當 機 器 阻 止 那 些 敏 感 性 的 指 令 時, 機 器 會 先 企 圖 模 擬 所 需 操 作 的 敏 感 性 指 令, 這 個 動 作 其 實 使 用 者 並 不 會 發 覺 機 器 已 事 先 透 過 模 擬 來 嘗 試 執 行 這 個 非 法 操 作 如 果 有 可 能 VM 系 統 提 供 敏 感 性 指 令 的 虛 擬 運 作, 則 機 器 會 提 供 使 用 者 所 有 期 望 的 功 能 性, 同 時 仍 維 護 S/370 硬 體 系 統 的 完 整 性 所 有 功 能 性 都 是 由 VM 作 業 系 統 運 作

在 硬 體 上 所 提 供 的 IBM 虛 擬 機 器 模 型 的 運 作 VM 作 業 系 統 是 整 個 IBM 虛 擬 機 器 體 系 結 構 的 大 腦 整 個 系 統 的 作 業 系 統 和 硬 體 都 是 由 VM 系 統 所 提 供 的 每 一 個 VM 系 統 是 由 一 個 程 序 來 控 制, 這 個 程 序 稱 為 控 制 程 序 控 制 程 序 除 了 管 理 實 際 地 實 體 硬 體 之 外, 也 對 任 何 系 統 和 每 一 個 使 用 者 來 建 立 一 個 VM, 這 個 VM 本 質 上 是 一 個 精 確 地 模 擬 System/370 或 System/390 的 大 型 電 腦 IBM 虛 擬 機 器 的 重 要 概 念 是 每 一 個 使 用 者 可 執 行 程 序 和 儲 存 資 料, 甚 至 是 其 它 使 用 者 正 在 VM 上 運 作 時, 突 然 當 機 的 話, 其 他 使 用 者 也 不 會 受 到 影 響 因 此,IBM 虛 擬 機 器 模 型 不 僅 允 許 資 源 共 享 而 且 還 能 維 護 系 統 資 源 控 制 程 序 是 VM 系 統 中 最 重 要 的 部 份, 而 且 實 際 上 是 直 接 地 運 作 在 電 腦 硬 體 上 控 制 程 序 是 負 責 管 理 系 統 硬 體 與 支 援 系 統 任 務 ( 包 含 : 程 序 的 啟 動 或 關 閉 ) 以 及 系 統 排 程 和 請 求 資 源 的 執 行 控 制 程 序 也 管 理 編 製 程 序 的 功 能, 這 個 編 製 程 序 的 功 能 提 供 每 一 個 VM 的 建 立 和 維 護 每 一 個 VM 之 間 的 運 作 隨 著 控 制 程 序, 其 它 主 要 組 成 的 部 份 是 一 個 VM 系 統 的 使 用 者 對 話 監 督 系 統 (Conversational Monitor System, CMS) 互 動 基 本 上 CMS 提 供 使 用 者 需 要 運 作 的 作 業 系 統 任 務 有 些 服 務 包 含 檔 案 系 統 命 令 載 入 和 執 行 程 序 的 能 力 記 憶 體 的 管 理 螢 幕 與 視 窗 的 服 務 以 及 允 許 使 用 者 編 寫 應 用 程 式 的 服 務 CMS 是 一 個 作 業 系 統, 而 這 個 作 業 系 統 已 經 被 設 計 來 應 用 於 每 次 只 有 單 一 任 務 的 單 一 使 用 者 上 運 作 雖 然 系 統 具 有 一 次 處 理 多 個 任 務 的 能 力, 但 它 主 要 是 用 於 每 次 只 有 單 一 任 務 的 使 用 每 一 個 虛 擬 機 器 已 有 複 製 自 己 的 CMS, 從 而 使 得 所 有 使 用 者 都 有 相 同 的 介 面 與 功 能 除 了 控 制 程 序 和 CMS 之 外, 有 幾 個 使 用 VM 系 統 架 構 來 建 構 其 它 部 份, 包 含 : 群 組 控 制 系 統 (Group Control System) 透 通 性 系 統 存 取 設 施 一 些 額 外 地 服 務 如 傾 印 設 施 (Dump Viewing Facility) 接 下 來 我 們 將 對 控 制 程 序 和 CMS 來 說 明 有 關 映 射 指 令 的 部 份 正 如 上 述 中 提 到 的, 指 令 集 本 質 上 是 一 個 一 對 一 的 映 射 方 式 對 於 速 度 和 方 便 而

言, 大 多 數 的 指 令 可 有 效 地 在 System/370 和 System/390 上 直 接 地 運 作 例 如 : 當 使 用 者 企 圖 執 行 一 個 指 令, 而 這 個 指 令 是 授 予 使 用 者 存 取 其 他 使 用 者 的 VM 資 源 由 於 這 個 指 令 對 於 IBM 虛 擬 機 器 是 一 種 敏 感 性 指 令, 所 以 此 指 令 將 被 CMS 給 阻 止 並 將 這 指 令 標 記 成 一 個 敏 感 性 指 令 這 意 味 著 CMS 能 夠 辨 識 這 個 指 令, 並 傳 遞 一 個 訊 息 來 告 知 控 制 程 序, 這 是 一 個 受 保 護 的 指 令 在 控 制 程 序 得 知 此 指 令 為 受 保 護 指 令 之 後, 控 制 程 序 會 利 用 這 個 指 令 並 執 行 一 些 特 殊 的 例 行 程 序 或 檢 查 這 指 令 然 後 這 些 例 行 程 序 會 告 訴 控 制 程 序 是 否 可 嘗 試 摸 擬 此 指 令 的 執 行 或 是 是 否 應 該 完 全 地 封 鎖 此 指 令 如 果 控 制 程 序 模 擬 這 個 指 令, 則 使 用 者 永 遠 不 會 知 道 控 制 程 序 曾 經 試 圖 運 行 這 個 受 保 護 的 指 令 如 果 控 制 程 序 必 須 阻 止 執 行 的 指 令, 則 會 告 知 使 用 者 此 指 令 發 生 錯 誤 並 將 些 指 令 的 程 序 給 中 止 經 由 上 述 的 例 子, 可 以 了 解 基 本 的 IBM 虛 擬 機 器 的 模 型 以 及 如 何 運 作 IBM 虛 擬 機 器 提 供 一 個 有 多 個 使 用 者 共 享 大 型 系 統 資 源 的 方 法, 且 此 方 法 具 有 足 夠 的 安 全 性 IBM 系 統 允 許 每 一 個 使 用 者 都 有 相 同 的 功 能 性 與 資 源, 而 不 損 害 任 何 一 個 使 用 者 的 隱 私 與 安 全 經 過 近 三 十 多 年 的 發 展, 這 項 技 術 已 在 企 業 和 大 學 裡 廣 泛 地 使 用 在 資 源 共 享 系 統 上 Java 虛 擬 機 器 模 型 在 電 腦 企 業 中 經 常 使 用 一 種 模 擬 機 器 的 概 念 來 解 釋 VM 這 種 VM 的 概 念 不 同 於 IBM 的 VM 概 念 IBM 的 概 念 是 劃 分 系 統 記 憶 體 和 資 源 並 精 確 地 複 製 給 目 前 獨 立 的 機 器 在 模 擬 機 器 的 情 況 下, 這 個 系 統 不 是 獨 立 式 的 機 器 一 個 新 式 機 器 或 是 VM 反 而 是 在 不 改 變 系 統 的 情 況 下 放 置 在 現 行 系 統 上 這 類 的 VM 型 態 已 被 證 明 允 許 軟 體 開 發 人 員 以 一 個 完 全 不 同 的 機 器 上 模 擬 一 台 機 器, 其 成 效 非 常 強 大 這 個 想 法 帶 來 有 關 創 立 強 大 功 能 的 電 腦 程 式 語 言, 例 如 :Java Java 程 式 語 言 是 依 賴 著 模 擬 機 器, 這 個 模 擬 機 器 叫 作 Java 虛 擬 機 器 (Java Virtual Machine, JVM) JVM 是 一 個 允 許 電 腦 程 式 開 發 者 與 虛 擬 機 器 系 統 溝 通 的 介 面 因 為 程 式 開 發 者 可 使 用 內 置 於 JVM 的 功 能, 而 不 是 使 用 作 業 系 統 上 的 功 能 這

是 JVM 的 特 色 之 一, 那 就 是 具 有 跨 平 台 的 特 色 如 果 相 同 的 JVM 安 裝 在 兩 個 完 全 不 同 的 機 器 上, 則 一 個 Java 程 序 可 運 作 在 兩 台 機 器 上, 這 是 因 為 JVM 的 關 係, Java 程 序 是 運 作 在 JVM 上 而 不 是 運 作 在 系 統 上 由 於 JVM 有 相 當 高 的 可 移 植 性, 所 以 Java 已 成 為 網 際 網 路 的 原 理 編 製 程 序 語 言 現 在 有 許 多 網 頁 已 結 合 Java 程 序 來 執 行 特 定 任 務 並 顯 示 在 瀏 覽 器 上 JVM 模 型 的 運 作 JVM 是 作 業 系 統 上 的 軟 體 實 現, 而 Java 程 序 是 透 過 JVM 來 編 譯 而 不 是 透 過 系 統 來 編 譯, 所 以 程 式 開 發 人 員 編 寫 Java 程 式 並 透 過 Java 編 譯 器 將 Java 程 式 轉 換 成 JVM 上 可 執 行 的 Java 程 序 的 代 碼 這 些 代 碼 被 稱 為 Bytecodes Bytecodes 可 被 看 成 是 JVM 的 機 器 語 言 JVM 會 解 析 一 串 的 Bytecodes 作 為 一 個 序 列 指 令, 然 後 執 行 這 些 指 令, 以 產 生 所 需 的 輸 出 資 訊 如 下 圖 2-1 中 呈 現 一 個 Java 程 序 的 執 行 方 式 使 用 Java 程 式 語 言 撰 寫 的 程 式 碼 Java 原 始 程 式 碼 *.java 透 過 Java 編 譯 器 生 成 執 行 碼 (Bytecode) Java 編 譯 器 *.class 運 行 應 用 程 式 的 硬 體 平 台 或 作 業 系 統 系 統 接 收 到 從 Java 虛 擬 機 器 相 對 應 的 執 行 指 令 之 後, 開 始 執 行 並 顯 示 執 行 結 果 相 對 應 的 執 行 指 令 Java 虛 擬 機 器 將 *.class 載 入 到 Java 虛 擬 機 器, 透 過 Java 虛 擬 機 器 直 譯 Bytecode 並 運 行 相 對 應 的 執 行 指 令 圖 2-1 Java 程 式 透 過 JVM 的 編 譯 過 程 JVM 主 要 目 的 是 解 決 建 立 可 攜 性 的 電 腦 程 序 問 題 JVM 雖 然 完 全 解 決 這 個 問 題, 但 是 並 非 完 全 地 解 決 此 問 題, 然 而 JVM 提 供 一 個 有 很 好 的 解 決 方 案, 此 方 案 也 有 很 好 的 效 果 ( 雖 然 不 是 100% 的 有 效 ), 但 Java 仍 然 具 有 相 當 高 度 的 可 移

植 性 Java 允 許 人 們 開 發 許 多 跨 平 台 的 應 用 程 序, 並 已 被 證 實 是 一 個 有 效 解 決 上 述 問 題 且 強 大 的 VM 技 術 Unix 虛 擬 機 器 模 型 VM 的 使 用 與 設 計 概 念 已 經 成 功 創 造 可 移 植 且 強 大 的 虛 擬 設 備 方 法, 這 個 方 法 解 決 許 多 電 腦 工 程 師 所 面 臨 的 問 題 VM 的 概 念 已 被 納 入 到 Unix 作 業 系 統 的 程 序 模 型, 此 模 型 已 是 非 常 完 善 的 層 級 Unix 作 業 系 統 是 現 代 電 腦 使 用 最 成 功 和 最 受 人 尊 敬 的 經 營 系 統 之 一 Unix 作 業 系 統 使 用 一 系 列 獨 立 程 序 來 實 現 使 用 者 的 命 令 而 這 些 獨 立 程 序 是 透 過 已 安 排 的 配 置 傳 遞 與 運 作 的 資 料 來 建 立 此 程 序 Unix 的 程 序 可 視 為 是 一 個 VM 的 概 念, 因 為 它 具 有 許 多 VM 基 本 的 屬 性 Unix 的 VM 透 過 使 用 完 全 相 同 的 shells 來 模 擬 IBM 的 VM 模 型 在 Unix 中 的 使 用 者 shells 可 視 為 獨 立 式 的 VM, 因 為 每 一 個 使 用 者 介 面 是 一 個 有 完 整 硬 體 資 源 的 獨 立 實 體 使 用 者 的 shells 扮 演 一 個 主 協 調 者, 而 主 協 調 者 是 由 相 同 程 序 繁 殖 出 的 新 程 序, 這 個 新 程 序 是 為 了 執 行 使 用 者 shell 的 命 令, 如 圖 2-2 所 示 此 shells 受 限 於 記 憶 體 的 限 制 和 一 些 共 享 資 料 的 協 調 限 制 來 解 決 硬 體 設 備 競 爭 的 議 題 然 而, 在 IBM 模 型 中, 原 則 上 各 使 用 者 shell 之 間 是 隔 離 且 分 開 初 始 程 序 使 用 者 的 Shell 使 用 者 的 Shell 使 用 者 的 Shell 圖 2-2 Unix 的 VM 模 型

Unix 也 具 有 JVM 的 功 能, 因 為 它 透 過 作 業 系 統 的 分 層 設 計 來 使 用 相 同 功 能 平 台 的 函 式 庫, 如 圖 2-3 所 示 Unix 作 業 系 統 的 構 造 可 提 供 一 個 截 然 不 同 的 函 式 庫 服 務 給 使 用 者 運 作 程 序 這 些 提 供 服 務 與 函 式 庫 功 能 是 建 構 在 Unix 作 業 系 統 的 上 一 層 這 樣 標 準 化 的 分 層, 使 得 使 用 者 能 夠 在 不 同 平 台 上 使 用 一 個 標 準 化 的 功 能 來 運 作 該 程 序 使 用 者 的 Shell 標 準 化 的 功 能 函 式 庫 Unix 作 業 系 統 ( 程 序 管 理 記 憶 體 管 理 ) 硬 體 平 台 ( 處 理 器 記 憶 體 磁 碟 ) 圖 2-3 Unix 的 作 業 系 統 分 層 設 計 透 過 VM 技 術 來 支 援 允 許 使 用 者 在 一 個 系 統 上 運 行 多 個 作 業 系 統 的 功 能 性 VM 應 用 隔 離 技 術 將 多 個 不 同 的 作 業 系 統 或 不 同 的 程 序 來 避 開 相 互 之 間 的 干 擾 問 題, 且 對 於 使 用 者 而 言, 能 夠 允 許 在 每 一 個 作 業 系 統 或 程 序 之 間 都 具 有 良 好 的 安 全 性 效 果 VM 也 可 從 一 台 實 際 的 主 機 搬 移 到 另 一 台 實 際 的 主 機, 使 用 者 只 需 將 自 己 的 磁 碟 資 料 搬 移 到 另 一 台 實 際 的 主 機, 具 有 跨 平 台 特 性 VM 是 一 種 不 可 或 缺 的 技 術, 有 了 VM, 我 們 可 以 在 同 一 個 平 台 上 建 構 兩 種 以 上 不 同 的 作 業 系 統, 或 是 允 許 不 同 應 用 程 序 同 時 在 同 一 個 主 機 上 運 作, 這 樣 可 以 減 少 購 買 硬 體 設 備 與 時 間 上 的 成 本 外 也 能 節 省 資 源 在 本 章 節 最 後 將 列 出 一 些 目 前 常 見 的 VM 應 用 軟 體 與 VM 的 相 關 資 訊 來 提 供 讀 者 參 考, 如 表 2-1

表 2-1 目 前 常 見 的 VM 軟 體 名 稱 作 者 主 CPU 客 戶 CPU 主 系 統 客 戶 系 統 許 可 QEMU (kqemu 模 組 ) Fabrice Bellard Intel x86 x86-64 Intel x86 x86-64 經 常 變 化 QEMU (qvm8 6 模 組 ) VMwa re Fusion Xen Virtual Server 2005 R2 VMwa re Server VMwa re Workst ation 6.0 Oracle Virtual Box Paul Brook VMware x86, Intel VT-x 英 國 劍 橋 大 學, Intel, AMD Microsof t Linux FreeBSD OpenBSD Solaris Windows x86 x86 Linux NetBSD Windows x86, x86-64 Intel x86, x86-64 VMware x86, x86-64 VMware x86, x86-64 甲 骨 文 公 司 x86, x86-64, x86, x86-64 x86, x86-64 Intel x86 x86, x86-64 x86, x86-64 x86, ( x86-64 僅 在 Mac OS X (Intel) NetBSD, Linux, Solaris Windows 2003,XP Windows,Linux Windows,Linux Windows,Linux, Mac OS X (Intel), 經 常 變 化 Windows, Linux, Netware, Solaris, 其 他 Linux, Solaris, Windows XP & 2003 Server ( 需 要 3.0 版 和 Vanderpool 或 Pacifica), 九 號 計 畫, FreeBSD Windows NT, 2000, 2003, Linux (Red Hat and SUSE) DOS, Windows, Linux, FreeBSD, Netware, Solaris, 虛 擬 裝 置 DOS, Windows, Linux, FreeBSD, Netware, Solaris, Darwin, 虛 擬 裝 置 DOS, Windows, Linux,OS/2, GPL/LG PL GPL 私 有 GPL 私 有 ( 免 費 ) 私 有 ( 免 費 ) 私 有 GPL v2; 完 整 版 本 中

QEMU Sun xvm Server Fabrice Bellard 及 其 他 軟 體 社 群 昇 陽 電 腦 系 統 公 司 VT-x, AMD- V x86, x86-64, IA-64, PowerP C, Alpha, SPARC 32 and 64, ARM, S/390,M68k x86-64, SPARC VirtualBo x 2 及 x86-64 主 機 上 ) x86, x86-64, ARM, SPARC 32 and 64, PowerPC,MIPS x86-64, SPARC Solaris, FreeBSD Windows,Linux, Mac OS X, Solaris, FreeBSD, OpenBSD,BeOS 無 : 裸 機 執 行 FreeBSD, Solaris 經 常 變 化 Windows XP & 2003 Server ( 僅 x86-64 ), Linux,Solaris 的 額 外 特 性 是 專 有 的 ( 免 費 供 個 人 與 教 育 機 構 使 用 和 評 價 ) GPL/LG PL GPL v3

2.2 虛 擬 機 器 的 歷 史 現 今 電 腦 世 界 的 VM 概 念 已 經 常 被 用 來 解 決 許 多 問 題, 例 如 : 電 腦 程 序 的 可 移 植 性 和 作 業 系 統 的 設 計 問 題 等 從 IBM 模 型 的 劃 分 機 器 到 Java 模 型 來 創 造 一 個 semi-platform 獨 立 式 程 式 語 言 或 者 到 UNIX 模 型 來 創 造 作 業 系 統, 這 些 VM 的 概 念 已 被 證 明 是 現 今 的 電 腦 中 最 具 有 強 大 效 能 的 系 統 工 具 這 個 VM 的 概 念 是 從 1960 年 中 期 才 開 始 有 它 存 在 的 價 值 在 1965 年,IBM 的 研 究 人 員 企 圖 在 計 算 機 科 學 領 域 中 評 估 一 些 新 概 念 的 實 際 成 效 這 些 人 員 都 是 從 IBM Yorktown Research Center 的 研 究 人 員 他 們 設 計 一 個 計 劃, 在 這 個 計 劃 中, 他 們 是 能 夠 將 機 器 劃 分 成 幾 個 小 型 的 機 器 這 些 小 型 的 機 器 需 要 能 夠 管 理 自 己 的 資 源, 使 得 研 究 人 員 能 夠 在 同 一 時 間 透 過 小 型 的 機 器 來 測 試 許 多 不 同 條 件 的 系 統 而 且 這 些 小 型 的 機 器 彼 此 之 間 不 會 受 到 干 擾 影 響 研 究 人 員 認 為 這 樣 如 同 虛 擬 機 器 的 實 現 是 一 個 最 好 的 方 法 在 這 個 實 驗 之 後,IBM 最 後 終 於 發 展 出 一 個 VM 的 概 念 並 實 現 它, 而 且 開 始 銷 售 它 並 作 為 一 個 對 於 多 個 使 用 者 環 境 下 的 真 實 世 界 的 作 業 系 統 許 多 企 業 和 大 學 都 使 用 這 個 作 業 系 統, 因 為 它 可 劃 分 出 許 多 虛 擬 化 的 電 腦 主 機, 並 允 許 所 有 虛 擬 的 電 腦 主 機 可 共 享 有 效 地 資 源 每 一 個 使 用 者 有 自 己 的 VM, 而 且 每 一 個 其 他 的 使 用 者 可 在 沒 有 其 他 使 用 者 的 影 響 下 共 享 資 源 這 主 機 就 是 IBM 的 System370 (S/370) 和 System390 (S/390) VM 的 實 現 已 被 證 明 具 有 相 當 強 大 的 效 能, 所 以 VM 的 概 念 已 經 被 用 來 解 決 許 多 其 它 計 算 上 的 問 題, 例 如 : 電 腦 程 序 的 可 移 植 性 和 作 業 系 統 的 設 計 問 題 等 而 第 一 個 利 用 VM 概 念 來 實 現 並 解 決 這 些 問 題 的 是 UINX 作 業 系 統 UNIX 作 業 系 統 是 在 1974 年 從 公 開 發 表 的 論 文 所 衍 生 的, 是 由 Denise Richie 和 在 貝 爾 實 驗 室 的 Ken Thompson 所 研 發 的 他 們 對 於 UNIX 作 業 系 統 的 想 法 很 迅 速 地 應 用 於 在 大 學 裡 的 PDP-11 電 腦 UNIX 作 業 系 統 也 很 迅 速 地 蔓 延 到 商 業 的 計 算 機 行 業 從 1980 到 1985 年 IEEE 標 準 委 員 會 也 開 始 對 可 移 植 性 作 業 系 統 (Portable Operating System, POSIX) 的 計 劃 提 供 一 個 針 對 UNIX 函 式 庫 功 能 的 標 準 當 時 的

想 法 是 任 何 軟 體 製 造 商 可 使 用 標 準 化 的 函 式 庫 功 能 來 編 寫 程 序 碼 並 且 移 植 到 任 何 UNIX 作 業 系 統 上 在 1990 年,IEEE 的 POSIX 計 劃 也 公 佈 在 Information Technology Portable Operating System Interface 對 於 UNIX 的 Shell 和 使 用 的 例 行 程 序 也 有 特 定 的 標 準, 這 些 對 於 UNIX 應 用 程 序 介 面 的 正 規 化 規 格 能 夠 賦 予 UNIX 程 序 有 獨 立 的 VM 能 力 多 年 來 一 直 困 擾 程 式 開 發 者 的 問 題 就 是 如 何 建 立 真 實 且 可 攜 帶 性 的 計 算 機 程 序 想 法 也 就 是 說, 程 式 開 發 者 只 需 要 編 寫 一 個 程 式 碼, 而 這 個 程 式 碼 就 可 以 在 任 何 作 業 系 統 平 台 上 運 作 這 個 想 法 在 1990 年 中 期, 幾 乎 可 以 用 Java 程 式 語 言 來 創 造 一 個 VM 並 可 實 現 這 個 想 法 事 實 上 Java 程 式 語 言 並 不 是 1990 年 的 新 想 法,Java 程 式 語 言 實 際 上 在 1970 年 後 期 由 Bill Joy 就 已 有 構 想 Joy 與 Sun 公 司 共 同 合 作 而 創 造 一 個 計 算 機 程 式 語 言, 而 這 個 語 言 是 將 MESA 和 C 的 最 佳 功 能 給 合 併 所 誕 生 在 1990 年 底 Joy 寫 了 一 篇 叫 作 Further 的 文 件 給 昇 陽 公 司 的 工 程 師, 此 文 件 內 容 是 概 述 Joy 對 Java 語 言 的 想 法, 並 希 望 Sun 公 司 的 工 程 師 應 該 出 產 一 個 以 C++ 為 基 礎 的 物 件 環 境 James Gosling 大 約 花 幾 個 月 的 時 間, 在 SGML 編 輯 器 上 採 用 C++ 來 進 行 編 輯 Joy 的 想 法, 當 時 完 全 都 只 能 憑 空 想 像, 所 以 被 稱 為 Imagination 最 後 創 造 出 Oak 程 式 語 言 Patrick Naughton 在 1990 年 12 月 5 日 開 始 Green Project,Naughton 對 此 計 算 的 定 義 是 做 更 少 的 事 而 得 到 最 好 的 結 果 當 年 12 月,Naughton 招 募 Gosling 和 Mike Sheridan 來 協 助 啟 動 此 計 劃 Joy 向 他 們 展 示 他 的 文 件 並 且 開 始 使 用 C 語 言 開 始 來 製 作 圖 形 與 使 用 介 面 的 問 題 在 1991 年 4 月 Green Project 是 以 智 慧 型 消 費 者 電 子 作 為 傳 遞 平 台 並 且 Gosling 開 始 大 量 的 應 用 Oak 程 式 語 言 來 開 發 Gosling 使 用 C 語 言 來 撰 寫 原 始 編 譯 器, 而 且 Naughton Gosling 和 Sheridan 也 使 用 C 語 言 來 撰 寫 運 行 時 間 的 直 譯 器 (runtime-interpreter) 在 1991 年 8 月 Oak 首 次 運 行 第 一 個 程 序 到 了 1992 年 10 月, 昇 陽 公 司 的 總 裁 Scott McNealy 向 全 世 界 發 表 應 用 PDA(Personal Digital Assistant) 和 遠 端 控 制 兩 項 技 術 共 同 研 發 的 產 品 在 1993 年 早 期,Green Project 團 隊 聽 說 Time-Warner 提 議 需 要 一 個 機 上 盒

(set-top box) 的 作 業 系 統 當 時 First Person 公 司 迅 速 地 從 智 慧 型 消 費 者 電 子 轉 向 機 上 盒 的 作 業 系 統 市 場, 並 且 與 Time-Warner 競 標 機 上 盒 的 作 業 系 統 巧 合 的 是 Sun 公 司 失 去 此 產 品 的 競 標, 而 First Person 公 司 持 續 地 發 展 機 上 盒 的 工 作, 直 到 1994 年 早 期 到 了 1995 年 Oak 更 名 為 Java 在 1995 年 五 月,Java 開 發 工 具 包 (Java Development Kit, JDK) 1.0 版 本 被 發 佈 自 那 時 之 後, 也 出 現 多 次 修 改 的 JDK 版 本, 直 到 現 今 Java 的 JDK 已 發 佈 到 7.0 版 本 2.3 虛 擬 機 器 的 種 類 VM 根 據 其 使 用 者 的 用 途 與 使 用 程 度 可 分 為 兩 大 類 : 系 統 虛 擬 機 器 (System Virtual Machines) 與 程 序 虛 擬 機 器 (Process Virtual Machines) 系 統 虛 擬 機 器 提 供 所 有 虛 擬 化 的 系 統 平 台 都 具 有 一 個 完 整 性 的 作 業 系 統 平 台, 可 在 此 系 統 平 台 上 執 行 任 何 系 統 程 序 而 程 序 虛 擬 機 器 是 被 設 計 來 完 成 一 個 特 定 的 功 能, 例 如 : 完 成 執 行 單 一 程 序, 也 就 是 說, 程 序 虛 擬 機 器 只 支 援 單 一 程 序 的 運 作 接 下 來, 將 針 對 系 統 虛 擬 機 器 與 程 序 虛 擬 機 器 兩 種 虛 擬 機 器 來 分 別 地 描 述 2.3.1 系 統 虛 擬 機 器 (System Virtual Machines) 系 統 虛 擬 機 器 是 一 種 更 多 動 態 和 更 複 雜 的 虛 擬 機 器 系 統 虛 擬 機 器 有 時 也 被 稱 為 硬 體 的 虛 擬 機 器, 而 且 它 有 虛 擬 化 硬 體 相 關 聯 性 系 統 虛 擬 機 器 提 供 一 個 完 整 系 統 平 台, 這 個 系 統 平 台 是 為 了 支 援 一 個 完 整 地 作 業 系 統 的 運 作 與 執 行 因 為 在 相 同 的 系 統 上 需 考 量 到 在 不 同 VM 之 間 實 體 資 訊 與 實 體 機 器 的 資 源 共 享, 使 得 每 一 個 機 器 可 透 過 VM 技 術, 能 夠 擁 有 自 己 的 作 業 系 統 系 統 虛 擬 機 器 的 優 勢 在 於 可 使 用 多 個 VM 作 業 系 統 共 存, 而 且 在 相 同 的 電 腦 上 這 些 共 存 的 VMs 是 完 全 獨 立 地 且 不 需 依 靠 其 它 VM 的 資 源 及 可 運 作 系 統 虛 擬 機 器 也 可 使 用 VM 技 術 來 備 份 資 料, 以 提 供 資 料 恢 復 與 預 防 訊 息 丟 失 這 些 系 統 虛 擬 機 器 最 常 用 在 所 謂 的 服 務 器 整 合 上, 不 同 的 服 務 可 運 作 在 系 統 虛 擬 機 器 上 來 代 替 不 同 獨 立 的 機

器 對 於 系 統 虛 擬 機 器 的 優 缺 點 將 呈 列 於 下 列 幾 點 : 系 統 虛 擬 機 器 的 優 點 多 重 作 業 系 統 環 境 可 共 存 在 相 同 的 電 腦 硬 體 上, 且 每 一 個 作 業 系 統 之 間 是 獨 立 的, 在 執 行 期 間 的 程 序 是 不 會 互 相 影 響 的 VM 提 供 一 個 指 令 集 架 構 (Instruction Set Architecture), 這 個 ISA 與 實 際 主 機 是 有 些 不 同 的 VM 具 有 應 用 程 序 的 配 置 維 護 高 可 用 性 和 還 原 機 制 特 性 系 統 虛 擬 機 器 的 缺 點 當 VM 間 接 地 存 取 電 腦 硬 體 時,VM 的 效 能 低 於 實 際 主 機 當 多 重 VM 同 時 地 運 作 在 相 同 實 際 主 機 上 時, 每 一 個 VM 可 能 會 出 現 不 穩 定 地 效 能, 像 是 : 執 行 速 度, 但 不 會 影 響 到 整 體 的 執 行 結 果 在 多 重 VM 的 環 境 中, 每 一 個 VM 都 運 作 在 自 己 擁 有 的 作 業 系 統 上, 此 稱 為 客 端 作 業 系 統 (Guest Operating System) 在 這 樣 的 情 況 下 是 經 常 使 用 到 服 務 器 整 合 不 同 的 服 務 器 是 使 用 於 獨 立 式 的 機 器 上 來 運 作, 以 避 免 VMs 之 間 在 執 行 的 干 擾 問 題, 而 不 是 在 單 獨 的 VM 上 運 作 在 同 一 台 實 際 主 機 上 運 作 多 重 作 業 系 統 的 目 的 是 開 發 VM 的 主 要 動 機, 因 為 VM 在 幾 個 單 一 任 務 的 作 業 系 統 之 間 允 許 共 享 單 一 電 腦 的 程 序 執 行 時 間 在 某 些 方 面, 系 統 虛 擬 機 器 被 認 為 是 一 個 一 般 化 虛 擬 記 憶 體 技 術 的 概 念 IBM 的 CP/CMS 是 第 一 部 允 許 全 虛 擬 化 的 系 統 每 一 個 使 用 者 提 供 一 個 單 一 使 用 者 作 業 系 統 來 實 現 分 時 技 術 不 同 於 虛 擬 記 憶 體, 系 統 虛 擬 機 器 允 許 使 用 者 使 用 自 己 的 特 權 指 令 代 碼 (privileged instructions code) 這 樣 方 法 有 某 些 優 點, 例 如 : 不 需 要 標 準 體 系 的 允 許 下, 允 許 使 用 者 自 行 加 入 輸 入 / 輸 出 設 備 客 戶 端 的 作 業 系 統 可 在 相 同 的 電 腦 上 運 作 不 同 的 作 業 系 統, 例 如 : Microsoft Windows Linux 或 是 更 舊 版 本 的 作 業 系 統 使 用 VM 可 支 援 不 同 客 戶

端 的 作 業 系 統 運 作 在 嵌 入 式 系 統 上, 此 方 式 依 目 前 VM 技 術 的 演 進 過 程, 是 越 來 越 受 歡 迎 的 一 項 技 術 因 為 透 過 系 統 虛 擬 機 器 所 提 供 的 功 能 性, 以 便 達 成 多 個 VM 作 業 系 統 共 存 資 源 共 享 高 可 移 植 性 與 還 原 機 制 特 性 的 成 效 2.3.2 程 序 的 虛 擬 機 器 (Process Virtual Machines) 程 序 虛 擬 機 器 因 只 支 援 單 一 程 序 的 執 行, 所 以 又 稱 為 應 用 程 式 虛 擬 機 器 (Application Virtual Machine) 程 序 虛 擬 機 器 可 在 主 機 的 作 業 系 統 內 部 運 作 一 個 正 規 化 的 應 用 程 序, 並 支 援 單 一 程 序 的 執 行 程 序 虛 擬 機 器 的 目 的 是 提 供 一 個 獨 立 式 編 製 程 序 環 境 的 平 台, 這 個 獨 立 式 編 製 程 序 是 一 個 抽 象 化 底 層 硬 體 或 作 業 系 統 的 詳 細 資 訊 並 以 相 同 方 式 允 許 在 任 何 平 台 上 運 作 程 序 虛 擬 機 器 提 供 一 個 高 層 次 的 抽 象 化 (high-level abstraction), 這 個 高 層 的 抽 象 化 是 一 種 高 層 的 編 製 程 序 ( 系 統 虛 擬 機 器 是 屬 於 低 層 的 ISA 抽 象 化 ) 程 序 虛 擬 機 器 是 使 用 直 譯 器 (interpreter) 來 實 現, 透 過 即 時 編 譯 的 使 用 性 可 達 成 媲 美 編 譯 程 序 語 言 的 效 能 程 序 虛 擬 機 器 已 經 成 為 Java 程 式 語 言 的 主 流 Java 已 使 用 Java 虛 擬 機 來 實 現 另 外 像 是 微 軟 的.NET Framework 所 使 用 的 虛 擬 機 器 叫 作 Common Language Runtime (CLR) 程 序 虛 擬 機 器 的 特 定 案 例 是 電 腦 叢 集 通 信 機 制 的 抽 象 化 系 統 例 如 : 一 個 VM 不 會 由 單 一 程 序 來 組 成, 而 是 每 一 個 實 體 機 器 的 程 序 組 成 一 個 叢 集 來 執 行 這 樣 的 設 計 理 念 可 透 過 程 式 開 發 人 員 著 重 於 演 算 法 使 得 減 緩 編 製 程 序 平 行 應 用 程 式 的 任 務, 而 不 是 透 過 與 作 業 系 統 互 連 來 提 供 溝 通 機 制 程 序 虛 擬 機 器 的 設 計 只 有 支 援 一 個 單 一 程 序 而 且 也 只 能 執 行 單 一 程 序, 而 不 是 系 統 虛 擬 機 器 能 夠 提 供 多 個 完 整 的 系 統 平 台 程 序 虛 擬 機 器 有 時 也 稱 為 應 用 程 序 虛 擬 機 器 程 序 虛 擬 機 器 主 要 的 目 的 是 提 供 一 個 獨 立 式 的 編 製 程 序 環 境 平 台, 此 平 台 能 夠 採 取 從 底 層 的 作 業 系 統 或 硬 體 的 細 節 來 允 許 單 一 程 序 以 同 樣 的 方 來 執 行 其 任 務 透 過 系 統 虛 擬 機 器 與 程 序 虛 擬 機 器 兩 種 虛 擬 機 器 種 類 的 輔 助, 有 助 於 虛 擬 機 器 技 術 的 成 效, 無 論 是 多 個 VM 作 業 系 統 共 享 真 實 電 腦 硬 體 資 源 的 共 享 或 是 應 用 程 序 的 處 理 等, 都 可 藉 由 系 統 虛 擬 機 器 與 程 序 虛 擬 機 器 相 互 協 助 下 來 實 現 虛 擬 機 器 的 技 術

2.4 虛 擬 化 的 介 紹 虛 擬 化 是 電 腦 硬 體 資 源 的 抽 象 化 這 是 一 個 通 用 的 定 義 虛 擬 化 是 指 運 行 一 個 虛 擬 系 統, 這 個 虛 擬 系 統 由 內 而 外 看 似 一 個 完 整 且 真 實 的 計 算 機, 但 實 際 上 這 個 虛 擬 系 統 是 模 擬 出 一 個 真 實 的 機 器 然 而, 在 現 代 虛 擬 化 產 品 廣 泛 的 使 用, 不 論 是 對 硬 體 或 軟 體 虛 擬 化 的 定 義 就 會 有 很 多 種 不 同 的 定 義 為 什 麼 要 使 用 虛 擬 化 使 用 虛 擬 化 最 主 要 是 考 慮 到 硬 體 資 源 的 成 本 與 可 移 植 性 最 常 見 的 情 況 是 提 供 客 戶 或 使 用 者 擁 有 自 己 的 系 統, 而 這 個 系 統 可 以 支 援 所 有 服 務 的 控 制 與 硬 體 存 取, 這 些 系 統 都 是 採 用 虛 擬 化 技 術 來 實 現 一 個 真 實 的 計 算 機, 因 而 不 需 要 實 質 的 額 外 成 本 單 一 實 體 機 器 可 承 載 多 個 虛 擬 系 統, 每 一 個 虛 擬 機 器 都 可 取 得 部 份 的 主 記 憶 體 空 間 磁 碟 空 間 和 CPU 資 源 每 一 個 虛 擬 系 統 在 相 同 的 主 機 系 統 上, 彼 此 之 間 是 受 保 護 的 且 是 獨 立 的 個 體, 因 而 不 會 相 互 干 擾 對 方 由 於 許 多 應 用 程 序 或 客 戶 並 不 需 要 完 整 使 用 到 真 實 系 統 的 CPU 記 憶 體 或 是 磁 碟 容 量, 因 此 可 透 過 虛 擬 化 技 術 將 在 單 一 實 體 系 統 上 多 餘 的 資 源 分 配 給 其 他 虛 擬 系 統 使 用 有 高 度 的 安 全 性, 透 過 這 樣 的 方 式 可 以 提 昇 資 源 使 用 效 率 虛 擬 化 另 一 個 優 勢 是 能 夠 輕 易 地 在 真 實 主 機 之 間 移 動 虛 擬 系 統, 且 在 移 動 過 程 中 無 需 中 斷 或 重 新 安 裝 應 用 程 序 因 此 虛 擬 化 技 術 也 具 有 可 移 植 性 通 常 地 作 法 是 在 原 本 虛 擬 機 器 上 將 資 料 備 份 之 後, 再 將 資 料 移 植 到 另 一 台 真 實 主 機 上, 即 可 馬 上 使 用 例 如 : 假 設 在 真 實 主 機 系 統 上 檢 測 出 硬 體 發 生 錯 誤 而 無 法 使 用 的 的 話, 此 時, 在 這 個 真 實 主 機 系 統 上 的 所 有 虛 擬 機 可 移 植 到 另 一 台 新 的 主 機, 而 且 這 個 過 程 不 需 改 變 其 IP 地 址 或 是 其 他 相 關 設 定 這 個 優 勢 對 於 使 用 者 或 程 式 開 發 者 而 言 是 一 件 非 常 省 事 又 省 時 間 的 優 點 下 面 將 列 出 一 些 使 用 虛 擬 化 的 好 處 與 理 由 :

虛 擬 機 器 可 整 合 主 機 上 無 法 妥 善 地 分 配 且 使 用 的 資 源, 以 達 到 資 源 共 享 虛 擬 化 具 有 節 省 硬 體 環 境 的 成 本 應 用 程 序 與 主 機 資 源 的 管 理 以 及 服 務 器 基 礎 設 備 的 整 合 管 理 可 在 虛 擬 機 器 上 有 效 地 運 行 舊 式 的 應 用 程 序 在 過 去 已 久 所 遺 留 下 來 的 應 用 程 序 可 能 根 本 沒 有 支 援 新 式 的 硬 體 或 是 作 業 系 統 上 的 運 作, 可 透 過 虛 擬 化 技 術 來 模 擬 出 一 個 符 合 舊 式 應 用 程 序 可 執 行 的 虛 擬 機 器 來 執 行 虛 擬 機 器 可 應 用 於 創 建 多 個 作 業 系 統 或 是 應 用 程 序, 並 同 時 執 行 某 些 執 行 程 序 由 於 這 些 虛 擬 機 器 都 是 獨 立 式 的 作 業 環 境, 所 以 彼 此 之 間 不 會 互 相 干 擾 各 自 的 執 行 過 程, 因 此 虛 擬 機 器 提 供 一 個 安 全 性 高 且 可 靠 性 高 的 虛 擬 化 環 境 虛 擬 機 器 可 提 供 硬 體 的 抽 象 化 或 是 硬 體 配 置, 透 過 虛 擬 化 來 摸 擬 出 獨 立 的 電 腦 網 路 虛 擬 機 器 提 供 強 大 地 除 錯 能 力 與 效 能 監 測 你 可 以 應 用 虛 擬 機 器 監 視 器 等 工 具 來 完 成 這 項 功 能 透 過 這 樣 方 式, 作 業 系 可 以 進 行 調 整 而 不 會 失 去 生 產 力 虛 擬 機 器 支 援 資 料 備 份 系 統 重 新 恢 復 與 資 料 可 移 植 到 其 它 平 台 上 的 功 能, 透 過 這 樣 的 方 式, 可 提 高 應 用 程 序 和 系 統 的 移 動 性 你 可 把 每 一 個 在 虛 擬 機 器 中 運 作 的 應 用 程 序 包 裝 成 一 個 應 用 套 件 虛 擬 機 器 對 於 研 究 與 學 術 實 驗 單 位 是 一 個 很 偉 大 的 軟 體 工 具 虛 擬 化 可 讓 現 有 的 作 業 系 統 上 運 行 共 享 內 部 記 憶 體 與 處 理 器 虛 擬 機 器 可 應 用 於 創 建 任 何 測 試 環 境, 並 可 導 致 一 些 極 富 豐 的 想 像 空 間 與 有 效 的 品 質 保 證

虛 擬 化 是 一 件 有 趣 的 發 展 技 術 虛 擬 化 的 類 型 並 非 所 有 虛 擬 化 技 術 都 是 相 同 的, 有 些 提 供 在 系 統 之 間 有 更 多 的 虛 擬 系 統, 這 些 虛 擬 系 統 之 間 都 是 獨 立 的, 但 需 要 有 額 外 的 CPU 和 記 憶 體 的 成 本 開 銷 上, 例 如 :Xen 的 虛 擬 化 機 器 而 有 些 是 在 每 一 個 實 體 系 統 上 用 來 承 載 更 多 的 虛 擬 系 統, 但 這 類 的 虛 擬 化 技 術 會 有 更 多 中 斷 跨 系 統 之 間 的 機 率 虛 擬 化 的 類 型 大 致 可 分 為 兩 種 : 獨 立 式 系 統 核 心 (Separate Kernel) 獨 立 式 系 統 核 心 的 虛 擬 化 類 型, 例 如 :Xen 和 KVM 等 這 種 類 型 的 虛 擬 機 器 是 每 一 個 虛 擬 系 統 都 運 作 在 單 獨 的 系 統 核 心 中, 而 且 實 際 上 這 類 型 的 虛 擬 機 器 是 將 系 統 檔 案 儲 存 在 磁 碟 映 像 (disk image) 或 是 邏 輯 磁 碟 (logical volume), 並 不 是 儲 存 在 主 機 系 統 上 的 檔 案 系 統 且 這 種 類 型 的 虛 擬 機 器, 其 記 憶 體 的 使 用 權 設 定 較 高, 那 是 因 為 對 於 每 一 個 系 統 都 需 要 執 行 在 如 同 主 機 系 統 核 心 的 虛 擬 系 統 核 心, 這 些 動 作 都 需 要 記 憶 體 來 協 定 才 能 運 作, 而 且 可 用 的 磁 碟 空 間 和 記 憶 體 都 是 獨 立 開 來 的, 不 能 與 其 他 虛 擬 系 統 共 同 使 用 共 享 的 系 統 核 心 (Shared Kernel) 共 享 的 系 統 核 心 的 虛 擬 化 類 型, 例 如 :OpenVZ 和 LXC 等 這 種 類 型 的 虛 擬 機 器 是 運 作 在 主 機 系 統 上 的 系 統 核 心 這 個 系 統 核 心 在 系 統 之 間 提 供 檔 案 系 統 和 獨 立 式 的 程 序 通 常 每 一 個 系 統 的 檔 案 文 件 都 是 儲 存 在 主 機 的 檔 案 目 錄 下, 而 且 每 一 個 系 統 之 間 經 常 以 二 進 制 的 檔 案 文 件 來 共 享 這 種 類 型 的 虛 擬 機 器 提 供 共 享 資 源 的 方 式, 所 以 在 同 一 個 系 統 核 心 中, 每 一 個 虛 擬 機 器 使 用 資 源 時, 可 能 會 發 生 干 擾 的 影 響 這 樣 虛 擬 系 統 之 間 都 是 共 享 系 統 核 心 資 源, 所 以 不 需 要 有 額 外 的 CPU 和 記 憶

體 的 成 本 開 銷 同 時, 記 憶 體 和 磁 碟 空 間 有 可 能 因 為 共 享 的 方 式 而 過 度 使 用 導 致 整 體 系 統 負 載 嚴 重, 這 方 面 的 問 題, 在 虛 擬 化 技 術 中 有 更 好 的 方 式 來 使 用 主 機 系 統 上 的 資 源 透 過 虛 擬 化 技 術 可 將 電 腦 硬 體 資 源 抽 象 化, 並 模 擬 出 多 個 虛 擬 化 的 作 業 系 統 與 應 用 程 序 在 虛 擬 化 平 台 上 運 作 應 用 虛 擬 化 技 術 的 特 性 之 一, 將 多 個 虛 擬 機 器 分 別 以 獨 立 的 形 式 共 存 在 一 部 電 腦 主 機 上, 且 彼 此 之 間 在 執 行 程 序 時 不 會 互 相 干 擾 彼 此 之 間 的 執 行 結 果, 而 能 夠 達 成 硬 體 資 源 共 享 且 節 省 成 本 與 整 個 系 統 的 安 全 性, 同 時, 在 系 統 上 的 個 別 資 料 也 可 透 過 虛 擬 化 技 術 達 成 資 料 備 分 與 資 料 容 易 移 植 到 另 一 平 台 上 的 可 移 植 性 因 此 虛 擬 化 技 術 的 發 展, 對 於 計 算 機 科 學 而 言 是 一 項 非 常 重 要 的 技 術 發 展, 特 別 是 對 於 研 究 機 構 或 學 術 單 位 而 言, 更 是 節 省 了 不 少 的 時 間 與 成 本, 而 達 到 良 好 的 生 產 力 效 益

2.5 虛 擬 化 的 服 務 在 本 章 節 中, 將 描 述 一 些 有 關 於 虛 擬 化 目 前 常 見 那 些 功 能 支 援, 包 含 硬 體 桌 面 軟 體 記 憶 體 儲 存 裝 置 資 料 與 網 路 等 虛 擬 化 的 功 能 硬 體 (Hardware) 硬 體 虛 擬 化 或 虛 擬 化 平 台 是 提 供 虛 擬 機 器 的 創 造, 而 這 個 虛 擬 機 器 扮 演 類 似 一 個 有 作 業 系 統 的 真 實 計 算 機 這 些 虛 擬 機 器 是 從 底 層 的 硬 體 資 源 上 各 別 運 作 軟 體 例 如 : 在 一 個 運 作 微 軟 Windows 作 業 系 統 的 電 腦 上 運 作 一 個 虛 擬 機 器, 而 這 個 虛 擬 機 器 是 運 作 Ubuntu Linux 作 業 系 統 的 電 腦, 透 過 虛 擬 化 技 術 可 以 在 Windows 作 業 系 統 的 電 腦 上 執 行 Ubuntu Linux 作 業 系 統 的 畫 面 在 硬 體 虛 擬 化 中, 是 在 一 個 真 實 的 主 機 上 運 作 一 個 虛 擬 化 的 工 作, 而 且 客 戶 端 是 一 個 虛 擬 機 器 主 機 與 客 戶 端 是 用 來 區 分 從 執 行 在 虛 擬 機 器 上 的 軟 體 運 行 在 真 實 的 機 器 上 的 軟 體 創 建 在 主 機 硬 體 上 的 一 個 虛 擬 機 器 軟 體 或 韌 體 被 稱 為 是 一 個 管 理 程 序 或 虛 擬 機 監 控 者 硬 體 虛 擬 化 包 含 : 完 全 虛 擬 化 (Full Virtualization) 完 全 虛 擬 化 是 指 幾 乎 完 全 模 擬 一 個 真 實 地 硬 體 來 運 作 軟 體, 它 通 常 是 一 個 客 戶 端 作 業 系 統 上 運 行 軟 體, 無 需 要 對 系 統 設 定 作 任 何 修 改, 例 如 :VMware Workstation 微 軟 的 Hypervisor 等 半 虛 擬 化 (Paravirtualization Virtualization) 半 虛 擬 化 是 指 虛 擬 機 器 所 需 服 務 可 以 直 接 通 過 本 地 作 業 系 統 取 得, 毋 需 藉 由 模 擬 軟 體, 所 以 效 率 可 以 因 此 提 升 但 是 使 用 半 虛 擬 化 來 運 作 軟 體 時, 真 實 的 電 腦 系 統 只 提 供 部 份 硬 體 的 虛 擬 化 功 能 來 支 援 軟 體 的 運 作, 並 無 法 像 完 全 虛 擬 化 的 方 式 能 夠 創 建 一 個 完 整 硬 體 虛 擬 環 境 電 腦 系 統 若 使 用 半 虛 擬 化 來 運 作 軟 體 時, 必 須 針 對 系 統 核 心 進 行 修 改 與 設 定

才 能 順 利 的 安 裝 與 執 行, 例 如 : 早 期 的 Xen 現 今 的 虛 擬 機 器 較 少 應 用 此 類 型 硬 體 輔 助 虛 擬 化 (Hardware-Assisted Virtualization, HAV) 硬 體 輔 助 虛 擬 化 是 改 善 硬 體 虛 擬 化 效 能 的 方 法 硬 體 輔 助 虛 擬 化 牽 涉 到 特 定 設 計 的 CPUs 和 硬 體 元 件, 這 些 都 是 有 助 於 改 善 客 戶 端 環 境 的 效 能 桌 面 虛 擬 化 (Desktop Virtualization) 桌 面 虛 擬 化 是 從 真 實 機 器 中 建 立 一 個 獨 立 式 邏 輯 性 的 桌 面 概 念 桌 面 虛 擬 化 的 一 種 形 式 是 虛 擬 桌 面 基 礎 架 構 (Virtual Desktop Infrastructure, VDI),VDI 被 視 為 是 一 個 更 先 進 的 硬 體 虛 擬 化 形 式, 而 不 是 直 接 與 主 機 電 腦 透 過 鍵 盤 滑 鼠 和 監 控 來 互 相 溝 通 使 用 者 的 互 動 是 使 用 其 他 桌 面 電 腦 和 行 動 設 備 透 過 網 路 互 相 連 接 另 一 個 桌 面 虛 擬 化 的 形 式 叫 作 會 話 虛 擬 化 (session virtualization) 在 多 個 使 用 者 登 入 到 電 腦 系 統 的 桌 面 時, 會 話 虛 擬 化 允 許 多 個 使 用 者 互 相 連 接 並 共 享 網 路, 而 且 每 一 個 使 用 者 擁 有 自 己 的 桌 面 和 個 人 資 料 文 件 夾, 以 便 於 使 用 者 能 夠 儲 存 他 們 的 檔 案 文 件 資 料 在 桌 面 虛 擬 化 中 的 精 簡 型 客 戶 端 是 一 個 簡 單 和 或 是 廉 價 的 設 計, 它 主 要 是 透 過 網 路 來 連 接 其 它 電 腦 並 執 行 某 些 應 用 程 序, 但 它 顯 明 地 缺 乏 硬 體 儲 存 空 間 與 RAM, 甚 至 是 即 時 處 理 能 力 透 過 桌 面 虛 擬 化 的 功 能 可 讓 自 己 的 電 腦 桌 面 與 其 它 人 不 同, 可 自 行 創 造 一 個 擁 有 自 己 特 色 且 獨 一 無 二 的 虛 擬 桌 面 介 面, 例 如 : 現 在 智 慧 型 手 機 都 支 援 五 彩 繽 紛 且 炫 麗 獨 特 的 桌 面, 或 是 微 軟 Windows 7 支 援 視 覺 化 且 美 觀 的 圖 形 桌 面

軟 體 (Software) 作 業 系 統 層 級 的 虛 擬 化 (Operating System-Level Virtualization) 作 業 系 統 層 級 的 虛 擬 化 是 服 務 器 虛 擬 化 作 業 系 統 的 系 統 核 心 來 實 現 允 許 多 個 互 相 獨 立 的 使 用 者 空 間 的 方 式 在 這 個 情 況 下, 以 擁 有 者 的 角 度 來 看, 它 可 能 看 起 來 與 感 覺 起 來 像 是 一 個 真 正 的 電 腦 主 機 在 Unix 系 統 上, 這 項 技 術 可 被 認 為 是 一 個 實 現 進 階 標 準 的 chroot 機 制 應 用 程 式 虛 擬 化 (Application virtualization) 應 用 程 式 虛 擬 化 是 用 來 描 述 軟 體 技 術, 它 可 從 底 層 作 業 系 統 來 改 善 應 用 程 序 執 行 時 的 可 攜 性 可 管 理 性 和 應 用 程 多 的 相 容 性 透 過 虛 擬 化 技 術 可 以 讓 正 在 運 作 時 的 應 用 程 序 被 迷 惑 地 相 信 有 直 接 地 原 始 作 業 系 統 和 所 有 資 源 管 理 可 以 使 用 工 作 區 虛 擬 化 (Workspace Virtualization) 工 作 區 虛 擬 化 是 一 個 將 應 用 程 序 分 發 到 客 戶 端 計 算 機 上 使 用 應 用 程 式 虛 擬 化 的 方 式, 然 而, 它 也 將 多 個 應 用 程 序 組 合 成 一 個 完 整 的 工 作 區 這 是 一 種 封 裝 和 隔 離 整 個 計 算 的 工 作 區 在 最 低 限 度 中, 工 作 區 由 一 些 作 業 系 統 內 的 組 成, 包 含 應 用 程 序 資 料 設 定 和 任 何 非 特 權 的 作 業 系 統 的 需 求 來 提 供 一 個 功 能 性 桌 面 計 算 機 環 境 子 系 統 此 外, 工 作 區 包 含 應 用 程 序 的 設 定 與 使 用 者 資 料, 使 用 者 可 移 植 到 一 個 不 同 作 業 系 統 或 不 同 主 機 電 腦 上, 並 仍 然 保 持 在 一 個 完 整 性 的 工 作 單 位 應 用 程 序 對 於 更 深 的 工 作 區 虛 擬 化 而 言, 透 過 一 個 系 統 核 心 模 式 的 工 作 區 虛 擬 化 引 擎 (Workspace Virtualization Engine, WVE) 和 完 整 性 作 業 系 統 的 子 系 統 來 實 現 虛 擬 化 特 權 的 代 碼 模 組

記 憶 體 虛 擬 化 (Memory Virtualization) 在 計 算 機 科 學 中, 記 憶 體 虛 擬 化 是 從 個 別 系 統 的 資 料 中 心 來 分 離 出 揮 發 性 隨 機 存 取 記 憶 體 (Random Access Memory, RAM) 的 資 源, 而 且 這 些 資 源 將 聚 集 在 虛 擬 化 的 記 憶 體 區 塊 中 並 有 效 地 提 供 在 叢 群 中 的 任 何 其 它 電 腦 使 用 記 憶 體 區 塊 是 由 作 業 系 統 或 是 執 行 在 作 業 系 統 上 的 應 用 程 序 來 存 取 使 用 的 分 散 式 記 憶 體 區 塊 可 以 應 用 於 高 速 快 取 訊 息 層 或 對 於 CPU 或 GPU 的 應 用 程 序 有 共 享 記 憶 體 資 源 的 使 用 儲 存 裝 置 (Storage) 儲 存 虛 擬 化 (Storage virtualization) 是 一 個 使 用 在 計 算 機 科 學 中 的 概 念 具 體 來 說, 儲 存 系 統 可 以 使 用 虛 擬 化 概 念 作 為 一 個 工 具, 以 便 於 有 更 好 地 儲 存 系 統 的 功 能 性 和 更 進 階 地 功 能 從 廣 義 上 來 說, 一 個 儲 存 系 統 也 被 稱 為 儲 存 陣 列 一 個 磁 碟 陣 列 或 是 一 個 檔 案 管 理 者 儲 存 系 統 實 際 上 對 於 電 腦 和 資 料 的 處 理 是 使 用 特 定 地 硬 體 和 軟 體 的 磁 碟 驅 動 器, 以 提 供 非 常 快 速 和 可 靠 的 儲 存 儲 存 系 統 是 一 個 複 雜 的 系 統, 而 且 可 能 被 認 為 是 一 個 特 定 電 腦 而 設 計 的, 以 提 供 有 進 階 資 源 保 護 功 能 的 儲 存 容 量 空 間 磁 碟 驅 動 器 只 有 一 個 儲 存 系 統 的 元 素, 且 伴 隨 著 硬 體 和 有 系 統 內 的 特 定 嵌 入 式 軟 體 的 用 途 儲 存 系 統 可 提 供 區 塊 存 取 儲 存 (block accessed storage) 或 檔 案 存 取 儲 存 (file accessed storage) 區 塊 存 取 實 際 上 是 傳 輸 在 光 纖 通 道 (Fibre Channel) iscsi FICON 或 是 其 它 協 定 檔 案 存 取 通 常 是 提 供 使 用 NFS 或 CIFS 協 定 在 儲 存 系 統 中, 有 兩 種 主 要 類 型 的 虛 擬 化 : 區 塊 虛 擬 化 (Block Virtualization) 在 區 塊 虛 擬 化 的 情 況 下 是 從 實 體 儲 存 來 提 供 邏 輯 儲 存 的 抽 象 化, 以 便 區 塊 虛 擬 化 可 能 沒 有 實 體 儲 存 或 異 質 結 構 方 面 的 存 取 這 樣 的 模 式 允 許 儲 存 系 統 的 管 理 員 有 最 大 的 靈 活 度, 以 方 便 使 用 者 管 理 存 儲

檔 案 虛 擬 化 (File Virtualization) 檔 案 虛 擬 化 提 供 一 個 優 化 儲 存 使 用 和 服 務 器 的 整 合 並 且 在 沒 有 破 壞 性 的 威 脅 下 執 行 檔 案 的 搬 動 分 散 式 檔 案 系 統 在 計 算 機 科 學 中, 分 散 式 檔 案 系 統 或 網 路 檔 案 系 統 都 是 允 許 多 個 主 機 透 過 計 算 機 網 路 來 共 享 檔 案 存 取 的 檔 案 系 統 使 得 在 多 個 機 器 上 的 多 個 使 用 者 可 能 共 享 檔 案 和 儲 存 資 源 分 散 式 檔 案 系 統 可 以 提 供 透 通 複 製 (transparent replication) 與 容 錯 能 力 也 就 是 說, 在 一 個 分 散 式 檔 案 系 統 如 有 如 有 節 點 無 法 存 取 時, 這 個 系 統 仍 然 可 以 繼 續 地 運 作, 而 且 不 會 有 任 何 資 源 的 遺 失 在 分 散 式 檔 案 系 統 和 分 散 式 資 源 儲 存 之 間 是 容 許 不 明 確 的 定 義, 但 在 本 地 區 域 網 路 上 一 般 是 比 較 適 合 使 用 分 散 式 檔 案 系 統 的 儲 存 裝 置 型 態 儲 存 虛 擬 化 管 理 程 序 在 計 算 機 科 學 中, 儲 存 虛 擬 化 管 理 程 序 是 一 種 方 便 攜 帶 式 的 軟 體 程 序, 是 運 作 在 一 個 實 體 硬 體 的 平 台 它 可 與 虛 擬 機 器 監 視 器 共 存, 或 是 獨 佔 控 制 整 個 平 台 方 便 攜 帶 式 的 儲 存 虛 擬 化 管 理 程 序 是 指 它 具 有 靈 活 度, 可 在 不 同 的 系 統 平 台 上 獨 立 運 作 同 時, 儲 存 虛 擬 化 管 理 程 序 也 是 一 個 集 中 管 理 地 監 控 軟 體 程 序, 提 供 一 套 全 面 性 的 儲 存 控 制 和 監 視 功 能 資 料 虛 擬 化 資 料 虛 擬 化 透 過 單 一 資 料 存 取 層 來 抽 象 化 地 描 述 不 同 的 資 料 來 源, 包 含 : 資 料 庫 應 用 程 序 檔 案 資 料 庫 網 站 或 是 資 料 服 務 商 等 這 個 概 念 與 軟 體 通 常 用 於 資 料 收 集 商 業 情 報 以 服 務 為 導 向 的 資 料 服 務 架 構 雲 端 計 算 企 業 搜 索 主 資 料 管 理 和 虛 擬 主 資 料 管 理

網 路 虛 擬 化 在 計 算 機 科 學 中, 網 路 虛 擬 化 是 一 個 單 一 程 序, 而 此 單 一 程 序 結 合 硬 體 和 軟 體 的 網 路 資 源 和 網 路 功 能 的 特 性 網 路 虛 擬 化 牽 涉 到 平 台 的 虛 擬 化, 通 常 與 資 源 虛 擬 化 互 相 結 合 來 應 用 網 路 虛 擬 化 無 論 是 外 部 或 是 內 部 在 虛 擬 單 元 中 結 合 許 多 網 路 或 是 部 份 網 路 都 是 在 單 一 系 統 上 提 供 網 路 功 能 無 論 是 內 部 或 外 部 的 虛 擬 化 都 取 決 於 供 應 廠 商 所 提 供 支 援 的 技 術 2.6 虛 擬 化 在 本 章 節 中, 我 們 將 描 述 有 關 於 一 些 虛 擬 化 技 術 的 型 態, 其 中 有 關 這 些 虛 擬 化 技 術 的 型 態 包 含 完 全 虛 擬 化 技 術 部 份 虛 擬 化 技 術 半 虛 擬 化 技 術 以 及 硬 體 輔 助 虛 擬 化 技 術 2.6.1 完 全 虛 擬 化 在 計 算 機 科 學 中, 完 全 虛 擬 化 (Full Virtualization) 是 用 來 模 擬 一 個 完 整 地 硬 體 環 境, 或 是 虛 擬 機 器 這 個 完 整 地 硬 體 環 境 是 完 全 與 其 它 虛 擬 機 器 之 間 都 是 獨 立 式 的 情 況 下 來 對 一 個 未 修 改 過 的 客 戶 端 作 業 系 統 來 運 行, 且 是 在 相 同 主 機 上 使 用 相 同 指 令 集 例 如 :VMware Workstation 微 軟 的 Hypervisor 等 完 全 虛 擬 化 已 實 現 在 第 一 代 x86 的 虛 擬 機 器 監 視 器 (Virtual Machine Monitor, VMM) 現 在 眾 所 皆 知 的 完 全 虛 擬 化 的 商 業 化 實 現, 如 :VirtualBox VMware Workstation 與 甲 骨 文 Virtual 等 等 完 全 虛 擬 化 是 需 要 每 一 個 硬 體 顯 著 的 特 性 對 映 到 多 個 虛 擬 機 器 中, 包 含 : 完 整 的 指 令 集 輸 入 / 輸 出 操 作 中 斷 向 量 記 憶 體 存 取 以 及 任 何 其 它 元 素, 這 些 的 使 用 方 式 都 是 在 裸 機 (bare machine) 上 來 運 作 軟 體, 也 就 是 說, 都 是 運 作 在 虛 擬 機 器 上 在 完 全 虛 擬 化 的 環 境 中, 在 原 始 硬 體 上 執 行 任 何 一 個 軟 體 功 能 都 可 以 在 虛 擬 機 器 中 運 作, 特 別 是 任 何 作 業 系 統 有 一 個 重 要 的 完 全 虛 擬 化 例 子 就 是 IBM 的 CP/CMS 作 業 系 統 的 控 制 程 序 IBM 的 CP-40 研 究 系 統 首 次 發

表 在 1967 年, 然 後, 在 1967 到 1972 年, 才 經 由 CP/CMS 的 開 放 式 原 始 碼 正 式 發 佈, 而 且 在 IBM 的 VM 系 列 中 從 1972 年 到 現 在 一 直 都 在 重 新 實 現 每 一 個 CP/CMS 的 使 用 者 提 供 一 個 模 擬 和 獨 立 式 的 電 腦 這 個 模 擬 是 可 以 廣 泛 地 支 援 虛 擬 機 器 的 任 何 操 作 與 程 序 執 行, 並 且 遵 循 著 硬 體 的 操 作 手 冊 原 則, 包 含 : 機 器 的 指 令 集 主 記 憶 體 的 存 取 中 斷 程 序 例 外 程 序 與 設 備 存 取 等 簡 單 地 說 就 是 許 多 使 用 者 之 間 可 應 用 完 全 虛 擬 化 技 術 來 達 成 共 享 一 台 電 腦 上 的 資 源 許 多 平 台 的 虛 擬 機 器 與 x86 平 台 架 構 的 虛 擬 機 器 非 常 類 似, 並 聲 稱 為 完 全 虛 擬 化, 甚 至 連 前 的 ADM-V 和 Intel VT-X 也 不 例 外 例 如 :Adeos 在 Linux 上 的 Mac Mac 版 的 Parallels Desktop Parallels Workstation VMware Workstation VMware Server( 前 身 是 GSX 服 務 器 ) VirtualBox Win4BSD 和 Win4Lin Pro 完 全 虛 擬 化 主 要 挑 戰 的 關 鍵 之 一 是 攔 截 和 模 擬 的 特 權 操 作, 例 如 :I/O 指 令 在 一 個 特 定 地 虛 擬 機 器 中 每 一 個 操 作 平 台 的 影 響 必 須 保 持 在 該 虛 擬 機 器 中, 且 每 一 個 虛 擬 機 器 的 虛 擬 操 作 都 不 允 許 修 改 任 何 其 它 的 虛 擬 機 器 狀 態 控 制 程 序 或 是 硬 體 一 些 機 器 指 令 會 直 接 透 過 硬 體 來 執 行, 因 此 這 些 機 器 指 令 的 影 響 會 是 完 整 地 包 含 內 部 控 制 程 序 的 管 理 元 素, 例 如 : 記 憶 體 定 址 和 算 術 暫 存 器 但 是 有 些 其 它 指 令 是 不 能 直 接 地 允 許 執 行 的, 而 這 不 允 許 執 行 的 其 它 指 令 將 會 被 標 示 為 關 鍵 性 的 特 權 指 令 完 全 虛 擬 化 已 經 被 證 明 是 一 項 非 常 成 功 的 技 術, 其 中 它 有 下 列 幾 項 特 色 : 在 多 個 使 用 者 之 間 可 共 享 電 腦 系 統 資 源 每 一 個 虛 擬 機 器 的 客 戶 端 都 是 獨 立 式 地 在 執 行, 彼 此 之 間 的 執 行 都 不 會 互 相 干 擾 各 自 的 執 行 結 果, 包 含 : 控 制 程 序 模 擬 新 的 硬 體 來 實 現 高 效 能 的 可 靠 性 安 全 性 與 生 產 力 因 此, 完 全 虛 擬 化 是 一 個 可 提 供 完 全 虛 擬 機 器 環 境, 也 就 是 一 個 完 整 在 硬 體 底 層 下 的 模 擬 環 境 同 時 完 全 虛 擬 化 具 有 電 腦 硬 體 資 源 共 享 高 可 靠 性 高 安 全

性 與 高 效 能 等 特 性, 因 而 是 目 前 在 企 業 界 或 學 界 中 接 受 度 頗 高 的 一 項 軟 體 技 術 2.6.2 半 虛 擬 化 在 計 算 機 科 學 中, 半 虛 擬 化 (Paravirtualization Virtualization) 是 一 個 虛 擬 化 技 術 電 腦 系 統 若 使 用 部 份 虛 擬 化 來 運 作 軟 體 時, 必 須 針 對 系 統 核 心 進 行 修 改 與 設 定 才 能 順 利 的 安 裝 與 執 行, 因 此, 這 項 技 術 是 管 理 程 序 提 供 一 個 API 和 客 戶 端 虛 擬 作 業 系 統 呼 叫 的 API, 而 半 虛 擬 化 技 術 是 一 個 需 要 修 改 過 的 客 戶 端 作 業 系 統 在 商 業 中, 最 有 名 的 半 虛 擬 化 實 現 是 從 XenSource 和 GNU/Linux 所 修 改 過 的 Linux 系 統 核 心 半 虛 擬 化 提 出 一 個 修 改 過 的 軟 體 介 面 給 客 戶 端 使 用, 而 這 個 修 改 過 軟 體 介 面 是 一 個 相 似 但 不 完 全 相 同 地 底 層 硬 體 給 虛 擬 機 器 使 用 修 改 軟 體 介 面 的 目 的 是 為 了 減 少 客 戶 端 的 執 行 時 間, 而 這 個 執 行 時 間 是 花 費 在 虛 擬 環 境 中 相 較 於 一 個 非 虛 擬 化 環 境 中 所 執 行 時 而 大 幅 度 增 加 的 時 間 一 個 成 功 的 半 虛 擬 化 平 台 可 以 允 許 虛 擬 機 器 監 視 器 (Virtual Machine Monitor, VMM) 是 更 加 地 簡 單, 並 且 / 或 者 減 少 客 戶 端 在 虛 擬 機 器 中 執 行 時 的 整 體 性 能 下 降 半 虛 擬 化 需 要 客 戶 端 作 業 系 統 明 確 地 將 半 虛 擬 化 的 API 來 移 植 到 主 機 的 作 業 系 統 上, 因 為 傳 統 的 作 業 系 統 是 不 會 知 道 有 半 虛 擬 化 的 配 置 技 術 也 不 能 在 一 個 虛 擬 化 的 VMM 上 運 行 然 而, 即 使 在 作 業 系 統 未 被 修 改 過 的 情 況 下, 仍 然 元 件 可 能 會 是 可 能 有 效 地 使 許 多 顯 著 的 半 虛 擬 化 效 能 優 勢 例 如 :XenWindowsGpIPv 計 劃 提 供 一 個 半 虛 擬 化 感 知 設 備 驅 動 程 序 的 工 具 包, 它 是 在 GPL 團 隊 下 的 認 證 授 權 (licensed), 而 這 個 工 具 包 是 安 裝 在 微 軟 Windows 虛 擬 客 戶 端 中 並 運 作 在 Xen 虛 擬 化 管 理 程 序 上 [33]

半 虛 擬 化 的 歷 史 半 虛 擬 化 是 一 個 舊 有 的 概 念 名 詞 自 從 1972 年 以 來,IBM 的 VM 作 業 系 統 提 供 半 虛 擬 化 的 技 術 在 虛 擬 機 器 的 世 界 中, 因 為 它 使 用 通 常 僅 用 於 硬 體 維 護 的 軟 體 且 從 未 定 義 半 虛 擬 化 的 指 令 碼, 所 以 虛 擬 機 器 又 簡 稱 為 DIAGNOSE code 半 虛 擬 化 一 詞 最 初 是 用 在 DENALI 的 虛 擬 機 器 管 理 協 會 上 的 研 究 文 獻 [29] 半 虛 擬 一 詞 也 使 用 在 描 述 Xen L4 TRANGO VMware Wind River 和 XtratuM 的 虛 擬 化 管 理 程 序 所 有 這 些 計 劃 的 應 用 或 是 可 使 用 半 虛 擬 化 技 術 來 實 現 虛 擬 機 器, 是 為 了 支 援 在 x86 硬 體 架 構 上 執 行 的 高 效 能, 但 事 實 上, 並 沒 有 實 現 x86 指 令 集 的 硬 體 虛 擬 化 部 份 一 個 虛 擬 化 管 理 程 序 提 供 在 電 腦 系 統 下 的 虛 擬 抽 象 化 在 完 全 虛 擬 化 中, 客 戶 端 作 業 系 統 是 運 行 在 未 修 改 過 的 虛 擬 化 管 理 程 序 上 然 而, 透 過 客 戶 端 作 業 系 統 與 虛 擬 化 管 理 程 序 的 溝 通 而 實 現 改 善 效 能 和 效 率 通 過 允 許 客 戶 端 作 業 系 統, 則 表 示 它 的 意 圖 到 虛 擬 化 管 理 程 序 當 在 虛 擬 機 器 中 運 行 時, 每 一 個 使 用 者 都 可 互 相 合 作 而 獲 得 更 好 的 效 能 這 種 類 型 的 溝 通 方 式 被 稱 為 半 虛 擬 化 技 術 在 2005 年,VMware 提 出 一 個 半 虛 擬 化 的 介 面, 虛 擬 機 器 介 面 (Virtual Machine Interface, VMI) 作 為 在 客 戶 端 作 業 系 統 與 虛 擬 化 管 理 程 序 之 間 的 通 訊 機 器 此 VMI 能 夠 啟 動 透 明 的 半 虛 擬 化 (Transparent Paravirtualization), 在 半 虛 擬 化 模 式 中, 這 個 透 明 的 半 虛 擬 化 是 一 個 單 一 作 業 系 統 的 二 進 制 版 本, 它 可 運 作 在 本 機 端 的 硬 體 或 是 一 個 虛 擬 化 管 理 程 序 上 在 2009 年 9 月,VMware 宣 佈 VMI 將 從 未 來 的 產 品 中 退 休

Linux 的 半 虛 擬 化 支 援 在 2006 年 的 USENIX 會 議 上, 一 些 Linux 開 發 廠 商 ( 包 含 IBM VMware Xen 和 RedHat) 合 作 在 最 初 Xen 小 組 開 發 的 半 虛 擬 化, 稱 為 paravirt-ops [6] paravirt-ops 代 表 ( 縮 寫 成 PV-OPS) 是 包 含 主 要 的 Linux 系 統 核 心 2.6.23 版 本, 並 在 hypervisor 與 客 戶 遡 的 系 統 核 心 之 間 提 供 一 個 hypervisor-agnostic 介 面 對 於 PV-OPS 客 戶 端 的 系 統 核 心 支 援 發 佈 在 Ubuntu7.04 和 RedHat9 中 在 任 何 2.6.24 或 更 高 版 本 的 系 統 核 心 中,Xen 虛 擬 化 管 理 程 序 支 援 PV-OPS 客 戶 端, 例 如 : VMware 的 Workstation 產 品 第 六 版 就 有 支 援 此 功 能 2.6.3 硬 體 輔 助 虛 擬 化 在 電 腦 中, 硬 體 輔 助 虛 擬 化 (Hardware-Assisted Virtualization, HAV) 是 一 個 平 台 虛 擬 化 方 法, 而 這 個 平 台 虛 擬 化 的 方 法 主 要 是 使 用 主 機 處 理 器 和 硬 體 性 能 有 助 於 高 效 率 的 完 全 虛 擬 化 在 2006 年, 硬 體 輔 助 虛 擬 化 已 經 加 入 到 x86 處 理 器 中 硬 體 輔 助 虛 擬 化 也 被 稱 為 加 速 器 虛 擬 化 所 以,HAV 是 改 善 硬 體 虛 擬 化 效 能 的 方 法 且 HAV 牽 涉 到 特 殊 設 計 的 CPUs 和 硬 體 元 件, 這 些 都 是 有 助 於 改 善 客 戶 端 環 境 的 效 能 硬 體 輔 助 虛 擬 化 的 歷 史 在 1972 年, 硬 體 輔 助 虛 擬 化 首 先 是 由 IBM System/370 中 所 推 出 的, 當 時 是 應 用 在 VM/370, 是 第 一 個 虛 擬 機 器 作 業 系 統 虛 擬 化 在 1970 年 後 期 逐 漸 地 黯 然 失 色, 失 色 的 原 因 是 因 為 當 時 微 型 電 腦 支 援 允 許 高 效 能 的 分 時 技 術 以 及 微 型 電 腦 商 業 化 的 因 素 由 於 X86 服 務 器 的 增 殖 成 長, 而 使 得 人 們 對 虛 擬 化 技 術 的 興 趣 重 新 燃 起 主 要 驅 動 地 因 素 是 因 為 對 服 務 器 整 合 的 潛 在 地 可 能 性 是 虛 擬 化 允 許

單 一 服 務 器 來 取 代 多 個 未 充 分 用 的 專 用 服 務 器 然 而,x86 架 構 不 符 合 Popek 和 Goldberg 虛 擬 化 來 實 現 classical virtualization 的 需 求, 其 需 求 如 下 : 等 價 : 在 一 個 虛 擬 機 器 監 視 器 (Virtual Machine Monitor, VMM) 下 的 運 行 程 序 應 該 在 行 為 本 質 上 的 效 能 要 相 當 於 直 接 在 主 機 上 運 行 時 的 效 能 一 樣 資 源 控 制 ( 指 安 全 性 ):VMM 必 須 在 虛 擬 化 資 源 中 完 全 控 制 效 率 : 根 據 統 計 學 上 的 顯 示 一 小 部 份 的 機 器 指 令 必 須 在 沒 有 VMM 介 入 時 執 行 這 樣 的 需 求 下 是 很 難 實 現 這 種 類 型 的 處 理 器 專 用 的 VMM, 且 具 體 地 限 制 還 包 含 對 一 些 特 權 指 令 上 是 無 法 trap 的 為 了 彌 補 這 些 架 構 上 的 限 制,x86 架 構 的 虛 擬 化 已 經 通 過 兩 種 方 法 來 完 成 : 完 全 虛 擬 化 或 半 虛 擬 化 完 全 虛 擬 化 與 半 虛 擬 化 都 是 從 硬 體 中 來 建 立 實 體 硬 體 的 假 象 來 實 現 獨 立 式 作 業 系 統 的 目 標, 但 目 前 在 效 能 與 複 雜 度 中 有 一 些 trade-offs 有 了 硬 體 輔 助 虛 擬 化, 可 透 過 使 用 一 個 在 硬 體 中 典 型 的 trap-and-emulate 模 型 來 處 理 那 些 敏 感 性 地 指 令, 使 得 VMM 可 以 有 效 地 虛 擬 出 完 整 的 x86 指 令 集, 相 對 於 一 個 軟 體 模 擬 Intel 和 AMD 公 司 設 計 出 不 同 方 式 來 實 現 在 x86 上 的 硬 體 輔 助 虛 擬 化, 分 別 是 Intel VT-x 和 AMD-V 兩 種 代 表 性 在 Itanium 的 架 構 上, 硬 體 輔 助 虛 擬 化 被 稱 為 VT-I 另 外, 有 關 一 些 實 現 在 x86 架 構 中 的 硬 體 輔 助 虛 擬 化, 包 含 :VMware Workstation Xen 3.x Linux KVM 和 微 軟 的 Hyper-V 等 等

硬 體 輔 助 虛 擬 化 的 優 缺 點 優 點 因 為 硬 體 輔 助 虛 擬 化 可 降 低 在 客 戶 端 作 業 系 統 中 需 要 改 變 時 的 負 載, 所 以 硬 體 輔 助 虛 擬 化 具 有 降 低 並 維 護 半 虛 擬 化 的 負 載 功 能, 這 對 於 硬 體 輔 助 虛 擬 化 而 言 是 一 件 很 容 易 可 以 達 到 的 功 能, 而 且 具 有 相 當 好 的 性 能 缺 點 在 主 機 CPU 中, 硬 體 輔 助 虛 擬 化 並 不 是 對 所 有 x86/x86_64 的 處 理 器 架 構 是 有 效 地,( 因 此 硬 體 輔 助 虛 擬 化 是 需 要 明 確 地 支 援 應 用 在 支 援 主 機 CPU 的 硬 體 中 ) 一 個 純 硬 體 輔 助 虛 擬 化 的 方 法 是 使 用 完 全 未 修 改 的 客 戶 端 作 業 系 統, 這 將 會 涉 及 到 許 多 VM 的 陷 阱 (traps), 因 此, 產 生 有 高 CPU 的 負 載 限 制 可 擴 展 性 和 服 務 器 整 合 的 效 率 等 影 響 [30] 這 樣 的 影 響 將 會 導 致 在 使 用 半 虛 擬 化 的 驅 動 程 序 時, 其 效 能 變 差 的 情 況, 硬 體 輔 助 虛 擬 化 與 半 虛 擬 化 的 組 合 被 稱 為 混 合 式 虛 擬 化 [31] 在 2006 年 的 發 現 第 一 代 的 32 位 元 和 64 位 元 的 x86 硬 體 架 構 提 供 軟 體 虛 擬 化 性 能 優 勢 的 支 援 較 為 罕 見 [33]