跳至主要內容
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?

4563博客

全新的繁體中文 WordPress 網站
  • 首頁
  • 哪位老哥能解释一下 Rosetta 的实现原理?
未分類
7 11 月 2020

哪位老哥能解释一下 Rosetta 的实现原理?

哪位老哥能解释一下 Rosetta 的实现原理?

資深大佬 : wangyzj 2

编译原理难啊,搞不明白也懒得再看

求老哥能通俗易通详细深入的解释

多谢老哥

哪位老哥能解释一下 Rosetta 的实现原理?

大佬有話說 (10)

  • 資深大佬 : wangyanrui

    心里知道是个啥,但是描述不出来
    蹲一位大佬

  • 資深大佬 : geekvcn

    一个软件兼容层,类似于游戏机模拟器,把 x86 指令集适配的代码转换翻译为 ARM 能运行的代码。Rosetta2 会把 x86 的二进制文件预编译,所以第一次打开会慢,就像部分模拟器要么用别人转换好的游戏,要么自己转换一遍。

    简单说就是一个胖翻译,而且给皇军打报告的前会预先备好翻译好的稿件提高效率

  • 資深大佬 : secondwtq

    关键词 Dynamic Binary Translation

  • 資深大佬 : chashao

    是类似 qemu 的原理么?

  • 資深大佬 : geekvcn

    @chashao qemu 更底层一点,模拟了底层硬件环境

  • 資深大佬 : nguoidiqua

    类似 Android 的 ART,不过 ART 是从 Java 转到 ARM 机器码,而 Rosetta 2 是从 X86 机器码转到 ARM 机器码。

    另外早期 ART 是安装的时候进行转换,安装时间较长,现在是运行中用到对应代码才转换。而 Rosetta 2 是第一次打开转换,第一次打开时间较长。Windows on ARM 据说是运行软件过程中即时翻译,相对前两者有较大性能损失,可能以后也会改成预先转制。

    以上都是道听途说的,没有考证过。

  • 主 資深大佬 : wangyzj

    @geekvcn #2 Rosetta 1 据说是动态翻译,2 就是静态翻译了所以速度很快,如果动态翻译可以理解为一个软 CPU 的话,那么静态翻译我理解是不是就把库文件和可执行文件都改了,那么文件大小是不是就得都变了

  • 主 資深大佬 : wangyzj

    @nguoidiqua #6 麻烦看 7

  • 資深大佬 : Rorysky

    是个转译器,直接运行时将 x86 翻译成 arm 指令,所以性能损失可以接受

    而不是 在 arm 上虚拟一个 x86 兼容环境

  • 資深大佬 : nguoidiqua

    @wangyzj

    估计是专门弄了个对应目录存放转换后的文件,启动的时候会做个判断看软件本身有没有符合本机架构的二进制文件,没有就调用转换的。

文章導覽

上一篇文章
下一篇文章

AD

其他操作

  • 登入
  • 訂閱網站內容的資訊提供
  • 訂閱留言的資訊提供
  • WordPress.org 台灣繁體中文

51la

4563博客

全新的繁體中文 WordPress 網站
返回頂端
本站採用 WordPress 建置 | 佈景主題採用 GretaThemes 所設計的 Memory
4563博客
  • Hostloc 空間訪問刷分
  • 售賣場
  • 廣告位
  • 賣站?
在這裡新增小工具