挖个坑,聊聊ARM以及跨平台计算(更新 为什么Rosetta2跑不了虚拟机)

  • h
    hookgao
    Mark iOS fly ~
  • l
    littlelong
    回复145#94crazy


    是啊,那前面你提到说性能优化很多是啥黑科技?
  • 9
    94crazy
    DBT可以看做是个实时编译器,编译器的优化技术都可以用上,翻译的过程还有其它平台的优化作为参考,另外可以充分开发体系结构提供的功能,比如hardware transactional memory,aes,SIMD之类的。帖子里会有详细介绍。
  • g
    gain_hi
    回复153#94crazy


    楼主是啥方向的?
  • 9
    94crazy
    回复154#gain_hi

    cross architecture virtualization
  • 9
    94crazy
    回复99#lias886

    虚拟机迁移是我们领域很热门的问题,从用户角度看迁移的其实是服务,从不同层次有不同的解决路线,比如迁移进程/线程,迁移容器,迁移虚拟机,在跨平台环境下都会有特定的困难,有什么问题可以说说看具体讨论
  • l
    lias886
    回复157#94crazy
    不同架构的cpu 目前看来不能跨cpu迁移 比如从X86到arm iOS fly ~
  • l
    lias886
    回复130#94crazy
    这个能指个方向吗?指令集翻译 iOS fly ~
  • b
    black_samurai
    烦的神太多,以后都是云计算的天下,终端能上网有个输入法浏览器就行了 iOS fly ~
  • f
    ff0138
    进来学习。 iOS fly ~
  • 9
    94crazy
    静态的要动编译器,动态的要动虚拟机,高级一点的还可以动静结合,同时提高灵活性和性能
  • 9
    94crazy
    上面这些能保证程序在另外一个ISA跑起来,下面是迁移需要解决的问题:
    1. 程序状态,堆栈,全局变量、函数地址,这些都会变,比如函数指针,地址是运行时生成的,迁移完了之后要匹配,多线程的还有线程数据
    2. 系统状态,网络连接,打开的文件等等
    3. 机器状态,寄存器等状态,不同系统结构提供的寄存器数量甚至都不一样
  • 9
    94crazy
    完全正确!不用以后,现在已经差不多了。我的工作环境甚至连输入法都没有。
  • 9
    94crazy
    6楼改成Q&A, 更新Rosetta2不能跑虚拟机的解释。毕竟看不见源码,个人推测,不一定对。
  • f
    f00l
    占位吃瓜
  • D
    DeepWater
    CrossOver在Apple M1上跑起了x86的windows app。CrossOver是基于Wine的,CrossOver先把windows API调用翻译成macos调用,当然指令集还是x86的,然后rosetta2再接手,翻译成arm指令跑起来。
  • s
    socode
    技术贴,学习一下
  • 不要问我从哪来
    点赞 iOS fly ~