Является ли операционная система абстракцией? - PullRequest
3 голосов
/ 09 февраля 2011

Какое имеет значение, если вы собираете, связываете и загружаете код на языке ассемблера или код C в среде DOS или Windows?результат не должен быть таким же?В конце концов, выполнение выполняется микропроцессором, а не операционной системой.Я изучаю язык ассемблера из старой книги эпохи MS-DOS.Это неудача?язык ассемблера и его выполнение не являются независимыми от O / S?или в этом отношении любой код, написанный на других языках?

Ответы [ 2 ]

7 голосов
/ 09 февраля 2011

не является ли ассемблер и его выполнение кода независимым от O / S?или в этом отношении любой код, написанный на других языках?

Да и нет.

Да.Язык машины не зависит от ОС.Не имеет значения, написали ли вы сами или компилятор C написал для вас.

Нет.Вы должны использовать ОС для фактического запуска программного обеспечения.Если вы хотите, чтобы он что-то сделал полезным , вам нужно вызвать API-интерфейсы ОС.Это полностью зависит от ОС.

0 голосов
/ 09 февраля 2011

Да, операционная система «стандартизирует» связь между нашими программами и процессором, так что printf () будет работать так, как ожидается, как в Linux, так и в Windows (и других), во многих различных версиях этих ОС и на другом оборудовании.конфигурации.
И, теоретически , возможно запускать одну и ту же программу на одном и том же процессоре с разными ОС, поскольку коды операций, очевидно, одинаковы, но это не происходит из-за денег (угадайте, что произойдет, если в один прекрасный день linux сможет запускать приложения Windows ..).
Итак, хотя возможность запуска двоичного файла или нет, должна зависеть только от процессоров, это зависит и от ОС.

...