最近看到一篇新聞,龍芯 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
-----------------------------------------
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