作者 | 馬超
責編 | 夕顏
出品 | CSDN(ID:CSDNnews)
10年前人們常說「代碼吞噬整個世界」,而現在人們又說「網際網路的一切來自於雲計算」,不過最近業界突然發現原來開源才是IT行業的終極協作方式,尤其是在作業系統領域舊王封閉的Windows與新王開源的Linux之間,似乎正在進行著一場王位的交接儀式。
近日,開源先驅、《大教堂與集市》作者Raymond 在其博客上提出了一個驚人的觀點,即「Linux 即將取得作業系統之爭的最後勝利,因為微軟很有可能在未來放棄 Windows 系統的內核研發,轉而將其建立在 Linux 內核之上。」微軟放棄Windows轉向Linux這聽起來雖然不太可能,但仔細思考卻的確有幾分道理,因為微軟與之前相比的確,已經脫胎換骨,甚至很多方面比谷歌變得更加開放了,我們看到基於Chromium的微軟Edge瀏覽器已經上線,不過谷歌卻要對安卓開發者加徵30%的收益提成了。而且考慮到Windows10已經是Windows最後一個版本了,因此後續微軟真的推出一個全新的Winix系統可能真不是個天方夜譚。
無獨有偶,在今年華為發布了鴻蒙2.0版本作業系統並正式開源後,我們看到其實鴻蒙也是全面擁抱Linux,在鴻蒙的KAL內核層中除了Lite OS之外,還有Linux kernel(https://developer.harmonyos.com/cn/docs/documentation/doc-guides/harmonyos-overview-0000000000011903)。
筆者看到對於華為使用Linux的做法,不少網友評論說這將使鴻蒙不會像宣傳中那樣的自主可控,但是這裡筆者必須指出,Linux的精神內核就是開放與共享,從目前Linux的穩定版本5.8的情況來看來自華為的貢獻至少排在所有貢獻者的第二名。
相信在Linuxw今年後的版本華為的貢獻比例還會繼續提高,因此我們可說華為和Linux是共同成長的,而且Linux本身是開源的,其代碼中並沒有什麼開關,可以禁止我國企業的使用,因此如果美國強行對華斷供Linux,將觸及開源組織的理念與底線,只能通過切斷美國公司與Linux的技術聯繫才能實現,不過這似乎只能將Linux及其它開源組織完全倒向中國。
所以從目前的情況來看,說無論未來作業系統如何發展Linux的地位都會更加穩固,如果不了解Linux,那麼對於虛擬化、容器等技術的優劣,只能有定性的認識,而不會有定量的理解,IT界一直崇尚「Talk is cheap,show me the code」,因此我行內部發起了一個閱讀Linux代碼的組織,後續還會向大家帶來相關解讀成果。
Linux與微軟從相殺到相愛
Linux之所以會如此火爆,除了開源以外,其最大優勢就是實現了對於POSIX的兼容。POSIX(Portable Operating System Interface,縮寫為POSIX)是IEEE為使應用軟體能夠跨各種UNIX作業系統通用運行,而定義API的一系列互相關聯的標準的總稱,而最後的而X則表明其對Unix API的傳承。
一般情況下,應用程式通過應用編程接口(API)而不是直接通過調用底層硬體來編程。這點很重要,因為應用程式使用的這種編程接口實際上並不需要和內核提供的系統調用對應。一個API定義了一組應用程式使用的編程接口。它們可以實現成一個系統調用,也可以通過調用多個系統調用來實現,而完全不使用任何系 統調用也不存在問題。實際上,API可以在各種不同的作業系統上實現,給應用程式提供完全相同的接口,而它們本身在這些系統上的實現卻可能迥異。而這種做法最大的好處就是大幅提升兼容性,代碼在跨作業系統運行時不需要改寫,只要重新編譯即可以完成移植。而對於POSIX也使得Linux得以迅速繼承原本運行在Unix上的應用生態,從而快速壯大。可能也正是由於上述原因,2001 年微軟時任CEO鮑爾默將 Linux 稱為「癌症」。
不過自納拉德接任微軟CEO以來,這一切就全部改變了,微軟基本拋棄了之前以Windows、Office授權費用為盈利核心的模式,完全轉型成為了一家開放、共享的企業,他們不但在宣傳上講「Microsoft love Linux」而且也在用行動踐行著這樣的誓言,微軟Azure增加了對Linux的支持、開源了.Net Core、開源了VS Code、近期又完善了Windows對於POSIX的庫支持,最關鍵的是在納叔的領導下微軟還推出了基安卓版本的Office辦公套件,並且在收購全球最大開源Github,繼續放手讓Github保持獨立運營。
目前微軟還通過WSL黑科技,讓每臺裝有Windows的電腦,都可以無縫運行Linux了,只需要在控制面板上簡單設置一下,如下圖:
打開適用於「Linux的Windows子系統」功能以後就可以由cmd命令行,通過lxrun /install /y命令來下載運行Linux系統了。
最初的WSL(Windows Subsystem for Linux)是在運行時處理Linux System Call,模擬Linux內核,在ABI層面保持兼容性。不過無論是在ABI還是API層模擬,Linux/UNIX與Windows NT畢竟是兩類內核,設計理念、設計標準等多方面差異甚大,無法實現完全對等模仿,
因此WSL2引入了修改版的Linux內核,改用虛擬化技術實現,並且WSL2是基於最新的Linux 4.19,這也是Linux內核的長期支持版,新的內核經過了微軟悉心改造,以便與Windows相配合,獲得更好的用戶體驗。目前WSL2已經在Github上開源(https://github.com/microsoft/WSL2-Linux-Kernel),WSL2將Linux內核放置到一個輕量級的虛擬機(Virtual Machine,VM)中運行,使用過程與WSL1保持一致,VM的啟動、管理都藏在背後,可謂是真的黑科技。
而從WSL的實現路徑上來看,使用Linux內核替代Winidows原有內核的可能性也許真的存在,這大概也是Raymond 提出微軟此計劃的原因。不過就算最終這個內核替代方案不能成行,微軟也通過這一系列的開源操作贏得了業界的口碑與眾多開源開發者的尊敬,可以說現在微軟已經活成了谷歌年輕時最想成為的樣子。
炒「芯」必誤國,鴻蒙生態堅持用「芯」不炒
其實微軟轉身開源Linux的操作其背後邏輯也不難理解。因為在IT行業幾乎每隔十年就會出現一種新型的生態體系,比如2000年出現的由微軟和英特爾組成的Wintel生態,把持著85%的桌面系統市場份額,而在2010年形成的由Arm+Android、IOS的組成AAI生態聯盟,在手機領域市場份額佔比幾乎是100%,而在這個10年,新的生態極有可能在近期出現,而正如我們前文所講,無論誰最終笑傲江湖,Linux大概率都會是最後的贏家,圍繞Linux的生態正在爆發前夜,所以可以看到最近包括微軟、華為在內的眾科技巨頭都開始競相與Linux社區拉近關係。
不過在生態建設方面,我國企業踩過的雷,趟過的坑也實在不少,之前我們很多從事作業系統開發的公司都往往過於重視技術,卻忽略了對於應用生態的支持,但是畢竟獨木難支;獨臂難挽,用戶所需要的並不是一個單獨的作業系統,而是運行在作業系統上的各種應用軟體。在這方面最典型的例子就是紅旗 Linux了,紅旗 Linux在初創時期就曾經虎口撥牙,從微軟的Windows手中搶到了不少訂單,到了2001 年7月,紅旗的 OEM 訂單超過100 萬套。不過雖然紅旗從作業系統本身的穩定性、安全性都堪稱優秀,但是一臺沒有Office、PS,不能玩遊戲的電腦,對於用戶來說也是沒有價值的。與擁有成熟生態的 Windows 相比,紅旗 Linux只能甘拜下風。
而有關生態的問題,筆者在剛剛閉幕的華為全連接大會上,聽很多開發者都談到了這樣一個不符合邏輯奇怪的現象,那就是鴻蒙發布的同時,卻沒有發布與之對應的鴻蒙開發板。用筆者一位前輩的話講,如果一個作業系統不能親身調試,那麼它是不夠鮮活的,難以說服開發者入局參與,有關這個情況筆者也請教了華為的人士,其實這也是華為從自身生態建設角度老師所做的決定。
由於眾所周知的原因,華為對於晶片是進行了「飽和式」備貨的,靠晶片庫存維持兩到三年的生產不成問題。不過出人意料的是,由於各大晶圓代工廠相繼斷供,這也使得華為海思晶片成了天然的限量版,從而具有不小的收藏價值,甚至坊間傳出不少炒房團體正在溢價收購海思晶片進行投資的風聞。
其實晶片行業的毛利潤並不高,像華為這樣的大廠最看重的還是由晶片與作業系統所共同創造的生態環境,而如果晶片沒有流向實體產業,而是被束之高閣被收藏起來,那麼對於華為的鴻蒙+海思的生態戰略將會有不小的負面影響。炒房也許能夠興邦,不過炒「芯」必會誤國。
從筆者掌握到的情況來看,在十一國慶假期之後,鴻蒙的熱度稍降之後,像南京厚德小熊派的海思晶片系列鴻蒙開發板就可以從淘寶上買到了,筆者這裡也呼籲各位讀者,如果只有收藏的需求,請您不要購買鴻蒙的開發板了,這也算是為華為的鴻蒙生態建設作出一定貢獻了。
筆者非常欣喜的看到,在鴻蒙創立之初就提出了「共建、共享生態」的口號,華為從上到下,對於鴻蒙生態體系建立的重要都有著清醒的認識,相信未來給鴻蒙也會建立屬於自己的應用商店,鴻蒙OS的應用開發者,不但會得到華為的大力支持,還能在分潤方面得到更多的傾斜,而且在今年的全連接大會上,華為還加入了兩天的開發者嘉年華的環節,可以預見在未來華為還將繼續攜手全國150萬開發者共同成長。
沒有一個冬天不會過去,也沒有一個春天不會到來,可以說現在就是鴻蒙2.0借物聯網的東風,建立自主生態的最佳時機,如果再繼續深耕開發者,培育生態,相信鴻蒙乃至中國作業系統的未來,可期!