在一个会议上,中国招投标协会的技术负责人居然当着很多领导的面说.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