Linux体験談
H/W知識 †
BISO †
- BIOS(Basic Input Output System)PCに接続されているデバイスを制御するプログラム。
- コンピュータ内臓時計や日付の設定
- ディスクドライブや各種デバイスの設定
- 起動するドライブの順序
- IRQの割当
- 各種デバイスの使用/不使用
リソース設定 †
- I/Oアドレス
- CPUはメモリ上のデータしか操作する事が出来ない。従ってCPUがデバイスを直接コントロールする仕組みは提供されていない。CPUからデバイス操作をするにはメモリ上の特定領域に対してデータを読み書きする必要がある。このメモリ領域をI/Oアドレスと呼ぶ。
- IRQ(Interrupt ReQuest)
- IRQはCPUが実行しているプログラムを中断させ、他のプログラムを実行させる『割り込み』を行う時に利用される。割り込み処理はH/Wからの要求に応じて行われるが、割り込み処理を行なったデバイスを特定する為に各デバイスに割り当てられる番号がIRQである。IRQは一般的に0~15までの16種類が用意されている。
- DMA(Direct Memory Access)
- 一般的にデバイス操作するにはCPUを利用して制御を行う必要がある。しかしデバイスにAccessする度にCPUに処理を実行させるのは効率が良く無い。そこでCPUを介す事なくAccessする仕組みがDMAである。DMAの利用することでCPUを介さずに直接デバイスとシステムメモリ間のデータ転送を行う事が出来る。
procファイルシステム †
- /procディレクトリは懐疑的なファイルシステムでありLinuxカーネルがメモリ上に保持している情報にAccessする仕組みを提供している。/proc以下は通常のファイルではなく、HDD上には存在しない。/procディレクトリを参照することでIRQやI/Oアドレス、DMA、プロセスなどの情報が確認できる。
CPU | /proc/cpuinfo |
Memory | /proc/meminfo |
PCI Device | /proc/pci |
IRQ | /proc/interrupts |
I/O Device | /proc/ioports |
DMA | /proc/dma |
デバイスの情報確認 †
- computerに接続されているデバイスのH/W情報や設定を確認するには、lsdevコマンドやlspciコマンドを利用する。これらのコマンドの/proc以下のファイルから得られる情報を整理して表示するとよい。
ネットワークカード †
- NOC(Network Interface Card)はPCをネットワークに物理的に接続するデバイスである。
ネットワークカード、LANカードなどとも呼ばれる。
最近のPCIバスのNICの多くはLinuxに対応している為、H/W的に設定を要することは特にない。IRQの競合が発生した場合はlspciコマンドや/proc/interruptを参照してIRQを調べBIOSセットアップからIRQを手動で設定するなどの処置が必要である。
SCSIデバイス †
- SCSIの規格:SCSI(Small Computer System Interface)はPC本体と周辺機器を接続する為の規格でありHDD,MO,Scanner等の接続に用いられる。転送速度は5MB/S~160MB/Sの製品も出てきている。
SCSIは8bitのもの(SCSI-1、SCSI-2、Fast SCSI、Ultra SCSI)と16bitのもの(Wide SCSI、Ultra Wide SCSI、Ultra2 Wide SCSI)がある。コネクタの形状は様々なので注意を要する。
SCSデバイスの接続 †
- 8bitのSCSIは8つのデバイスがしようできる、うち一つはSCSI Hostアダプター。
- 16bitのSCSIは16のデバイスがしようできる、うち一つはSCSI Hostアダプター。
SCSI機器はデイジーチェーン接続をする。SCSIホストアダプタの反対側の終端にはターミネータ(終端装置)が必要。多くのSCSI機器はターミネータを内臓していて手動でON/OFFの切替が可能。
- SCSIディスクデバイスは/dev/sda、/dev/sdb・・・・・・となる。テープデバイスだと/dev/st0、/dev/st1・・・となる。
SCSIホストアダプタの多くはPCのBIOSとは別に独自のSCSI BIOSを持っていて下記のような設定が出来る。
- default boot devaiceの設定
- SCSI コントローラのSCSI ID
- 転送速度
- オンボード ターミネータのON/OFF
Modem †
- モデムをはじめ通信デバイスはシリアルポートによって接続される事が多い。シリアルポートのデバイスファイルは。/dev/ttyS0、/dev/ttyS1・・・・・・となる。シリアルポートの情報を確認するには、setserialコマンドを利用する。
- モデムの利用
モデムはシリアルデバイスであり、外付けのものはシリアルポートにつなぐ。内臓モデムはボード上にシリアルポートを搭載しておりシリアルポートのデバイスファイルを通じてAccessできる。
内臓モデムの多くはWindows上でS/W的にモデムの動作する『WinModem』と呼ばれるものでありLinuxでは動作しないことがある。
モデムで利用した通信はPPP(Point to Point Protocol)を用いた通信を行うのが一般的である。PPPでの接続はpppdにって行われる。
USBデバイス †
USBとは周辺機器を接続する為のInterfaceでホットプラグやPlag&playに対応している。
コネクタの形状も統一されていて取り扱い易い。Linuxではカーネル2.4以降で正式にUSBが実装された。
ホットプラグは/etc/hotplug以下に配置されたスクリプトによって現実される。
USBドライバ †
USBドライバは二層の構成になっている。
1つ目はUSB全体を制御するホストドライバ(usbcore)とUSBコントローラドライブからなる。USBコントローラにはUHCIとOHCIの2種類があり、それぞれでカーネルモジュールを使い分ける。どちらのUSBコントローラが使われているかはdmesgコマンドやlspciコマンドなどで確認する。UHCIの場合はusb-uchi.o、OHCIの場合はusb-ochi.oとなる。
2つ目はUSBデバイスごとのデバイスドライバ。USBのデバイスドライブは汎用的なクラスドライバとベンダが提供するベンダードライバに分かれる。
USBデバイスがクラスドライバに対応していればベンダードライバが無くても動作させる事が出来る。
- 主なUSBデバイスクラス
USBデバイスクラス | 対応するUSBデバイス |
Human Interface Devices | キーボード、マウス等 |
Mass Strage Device | フロッピードライブ等 |
ACM Communication Device | モデム、TA等 |
Printing Device | プリンタ等 |
Audio Device | 音源モジュール、スピーカ等 |