私はカーネルプログラミングの初心者です。インスピレーションが必要です。カーネルソースにいくつかの関数を記述し、カーネルを再構築して再起動できることはわかっています。コードは、ハードウェアを制御するハードウェアドライバーである可能性があります。しかし、ユーザースペースプログラムはこれらの関数をどのように使用できますか?私は、syscallを通じて、ユーザースペースプログラムがカーネルスペースと通信でき、ロード可能なカーネルモジュールもカーネルソースコードで定義された関数を使用できることを知っています。しかし、ユーザープログラムはどのようにしてこれを達成できますか?
PS:今私はqemu-kvmを学んでいます。qemuはユーザースペースプログラムであり、kvmはカーネルです。qemuプログラムがkvmをどのように使用するかを理解したいだけです。
これは非常に基本的なLinuxカーネルプログラミングの問題であることを私は知っていますが、それは長い間私を混乱させます。誰かが私にヒントを与えることができますか?:>