國產龍芯的軟體生態之中.NET不會缺席,畢竟 C# 與 .NetCore/Mono 也是全球幾大主流的程式語言和執行平臺之一,最近一段時間聽到太多的鼓吹政務領域不支援.NET, 大家都明白這是某些人為了自己的利益打壓使用.NET技術的公司,我今天寫這篇文章就是想通過龍芯團隊的行動告訴更多人一起來推動.NET技術在中國的發展。希望龍芯廠商、支援龍芯的國產作業系統廠商能高度重視這個問題,主動加入 .Net Core 社群,加入.NET基金會,積極貢獻程式碼,儘快做好適配工作。
龍芯團隊一直在做net core的mips64移植工作,2020年6月18日完成了里程碑性的工作,在.NET Core 3.1分支上完成了MIPS64 的移植工作,目前已經在github上開源,開源地址:https://github.com/gsvm/coreclr 。具體說明可以參見 https://github.com/dotnet/runtime/issues/38069。 龍芯團隊正在做移植後的測試工作,已經完成了 9500 多項測試,ASP.NET Core示例程式 FlightFinder 已經可以在MIPS64 上正常執行,具體可以參看 https://github.com/dotnet/runtime/issues/4234。
龍芯團隊還在github上面為龍芯.NET 建立了一個倉庫 https://github.com/gsvm/loongson-dotnet,用於關於龍芯的.NET資訊,工作和下載,開源協議採用和.NET Core一樣的MIT協議。 根據這個倉庫的資訊,龍芯團隊將在不久的將來發布.NET Core 3.1版本,然後升級到https://github.com/dotnet/runtime ,也就是.NET 5了。目前這項工作正在緊鑼密鼓的進行,非常歡迎大家的積極參與貢獻,包括issue或者PR,如果您有任何問題或需要任何支援,請隨時提交問題或通過電子郵件:aoqi@loongson.cn 與龍芯團隊聯絡。
在文章的最後,我向你分享一個龍芯團隊成員 xiangzhai 在這個 https://github.com/xiangzhai/mono/issues/2 提到了指令集相關的程式設計的一些相關知識:
OpenJDK、CorelCLR、mono都太大了,比較小的虛擬機器例子可以看看PSP模擬器: https://github.com/xiangzhai/ppsspp-jit-mips64/commits/mips64-port-dev
CoreCLR官方的文件不錯:下降、暫存器分配、程式碼生成 https://github.com/dotnet/runtime/blob/master/docs/design/coreclr/jit/ryujit-overview.md
CoreCLR程式碼生成常用除錯方法: dotnet/runtime#606