Проверяет ли операционная система перед запуском исполняемого файла содержащиеся в нем инструкции?
Проверяет ли условная операционная система (Linux, Windows) перед запуском исполняемого файла содержащиеся в нем инструкции? То есть, если в исполняемом файле по той или иной причине окажется неподдерживаемая инструкция, получим ли мы ошибку на этапе запуска, или же во время выполнения?
Ответы (1 шт):
Нет, такой проверки нет. Хотя бы по той причине, что может быть какой-то неверный jmp прямо в середину команды, и вся проверка насмарку. А проверять все возможные переходы, в том числе и те, которые при выполнении не выполнятся? Да и замедление при выполнении было бы очень заметным.
Обычно при попадании на неверную инструкцию генерируется исключение (не путать с исключениями С++), обработчик которого либо завершит программу, либо может как-то разумно обработать ситуацию (если его пишет автор программы).