云計算技術背后的那些天才程序員: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.pswp.cn/news/447400.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/447400.shtml
英文地址,請注明出處:http://en.pswp.cn/news/447400.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

解決:Unable to access jarfile xxx-0.0.1-SNAPSHOT.jar

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 1.執行: java -jar xxx.0.0.1-SNAPSHOT.jar 報錯: Unable to access jarfile xxx-0.0.1-SNAPSHOT.jar 2.原…

與Linus Torvalds“并列”,虛擬化天才程序員法布里斯貝拉

摘要:談起阿蘭圖靈、高德納、艾茲赫爾戴克斯特拉,我們并不陌生,這些振聾發聵名字背后是顛覆了人類生活的現代計算機工業。然而有些人的榮譽卻遠低于他的貢獻,比如Fabrice,過去20年最閃亮和最有影響力的程序員之一。 【…

工具類:獲取 spring 容器中 bean

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 package com.orange.utils;import org.springframework.beans.BeansException; import org.springframework.context.ApplicationConte…

數據vs.算法,究竟誰更重要

摘要:數據和算法究竟哪個更重要并沒有一個明確的界定,根據不同的情境和應用,它們發揮的作用不同。雖然實際情況確實如此,但是在數據為王的時代,算法的關心似乎已只停留在某些領域或者某些公司里面。 【編者按】隨著服…

JDK8 集合排序 xxxList.stream.sorted(...)

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 # 默認 list.stream().sorted() list.stream().sorted(Comparator.reverseOrder()) # 按字段排序 xxxList.stream().sorted(Comparato…

云數據中心選址PK:微軟第一,IBM第二,谷歌最少

摘要:多區域數據中心往往可以側面說明服務的可用性,在這個方面,Azure以12個區域領先,接著是Softlayer 9個,Amazon 8個,Rackspace 6個。Google比較落后,只有3個。 【編者按】當下,各…

解決:Unexpected token (START_OBJECT), expected START_ARRAY: need JSON Array to contain As.WRAPPER_ARRA

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 1. redisTemplate 報錯: Caused by: com.fasterxml.jackson.databind.JsonMappingException:Unexpected token (START_OBJEC…

用戶暴增下的收入降低,AWS面臨尷尬

摘要:雖然摩爾定律和規模經濟會帶來成本效益,但是在大量的競爭下,AWS的收益已明顯降低,而10%的股價下降更帶來了投資者的不滿。 【編者按】雖然亞馬遜的云業務遠遠超過了IBM、HP和Google等巨頭科技軟件公司,但是其增長…

解決:Caused by: redis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 1. 報錯: Caused by: redis.clients.jedis.exceptions.JedisDataException: WRONGTYPE Operation against a key holding t…

為什么軟件測試需要變革?

摘要:世易時移,現今的科技發展一日千里,軟件測試這門科學也到了該進行革命的時候了。作者Bhumika Mehta認為軟件測試需要的就是想法與創意。沒有想法的測試人員可能在測試這條路上不會走得太遠。 世易時移,現今的科技發展一日千里…

websocke 在線測試地址

前些天發現了一個巨牛的人工智能學習網站,通俗易懂,風趣幽默,忍不住分享一下給大家。點擊跳轉到教程。 記錄一個websocke在線測試地址: http://www.websocket-test.com/

Linux統治超級計算領域的九個理由

Linux能統治超級計算領域的幾個原因不外乎:歷史悠久、成本低廉、可靠、安全、開源、資源豐富、易于管理、創新不斷等等。1. Linux在超級計算的歷史 NASA在1994年使用Linux建立了第一個Beowulf集群,作為昂貴的HPC超級計算機的一種替代品。“Beowulf集群是…

左手代碼,右手是你

認識你是在 5 年前:成都,地鐵2號線,白果林站,2014 年 2 月下旬 高高的,廋廋的,戴著一副瑩潤的眼鏡,穿著一件并不太合身的、略寬松的羽絨服,安靜的站在我們約定見面的地鐵口 是的&a…

開源是如何讓Android成為移動市場大佬的?

在如今的手機操作系統市場中,Android占有約80%的市場份額,是當之無愧的大佬。這其中離不開開源的貢獻:作為開源系統本身,Android就激起了世界各地開發者、開源愛好者和大眾用戶的興趣。大約是十年前,我有了自己的第一部…

10個常見的緩存使用誤區

摘要:在日常工作中,開發者經常利用緩存來進行優化站點或優化應用程序。但在實際應用中,在使用緩存時,總是那么不盡如意。這什么原因呢?本文,筆者收集了最為常見的十大緩存誤區以及使用建議。 在日常工作中…

十種程序語言幫你讀懂大數據的“秘密”

摘要:經過數年發展,當下大數據領域已充斥著各種各樣的分析工具,那么如何才能選擇自己適合的。本文從R、Scala、Java、Go、Python等10種語言著手,帶大家一覽大數據領域的常用工具。 【編者按】面對成千上萬條數據記錄,…

標準開源產品是打破供應商壟斷的關鍵

Mrten Mickos是美國桉樹系統公司的CEO,提出當公司拘泥于自己的設計和定制化時,與他們被供應商鎖定所受到的損害程度是相當的。Mickos解釋了為什么他認為采用標準開源產品是避免這兩種被鎖定類型的最好方式。當談到軟件和云服務時,業務鎖定是有…

專訪阿里云總裁王文彬:做出“用得爽”的工程產品

摘要:已擁有近百萬不同行業領域用戶的阿里云,在產品開發、服務輸出與生態系統建設等方面還將繼續加速,多點開花。 回顧在2014年已經過去的半年中,阿里云在產品開發、服務輸出與生態系統建設層面的諸多動作。不難看出,…

寫代碼前的準備,你做好了嗎?

我們程序員很容易給別人一種深刻的誤解:寫代碼的。包括我們自己有時候也會陷入這樣的圈套之中。很多程序員在接到任務之后,就會馬上想著如何用代碼來實現,這是一種很不好的做法。其實,在我們寫代碼之前,還有很多工作要…

周鴻祎:比情懷更重要的硬件創業三定律

7月31日,首屆福布斯中國創新峰會于東莞松山湖高新區召開,峰會集結了中國互聯網與制造業前沿的商業創新領袖,集中探討互聯網時代如何重鑄產業未來。 奇虎360董事長周鴻祎首先就互聯網創新闡述了自己對硬件和制造業未來的看法。他認為互聯網催…