首頁 > 科技

1個C檔案就寫出Web伺服器!這個60歲程式設計師大有來頭

2021-06-12 16:13:38

楊淨 明敏 發自 凹非寺 量子位 報道 | 公眾號 QbitAI

一個C檔案,就寫出一個Web伺服器。

最近這個軟體,在圈裡很火。Hackernews上熱度高達700+

圖片

有網友直接問:他GitHub賬號是哪個?

圖片

但也有網友質疑說,這個原始檔得有幾萬行程式碼吧。

圖片

No,No,No!

只有2592行,而且完全開源!於是就有旁友打算回去抄程式碼。

圖片

當然,到處還流淌著各種對大佬的仰慕,在這就不一一列舉了。(手動狗頭)

圖片

究竟是誰打造了這一「精品」,背後到底是何方神聖?

Richard Hipp,一個已經60歲的技術大牛。

你沒有聽過他的名字,但你當前使用的手機,一定有幾十甚至上千個他開發的資料庫——SQLite。比如,微信的聊天記錄就存在那裡面。

圖片

可以說,它是世界上裝機最多的資料庫,沒有之一。

以至於最新的Web伺服器一出,就有網友高呼:大神寫個淘寶吧。

圖片

打造世界上使用最廣泛的資料庫

說到Richard Hipp,就不得不提他的成名作:SQLite。

圖片

SQLite是一款輕型的資料庫,最初版本的大小隻有900KB左右。

它最大的特點就是嵌入式,支援Windows/Linux/Unix等等主流的作業系統,同時能夠跟很多程式語言相結合,比如 Tcl、C#、PHP、Java等,還有ODBC介面。

所以,SQLite可以應用在非常多產品中,除了手機APP、電腦瀏覽器,甚至連電視機頂盒中也有它的身影。

並且,與同類資料庫Mysql、PostgreSQL相比,它的運行速度也更快。

如此強大的資料庫,Richard Hipp是怎麼設計出來的呢?

這還要追溯到20多年前,他接下國防公司通用動力的一個項目說起。

當時,他要解決如何在導彈的小型計算機上安裝資料庫的問題。

美國海軍所使用的Informix資料庫體積太大、無法安裝,而且它是一個單獨運行的程序,即使想方設法安裝成功,運行的效率也不高,甚至還要耗費大量人力來操控。

圖片

由此,Richard想:「為什麼不能直接從磁碟上讀取資料呢?」

這樣既能提高運行效率,也能減小資料庫大小。

於是,他用C語言寫了一個小檔案,它可以被嵌入到任何程式中,並且大小隻有900KB左右!

所以,你就能Get為啥這個新伺服器,只有一個C檔案了吧。(一直都很Richard風格)

假設要啟動導彈上一個GPS程式,這個檔案只需在其內部創建一個小資料庫,就能來管理相應的資料。

第一版SQLite就這樣誕生了。

之後,Richard對SQLite進行過多次更新。

2001年剛釋出第二版後不久,摩托羅拉就給他打來合作的電話,希望把SQLite應用在他們的手機上。

2005年,Richard直接開源了SQLite,並於同年獲得Google O’Reilly 開源獎。

而他最新發布的網路伺服器Althttpd,其實從2004年就開始運行SQLite官網了。

圖片

官網上介紹,Althttpd的處理能力還可以。

截至到2018年,Althttpd在SQLite官網每天處理約50萬個HTTP請求(每秒5、6個),每天能夠提供50GB的內容(約4.6兆位元/秒)。

網友:真·輪子哥

他學習程式設計的緣起,還要從中學說起。

大概是在70年代左右,當時Richard在讀9年級。一次偶然的經歷,讓他看到電傳打字機,背後都連著一個大型計算機。

大概是這個樣子。

圖片

他被震撼到了,於是下定決心說:必須要學會程式設計。

執行力超強的他,立馬就去學校圖書館,將所有關於計算機的書都借出來。

實際上,只有三本。那天晚上,他就將三本書看完了,還開啟了學習用BASIC程式設計的旅途。

隨後不久,Apple II出來了。

圖片

不太富裕的他,只買了一個主機板,然後自己搭建鍵盤、電源,並將它們全部焊接起來。

這當中還發生了一個小插曲。

第一個主機板不能用,他就電話給蘋果。聯合創始人史蒂夫·沃茲尼亞克就給他寄了另一個主機板。

組裝成功之後,他就試圖在4K的記憶體中編寫程式,這裡面還包括視訊記憶體。

當時還因為沒有顯示器,他就調製射頻,將它掛在電視機的天線上。

雖然解析度感人,整個螢幕只有40個字元寬,24行高。

直到現在,他仍然表示:

It was the most amazing thing in the world.

這樣的創造因子,是從他父親那裡繼承而來。

Richard這樣形容他的父親:「他是那種最原始的製造者,比如內燃機什麼的」。

而Richard則將同樣的想法——從零開始創造事物,放在了抽象的東西上。

接觸到計算機之後,Richard喜歡上了程式設計,原因很簡單:不需要用任何具象的材料,就能構建一個完全不同的世界。

事實上,他也一直在付諸實踐。

SQLite之後,他接著寫了分散式版本控制系統Fossil、Bug追蹤系統CVSTrac,以及解析器生成器Lemon。

每次都是因為遇到了一個問題,然後就自己去編寫。

因此就有網友戲稱:真·輪子哥。

圖片

不過也有網友為他解釋:自己寫的工具確實更順手。

圖片

但還有比編寫SQLite更難的事情

不過,對於這位大佬來說,還有比程式設計更難的事情。

那就是讓他的妻子Ginger Wyrick嫁給他。(手動狗頭)

圖片

甚至在結婚之後,公司也改名了 ,Hipp, Wyrick & Company

並將所有股份轉讓給她。

Richard在接受採訪時調侃,有時候一度不得不從她那購買一半的股票。


IT145.com E-mail:sddin#qq.com