- 论坛徽章:
- 0
|
为什么aix不能装在pc上?\r\n\r\n一个程序为什么能在某一款CPU上运行?因为此cpu能够解读这个程序的二进制指令。程序最开端是人编写的文本文件,高级语言与日常语法类似,汇编语言与机器的语法类似,但写出来都一样是高级的,人能看懂的文本!所以机器/CPU就看不动,需要编译,也就是翻译的过程,江你可以看懂的文本,翻译成机器能看懂的二进制代码。\r\n\r\n不是所有的CPU都使用同样格式的二进制机器代码,现在的CPU种类浩如烟海,但是由于intel的x86太强了,所以你以为只有intel的CPU,这个CPU你可以理解成为是英语国家,实际上还有很多“方言”但大家基本可以听懂,也就是amd的cpu, intel的cpu, nec的cpu,尽管不太相同,但都可以兼容x86指令集。\r\n\r\n但是世界上并非只有说英语的,同样也并非只有x86架构的cpu,power pc就是另一款,说“power pc语”,和x86只见互相听不懂。这是最根本原因,导致了aix不能装在pc上。\r\n\r\n类似的windows为什么能有alpha版?可以在DEC的alpha小型机跑?因为微软将windows另外编译了一下,编译成了alpha能“听”懂的二进制码。aix为什么没有这样做?市场!windows想从pc向上走,占据高端服务器市场,所以就要主动编译成alpha,(当然,它也可以“主动”编译成power pc能懂的,以后再说这个问题),但是aix不想这样,不想让普通的pc/intel可以运行aix。\r\n\r\n那什么是虚拟机?可以这样理解,编译程序是翻译,将整本书翻译了。而虚拟机是同声传译,在读书的同时进行翻译,显然同声传译需要很高的技巧和CPU处理能力,如果是同类型的体系,例如语法相差不大,将广东话翻译成普通话,这个工作很容易,也不会损失多少性能,但要把广东话翻译成英文,这个工作量就大了。因此,vmware,只进行类似广东话到普通话的翻译,实际上的指令代码根本没翻译,因此不牺牲性能,但要跑aix,就需要讲广东话翻译成英文,性能损失非常大,vmware也没有提供这种cpu转换的仿真。\r\n\r\n在PC上有街机游戏的仿真器,提供了这种cpu转换的仿真,但为什么很早以前没有?是技术不够?不是,而是性能不行,所以仿真器方针的都是前一两代CPU的游戏,最新的ps2之类的,就不可能用现在的cpu,志强、赛扬之类的仿真。可能过2-3年,可以用那时的最新的cpu,仿真ps2,但现在不行。\r\n\r\n有兴趣的朋友可以看看这个:http://skyeye.org/\r\n这是仿真arm CPU(另一款与x86, power pc都不同的cpu)的open source,提供对arm CPU的仿真.\r\n\r\n\r\n程序可以在这个CPU上运行,就可以运行了么?还不行,需要外设、操作系统支持。就是各种相关的生活行为、习惯都一样才能非常好地仿真,否则就会出问题。单独为某一款cpu编译的程序如果用另一种cpu的编译器编译,并不是很容易就可以通过执行的,会出现很多问题,所以一个操作系统如果支持两种芯片,成本尽管没有达到一倍,但也很高,所以没有很好的市场发展要求,没人愿意做支持两个平台的操作系统。windows为了抢市场,而solaris也是为了抢市场。一个是想做吃另一个平台的肥肉,另一个是想跳离即将沉没的破船。\r\n\r\n\r\nto be continue |
|