1946 年 2 月 14 日,世界上第一台通用计算机 ENIAC(Electronic Numerical Integrator And Computer,电子数值积分计算机)于美国宾夕法尼亚大学诞生,发明人是美国人莫克利(JohnW.Mauchly)和艾克特(J.PresperEckert)。ENIAC 是第一代电子管计算机,符合图灵完全性,能够重新编程,解决各种计算问题。ENIAC 是一个不折不扣的庞然大物,用了 18000 个电子管,占地 150 平方米,重达 30 吨,耗电功率约 150 千瓦,每秒钟可进行 5000 次运算。由于使用的电子管体积很大,耗电量大,易发热,因而 ENIAC 的工作时间不能太长。最初只用于帮助美国陆军的弹道研究实验室(BRL)计算火炮的火力表。
前面提到了图灵完全性(又称图灵完备)就不得不提图灵机(Turing Machine)。图灵机是数学家艾伦·图灵在 1936 年(那年图灵 24 岁)发表的现代计算领域奠基性的论文《论可计算数及其在判定性问题上的应用》(“On Computable Numbers, with an Application to the Entscheidungsproblem”)中提出的数学模型。这个数学模型讨论的是一种有穷的、构造性的问题的求解思路。背后对应着可计算性理论,告诉我们什么样的问题是计算机解决得了的,什么样的问题是解决不了的。图灵在论文中证明了 —— 只要图灵机可以被实现,就可以用来解决任何可计算问题。
在可计算性理论里,如果一系列操作数据的规则(如指令集、编程语言、细胞自动机)可以用来模拟单带图灵机,那么它是图灵完全的。这个词源于引入图灵机概念的数学家艾伦·图灵。虽然图灵机会受到储存能力的物理限制,图灵完全性通常指 “具有无限存储能力的通用物理机器或编程语言”。
最初的计算机都是串行运行的,一次只能录入并执行一个程序,当程序进行缓慢的 IO 操作时,CPU 只好空转等待。这不仅造成了 CPU 的浪费,也造成了其他计算机硬件资源的浪费。那时的计算机科学家们都在思考着要如何能够提高 CPU 的利用率,直到有人提出了多道程序设计(Multiprogramming,多任务处理的前身)。
在整个上世纪 50-60 年代,多道程序设计的讨论非常流行。它令 CPU 一次性读取多个程序到内存,先运行第一个程序直到它出现了 IO 操作,此时 CPU 切换到运行第二个程序。即,第 n+1 个程序得以执行的条件是第 n 个程序进行 IO 操作或已经运行完毕。可见,多道程序设计的特征就是:多道程序、宏观上并行、微观上串行。有效的提高了 CPU 的利用率,也充分发挥着其他计算机系统部件的并行性。即便在现在看来,多道程序设计的理念仍是操作系统在并发领域中的隗宝。
但多道程序设计存在一个问题, 就是它并不会去考虑分配给各个程序的时间是否均等,很可能第一个程序运行了几个小时而不出现 IO 操作,故第二个程序没有运行。最初,这个问题是令人接受的,那时的必须多个程序之间的执行顺序更加关心程序的执行结果。直到有人提出了新的需求:多用户同时使用计算机。应需而生的正是时间共享,或者称之为 “分时” 的概念(Time Sharing)。
所谓 “分时” 的含义是将 CPU 占用切分为多个极短(1/100sec)的时间片,每个时间片都执行着不同的任务。分时系统中允许几个、几十个甚至几百个用户通过终端机连接到同一台主机,将处理机时间与内存空间按一定的时间间隔,轮流地切换给各终端用户的程序使用。由于时间间隔很短,每个用户感觉就像他独占了计算机一样。分时系统达到了多个程序分时共享计算机硬件和软件资源的效果,本质就是一个多用户交互式操作系统。
值得注意的是,分时系统与多道程序设计虽然类似,却也有着底层实现细节的不同,前者是为了给不同用户提供程序的使用,而后者则是为了不同程序间的穿插运行。 简而言之,分时系统是面向多用户的,而多道程序设计是面向多程序的。这是一个非常容易混淆的概念,无论在当年还是现今。
时间来到 1959 年 6 月 15 日,牛津大学的计算机教授,克里斯托弗·斯特雷奇(Christopher Strachey)在国际信息处理大会(International Conference on Information Processing)上发表了一篇名为《大型高速计算机中的时间共享》(“Time sharing in large fast computers”)的学术报告,他在文中首次提出了 “虚拟化” 的基本概念,还论述了什么是虚拟化技术。这篇文章被认为是最早的虚拟化技术论述,从此拉开了虚拟化发展的帷幕。这篇文章记录了斯特雷奇的生平(https://history.computer.org/pioneers/strachey.html)。
斯特雷奇在论文的开头这么写到:
Time sharing, in the sense of causing the main computer to interrupt its program to perform the arithmetic and control operations required by external or peripheral equipment, has been used on a limited scale for a long time. this paper explores the possibility of applying time sharing to a large fast computer on a very extensive scale.
“分时(Time sharing)是指使计算机中断正在运行的程序以执行外围设备所需要的算术与控制操作,长期以来一直在有限的范围内使用。本文探讨了将分时(Time sharing)的概念应用到大型高速计算机中的可能性”。
– Time sharing in large fast computers(https://archive.org/details/large-fast-computers)
本质上,斯特雷奇是在讨论如何将分时的概念融入到多道程序设计当中,从而实现一个可多用户操作(CPU 执行时间切片),又具有多程序设计效益(CPU 主动让出)的虚拟化系统。可见,虚拟化概念最初的提出就是为了满足多用户同时操作大型计算机,并充分利用大型计算机各部件资源的现实需求。而对这一需求的实现与演进,贯穿了整个大型机与小型机虚拟化技术的发展历程。
1960 年,英国启动 Atlas 超级计算机(Super Computer)项目。
超级计算机(Super Computer),又称巨型机,有着极强的计算速度,通常用于科学与工程上的计算,譬如天气预测、气候研究、运算化学、分子模型、天体物理模拟、汽车设计模拟、密码分析等。超级计算机的创新设计在于把复杂的工作细分为可以同时处理的工作并分配到不同的处理器。他们在进行特定的运算方面表现突出,但在处理一般工作时却不那么优秀。超级计算机的计算速度与内存性能大小有关,他们的数据结构是经过精心设计来确保数据及指令及时送达,传递速度的细微差别可以导致运算能力的巨大差别。其 I/O 系统也有特殊设计来提供高带宽,但是这里的数据传输延迟却并不重要,超级计算机并非数据交换机。
1961 年 11 月,由麻省理工学院的 Fernando Corbato 教授带领团队开始研发 CTSS(Compatible Time-Sharing System,兼容性分时系统)项目,并由 IBM 提供硬件设备和工程师进行支持。CTSS 极大地影响了后来的分时系统的设计,包括 IBM 著名的 TSS(Time Sharing System)。
1962 年 12 月 7 日,第一台 Atlas 超级计算机 Atlas 1 诞生,Atlas 是第二代晶体管计算机,被认为是当时世界上最强大的计算机。Atlas 开创了许多沿用至今的软件概念,包括第一次实现了名为 Atlas Supervisor 的底层资源管理组件,Supervisor 通过特殊的指令或代码来管理主机的硬件资源。还第一次实现了分页技术(Paging Techniques)以及当时被称为一级存储(One-Level Store)的虚拟内存(Virtual Memory)。
现在被我们称之为 “操作系统” 的软件程序其实最早的称谓是 Supervisor,往后还被叫过一段时间的 Master Control Program(主控程序),但最终 Operating System 胜出了。此时你或许能够理解为什么虚拟机管理程序会被统称为 Hypervisor 了(Super、Hyper 是同意词,意为超级,但词义上 Hyper 比 Super 还要高级一些)。
1960 中期,IBM 在 Thomas J. Watson Research Center (NY) 进行 M44/44X 计算机项目的研究。M44/44X 项目基于 IBM 7044(M44)大型机并通过软件和硬件结合的方式来模拟出多个 7044 虚拟机(44X)。M44/44X 实现了多个具有突破性的虚拟化概念,包括部分硬件共享(Partial Hardware Sharing)、分时(Time Sharing)、内存分页(Memory Paging)以及虚拟内存(Virtual Memory)。M44/44X 项目首次使用了 “Virtual Machine” 这一术语,所以被认为是世界上第一个支持虚拟机的计算机系统。虽然 M44/44X 只实现了部分的虚拟化功能,但其最大的成功在于证明了虚拟机的运行效率并不一定比传统的方式更低。
往后,IBM 还陆续推进了 CP-40、CP-67 等研究项目。CP-40 被认为是第一个实现了完全虚拟化的计算机系统。它通过捕获特权指令(例如 I/O 操作)、主存缺页(Page Faults)等异常,然后交由控制程序(Control Program)模拟的方式来实现虚拟机。用户可以在虚拟机之上安装其他的 S/360 操作系统,操作系统之间互相隔离,就像运行在一台独立的机器之上。CP-40 最大的成就在于提出并实现了 Trap-And-Emulate(捕获-模拟)这一经典的虚拟机运行方式,早期的 VMware 虚拟机沿用着这一设计。其基本架构和用户界面也被延续到了 IBM 具有革命性意义的 CP/CMS 系统中,CP/CMS 为后来的 System/360 打下了坚实的基础,逐渐发展成为了 IBM 的 VM 产品线。
1964 年,IBM 推出了著名的 System/360(简称 S/360)大型计算机系统。System/360 取自一圈 360 度,意为满足每个用户的需要而设计。你或许有所耳闻,System/360 的开发过程是计算机发展史上最大的一次豪赌。为了研发 System/360,IBM 征召了六万多名新员工,创建了五座新工厂,投资 50 亿美元。即便如此,System/360 的出货时间仍被不断推延。理佛瑞德·布鲁克斯(Frederick P. Brooks, Jr.)是当时的项目经理,他事后根据这项计划的开发经验写出了同样著名的《人月神话:软件项目管理之道》(“The Mythical Man-Month: Essays on Software Engineering”),记述了人类工程史上一项里程碑式的大型复杂软件系统的开发经验。System/360 是第三代中小规模集成电路计算机,同时也是世界上第一台大型机。
注:大型计算机使用了专用的处理器指令集、操作系统和应用软件,是硬件和专属软件一体化的计算机系统。大型机与超级计算机不同,大型机追求的 RAS(Reliability, Availability, Serviceability)高可靠性、可用性和可维护性。大型机的性能并不能用单一的每秒并行浮点计算能力来体现,大型机的运算任务主要受数据传输与转移、可靠性及并发处理性能所限制。大型机更倾向整数运算,如订单数据、银行业务数据等,超级计算机则是更强调浮点计算性能如天气预报,大型机在处理数据的同时需要读写或传输大量信息,如海量的交易信息、航班信息等等。
现在我们知道,IBM System/360 被证实是一项启动创新商业运作的历史性变革,取得了巨大的商业成功。System/360 不仅提供了新型的操作系统,最多可提供 14 个虚拟机,还解决了当时 IBM 低端系统与高端系统无法兼容的问题。让单一操作系统适用于整个系列的产品,这就是 System/360 系列大型机成功的关键之一。此外,System/360 还实现了基于全硬件的虚拟化解决方案(Full Hardware Virtualization)以及 TSS(Time Sharing System)分时系统,TSS 被认为是最原始的 CPU 虚拟化技术,它可以让低端电脑连接大型主机,上传和下载程序或资料,将电子数据处理的 “松散终端” 连接起来。
综上,虚拟化技术的应用和发展源于大型机对分时系统的需求。这种通过硬件的方式来生成多个可以运行独立操作系统软件的虚拟机实例,解决了早期大型计算机只能单任务处理而不能分时多任务处理的问题。由于这种虚拟化技术是基于硬件设备来实现的,故被称为硬件虚拟化(Hardware virtualization)。但需要注意的是,这一定义在后来被进一步细分为了狭义的硬件虚拟化技术,现今更加被公认的硬件虚拟化定义是:一种对计算机或操作系统的虚拟化,能够对用户隐藏真实的计算机硬件,表现出另一个抽象的计算平台。
同样在 1960 年,DEC 推出 PDP(Programmed Data Processor,程序数据处理机)系列小型计算机 PDP-1。PDP-1 简化了大型机的功能,而且价格低廉。
1965 年 3 月 28 日,DEC 公司推出了世界上第一台真正意义的小型计算机 PDP-8。时任 DEC 海外销售主管的约翰·格伦将 PDP-8 运到英国,发现伦敦街头正在流行 “迷你裙”(Mini),姑娘们争相穿上短过膝盖的裙子,活泼轻盈,显得那么妩媚动人。他突然发现 PDP 与迷你裙之间的联系,PDP 迷你计算机的雅称不翼而飞。它的售价只有 18500 美元,比当时任何公司的电脑产品都低,很快便成为 DEC 获利的主导产品,并引发了当时计算机市场的小型化革命。PDP-8 被认为是个人电脑的先驱。
注:小型机一种介于个人服务器和大型机之间的高性能计算机,一般认为,传统小型机是指采用 RISC(精简指令集)、MIPS 等专用处理器,主要支持 UNIX 操作系统的封闭、专用的计算机系统,所以又称 RISC 服务器或 UNIX 服务器。大型机与小型机的区别并不是很明显,它们与 x86 服务器的区别主要是在于 RAS、I/O 吞吐量以及 ISA(指令集架构)。
注:早在上世纪 70 年代初,基于 IBM 科学家 John Cocke 的发明,RISC 的理念大大简化了计算机操作指令,加快系统运行速度,使得计算机性能得到大幅度提升。如今,RISC 架构已经广泛应用于众多工作站和 UNIX 服务器系统中,并被看作是未来主流的计算架构。
1965 年,由贝尔实验室(Bell Labs),麻省理工学院(MIT)以及通用电气公司(General Electric)共同发起的 Multics 项目,Multics 意为多用户、多任务、多层次(Multi-User、Multi-Processor、Multi-Level),就是让大型计算机可以同时提供 300 台以上的终端机使用。Multics 项目是 Unix 操作系统的前身。
同样在 1965 年,戈登·摩尔提出了著名的 “摩尔定律”,摩尔说,在成本不变的前提下,半导体芯片(微处理器)上的晶体管密度(运算速度),平均每 18-24 个月会翻一番。戈登·摩尔后来成为英特尔的主席和 CEO,而摩尔定律在近 30 年始终被证明有效。
在虚拟化技术解决了单一计算机的生产效率问题之后,人们又开始考虑起了生产组织形式的问题,网络互联的概念逐渐被得到重视。
1968 年,拉里·罗伯茨提交研究报告《资源共享的计算机网络》,其中着力阐述了让 ARPA(Advanced Research Project Agency,美国高级研究计划署)的计算机互相连接,从而使大家分享彼此的研究成果。根据这份报告组建的国防部 “高级研究计划网”,就是阿帕网(ARPA-NET),Internet(因特网)的前身,拉里·罗伯茨也被称之为阿帕网之父。
1969 年,阿帕网的第一个实用原型问世。将加利福尼亚州大学洛杉矶分校、加州大学圣巴巴拉分校、斯坦福大学、犹他州大学四所大学的 4 台大型计算机进行了互联。
同样在 1969 年,贝尔实验室决定退出 Multics 计划,并由肯·汤普逊(Ken Thompson)独自经过 4 个星期的奋斗,以汇编语言写出了一组内核程序,同时包括一些内核工具程序,以及一个小的文件系统,这就是伟大的 UNIX 操作系统的原型。
1971 年,Intel 公司设计了世界上第一个微处理器芯片 Intel 4004,并以它为核心组成了世界上第一台微型计算机 MCS-4,从此揭开了微型计算机发展的序幕。微型计算机是第四代大规模集成电路计算机的典型代表。
1973 年,贝尔实验室的丹尼斯·里奇(D.M.Ritchie)以 B 语言为基础开发了一种称为 C 的编程语言。C 语言的设计原则就是好用,非常自由、弹性很大。 汤普逊和里奇使用 C 语言完全重写了 UNIX,此后 UNIX 就真正成为了可移植的操作系统,那时已是 1977 年。就这样 UNIX 和 C 语言完美地结合成为了生命共同体,随着 UNIX 的发展,C 语言也得到了不断的完善。因为 C 是编写 UNIX 的语言,因此后来也成了最受欢迎的系统程序语言之一。
说实话,UNIX 和 C 语言的结合是一个伟大的时刻,在此之前,使用汇编语言来编写能够发挥计算机最高效能的操作系统是业界共识。所以,当汤普逊和里奇决定使用高级编程语言来编写操作系统时,就意味着他们对硬件系统、操作系统和编译系统的组织关系有着超前的理解。C 语言为 UNIX 带来的可移植性极具创造性,当一种新的计算机出现时,程序员不用重新发明轮子。这样,UNIX 与 70 年代风起云涌的各种操作系统有了根本区别。正是这一次创造性的将开发工具和操作系统的完美结合,才得以滋生出深邃的黑客文化。而又是黑客这一群离经叛道的人,推动了捍卫软件自由的开源运动。一切皆有因果。
1974 年,Gerald J. Popek(杰拉尔德·J·波佩克)和 Robert P. Goldberg(罗伯特·P·戈德堡)在合作论文《可虚拟第三代架构的规范化条件》(“Formal Requirements for Virtualizable Third Generation Architectures”)中提出了一组称为虚拟化准则的充分条件,又称波佩克与戈德堡虚拟化需求(Popek and Goldberg virtualization requirements),即:虚拟化系统结构的三个基本条件。满足这些条件的控制程序才可以被称为虚拟机监控器(Virtual Machine Monitor,简称 VMM):
该论文尽管基于简化的假设,但上述条件仍为评判一个计算机体系结构是否能够有效支持虚拟化提供了一个便利方法,也为设计可虚拟化的计算机架构给出了指导原则。同时,Gerald J. Popek 和 Robert P. Goldberg 还在论文中介绍了两种 Hypervisor 类型。
类型 I(裸金属 Hypervisor):这些虚拟机管理程序直接运行在宿主机(Host)的硬件上来控制硬件和管理虚拟机。
特点:
类型 II(寄居式 Hypervisor):VMM 运行在传统的宿主机操作系统(Host OS)上,就像其他应用程序那样运行。
特点:
由于技术的原因,早期的 VMM 产品大多实现的是寄居式,例如:VMware 5.5 以前的版本、Xen 3.0 以前的版本。随着技术的成熟,主要是硬件虚拟化技术的诞生,几乎所有的 VMM 产品都转向了裸金属 Hypervisor 实现。例如:VMware 5.5 及以后版本、Xen 3.0 及以后版本以及 KVM。一切皆为效率!
1977 年,IBM 提交了一项《用于恢复故障存储单元中存储的数据的系统》(“SYSTEM FOR RECOVERING DATA STORED IN FAILED MEMORY UNIT”)的专利,并与次年获得了独立磁盘冗余阵列(Redundant Arrays of Independent Disks,RAID)的专利。RAID 可以将物理磁盘设备组合为虚拟化的存储池,然后从池中划分出一组逻辑单元号(Logical Unit Number,LUN)并提供给主机使用。虽然该概念直到 1988 年 IBM 才与加利福尼亚州立大学伯克利分校联合开发了第一个实用版本,但 RAID 技术的确是第一次将虚拟化的概念引入到存储领域。
在上世纪 60 到 70 年代末,大中型计算机和虚拟化技术互相成就了对方,并且在相当长的一段时间里,虚拟化技术也只被应用于大中型计算机。其实也可以理解,以当时微处理器的处理能力,应付一两个应用程序已然捉襟见肘,的确没有更多的资源分与虚拟应用了。但请不要忘记,只要摩尔定律一天不失效,那么属于微处理器的时代总将会到来。Intel 和 x86 架构抓住了这次机会!
自 1971 年,微型计算机诞生以来,人们对微机的热情几近疯狂,美国新闻界就曾对群众进行过问卷调查,问人们是否希望在不久的将来拥有一台家用计算机,结果超 80% 的人表达了这个愿望。往后的几年里,面对巨大的市场和商机,直接体现为全球计算机的产量逐渐从巨大、昂贵的中型计算机转变为小型、便宜的微型计算机。台式电脑成为变革的前沿,各种各样的微处理器和微型计算机如潮水般地涌入市场,尤其是以 IBM 推出的 PC(Personal Computer,个人计算机)电脑在早期几乎形成了垄断地位。如果没有后来的 Wintel 联盟的话。
1978 年 6 月 8 日,英特尔(Intel)发布了新款的 16 位微处理器 8086,自此开创了一个新的时代,属于 x86 架构的时代,直至今天。
注:x86 架构并非至某一个芯片的信号,而是指代 Intel 通用计算机系列的标准编号缩写,也标识一套通用的计算机指令集合。
20 世纪 80 年代初,微软和英特尔组成商业联盟 Wintel,希望以此来取代 IBM PC 在个人计算机市场上的主导地位。依靠英特尔的摩尔定律和微软 Windows 桌面(Desktop)操作系统的升级换代,双方通过共同辖制下游 PC 生产商而不断攫取巨额暴利,以至于在全球个人电脑产业形成了所谓的 “双寡头垄断” 格局。直到 2016 年微软在 WinHEC 上宣布 Windows 10 可以运行在 ARM 架构之上,标志着垄断桌面端长达 20 多年的 Wintel 联盟正式破裂。但不可否认的是,正因为有了 Wintel 的强悍联合,才使个人电脑的发展日新月异。
1979 年,Unix 的第 7 个版本引入了 chroot 机制,意味着第一个操作系统虚拟化(OS-level virtualization)诞生了。chroot 是直到现在我们依然在使用的一个系统调用,这个系统调用会让一个进程把指定的目录作为根目录,它的所有文件系统操作都只能在这个指定目录中进行,本质是一种文件系统层的隔离。操作系统虚拟化这个说法你或许会感到陌生,但容器(Container)这一称呼你应该非常熟悉。
1980 年,IBM 发布了第一台基于 RISC(精简指令集计算机)架构的小型机。
1987 年,Insignia Solutions 公司演示了一个称为 SoftPC 的软件模拟器,这个模拟器允许用户在 Unix Workstations 上运行 DOS 应用。当时一个可以运行 Microsoft DOS 的 PC 需要 1,500 美金,而使用 SoftPC 模拟,就可以直接在大型工作站上运行 Microsoft DOS 了。
1989 年,Insignia Solutions 发布了 Mac 版的 SoftPC,使苹果用户不仅能运行 DOS,还能运行 Windows 操作系统。
1990 年,Keir Fraser 和 Ian Pratt 创建了 XenServer 的初始代码工程。
同年,IBM 推出基于 RISC 系统、运行 AIX V3 的新产品线 RS/6000(现在称为 IBM eServer p 系列)。该系统架构后来被称为POWER(POWER 1),意为增强 RISC 性能优化架构(Performance Optimization With Enhanced RISC)。
GNU/Linux:开源上帝。
随着 x86 服务器(Server)和桌面(Desktop)部署的增长也为企业 IT 基础架构带来了新的难题:
IT 运维成本高
基础设施利用率低下
故障切换和灾难保护不足
而解决这些难题就是新时代付予虚拟化技术的历史任务,自上世纪 80 年代开始,虚拟化技术及公司如同雨后春笋般涌现,它们都是云计算时代来临的奠基者。
1993 年,IBM 推出可升级的 POWER 并行系统,这是第一款采用 RS/6000 技术,基于微处理器的超级计算机。在该系统中,IBM 首次应用多处理器技术,可将复杂密集的任务进行分解,大大加快了计算机的运算速度,开创了业界先河。
1997 年,苹果发布了 Virtual PC,后来又卖给了 Connectix 公司。
1997 年,IBM “深蓝” 超级计算机在经过多局较量后,击败了国际象棋冠军 Garry Kasparov。“深蓝” 是一款 32 节点的 IBM RS/6000 SP 计算机,处理器采用 32 位 P2SC,运行 AIX 操作系统。在比赛期间,“深蓝” 的平均运算速度为每秒 1 亿 2600 万步。目前,这台超级计算机被安放在美国华盛顿特区的史密森国家博物馆内。
1998 年,著名的 x86 仿真模拟器 Bochs 发布。
1998 年 9 月 4 日,Google 公司成立,并于 1999 年下半年,谷歌搜索网站 “Google” 正式启用。
1998 年,VMware 公司成立。并在一年后率先推出针对 x86 平台推出了可以流畅运行的商业虚拟化软件 VMaware Workstation。从此虚拟化技术终于走下了大型机的神坛。
1999 年,IBM 在 AS/400 上第一次提出了 LPAR(Logical Partition,逻辑分区)虚拟化技术,LPAR 将计算机的处理器、内存和存储器划分为多组资源,以便每一组资源都可以独立地与自己的操作系统实例和应用程序一起运行。AS/400 利用 LPAR 技术使得单台服务器被虚拟化为如同 12 台独立的服务器。这一优势使得 AS/400 成为了世界上最流行的中小型、多用户商业计算机系统之一,在多用户服务器领域里,始终保持着最畅销的地位。
1999 年,IEEE(Institute of Electrical and Electronics Engineers,电气电子工程师学会)颁布了 VLAN 802.1Q 协议标准草案,VLAN 协议可将大型网络划分为多个小型局域网络,有效避免了广播风暴和提升了网络间的安全性。
1999 年,当时 37 岁的甲骨文(Oracle)高级副总裁,俄罗斯裔美国人马克·贝尼奥夫(Marc Benioff)创办了 Salesforce 公司,是第一家通过网站提供企业级应用程序的公司,即 SaaS(Software as a service)的开山鼻祖。
2000 年,FreeBSD jail,真正意义上的第一个功能完整的操作系统虚拟化技术。利用这个技术,FreeBSD 的系统管理者,可以创造出几个小型的软件系统,这些软件系统被称为 jails(监狱)。
2000 年,IEEE 颁布了 VPN(Virtual Private Network,虚拟专用网)标准草案,VPN 技术使得私有网络可以跨公网进行访问。
2000 年,Citrix(思杰)桌面虚拟化产品发布。
2001 年,VMware 发布 ESX 和 GSX,是 ESXi 的前身。
2001,Fabrice Bellard 发布了目前最流行的、采用了动态二进制翻译(Binary Translation)技术的开源虚拟化软件 QEMU(Quick EMUlator)。直至 2019 年 QEMU 4.0.0 发布并对外宣称几乎可以模拟所有的设备。天啊,这简直就是个奇迹般的伟大软件,Fabrice Bellard 真的是一位天才。
2003 年,英国剑桥大学的一位讲师发布了开源虚拟化项目 Xen 1.0,并成立 XenSource 公司,通过半虚拟化技术为 x86-64 提供虚拟化支持。往后,基于 Xen 虚拟化解决方案陆续被 Redhat、Novell 和 Sun 等的 Linux 发行版集成,作为默认的虚拟化解决方案。
2003 年,存储设备厂商 EMC 宣布以 6.35 亿美元的价格收购了创立仅 5 年的虚拟技术公司 VMware,成为 EMC 迄今最成功的一笔收购。
2003 年,Intel 正式公布将在 x86 平台的 CPU 上支持硬件虚拟化技术 VT。
2003 年,Microsoft 收购 Connectix 获得 Virtual PC 虚拟化技术进入桌面虚拟化领域,之后很快推出了 Virtual Server 免费版。
2003 年,Google 发布了引爆大数据时代的三大论文之一《The Google File System》,讲述了一种可扩展的分布式文件系统,其运行于廉价的普通硬件上,具有很好的容错能力等特性,可应用于大型的、分布式的、对大量数据进行访问的应用。
2004 年,Nutch 创始人 Doug Cutting 基于 Google 的 GFS 论文实现了分布式文件存储系统名为 NDFS。
2004 年,微软发布 Virtual Server 2005 计划,业界评价为:“虚拟化正从一个小市场向主流市场转变”。
2004 年,Google 发布了引爆大数据时代的三大论文之二《MapReduce: Simplified Data Processing on Large Clusters》,讲述了大数据的分布式计算方式,即将任务分解然后在多台处理能力较弱的计算节点中同时处理,然后将结果合并从而完成大数据处理。
2004 年,IBM 发布了虚拟化解决方案 APV(Advanced Power Virtualization),支持资源共享。该方案在 2008 年改名为 PowerVM。
2004 年,斯坦福大学启动 Clean Slate 项目组,最终目的是要重新发明英特网,旨在改变设计已略显不合时宜,且难以进化发展的现有网络基础架构。
2005 年,OpenVZ 发布,这是 Linux 操作系统的容器化技术实现,同时也是 LXC 的核心实现。
2005 年,Doug Cutting 又基于 MapReduce,在 Nutch 搜索引擎实现了该功能。
2005 年 8 月,Intel 首次推出针对硬件辅助虚拟化的 Vanderpool(Intel VT 虚拟化技术的前身)技术细节。Vanderpool 技术通过增加新的指令,使得 Intel 处理器支持硬件虚拟化。
2005 年 11 月,Intel 发布了 Xeon MP 处理器系统 7000 系列,并宣布虚拟化技术 Vanderpool 更名为 VT(Vanderpool Technology,后广泛称之为 Virtual Technology)。 一个月后,Xen 3.0.0 发布,该版本可以在 32 位服务器上运行作为第一个支持 Intel VT-x 的虚拟机监控程序。从而使得 Xen 虚拟机可以运行完全没有被修改过的操作系统,该版本是 Xen 真正意义上可用的版本。
2006 年,Intel 和 AMD 等厂商相继将对虚拟化技术的支持加入到 x86 体系结构的中央处理器中(AMD-V,Intel VT-x),使原来纯软件实现的各项功能可以用借助硬件的力量实现提速。
2006 年,红帽将 Xen 虚拟机作为企业版 RHEL 的默认特性。
2006 年,AMD 宣称其 I/O 虚拟化技术规范已经成型且技术授权完全免费。
2006 年 10 月,以色列的创业公司 Qumranet 在完成了虚拟化 Hypervisor 基本功能、动态迁移以及主要的性能优化之后,正式对外宣布了 KVM(Kernel-based Virtual Machine,基于内核的虚拟机)的诞生。
2006 年,Google 发布了引爆大数据时代的三大论文之三《Bigtable: A Distributed Storage System for Structured Data》,讲述了用于存储和管理结构化数据的分布式存储系统,其建立在 GFS、MapReduce 等基础之上。该论文启发了后期的很多的 NoSQL 数据库,包括 Cassandra、HBase 等。
2006 年,Yahoo 雇用了 Doug Cutting,Doug Cutting 将 NDFS 和 MapReduce 升级命名为 Hadoop,Yahoo 开建了一个独立的团队给 Doug Cutting 专门研究发展 Hadoop。
2006 年,Google 首席执行官埃里克•施密特(Eric Schmidt)在搜索引擎大会首次提出 “云计算” 的概念。
2006 年,Amazon Web Services(AWS)开始以 Web 服务的形式向企业提供 IT 基础设施服务,包括弹性计算网云(EC2)、简单储存服务(S3)、简单数据库(SimpleDB)等,现在通常称为云计算。
2006 年,斯坦福的学生 Martin Casado 发表了他们的成果,一个关于网络安全与管理的项目 Ethane,该项目试图通过一个集中式的控制器,让网络管理员方便地定义基于网络流的安全控制策略,并将这些安全策略应用到各种网络设备中,从而实现对整个网络通讯的安全控制。
2007 年 1 月,德国 InnoTek 公司开发了 VirtualBox 虚拟化软件,并由 Sun Microsystems 公司以 GNU 通用公共许可证(GPL)出品,提供了二进制版本及开放源代码版本的代码。
2007 年 2 月,Linux Kernel 2.6.20 合入了 KVM 内核模块,使用 KVM 的前提是 CPU 必须要支持虚拟化技术。
2007 年 6 月,RedHat 在所有平台和管理工具中包含了 Xen 虚拟化功能。
2007 年,Novell 在推出的企业级 SLES(Suse Linux Enterprise Server)10 中添加了 Xen 虚拟化软件。
2007 年 7 月,Intel 向 VMware 投资 2.185 亿美元。
2007 年 8 月,Cisco 向 VMware 投资 1.5 亿美元。
2007 年 10 月,Citrix 公司出资 5 亿美金收购了 XenSource,变成了 Xen 虚拟机项目的东家。之后推出了虚拟化产品 “Citrix 交付中心”。
2007 年 11 月,IBM 发布云计算商业解决方案,Blue Cloud(蓝云)计划。
2007 年 11 月,Oracle 宣布推出 Oracle VM,与 VMware 提供单一的虚拟机方案不同,Oracle VM 虚拟化完全集成于整个应用架构中,其提供了一个完整的从应用程序到磁盘栈的解决方案。
2008 年 1 月,Salesforce 推出了 DevForce,支持开发人员使用 Apex 编程语言。
2008 年 2 月,InnoTek 软件公司被 Sun 公司所并购。
2008 年 4 月,Google App Engine 发布,是 Google 管理的数据中心中用于 WEB 应用程序的开发和托管的平台。
2008 年第一季度,微软同时发布了 Windows Server 2008 R2 及虚拟化产品 Hyper-V。
2008 年 6 月,Linux Container(LXC) 发布 0.1.0 版本,其可以提供轻量级的虚拟化,用来隔离进程和资源。是 Docker 最初使用的容器技术支撑。
2008 年 9 月 4 日,RedHat 收购以色列公司 Qumranet,并着手使用 KVM 替换在 RedHat 中的使用的 Xen。
2008 年 9 月,Google 推出 Google Chrome,以谷歌应用程序为代表的基于浏览器的应用软件发布,将浏览器融入了云计算时代。
2008 年 9 月,Cisco 与 VMware 在 VMworld 大会上宣布联合推出下一代软件交换机 Nexus 1000v。Nexus 1000v 是一个安装在 VMware vSphere 平台内的软件包,替代了 vSphere 本身的 vSwitch 软件交换机,通过 vSphere 的开放 API 管理虚拟化平台的流量。Nexus 1000v 几乎是一个一比一的复刻版 OpenFlow,同 Nicira 的核心产品 NPV(Network Virtualization Platform,网络虚拟化平台)在某些方面也非常相似。
2008 年 10 月,微软发布公有云计算平台 Windows Azure Platform。主要目标是为开发者提供一个平台,帮助开发可运行在云服务器、数据中心、Web 和 PC 上的应用程序。
2008 年,开源云计算平台 OpenNebula 推出 1.0 版本。后被选作中国移动 BigCloud(大云)的云架构基础。
2008 年,Martin 和他的导师 Nick McKeown 教授受到 Ethane 项目的启发,发现,如果将 Ethane 的设计更一般化,将传统网络设备的数据转发(Data Plane)和路由控制(Control Plane)两个功能模块相分离,通过集中式的控制器(Controller)以标准化的接口对各种网络设备进行管理和配置,那么这将为网络资源的设计、管理和使用提供更多的可能性,从而更容易推动网络的革新与发展。在 ACM SIGCOMM 中,他们发表了题为《OpenFlow: Enabling Innovation in Campus Networks》的论文,首次详细地介绍了 OpenFlow 的概念。这篇论文被大部分人作为 SDN(Software Defined Networking/Networks,软件定义网络) 诞生的起点。
2009 年 9 月,红帽发布 RHEL 5.4,在原先的 Xen 虚拟化机制之上,将 KVM 添加了进来。同年,阿里云写下第一行代码。
2009 年,Cisco 发布统一计算系统 UCS(Unified Computing System)作为云计算服务平台,具有无状态计算、设备统一管理、低延迟等特性。同时,Cisco 与 EMC、VMware 建立虚拟计算环境联盟。
2009 年 4 月,VMware 推出业界首款云操作系统 VMware vSphere。
2009 年 7 月,Google 宣布将推出 Chrome OS。
2009 年 9 月,VMware 启动 vCloud 计划构建全新云服务。
2009 年 9 月,美国 GSA(General Services Administration)创建了 http://Apps.gov 站点,旨在提供简单的采购商业云产品和服务的方式。
2009 年,美国 CSA(Cloud Security Alliance)发布了《Security guidance for critical areas of focus in cloud computing V1.0》版本。
2009 年 11 月,中国移动云计算平台 Big Cloud 计划启动。
2009 年 11 月,开源云计算平台 Eucalyptus 推出 1.6 版本。
2010 年 1 月,Microsoft 正式发布 Microsoft Azure 云平台服务。
2010 年 1 月,Oracle 公司完成对 Sun 公司的收购,VirtualBox 更名为 Oracle VM。
2010 年,美国 CSA 发布了《Cloud Control Matrix V1.0》版本。
2010 年,德国政府发布了《Security Recommendations Cloud Computing Providers 》,该文档在 NIST 一系列成果的基础上,构建了云计算安全体系结构,涵盖了数据中心、服务器、网络、应用程序和平台、数据、加密和密钥管理等方面所需的安全能力。
2010 年 5 月,中国电信启动星云计划。
2010 年,Linus Torvalds 将 Ceph Client 合并到内核 2.6.34 中。
2010 年 6 月,国家提出 “互联网、云计算、物联网、知识服务、智能服务的快速发展为个性化制造和服务创新提供了有力工具和环境”,将云计算应用提上了创新生产方式的高度。
2010 年 7 月,NASA 贡献了云计算管理平台 Nova 代码,Rackspace 云存储(对象存储)代码,发起了 OpenStack 云操作系统开源项目。同年 10 月 21 日,发布了首个版本 Austin(奥斯丁)。OpenStack 挽手自主可控的口号,推动了云计算在国内的全面爆发。
2010 年 10 月,我国国家发展和改革委员会、工业和信息化部联合发布了《关于做好云计算服务创新发展试点示范工作的通知》,在北京、上海、深圳、杭州、无锡等五个城市先行开展云计算创新发展试点示范工作。
2010年11月,红帽发布 RHEL 6.0,这个版本将默认安装的 Xen 虚拟化机制彻底去除,仅提供 KVM 虚拟化机制。
当年,Xen 虽然作为一项广泛应用于 Linux 发行版中的虚拟化技术,但却迟迟没有集成到 Linux 内核中,红帽也许是出于对这种脱离内核的维护方式感到不爽,加之当时思杰和微软表现的很非常亲密,导致红帽萌生了放弃 Xen 的想法,并在正式采用 KVM 的一年后,就宣布彻底放弃 Xen。硬件辅助虚拟化的到来,Xen 引以为傲的半虚拟化技术也随之在主流 Linux 发行厂商中衰落了。
2011 年 1 月,美国 NIST(National Institute of Standards and Technology)发布了《Guidelines on Security and Privacy in Public Cloud Computing》,概要了公有云计算环境中的安全和隐私挑战、分析了云计算带来的好处与负面效应。
2011 年 1 月,美国 NIST 发布了《The NIST Definition of Cloud Computing》,给出了云计算的参考定义。
2011 年 2 月,美国联邦政府 CIO 发布了《Federal Cloud Computing Strategy》,明确提出美国政府信息技术向云计算方式迁移,并推行 Cloud First 计划。
2011 年初,IBM 找上老搭档红帽,表示 KVM 这个东西值得加大力度去做。于是到了 5 月,IBM 和红帽,联合惠普和英特尔一起,成立了开放虚拟化联盟(Open Virtualization Alliance),加速 KVM 投入市场的速度,由此避免 VMware 一家独大的情况出现。联盟成立之时,红帽的发言人表示:“大家都希望除 VMware 之外还有一种开源选择。未来的云基础设施一定会基于开源。我们想要营造一个小厂商们可以轻松加入的生态环境。”
ps:现在回头再看,企业之所以能够长盛不衰,长远的洞察力至关重要。
2011 年,苹果发布了 iCloud,让人们可以随时、随地的存储和共享内容。
2011 年 3 月,德国电信、Facebook、Google、Microsoft、NTT Communication、Verizon 和 Yahoo 联合成立了 ONF(Open Networking Foundation,开放网络基金会),这是 OpenFlow 发展史上的里程碑,ONF 的成立标志着 OpenFlow 从散兵游勇的野蛮生长状态正式过渡到产业化发展的轨道中。
2011 年 5 月,NEC 面向虚拟化数据中心和云服务市场,推出了第一台可商用的 OpenFlow 交换机。
2011 年 5 月,美国 NIST 发布了《Cloud Computing Synopsis and Recommendations》,解释了云计算技术的工作机制、指出了云中未决问题包括云可靠性、信息安全等,并向信息技术决策人员提供了采用云计算的建议。
2011 年 7 月,Citrix 收购了 http://Cloud.com,后者旗下拥有采用 GPLv3 授权协议的 CloudStack 开源项目。
2011 年 7 月,美国 NIST 发布了《NIST Cloud Computing Standards Roadmap》,旨确定云计算不同标准化事项的优先级,以使云计算及其应用的通信、数据交换、安全更加容易实现。
2011 年 8 月,IETF 发布了 RFC 7348:Virtual eXtensible Local Area Network (VXLAN): A Framework for Overlaying Virtualized Layer 2 Networks over Layer 3 Networks 草案,主要由 VMware 与 Cisco 公司草拟。该技术利用 L2 over UDP 机制传输原始报文、利用 VxLAN 头中 24bits 的 VNI 信息将传统 VLAN 标记扩展至 16MB。
2011 年 9 月,IETF 发布了 RFC 7637:NVGRE: Network Virtualization Using Generic Routing Encapsulation 草案,主要由 Microsoft 草拟。该技术利用 L2 Over GRE 机制传输原始报文、利用 GRE Key 字段中的高 24bits 将 VLAN 数据扩展至 16MB。
2011 年 9 月,美国 NIST 发布了《NIST Cloud Computing Reference Architecture》,给出了云计算的参考架构,指出云计算中涉及的各种主要角色、活动及其功能。
2011 年 10 月,Cisco 在数据中心官方博客上宣布会在 Nexus 交换机上提供对 OpenFlow 的支持。
2011 年 10 月,Juniper 开始在 Junos 操作系统 SDK 中添加 OpenFlow 代码。
2011 年 11 月,美国 NIST 发布了《US Government Cloud Computing Technology Roadmap Vol I, II, III》。其中,卷 I 用于描述联邦政府在未来采用云计算时必须满足的安全性、互操作性和可移植性的要求;卷 II 提供致力于云计算战略和策略的相关信息;卷 III 作为计划和实现云计算解决方案的指导。
2011 年 12 月,美国 OMB 发布 FedRAMP 备忘录,正式建立 FedRAMP 云计算风险管理与授权项目,旨在提供一个标准化的方法来对云计算产品和服务进行安全评估、授权和联系监视。
2012 年 2 月,IETF 发布了 A Stateless Transport Tunneling Protocol for Network Virtualization (STT) 草案,主要由 Nicira 草拟。该技术利用 L2 Over Stateless TCP 机制在传输原始报文、利用 STT 头中的 64bits Context ID 标识二层网络分段。
2012 年 4 月,Citrix 将 CloudStack 捐献给 Apache 基金会。
2012 年 4 月,OpenStack 发布了 Essex 版本,其在试用组件中提供了 Quantum 网络组件,用于实现类似于 VMware NSX(前身为Nicira Network Virtualization Platform)的网络虚拟化功能。该组件在 2012.10 OpenStack Folsom 版本中进行了正式发布;后因为商标侵权的原因,Openstack 在 Havana 版本上将 Quantum 更名为 Neutron。
2012 年 7 月,Sage 发布了分布式存储系统 Ceph 第一个 LTS 版本 Argonaut。
2012 年,VMware 以 12.6 亿美元收购了初创公司 Nicira(Ethan 项目曾经的三位重要成员 Martin Casado、Nick McKeown 和 Scott Shenker 合伙成立),推出了 VMware 网络虚拟化解决方案 NSX。结合存储虚拟化解决方案 VSAN,提出了软件定义数据中心 SDDC 的构想。
2012 年,Ceph 拥抱 OpenStack,进入 Cinder 项目,成为重要的存储驱动。
2012 年,工业和信息化部电信研究院发布《云计算白皮书》。
2013 年,IBM 收购 SoftLayer,提供业界领先的私有云解决方案。
2013 年,澳大利亚政府出台了《The National Cloud Computing Strategy》用于布局云计算总体发展。
2013 年 3 月 15 日,在加利福尼亚州圣克拉拉召开的 Python 开发者大会上,DotCloud 的创始人兼首席执行官 Solomon Hvkes 在一场仅五分钟的微型演讲中,首次提出了 Docker 这一概念,并于会后将其源码开源并托管到 Github。最初的 Docker 就是使用了 LXC 再封装了其他的一些功能。可以看出,Docker 的成功,与其说是技术的创新,还不如说是一次组合式的创新。
2014 年,澳大利亚发布了最新的《Australian Government Cloud Computing Policy》,以进一步推动云计算产业发展
2014 年 3 月,微软正式宣布 Microsoft Azure 在中国正式商用,由世纪互联运营,名为 Windows Azure;同年 4 月,微软 Office 365 正式落地中国。
2014 年,英国政府于 2014 年宣布正式采用 “政府云服务G-Cloud”。
2014 年 7 月,中国电子技术标准化研究院发布《云计算标准白皮书》。
2014 年,中华人民共和国国家质量监督检验检疫总局、中国国家标准化管理委员会联合发布了联合发布了 GB/T 31167-2014《信息安全 云计算服务安全指南》、GB/T 31168-2014《信息安全技术 云计算服务安全能力要求》。
2014 年,美国 NIST 发布了《Security Recommendations for Hypervisor Deployment》、《Secure Virtual Network Configuration for Virtual Machine (VM) Protection》云安全指导手册。
2014 年 6 月,Docker 发布了第一个正式版本 v1.0。同年,Redhat 和 AWS 就宣布了为 Docker 提供官方支持。
2015 年 4 月,Citrix 宣布以企业赞助商的方式加入 OpenStack 基金会,不久后的 7 月,谷歌也加入了 OpenStack 基金会。
2015 年 7 月 21 日:Kubernetes v1.0 发布!进入云原生时代。
2015 年 10 月,Dell 宣布将以 670 亿美元收购 EMC,从而成为全球科技市场最大规模的并购交易。
2015 年 12 月,在中国国家标准化管理委员会下达的 2015 年第三批国家标准修订计划中,正式下达 17 项云计算国家标准制修订计划。
2015 年,中华人民共和国国家质量监督检验检疫总局、中国国家标准化管理委员会联合发布了 GB/T 32399-2015《信息技术 云计算参考架构》与 GB/T 32400-2015《信息技术 云计算概览与词汇》标准。
2016 年 1 月,微软公司首席执行官萨提亚· 纳德拉在达沃斯论坛上宣布了一项全新的计划 —— Microsoft Philanthropies。作为计划的其中一部分,微软将在未来三年为 7 万家非营利组织以及高校科研机构提供价值 10 亿美元的微软云计算服务,借助云计算提供的数据存储、分析及预测等技术,帮助公益事业构建长期发展能力。
2016 年 10 月,VMware 和亚马逊旗下公司 Amazon Web Services 达成战略联盟,将 VMware 软件定义数据中心(SDDC)带入 AWS Cloud,支持客户在基于 VMware vSphere 私有云、公有云以及混合云环境下运行各种应用,并获得对 AWS 服务的最佳访问。
2017 年 4 月,中国工业和信息化部信息化和软件服务业司发布了《云计算发展三年行动计划(2017-2019年)》, 旨在促进云计算在各行业的快速应用,推动各领域信息化水平大幅提高。
2017 年 5 ~ 7 月,中华人民共和国国家质量监督检验检疫总局、中国国家标准化管理委员会联合发布了GB/T 33780-2017《基于云计算的电子政务公共平台技术规范》、GB/T 34080-2017《基于云计算的电子政务公共平台安全规范》、GB/T 34078-2017《基于云计算的电子政务公共平台总体规范》、GB/T 34077-2017《基于云计算的电子政务公共平台管理规范》
2017 年 8 月,在 VMworld 2017 大会上,VMware 和 Amazon Web Services 共同宣布 VMware Cloud on AWS 初步可用。
2017 年 10 月,AWS 已经宣布已经创建了新的基于 KVM 的虚拟化引擎,新的 C5 实例和未来的虚拟机将不使用 XEN,而是核心的 KVM 技术。
2017 年 10 月,中国信息安全标准化技术委员会对《信息安全技术 网络安全等级保护基本要求》(GB/T 22239-XXXX 替代 GB/T 22239-2008)进行了讨论和解读。将等级保护在编的 5 个基本要求分册标准进行了合并形成《网络安全等级保护基本要求》一个标准。基本要求的内容由一个基本要求变更为安全通用要求和安全扩展要求(含云计算、移动互联、物联网、工业控制)。
2017 年 11 ~ 12 月,中华人民共和国国家质量监督检验检疫总局、中国国家标准化管理委员会联合发布了GB/T 34982-2017《云计算数据中心基本要求》、GB/T 34942-2017《信息安全技术 云计算服务安全能力评估方法》、GB/T 35301-2017《信息技术 云计算 平台即服务(PaaS)参考架构》、GB/T 35293-2017《信息技术 云计算 虚拟机管理通用要求》、GB/T 35279-2017《信息安全技术 云计算安全参考架构》。
2018 年 1 月,Redhat 宣布收购 Kubernetes 与容器原生解决方案创新者与领导厂商 CoreOS,交易金额 2.5 亿美金。Redhat 表示:“该收购将进一步增强利用开源的灵活性,让企业用户在任何环境构建并部署任何应用的愿景。该交易将夯实红帽作为混合云与现代应用开发基石的地位。”
2018 年,IBM 正式收购 Redhat 以弥补在云计算市场的战略失败。
2018 年,微软收购 Github。开源的历史会铭记这一天。
2019 年,云计算领域 12 项国家标准获批正式发布。
2019 年,全球最大的开源盛会 KubeCon + CloudNativeCon + Open Source Summit、Open Infrastructure Summit 相继在上海举办。中国的开源会铭记这一天。
注:本篇文章将会一直更新下去!
对于篇幅较长的文章,我都习惯使用三句话来进行总结:
https://www.ibm.com/developerworks/cn/linux/l-cn-vt/index.html
https://zhuanlan.zhihu.com/p/33608591