とりわけ、メモリのブロックをで割り当てるデバイスドライバを作成していますkmalloc
。このメモリは、ユーザープログラムがファイルを閉じるときに解放されます。私の実験の1つでは、ファイルを閉じずにユーザープログラムがクラッシュしました。
何かがこの記憶を解放したでしょうか?
別の実験ではkfree()
、close()
関数から関数に移動しましたmodule_exit()
。ユーザープログラムを2回続けて実行したとき、kmalloc
最初に解放せずに、以前と同じポインターを使用して再度呼び出しました。したがって、私はそのメモリへのポインタを失い、それを解放することができません。
このメモリは、再起動するまでシステムに失われますか、それともドライバをアンロードすると解放されますか?