Как выполняется программа? Где операционные системы вступают в игру?

Программа скомпилирована из некоторого языка в ASM -> Machine Code (непосредственно исполняемый). Когда люди говорят, что это зависит от платформы, это означает, что сформированные двоичные файлы будут работать (правильно) только на процессорах с такой же архитектурой набора инструкций, как x86, x86-64. Он может (неправильно) / не может (вообще) работать на других процессах из-за разницы в ISA. Правильно?

Теперь концепция двоичных файлов смущает меня. Все о «коде машинного языка» и «процессоре». Где ОС вступает в игру? Я имею в виду, что скомпилированный двоичный файл имеет прямые инструкции для процессора, когда он загружается в память. & CPU выполняет одну инструкцию за раз. Я не мог видеть роль операционной системы где-либо, кроме как в управлении процессамитекст ссылки , Он должен быть запущен на процессоре того же ISA независимо от операционной системы. правильно?

Но это не так. Если я строю код для x86 на машине Windows. Он не будет работать на компьютере Mac x86 или Linux x86.

Я что-то здесь упускаю. Пожалуйста, очистите мою путаницу.

Ответы на вопрос(9)

Ваш ответ на вопрос