私はかなりの数年間プログラミングをしていますが、正確に理解できなかったことが1つあります。
プログラミング言語には2種類あります。コンパイルされたものと解釈されたもの、コンパイルされたものは、実行する前にまず解釈された言語にコンパイルする必要があります。
たとえば、C/C++ は、実行する前にまず機械語にコンパイルする必要があります。
そしてここで私の質問があります: コンパイルされた C/C++ Windows/Linux プログラムを実際に実行するのは誰ですか? CPU によって直接解釈されますか、それとも OS カーネルがそれを実行してコマンドを CPU に渡しますか?
また、CPU が直接実行する場合、Windows カーネルはどのようにしていくつかの呼び出しを拒否できるのでしょうか? そうでなければ、カーネルが機械語も理解するということですか、それともカーネル以外の C/C++ プログラムは機械語にコンパイルされないということですか?