2012-02-08 70 views
-2

我只想知道为什么某些游戏只有基于Windows的操作系统,并且不会在其他操作系统(如Mac OS X和Linux)上运行。是什么让他们不同,程序如何知道操作系统是Windows,Linux或Mac?
此外,类似地,为什么Windows 7 32位驱动程序不能在64位上运行,反之亦然?特定于操作系统的应用程序

回答

0

除了Mac和Linux使用不同的可执行类型(他们使用Mach-O和ELF,据我所见)比Windows(PE),如果可执行加载程序能够解析所有内容并将其加载到记忆,很多事情都可能出错。库调用(例如printf(3))依赖于底层的系统调用,它调用操作系统的内核。在printf(3)的情况下,它调用fstat(2),sbrk(2)write(2)。 (请注意newlib库下的情况;我不确定其他标准C库)。据您所知,Windows的系统调用接口可能与Linux使用的系统调用接口非常不同,Windows甚至可能缺少一些Linux系统调用(如fork(2)

+0

谢谢,对于答复。我们用于Windows的驱动程序如何?鼠标驱动程序如何激活鼠标而不是键盘? – Illusion03 2012-02-08 17:17:19

相关问题