程序需要使用 matlabruntime 运行库,但是生产环境采购的 arm 架构的服务器,但是 matlabruntime 没有 arm 架构的包,只有 macos 系统提供了 arm 架构的包。 现在想的几种解决方法 1 ,arm 架构上模拟 x86 架构的虚拟机 这种方法试过了,由于服务器也不支持硬件虚拟化,这个虚拟机运行特别慢,没办法用 2 ,arm 架构上模拟 arm 架构的 macos 虚拟机 这个正打算尝试,但是浏览器搜索几乎没有方法,找到的都是 x86 上模拟 x86 的 macos 系统。问 chatgpt 和 deepseek 都说 macOS ARM 版本(如 macOS Sonoma )依赖于 Apple M 系列芯片的专有硬件特性,如 Secure Enclave 、APFS 加密、SIP (系统完整性保护)和特定的设备树结构。 这种方法好像也不行。 问下大佬是不是现在也是不行,还有 matlab 有没有 linux 的 arm 版本的包。
![]() |
1
Aboceder 85 天前
应该不行,M 系列的 mac 使用 pd 装 windos 都只能装 arm 架构的,反之亦是同理
|
![]() |
2
xclimbing 85 天前
我觉得运行不起来,专有硬件。应该问 matlab 有没有软件解决方案。
|
3
MacsedProtoss 85 天前 via iPhone
目前没有办法模拟 arm macOS
macOS 的 M 系魔改 arm 魔改到妈都不认识了 qemu 目前完全搞不定 |
![]() |
4
HojiOShi 85 天前
翻翻 GNU Octave 的源码,迁移一下算了。话说 arm 架构的服务器应该是飞腾之类的吧。
|
![]() |
5
424778940 85 天前
简单翻了一下官方文档和论坛 runtime 应该也就一堆 so/dll 动态库 没有 linux 的 aarch64 版本 但好像可以直接交叉编译 aarch64 的程序出来 也许可以直接静态连接?
|
6
yinmin 85 天前
你试一下 matlabruntime 的 docker 镜像是否有 arm64 版本(貌似有的),如果有的话,直接部署在 Docker 容器里。
|
7
mxT52CRuqR6o5 85 天前
box86/box64 ,不需要完全虚拟一个新系统
|
8
mayli 85 天前
生产环境弄点正常的吧,都用 matlab 了,为啥不用普通的 x86.
|
![]() |
9
flyqie 85 天前 via Android
chatgpt 说的对。
apple 的那个 soc 改了太多了,很难去模拟,目前也没有类似方案。 |
10
seancullen 84 天前
在 docker 里跑 macos
|
![]() |
12
flyqie 84 天前 via Android
|
13
ranaanna 84 天前
@seancullen 完全没有可能在 generic aarch64 上运行 macos 的,包括 docker 镜像。给的链接,即使能成功运行也只适用于 x86-64 架构的苹果和黑苹果硬件
|
14
ranaanna 84 天前
matlab (包括其运行库)只支持运行于 x86-64 上的 windows, linux 和 macos (及之前的 os x),从 r2023b 开始支持运行于 apple silicon 上的 macos ,其他一概不行
如果想在其他硬件上运行 matlab 代码,可以用 matlab coder 将代码翻译成适用于其他硬件的 C/C++源码,再编译为可在其他硬件执行的可执行文件、静态/动态链接库等,集成到项目中。所以 OP 需要的可能是这个 |
15
legendBro 84 天前
非 M 系列的 ARM 芯片能创建 ARM 架构的 macos 系统,字节内部就有,具体怎么实现的不知道。
还有 macOS12 以上系统自带虚拟化接口,UTM 这个开源免费软件可以在 m 系列实体机上创建虚拟机。 |
![]() |
17
flyqie 82 天前 via Android
@legendBro #15
2022 年字节的技术文章确实提到了他们在做 macos arm 虚拟化方面的工作。 但当时的文章还是在 mac mini 硬件上进行工作,三年过去了,不知道字节已经搞成什么样了,请问方便进一步分享下使用体验吗? |
18
focalfossa 64 天前 via iPhone
或许你可以试试 https://www.darlinghq.org/ 。不确定支持不支持 aarch64 就是。darling 的做法和 wine 一样,本质上是做了 macho loader ,然后翻译 Apple 的 API ,会比较干净、性能损失很小。
而且由于 macOS 的基础系统 Darwin 是开源的,darling 直接复用了 Darwin 的代码库。据我所知命令行程序一般不会有兼容性问题( darling 可以跑 Xcode cmdline tool ),GUI 程序如果是 OpenGL 写的感觉也可以跑,但是用了 AppKit 的(这个不在 Darwin 开源代码中)的目前兼容性还有很多问题。 |
19
focalfossa 64 天前 via iPhone
#18 所以你需要将你的程序构建为 aarch64-apple-darwin-macosx 目标,不要依赖 Cocoa ,AppKit 等东西。然后将其放到服务器上的 darling 环境中运行。
你可以借助 LLVM 和 https://github.com/tpoechtrager/cctools-port 直接在 *nix 系统上构建 darwin/macOS 程序,无需使用 mac 电脑 |