­

龍芯團隊完成CoreCLR MIPS64移植,在github開源

國產龍芯的軟體生態之中.NET不會缺席,畢竟 C# 與 .NetCore/Mono 也是全球幾大主流的程式語言和運行平台之一,最近一段時間聽到太多的鼓吹政務領域不支援.NET, 大家都明白這是某些人為了自己的利益打壓使用.NET技術的公司,我今天寫這篇文章就是想通過龍芯團隊的行動告訴更多人一起來推動.NET技術在中國的發展。希望龍芯廠商、支援龍芯的國產作業系統廠商能高度重視這個問題,主動加入 .Net Core 社區,加入.NET基金會,積極貢獻程式碼,儘快做好適配工作。

龍芯團隊一直在做net core的mips64移植工作,2020年6月18日完成了里程碑性的工作,在.NET Core 3.1分支上完成了MIPS64 的移植工作,目前已經在github上開源,開源地址://github.com/gsvm/coreclr 。具體說明可以參見 //github.com/dotnet/runtime/issues/38069。 龍芯團隊正在做移植後的測試工作,已經完成了 9500 多項測試,ASP.NET Core示常式序 FlightFinder 已經可以在MIPS64 上正常運行,具體可以參看 //github.com/dotnet/runtime/issues/4234

image

龍芯團隊還在github上面為龍芯.NET 建立了一個倉庫 //github.com/gsvm/loongson-dotnet,用於關於龍芯的.NET資訊,工作和下載,開源協議採用和.NET Core一樣的MIT協議。 根據這個倉庫的資訊,龍芯團隊將在不久的將來發布.NET Core 3.1版本,然後升級到//github.com/dotnet/runtime ,也就是.NET 5了。目前這項工作正在緊鑼密鼓的進行,非常歡迎大家的積极參与貢獻,包括issue或者PR,如果您有任何問題或需要任何支援,請隨時提交問題或通過電子郵件:aoqi@loongson.cn 與龍芯團隊聯繫。

在文章的最後,我向你分享一個龍芯團隊成員 xiangzhai 在這個 //github.com/xiangzhai/mono/issues/2 提到了指令集相關的編程的一些相關知識:

OpenJDK、CorelCLR、mono都太大了,比較小的虛擬機例子可以看看PSP模擬器: //github.com/xiangzhai/ppsspp-jit-mips64/commits/mips64-port-dev

CoreCLR官方的文檔不錯:下降、暫存器分配、程式碼生成 //github.com/dotnet/runtime/blob/master/docs/design/coreclr/jit/ryujit-overview.md

CoreCLR程式碼生成常用調試方法: dotnet/runtime#606