龙芯 .NET 团队,做工作去适配 .Net Core 3.1 ,意义何在?

2021-10-15 12:05

最近看到一篇新闻,龙芯 LoongArch64 架构支持 .NET 3.1,文章日期 2021-09-25

https://www.oschina.net/news/161641/loongson-loongarch64-dot-net-3-1-released?p=1

我在里面有几次发言,事后觉得,有必要整理成一篇博客文章,说明我的观点。

一般人的理解,操作系统才需要去适配芯片的指令集,而应用软件不用去适配芯片的指令集,应用软件只需要适配操作系统即可。 .NET 属于应用软件范畴。

这样的调用层次:

CPU/指令集 <---> 操作系统及操作系统API 函数 <---> 应用软件(.Net 3.1 及其它)。

 

下图为应用软件与操作系统、芯片的调用关系,只画了主要的:

CPU OS APPs relationship

 

龙芯公司同时有龙芯芯片硬件、龙芯操作系统软件,适配工作 .NET ,应该只集中在龙芯操作系统上,不涉及指令集。他们的工作方向,好像错了。

 

举例来说,

统信UOS 可直接下载使用微软官网发布的 .net core 的 ubuntu 版,统信UOS 也支持多种芯片,其中包括龙芯芯片。然后统信UOS + 龙芯芯片 就可以运行 .net core 程序了。

如果说,有什么适配工作的话,那也发生在“统信UOS 支持龙芯芯片” 这一步骤上。当然,这一步是之前已经完成了的(2019-12)。

 

按照这样的逻辑,如果龙芯公司的 .NET 团队,做工作去适配 .Net Core 3.1 ,那他们的着眼点,应该是“龙芯操作系统与 .net core 的适配上”。.Net Core 3.1 属于应用软件,它不需要去直接调用 CPU 的指令集,只需要调用操作系统的 API 函数就行了。微软已经为 .Net Core 3.1 做了调用 Windows API 及 Linux API 的工作,接下来,应该是改龙芯操作系统,新增一些操作系统 API 函数,以兼容Windows API 或 Linux API ,然后就行了。

或者龙芯公司可以考虑做一个通用的编译器,把只能运行在 Windows/Linux 的软件源代码,重新编译成能在龙芯操作系统上运行的。顺便在这个编译器中,做一些针对龙芯芯片的优化。我记得 Intel 干过这类事情,做过 C++ 编译器,当然好像没有持续,说明这不是芯片厂商必须要做到的事情。

龙芯公司,犯不着组织人,去逐个适配单个应用软件,比如 .Net Core 3.1, .Net 5.0, .Net 6.0 ..., 7-zip 1.0, 2.0... 8.0..., Gedit 1.0,2.0,..., LibreOffice 1.0,2.0....。那样工作量很大,不是最佳方案。没见过 Intel/AMD 这样的芯片公司,出新闻说,我组织了一批人,去适配某个应用软件的某个特定版本。

 

-----------2021/10/18 补充,

刚看到, Mono 官网上,也支持 MIPS。那倒也简单了,龙芯也是 MIPS 芯片体系的。更何况,使用 Mono 写 C# 程序,还可以写有用户界面的单机版程序。比对当前这个龙芯适配版的 .net core 更多了一些功能。

 

相关链接参考:

a. Mono Supported Platforms:

https://www.mono-project.com/docs/about-mono/supported-platforms/

 

b. 龙芯的UOS是否支持.net core (2020-03), 论坛中的答案是肯定的。网址:

https://bbs.chinauos.com/zh/post/713

 

c. 国产化之路-统信UOS /Nginx /Asp.Net Core+ EF Core 3.1/达梦DM8实现简单增删改查操作, 2020-10 转载。

https://blog.csdn.net/sD7O95O/article/details/108957532?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7Edefault-9.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7Edefault-9.no_search_link

 

d. dotnet 在 UOS 国产系统上使用 Xamarin Forms 创建 xaml 界面的 GTK 应用,2020-09

https://blog.csdn.net/sD7O95O/article/details/108877848?utm_medium=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7Edefault-16.no_search_link&depth_1-utm_source=distribute.pc_relevant.none-task-blog-2%7Edefault%7EOPENSEARCH%7Edefault-16.no_search_link

 

 

-----------2021/10/26 补充,

这才是芯片厂商应该做的事情:芯片厂商与操作系统软件厂商合作,而不是像龙芯公司那样,去逐个应用软件进行适配:

a. 联发科发布 8k 行新 Linux 内核驱动代码以支持 AI 处理单元

https://www.oschina.net/news/165846/mediatek-mt8192-apu-driver

 

b.修复了!微软 和 AMD 已修复锐龙处理器在Win 11系统中的L3缓性能下降问题

https://post.smzdm.com/p/amxlev54/

 

c.微软和 AMD 发布补丁,彻底修复 Windows 11 性能问题

https://www.oschina.net/news/165696/amd-and-microsoft-releases-to-fix-windows-11-performance-issues

 

原文发布于:https://my.oschina.net/jacklondon/blog/5280256, 是本人博客。

 

 

欢迎转载,转载请注明出处: http://www.zheguisoft.com/staff_blogs/jacklondon_chen/2021/loongson_should_not_work_on_loong_arch64_architecture_supports_dotnet_core