本の一節です
カーネル コードを実行する場合、システムはカーネル空間でカーネル モードで実行されます。通常のプロセスを実行する場合、システムはユーザー モードで実行されるユーザー空間で実行されます。
さて、カーネルコードとユーザーコードとは何でしょう。誰かが例で説明できますか?
このアプリケーションを実行しprintf("HelloWorld")
ているときに、ユーザーコードまたはカーネルコードになるアプリケーションがあるとします。
ある時点で、ユーザーコードがカーネルモードに切り替わり、カーネルコードが引き継ぐと思いますが、これに出くわしたので、常にそうであるとは限りません.
たとえば、open() ライブラリ関数は、open() システム コールを呼び出す以外にはほとんど何もしません。strcpy() などのさらに他の C ライブラリ関数は、カーネルを直接使用しないようにする必要があります (1 つは希望します)。
カーネルを使用しない場合、どのようにしてすべてを機能させるのでしょうか?
誰かが全体を明快に説明してくれませんか。