当前位置: 技术问答>linux和unix
关于不同操作系统中二进制文件的一个疑惑?!
来源: 互联网 发布时间:2014-12-29
本文导语: 在windows和unix下 windows下: 一个hello.exe 用来在屏幕上显示 hello 字符串 unix下 hello 也是完成同样的功能。 那么这两个文件都是0、1的二进制文件,他们的内容一样吗? | 当然不一样的,库函...
在windows和unix下
windows下:
一个hello.exe 用来在屏幕上显示 hello 字符串
unix下
hello 也是完成同样的功能。
那么这两个文件都是0、1的二进制文件,他们的内容一样吗?
windows下:
一个hello.exe 用来在屏幕上显示 hello 字符串
unix下
hello 也是完成同样的功能。
那么这两个文件都是0、1的二进制文件,他们的内容一样吗?
|
当然不一样的,库函数不同,汇编指令也不同
|
各自实现的方法是不一样的。所以文件也是不一样的。
|
不同的,操作系统不同当然实现的指令不同,就算是同一个操作系统,同样的程序用不同的开发工具编译,出来的都不同。
|
to 95533:同样硬件不同的操作系统,指令应该是一样的吧。只不过可执行文件的格式、执行的系统调用不一样。
|
Unix/Linux用的是elf或a.out格式。
一般具体操作的指令部分是相同的。也有一些不同,有一些功能的实现windows是调用BIOS的,而unix/linux是自己实现了BIOS中的代码。
但怎样从硬盘中将可执行程序正确的装配到内存并执行的部分是不同的。
一般具体操作的指令部分是相同的。也有一些不同,有一些功能的实现windows是调用BIOS的,而unix/linux是自己实现了BIOS中的代码。
但怎样从硬盘中将可执行程序正确的装配到内存并执行的部分是不同的。