云计算技术背后的那些天才程序员:Qemu的作者法布里斯贝拉
作者:刘国辉
众所周知,虚拟化技术是构建云基础架构不可或缺的关键技术之一,而在众多虚拟化技术实现当中,KVM(Kernel Virtual Machine)因为 Linux 内核对其的良好支持(KVM 于 2006 年 10 月被合并入 Linux Kernel 2.6.20 中),以及其精简的架构(在最新的 Linux Kernel 3.14.rc5 中除硬件之外的核心框架仍然只有不到 10000 行)越来越多的被应用于超大规模的 IaaS 部署中,注:随后会写文章专门介绍 KVM 背后的那些技术天才。
但是我们知道运行于内核态的 KVM 是无法单独工作的,那些对性能要求比较高的虚拟设备例如:虚拟中断控制器和虚拟时钟,才会由 KVM 内核模块直接管理,大部分的输入输出虚拟设备还是需要一个运行于用户态的程序负责,这个运行于用户态的程序就是大名鼎鼎的 QEMU(Quick Emulator),它的作者就是法国天才程序员 Fabrice Bellard。
在过去的大半个世纪中,计算机科学界涌现出了一批不世出的天才:阿兰·图灵(Alan Turing)、高纳德(Donald Knuth)、艾兹赫尔·戴克斯特拉(Edsger Dijkstra),这些振聋发聩的名字背后是建立了彻底改变人类生活的现代计算机工业,这些人的影响力是如此之大,不但改变了整个世界,同时也赢得了全 球的尊重。于此同时另外一些人也在进行类似令人印象深刻和同时极具影响力的工作,他们之中的佼佼者就是 Fabrice Bellard ,Fabrice Bellard 走的是完全不同的路,Bellard 的绝大多数贡献都集中在自由软件与开源领域,除了 QEMU 之外,最为人熟知的就是 FFMPEG,他被誉为过去 20 年中最闪亮和最有影响力的程序员之一,但他的名声远远却低于他的贡献。
在 2005 年,Bellard 发布了也可以说是他最重要的项目:QEMU。QEMU 是一个处理器仿真,意味着用软件来模拟不同处理器体系架构(ISAs),允许为一个特定处理器编译的程序,通过软件仿真在另外一个体系上运行。 Rellard 的设计灵感是基于邱奇-图灵理论,这个理论间接指出任何图灵完备语言配合图灵机可以仿真其它的图灵机。如果说 FFMPEG 体现了 Bellard 深厚的数学和信号学天分,那么 QEMU 的实现就体现了 Bellard 对于计算机体系架构的深刻理解和程序设计的深厚功底。
Bellard 除了具备天才程序员的实力之外,同时也极具黑客气质,在他主页上罗列的众多令人震撼的成就的最新一个是利用软件在 PC 上模拟了 LTE 4G 基站。天才的创新经常是离经叛道式的超越,Fabriced Bellard 的一些项目让人感觉疯狂。比如他曾有一个项目是将带有 VGA 显卡的 PC 改装成 DVB-T 的信号发射器。这样一来,为了防止泄密,公司不仅要封声卡插口,还要焊上显卡插口。
2011 年,他用 JavaScript 写了一个 PC 虚拟机 Jslinux。这个虚拟机仿真了一个 32 位的 x86 兼容处理器,一个 8259 可编程中断控制器,一个 8254 可编程中断计时器,和一个 16450 UART。 http://bellard.org/jslinux/,在笔者的普通桌面电脑的 Chrome 浏览器中,Jslinux 只用了仅仅 5.075 秒就启动了 Linux。
Fabrice Bellard 在数学方面也有着惊人的造诣,1997 年 FabriceBellard 提出最快圆周率算法公式。在计算圆周率的过程中,Fabrice Bellard 使用改良后的查德诺夫斯基方程算法来进行圆周率的计算,并使用贝利-波温-劳夫算法来验证计算的结果。为了表彰他对圆周率算法所作出的杰出贡 献,Fabrice Bellard 所使用的改良型算法被命名为 Fabrice Bellard 算法,这种算法是目前所有圆周率算法中最快的一种,这个计算N位 PI 的公式比传统的 BBQ 算法要快 47%。
2009 年的最后一天,Fabr ice Bellard 宣布另一项重大突破:他用桌面电脑打破了由超级计算机保持的圆周率运算记录。这是一个壮举, 他将 PI 计算到了小数点后 2.7 万亿位!更令人惊讶的是, 他使用的不过是价格不到 2000 欧元的个人 PC,仅用了 116 天,就计算出了 PI 的小数点后第 2.7 万亿位,超过了由目前排名世界第 47 位的 T2K Open 超级计算机于 2009 年 8 月 17 日创造的世界纪录。新纪录比原纪录多出 1200 亿位,然而,他使用的这台桌面电脑的配置仅为:2.93GHz Core i7 CPU,6GB 内存,7.5TB 硬盘! 不过这次为了加快计算完成的速度保住排名第一的位置,Fabrice Bellard 使用了 9 台联网的电脑来对数据进行验证, 若使用一台电脑来验证计算结果的话, 则需要额外增加 13 天的计算时间。 Fabrice Bellard 在圆周率方面的辉煌成就, 使他创造多次圆周率计算的世界纪录(计算 10 的整次幂位), 也曾因此而登上《科学美国人》法文版。
最后,让我们不妨八卦一下,在 Google 中输入 Fabrice Bellard vs Linus Torvalds 会出现什么呢?毕竟,在笔者心目中,他们就像罗伯特德尼罗 PK 阿尔帕西诺。
映入眼帘的第一个结果,是财富杂志科技栏目专访全球在线支付巨头 Stripe 的创始人的一篇文章,其中提到。There are also a few individual people, like Fabrice Bellard, Jeff Dean, and Dan Bernstein, who are just generally fabulously productive and make me feel guilty about how little I get done. 好吧,Jeff Dean…,与 Jeff Dean 并列,足以说明 Fabrice Bellard 的超强实力与卓越成就。
Fabrice Bellard 个人主页:http://bellard.org/