云计算技术背后的那些天才程序员:KVM之父Avi Kivity

摘要:KVM以其精简的架构,清晰的定位获得Linux社区多数开发人员的支持并快速被合并入主干,从而成为x86全虚拟化技术的一颗新星,其提出者Avi Kivity对于计算机体系架构和Linux内核有深入理解,并且精通汇编和C。

提到以色列,自然会使人联想到犹太人和犹太教及其在二十世纪前半叶所遭受的种种苦难,作为这个世界上最古老的民族之一,除了其沉重的历史之外,更使人惊叹的是,这个面积仅有2.2万平方公里的弹丸之地,在短短几十年中转变成为了高科技研发和创新的“全球性大国”。或许,时刻处于强敌环伺的危险境地能够激发人类最原始的创造力,使得以色列在诸多领域出类拔萃,尤其在信息科技领域尤为突出,世界上最大的科技公司不约而同都选择在以色列设立研发中心,而且成果卓著,例如,Intel x86家族中比较重要的两代CPU,Sandy Bridge和Ivy Bridge都是由Intel以色列的研发中心研发的,蓝色巨人IBM也早在上世纪七十年代就在以色列设立了庞大的研发中心,且成果斐然。


但是,值得称道的是科技巨头在以色列的成功并不能掩盖个体的创新力量所散发出的光芒,尤其在云计算领域,当崇尚人格自由,同时又具有坚强性格这两种特质结合在一起所爆发出的创新的力量,使得草根创业公司和个体也敢于在前沿领域与科技巨头一争长短,其中的代表性人物就是Avi Kivity和他所在的以色列初创公司Qumranet,Avi Kivity提出并推动KVM(基于Linux内核的全虚拟化方案),以其精简的架构,清晰的定位很快获得Linux社区多数开发人员的支持得以快速被合并进入主干,从而成为x86全虚拟化技术的一颗新星。

虚拟化技术的由来与所面临的挑战

信息技术领域本不应是一个缺乏远见的领域,但事实正好相反,蓝色巨人IBM发明了PC,但失去了整个桌面,Intel发明并主导x86架构的处理器,提出了摩尔定律,但是失去了整个掌上,而且,即使是处于鼎盛时期的Intel,即使有摩尔定律指路,也没有人能料到,有朝一日x86家族的处理器几乎快要统治整个数据中心,而且x86家族处理器计算能力的提升速度快到可以在原本为桌面环境设计的处理器架构上采用“分时”来为多个虚拟环境提供运算能力的地步。


要知道虚拟化技术并不新,早在1967年,第一代的硬件虚拟化技术就由IBM提出,蓝色巨人在他们的大型机中实现了以CP/CMS为代表的虚拟化技术。但直到2006年,Intel和AMD才分别在各自的处理器中加入了“有限”的硬件虚拟化特性,实际上是给CPU打了一个补丁:),分别称为,Intel VT-x和AMD-V。与大型机所采用的专为虚拟化设计的处理器不同,从PC机起家的以Intel为代表的x86家族的处理器生来就并不是为虚拟化设计的。要在x86家族处理器上完全向后兼容的同时加入硬件虚拟化特性,无疑成为一个挑战,硬件层面实现较为困难,导致软件层面的实现复杂度也随之水涨船高。据估算,Linux内核中,虚拟化部分代码,x86架构部分的代码行是IA64架构的1倍,S390架构的7倍,PPC架构的8倍。即使和ARM架构相比,x86架构的复杂度依然是其4倍,其复杂度之高从中可见一斑。


Talk is cheap, show me the code
硬件层面较为复杂的局面意味着在系统层面需要一个极为精简的设计从而确保x86的硬件虚拟化特性能够在Linux内核层面有较好的可维护性,良好的性能,同时保持一定程度的可扩展性以便为未来新的特性(补丁)的加入留有余地,另外,在那个时候,Xen和Vmware依靠自己独有的技术分别在不同领域如日中天,尤其值得一提的是,Xen在开源领域几乎成为了虚拟化的事实标准,而且开源领域一向奉行Don’t reinvent the wheel这一金科玉律,这一切无疑都为提出新的虚拟化实现增加了巨大的不确定性,但是当时Linux内核中还没有任何虚拟化实现,这一现状又使得提出新的设计成为可能,唯一的问题就是谁能够在足够短的时间内另辟蹊径提出新的方案并且获得多数人的支持,这一点难度之大,恐怕只有深入了解开源社区的人才会感受到,要知道Linux社区恐怕是这个星球上最为“独裁”的组织,没有之一,而且语言“暴力”与人身“攻击”司空见惯(Alan Cox就是无法容忍这一点才选择退出Linux社区),要想在其中被认可并取得一席之地,除了超强的技术实力之外,更要有谦逊的品格,非凡的耐心和绝佳的沟通技巧。

Do one thing and do it well
Avi Kivity提出的方案非常清晰而且巧妙,充分遵循Linux源自Unix的设计思想,把方案的关注点聚焦于Linux内核部分,User space部分交给了稳定可靠的Qemu,采用Qemu作为其用户空间的入口,而且KVM仅仅实现HVM功能。遵循惯例,Linux内核中的KVM模块通过设备文件暴露系统呼叫给User space的Qemu。这一切现在看起来似乎平淡无奇,但是,Avi Kivity方案的背后是要在极短时间内通过代码实现来证实并获得社区认可这一几乎不可能实现的任务,这有赖于Avi Kivity对于计算机体系架构的深入理解,不单单是x86架构的Intel VT-x和AMD-V,还有后续陆续支持的其它架构,并且深入了解Linux内核,精通汇编和C。
以Avi Kivity为主的工程师仅仅花了不到一年时间就让Linux社区接受KVM的设计方案并且通过了代码Review,最终于2006年10月合并进入2.6.20主干,时至今日,人们依然对于KVM合并进入Linux主干的速度之快感到不可思议,从中也产生了一些不同的声音,但是多数人还是倾向于最简单的一种答案,那就是KVM良好的设计和实现是其最终被社区快速接受的主要原因。几年以后,Avi Kivity接受采访,最经常被问到的仍然是这个问题,他的回答也总是轻描淡写,说只不过提前花了半年时间在Linux社区学习如何更好的与社区开发人员协作,但是我们知道,这背后实际是其投入的大量心血和超强实力。
KVM的出现震撼了整个了Linux社区和业界,人们惊异于其出众的性能,更加折服于其精简的设计和良好实现(在SPEC virt2013 Benchmark中基于同样的处理器、内存和存储,KVM单在VM Density指标上以37%的优势超越对手),以至于,在极短的时间内,这个世界上最重要的科技公司纷纷宣称他们将把KVM作为他们x86虚拟化的解决方案,要知道,这极为不同寻常,在这之前以蓝色巨人IBM为代表的科技巨头已经在Xen上投入了大量的财力物力和人力,如果没有决定性的因素,科技巨头的Strategic dicision是不可能轻易改变的,时至今日,IBM在准备推出Power KVM,打算把KVM移植到Power Linux上。就连以Google Glass、无人驾驶汽车和Project Loon著称的跟现代科技格格不入的前沿科技巨头Google也在其Google Compute Engine中采用KVM技术作为x86的虚拟化方案来和Amazon对抗。这一切只能说明KVM凭借其优异的性能和精简架构当仁不让成为了一项无法忽视的虚拟化技术屹立于云计算之巅。

云计算的新征程OSv

在KVM合并进入Linux主干之后不久Avi Kivity很快成为内核KVM子模块的Maintainer,2012年11月21日一封标题为“KVM: Retire as maintainer”的简短邮件出现在Linux社区邮件列表中,在以KVM模块Maintainer身份贡献Linux社区6年零6个月之后,Avi Kivity选择开启了新的征程,发起并担任云计算创业公司Cloudius的CTO,这是一个不同寻常的选择,要知道在这个世界上,在虚拟化和云计算领域恐怕没有多少人能够比Avi Kivity更有发言权,这一次,Avi Kivity敏锐的意识到除了x86家族的处理器架构之外,已经成为云计算基石的Linux同样天生不是为云计算设计的,因此具有极大的性能提升空间,大胆提出并设计了专为云计算设计的操作系统OSv,当然,其依然是建立在Linux基础上,但是其无需Context switch,真正的Zero Copy以及Lock Free等特性使得其Less One second boot相对于众多宣称秒级响应的厂商来说更加具有说服力。尤其重要的是,KVM之父通过OSv项目表达了对以Linux CGroup技术为核心的Containner技术的看法。
Avi Kivity是如此低调,以至于你很难在网上找到太多的关于他的信息,只有寥寥几篇报道和访谈,但是KVM在整个云计算领域中又是如此的炙手可热,虽然今年已经是KVM进入内核的第八个年头,但是KVM依然活跃,我们依然难以估量其在云计算领域的真正价值,而这一切都源自于这个地球上最危险的那个角落中的那名天才程序员Avi Kivity。
注:仅以此文表达对Avi Kivity、Yaniv Kamay、Dor Laor、Uri Lublin还有Anthony Liguori还有其他KVM以及Qemu开发人员的敬意。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/447400.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

与Linus Torvalds“并列”,虚拟化天才程序员法布里斯贝拉

摘要:谈起阿兰图灵、高德纳、艾兹赫尔戴克斯特拉,我们并不陌生,这些振聋发聩名字背后是颠覆了人类生活的现代计算机工业。然而有些人的荣誉却远低于他的贡献,比如Fabrice,过去20年最闪亮和最有影响力的程序员之一。 【…

数据vs.算法,究竟谁更重要

摘要:数据和算法究竟哪个更重要并没有一个明确的界定,根据不同的情境和应用,它们发挥的作用不同。虽然实际情况确实如此,但是在数据为王的时代,算法的关心似乎已只停留在某些领域或者某些公司里面。 【编者按】随着服…

云数据中心选址PK:微软第一,IBM第二,谷歌最少

摘要:多区域数据中心往往可以侧面说明服务的可用性,在这个方面,Azure以12个区域领先,接着是Softlayer 9个,Amazon 8个,Rackspace 6个。Google比较落后,只有3个。 【编者按】当下,各…

用户暴增下的收入降低,AWS面临尴尬

摘要:虽然摩尔定律和规模经济会带来成本效益,但是在大量的竞争下,AWS的收益已明显降低,而10%的股价下降更带来了投资者的不满。 【编者按】虽然亚马逊的云业务远远超过了IBM、HP和Google等巨头科技软件公司,但是其增长…

为什么软件测试需要变革?

摘要:世易时移,现今的科技发展一日千里,软件测试这门科学也到了该进行革命的时候了。作者Bhumika Mehta认为软件测试需要的就是想法与创意。没有想法的测试人员可能在测试这条路上不会走得太远。 世易时移,现今的科技发展一日千里…

Linux统治超级计算领域的九个理由

Linux能统治超级计算领域的几个原因不外乎:历史悠久、成本低廉、可靠、安全、开源、资源丰富、易于管理、创新不断等等。1. Linux在超级计算的历史 NASA在1994年使用Linux建立了第一个Beowulf集群,作为昂贵的HPC超级计算机的一种替代品。“Beowulf集群是…

左手代码,右手是你

认识你是在 5 年前:成都,地铁2号线,白果林站,2014 年 2 月下旬 高高的,廋廋的,戴着一副莹润的眼镜,穿着一件并不太合身的、略宽松的羽绒服,安静的站在我们约定见面的地铁口 是的&a…

开源是如何让Android成为移动市场大佬的?

在如今的手机操作系统市场中,Android占有约80%的市场份额,是当之无愧的大佬。这其中离不开开源的贡献:作为开源系统本身,Android就激起了世界各地开发者、开源爱好者和大众用户的兴趣。大约是十年前,我有了自己的第一部…

十种程序语言帮你读懂大数据的“秘密”

摘要:经过数年发展,当下大数据领域已充斥着各种各样的分析工具,那么如何才能选择自己适合的。本文从R、Scala、Java、Go、Python等10种语言着手,带大家一览大数据领域的常用工具。 【编者按】面对成千上万条数据记录,…

标准开源产品是打破供应商垄断的关键

Mrten Mickos是美国桉树系统公司的CEO,提出当公司拘泥于自己的设计和定制化时,与他们被供应商锁定所受到的损害程度是相当的。Mickos解释了为什么他认为采用标准开源产品是避免这两种被锁定类型的最好方式。当谈到软件和云服务时,业务锁定是有…

专访阿里云总裁王文彬:做出“用得爽”的工程产品

摘要:已拥有近百万不同行业领域用户的阿里云,在产品开发、服务输出与生态系统建设等方面还将继续加速,多点开花。 回顾在2014年已经过去的半年中,阿里云在产品开发、服务输出与生态系统建设层面的诸多动作。不难看出,…

写代码前的准备,你做好了吗?

我们程序员很容易给别人一种深刻的误解:写代码的。包括我们自己有时候也会陷入这样的圈套之中。很多程序员在接到任务之后,就会马上想着如何用代码来实现,这是一种很不好的做法。其实,在我们写代码之前,还有很多工作要…

C++11(及现代C++风格)和快速迭代式开发

过去的一年我在微软亚洲研究院做输入法,我们的产品叫“英库拼音输入法” (下载Beta版),如果你用过“英库词典”(现已更名为必应词典),应该知道“英库”这个名字(实际上我们的核心开发…

软件系统分析师与架构师技能大PK(您具备了哪些呢?)

软件系统分析师与架构师在职责与技能方面没有明显的界线,你中有我我中有你,同时也有各自自己的世界,很值得拿来比比。 系统分析师职责:告诉我们系统应该做什么。 l 管理到技术的桥梁 各领域业务到信息化技术的通知翻译者。 l 对软件项目进行整…

原型设计工具的对比评测记录(一)

概述:本文是美国的专业设计公司cooper公司的交互设计师Emily Schwartzman所写的一篇对众多原型设计工具的对比评测。这里是前半部分,从总体角度介绍评测及其结果。原型设计工具的对比评测记录(一)原型设计工具的对比评测记录&…

软件开发人员进修必备的20本书

初级软件开发人员进修必备的20本书(上) #原创 程序开发 申请达人,去除赞助商链接开发和编程向来就不是一件轻松的事,有时候你可能需要别人稍微点化一下,或者从书中得到一些有用的帮助。总而言之,无论是工作流程还是进修你的专业&a…

为什么我喜欢单独编程

大约是一年前,我写了一篇关于我为什么不喜欢结对编程的帖子。此文也是对该帖子的补充。 至今为止我已经在加利福尼亚州科学院工作5个月了。我创建了一个由美国国家科学基金会资助的关于蚂蚁分类学的网站:antcat.org。 这是我作为一个程序员25年以来最棒…

谈操作系统的碎片化和融合

摘要:目前,Android和iOS统治着移动操作系统,桌面端被Windows所主宰,随着智能家居、可穿戴设备等新兴平台的兴起,造成了各家操作系统四分五裂的情况,但在不久的将来他们终究会走向融合。 目前,An…

盘点大数据的十大发展方向,Scale-out将成主流

摘要:随着人们对大数据认知的加强,除去特点之外,人们开始更加关注于它的使用价值和未来的服务方向。本文列举了大数据的十大发展方向,其中Scale-out将成为主流。 【编者按】如今,大数据俨然成为IT领域最受关注的热词之…

程序员的成功是否有规律可循?

摘要:自然界中存在许多规律,那么在程序人生上是否有规律可循呢?这种规律是如大多数人期望的那样吗?V众投发起人李智勇对此进行了探讨,他分析了必然与偶然、本质与细节,并就程序人生规律的三要素进行了解读。…