6480|17

67

帖子

0

TA的资源

一粒金砂(初级)

楼主
 

求高手赐教,为什么一个操作系统可以安装到不同的CPU上? [复制链接]

比如AMD和INTEL的CPU,----------又或者其他的牌子的CPU ,比如苹果的CPU,所用的指令系统都是不一样的吧,如果一个指令占2个字节,那么这两个字节的内容对于AMD和INTEL应该都是不同的吧。

那么操作系统如何针对各自不同的CPU生成各自不同的指令呢?是通过驱动程序吗?

而且,为什么windows不针对各自不同的CPU生成各自对应专用系统而提高性能呢?

最新回复

通过编译器生成相应架构的二进制代码,如ARM的toolchain为arm-linux-*,x86的toolchain位x86-linux-*等,由编译器来完成。。。  详情 回复 发表于 2009-11-18 20:07
点赞 关注

回复
举报

90

帖子

0

TA的资源

一粒金砂(初级)

沙发
 
看看dos内核代码,就知道了。所有硬件CPU对二进制指令是直接识别的。也是相同的。
 
 

回复

79

帖子

0

TA的资源

一粒金砂(初级)

板凳
 
楼上正解!!!
 
 
 

回复

71

帖子

0

TA的资源

一粒金砂(初级)

4
 
指令系统给出的是汇编指令,汇编指令会转成二进制指令,CPU对二进制指令的识别是一样的
 
 
 

回复

89

帖子

0

TA的资源

一粒金砂(初级)

5
 
引用 1 楼 duojinian 的回复:
看看dos内核代码,就知道了。所有硬件CPU对二进制指令是直接识别的。也是相同的。

arm 的 和x86 一样?
胡扯

只能说是可能两种cpu用的是同一种编码规则
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

6
 
等待高手
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

7
 
引用 3 楼 kelibin 的回复:
指令系统给出的是汇编指令,汇编指令会转成二进制指令,CPU对二进制指令的识别是一样的


程序都是直接编译成二进制代码了啊
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

8
 
不同的CPU编码都是不一致的啊
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

9
 
估计是安装包里包含了各种架构的内核文件,安装的时候根据具体架构自动选择的吧
内核之外的东东就跟CPU没有关系了
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

10
 
引用 7 楼 shangweidenglu 的回复:
不同的CPU编码都是不一致的啊

有的是一样的,比如都是arm核的

最主要的问题是操作系统是要被编译的,不同的编译环境编译出来的机器码是不一样的,所以是可以移植的,不同cpu的细小差别可以用宏定义来区分!
 
 
 

回复

84

帖子

0

TA的资源

一粒金砂(初级)

11
 
上层应用一样,与硬件相关的部分独立出来,移植的时候只需修改硬件相关的部分.
 
 
 

回复

75

帖子

0

TA的资源

一粒金砂(初级)

12
 
学习
 
 
 

回复

64

帖子

0

TA的资源

一粒金砂(初级)

13
 
引用 8 楼 arnold9009 的回复:
估计是安装包里包含了各种架构的内核文件,安装的时候根据具体架构自动选择的吧
内核之外的东东就跟CPU没有关系了



同感
 
 
 

回复

86

帖子

0

TA的资源

一粒金砂(初级)

14
 
引用楼主 shangweidenglu 的回复:
比如AMD和INTEL的CPU,----------又或者其他的牌子的CPU ,比如苹果的CPU,所用的指令系统都是不一样的吧,如果一个指令占2个字节,那么这两个字节的内容对于AMD和INTEL应该都是不同的吧。

那么操作系统如何针对各自不同的CPU生成各自不同的指令呢?是通过驱动程序吗?

而且,为什么windows不针对各自不同的CPU生成各自对应专用系统而提高性能呢?


对于x86来说,amd/intel指令集没有什么不同,其各自可能会有一些增强指令,当然amd/intel自身的实现并不同,但并不会影响 其执行x86指令的正确性。
同一套操作系统,对于不同的cpu其实是有多套二进制代码的,譬如说x86的ia32, x86_64等。并不是在安装 的时候确定,因为无法保证操作系统安装程序本身正常运行。安装的时候能确定一些平台特性。
至于windows针对各自cpu对应用系统进行优化,楼主想要有什么样的优化尼?
 
 
 

回复

77

帖子

0

TA的资源

一粒金砂(初级)

15
 
我顶!
 
 
 

回复

68

帖子

0

TA的资源

一粒金砂(初级)

16
 
首先,明确一点,不同的cpu不是牌子不同,是指不同的架构,如x86,arm,mips,power等,好,接下去,对于同一种架构,对应的指令集的规范是一样的,这就意味着同一个操作系统,只要是装在同一个架构的cpu上,就不用重新编译,因为他们与硬件沟通的语言一样的,即指令集规范。那么,对于不同的架构,意味着不同的指令集,操作系统必须在该指令集的编译器下重新编译,才能安装。
举个最简单的例子,为什么有这么多国人说龙芯不是自己的cpu,就是因为指令集的问题,用了mips的指令集,这就相同于cpu的灵魂一样,外壳再怎么变,还是一个人。
 
 
 

回复

80

帖子

0

TA的资源

一粒金砂(初级)

17
 
PC上都是X86体系的,所以通用,多媒体部分不同,会有额外的优化,对于其他嵌入式设备,有不同的CSP,这样OS就可以不感知CPU差异了(MIPS还需要额外的编译器)
 
 
 

回复

74

帖子

0

TA的资源

一粒金砂(初级)

18
 
通过编译器生成相应架构的二进制代码,如ARM的toolchain为arm-linux-*,x86的toolchain位x86-linux-*等,由编译器来完成。。。
 
 
 

回复
您需要登录后才可以回帖 登录 | 注册

随便看看
查找数据手册?

EEWorld Datasheet 技术支持

相关文章 更多>>
关闭
站长推荐上一条 1/10 下一条

 
EEWorld订阅号

 
EEWorld服务号

 
汽车开发圈

About Us 关于我们 客户服务 联系方式 器件索引 网站地图 最新更新 手机版

站点相关: 国产芯 安防电子 汽车电子 手机便携 工业控制 家用电子 医疗电子 测试测量 网络通信 物联网

北京市海淀区中关村大街18号B座15层1530室 电话:(010)82350740 邮编:100190

电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved
快速回复 返回顶部 返回列表