『内存中的操作系统』虚拟化是什么

思维模型

  • 什么是虚拟化

  • 为什么需要虚拟化

  • 虚拟化的本质是什么

  • 1. 什么是虚拟化

    我们在计算机入门的操作系统课上, 肯定听说了CPU虚拟化, 内存虚拟化等. 在进一步的学习中, 也可能尝试过在windows机器上面安装过虚拟机, 当然如果我们学习Java等, 肯定也听说过Java虚拟机. 而目前流行的云原生技术的基石容器技术就是虚拟化的重要体现. 甚至现在流行的AR, VR甚至是元宇宙都包含虚拟化的思想.

    那么如果让我们来定义虚拟化的话, 我们应该如何定义呢?我们知道虚拟的对立面就是真实, 而计算机科学中, 虚拟化对应的就是真实物理设备. 其目的是在物理设备的基础上, 实现一个更为强大的"物理设备". 比如常见的聚合, 切分等. 从而打破传统的物理局限,

    所以我们可以暂时将虚拟化简单的描述为下面的内容:

    虚拟化技术是一种资源管理技术, 将各种物理资源进行抽象, 转换, 然后呈现为一个可供分割并任意组合的资源环境.这些资源不再受物理架构, 地域或者配置的局限.

    2. 为什么需要虚拟化

    上面我们看到虚拟化的好处, 而这些并不是计算机一开始就有概念的. 事实上一开始的计算机并没有虚拟化这一说. 我们重新回顾计算机的发展, 就能看出虚拟化出现的最本源需求.

    1959 年 6 月,牛津大学的计算机教授,克里斯·托弗(Christopher Strachey)在国际信息处理大会(International Conference on Information Processing)上发表了一篇名为《大型高速计算机中的时间共享》(Time Sharing in Large Fast Computer)的学术报告,他在文中首次提出了 “虚拟化” 的基本概念,还论述了什么是虚拟化技术。这篇文章被认为是最早的虚拟化技术论述,从此拉开了虚拟化发展的帷幕。

    克里斯·托弗还同时提出了 Multi-Processing(多道程序)这一超前的概念,Multi-Processing 解决了应用程序因等待外部设备而导致处理器空转问题,同时也解决了用户如何调试(Debug)代码的问题。即便在现在看来,多道程序的理念仍是操作系统在 “并发” 领域中的隗宝。

    When I wrote the paper in 1959 I, in common with everyone else, had no idea of the difficulties which would arise in writing the software to control either the time-sharing or multi-programming. If I had I should not have been so enthusiastic about them.

    ——Christopher Strachey

    Christopher Strachey

    而这篇文章出现的背景就是最初的计算机都是串行运行程序的, 一次只能录入一个程序, 当程序IO缓慢时, CPU只能空转等待, 这不仅造成CPU的浪费, 也造成了其他硬件资源的浪费. 所以出现了多道程序的概念, 即一次读入多条程序, 当一条程序出现IO操作, CPU切换到下一个程序.  

    而这个虽然解决了IO占用的问题, 但是由于CPU时间分配依托于程序本身, 则在需要大量CPU计算的程序时, 资源同样被占用, 导致其他硬件资源出现浪费. 于是又出现了分时的概念, 即将 CPU 占用切分为多个极短(1/100sec)的时间片,每个时间片都执行着不同的任务.

    而多道程序和分时的结合正是克里斯·托弗这篇文章的核心内容. 通过将分时的概念融入到多道程序设计当中,从而实现一个可多用户操作(CPU 执行时间切片),又具有多程序设计效益(CPU 主动让出)的虚拟化系统。所以这里的虚拟化主要是满足多用户同时操作大型计算机, 使得计算机的资源得到充分利用.

    而这正是目前的计算机虚拟化的根本原因, 不浪费计算机资源.

    时间来到1960 中期,IBM 在在M44/44X 项目基于 IBM 7044(M44)大型机并通过软件和硬件结合的方式来模拟出多个 7044 虚拟机。这个项目实现了多个具有突破性的虚拟化概念,包括部分硬件共享(Partial Hardware Sharing)、分时(Time Sharing)、内存分页(Memory Paging)以及虚拟内存(Virtual Memory)并首次使用了 “Virtual Machine” 这一术语,所以被认为是世界上第一个支持虚拟机的计算机系统。虽然 M44/44X 只实现了部分的虚拟化功能,但其最大的成功在于证明了虚拟机的运行效率并不一定比传统的方式更低。

    这里虚拟化开始突破物理资源的局限, 通过结合的方式, 通过资源共享, 能够同时运行更多程序, 进一步来提高实际物理资源的高效利用.

    往后,IBM 还陆续推进了 CP-40、CP-67 等研究项目。CP-40 被认为是第一个实现了完全虚拟化的计算机系统。它通过捕获特权指令(例如 I/O 操作)、主存缺页(Page Faults)等异常,然后交由控制程序(Control Program)模拟的方式来实现虚拟机。用户可以在虚拟机之上安装其他的 S/360 操作系统,操作系统之间互相隔离,就像运行在一台独立的机器之上。

    所以在增强虚拟机性能的情况下, 虚拟化走向了一个更为强大的道路: 安全隔离, 通过隔离达到上层进程的无感知, 同时对下层硬件资源进行了保护.

    1968 年,拉里·罗伯茨提交研究报告《资源共享的计算机网络》,其中着力阐述了让 ARPA(Advanced Research Project Agency,美国高级研究计划署)的计算机互相连接,从而使大家分享彼此的研究成果。根据这份报告组建的国防部 “高级研究计划网”,就是阿帕网(ARPA-NET),Internet(因特网)的前身,拉里·罗伯茨也被称之为阿帕网之父。

    1969 年,阿帕网的第一个实用原型问世。将加利福尼亚州大学洛杉矶分校、加州大学圣巴巴拉分校、斯坦福大学、犹他州大学四所大学的 4 台大型计算机进行了互联。

    同样在 1969 年,贝尔实验室决定退出 Multics 计划,并由肯·汤普逊(Ken Thompson)独自经过 4 个星期的奋斗,以汇编语言写出了一组内核程序,同时包括一些内核工具程序,以及一个小的文件系统,这就是伟大的 UNIX 操作系统的原型。

    这里虚拟化在提升单机性能的情况下, 开始走向了分布式的道路: 通过多个同类资源的联合, 达到更为强大的资源环境.

    在分布式的基础上, 虚拟化也带来了其他的好处: 负载均衡, 动态迁移, 局部容灾等. 同时也满足不同类型的资源协同工作.向上提供了统一的管理接口, 屏蔽了下层资源的异构性.

    所以回到我们一开始的问题, 为什么需要虚拟化:

  • 提高硬件资源的使用效率

  • 安全隔离

  • 提高稳定性

  • 通过联合资源, 实现更为强大的资源环境

  • 支持异构资源的结合, 并保证了系统的健壮性.

  • 3. 虚拟化的本质是什么

    其实从上面计算机的历史来看, 虚拟化最根本的原因其实是有效利用昂贵的硬件资源和物理资源出现瓶颈的时候. 在一开始计算资源比较昂贵的时候, 就出现了CPU虚拟化. 后来存储资源比较昂贵的时候, 就出现了内存虚拟化, 文件系统虚拟化. 单机资源充足导致单个用户无法完全使用时, 就出现了操作系统虚拟化. 单机资源过于昂贵时, 就出现了分布式, 分布式中当网络成为瓶颈的时候, 就出现了网络虚拟化. 在现在AI不断发展的背景下, 显示资源昂贵就出现了GPU虚拟化.

    所以虚拟化的目的就是在硬件解决不了的问题软件来解, 化用电影龙门飞甲中的一句话:

    硬件管得了我软件要管, 硬件管不了的我软件也要管, 这就是虚拟化.

    通过硬件和软件的结合, 来满足现实中对资源越来越高的需求.这就是虚拟化的本质


    参考文献:

    [1] 虚拟化技术发展编年史 : http://www.woshipm.com/it/2808541.html

    [2] 云计算与虚拟化技术发展编年史 : https://www.cnblogs.com/jmilkfan-fanguiju/p/11825020.html

    ©著作权归作者所有,转载或内容合作请联系作者
    • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
      沈念sama阅读 216,163评论 6 498
    • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
      沈念sama阅读 92,301评论 3 392
    • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
      开封第一讲书人阅读 162,089评论 0 352
    • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
      开封第一讲书人阅读 58,093评论 1 292
    • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
      茶点故事阅读 67,110评论 6 388
    • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
      开封第一讲书人阅读 51,079评论 1 295
    • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
      沈念sama阅读 40,005评论 3 417
    • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
      开封第一讲书人阅读 38,840评论 0 273
    • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
      沈念sama阅读 45,278评论 1 310
    • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
      茶点故事阅读 37,497评论 2 332
    • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
      茶点故事阅读 39,667评论 1 348
    • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
      沈念sama阅读 35,394评论 5 343
    • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
      茶点故事阅读 40,980评论 3 325
    • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
      开封第一讲书人阅读 31,628评论 0 21
    • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
      开封第一讲书人阅读 32,796评论 1 268
    • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
      沈念sama阅读 47,649评论 2 368
    • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
      茶点故事阅读 44,548评论 2 352

    推荐阅读更多精彩内容