|
|
发表于 2007-5-30 18:20:42
|
显示全部楼层
这个问题技术性比较强,捡自己觉得理解了的回答吧:
既然在64位机上还可以运行32位系统,显然机器硬件上有兼容32位的功能部分。这样会导致,如果编译成32位的操作系统,那么现有操作系统结构没有办法在上面运行任何64位的的应用程序(这点不像当年的WIN3.X,那时是16位的操作系统,但通过WIN32S可以运行部分32位的应用程序,现在的LINUX 32-64 结构还没相应的扩展组件);而如果编译成64位操作系统,由于有32-64兼容库的支持,可以运行64位及32位的应用程序。
之所以在一个64位系统上可以同时存在64位和32位两种应用程序,必然是可执行代码上有一个区分的标识,从而使系统能分别用不同的装入程序来加载它们。
这些都是从概念上的理解,我自己并没有在实际系统上进行过代码分析。 |
|