在一個會議上,中國招投標協會的技術負責人居然當著很多領導的面說.NET不能在國產伺服器上執行,可以說這個技術負責人非蠢即壞。
國產伺服器的處理器架構主要包括x86、ARM、LoongArch、risc-v。這些國產伺服器處理器架構各有特點,ARM架構在自主可控和生態建設方面具有優勢,x86架構則在現有生態系統和相容性方面表現突出。LoongArch、risc-v則代表了完全自主可控的最高水平,但生態建設仍需時間來完善。
自從.NET 2014年開源以來,社群還擴充套件了 .NET 以在其他平臺上執行。三星為其基於ARM的Tizen平臺移植了.NET[1]。Red Hat 和 IBM 將 .NET 移植到 LinuxONE/s390x[2]。龍芯中科將.NET移植到LoongArch[3]。 三星為其基於RISC-V的Tizen平臺移植.NET[4]。
NET 對 X86、ARM、LoongArch、RISC-V 和 LinuxONE 的支援情況較為全面,特別是在 ARM 和 RISC-V 架構上的支援正在逐步完善中。具體情況如下:
X86 架構:
- .NET 支援 X86 架構,包括 AMD64 和 Intel 64 (x86_64)
- 作業系統支援Windows、Linux、Mac。
ARM 架構:
- .NET 支援 ARM 架構,包括 ARM32 和 ARM64。
- 作業系統支援 Windows、Linux。
- 在國產的伺服器上主要以ARM架構為主導,都可以執行.NET 6+ 。
LoongArch 架構:
- 龍芯.NET團隊對 LoongArch64 架構進行了最佳化,包括後端指令構建系統、位元組碼載入、JIT語法樹、ABI規範、函式棧幀設計、GC、異常處理等模組的適應性最佳化,.NET 8 SDK 在 LoongArch64 平臺上也進行了最佳化,整合了 PE32+ 格式的 System.Private.CoreLib.dll 核心庫檔案,並支援 crossgen2 特性,進一步提升了效能表現。
- 作業系統支援Linux,包括各種國產Linux伺服器, 都可以執行.NET 6+。
RISC-V 架構:
- .NET Runtime 提供了初步的 RISC-V 構建支援,程式碼已經成功測試了 RISC-V 的交叉構建,並可以在 RISC-V 上執行.NET 9,NativeAot的支援正在開發。
- 三星工程師向微軟 .NET Runtime 提交了 PR 提案,讓其支援 RISC-V 處理器。
- 作業系統支援Linux, 支援執行.NET 9。
- LinuxONE 架構:
- .NET 支援 IBM Z 和 LinuxONE (s390x) 架構。
- .NET 6.0 以上支援 IBM Z 和 LinuxONE (s390x)。
相關連結:
- [1]三星為其基於ARM的Tizen平臺移植了.NET: https://developer.samsung.com/tizen/About-Tizen.NET/Tizen.NET.html
- [2]Red Hat 和 IBM 將 .NET 移植到 LinuxONE/s390x: https://community.ibm.com/community/user/ibmz-and-linuxone/blogs/elizabeth-k-joseph1/2021/11/10/net-6-comes-to-ibm-z-and-linuxone
- [3]龍芯中科將.NET移植到LoongArch: https://github.com/dotnet/runtime/issues/59561
- [4]三星為其基於RISC-V的Tizen平臺移植.NET: https://www.cnblogs.com/shanyou/p/17149616.html