Программа C / C ++ запускает процессор или ядро?

Я программирую уже несколько лет, но есть одна вещь, которую я никогда не понимал точно:

Есть 2 типа языков программирования. Скомпилированные и интерпретированные, в то время как скомпилированные сначала должны быть скомпилированы на интерпретируемый язык, прежде чем они могут быть выполнены.

Например, C / C ++ необходимо сначала скомпилировать на машинном языке, прежде чем он сможет быть выполнен.

И тут возникает мой вопрос: кто на самом деле запускает скомпилированную программу C / C ++ для Windows / Linux? Это интерпретируется непосредственно процессором, или ядро ​​ОС выполняет его и передает команды в процессор?

И если процессор выполняет его напрямую, как ядро ​​Windows может отклонить некоторые вызовы? Иначе, означает ли это, что Ядро также понимает машинный язык или программы не на ядре C / C ++ не компилируются с машинным языком?

2

Решение

Программа работает на процессоре. Процессор имеет разные уровни привилегий, так называемые «привилегированные инструкции» могут выполняться только ядром — именно так безопасность обеспечивается операционной системой.

4

Другие решения


По вопросам рекламы [email protected]