2012-02-08 55 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

相關問題