Pit*_*kos
6
windows
linux
cpu
compile
binary-files
我一直想知道可执行二进制文件实际上是如何工作的。编译总是声明为
获取源代码并将其翻译为机器语言
但这到底意味着什么呢?即:
- 我可以将二进制文件从计算机 A 移动到计算机 B 并期望它正常工作吗?(假设我也移动了适当的库)
- 每个可执行二进制文件都适合与特定处理器一起使用吗?
- 可执行二进制文件中包含哪些类型的信息?
- 为什么Windows上的可执行文件可以在任何Windows版本上启动?(如果有效的话那就是另一个故事了)
- 为什么我无法在 Windows 上运行 Linux 可执行文件?它与内核有关(所以与处理器无关)吗?
请注意,我对处理器和编译器的了解有限,并且对汇编一无所知。