虚拟化起源:超级计算机和大型机
2019-02-26 来源:多智时代
上世纪50年代的超级计算机的体积有好几个大型档案柜那么大。它们使用磁鼓存储器作为快速存储,其次使用像IBM RAMAC这种的硬盘,如果能买到的话。当时的工作存储器是磁芯存储器,它是由悬浮在金属导线所组成的晶格上的小金属环组成的。装在机柜中的电路板体积巨大,但所带有的部件相对较少。在1958年,Whilst Jack S Kirby发明了集成电路,这一突破在广泛的计算机制造上的应用仍需时日。
这一时期也是只能操作几个开关,没有直接的计算机输入的时期。计算机通过分批读取一个个打孔卡来运行程序。打孔卡可以被直接加载或把内容上传到大型磁带上。之后主机就会准备加载作业,从磁带(或打孔卡)读取数据,执行程序并把输出记录到另一个磁带上。该输出会被卸载,一般要么送去打印,要么送去生成打孔卡。
在运行的程序和用户之间没有交互能力,因此你在当时所见的情况就是启动一个程序,然后开始等,几小时或几天之后,看它能否产生预想的结果。
虚拟化的概念被认为是由牛津大学第一计算机学教授Christopher Strachey的论文《大型高速计算机中的时间分配》中所提到的观点自然演化而来的。该论文在1959年的联合国教科文组织信息处理大会上宣读过。
Strachey描述了他所提出的“多道程序”,程序可以不需要等待外设而运行,同时还允许用户调试代码。他的概念仍然以当前的核心批处理为中心,但又描述了如内存保护和共享中断这种架构要求。这种“多道程序”的概念把计算研究推动到一个新方向。
过后,Strachey写道...
‘当我在1959年写这篇论文时,和大家一样,我也不知道这会让编写软件来控制分时或多道程序产生什么样的困难。如果我知道的话,我真不该对它们这么热衷。’
1955年,英国的数字计算机不超过16台,计算机的热潮也从1948年到1951年的黄金年代褪去。计算机使用真空管,吞吐量为每秒大约1000条指令。而且主存储器一般都是4k或更低。
而在1956年,随着英国物理学家们对更多计算能力的需求,曼彻斯特大学的Tom Kilburn和他的团队开始了他们自己的超级计算机计划。IBM当时在执行IBM Stretch (7030)项目,这也被视为同类竞争项目。曼彻斯特小组的目标是制造一个多用户机,可以每秒执行大约一百万条指令,主存储器最小要到500k。
这个项目叫做MUSE,Musec(微秒)引擎的简称,此项目一直都在进行,无论Tom Kilburns团队的资金多么有限。在1959年,一家名为Ferranti Ltd (pdf)的英国公司加入了该项目,与研究团队开展合作。Ferranti是一家英国公司,它为国防部生产如陀螺仪瞄准器和最早的IFF(敌我识别)雷达系统。它们之前曾与曼彻斯特大学合作,制造它们的Ferranti Mark I,这是世界首个商业化生产的计算机,在有了“高科技”设备这个副业后,该公司建立了一个计算机部门。Ferranti为从国家科学研究开发公司贷款30万英镑作担保,该合作进行后,项目便更名为Atlas。
在1962年,第一台Atlas 1交付曼彻斯特大学使用。它使用了58种不同类型的20cm × 15cm的电路板(不包括外设)5172个 。Atlas 1的最终成本在2百万至3百万英镑之间(相当于2012年的5千万英镑左右)。相比,IBM Stretch项目最终成本1350万美元,后来由于表现不佳跌至778万美元。
Atlas是第一台使用虚拟内存(称为一级存储)这一概念的机器,它还率先包含了一个称为“Supervisor”的基本资源管理组件。Supervisor会发送特殊指令或硬件代码指令,使它可以管理硬件资源,如专用于单个程序执行的处理器时间分配。
IBM也有来自IBM Thomas J. Watson研究中心(纽约)的一个称为M44/44X的研究项目。M44/44X以IBM 7044(名字中的M44的部分)为基础,能够模拟好几个7044系统(44X)。M44/44X实现了许多突破性的虚拟化概念,包括部分硬件共享,内存分页和时间分配。M44/44X项目被普遍认可为第一个使用了“虚拟机”这个术语。
1961年,麻省理工学院的Fernando Corbato教授和他的研究小组开始了CTSS(兼容分时系统)项目的开发。该项目与IBM进行合作,IBM提供硬件和工程师,以支持该小组的研究。
在1961年十一月,一个早期版本在IBM 709上实现,1962年初,IBM用7090取代了MIT 709,然后又升级为7094。
CTSS Supervisor驻留在存储体A中,而把用户程序限制在存储体B中。控制台可以在调度处理安排的长度可变的时间内对机器资源进行访问,使用存储体B的程序会根据需要在磁鼓或磁盘存储器之间交换。
每个虚拟机都是7094,其中一个作为后台机,可以直接访问磁带驱动器。其他虚拟机可以运行7094机器语言或编译后的代码和一种为管理服务程序使用的特别的指令集。这些管理服务程序可以让前台的虚拟机在管理程序的资源共享控制下对终端I/O和文件系统I/O进行访问。函数库还能让其他语言也能用在7094上,来利用这些管理服务程序。CTSS开创了用户硬件隔离和独立的用户文件系统。
CTSS在1963年开始在麻省理工学院普遍使用。
麻省理工学院的研究小组后来失望地得知,最新发布的IBM System/360将不会支持内存虚拟化——这个时间分配成果的基石。IBM的这个决定,无视麻省理工学院研究小组和IBM工程师的创举,这么做是因为当时IBM认为计算的未来在于更快的批处理,而不是时间分配。
在不久的将来,云计算一定会彻底走入我们的生活,有兴趣入行未来前沿产业的朋友,可以收藏云计算,及时获取人工智能、大数据、云计算和物联网的前沿资讯和基础知识,让我们一起携手,引领人工智能的未来!
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。