作者 | 年素清
責編 | 王曉曼
出品 | 程式人生 (ID:coder _life)
法布里斯?貝拉(FabriceBellard)有著“天才程式員”之稱,因為FFmpeg、QEMU等專案而聞名于業界,同時,他憑著極其深厚的計算機底層功力撰寫出了多款編譯器和虛擬機,并靠著出色的數學知識提出了最快圓周率演算法貝拉公式,然而面對這些成就,貝拉坦言不過是因為是喜歡做自己感興趣的事情,
高中寫出壓縮軟體
貝拉于1972年生在法國格勒諾布爾,從小就對電子設備表現出與生俱來的興趣,據說他咿呀學語時說出的第一個詞語是“magn ?etophone” (錄音機),
良好的家境使得幼時的貝爾能夠更加容易地獲得他所探索領域的知識和設備,在他9歲時,家里就給貝拉購買了一臺TI-59科學計算器,好滿足他對編程的好奇之心,11歲時,貝拉擁有了一臺更為先進的TI-49/4A私人電腦,15歲時,貝拉的裝備換成了Amstrad PC1512,更為強大的配置和全 qwerty 鍵盤,令貝拉對計算機和編程所表現出來的濃厚興趣發揮得淋漓盡致,
讀高中的貝拉在PC1512 上編程時,因為磁盤空間有限,他想到通過壓縮檔案來節省有限的磁盤空間,他用8086 匯編語言(PC1512的機器語言)重寫了現有的壓縮方法LZSS,優化了程式的結構,使得壓縮、解壓程序變得更加快速,同時允許被壓縮的可執行檔案在后續的啟動時不需要明確的解壓縮,這就是后來著名的可執行壓縮程式LZEXE,是當年DOS上第一個廣泛使用的檔案壓縮程式,
貝拉將LZEXE發給幾個朋友并發布到各種論壇里,引起了不小的轟動,貝拉的編程能力開始嶄露頭角,
求學時的思考
高中畢業后,貝拉先后進入巴黎高等綜合理工學院和法國電信研究院求學,
早年在編程方面的經歷,以及在理工學院求學的經歷讓日漸成熟的貝拉對計算機科學的整體面貌有了更為全面的認識和思考,他認為計算機科學最重要的兩個方面是學習計算機如何運作的原理和知識,以及通過學習計算本身來開發語言,用各種不同的方法讓計算機更加有效地作業,
而編程必是基于原始程式設計經驗,從一個非常靠近機器的語言開始,慢慢發展為高級的語言,貝拉覺得有志向的計算機科學家通過匯編語言和計算機硬體來深度理解計算機的作業原理是必不可少的一個環節,
發布最快圓周率的演算法
1995年,貝拉用 C 語言撰寫出了快速乘法,FFT 是快速傅立葉變換的縮寫,這是一個在數字信號處理中非常常用和有效的演算法,歐洲數學家JohnPollard曾發現用在 FFT 中的一個類似的程序可以用做有效的乘法,然而苦于沒有實際完整的代碼實作,可以說是貝拉最后用 C 語言實作 Pollard 的作業,
1997年,貝拉提出了最快速的計算圓周率的演算法,他使用改良后的查德諾夫斯基方程演算法來進行圓周率的計算,并使用貝利-波爾溫-普勞夫公式來驗證計算的結果,這種演算法是當時也是目前所有圓周率演算法中最快的一種,這個計算N位圓周率的公式比傳統的BBQ演算法要快47%,為了紀念貝拉對圓周率演算法所作出的杰出貢獻,他所使用的改良型演算法被命名為“Fabrice Bellard演算法”,
2009年,貝拉用桌面電腦打破了由超級計算機保持的圓周率運算記錄,他僅花費了116天,就計算出了PI的小數點后第2.7萬億位,超過了排名世界第47位的T2K Open超級計算機于2009年8月17日創造的世界紀錄,新紀錄比原紀錄多出1200億位,然而,與超級計算機比,貝拉所使用的的不過是價格不到2000歐元的個人PC,配置、性能根本無法與T2K Open相提并論,
貝拉在圓周率方面的輝煌成就,使他創造多次圓周率計算的世界紀錄,并因此而登上《科學美國人》法文版,
寫出VReng和TinyGL
1998年,貝拉開發出VReng (虛擬現實引擎),這是一個分布式 3D 應用程式,運用多播技術允許通過 Internet 連接在虛擬世界中導航,之后,貝拉注意到有效的OpenGL后端是基于軟體的,比實際需求要慢很多,于是他決定基于 VReng 的代碼來撰寫一個更小和更快的3D光柵,
最終在 2002 年,貝拉發布了 TinyGL,一個 OpenGL 的子集的小型實作,TinyGL 比 Mesa 和Solaris 的OpenGL 快很多,是平臺獨立的,并且數量級比后二者小很多,總共才 400KB,這也是他在影像處理領域取得的重要成就,
開發出 FFmpeg
2000年,貝拉化名Gérard Lantau公布了著名的FFmpeg專案,通過這個專案,貝拉將自己在電信和數字信號處理方面的專長帶到了最前沿,
FFMPE允許用戶在許多不同的格式之間進行轉換,FFMPEG分割成幾個部分,由 libavcodec和libformat 構成,Libavcodec收集音頻和視頻編解碼庫,Libavformat提供音頻和視頻容器復用及解復用庫,這兩個模塊結合起來提供了決議和在不同格式之間進行轉換的各種方法,
這個專案無比強大,我們今天所熟知的視頻播放軟體,如暴風影音、QQ影音、YouTube、VLC等都使用了FFmpeg的編解碼函式庫,FFmpeg易擴展、功能強、速度快、占資源少,支持的音視頻格式極其廣泛,基本上超越了其他所有同類軟體,被譽為處理數字視頻和音頻的“瑞士軍刀”,
開發出QEMU
繼FFmpeg之后,貝拉另一個杰出的成就便是在2005年發布的QEMU,
QEMU是一個處理器仿真,可以用軟體來模擬不同處理器體系,允許為一個特定處理器編譯的程式通過軟體仿真在另外一個體系上運行,QEMU近似于已有的Bochs、PearPC,但具有后兩者所不具備的高速及跨平臺等特性,
貝拉在QEMU之中大量加入了自己的設計構想,使得它不止是一個簡單的處理器仿真器,也可以通過動態翻譯來提高性能,借助KQEMU加速器處理,甚至能模擬至接近真實電腦的速度,
QEMU 非常強大,若沒有過硬的底層硬體和作業系統知識根本完成不了,現在許多的底層開發人員都依賴于它,甚至作業系統教學領域也多用其作為演示,
因為QEMU的速度之快、效率之高,它被包含在許多主要的虛擬化技術中,如 VirtualBox、Xen以及Linux Kernel-based 虛擬機(KVM),
國際混淆C代碼大賽兩次奪冠
國際混淆C代碼大賽(IOCCC) 是C語言界的一項大事,目的是寫出最有創意的、最讓人難以理解的C語言代碼,它每年都吸引了大量的C程式員前去角逐榮譽,貝拉曾兩次奪冠,
一次是在2000年,貝拉向IOCCC提交了一個4KB大小的C語言編譯器子集 OTCC,OTCC不僅使貝拉順利奪得了大賽的冠軍,也成為后來的TinyCC的起點,TinyCC 是一個ANSIC99編譯器,比其它C 編譯器小很多,在發布后的很長時間里一直被開發人員使用,為了演示它的效果,貝拉寫了一個工具用 TinyCC 在 15 秒之內就完成了Linux內核的編譯和啟動,
另一次是在2001年,貝拉設計出一個大小僅為475 位元組的程式用于計算和列印最大已知的素數(26972593 – 1),他創造性地使用整數快速傅立葉轉換,在幾分鐘之內便能列印出結果,
Super-Productive Programmer
PavanYara曾形容貝拉是“世界上最多產的程式員(Super-ProductiveProgrammer)”,除了上述成就之外,他還有許多項發明創造,
例如,貝拉在2003年開發了Emacs的復制版QEmacs,
2005年,貝拉用帶有VGA顯卡的PC機改裝成DVB-T的信號發射器,公司為了防止泄密,不僅要封聲卡插口,還要焊死顯卡插口,
2011年,貝拉用JavaScript寫了一個PC虛擬機Js linux,仿真了一個32位的x86兼容處理器,一個8259可編程中斷控制器,一個8254可編程中斷計時器,和一個16450 UART,在普通桌面電腦的Chrome瀏覽器中,Jslinux只用了僅僅5.075秒就啟動了Linux,
自由軟體的積極倡導者
雖然貝拉多產,但是他最為看重的還是FFMPEG、 QEMU,他坦承這是他作業中的最重要的兩個專案,但是他花費大量心血開發并維護它們并不是出于對金錢的渴求,
事實上,和“Linux之父” Linus Torvalds等人一樣,貝拉也是自由軟體的積極倡匯入,他在自由軟體授權協議的保護下,將包括FFMPEG 、 QEMU在內的許多重要軟體的原始碼都毫無保留地公布了,所有人不僅可以自由的下載他的程式,也可以下載和修改程式的源代碼,
貝拉說自己對金錢和名譽毫無興趣,當年化名Gérard Lantau公布FFMPEG的舉動便是有力的佐證,他只是簡單的喜歡在他所感興趣的、他認為有用的專案上花費精力和時間,
有人問他為什么決定在這樣寬廣的領域中作業,貝拉回答說:“這也不是決定,只是往往我做同樣的事情時感覺很無聊,所以我嘗試一次又一次的轉換專案,”
當貝拉沉浸在這些作業中時,他希望與全世界共享他的作業成果,也希望這對對他人有所幫助,貝拉不屑于行政管理和社交任務,他喜歡做好的、自己感興趣的事情,
參考鏈接:
https://blog.csdn.net/robertsong2004/article/details/38817679
https://baike.baidu.com/item/%E6%B3%95%E5%B8%83%E9%87%8C%E6%96%AF%C2%B7%E8%B4%9D%E6%8B%89/9358492?fromtitle=Fabrice%20Bellard&fromid=11286214&fr=aladdin
https://baijiahao.baidu.com/s?id=1666893221300048664&wfr=spider&for=pc
元旦福利跳轉鏈接:如何用一句話證明你是程式員?41 個答案揭曉!
更多精彩推薦
?劍指云記憶體資料庫,阿里云在下一盤大棋
?12 大熱門事件背后,藏著你的 2020 年 | 年終盤點
?喬布斯曾為救蘋果拉攏微軟,中國能否擺脫 Windows 依賴癥 | 濤滔不絕?騰訊AI足球隊奪冠Kaggle競賽,絕悟強化學習方案遷移至足球隊
?如何通過 Serverless 輕松識別驗證碼?
?當食品安全遇上“區塊鏈”
點分享
點收藏
點點贊
點在看
轉載請註明出處,本文鏈接:https://www.uj5u.com/qita/244767.html
標籤:其他
上一篇:MATLAB|數字影像處理
下一篇:小白對于Linux的學習
