云计算那些第一次,你还记得吗?

虚拟化的发展一直伴随这整个计算机发展的历史,从早期的大型机到现在的x86,虚拟化的出现比你知道的要早很多 。下面就起底一下虚拟化云计算的历史 。
早期的虚拟化探索
1959 年,英国计算机科学家 Christopher Strachey 发表论文《Time Sharing in Large Fast Computer》(大型高速计算机中的时间共享),被认为是虚拟化技术的最早论述 。
1961年,在麻省理工学院百周年纪念典礼上,John McCarthy (1971年图灵奖获得者)第一次提出了“Utility Computing”的概念 。
1962 年,第一台 Atlas 超级计算机 Atlas 1 诞生,Atlas 1 是第一台实现了虚拟内存(Virtual Memory)概念的计算机 。
IBM虚拟化之旅
一谈到虚拟化,很多人首先想到的是x86虚拟化解决方案,VMware、Hyper-V和Xen等 。而放眼真个服务器市场,尤其是在金融、电信等高端行业和数据中心等高端应用场景中,IBM 虚拟化软件Power VM和zVM有着举足轻重的存在 。而IBM的虚拟化软件和技术的历史要追溯到上世纪60年代 。
1960 年,IBM 开始进行 M44/44X 计算机项目 。M44/44X 项目基于 IBM 7044(M44)实现了多个具有突破性的虚拟化概念,包括部分硬件共享、时间共享、内存分页,并实现了虚拟内存管理的 VMM 。实现了在同一台主机上模拟出多个 7044 系统(44X) 。M44/44X 项目首次使用了 VM(Virtual Machine) 和 VMM(Virtual Machine Monitor)概念,被认为是世界上第一个支持虚拟机的系统 。
1961年,麻省理工学院的Fernando Corbato教授和他的研究小组开始了CTSS(兼容分时系统),先后能够运行在IBM 709,7090,7094计算机上 。每个虚拟机都是7094,其中一个作为后台机,可以直接访问磁带驱动器 。CTSS开创了用户硬件隔离和独立的用户文件系统 。
1962年底,麻省理工学院开始了称为MAC(Multiple Access Computing)的项目 。其目的就是在通过开发CTSS所获得的经验的基础上,建立一个更先进的分时系统:Multics系统 。该项目没有采用IMB System/360计算机,而先后采用了通用的GE-635,GE-645处理器 。Multics一直到2000年还在各种地方使用 。麻省理工学院在2007年公开了项目的源代码 。
1964 年,IBM 推出了著名的 System/360大型机,实现了基于全硬件虚拟化(Full Hardware Virtualization)的虚拟机解决方案,包括:页式虚拟内存(4k 分页虚拟存储系统),虚拟磁盘以及 TSS 分时系统 。System/360 最多可提供 14 个虚拟机,每个虚拟机具有 256k 固定虚拟内存 。
1967年,IBM开发出了具有标志性意义的分时虚拟机操作系统CP-40/CMS,该系统运行于 System/360计算机之上 。该系统陆续推出了代表版本有CP-40/CMS、CP-67/CMS、CP-370/CMS 。CP-40/CMS开启了分时虚拟机操作系统之旅 。
CP-40为后来的PowerVM(运行于Power服务器)和z/VM(运行于 IBM Z和 IBM LinuxONE 服务器)的虚拟化软件打下了基础 。
虚拟化里程碑论文
1974 年,Gerald J. Popek和 Robert P. Goldberg发表论文《Formal Requirements for Virtualizable Third Generation Architectures》 。
提出了波佩克与戈德堡虚拟化需求(Popek and Goldberg virtualization requirements)和I和II型虚拟化类型 。
X86虚拟化云计算的那些第一次
2003年Intel 正式公布将在 x86 平台的 CPU 上支持虚拟化技术 VT 。VT-x 为 IA 32 处理器增加了两种操作模式:VMX root operation 和 VMX non-root operation 。
2003 年 9 月,Xen第一个版Xen 1.0发布 。它最初是剑桥大学Xensource的一个开源研究项目 。
2003~2006年,Google发表了三篇著名论文,03年SOSP的GFS,04年OSDI的MapReduce,06年OSDI的BigTable 。
2007 年 1 月,Sun发布了开源虚拟化软件 VirtualBox 。
2006 年 3 月,AWS发布S3 。

推荐阅读