Программа скомпилирована с некоторого языка на ASM → Машинный код (непосредственно исполняемый файл). Когда люди говорят, что это зависит от платформы, значит, что созданные двоичные файлы будут выполняться (правильно) только на процессорах с такой же архитектурой набора инструкций, как x86, x86-64. Он может (неправильно)/не может (вообще) работать на других процессах из-за разницы в ISA. Правильно?
Теперь понятие двоичных файлов меня сбивает с толку. Все дело в "Кодексе машинного языка" и "ЦП". Где ОС вступает в игру? Я имею в виду, что скомпилированный двоичный файл имеет прямые инструкции для CPU, когда он загружается в память. и процессор выполняет одну команду за раз. Я не мог видеть роль операционной системы в любом месте, кроме как в управлении процессом текст ссылки. Он должен работать на ЦПУ той же ISA независимо от операционной системы. правильно?
Но это не так. Если я создам код для x86 на машине Windows. Он не будет работать на машине Mac x86 или Linux x86.
Мне что-то не хватает. Пожалуйста, очистите мое замешательство.