操作系统与CPU的指令集的关系是怎样的?

正好在做相关的项目,就把 知道的说说,程序猿的一大特点就是说话不利索,将就着看。
CPU指令集 取决于 CPU的 体系架构,目前主流的就是两类 ,ARM 和 X86 ,其他的也有,当然非主流。
指令集上有啥不一样呢,小例子,ARM 体系的寄存器叫做 R1,R2,R3。。。
X86 体系的寄存器叫做EAX, EBX,ECX。。。

好了,再扯到操作系统上,程序猿心中的圣杯---LINUX,很大的一个优势就是在各种CPU体系架构行都能跑。装个ubuntu/red hat 到我们X86 电脑上(就是你在电脑城配的那台)能跑,装个Android到我们ARM 架构手机上也是能跑。不像某家W,不开源还只能跑在 X86上面,形成了日薄西山的WINTEL联盟。不过最近推出的WINDOWS RT 也是第一次试水ARM 架构上的WINDOWS。

说了这么多,离你 的问题还是很远,简单说吧,一个应用程序 编译成 ARM版本 那就可以在 ARM 指令集上运行,编译成X86版本就可以在X86指令集上运行。但是一般场景是这样: 应用程序 ---》 操作系统 ---》CPU指令执行,编译成ARM版本的应用程序(此时二进制文件是ARM指令集实现)不可能在WINDOWS XP系统上运行, 因为如上面说,WINDOWS XP只是支持X86 指令集。

哎,程序猿还是说话不利索,反正就是LINUX操作系统可支持多种指令集,在具体的设备上(因为此时CPU体系架构就确定)只支持一种,这时候LINUX需要做一些适配工作才能实现。WINDOWS 目前只支持X86指令集,WINDOWS RT 目前只支持ARM指令集。

类比一下,一部手机在英国市场,必须配英文使用说明书,而在中国市场,就必须配中文说明书。如果厂家在出厂时候都给配上,就可以在各国售卖。这手机就代表那操作系统,市场就是具体的CPU体系架构。好不贴切,就这么地吧!程序猿的表达能力始终是硬伤,我去疗伤!
  • 33
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值