ユーザーにsudoアクセスを許可せずにカーネルモジュールと対話しますか? [閉鎖]

ユーザーにsudoアクセスを許可せずにカーネルモジュールと対話しますか? [閉鎖]

ユーザー空間でカーネルモジュールを作成する方法を学んでいます。ユーザー空間で制御できる単純なカーネルモジュールを知っている人はいますか?

/lib/modulesを見ましたが、ほとんどのドライバはrootアクセスを必要とし、難解な機能を使用しているため、すべてのソースコードを見たくありません。 (例:エポエ)。

ユーザー空間カーネルデバイスドライバを知っている人はいますか?

ここに画像の説明を入力してください。

ベストアンサー1

「ユーザ空間カーネルモジュール」の説明は矛盾している。つまり、ユーザー空間またはカーネルで実行されますが、どちらでも実行できず、カーネルモジュールもユーザー空間で実行できません。

つまり、書くことができるデバイスドライバユーザー空間では、かなり一般的なカーネルAPI(モジュールであるかどうかにかかわらず、カーネル空間で実行されます)を使用し、ユーザー空間で実際のデバイスドライバ機能を実装します。libusb、またはを使用するspidevデバイスドライバはi2cdevこれの例です。ライブラリを使用してよく知られているカーネルAPIにアクセスするか、APIに直接アクセスしますが、デバイスドライバロジックはユーザースペースで実行されます。

別の同様の例はヒューズ:固定カーネルAPIを使用して、ユーザースペースに独自のファイルシステムを実装できます。

したがって、例が必要な場合は、GoogleでこれらのAPIを使用するデバイスドライバを見つけてください。しかし、これは「ユーザ空間カーネルデバイスドライバ」ではなく、「ユーザ空間デバイスドライバ」の例であり、それが望むものであるかどうかはわかりません。

カーネル空間で実行されるものを作成するには、カーネルモジュールの作成方法を学ぶ必要があります。

おすすめ記事