科研雜談 | 開源給我們帶來了怎樣的奇蹟?

就在前不久,國內宣判了首例開源代碼侵權案例,被告因爲沒有遵循原告使用的GPL3.0開源協議,被要求賠償50萬元人民幣。最近,還有另外一件事,有一個波蘭的小姐姐,想移植一個系統到優米(UMIDIGI)的手機上,但是缺少一個顯示屏幕驅動,而這個驅動是Linux內核分支,根據GPLv2協議必須開源。但是優米回覆郵件嗆聲說:“如果要就來深圳拿吧!”還好著名Youtuber Naomi幫忙去優米公司要了代碼,優米隨後也在官網和github公佈了代碼。

可能對不熟悉開源協議的人來說,有點疑惑。明明是開源代碼不是拿來用就行了嗎?怎麼還會侵權?而這GPL協議又是什麼東西呢?開源對社會來說又有什麼意義呢? 本篇文章,我們就來聊聊開源這件事。

相信對從事互聯網行業的人來說,開源這個詞肯定不陌生。在計算機發展的早期階段,也就是5、60年代,這些形形色色的開源協議還並不存在。因爲當時售賣一臺硬件,上面的軟件是捆綁包含在售價裏的,而提供軟件的源代碼更是業內默認的行爲。基本上沒有一家廠家認爲軟件也是一種商品,他們只覺得軟件就是你購買計算機的附屬品。而且此時能用上計算機的人,大多都是相關領域的專家。所以軟件源碼對他們來說就是一種知識,大家一起維護分享是一件很合理的事。隨着計算機發展,軟件行業逐漸興起,那軟件商業化也不可避免。大量的軟件公司在這個時期成立。

可是,此時的用戶習慣依舊不把軟件當商品,當時的計算機愛好者如果要交流計算機,都會去一個叫“”家用計算機俱樂部”的社區交流信息。在俱樂部裏,他們一起剖析軟件修改代碼,按照自己的想法增添軟件的功能,然後用軟盤一拷貝,就能帶回自己家用了。

這種情況一直持續到了1975年,這一年有一家剛成立的公司微軟,覺得這事不對勁,當時他們的第一款產品Basic編程軟件深受大家的喜愛,市面上的電腦只要能安裝這款軟件的基本上都安裝了。雖然這款軟件銷量還不錯,但是賣得多拷貝的人也就更多,明明還能賺很多錢,卻因爲軟件的私下傳播整沒了。

於是時年20歲的比爾蓋茨寫了一封公開信,信中中心思想明確,公開懟那些分享拷貝軟件的人是剽竊者,並告訴大家:沒有任何一個愛好者,能再沒有任何收入的情況下,長時間的開發並維護一款軟件。這封信一發出,軟件界一片沸騰。各大中小軟件公司紛紛贊同。閉源軟件由此纔算真正的上道。

從開源到閉源幾乎就是一瞬間完成的事,而這一瞬間的改變也讓那些推崇開源的人感到反感。其中理查德·馬修·斯托曼尤爲之最。當時他正在麻省理工做人工智能的實驗工作,軟件商業化後原本開發了Unix的公司AT&T開始對Unix系統收取高額的授權費用。在當時的年代,這個費用大約在2至20萬美元左右,同時因爲很多的代碼不再開源,在機器出現問題時斯托曼也沒辦法通過查看代碼或者修改驅動的辦法解決。

以上種種原因導致,斯托曼極其痛恨軟件的封閉性。於是,斯托曼直接辭職下海去從事自由軟件事業。下海後他像比爾蓋茨一樣,以重現軟件界合作互助的團結精神爲主題發表了一篇GNU宣言,在發表宣言之後,斯托曼又創立了自由軟件基金會,用來爲他的自由軟件計劃提供他的人員和資金支持。

也就在這個時期,他起草了文章開頭提到的協議——通用公共許可證(Gneeral Public License)協議。這個協議的主要思想就是:你可以使用這個協議的源代碼進行修改、傳播、獲利,但是你必須保持原有的版權信息,並公開你修改後的所有代碼。也就是說只要你的軟件使用了GPL協議的代碼,你的軟件也要跟着開源。

那些厭惡閉源軟件的程序員大佬們如獲至寶,紛紛選擇加入斯托曼的隊伍。像著名的Linux就是使用的GPL協議。在這個基礎上發展出了GPLv2、GPLv3、AGPL、LGPL等等協議。

不過問題在於,這些協議只是看上去不錯,表面上它既保持了開源,又能讓你使用修改後的代碼獲利。但實際上,這兩者本身就是相對的。

有一個著名的詞叫做GPL傳染性或者GPL病毒,只要你的項目包含了GPL代碼,整個項目就變成了GPL。這就導致基於GPL協議的軟件很難實現商業化。當然也有例外,基於Linux的安卓就避免了GPL的傳染性。用了更爲寬鬆的Apache2.0協議,允許手機上基於安卓開發後閉源。谷歌用了很複雜的方式,把Linux包在內核層,規避了GPL傳染性,不然其他基於安卓的UI根本發展不起來。

但這事,爭議很大,有很多人現在依舊認爲安卓違反了GPL協議。其他的商業公司都在儘可能的避免沾到GPL協議的代碼。所以,斯托曼的這個自由軟件運動,只有對開源抱有極大興趣的人才會以實際行動去支持。那有什麼辦法在保證開源的同時又能商業化呢?

這個問題到1998年纔算有了結果。在此之前開源(Open-Source)這個詞並不存在。基本上稱呼當時的軟件都會用自由(Free)一詞,這就給當時的人造成誤解,Free代表免費。所以這一年。來自Linux用戶組的一羣大佬開了個會,從網景瀏覽器上取得靈感,覺得摒棄Free這個詞,而使用Open-Source這個詞來代指開源軟件,並且重新定義,開源就是開源,與後續使用分開。也就是說就算你代碼開源,也可以拿開源的代碼做封閉的發行版,爲了更好的制定開源規則,OSI(Open Source Initiative)組織也成立了,它的主要任務就是評估開源許可證。

從此,開源界分裂成了自由軟件基金會(FSF)和開源組織(OSI)兩大陣營。這兩大陣營代表了兩大開源理念,自由軟件基金會代表了代碼的絕對自由,而剛剛提到的Apache2.0就是開源組織的典型代表,這些開源協議相當寬鬆,除了要求用戶必須披露原始作者之外,可以閉源。典型的除了Apache2.0還有BSD,MIT協議谷歌的AOSP和Chrome、華爲的Open Harmony,都是基於Apache2.0。這些寬鬆的開源協議發展出了強大的商業價值,曾經微軟因爲商業的理由選擇閉源,但現在有越來越多的公司同樣因爲商業選擇開源。

2019年中國信息通訊研究院發佈了《開源產業白皮書》調查了多個行業,國內已經應用了開源技術的企業佔比達86.7%,有計劃應用開源的企業佔比10.6%。那些大的科技公司更是積極擁抱開源,百度有700多個開源項目,阿里有1200個,而谷歌則是高達2000多個。

時至今日,對於那些廠商來說代碼開不開源,已經不單單是軟件賣不賣錢的問題了。那些廠商更多的是將開源作爲自己搶佔商業市場和贏取口碑的一種武器,利用自己資金充足、研發速度快、流量渠道多的優勢搶先一步將實現某種功能的源碼發佈出去。這種方式會吸引很多沒有辦法做研發的小公司,在大廠公開的源碼基礎上研製產品,當使用的人多了起來,依託這套開源的代碼也就成功建立起了自己在某個產品某個方向上的商業標準,實現自己在某一方面上的壟斷。從而在這一方向上擁有絕對的主導權。最能體現這一套做法的就是谷歌旗下的安卓。

但是現在選擇代碼開源的公司多多少少都有自己的小心思,想回到計算機發展初期那種開源盛況,已經不可能了。另外,隨着計算機逐漸平民化和簡易化,以及大量不同功能的程序誕生,自己修改程序已經成爲一項非必要技能,所以,既然現在開源已經被各種利用,甚至又這麼多壞處,要不全部閉源。要真這樣程序員第一個不答應,編程最重要的一點,不是命名規範、不是添加註釋、不是可讀性,而是不要重複造輪子,我能Ctrl+C爲什麼還要再打一遍?

實話實說,開源這回事確實保住了很多程序員的飯碗。而如今互聯網上各種豐富的開源框架和開源庫,還可以讓程序員在短時間內,完成很多他們原本需要花更多時間才能完成的功能邏輯。比如很有名的Opnecv,這套基於BSD許可的機器視覺學習庫,讓不少編程愛好者整出花活。之前很多的換臉視頻,用來訓練這些換臉AI的軟件基本上都有使用到這個庫裏的代碼。正是由於開源,所以你沒有必要學會什麼是機器學習,什麼是計算機視覺,只要你會調用接口,會一些C++和Python等基礎代碼,就能鼓搗出一個屬於自己的換臉軟件了。file

現在的開源協議,已經從軟件界影響到了知識界,啓發了CC共享許可,進而引發了學術界的OA期刊運動,促進了知識的分享。全人類正是靠着這些纔不斷前進,創造出一個又一個奇蹟。

  • End -

技術發展的日新月異,阿木實驗室將緊跟技術的腳步,不斷把機器人行業最新的技術和硬件推薦給大家。看到經過我們培訓的學員在技術上突飛猛進,是我們培訓最大的價值。如果你在機器人行業,就請關注我們的公衆號,我們將持續發佈機器人行業最有價值的信息和技術。 阿木實驗室致力於前沿IT科技的教育和智能裝備,讓機器人研發更高效!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章