/procはカーネル/ドライバ空間用に厳密に予約されていますか?

/procはカーネル/ドライバ空間用に厳密に予約されていますか?

ユーザー空間アプリケーションやデーモンを開発する際には、特定の形式のコンポーネントの状態を提供するのが良い設計方法です。私はしばしばこの目的のために/ procの使用を検討しました。これは許容されるソリューションですか?たぶん/procサービスを複製するためのユーザースペースライブラリがありますか?

私が見つけた他のほとんどの参考文献は、/ procがカーネルとドライバ開発者のために予約されていることを示しています。

ベストアンサー1

実際、/ procはカーネルスペース用に予約されています。 Linux では特別な fs 型 "procfs" であり、各ファイルはカーネル内の関数のハンドラです。

ユーザースペースにいる間は、/ procにフォルダ/ファイルを作成することはできません。プロセスと通信するためにカーネルモジュールを作成できますが、深刻なセキュリティ問題が発生する可能性があるため、これは良い考えではありません。言うまでもなく問題が発生すると、メモリが破損する危険性が高くなります。

とにかくinotifyライブラリ(ユーザー領域とカーネル)の例があります。マンページを見る以下は、/ procにエントリを生成するためのカーネルモジュールコードの例です。http://linux.die.net/lkmpg/x769.html

楽しいハックをしてください:)

おすすめ記事