談談華為鴻蒙和開源軟件(中)

開源軟件的蓬勃發展導致了開源許可證的多樣化,這些軟件許可證五花八門,既有相同之處也各有特殊考量,要想把這些許可證都搞明白了也不是一件容易的事,需要專業的法律界人士仔細分析其條款。筆者不是法律專業人士,只能對開源許可證進行粗略地介紹。

軟件許可證中大多是些免責條款,比如,“你用我的軟件設計飛機,飛機摔了我不負責”,“你用我的軟件搞自動駕駛,掉溝裡跟我沒關係”之類的。大家不要以為只有開源軟件的許可證才有這些免責條款,私有的商業軟件也一樣有這些條款,否則以Windows動不動就藍屏的操行,飛機摔了都去找比爾蓋茨賠,他雖是首富也早就破產了。大家安裝軟件時,一般情況下,第一步就是要接受許可證,否則安裝根本進行不下去,不過,絕大多數人根本不會去讀許可證的內容。

常見的開源軟件許可證有幾十種,比較著名的有:

  • 自由軟件基金會的GPL v2和GPL v3
  • 加州大學伯克利分校為FreeBSD項目制定的 BSD 許可證
  • 麻省理工學院為X Window項目制定的 MIT 許可證
  • Apache基金會為Apache項目制定的 Apache 許可證
  • 中國開源雲聯盟制定的“木蘭寬鬆許可證”

按照寬鬆程度,開源軟件的許可證可以分為傳染性的和非傳染性的。

傳染性許可證

所謂傳染性,就是要求“我的軟件開源,你的修改也要開源”。RMS的自由軟件基金會主打的GPL許可證就是這麼要求的。起初,這種要求也無可厚非,畢竟自由軟件是從零做起、一行一行代碼辛苦碼出來的,如果代碼被商業公司拿去改一改,增加一些功能,比原來更好用,而且不繼續開源,那麼用戶就都流失了。

但是,轉染性的許可證也限制了開源軟件的推廣使用,比如說一家商業公司用了少量開源代碼做產品,就必須把含有大量技術機密的自有核心代碼公開,對於這家商業公司來說就得不償失,在這種情況下,商業公司就會放棄使用具有傳染性的開源代碼。這不利於開源軟件的推廣,而開源軟件的開發者也拿不到商業公司以捐贈形式提供的回饋。

自由軟件基金會顯然也意識到了許可證傳染性帶來的問題,因此他們推出了LGPL(寬鬆通用公共許可證),允許商業公司把開源軟件編譯成動態鏈接庫使用。

非傳染性許可證

傳染性的GPL許可證限制太多,因此很多開源項目採用了更加寬鬆的條款,最具代表性的加州伯克利的BSD許可證。BSD協議給了使用者極大的自由,基本上是讓用戶可以“為所欲為”,用在商業產品裡——可以;修改後不開源——可以;代碼一點兒不動,編譯好了對外銷售——可以。BSD唯一的限制就是不允許以代碼的作者、機構或產品的名稱做推廣宣傳。頗有點孫悟空的師傅菩提老祖的做派,本事教給你,但不許說是我的徒弟,打著我的旗號闖禍,出了所有問題你自己兜著,跟我無關。

這種“任君採擷”的非傳染性許可證很受歡迎,很多開源項目都採用此類許可證,除了加州伯克利的BSD以外,麻省理工的“X窗口”,Apache,還有中國的“木蘭寬鬆許可證”都是非傳染性的。華為的方舟編譯器就是以木蘭許可開源發佈的。

那麼開發機構為什麼要以非傳染性許可證發佈軟件?難道真的是做慈善?原因是多種多樣的,比如加州伯克利和麻省理工,作為大學本身就肩負為人類創造新知識的使命,它們的軟件向全社會公開是責無旁貸。還有一些公司或機構發佈開源軟件的原因是,它們並不靠售賣軟件為生,而是利用開源軟件提高自己其它產品的影響力,從而獲取收益。谷歌的安卓就屬於這種情況。

在蘋果手機的操作系統iOS大獲成功之後,有很多開源的移動操作系統在競爭主導地位,比如Meego和Tizen,安卓之所以在競爭中勝出,一方面是由於其本身優秀的品質,另一方面就是由於它採用了寬鬆的軟件許可證,允許商業公司拿回家去隨便修改使用。如果當初安卓不這麼做,可能早就死翹翹了,著名的反例就是微軟的WindowsPhone,死守著老派的私有商業許可證,最終為用戶所唾棄,連帶微軟的老夥伴Intel都跟著在移動市場上摔了大跟頭。

你要問谷歌靠什麼賺錢,它的商業模式是什麼,且聽我慢慢道來。

古哥兒的生意經

村裡的古哥兒是個聰明孩子,而且還勤快。古哥兒靠替人貼小廣告為生,你看村裡村外、車站食堂的那些“辦證”“交友”的小膠貼都是古哥兒貼上去的。

古哥兒這孩子勤快,常常免費替村裡人辦事兒,比如通個下水道、發個快遞、送個外賣什麼的。你不要以為古哥兒是個傻帽,這可是古哥兒發財的秘訣。古哥兒免費替人辦事兒,才能進到人家裡,進到人家裡才能知道人需要什麼,才能更準確地發小廣告。現在古哥兒已經不親自貼膠貼了,而是招收了一幫小弟,發廣告有分成,自己留一半,小弟拿一半兒。但是古哥兒有不對稱的信息優勢,知道誰需要什麼,所以找古哥兒貼廣告的效果最好,亞虎那傻小子也替人發廣告,就知道在村口瞎嚷嚷“大力丸、大力丸”,結果李藥師一個月都沒賣出去一粒大力丸,從此不再找亞虎發廣告,亞虎只好撤攤兒了,聽說在城裡替人挑水為生。古哥兒現在也成了大老闆,一大清早就把兄弟們召集起來交代工作:

“我說小推子,你把大力丸廣告送給李寡婦沒用,她用不著那個,她兒子有溼疹,把溼疹廣告推給她。”

“我說小管子,趙員外的小妾昨天抱怨慾求不滿,把大力丸廣告給趙員外送去。”

安卓的許可證

​很多人問,安卓的許可證是什麼類型的,這個問題還真不好回答,因為安卓不是一個單體軟件,而是由許多模塊組成的,不同的模塊採用的許可證也不一樣,所以安卓的許可證有一大摞,既有GPL也有LGPL和BSD類許可證,堪稱許可證博物館。

安卓的最底層是Linux內核,這一點好多人的不知道,拿著安卓手機發帖子,噴Linux是垃圾在中國是一大奇觀,他們不知道,Linux就運行在自己褲兜裡。Linux內核採用的是GPL許可證,而且是GPL v2,不是GPL v3,Linus特別強調過這一點。至於GPL v2和v3有什麼區別,我也說不清楚,大概齊是在對待軟件專利方面的條款有些差異。

安卓還用了很多LGPL的庫,比如顯示jpg圖片要用libjpeg,顯示png圖片要用libpng,顯示大家喜聞樂見的gif動圖要用libgif。另外,播放錄製聲音要用到音頻庫,播放錄製視頻要用到視頻編解碼庫等等。

安卓中谷歌貢獻的代碼,主要是Java虛擬機和圖形用戶界面庫部分,採用的是非傳染性的開源許可證。

安卓的開源部分叫做“安卓開源計劃”,簡稱AOSP。

所以,總的來說,安卓是個各種開源軟件的大集合。瞭解了這一點,再聽到“谷歌禁止華為使用安卓操作系統”之類的話,就可以嗤之以鼻了。谷歌沒有權利禁止別人使用開源軟件,不僅谷歌不能,美國政府也不能。

谷歌有權不讓華為使用的是它摻在安卓裡的私貨,具體點兒說就是“谷歌移動服務”,簡稱GMS。谷歌還可以不讓華為手機出廠時安裝谷歌自家的安卓App,比如油管視頻、Gmail之類的。

谷歌還可以禁止華為使用“安卓”這個詞,以及安卓那個小機器人的圖標,因為“安卓”和小機器人是谷歌的商標。但是,現在谷歌還沒有這麼做,因為這麼做意義不大。

華為的應對策略就是開發自己家的“華為移動服務”,簡稱HMS,這一步華為已經做了。另外,如果谷歌不讓用“安卓”這個商標,華為還要給安卓的開源部分重新起個名字,比如改稱“鴻蒙”。

所以,儘管華為鴻蒙還沒有發佈,大家也可以預期鴻蒙與安卓不會有太大的差別,因為是同一套代碼。

華為有沒有權利給安卓的開源代碼改名字呢?有!不僅有權這麼做,而且這種一言不合就給開源代碼改名字的事兒,在開源界是很常見的現象,這叫fork,就是分叉。

今天太晚了,關於開源軟件分叉,開源軟件主導權,和鴻蒙系統會是什麼樣的話題,咱們下回分解。


分享到:


相關文章: