比Linus更厲害的程序員,這家伙一定是穿越回來的

天空之城 2022/12/25 檢舉 我要評論

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

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

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

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

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

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

這也太變態了吧?!

不得不承認,這個世界上真的有天才的存在。

他就是法國程序員Fabrice Bellard。

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

壓縮軟件

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

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

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

圓周率算法

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

從此他在數學社區建立了自己的聲望,新算法也被命名為Bellard公式。

TinyGL(計算機圖形學)

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

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

FFmpeg(音頻視訊多媒體)

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

FFmpeg 是名副其實的數字視訊和音頻的「瑞士軍刀」,在視訊軟件和商業網站中無處不在:VLC,YouTube, iTunes ,它的強大之處不用我介紹了吧。

C語言混淆競賽

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

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

下面是Bellard在2000年的獲獎作品,使用快速傅里葉變換在較短時間內計算出已知的最大素數(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--);}

TinyCC(最快的編譯器)

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

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

QEMU(模擬器)

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

可以想象,開發這樣的軟件不但需要對操作系統極其了解,還得掌握極其廣泛的硬件知識,細節非常多,其難度甚至比操作系統都高。

創造PI的世界紀錄

2009年,Bellard又去玩數學了,他宣布把圓周率小數點后2.7萬億位以后,僅僅使用了一台普通的PC,創造了世界紀錄。

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

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

JSLinux(模擬器)

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

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

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

LTE軟基站(通信)

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

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

QuickJS (JavaScript解釋器)

2019年,Bellard發布了一個嵌入式的JavaScript執行引擎QuickJS。

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

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

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

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

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

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

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

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

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

搶先看最新趣聞請贊下面專頁
用戶評論