SourceForge.JP: Open Source Software

LoginCreate AccountAdd BookmarkHelp

OpenSource Downloads

(7,965) Cabos
(3,068) 7-Zip
(2,483) Tera Term
(2,009) CrystalDiskInfo
(1,669) HandBrake Japanese Language Version
(1,252) CrystalDiskMark
(921) ffdshow
(669) Tween
(667) Boookends
10  (569) Amateras
11  (563) ギコナビ
12  (502) MergeDoc
13  (436) VirtualDubMod-jp
14  (422) えこでこツール
15  (375) SMPlayer
More >>

最近ブックマークされた記事

HotPlug

2003年05月02日 05:52
  • スラッシュドットにタレコむ
  • あとで読む
ユーザにとってデバイスドライバの存在は、常に意識する必要は無いが、システム内部では重要な役割を持っている。今回はユーザの使い勝手を向上するために、今後不可欠と思われるカーネルのHotPlugサポートの現状と今後を取り上げて解説する。

HotPlugとsysfs

前回はsysfsを取り上げて、カーネル2.5で行われる新しいドライバ・モデルの導入に関して簡単に解説した。カーネルのHotPlugサポートは、システムの使い勝手を向上させる機構であるが、新しいドライバ・モデルの設計と実装を担当しているPatrick Mochelは、HotPlugをsysfsドライバ・モデルで統合して、一体化したサポートを実現させた。即ちカーネル2.5/2.6では、sysfsに適応した全てのバス、およびドライバ・クラスでHotPlugが利用できるようになっている。

HotPlugとPnP

HotPlugのサポートは、すでにカーネル2.4でPlug and Play(PnP)機構の一部を実現するために導入されている。ここでPnPという用語は意味が広いので簡単に解説する。

PnPは元々IntelとMicrosoftが推奨したISAバスのリソース(IRQ、IOポート、IOメモリ領域、DMAチャネル)を、ハードウェアとOSで自動的に割り当てる仕組みであった。その後Windows95で、発見したデバイス用ドライバの自動検索とインストール機構が、USBやIEE1394(FireWire)等のWDMでは、活線挿抜(Hot Plug)に対応したドライバの自動ロードとアンロードがPnPとして実現されている。さらにはMicrosoftによってHardwareとは独立したネットワーク・プロトコルが、uPnP(Universal Plug and Play)として提案されている。

機能概要

LinuxカーネルのHotPlug実装の(当初の)目的は、ユーザにシステム管理を意識させないUSB、CardBus、network、IEEE1394等のドライバ・モジュールの自動ロード、アンロードのサポートであった。対象となるUSB等のデバイスのプラグインを検出すると、カーネルは/proc/sys/kernel/hotplugに記述してあるアプリケーション(helperプログラム)を呼び出し、実際のドライバのロードや設定処理はこのhelperプログラム(/sbin/hotplug)が行うようになっている。/sbin/hotplugは、「Linux Hotplugging」というカーネル開発とは別のプロジェクトとして開発されている。(helperプログラムとしては、Linux Hotpluggingのほかに、Vine等で採用されていてusbmgrの後継にあたるmurasakiもある。)

カーネル2.4では、主に次のサブシステムのデバイスがサポートされている。

  • IBM Channel Devices
  • IEEE 1394
  • Networking
  • PCI (Card Bus)
  • USB

カーネル2.5では、上記に加えて以下のサブシステムのデバイスがサポートされているが、さらにカーネル開発ではサポート・デバイスの拡大と、すでに実現しているCPU(s390/s390x、x86、ia64)、メモリ(ia64)のほかIDE DISK等へのHot Swap機能の拡張としての実装も検討されている。

  • Docking Stations
  • Input
  • PCI (Extended)
  • SCSI

このようにLinuxカーネル開発において、ゆるやかだが着実に進みつつある新しいドライバ・モデルの導入は、様々なデバイスやバスとのインタフェイスを抽象化、単純化する事により利便性と応用範囲を広げるものである。しかし、ここ最近のハードウェアの技術革新が進んでいるため、今後2年以内に実用になると予想される新しいバスの種類も多い。残念ながらHotPlugのカーネル実装作業は、次期開発用カーネルである2.7でも終らないだろうと予想されている。

udev

2003年4月11日に、Linux USBサブシステムのメンテナとして有名なGregKH(Greg Kroah-Hartman)から、sysfsドライバ・モデルに合致する動的なデバイス名の管理機構を、Linux Hotpluggingに対して提供するツール(udev 0.1)とパッチがLinux-kernel MLとLinux-Hotplug MLに投稿され、カーネル開発者の注目を得た。このudevが次期リリースにどのように取り入れられるかはまだわからないが、MLでも評価されているので今後に注目したい。

新しいドライバ・モデルの導入(その2)-(日高亜友)
2007年07月01日 19:05 更新