Author: Demon --- Law & Script
開源軟體簡史(一)鏈接門
開源軟體簡史(二)鏈接門
微軟與開源的攻守戰
微軟和開源社區的恩怨由來已久,最早可以追溯到家用計算機俱樂部的公開信那時,之後雙方陸陸續續發生過幾次擦槍走火的事件。
Windows 退款日上的遊行者
1999年2月15日是一個特殊的日子,它被開源軟體者們稱為「 Windows 退款日」。這一天幾百名來自矽谷 Linux 用戶組、 FreeBSD 社區的開源軟體愛好者們高舉橫幅遊行到舊金山灣區的微軟辦事處,要求微軟為他們未使用的機器上的 Windows 操作系統退款。事情的起因源於一名澳大利亞的用戶在新購置了一台電腦後仔細地閱讀了幾乎不會有人看的 Windows 操作系統用戶協議,發現其中包含了「如果軟體未被使用,你可以得到退款」的條款,於是他便帶著他未使用的機器成功拿到了退款。與今天一樣,當時微軟的壟斷地位已足以使它把 Windows 預裝在其他廠商生產的每一台計算設備上,我們在購買它們的時候也間接地向微軟支付了操作系統的授權費。開源社區的人們認為,預裝的行為實際上剝奪了人們自由選擇操作系統的權利,因為即使你購買電腦時就打算換上別的系統,你依然向微軟支付了授權費。微軟的代表早早準備好出來與他們交涉,當然沒有取得很多進展,於是大家打算繼續前進,直接上到他們的辦公樓里,只不過害怕被亂搞一番的微軟方面早已經把通往他們所在的九樓的樓梯通道和電梯都封閉起來了。儘管這一天結束之時,微軟的工作人員並沒有掏出支票簿兌現他們的退款,但他們的努力依然取得了一些成效——設備生產商開始提供未預裝系統的計算機。
面對開源軟體的洶洶來襲,微軟開始了它的反擊。2001年其推出了一項「共享源代碼」計劃,依據這項計劃,獨立開發者在開發系統級的軟體時可以申請查看他們所需的源代碼,政府和單位出於信息安全的考慮也可以要求審查源代碼,而教育研究機構在進行科研時亦可以申請獲得源代碼的支持。在外界看來,這也許是微軟向開源模式低頭的表現,但微軟內部依然是抗拒開源模式的,微軟高管 Craig Mundie 在紐約大學商學院的一次演講上提到:「共享源代碼計劃僅僅是吸收了開源模式的優點,例如提供有效反饋以及 Bug 修復、可定製等。實際上,(開源模式)要求開發者把他們辛勤工作產出的最具價值的結果無償提供給人們,轉而希望他們能通過提供一些諸如技術支持之類的其他東西來養活他們自己,這是對獨立軟體的持續發展的最大扼殺。」 雖然受到不少批評,但「共享源代碼」計劃時下依舊在運作著,其還推出過獲得 OSI 認證的 Ms-PL 授權許可。
兩年後,為了推廣精簡版的 Windows XP ,比爾蓋茨多次訪華,同時與中國政府簽署了「政府源代碼備案計劃協議」,蓋茨還親自向江澤民彙報。從微軟的資料來看,政府源代碼備案是一項全球性的計劃,旨在讓政府和其關聯的備案單位通過可控的方式查看微軟的源代碼和相關的技術信息,使政府部門能對 Windows 的安全性做一個全面的評估,強化雙方的合作。只不過,微軟方面並沒有對「可控的」一詞做出進一步解釋。
儘管微軟多管齊下,出於降低成本和對安全問題的考慮,尤其是稜鏡門事件曝光之後,多國政府也開始對開源軟體給予支持。法國近年來一直在大力發展開源軟體,曾向高校學生免費派發了 175000 份裝有開源軟體的 U 盤,並不斷釆取優惠的措施扶持開源軟體廠商。德國外交部將它的11000台電腦全部換成 GNU/Linux 和其它開源軟體,這一舉措使外交部相比其它部門大幅減少維護費用。美國紐約州立法院則修改當地稅法,對開源軟體開發者進行個人所得稅補貼(減免20 %)。中國政府在《軟體和信息技術服務業「十二五」發展規劃》中亦提出要把開源軟體作為扶持發展的對象。同時,中央採購中心在14年發函通知,禁止採購安裝 Windows 8 的計算設備,中國郵政隨後採購了上萬套定製版的國產紅旗 Linux 操作系統用於門店收銀的電腦上,用於取代老舊的 Windows XP 。
2008年 Google 發布基於 Linux 內核的開源安卓系統,隨著 HTC 推出第一台安卓智能手機,其開放的生態吸引了許許多多優秀的開發者,可定製性也成為許多廠商選擇其的原因,市場的選擇使安卓系統接二連三地打敗了曾經流行的塞班、黑莓等對手,逐步成為最流行的操作系統,時至今日安卓已經拿下了智能手機操作系統份額的70%。而微軟由於戰略失誤,在移動平台反應一直比別人滿半拍,當全觸屏智能手機已經成為市場主流時,才匆匆地推出了自家的 Windows Phone 操作系統。只是,由於應用稀少,功能不完善, WP 目前只在不到3%的智能手機上運行著。開源社區在這次競爭中大獲全勝。
不過,微軟在桌面系統領域的霸主地位卻一直是無人能撼動的, Windows 操作系統在統計數據中一直佔據著桌面系統90%以上的份額,而 Linux 只被2%左右的桌面用戶所接受。2013年微軟推出 Windows 8.1 系統更新,緊接著的是搭載了該系統的 Surface Pro 3 這款重新定義移動生產力的產品,同時微軟還宣布取消小於9英寸屏幕的 Windows 平板的授權費,於是大量搭配英特爾低功耗處理器的 Windows 平板上市,也因為其相對低廉的價格和 Windows 平台多年累積的豐富應用給安卓平板和 iPad 造成有力的衝擊。2015年7月,微軟開始了為期一年的免費升級正版 Windows 10 的服務,搶佔了更多市場份額。 Linux 則在其他的領域發力:目前世界上97%的超級計算機跑在 Linux 上,包括天河二號、 IBM 藍色基因等;60%的網站,包括 Google 、 Facebook 等最流行的網站選擇 LAMP 組合的伺服器;機器人、物聯網、無線電……
開源軟體在這些年的發展中一路高歌猛進,取得了不小的成就。但也不能因此而沾沾自喜,畢竟桌面系統這塊兵家必爭之地依然受到微軟壟斷陰霾的重重籠罩,而 Linux 系統給人的印象也依舊離不開「程序猿專用」、「命令行」、「複雜難用」等,在桌面版本上, Linux 依然還有很長的路要走。
微軟擁抱開源
微軟在2014年的雲策略發布會上大膽喊出了「微軟愛 Linux 」的口號,這在鮑爾默掌權微軟的時代是難以想像的,在他口中「開源就是一個毒瘤,誰碰上了都要倒霉。」那麼這對昔日的仇家如今怎麼走向合作了呢?新任 CEO 納德拉的上台及其提出的新的發展戰略是一個關鍵的轉折。
在蓋茨、鮑爾默時代, Windows 被視為微軟的業務核心,他們要做的就是如何讓客戶更多地購買他們的光碟和授權,而在他們的思維中互聯網是次要的,IE瀏覽器糟糕的體驗就一直被人吐槽。一晃二十多年過去了,微軟贏得了桌面操作系統的勝利, Windows 操作系統依然運行在數以萬計的 PC 設備上。但今天是一個移動互聯網的時代, PC 市場正在不斷地萎縮,與此同時,蘋果和 Google 這樣的競爭對手逐漸崛起,他們在互聯網、移動互聯網、雲服務甚至物聯網構築起成熟的生態,而 Linux 則在伺服器及超級計算等高精尖領域把微軟打得落花流水。醒悟過來的微軟亡羊補牢,可惜為時已晚,移動端的 WP 只取得3%的慘淡份額就是最好的證明。
也許是在互聯網和移動計算時代輸得太慘,納德拉接替鮑爾默執掌微軟後,微軟的戰略從模仿蘋果的「設備和服務」變成了「平台和效率、移動優先云為先」。
原雲服務部門的納德拉,擔任 CEO 之後的第一個舉動,就是將微軟雲計算服務 Azure 之前的「 Windows 」字樣果斷取掉,在此之前 Azure 平台只能運行在自家的 Windows Server 操作系統上。在他看來,無處不在的「 Windows 」印記,是 PC 時代思維的遺留,在雲計算和移動互聯網時代,微軟的雲服務不應該在束縛在 Windows 的「高牆」之內。隨後,微軟陸陸續續地與相關公司開展合作,將 Debian Linux 、 Red Hat Linux 和 Ubuntu Linux 一批最先進的 Linux 發行版本帶到 Azure 平台上。目前,在 Azure 雲平台上已有50%以上的虛擬機運行著 Linux ,用他們的話來說,「識時務者為俊傑」,這些舉動讓有特殊需求和喜好的客戶在選擇產品時留有更大的餘地,對提高微軟自身的競爭力無疑是有幫助的。
實際上,早在2009年微軟就曾向 Linux 內核貢獻了超過兩萬行代碼,這些代碼大大增強了在 Windows Server 2008 Hyper-V 上運行 Linux 操作系統的虛擬機的性能,甚至讓微軟在一段時間內在 Linux 內核貢獻數量榜單上排名第一。
除此之外,微軟還在開源這條路上走得更遠。微軟為開源的開發者提供基於開源、免費的代碼編輯器 Visual Studio Code ,支持主流的30幾種編程語言,任何人可下載其源代碼依個人喜好進行定製,並可在 Windows 、 Linux 與 Mac 環境上運行;微軟也將Windows下廣受開發者喜愛的應用框架.NET Framework的核心部分開源,稱為.NET Core,支持 Windows、Linux與iOS不同的操作系統,既開源也跨平台,已經成為GitHub上最受歡迎的開源項目;在收購了Xamarin 後,微軟宣布將這一移動跨平台開發技術免費開放給開發者使用,這將實現「一次開發,多平台部署」的美景,單一開發者就能夠開發 iOS 、 Android 與 Windows Phone 的原生 App ,企業不再需要為一個 App 養著3個開發團隊了;另外,微軟具有核心競爭力的資料庫產品也將推出 SQL Server 2016 For Linux 版本,儘管目前該產品依然處於測試階段,是否收費也尚不清楚,但這對於推動伺服器間建立持續一致的數據平台來說是利大於弊的; Ubuntu Bash on Windows 項目則將 Linux 上最重要的命令行組件帶到了最新的 Windows 10 上,這意味著大量 Linux 上的開源開發工具可以直接運行在 Windows 上面了。
在跨平台上也可以看得出微軟所投入的心血。 Office 原本是作為 Windows 的殺手鐧之一,而在最近我們看到 iOS 版本 Office 推出,同時安卓版的 Office 也實現了免費。甚至,在 iPad Pro 的發布會上,微軟的高管還應邀為對手站台,現場演示 iPad 版 Office 應用。 Cortana 智能語音助手, Outlook 郵箱,必應輸入法也紛紛登陸了對手的平台上,使更多用戶能在不同的平台上享受微軟服務的一致體驗。
2014年9月,微軟預覽體驗項目( Insider Program )隨著 Windows 10 的第一個技術預覽版本一起面世,致力於為喜歡嘗鮮的用戶迭代推送包含最新功能、處於測試階段的微軟產品,並通過一個「反饋中心」的程序讓用戶提交他們的使用體驗及錯誤報告。對於微軟的轉變,內部高管 Terry Myerson 表示:「這樣做可以帶來更開放的開發模式,社區中的每個人都可以參與其中,並通過提出建議、提交代碼、修正錯誤、開發新功能等方式來提交反饋,我們認真聽取這些反饋,並有可能採納建議或合併代碼到我們未來的產品中。」
薩蒂亞·納德拉
納德拉則說:「營收屬於落後指標,而使用率才是領先指標。」在這一指標的引導下,微軟大力擁抱開源,培養多元化的生態系統,從微軟雲 Azure 到 Windows ,從開發工具到資料庫平台,這些舉動表明其不再死守 Windows 不放而選擇開放性。當然,這也給它帶來了新的機遇。開源意味著它能夠收到來自社區的反饋和改進,而跨平台則使其能夠向更多的用戶兜售其服務,以 Office 為例,其收費模式已經從傳統的「一次購買,終生使用」,轉向「包月、包年購買使用權」了,從長期看這無疑有益於推動其營收。
對於微軟此番大膽秀恩愛的舉動,開源社區的人有話要說。首先,這顯示出開源的力量,開源社區一直引領網路服務平台最先進的技術,需要和想要使用 Linux 服務的付費客戶佔市場大多數,微軟意識到如果他們不能提供 Linux 虛擬機,那些客戶就會轉而選擇其他廠商。正如美國的一句俗語說的,「如果無法戰勝你的敵人,那麼就擁抱他吧」。說到底,微軟還是那家商業至上的公司。這次的行動也引發了一些擔憂:「 .NET Framework 確實是一個優秀的框架,在跨平台、開源模式的加持下將幫助其更加完善,因而吸引越來越多的開發者使用它。但是,開源社區的一個很明顯的問題是,很多項目都活不長,開發者在丟出最初幾個版本後就棄坑的項目比比皆是。 .NET 的廣泛採用可能意味著與之競爭的開源項目會走向消亡,最終迫使我們都跟著微軟的指揮棒轉。」從這個方面來看,微軟的開源對於開源社區來講也許不是什麼好消息。
從目前來看,開源因其開放和協作而逐漸登上歷史的舞台,微軟也正順應著潮流開發更多的開源軟體。在開源軟體的影響下,還出現了以 Ardunio 為代表的開源硬體、配方開源的飲料、開源設計、開源政府、開源醫藥、開源藝術、開源教育等等運動,未來究竟會是個什麼樣子還很難說,但以微軟為代表的閉源軟體目前還有著強大的生命力,人們喜歡閉源軟體漂亮的 UI 及其易用性,企業青睞集成化、統一的解決方案,開發者在使用著最新的開源 Docker 、 Hadoop 等技術的同時,依然依賴著閉源的 Xcode 、 Slack 等,而開源也還存在著不夠平易近人的問題。或許未來人人都會編程時,開源就真的成為了世界的唯一標準,不過讀到這篇文章的人中估計也沒有幾個正打算去學編程的。所以說,開源和閉源其實沒必要太過較真,雙方各有其優點與不足,兩者長期共存、互利共惠的局面還將持續下去。
現代企業需要充分擁抱兩個世界。 Google 、 Facebook 和 IBM 用他們自身做了一個成功的示範:他們證明利用開放源碼也可以讓你的午餐留在盤子中。
小補丁:
- BSD 模式 vs. Linux 模式:雖然 BSD 也會與外界互動,但 BSD 不過多依賴外界的代碼,大部分的工作依然由核心團隊完成;而 Linux 則是真正的大規模協作,參與人員可達幾千、幾萬人。
- BSD 授權 vs. GPL 授權: BSD 授權模式允許被授權的用戶以源代碼或者二進位的形式發布修改過的或未修改過的代碼,也可以利用其營利,並且也不需要將代碼回饋給社區,唯一要求是在源代碼文件中原封不動的保留 Berkely 的版權聲明,並且在含有以上代碼的其他產品文檔中聲明其產品包括來自於加州大學和其他貢獻者的代碼。BSD 授權基於用戶高度的自由,許多商業用戶在選擇開源軟體時都首選 BSD 授權的軟體,因為他們可以把這些代碼集成到他們的閉源軟體中。與之相比, GPL 的限制則多得多,使用 GPL 代碼的軟體也必須是開源的。
- Unix 與 Unix-like (類 Unix ): The Open Group 在將 Unix 的商標收歸旗下之後,為了解決市面上 Unix 和類 Unix 系統混雜的情況,基於 POSIX 標準制定了 Single Unix Specification (單一 Unix 規範),只有通過這一規範認證的系統才能使用 Unix 的商標。目前通過 Unix 認證的有: IBM 的 AIX 和 z/OS ,惠普的 HP-UX , Oracle 的 Solaris ,蘋果的 OS X ,國內廠商浪潮的 K-UX 。除此之外的 Linux 、 FreeBSD 、 Minix 等在外觀或功能上類似於 Unix 的系統皆可稱為類 Unix 系統,需要注意的是,他們都不包含任何的 Unix 源代碼。
- Darwin / Mac OS X : 2001年發布的 Mac OS X 基於 Darwin 內核,而 Darwin 基於 FreeBSD 和 Mach 3 。與其他的 BSD 不同,雖然底層內核是開源代碼,但 OS X 其他軟體大部分是閉源的蘋果代碼, Aqua 圖形用戶界面是最突出和引人注目的項目。手機版的 iOS 亦是基於 Darwin 內核。蘋果在 BSD 基礎上開發了 Mac OS X 和 iOS,這樣他們就不必寫操作系統底層,就像 Google 在 Linux 基礎上開發 Android 系統一樣。
- 商業軟體、開源軟體、共享軟體:商業軟體一般是閉源的,但也有部分開源,收費會相對高一些。開源軟體則如其名字,開放源代碼。共享軟體則指雖然不收費,但是也不公開源代碼的軟體。
本文是LinuxStory柴米油鹽計劃的投稿文章,由 LinuxStory 整理髮布。原作者署名為:Demon --- Law &Script 。轉載請註明出處,否則必究相關責任。
本文鏈接:https://linuxstory.org/simple-history-about-opensource-3
「滿半拍」——>”慢半拍「
[…] Author: Demon — Law & Script 開源軟體簡史(二)鏈接門 開源軟體簡史(三)鏈接門 […]
[…] 作者 Demon — Law & Script 開源軟體簡史(一)鏈接門 開源軟體簡史(三)鏈接門 […]