Linux

proc経由でkernelとやり取りしてみる

procインタフェースを利用してユーザランドのアプリケーションとカーネルでデータをやりとりするサンプルです。

具体的には下記のようにechoでリダイレクトした文字列をカーネルで受信して、catで覗くとリダイレクトした文字列が表示されるような簡単なカーネルモジュールを作ります。開発環境はCentOS7です。

完成イメージ

ソースコード

procmod.c

Makefile

実行結果

ビルドしてカーネルモジュールをロードします。

f:id:segmentation-fault:20180106230106p:plain

ちゃんとアプリ、カーネル間でデータをやりとりできました。

次回は/dev/にスペシャルファイルを作ってアプリとカーネル間でepoll,ioctlを使った通信を試したいと思います。