近期,著名的.NET开源社区Mono正式支持LoongArch(龙架构),目前LoongArch64架构已出现在.NET社区主干分支上。

详细内容可以跟踪 https://github.com/mono/mono/issues/21381, 一共分5部分提交:

Mono是一个开源的.NET框架实现,它允许开发者在非Windows平台上运行.NET应用程序。Mono项目是由Xamarin公司(后来被微软收购)发起的,目的是提供一种跨平台的.NET执行环境。Mono支持多种操作系统,包括Linux、macOS、Windows以及一些嵌入式系统。它包括一个C#编译器、一个.NET运行时环境,以及许多.NET类库。这使得开发人员可以在不同的平台上使用相同的代码基础,从而提高了开发效率。

Mono的主要特点包括:

  1. 跨平台:Mono可以在多种操作系统上运行,使得.NET应用程序可以在不同的环境中部署和执行。

  2. 兼容性:Mono旨在与.NET Framework和.NET Core保持高度兼容,使得已有的.NET应用程序可以轻松迁移到其他平台。

  3. 开源:Mono是开源的,这意味着开发者可以自由地使用、修改和分发它。

  4. 社区支持:Mono有一个活跃的社区,提供支持、文档和资源,帮助开发者解决问题和实现新功能。

Mono在游戏开发、企业应用、移动应用等领域有着广泛的应用。由于它的跨平台特性,许多开发者选择使用Mono来创建可以在不同设备上运行的应用程序。此次LoongArch架构得到Mono 开源社区原生支持,意味着LoongArch64架构对.NET的支生态支持完善了,.NET开发平台的软件生态可以原生移植到LoongArch64平台部署运行,LoongArch生态建设再次迈出坚实一步,为国际开源软件发展注入中国自主创新源动力

在过去的两年里,龙芯.NET团队的本地 mono 已经通过了很多 mono 的应用程序测试,即使是由 mono 驱动的 unity3D 也可以在 LoongArch64-linux 上运行。有一些截图图片。#21381 (评论)

2021年9月,龙芯中科向.NET社区提交了LoongArch架构支持计划,.NET社区对LoongArch架构的原生支持工作正式启动。2021年12月龙芯中科向社区正式提交了完整的LoongArch架构源码,之后龙芯中科与.NET社区保持密切沟通,联合社区开发者对LoongArch64架构支持源码进行了详细检视、深入讨论和多轮修改迭代。2022年4月,基础的运行时架构代码全部通过社区技术评审,进入主干开发分支,LoongArch成为.NET社区原生支持的全新CPU架构。2024年5月,Mono 部分的代码也进入主分支,LoongArch 全面支持了旧世界(.NET Framework) 和新世界(.NET 5+),后续,龙芯团队将进一步优化提升LoongArch架构性能,完善.NET各类开发框架在LoongArch的支持,更好地为LoongArch平台的.NET开发者和用户服务。

龙芯平台.NET,是龙芯公司基于开源社区.NET独立研发适配的龙芯版本,我们会长期进行安全更新和错误修复,并持续进行性能优化。龙芯开源社区专门开设了.NET频道:龙芯上的.NET | 龙芯开源社区 (loongnix.cn)

发布的LoongArch64架构的Mono6.13.0-1是基于社区main分支在LA上适配的,对应社区开发版本6.13.0。

关键更新:

  • 增加3C5000 Server系统安装包mono-6.13.0-1.loongarch64.rpm。

  • 完善ABI相关实现。

  • 完善tailcall、abcrem优化问题。

  • 完善profile、Soft Debugger功能。

  • 修复若干bug, 进一步提升Mono 6.13在LoongArch64架构上的稳定性。

  • 默认为JIT执行模式,也可手动切换为解释执行模式(--interpreter),暂不支持AOT特性。

龙芯LoongArch64版Mono 6 下载地址。安装方法请见Mono6安装说明

接下来我们就来安装体验一下Mono 6.13:

geffzhang@geffzhang-pc:~/下载$ sudo apt install ./mono-6.13.0-1_loongarch64.deb

[sudo] geffzhang 的密码:

正在读取软件包列表... 完成

正在分析软件包的依赖关系树

下列软件包是自动安装的并且现在不需要了:

cracklib-runtime libaribb24-0 libbasicusageenvironment1

libboost-python1.67.0 libcddb2 libcrack2 libdbusmenu-qt5-2 libdvbpsi10

libebml4v5 libfam0 libgpgmepp6 libgroupsock8 libhfstospell10 libixml10

libkf5auth-data libkf5auth5 libkf5codecs-data libkf5codecs5

libkf5completion-data libkf5coreaddons-data libkf5coreaddons5 libkf5crash5

libkf5service-data libkf5sonnet5-data libkf5sonnetcore5 libkf5sonnetui5

libkf5widgetsaddons-data libkf5widgetsaddons5 libkf5windowsystem-data

libkf5windowsystem5 liblivemedia64 libmad0 libmatroska6v5

libopenmpt-modplug1 libphonon4qt5-4 libplacebo7 libpolkit-qt5-1-1

libprotobuf-lite17 libproxy-tools libpwquality-common libpwquality1

libqt5concurrent5 libqt5qmlworkerscript5 libqt5texttospeech5

libresid-builder0c2a libsdl-image1.2 libsidplay2 libspatialaudio0

libspeechd2 libupnp13 libxcb-xv0 libyaml-cpp0.6 qml-module-qtquick-window2

qml-module-qtquick2 qtspeech5-speechd-plugin

使用'sudo apt autoremove'来卸载它(它们)。

下列软件包将被升级:

mono-6.13

升级了 1 个软件包,新安装了 0 个软件包,要卸载 0 个软件包,有 0 个软件包未被升级。

需要下载 0 B/80.4 MB 的归档。

解压缩后会消耗 0 B 的额外空间。

获取:1 /home/geffzhang/下载/mono-6.13.0-1_loongarch64.deb mono-6.13 loongarch64 6.13.0-1 [80.4 MB]

(正在读取数据库 ... 系统当前共安装有 239607 个文件和目录。)

准备解压 .../mono-6.13.0-1_loongarch64.deb ...

正在解压 mono-6.13 (6.13.0-1) 并覆盖 (6.13.0) ...

正在设置 mono-6.13 (6.13.0-1) ...

正在处理用于 man-db (2.8.5-2.1) 的触发器 ...

geffzhang@geffzhang-pc:~/下载$ whereis mono

mono: /usr/bin/mono /usr/lib/mono /usr/etc/mono /usr/share/man/man1/mono.1

geffzhang@geffzhang-pc:~/下载$ mono --version

Mono JIT compiler version 6.13.0 (loongarch64-dev-6.0/e7cece7bde0 2024年 04月 19日 星期五 07:02:19 UTC)

Loongson's version 6.13.0-1

Copyright (C) Novell, Inc, Xamarin Inc and Contributors. www.mono-project.com

TLS: __thread

SIGSEGV: normal

Notifications: epoll

Architecture: loongarch64

Disabled: none

Misc: softdebug

Interpreter: yes

Suspend: preemptive

GC: sgen (concurrent by default)

Mono 支持LoongArch架构的更多相关文章

  1. iOS开发之Xcode 6更新默认不支持armv7s架构

    最近一次的Xcode 6更新默认不再支持arm7s架构,究竟是要废除不用呢还是仅仅只是一个疏忽? 目前的Xcode 6配置里定义${ARCHS_STANDARD}为armv7, arm64,当然这个定 ...

  2. 我发起了一个 支持 ServerFul 架构 的 .Net 开源项目 ServerFulManager

    大家好,  我发起了一个 支持 ServerFul 架构 的 .Net 开源项目 ServerFulManager . ServerFulManager 的 目标 是 实现一个 支持 ServerFu ...

  3. mono支持gb2312

    需要安装mono-locale-extras 输入命令 yum install -y mono-locale-extras 安装即可

  4. 龙芯发布 .NET 6 SDK 6.0.105-ea1 LoongArch64 版本

    龙芯平台.NET,是龙芯公司基于开源社区.NET独立研发适配的龙芯版本,我们会长期进行安全更新和错误修复,并持续进行性能优化.社区.NET7版本开始已经原生支持LoongArch64架构源码.具备如下 ...

  5. Caffe Ubuntu14.04 + CUDA 8 (支持GTX1080 1070等Pascal架构显卡)

    1. 前言 本教程使用的系统是Ubuntu 14.04 LTS 64-bit,使用的CUDA版本为8. 理论上本教程支持Pascal架构显卡,如游戏卡GeForce GTX1070,GTX 1080, ...

  6. 让Mono 4在Raspberry Pi上飞

    最近公司有项目想要在树莓派上做,代替原来的工控机(我们是把工控主机当作小的主机用,一台小的工控主机最少也要600左右,而树莓派只要200多).于是,公司买了一个Raspberry Pi B+和一个Ra ...

  7. Mono、Unity和Xamarin三者关系

    1.Mono: .net是微软出的标准.如果站在Mono的角度来说,这套标准能规定编译器产生一些符合一定条件的文件出来,这些中间文件最后在目标平台上被解析成跟机器相关的东西.问题是,开始只有Windo ...

  8. Mono.Cecil

    Mono Cecil十分强大,强大到可以静态注入程序集(注入后生成新的程序集)和动态注入程序集(注入后不改变目标程序集,只在运行时改变程序集行为),它甚至可以用来调试PDB MDB调试符号格式文件. ...

  9. Xamarin简介与Xamarin支持MVC设计模式

    Create Native iOS, Android,Mac and Windows apps in C#. 官方网站:http://xamarin.com/ 使用武器 Run a C# app, g ...

  10. 在树莓派Zero上使用C#+Mono驱动TM1637四位数码管

    最近闲着无聊,买了个树莓派Zero,准备在上面跑.Net Core,来驱动各种传感器 就是上面这货.之前手上已经有一个树莓派3B+,但是介于3B+已经被我挂在路由器旁边当做服务器用,不是很方便拿来研究 ...

随机推荐

  1. 成长计划知识赋能 | 第九期:渐进式深入理解OpenHarmony系统

      成长计划知识赋能直播第九期如约而至,面向OpenHarmony初中级开发者,解析OpenHarmony系统架构和驱动框架,助力开发者快速上手OpenHarmony系统开发. 详情见海报内容,资深软 ...

  2. 上传文件附件时判断word、excel、txt等是否含有敏感词如身份证号,手机号等

    上传附件判断word.excel.txt等文档中是否含有敏感词如身份证号,手机号等,其它检测如PDF,图片(OCR)等可以自行扩展. 互联网项目中,展示的数据中不能包含个人信息等敏感信息.判断word ...

  3. nginx 使用下的一些基本概念

    前言 以前的nginx总结的概念! 正文 来看下百度的概念: Nginx (engine x) 是一个高性能的HTTP和反向代理web服务器,同时也提供了IMAP/POP3/SMTP服务. Nginx ...

  4. c# 如何在一般处理程序中返回json

    前言 迁移以前的笔记. 正文 无论是一般处理程序,还是其他程序,处理事项,肯定在于HttpResponse. 这种情况就可以操作,至于字符是自己转换还是由HttpResponse中的信息默认转换,都没 ...

  5. 离线语音识别,vosk,离线流式实时静音噪声监测,支持多语言开发python c++ c# java等

    #!/usr/bin/env python3 from vosk import Model, KaldiRecognizer, SetLogLevel import sys import os imp ...

  6. Chat2table,简易表格分析助手

    一 写在前面 之前用智谱AI的Chatglm3-6b模型写过一个简单的论文阅读助手,可用来辅助论文阅读等.而像表格,如Excel.CSV文件等内容的分析,也是不可忽略的需要,因此本文同样使用Chatg ...

  7. ASP.NET CORE 框架揭秘读书笔记系列——ASP.NET应用程序(二)

    一.ASP.NET 应用 一个ASP.NET CORE 应用构建在ASP.NET CORE 框架之上,ASP.NET CORE框架利用一个消息处理管道完成对HTTP请求的监听.接收.处理和最终的响应. ...

  8. 使用纯c#在本地部署多模态模型,让本地模型也可以理解图像

    之前曾经分享过纯c#运行开源本地大模型Mixtral-8x7B 当时使用的是llamasharp这个库和Mixtral的模型在本地部署和推理,前段时间我看到llamasharp更新到了0.11.1版本 ...

  9. JVM简明笔记4:垃圾回收

    1 垃圾回收相关算法 垃圾回收器首先要做的就是,判断一个对象是存活状态还是死亡状态,死亡的对象将会被标识为垃圾数据并等待收集器进行清除. 判断一个对象是否为死亡状态的常用算法有两个:引用计数器算法 . ...

  10. 力扣551(java)-学生出勤记录Ⅰ(简单)

    题目: 给你一个字符串 s 表示一个学生的出勤记录,其中的每个字符用来标记当天的出勤情况(缺勤.迟到.到场).记录中只含下面三种字符: 'A':Absent,缺勤'L':Late,迟到'P':Pres ...