ОС-специфичные приложения - PullRequest
0 голосов
/ 08 февраля 2012

Я просто хочу знать, почему некоторые игры работают только на Windows и не работают на других ОС, таких как Mac OS X и Linux. Чем они отличаются, и как программа узнает, что ОС - это Windows, Linux или Mac?
Кроме того, почему 32-разрядный драйвер Windows 7 не работает на 64-разрядном и наоборот?

1 Ответ

0 голосов
/ 08 февраля 2012

Кроме того, как 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))

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...