天天看點

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

前不久,中國公布了首起開源侵權案件,被告因未遵守原告使用的GPL3.0開源協定而被勒令支付50萬元。最近,還有一件事,一個波蘭小妹妹想把一個系統移植到UMIDIGI手機上,但缺少一個顯示屏驅動程式,一個必須在GPLv2協定下開源的Linux核心分支。但Yumi回複了郵件,說:"如果你想來深圳拿吧!"著名的Youtuber Naomi幫助從Youmi那裡獲得了代碼,這很好,Youmi後來在其官方網站和github上釋出了代碼。

對于不熟悉開源協定的人來說,這可能有點令人困惑。顯然是開源代碼是不是要上線就用了?怎麼還能被侵犯?這個 GPL 協定是什麼?開源對社會意味着什麼?在本文中,讓我們來談談開源。

我相信開源這個詞對網際網路行業的人來說當然并不陌生。在計算機發展的早期階段,在1950年代和1960年代,這些不同的開源協定并不存在。因為當時賣了一塊硬體,上面的軟體都捆綁在銷售價格裡,提供軟體源代碼是業界的預設行為。基本上,沒有制造商認為軟體也是一種商品,他們隻是認為軟體是你的電腦配件。而此時能使用電腦的人,大多是該領域的專家。是以軟體源代碼對他們來說是一種知識,我們一起維護和分享是一件非常合理的事情。随着計算機的發展,軟體行業正在興起,該軟體的商業化是不可避免的。在此期間,大量軟體公司成立。

然而,此時,使用者習慣上仍然不把軟體當成商品,那麼電腦愛好者如果想交換電腦,就會去一個叫"家用電腦俱樂部"的社群交換資訊。在俱樂部,他們剖析軟體修改代碼,根據需要添加軟體的功能,然後使用軟碟将其帶回家中。

這種情況一直持續到1975年,當時微軟,一家初創公司,覺得這是不對的,當時他們的第一個産品,基本程式設計軟體,非常受歡迎,市場上的計算機基本上被安裝,隻要他們能安裝它。雖然軟體銷量不錯,但賣更多的拷貝的人會更多,顯然也可以賺很多錢,但是因為私人傳播的軟體就不見了。

然後,當時20歲的比爾·蓋茨(Bill Gates)寫了一封公開信,明确認為那些分享複制軟體的人是抄襲者,并告訴所有人,沒有一個業餘愛好者可以在沒有任何收入的情況下長期開發和維護一個軟體。這封信一發出,軟體世界就處于沸騰狀态。主要的中小型軟體公司已經同意了這一點。是以,閉源軟體才是真正的方法。

從開源到閉源,它幾乎是瞬間的,而這種短暫的變化對那些推廣開源的人來說是令人厭惡的。理查德·馬修·斯托曼(Richard Matthew Stallman)是最受歡迎的。他當時正在麻省理工學院試驗人工智能,在軟體商業化後,最初開發Unix的公司AT-T開始對Unix系統收取高昂的許可費。在那些日子裡,成本約為20萬至20萬美元,而且由于許多代碼不再是開源的,斯托曼無法通過檢視代碼或修改驅動程式來解決機器的問題。

出于所有這些原因,斯托曼憎惡軟體的關閉。是以,斯托曼先生直接辭去了工作,轉而從事自由軟體事業。在出海之後,像比爾·蓋茨一樣,他發表了一個GNU宣言,主題是重建軟體社群的團結,之後,斯托曼成立了自由軟體基金會,用他的員工和資金來支援他的自由軟體程式。

也正是在此期間,他起草了文章開頭提到的協定,即通用公共許可協定。該協定的主要思想是,您可以使用此協定的源代碼進行修改,傳播和貨币化,但您必須保留原始版權資訊并披露您修改的所有代碼。也就是說,隻要你的軟體使用GPL協定代碼,你的軟體就會遵循開源。

讨厭閉源軟體的程式員選擇加入Stallman的團隊,如果他們能從中得到最大的收益的話。像著名的Linux一樣,使用的是GPL協定。在此基礎上,GPLv2、GPLv3、AGPL、LGPL等協定相繼開發。

問題在于,這些協定看起來不錯,表面上保持了開源,并使您從修改後的代碼中獲利。但事實上,這兩者本身就是相對的。

有一個著名的詞叫GPL感染或GPL病毒,隻要你的項目包含GPL代碼,整個項目就變成了GPL。這使得基于GPL的軟體難以商業化。當然,也有例外,基于Linux的Android避免了GPL的傳染。更寬松的Apache 2.0協定允許在基于Android的開發後關閉手機。谷歌已經使用了一種複雜的方法将Linux包裝在核心層中,以避免GPL的傳染性,否則其他基于Android的UI根本無法開發。

但它是如此有争議,以至于許多人仍然認為Android違反了GPL協定。其他商業公司正試圖盡可能避免陷入GPL協定代碼的困境。是以,隻有那些對開源有濃厚興趣的人才會支援 Storman.Com 這種自由軟體運動。那麼,商業化開源的方法是什麼呢?

這個問題直到1998年才取得成果。在那之前,開源這個詞還不存在。基本上,當時的軟體會使用"免費"這個詞,這引起了當時人們的誤解,Free代表免費。是以今年。來自Linux使用者組的一群大佬們召開了一次會議,從The View浏覽器中汲取靈感,并認為應該丢棄"免費"這個詞,而是使用"開源"一詞來指代開源軟體,并重新定義了開源是開源的,與後續使用分開。這意味着,即使您的代碼是開源的,您也可以使用開源代碼作為封閉的發行版,為了更好地制定開源規則,開源促進會組織已經建立了一個組織,其主要任務是評估開源許可證。

從那時起,開源世界分裂成兩個陣營:自由軟體基金會(FSF)和開源組織(OSI)。這兩個陣營代表了兩個開源思想,自由軟體基金會代表絕對的代碼自由,而剛才提到的Apache 2.0是開源組織的典型特征,開源協定相當自由,除了要求使用者披露原始作者之外,還可以對使用者關閉。通常,除了Apache 2.0之外,BSD,MIT協定Google的AOSP和Chrome,華為的Open Harmony都基于Apache 2.0。這些松散的開源協定已經形成了強大的商業價值,曾經微軟出于商業原因選擇關閉,但現在越來越多的公司也出于商業原因選擇開源。

2019年,中國資訊通信研究院釋出《開源産業白皮書》對多個行業進行調查,國内已應用開源技術的企業比例達到86.7%,計劃應用開源的企業比例占10.6%。大型科技公司在擁抱開源方面更加積極,百度擁有700多個開源項目,阿裡1,200個,谷歌超過2,000個。

今天,對于那些制造商來說,代碼不是開源的,這不僅僅是軟體不賣錢的問題。那些廠商更是将開源作為自己先發制人的商業市場,以赢得口碑為武器,利用自身資金充足、研發速度快、流量管道等優勢,邁出了實作一定功能源碼釋出的第一步。這種方法會吸引很多小公司那些沒有辦法做研發的公司,在大工廠開源的基礎上開發産品,當使用更多的人上來時,依靠這套開源代碼也成功地建立了自己在某個方向上的一個産品業務标準, 實作自己在某一領域的壟斷。是以,在這個方向上有絕對的支配地位。這種方法的最好例子是谷歌的Android。

但現在選擇代碼開源的公司或多或少都有了自己的細心思考,想要回到計算機開發初期那種開源熱潮,這是不可能的。此外,随着計算機逐漸變得平民化和簡單化,以及大量不同功能的程式的誕生,自己對程式的修改已經成為一項非必要的技能,是以,從現在開源開始就被各種各樣使用,甚至有這麼多的缺點,并不是所有的閉源。如果這個程式員先不同意,程式設計最重要的一點就是不命名規範,不添加注釋,不可讀性,而是不要重複輪子,我可以按Ctrl-C為什麼還要再玩一遍?

說實話,開源确實讓很多程式員活了下來。今天,網際網路上豐富的開源架構和開源庫也允許程式員在短時間内完成大量的功能邏輯,否則他們需要花更多的時間。例如,著名的Opnecv,一個BSD許可的機器視覺學習庫,已經讓很多程式設計愛好者工作。之前許多變臉的視訊,用于訓練這些變臉AI的軟體,基本上都使用了這個庫中的代碼。正是因為開源,你才不必學習什麼是機器學習,什麼是計算機視覺,隻要你調用接口,就會有一些基本的代碼,比如C和Python,你可以鼓動一個你自己的變臉軟體。

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

今天的開源協定已經從軟體世界影響了知識界,激發了CC共享許可證,進而引發了學術界的OA期刊運動,促進了知識共享。正是通過這些,全人類繼續前進,創造了一個又一個奇迹。

結束 -

随着技術的快速發展,阿木實驗室将緊跟技術步伐,不斷向大家推薦機器人行業的最新技術和硬體。看到我們訓練有素的學生在技術上取得進步是我們教育訓練的最大價值。如果您從事機器人行業,請關注我們的公衆号,我們将繼續釋出機器人行業最有價值的資訊和技術。阿木實驗室緻力于前沿的IT技術教育和智能裝備,讓機器人研發更高效!

繼續閱讀