【发布时间】:2020-11-22 05:33:49
【问题描述】:
Apple 的基于 ARM 的处理器看起来很有前途,而且比英特尔更省电。我想知道的是它支持什么低级语言?至于 intel x86,它主要是用 C/C++ 编写的。即使 apple Silicon 有 Rosetta2 编译第三方库,它是否仍然原生支持 x86_64(c/c++) 等低级语言。
【问题讨论】:
-
从 C 的发明到现在,整个想法都是抽象底层架构。 ARM 有 C 和 C++ 编译器,就像 x86 一样。很大一部分代码只会重新编译并完成。操作系统抽象底层驱动程序,而驱动程序有时也抽象底层架构,所以这里主要还是重新编译。就像从 powerpc 到 x86 的过渡一样,从 x86 到 arm 的过渡应该是平滑的。
-
因此,基本上 arm 和 intel 下划线架构的工作方式大致相同,但性能不同。是这个意思吗?
-
不,与此无关,底层架构与高级代码和编译器无关。底层架构就像字母和语言。因为一本数学教科书是用英语写的,这是否意味着不可能将那本书翻译成德语?不,这没有任何意义。比那个例子少,因为您不必将代码更改超过 99% 加上小数点后的许多 9。从百分比的角度来看,无需更改任何代码。
-
你只是重新编译它,不确定在哪里混淆。 C 是在 1960 年代与 unix 携手创建的,以避免他们在 darpanet 上使用不同架构时遇到的问题。允许以非目标特定语言编写操作系统,然后编译到目标。 printf("你好世界\n");不是在 x86 上发明的,x86 是几十年后的事,x86、mips、arm、powerpc、avr、risc-v、pdp11、pdp8、6502 等等等等等。所有这些都有编译器,可以将代码编译成可以运行的东西,无需对源代码进行任何更改。
-
您是否对编程语言和编译器感到困惑?目前不确定您的真正问题是什么。 C 与 x86 无关。
标签: arm apple-silicon