« 変換アダプタとハーフサイズSSDでお古のXPパソコンを延命せよ! | トップページ | Amazonで「MZK-MP02HD」が投げ売り状態!? »

2012年10月21日 (日)

日経Linuxの力を借りてようやくLinuxカーネルモジュールの仕組みを理解?

このブログには以前(2010/6/27)に記載した「ようやくLinuxで無線LAN接続(11n通信規格)が実現できた!」があるせいか、以下のようなキーワードでお立ち寄り頂く方が毎日ポロポロいらっしゃいます。

Linux

デスクトップLinuxを使うに当たり押さえておきたいスキルの1つとして"USB無線LANアダプターの動作対処"があるかなぁと。

というのもLinuxの場合、カーネルがバージョンアップされると今まで普通に使えていた無線LANが急に使えなくなるなんてことは日常茶飯事のことで、ユーザー自身でドライバーファイルをmakeしたり、改変したりしないと動作してくれないケースが、まだまだ当たり前の世界・・・(-_-;)

(私のデスクトップLinuxの利用レベルは相変わらずなんちゃって程度なので、)
ネットや書籍でも、LinuxにUSB無線LANアダプターをつけて動作させるような記載は見つかるものの、その多くが手順が記載されているだけの断片的な情報で、使っているコマンドの意味するところや、Linuxシステムの仕組みについて平易に記載されているものとなるとかなり限定されそう。

例えば、雑誌「Ubuntu Magazine Japan」の「なんでもUbutnuで使いたい!」コーナーにある無線LANを動作させる記載については、(手順どおりにやれば一応出来るものの、)ベースとなるLinuxシステムの知識が少ない私には、今ひとつピンとこない・・・┐(´д`)┌


「読書の秋」ということですし?以前から理解しようと思っていた、Linuxカーネルがもつ重要な仕組みである「モジュール管理」についての特別企画記事がある以下の書籍をじっくり読んでみることに。

日経 Linux (リナックス) 2012年 07月号 [雑誌] Book
日経 Linux (リナックス) 2012年 07月号 [雑誌]
Amazonで確認する

出版社: 日経BP社
発売日: 2012/06/08

「日経Linux」は、整理された解説と図解が絶妙! (≧∇≦)
(「誰でも分かる」と記載されている通り、私でも理解できました。)

Photo

「モジュール」とは本来、"取り外して使う部品"という意味で(プログラミングやハードウェア機器ではよく目にする言葉だと思います。)Linuxにおいてはカーネルの機能を外部ファイルに分離して必要に応じて動的に読み出して利用できる機能で、USB無線LANアダプターのドライバー制御の理解に大きく関わってきます

Photo

モジュール化(=小分け化)することのメリットは、主として以下のような感じ。

  • カーネルの肥大化を抑えられる。
  • 修正、改変などのメンテナンスが用意。

デメリットとしては、

  • 動的に読み出すのでオーバーヘッドが生じ処理速度が落ちる。
    (ただしモジュールの多くは起動時に読み出す、つまりメモリに展開してしまうので大きく延滞することは少ない。)

デバイスドライバーはモジュール化出来るモノの1つで、その他には以下のものがあるみたい。

Photo_2

今までモヤモヤしていてよく理解していなかった部分をこの特別企画の記事で解消してきれました。12ページに渡った記事は濃密で、中でも自分にとってスパッと頭に入った部分が以下の記載。


モジュールファイルは通常のコマンドファイルやシェルスクリプトのように直接実行できません。モジュールファイルは、insmodコマンドやmodprobeコマンドの実行などを契機に稼動するカーネルのモジュールローダーによってカーネル空間に読み込まれ、そこで初めて稼動できる状態になります。~後略

そのイメージ図。

Photo_2


前略~/etc/modprobe.dティレクトリーに図8のような内容を持つファイルを、末尾に「.conf」という接尾辞(拡張子)を持つファイル名で作成しておけば、モジュールの読み込み時にそのオプションが自動で適用されるようになります。この設定ファイルでは、optionコマンドのほか、表5のようなコマンドも使えます。~後略

Photo_3


前略~PCI/PCI-Express接続機器やUSB接続機器向けモジュールでは、「ダイナミックデバイスID」という仕組みが利用できます。これは、モジュールを読み込んだ際に作成される「/sys/bus/バス名/drivers/モジュール名/new_id」という設定ファイルを使ってモジュールの対応機器を動的に追加する仕組みです。バス名には「pci」 「pci_express」 「usb」などが入ります。~後略


他にもあるのですが、自分にとってはかなり有益な情報だったなぁ。(^^♪
(もっともまだまだ奥が深いLinuxワールドの入り口を行ったり来たりしているレベルだから、これからも「日経Linux」にはお世話なることは多々あるんだろうけど・・・。)

昔はカーネルの違いを対比する例として、

  • Windowsのカーネルは「マイクロカーネル」
  • Linuxのカーネルは「モノリシックカーネル」

と言われていましたのが、それも過去の話。

Windowsはグラフィック処理のレスポンスを向上させるためにカーネルにGUI機能の「Win32K」を含んでいる(APIを経由しないようにしている)し、マルチメディア用の高速APIのDirectXなどを実装するなど年々肥大化が加速してモノリシックカーネルのようになっているのに対して、
LinuxはLinuxで年々肥大化するカーネルに対応するため積極的に?モジュールによる機能分割でマイクロカーネル化してきているから完全に逆転現象が起こっている?

情報の変化にいつまで自分の頭がついていける?と少々心配になることもある反面、この絶え間ない変化があるからこそコンピュータを取り巻く環境は、いつもエキサイティングで飽きがこないって思ったりして・・・(^_^;)

|

« 変換アダプタとハーフサイズSSDでお古のXPパソコンを延命せよ! | トップページ | Amazonで「MZK-MP02HD」が投げ売り状態!? »

コメント

コメントを書く



(ウェブ上には掲載しません)


コメントは記事投稿者が公開するまで表示されません。



« 変換アダプタとハーフサイズSSDでお古のXPパソコンを延命せよ! | トップページ | Amazonで「MZK-MP02HD」が投げ売り状態!? »