モジュールをrmmodコマンドで取り外すときには、キャラクタ型デバイスドライバの登録
を削除する必要がある。rmmodコマンドで形式的にメモリ上のデバイスドライバ
のイメージを削除しても、カーネルにデバイスドライバ名やシステムコールのエ
ントリポイントが登録されたままになっていると、間違ってこれらの情報が使用
された場合には、デバイスドライバのイメージが存在しないので、カーネルを破
損する可能性がある。
このようにLinuxシステムが壊れたときは自分の責任で、あらためてLinuxをイ
ンストールすること。
キャラクタ型デバイスドライバを削除するにはcleanup_moduleの中で、
unregister_chrdev関数を実行すればよい。だだし、
情報システム実験(9)では、dioボードのデバイスドライバであること
を明示的に示すために、このモジュール、すなわちcleanup_moduleを
dio_cleanupと名付けた。
デバイスドライバを削除するときには、登録するときに設定したメジャー番号と
デバイス名の情報が必要となる。
この2つの情報を引数として、つぎのようにunregister_chrdev関数を実行
すれば、登録を削除することができる。
 
     unregister_chrdev(dio_major, DRIVERNAME)
 | 
情報システム実験(9)のクリーンナップルーチン(dio_cleanup)に、
これを書き加えると、次のようになる。
 
rmmod関数を実行してデバイスドライバの登録を削除後、カーネルに登録
された情報が削除されているかどうかは、/proc/deveicesファイルを見
ることで確認できる。