這是今天從一個飯局了解到一些好玩的"紅旗"系統的歷史。記錄一下,一個是解答了,中國為什麼做不出自己的操作系統。另一方面也是自己關於開源的一點反思。

  1. 這是最好的時代

早期的時候,那是一個 linux 最好的年代。百花齊放,中國也搞自己的國產的操作系統。紅旗算是其中最具代表性的先驅之一。中國一條典型的路子,引進然後改造。先引進國外的技術,再自主改造,再到慢慢超越.... 比如在高鐵這方面,就是值得我們自豪的一個案例。

那麼 linux 呢?早期探索中,我們也走過這條路。內核拿過來,改!比如 linux 是英文的,我們要讓它支持中文,要加漢化。對用戶要友好嘛,外國返回 ok,error,我們要返回 「成功」「錯誤」... OK,我們拿了 2.4 內核,吭茲吭茲改好啦... 這時,官方的內核版本升到 2.6 了。我們的改動就白忙活了一場。沒 merge 進去,工作都白費了!

除了漢化這種沒多少技術活的,紅旗其實也做過一些其它的優化的。然而這些個小的改動和優化,到下個版本官方一升級,跟人家一對比,我們做的東西完全是小兒科,被吊打,最後全部扔掉 -- 版本升級了,做的工作都白費了。

那我們為什麼不把改動 merge 回上游呢? 合不進去呀!人家老外寫的東西,人家說了算呀。在裡面沒自己人,說不上話,老外說不合,那就合不進去!

後來發現這麼搞不行,這麼搞法是國外的開源,不是我們的開源,根本參與不進去呀!當然內核也慢慢更完善了,語言的漢化這種,也可以丟到外圍更上層去做了...不涉及到改內核... 於是紅旗慢慢也就放棄去內核了這種路子了。只在外圍的改動了。

當我們不再碰這些東西後,我們更沒能力再碰這些東西了...

更可怕的是,這麼過了許久之後,國內搞 linux 的這幫人已經斷層了!搞不起來,就沒人搞。沒人搞更加沒落,這幾十年之後,早已經錯過了最好的年代。所謂國產操作系統,也跟著這波浪潮夭折了。

我們可以獲得教訓:

  • 軟體是一個動態變化的東西,固定到某個版本了改改改,是行不通的
  • 要真正參與進去開源,修改一定要 merge 回上游

2. 優秀的程序員

我知道有一類程序員,他們的事情就是專心做開源就行了。比如有某某內核驅動模塊,對應的 maintainer 是 xxx,這種人好多公司是高價供著的!就比如紅帽,給你錢,你還是維護你那塊的代碼,該幹嘛幹嘛。

再比如 XX 語言之父,這種也是被供著的。人家不缺錢... 這個世界也不缺碼農,缺的就是這種頂級的程序員。

背後其實是有複雜的利益關係的。站在最頂端的程序員,他們是實現者,他們決定著某個「事實標準」。廠商必須盡量拉攏他們,使得實現對自己的有利!語言也是類似,就像聚積效應,一個大牛在這兒,公司就可以靠這個影響力吸引到更多優秀的人才。

優秀的程序員,早早被大公司包養了.... 他們也很滿意:跟著自己的興趣做開源就是了。

老一輩經歷了最好的時代,卻很少進入到真正的開源。大浪淘沙,國內大部分人,淘掉了。小部分人,鑽研得比較深,這些人還繼續寫著彙編,寫著 C...

市場很小,現在寫內核已經沒「價值」了。前面也說過,青黃不接。我們失去的,是一個整個時代。

3. 小米的故事

風雲變換,滄海桑田。時間線跳到這些年,中國又在開源的世界中活躍起來了!華為,阿里,百度,騰訊...到處都有它們的身影。像華為這家公司還是很民族驕傲的!

早些年,單槍匹馬做些事情是可以的,比如章文嵩lvs,比如雲風的"風魂",這些都在曾經的年代書里寫過傳奇。但是系統越來越大,越來越複雜。輪子也足夠多了。現在的開源,已經不是靠純粹個人英雄主義的力量了。

做一個系統,一個人是不可能能完成的。投入 10 個非常核心的人員參與開發,也許就等於每年燒 1000w 的 RMB 投入。優秀的程序員很貴的 ... 開源也不能讓程序員餓肚子呀。於是,開源發展到現階段基本由大公司主導了。

回到正題:為什麼這些年,我們又在開源的舞台上,看到中國的影子了呢?

我要講講小米的故事。大公司自己內部在用一個系統,隨著使用的深入,也會慢慢可以改一些東西。就像早些年,紅旗也先從邊緣的東西開始改動。早期也許就改個拼寫錯誤,改改注釋。慢慢理解更深了,就可以做一些邊緣的改動,再後面,一步一步地深入,到可以主導某部分模塊的功能。

大公司養得起這些人,因為維護一個系統的回報是足夠高的。於是一些人可以專註地跟上整個開源項目,把修改 merge 回主幹,真正的參與進去。開源本質就是,誰做出的貢獻大,誰就有話語權。小米在 hbase 可是有好幾個 committer 的。

這個事情完成了一個正向循環。以前我們在 linux 內核沒人,改動就合不進去。越是合不進去,就越是無法參與到開源。維護正循環之後,中國人終於可以揚眉吐氣了!

4. 業界良心的 TiDB

參與一些開源項目的大公司倒有一些。但是老實說,真正由國人打造出來的具有國際影響力的項目,還不多。其中 TiDB 算是業界良心了。

TiDB 從一開始就是擁抱開源路線,並且真正用一個開源項目的標準來要求自己。按 github 開發流程,提交 issue,修復 bug,文檔也是英文。

最難是建立社區和生態。閉門造車的,註定玩不下去。拿一個開源的版本改一改,我相信以不少大公司的實力,都是有能夠維護起內部修改過的版本的,但是他們並沒有能力建立好的社區和生態。後果是什麼?這家公司獨個跟全世界在賽跑。開源並不是把代碼往 github 一放,就結束了,只有社區和生態建立起來,才能做好真正的開源。

開源離不開商業。只有商業公司在背後的支持,才能讓程序員興趣使然的去做開源工作。再一次,在商業角度,TiDB 同樣做了一個典範,這居然是一家搞開源技術創業的公司!而且,還活下來了!

我是挺驚訝的。希望有一天,開源在中國的環境裡面做得越來越好,誕生出最純粹的土壤,讓一批優秀的程序員,興趣使然的寫寫開源項目,也就維持生計了。


推薦閱讀:
相关文章