Linus Torvalds是個非常厲害的程序員,因為他有兩個名揚天下的作品:Linux和Git。

如果單論技術(shù)能力,有一個人,也許比Linus更強。

我在看他主頁項目列表的時候,感覺頭都炸了。

他開發(fā)了著名的模擬器QEMU和音視頻處理庫FFmpeg,僅僅是這兩項就超越絕大部分程序員了,他還寫過C編譯器,OpenGL實現(xiàn),LTE軟基站,JS引擎,讓Linux在瀏覽器中跑起來,甚至還創(chuàng)造了計算圓周率的世界紀(jì)錄......

也就是說,這位老兄在操作系統(tǒng)、模擬器、多媒體、計算機圖形學(xué)、編譯器、編程語言、通信、甚至數(shù)學(xué)等領(lǐng)域跳來跳去,一年開發(fā)一個我一輩子都寫不出的軟件!

他寫的程序還總是比別的程序小幾個數(shù)量級,快幾個數(shù)量級!

這也太變態(tài)了吧?!

不得不承認(rèn),這個世界上真的有天才的存在。

他就是法國程序員Fabrice Bellard。

打開網(wǎng)易新聞 查看精彩圖片

我們來看看他的神奇之路。

0 1

壓縮軟件

Fabrice Bellard出生于法國東南部的一個小城市格勒諾布爾,17歲上高中的時候發(fā)現(xiàn)自己的電腦硬盤又小又貴,他就想著如何節(jié)省硬盤空間,于是用匯編語言開發(fā)了一個壓縮程序LZEXE。

LZEXE壓縮效果極好,他的朋友也Copy過來使用,并且放到了BBS上,一下子火了,成了DOS時代最火的壓縮工具之一。

1996年,24歲的他寫了一個Java虛擬機,可以把Java代碼編譯成C代碼執(zhí)行。

0 2

圓周率算法

1997年,他對圓周率的計算產(chǎn)生了興趣,通過改良Bailey–Borwein–Plouffe公式,提出了最快速的計算圓周率的算法,極大地降低了時間復(fù)雜度。

打開網(wǎng)易新聞 查看精彩圖片

從此他在數(shù)學(xué)社區(qū)建立了自己的聲望,新算法也被命名為Bellard公式。

0 3

TinyGL(計算機圖形學(xué))

1998 年,Bellard 在開發(fā)一個虛擬現(xiàn)實引擎項目的時候,需要用到OpenGL,這是一個用于渲染2D、3D矢量圖形的跨語言、跨平臺的API,OpenGL的開源實現(xiàn)是Mesa,Bellard覺得Mesa太慢了,于是自己寫了一個,這就是TinyGL。

TinyGL實現(xiàn)了OpenGL的子集,比Mesa或者其他商用實現(xiàn)(如Solaris OpenWin OpenGL)快得多,占用的資源少得多,并且比任何一個都小幾個數(shù)量級,Bellard 再次展示了他在編寫高效 C 代碼方面的超高技能。

0 4

FFmpeg(音頻視頻多媒體)

2000年,他化名Gérard Lantau,開始了他最重要和最受廣泛認(rèn)可的項目之?:FFmpeg。

打開網(wǎng)易新聞 查看精彩圖片

FFmpeg 是名副其實的數(shù)字視頻和音頻的“瑞士軍刀”,在視頻軟件和商業(yè)網(wǎng)站中無處不在:VLC,YouTube, iTunes ,它的強大之處不用我介紹了吧。

0 5

C語言混淆競賽

在創(chuàng)建FFmpeg不久,2000 年和 2001 年,Bellard 向國際C語言代碼混淆競賽 (IOCCC) 提交了兩個參賽作品,并且連續(xù)兩次獲獎。

要知道,IOCCC 是最具創(chuàng)造性的C語言混淆競賽,是程序員充分展示自己智力的最佳舞臺,能贏一次就非常厲害了,而Bellard輕輕松松就搞定了兩次。

下面是Bellard在2000年的獲獎作品,使用快速傅里葉變換在較短時間內(nèi)計算出已知的最大素數(shù)(2^6972593-1)

int m = 754974721, N, t[1 << 22], a, *p, i, e = 1 << 22, j, s, b, c, U; f (d) { for (s = 1 << 23; s; s /= 2, d = d * 1LL * d % m)     if (s < N)       for (p = t; p < t + N; p += s) for (i = s, c = 1; i; i--)    b = *p + p[s], p[s] = (m + *p - p[s]) *      1LL * c % m, *p++ = b % m, c = c * 1LL * d % m; for (j = 0; i < N - 1;)     {       for (s = N / 2; !((j ^= s) & s); s /= 2);       if (++i < j)  a = t[i], t[i] = t[j], t[j] = a;     } } main () {   *t = 2;   U = N = 1; while (e /= 2)     {       N *= 2;       U = U * 1LL * (m + 1) / 2 % m;       f (362);       for (p = t; p < t + N;)  *p++ = (*p * 1LL ** p % m) * U % m;       f (415027540);       for (a = 0, p = t; p < t + N;)  a += (6972593 & e ? 2 : 1) ** p, *p++ = a % 10, a /= 10;     } while (!*--p);   t[0]--; while (p >= t)     printf ("%d", *p--); }

0 6

TinyCC(最快的編譯器)

從2001年的比賽中還產(chǎn)生了一個副產(chǎn)品:TinyCC,這是世界上最快、最小的C語言編譯器,比其他大多數(shù)C編譯器都要小幾個數(shù)量級。

為了證明TinyCC的威力,Bellard基于TinyCC開發(fā)了一個只有138K的TCCBoot,可以在15秒以內(nèi)編譯完Linux內(nèi)核并且啟動,實在太嚇人了。

打開網(wǎng)易新聞 查看精彩圖片

0 7

QEMU(模擬器)

2005年,Bellard又發(fā)布了一個爆炸性項目QEMU,這是一個開源的模擬器,可以用軟件的方式來模擬CPU,內(nèi)存,I/O設(shè)備,給操作系統(tǒng)營造一個運行在硬件中的假象。

可以想想,開發(fā)這樣的軟件不但需要對操作系統(tǒng)極其了解,還得掌握極其廣泛的硬件知識,細(xì)節(jié)非常多,其難度甚至比操作系統(tǒng)都高。

打開網(wǎng)易新聞 查看精彩圖片

0 8

創(chuàng)造PI的世界紀(jì)錄

2009年,Bellard又去玩數(shù)學(xué)了,他宣布把圓周率小數(shù)點后2.7萬億位以后,僅僅使用了一臺普通的PC,創(chuàng)造了世界紀(jì)錄。

此前的世界紀(jì)錄是由排名世界第47位的T2K Open超級計算機創(chuàng)造的,而Bellard這臺桌面電腦不到2000歐元,配置僅為:2.93GHz Core i7 CPU,6GB內(nèi)存,7.5TB硬盤。

一個人加一臺電腦,竟然擊敗了超級計算機。

0 9

JSLinux(模擬器)

2011年,他的興趣又轉(zhuǎn)到了JavaScript身上,居然用JavaScript寫了一個PC模擬器,讓Linux,Windows可以在瀏覽器中運行起來。

這個模擬器仿真了一個32位的x86兼容處理器,一個8259可編程中斷控制器,一個8254可編程中斷計時器,和一個16450 UART。

不僅支持命令行,還支持圖形界面,看到 Windows 2000 竟然在瀏覽器中跑了起來,那種震撼的感覺,只能用臥槽來形容了!

打開網(wǎng)易新聞 查看精彩圖片

10

LTE軟基站(通信)

2012年,Bellard的興趣再次轉(zhuǎn)移,一個人花了10個月時間,在一臺PC上居然實現(xiàn)了一個運行效率極高LTE軟基站。支持LTE TDD/FDD,NB-IoT、eMTC,最大可支持5載波2x2 MIMO或3載波4x4 MIMO。

這一切,只需要一個擁有i7 4核CPU的PC就夠了。

打開網(wǎng)易新聞 查看精彩圖片

11

QuickJS (JavaScript解釋器)

2019年,Bellard發(fā)布了一個嵌入式的JavaScript執(zhí)行引擎QuickJS。

QuickJS支持ES2020,小巧并且易于嵌入,只有幾個C文件,沒有任何其他外部依賴。

它運行速度很快,在一個單核CPU上可以在95秒內(nèi)完成69000個ECMAScript測試。

我只是挑了Bellard開發(fā)的部分軟件,在他的網(wǎng)站bellard.org還有很多,最讓人震撼的是,這些軟件覆蓋了計算機科學(xué)的各個領(lǐng)域,千差萬別。

Bellard給人的印象是,他可以輕易進入一個他覺得有趣的領(lǐng)域,成為這個領(lǐng)域的專家,留下一個讓其他人愿意花費數(shù)年時間維護的軟件,自己則輕飄飄地離開,進入下一個領(lǐng)域。

有人問他為什么要研究這么多不同的東西時,他說:我討厭一直做同樣的事情,所以一定要切換不同的項目來玩......

Just for fun,這是Linus的口號,看來各個大神的追求都是一樣的啊。

Bellard對金錢或者名聲不感興趣(用化名做開源項目就是證明),他極少接受媒體的采訪,互聯(lián)網(wǎng)上他的資料非常少,遠(yuǎn)不如Linus那樣聲名遠(yuǎn)揚。

但是如果你如果你看過他那簡陋的個人主頁,bellard.org,看看那些展示了驚人的深度和廣度的項目,絕對會被震撼。

Bellard一定是穿越回來的,或者一定是在上帝模式下編程。

全文完,覺得不錯的話歡迎一鍵三連。