安全可靠國產系統背景下的應用開發應有.NET Core的一席之地

張善友發表於2020-08-22

在中美當前背景下的安全可靠國產系統(簡稱安可),安可產業要實現技術自主可控,需要在四個層面逐步實現:基礎硬體設施,如晶片、伺服器、儲存、交換機、路由器;底層軟體,包括作業系統、資料庫、中介軟體等;應用軟體,面向實際應用的不同領域;安全產品,保障邊界安全、終端安全和管理安全產品。目前在安可領域,高階晶片伺服器等硬體已能基本滿足辦公需求;基礎軟體正在實現國產化替代。而在國產系統下,應用生態便顯得匱乏了。

實現應用軟體從普通環境到安可作業系統環境的平滑過渡,是豐富國產應用生態、推動安可生態從“可用”走向“好用”的重要手段。國內眾多應用軟體開發商也正在安可這一領域展開激烈競爭,今天想寫下這篇文章是源於在微信群裡看到一個群友發的一頁內容:

3603f494ba9aea4edae21a29770f03f

這個內容明顯就是要封殺在這家公司的產品國產化改造中使用.NET Core 。首先這篇內容的非常不專業,把國產化的開發語言給限制了,而且把開發平臺等同於開發語言, C#才是.NET Core的主要開發語言之一。 作業系統也沒有選擇安可聯盟的作業系統,資料庫也一樣,只是特別的針對微軟的產品。其次這位同學對.NET Core認識還是等同於10年的.NET,殊不知.NET Core是一個開源跨平臺的開發平臺,.NET Core是更加符合安可標準的開發平臺。


最近我們也在測試龍芯MIPS64的.NET Core移植工作,我們也建立一個微信群,群裡都是對龍芯的.NET Core移植工作熱心的同學,昨天我把這個內容轉發到微信群,其中有一位群友的總結很到位,這裡我就摘錄出來和大家分享:


相比java,.netcore/.net5+、mono才是最安全可靠的選擇。一是它們是最最開放的MIT/Apache2協議開源;二是它們歸屬於中立的第三方組織.NET基金會 掌控,不屬於任何商業公司,更不是“微軟家”的。退一萬步說,即使是微軟家的,也遠比oracle、Facebook、google家的安全可信可靠!微軟一直中立溫和沒有政治色彩,更喜歡奉獻,連它的敵人蘋果的滿血復活,微軟也是盡了最大的幫助!


技術上的先進要談,更重要的要講清“.net+”的徹底的開源協議、完整的專利免責、中立的主管機構三大超高特性! 這三大超強開放特性,即“徹底的開源協議、完整的專利免除、中立的主管機構”,其他平臺(java、golang)基本無法同時齊備這三個要素。三大要素缺任何一樣,“安全可信可靠”(安可)就會大打折扣。


這裡有一點就是大家對微軟和.NET的關係沒搞明白,要多加宣傳。微軟是.net的初創者,.NET基金會的發起者,但.NET 基金會建立起來後,微軟也把Mono/Xamarin給收購了,貢獻給.NET基金會。微軟只是.net基金的主要供奉者之首,在.NET基金會裡還有很多大公司,google,aws,三星都在.NET基金會裡。新.net/mono的“徹底的開源協議、完整的專利免除、中立的主管機構”三大關鍵特色以及與微軟的關係一定要吃透講清,廣而告之。


“安可”才是國產化的核心要義,所以大家不能只談技術、只談效能。在“安可”面前,技術和效能是可以讓步的,況且 .NET Core效能還是如此之好,龍芯團隊在這一方面是做出非常好的表率。



.NET 在傳統應用軟體中一直都佔有重要地位,.NET的主要競爭者也是Java,.NET Core和Java都是開源跨平臺的,我們可以來比較一下.NET Core和Java的開源協議,.NET Core是以MIT協議開源, Java是GPL協議開源。 Java 8 SDK升級Oracle要收費這件事對於很多小公司是有著重大的影響的,雖然有眾多的OpenJDK發行版,騰訊雲和阿里都有OpenJDK發行版,龍芯也有MIPS版本的OpenJDK。眾多沒有能力開發維護OpenJDK的公司完全可以轉向更具有競爭力的.NET Core,.NET Core從屬於.NET基金會,由微軟進行官方支援。.NET Core/Mono 使用最寬鬆的MIT和Apache 2開源協議,文件協議遵循CC-BY。這將允許任何人任何組織和企業任意處置,包括使用,複製,修改,合併,發表,分發,再授權,或者銷售。唯一的限制是,軟體中必須包含上述版 權和許可提示,後者協議將會除了為使用者提供版權許可之外,還有專利許可,並且授權是免費,無排他性的(任何個人和企業都能獲得授權)並且永久不可撤銷,使用者使用.NET Core完全不用擔心收費問題,你可以很自由的部署在任何地方,這也正是龍芯團隊可以在.NET 上發力,為龍芯生態建設發力,龍芯支援了計算機上執行應用程式的動態虛擬機器Java、Javascript、.NET三大虛擬機器,龍芯還正在開發一套指令翻譯系統,可以將其他指令集翻譯成Loongarch指令。


上面說的比較多的都是龍芯,目前在國產化這塊更大的一個競爭者是ARM 體系,.NET Core對ARM32/64都有完備的支援,正好我也是華為雲MVP,上週我也去華為雲找鯤鵬生態的相關負責人溝通鯤鵬系統對.NET Core支援的情況,華為雲也是苦於找不到.NET 支援方面能力強的合作伙伴,通過這次溝通,我正在申請成為華為雲的市場服務商來和華為雲一起推進鯤鵬對.NET Core應用的支援。

相關文章