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

  • A+
所属分类:.NET技术
摘要

最近看到一篇新闻,龙芯 LoongArch64 架构支持 .NET 3.1,文章日期 2021-09-25
https://www.oschina.net/news/161641/loongson-loongarch64-dot-net-3-1-released?p=1

最近看到一篇新闻,龙芯 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 及其它)。

龙芯公司同时有龙芯芯片硬件龙芯操作系统软件,适配工作 .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

 

此为转载文章,原文发布于:https://my.oschina.net/jacklondon/blog/5280256