㈠ 为什么x86和arm的架构不同,但是都能装linux呢,他们的编译时如何实现的。
rm架构和x86架构区别:
一、性能:
X86结构的电脑无论如何都比ARM结构的系统在性能方面要快得多、强得多。X86的CPU随便就是1G以上、双核、四核大行其道,通常使用45nm(甚至更高级)制程的工艺进行生产;
而ARM方面:CPU通常是几百兆,最近才出现1G左右的CPU,制程通常使用不到65nm制程的工艺,可以说在性能和生产工艺方面ARM根本不是X86结构系统的对手。
但ARM的优势不在于性能强大而在于效率,ARM采用RISC流水线指令集,在完成综合性工作方面根本就处于劣势,而在一些任务相对固定的应用场合其优势就能发挥得淋漓尽致。
二、扩展能力:
X86结构的电脑采用“桥”的方式与扩展设备(如:硬盘、内存等)进行连接,而且x86结构的电脑出现了近30年,其配套扩展的设备种类多、价格也比较便宜,所以x86结构的电脑能很容易进行性能扩展,如增加内存、硬盘等。
ARM结构的电脑是通过专用的数据接口使CPU与数据存储设备进行连接,所以ARM的存储、内存等性能扩展难以进行(一般在产品设计时已经定好其内存及数据存储的容量),所以采用ARM结构的系统,一般不考虑扩展。基本奉行“够用就好”的原则。
三实现编译:
因为linux是系统,他支持现在大多数的结构体系。而要使他移植到相应的不同的硬件平台上时,需要对内核源码进行相对应的交叉编译处理,然后才能进行烧写运行,因为都有驱动只要那个系统有对应平台的驱动就可以。
(1)x86编译成arm扩展阅读:
Linux常用命令
1、pwd命令该命令的英文解释为print working directory(打印工作目录)。
2、输入pwd命令,Linux会输出当前目录。
3、cd命令cd命令用来改变所在目录。
4、cd / 转到根目录中
5、cd ~ 转到/home/user用户目录下
6、cd /usr 转到根目录下的usr目录中-------------绝对路径
7、cd test 转到当前目录下的test子目录中-------相对路径
8、cat命令可以用来合并文件,也可以用来在屏幕上显示整个文件的内容。
9、cat snow.txt 该命令显示文件snow.txt的内容,ctrl+D退出cat。
㈡ 什么是ARM和x86架构
手机是arm平台,exe那是x86平台编译出来的东西,根本没办法直接运行;非要运行只能装虚拟机,但是那效率保证卡的你三分钟就受不了。
ARM架构,曾称进阶精简指令集机器(AdvancedRISCMachine)更早称作Acorn RISC Machine,是一个32位精简指令集(RISC)处理器架构。还有基于ARM设计的派生产品,重要产品包括Marvell的XScale架构和德州仪器的OMAP系列。
ARM家族占比所有32位嵌入式处理器的75%,成为占全世界最多数的32位架构。ARM处理器广泛使用在嵌入式系统设计,低耗电节能,非常适用移动通讯领域。消费性电子产品,例如可携式装置(PDA、移动电话、多媒体播放器、掌上型电子游戏,和计算机),电脑外设(硬盘、桌上型路由器)。
x86架构历史:
x86架构于1978年推出的Intel 8086中央处理器中首度出现,它是从Intel 8008处理器中发展而来的,而8008则是发展自Intel 4004的。8086在三年后为IBM PC所选用,之后x86便成为了个人计算机的标准平台,成为了历来最成功的CPU架构。
其他公司也有制造x86架构的处理器,计有Cyrix(现为VIA所收购)、NEC集团、IBM、IDT以及Transmeta。Intel以外最成功的制造商为AMD,其早先产品Athlon系列处理器的市场份额仅次于IntelPentium。
8086是16位处理器;直到1985年32位的80386的开发,这个架构都维持是16位。接着一系列的处理器表示了32位架构的细微改进,推出了数种的扩充,直到2003年AMD对于这个架构发展了64位的扩充,并命名为AMD64。
后来Intel也推出了与之兼容的处理器,并命名为Intel 64。两者一般被统称为x86-64或x64,开创了x86的64位时代。
值得注意的是Intel早在1990年代就与HP合作提出了一种用在安腾系列处理器中的独立的64位架构,这种架构被称为IA-64。IA-64是一种崭新的系统,和x86架构完全没有相似性;不应该把它与x86-64或x64弄混。
㈢ 求助,如何让x86汇编代码在ARM上编译成功
要么是arm上用gcc的交叉编译x86
要么是arm上x86虚拟机下的编译。
㈣ x86与ARM架构下的编译器的区别
ARM是简单指令集。。。 指令集长度短
㈤ linux x86下的程序移植到arm板子上需要做哪些
需要交叉编译后,将编译出的文件放到板子上执行。
交叉编译器arm-linux-gcc或者arm-linux-g++,过程比较复杂,一时是说不清楚的。
建议多看些资料,了解一下原理
㈥ 能在x86上编译运行在arm的交叉编译器吗
,在进行ARM-linux嵌入式开发时必须在PC机(x86结构)上编译出能够运行在ARM上的程序,然后再将程序下载到ARM中来运行.这就用到了交叉编译器...
㈦ make menuconfig后加ARCH=arm是什么意思,如果不加,有什么区别
你可以看一下makefile的内容。
make menuconfig 是执行makefile里面的menuconfig目标.
如果后面ARCH =arm CROSS_COMPILE=arm-linux-的话表明: 编译出来的目标是针对ARM体系结构的。因为是针对ARM体系结构,所以需要使用交叉编译器。使用CROSS_COMPILE=xxx来指定交叉编译器。
CROSS_COMPILE=arm-linux- 意思是制定交叉编译器为arm-linux-XXX。 如:makefile里面会指定CC为arm-linux-gcc。
zhakalamu |五级采纳率35%
擅长:编程语言嵌入式Linux
㈧ 哪位能帮忙把一段x86的汇编转成ARM汇编
要完成你的问题,需要知道x86汇编和arm汇编,如果你的程序中用到的指令两者都有实现,那就简单;如果否,那就有点难。
比如x86有乘、除法指令,有些指令系统没有,则做这样的转换就费劲些。
㈨ 持x86,而是win10把x86转成arm让8xx运行.这件事情和用什么cpu无关.编辑于 2016-12
虽然指令集是不兼容的,但是有一个解释器,可以 实时翻译指令,影响的是效率而已。
㈩ x86二进制可以转换成arm二进制么
二进制是数学概念,你应该指的是二进制的程序代码,不同系列的处理器的二进制的程序代码完全不一样。二进制的程序代码程序代码在计算机科学里叫机器指令,没有机器指令的编程语言;比机器指令再高级一点的是汇编指令(与机器代码一一对应)助记符,形成汇编语言;比汇编语言再高级的常见编程语言有C,FORTRAN,basic,Pascal等等。把编写的高级语言程序转换成二进制的程序代码叫编译。目前还没有很成功的反汇编高级语言工具。