虚拟化技术发展编年史 - 博创网

博创网 首页 > 科技

虚拟化技术发展编年史

2019-08-31 20:33 CSDN

作者 | 范桂飓

责编 | 屠敏

出品 | CSDN 博客

前言

我已经想不起来是从什么时候开始的,突然就对计算机历史产生了浓厚的兴趣。于是我想着,要不以后所有系列文章的开篇都先和大家聊聊历史吧。其实说来挺有意思,看过去到底是为了看未来,因为历史总是惊人的相似,几乎所有的问题都能够在历史长河中寻得答案。可惜的是,但凡历史,最是难写,笔者碍于能力有限,还望大家多指点一二。

什么是虚拟化?

在计算机科学中,虚拟化技术(Virtualization)是一种资源管理(优化)技术,将计算机的各种物理资源(e.g. CPU、内存以及磁盘空间、网络适配器等 I/O 设备)予以抽象、转换,然后呈现出来的一个可供分割并任意组合为一个或多个(虚拟)计算机的配置环境。虚拟化技术打破了计算机内部实体结构间不可切割的障碍,使用户能够以比原本更好的配置方式来应用这些计算机硬件资源。而这些资源的虚拟形式将不受现有架设方式,地域或物理配置所限制。虚拟化技术是一个广义的术语,根据不同的对象类型可以细分为:

平台虚拟化(Platform Virtualization):针对计算机和操作系统的虚拟化。 资源虚拟化(Resource Virtualization):针对特定的系统资源的虚拟化,如内存、存储、网络资源等。 应用程序虚拟化(Application Virtualization):包括仿真、模拟、解释技术等,如 Java 虚拟机(JVM)。

这里我们主要讨论的是平台虚拟化。首先提出第一个问题:当我们讨论平台虚拟化技术,实际在讨论什么?我认为讨论的是 Hypervisor 或称为 VMM(Virtual Machine Monitor),本篇我们主要回顾 VMM 的发展历程,并思考之中的原因。

虚拟化技术发展编年史

开篇

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

大型机和小型机的虚拟化

1960 年,为了应对物理学领域的计算需求,美国启动 Atlas 超级计算机(Super Computer)项目。同期的英国全国只有 16 台计算机,日不落帝国的诅咒在计算机领域也无法幸免。

1961 年,由麻省理工学院的 Fernando Corbato 教授带领团队开始研发 CTSS(Compatible Time Sharing System,兼容性分时系统)项目,并由 IBM 提供硬件设备和工程师进行支持。分时系统可以说是硬件虚拟化的根本,CTSS 为后来 IBM 的 TSS 打下了基础。

1962 年,第一台 Atlas 超级计算机 Atlas 1 诞生,Atlas 1 是第一台实现了虚拟内存(Virtual Memory)概念的计算机,并将其称为一级存储(one-level store)。Atlas 1 还是第一个实现了名为 Supervisor 的底层资源管理组件的计算机,Supervisor 可以通过特殊的指令或代码来管理物理主机的硬件资源。例如:中央处理器的时间分配。

没错,操作系统最早的称谓其实是 Supervisor,往后还被叫过一段时间的 Master Control Program(主控程序),但最终 Operating System 胜出了。此时你或许能够理解为什么虚拟机管理程序会被统称为 Hypervisor(Super、Hyper 是同意词,意为超级,但词义上 Hyper 比 Super 还要高级一些)。



上海快3 上海快三 上海快3 上海快3 上海快三 上海快三 上海快3 上海快3 上海快三 上海快三