• ベストアンサー

モジュール

Linuxを使用していろいろ調べ物をしているとモジュールという言葉がよく出てきます。 このモジュールという言葉の意味がわかりません。 カーネルモジュールとかなんとかモジュールとかあるのですが、イマイチというかぜんぜん理解できません。 googleで”モジュールとは”をキーワードにして検索をしてみるのですがそれらを見ても理解できません。 わかりやすく教えていただけると嬉しいです。 よろしくお願いします。

質問者が選んだベストアンサー

  • ベストアンサー
  • wakap
  • ベストアンサー率14% (13/89)
回答No.1

Linuxの、というより一般的なプログラムの話ですが、 Aの処理をするシステムを作ろうとする場合、その為にいくつかのサブ処理を行うプログラムを作ります。 モジュールというのはこのいくつかのサブ処理を集めたもので、関連する処理などをまとめます。 すごい大雑把にいうなら カレー作る(処理A) →買い物モジュール(野菜買う、肉買う、道具買う...) →調理モジュール(材料切る、煮る、味付けする...) ってかんじでしょうか。よけいわかりにくいかな。。 「オブジェクト指向」について調べるともっとわかりやすいかもしれません

関連するQ&A

  • モジュールんの有効(?)に関する質問

    ディストリビューションはTurbo Linuxでカーネルは2.6です。 モジュールを以下のコマンドでコンパイルでコンパイルしようとした所 make -C ~/linux-2.6.5/linux-2.6.5 M='pwd' modules The present kernel configuration has modules disabled. Type 'make config' and enable loadable module support. Then build a kernel with module support enabled. というエラーメッセージ(?)がでました。 意味としては、「'make config'変更してをモジュールを有効にしてください」 という意味だと思いますが、何処を変更すれば良いのでしょうか

  • LinuxのLANカードモジュールのモジュール名はどうやって調べるのですか?

    LinuxのLANカードモジュールのモジュール名はどうやって調べるのですか? LANカードのカーネルモジュールが読み込まれるように、 /etc/modules.confなどには、 alias eth0 3c59x などと、カーネルモジュールのエイリアスeth0を設定する必要があるかと思います。 この設定における、本来のカーネルモジュール名(上記の例では 3c59x)が何になるのかが わかっている必要がありますが、 このLANカードのモジュール名はどのようにして調べるのでしょうか? これまでの経験から、 e1000 3c59x tulip pcnet32 tg3 などは設定したことがありますが、 なぜモジュール名がそうなるのか、明確な根拠がわかっていません。 新しいLANカードを購入した場合、こうすれば新しいモジュール名がわかる、 という方法があれば教えてください。 個別にそのメーカのWebサイトなどで調べるしか方法はないのでしょうか?

  • 自作モジュールを組み込む

    以下に何もしない何もしないカーネルモジュールを組み込みたいのですが、うまくいきません。 以下のソースをコンパイルします。 #define MODULE #include <linux/module.h> #include <linux/kernel.h> int init_module(void) { printk("my module installed\n"); return 0; } void cleanup_module(void) { printk("my module removed\n"); } そして、コンパイル $gcc -c sample.c #insmod sample.o とすると、 insmod: error inserting 'sample.o': -1 Invalid module format と怒られてしまいます。 モジュールフォーマットが無効と言われますが、ソースが間違っているのでしょうか。 カーネルのメッセージを調べると、 $dmesg ... No module found in object と、やっぱり組み込まれていません。 何がいけないのか、御知恵をくださいお願いします。 追記: 自分の環境を以下に記載させていただきます。 Linux localhost.localdomain 2.6.11-1.1369_FC4 #1 Thu Jun 2 22:55:56 EDT 2005 i686 athlon i386 GNU/Linux

  • 画像処理でのカーネルの意味

    質問する場所を間違っていたらすみません. 画像処理でフィルタを使用しようと思っているのですが、 カーネルという言葉の意味をgoogleで検索しても出てこないので教えていただきたいです. よろしくお願いします.

  • CentOSのモジュール追加はどうしたら良いですか

    CentOS4.4のユーザーです。ビデオカメラを繋いでCinelerraでテープの 編集をしたいのですが、Vine LinuxやFedora Coreと違ってこのデストリ ビューションには「dv1394,raw1394,ohci1394,ieee1394」なるIEEE1394 に必要なモジュールが入っていません。 そこで # yum --enablerepo=centosplus update kernel* でカーネルをアップしたらohci1394とieee1394は組み込まれましたが # modprobe dv1394、 # modprobe raw1394とやってもこの二つの モジュールは組み込まれませんでした。 素人でこの辺のモジュールの組込み方が不明ですので教えて下さい。

  • カーネルモジュールでファイル書き込み履歴を出力したい

    以下のことをモジュールで(もしくはカーネルを改変して)実現したいんですがモジュール作成は初めてなので困っています。 ・HDDに書き込み処理が生じた際にそのファイル名(存在するディレクトリも含む)を出力したい。 ・書き込みが生じた日付と時間も出力したい。 現在の考えですと 1. 書き込みの際、/proc/driver/rtcのデータを拾ってprintkで出力 2. printkでファイル名を出力 3. それらをsyslogで拾う 何分モジュール作成、Linux共に初心者ですので見当違いなことを言っているかも知れません。 もう少しスマートな方法やモジュール作成のヒントとなることがありましたらご教示下さい。 以下環境です。 OS : CenOS 5.4 64bit CPU : Athlon64x2 5000 kernel : 2.6.18-164.6.1.el5

  • カーネルの再構築とは?

    カーネルの再構築について調べています。 ネットで検索してみると色々なLinuxディストリビューションでのカーネル再構築方法が結果として出てきますが、そもそもカーネルの再構築とは一体何なのかが自分には分かりません。 デバイスに合わせてカーネルから不要なモジュールを削除する・・など部分的な動作は少し調べましたが、再構築の全体像がまだ見えません。 1:カーネル再構築とは何を行うことか。どのファイルを操作するか。 2:カーネル再構築はなぜ必要か。OSにどのような影響を及ぼすか。 以上を教えて頂けると有り難いです。よろしくお願いします。

  • Perl モジュールのアンインストールの仕方

    ソースからインストールしたPerlモジュールと CPANからインストールしたPerlモジュールの アンインストール方法を探しています。 ■環境 OS:RedHat Linux ES4 Perl:5.8.8 ※perldoc perllocalにインストール履歴が残ります。 インターネットで検索してみますと、Linuxは慣習的に 一度インストールしたものは削除しないように感じます。 自分で、インストールしたファイルをrmコマンドで消していくしかないのでしょうか。

    • ベストアンサー
    • Perl
  • Debian Linux squeeze

    kernel のコンパイルで、USBプリンタはデフォルトでモジュールが組み込まれているのでしょうか? 僕の環境だと、いくら試しても、USBプリンタに印字できません。 カーネル再構築しか、手段はないかと思われるのですが、僕の勘違いでなければ、USBプリンタをカーネル内でサポートしているのでしょうか? ちなみに、 $ uname -a Linux marine 2.6.32-5-686 #1 SMP Wed Jan 12 04:01:41 UTC 2011 i686 GNU/Linux です。 よろしくお願いします。追加モジュールが、カーネルの再構築なしに、できれば、有難いのですが、どうぞ、よろしくお願いします。

  • Friend は標準モジュールじゃ宣言できない?

    Public Sub test1() End Sub とは出来るけど Friend Sub test2() End Sub はできないのでしょうか? Friend Sub test2を標準モジュールに書こうとすると -------------------------------- コンパイルエラー オブジェクト モジュールでのみ有効です。 使用したステートメントまたは構文要素 (たとえば、Implements ステートメント、WithEvents キーワード、イベント シンクなど) は、オブジェクト モジュール以外のコードでは使用できません。 エラーの原因となったステートメントを、オブジェクト モジュール内に記述します。 -------------------------------- となってしまいます。 「オブジェクト モジュール以外のコードでは使用できません。 」=標準モジュールでは使用できないと言う事でしょうか?