首页 > 其他分享 >Mono 支持LoongArch架构

Mono 支持LoongArch架构

时间:2024-05-18 09:41:20浏览次数:26  
标签:架构 龙芯 6.13 Mono mono NET LoongArch

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

image

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

image

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 开源社区原生支持,.NET-runtime里面的mono龙芯.NET团队本地也已经在做最后调试,最晚6月份提交社区,意味着LoongArch64架构对.NET的支生态支持完善了,.NET开发平台的软件生态可以原生移植到LoongArch64平台部署运行,LoongArch生态建设再次迈出坚实一步,为国际开源软件发展注入中国自主创新源动力

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

image


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)

image

发布的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)

标签:架构,龙芯,6.13,Mono,mono,NET,LoongArch
From: https://www.cnblogs.com/shanyou/p/18199037

相关文章

  • FT-FMEA融合混沌演练,零售运营系统韧性架构在线验证实践
    本文分享自华为云社区《FT-FMEA融合混沌演练,零售运营系统韧性架构在线验证实践》,作者:《华为云确定性运维案例集(第2期)》聂刚。一、业务背景某零售企业营业范围覆盖20+个省份、数百个城市,为千家万户的生活提供服务,深受大众青睐。近年来,面对新零售和业务规模的不断扩大,该企业致力于......
  • 在Linux中,什么是微服务架构?
    微服务架构(MicroservicesArchitecture)是一种软件开发方法,它将一个应用程序构建为一系列小型服务的集合,每个服务实现特定的业务功能,并可以独立部署和扩展。这些服务通常是轻量级的,并且通过定义良好的API进行通信,通常是HTTPRESTfulAPI或轻量的消息传递系统。1.微服务架构的关键......
  • 网络架构和网络通信
    【一】常见的网络架构模式【1】CS模型C是英文单词“Client”的首字母,即客户端的意思C/S就是“Client/Server”的缩写,即“客户端/服务器”模式。例如:拼多多APP、PC上的有道云笔记等等【2】BS模型B是英文单词“Browser”的首字母,即浏览器的意思;S是英文单词“Server”......
  • 当实时互动遇上新硬件:GIAC 全球互联网架构大会「新硬件」专题论坛
    今年,被广泛预见为AI技术关键转折点的年份,生成式AI热度不断攀升,应用落地加速深化。在这个过程中,为了适应日益复杂的业务需求,背后的架构也将迎来新一轮的革新。 而在这场技术变革的浪潮中,GIAC全球互联网架构大会无疑成为了引领风潮的灯塔。作为深圳乃至华南地区技术领导者和......
  • 凤凰架构记01
    一.RPC源头与演进1.进程之间通信方式管道Pipe:  两个进程之间传递少量字符流,字节流  ps-ef|grepjava信号Signal:信号用于通知目标进程  kill-9pid信号量Semaphore:两个进程之间的同步机制 wait()notify()消息队列 MessageQueue:进程间数据量较多的通信......
  • B站千万级长连接实时消息系统的架构设计与实践
    本文由哔哩哔哩资深开发工程师黄山成分享,原题“千万长连消息系统”,本文进行了排版和内容优化等。1、引言在当今数字娱乐时代,弹幕已经成为直播平台上不可或缺的互动元素之一。用户通过发送弹幕、送礼等,可以实时在直播画面上展现自己的想法、评论和互动内容,从而丰富了用户观看......
  • 精通RAG架构:从0到1,基于LLM+RAG构建生产级企业知识库
    文章很长,且持续更新,建议收藏起来,慢慢读!疯狂创客圈总目录博客园版为您奉上珍贵的学习资源:免费赠送:《尼恩Java面试宝典》持续更新+史上最全+面试必备2000页+面试必备+大厂必备+涨薪必备免费赠送:《尼恩技术圣经+高并发系列PDF》,帮你实现技术自由,完成职业升级,薪......
  • 云原生基础架构介绍
    什么是云原生基础架构?基础架构是指支持应用程序的所有软件和硬件,包括数据中心、操作系统、部署流水线、配置管理以及支持应用程序生命周期所需的任何系统或软件。高效运行的基础架构可以使得迭代更快,缩短投向市场的时间,从而加速业务发展。使用云原生基础架构是有效运行云原生应......
  • 开发者架构选型:原生应用 or 混合框架?
    从2017年小程序推出以来,小程序的发展可谓突飞猛进。其流量入口多、易于传播且开发成本低的特性,使得越来越多的企业摒弃原生开发选择小程序。市场业务需求也越来越大,但是对于开发者来说哦,用原生去开发小程序很难受,尤其是业务比较复杂的项目如果用原生开发很难去管理和迭代。小程......
  • 基于UltraScale架构的XCVU3P-3FFVC1517E XCVU3P-2FFVC1517I XCVU3P-1FFVC1517E高性能
    概述VirtexUltraScale+器件是基于14nm/16nmFinFET节点的高性能FPGA,支持3DIC技术和多种计算密集型应用。AMD第三代3DIC使用堆叠硅片互联(SSI)技术打破了摩尔定律的限制,并且实现了最高信号处理和串行I/O带宽,以满足最严格的设计要求。它还提供了一个虚拟的单片设......