3

Linuxカーネルは、ユーザー空間アプリケーションと同じように、モジュールリリース後のカーネルモジュールのメモリでkmallocされ、kfreeされませんか?Linuxカーネルメモリ管理

答えて

7

カーネルはモジュールのガベージコレクションを行いません。モジュールkmallocがメモリのチャンクであり、モジュールがアンロードされる前にそれがkfreeでなければ、そのチャンクは割り当てられたままであり、次回の再起動時にはアクセスできなくなります。

+0

カーネルはガベージコレクションを行わず、モジュールが終了するとメモリを解放しません。後者は、ユーザスペースプロセスとの主要な違いです。ユーザスペースプロセスは、終了時にメモリがシステムに返されるすべてのプロセスを含みます。 – mpe

+1

'dlopen()'を使ってロードされたモジュールを書くと、全く同じことがuserspaceに適用されることに注意してください。 – caf

関連する問題