盤點.NET支援的 處理器架構

张善友發表於2024-10-17

在一個會議上,中國招投標協會的技術負責人居然當著很多領導的面說.NET不能在國產伺服器上執行,可以說這個技術負責人非蠢即壞。

國產伺服器的處理器架構主要包括x86、ARM、LoongArch、risc-v。這些國產伺服器處理器架構各有特點,ARM架構在自主可控和生態建設方面具有優勢,x86架構則在現有生態系統和相容性方面表現突出。LoongArch、risc-v則代表了完全自主可控的最高水平,但生態建設仍需時間來完善。

自從.NET 2014年開源以來,社群還擴充套件了 .NET 以在其他平臺上執行。三星為其基於ARM的Tizen平臺移植了.NET[1]。Red HatIBM 將 .NET 移植到 LinuxONE/s390x[2]。龍芯中科.NET移植到LoongArch[3]。 三星為其基於RISC-V的Tizen平臺移植.NET[4]。

NET 對 X86、ARM、LoongArch、RISC-V 和 LinuxONE 的支援情況較為全面,特別是在 ARM 和 RISC-V 架構上的支援正在逐步完善中。具體情況如下:

  1. X86 架構

    • .NET 支援 X86 架構,包括 AMD64 和 Intel 64 (x86_64)
    • 作業系統支援Windows、Linux、Mac。
  2. ARM 架構

    • .NET 支援 ARM 架構,包括 ARM32 和 ARM64。
    • 作業系統支援 Windows、Linux。
    • 在國產的伺服器上主要以ARM架構為主導,都可以執行.NET 6+ 。
  3. LoongArch 架構

    • 龍芯.NET團隊對 LoongArch64 架構進行了最佳化,包括後端指令構建系統、位元組碼載入、JIT語法樹、ABI規範、函式棧幀設計、GC、異常處理等模組的適應性最佳化,.NET 8 SDK 在 LoongArch64 平臺上也進行了最佳化,整合了 PE32+ 格式的 System.Private.CoreLib.dll 核心庫檔案,並支援 crossgen2 特性,進一步提升了效能表現。
    • 作業系統支援Linux,包括各種國產Linux伺服器, 都可以執行.NET 6+。
  4. RISC-V 架構

    • .NET Runtime 提供了初步的 RISC-V 構建支援,程式碼已經成功測試了 RISC-V 的交叉構建,並可以在 RISC-V 上執行.NET 9,NativeAot的支援正在開發。
    • 三星工程師向微軟 .NET Runtime 提交了 PR 提案,讓其支援 RISC-V 處理器。
    • 作業系統支援Linux, 支援執行.NET 9。
  5. 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

相關文章