.Net8运行在Arm64上的初体验

前言

.Net是可以运行在Arm上面的,但是有一定的限制。比如dotnet sdk在MacOS系统上不能运行Arm的32位程序。本篇来看下最新的.Net8 Preview2运行在Linux-Arm64位的系统上。

概括

运行如下命令
下载arm64的root系统和.Net8的arm64 SDK。解压,然后放到root tmp文件夹下面安装。

#wget https://cloud-images.ubuntu.com/releases/22.04/release/ubuntu-22.04-server-cloudimg-arm64-root.tar.xz
#wget https://dotnet.microsoft.com/en-us/download/dotnet/thank-you/sdk-8.0.100-preview.2-linux-arm64-binaries
#mkdir root
#tar -xvf ubuntu-22.04-server-cloudimg-arm64-root.tar.xz -C root/
#cp -r dotnet-sdk-8.0.100-preview.2.23157.25-linux-arm64.tar.gz root/tmp
#cd root/tmp
#mkdir dotnet
#tar -xvf dotnet-sdk-8.0.100-preview.2.23157.25-linux-arm64.tar.gz -C dotnet
#cd ..
#cd ..
#chroot root

看下当前系统版本:

#uname -a
Linux tang-virtual-machine 5.19.0-38-generic #39~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Fri Mar 17 21:16:15 UTC 2 aarch64 aarch64 aarch64 GNU/Linux

进入到tmp目录下看下.Net8的信息

#tmp/dotnet/dotnet --info
Failed to create CoreCLR, HRESULT: 0x8007000E
Host:
  Version:      8.0.0-preview.2.23128.3
  Architecture: arm64
  Commit:       30b879924a
.NET SDKs installed:
  8.0.100-preview.2.23157.25 [/tmp/dotnet/sdk]
.NET runtimes installed:
  Microsoft.AspNetCore.App 8.0.0-preview.2.23153.2 [/tmp/dotnet/shared/Microsoft.AspNetCore.App]
  Microsoft.NETCore.App 8.0.0-preview.2.23128.3 [/tmp/dotnet/shared/Microsoft.NETCore.App]
Other architectures found:
  None
Environment variables:
  Not set
global.json file:
  Not found
Learn more:
  https://aka.ms/dotnet/info
Download .NET:
  https://aka.ms/dotnet/download

可以看到它这个还是有一定的问题,比如无法创建CoreCLR,以及找不到全局json file等。如果是.Net7的话,会提示找不到路径。这里是模拟运行,实体机不知道怎么样。

结尾

以上是在X64的Linux发行版下运行的Arm64位OS,然后让.Net8运行在Arm64上。还有一个Host主机,也就是Windows11。
大致是:

windows->VM->Ubuntu->Arm64->.Net8。

作者:江湖评谈

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
### 回答1: 很抱歉,.NET 7.0 还未发布,目前最新版本是 .NET 6.0,因此不存在 .NET 7.0 和 .NET 6.0 的区别。以下是 .NET 6.0 的一些特性: 1.性能优化:.NET 6.0引入了多种性能优化技术,例如 JIT 编译器的优化、GC 垃圾回收的改进等等。 2.支持操作系统:.NET 6.0增加了对更多操作系统的支持,包括 Windows ARM64、Android 11、macOS Monterey、Apple Silicon等等。 3.新特性:.NET 6.0提供了多种新特性,例如 C# 10 语言特性、ASP.NET Core Blazor WebAssembly 的 AOT 编译、.NET MAUI 跨平台框架等等。 4.性能分析:.NET 6.0引入了更多性能分析工具,例如 Profiling API 和 EventPipe 等等,可以更好地帮助开发者分析和优化应用程序的性能。 5.兼容性:.NET 6.0保持向后兼容性,并提供了向后兼容性测试套件,以确保现有应用程序在升级到 .NET 6.0 后能够正常运行。 ### 回答2: .NET 7.0和.NET 6.0是微软推出的两个不同版本的开发框架。它们之间有几个重要的区别。 首先,.NET 7.0引入了许多新的功能和改进,以提高开发人员的生产力和应用程序的性能。其中一个新功能是模块化开发,使开发人员能够只使用所需的功能,而不必加载整个框架。此外,.NET 7.0还引入了新的语言特性和语法糖,使代码更加简洁和易读。此外,.NET 7.0还引入了新的编译器优化和运行时优化,从而提高了应用程序的执行速度和内存利用率。 其次,.NET 7.0和.NET 6.0在支持的操作系统和平台方面也有所不同。.NET 6.0可以在Windows、macOS和Linux等多个平台上运行,其中包括Windows 10、Windows Server、macOS Catalina和Ubuntu等操作系统。而.NET 7.0则进一步增加了支持的操作系统和平台,比如可以在Apple Silicon和Raspberry Pi等嵌入式系统上运行。 另外,.NET 7.0还提供了更多针对云和边缘计算的功能和工具。例如,它提供了更好的Docker支持,可以更方便地在容器环境中部署和管理应用程序。此外,.NET 7.0还引入了一些与云原生开发相关的功能,如分布式追踪、服务网格和自动缩放等,以帮助开发人员更好地构建和管理云应用程序。 总的来说,虽然.NET 7.0和.NET 6.0都是微软的开发框架,但.NET 7.0在功能、性能和平台支持等方面都有所改进和增强,提供了更好的开发体验和更广泛的应用范围。开发人员可以根据自己的需求和项目的要求选择使用适合的版本。 ### 回答3: .Net 7.0和.Net 6.0是微软公司开发的两个版本的.Net框架。它们之间存在一些重要区别。 首先,.Net 7.0相对于.Net 6.0具有更高的性能和更好的优化。这是通过引入优化的JIT(Just-In-Time)编译器和改进的垃圾回收器来实现的。这些改进加快了应用程序的执行速度和运行效率。 其次,.Net 7.0引入了一些新的功能和改进。其中包括新的语言功能,如模式匹配的增强和异步流。此外,还引入了新的库和类,如System.Text.Json,用于更方便地处理JSON数据。 另外一个区别是,.Net 7.0对跨平台的支持更加强大。它扩展了支持的操作系统和硬件平台范围,并提供了更好的交互性能。这为开发人员提供了更大的灵活性和选择性,使他们能够更好地在不同的环境中部署和运行应用程序。 此外,.Net 7.0还对开发者工具和开发体验进行了改进。Visual Studio IDE提供了更多的功能和改进,使开发人员能够更轻松地编写、调试和部署应用程序。还引入了新的调试工具和性能分析工具,帮助开发人员更好地诊断和解决问题。 总的来说,.Net 7.0相对于.Net 6.0具有更好的性能、更多的功能和更好的跨平台支持。这使开发人员能够更轻松地开发和部署高效、可靠和面向未来的应用程序。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值