Museum

Home

Lab Overview

Retrotechnology Articles

Online Manuals

⇒ sd(4) — NEWS-os 4.2.1R

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

format(8)

SD(4)  —  NEWS-OS Programmer’s Manual

名称

sd − SCSI ディスク デバイスドライバ

形式

/dev/sd[0-1][0-6][a-h]
/dev/rsd[0-1][0-6][a-h]

解説

sd は SCSI ディスクデバイスのドライバです。

リリース 3.2 以前のディスクデバイス関係のデバイスドライバは、 ハードディスク用のデバイスドライバ hd と、 光磁気ディスク (MO) 用のデバイスドライバ od、 および、CD-ROM ドライブ用のデバイスドライバ cd に 分かれていましたが、 リリース 3.3 からは sd デバイスドライバで全て扱えるようになっています。

sd デバイスドライバが認識するディスクデバイスは、次のものです。

Direct access device(デバイスタイプ=0x00)
Read-only Direct-access device(デバイスタイプ=0x05)
Optical memory device(デバイスタイプ=0x07)

標準のデバイス名は “sd” で始まり、 その後に論理ドライブ番号が続き、 さらに パーティションを表す a から h の文字が続きます。

ブロックデバイスとしてディスクデバイスにアクセスした場合、 システムのバッファリング機構を仲介するので、 物理的なディスクデバイスのレコードを気にすることなく読み書きできます。

ディスクデバイスとユーザの読み書きバッファの間でダイレクトな転送を提供する ‘RAW’ インターフェースもあります。 1 回の読み書きの呼び出しで一度入出力操作が行われるので、 RAW 入出力は多くのデータが転送されるときにかなり有効です。 RAW デバイスとしての名前は ‘r’ から始まります。

sd デバイスドライバのコンフィギュレーションファイルの指定方法は、 次のように行います。
 

NWS-800/900/1800/3800 シリーズの場合。
 

controllersdc0at iop0priority n
disksd0at sdc0 drive 0flags 0

 

NWS-1200/1400/1700/3200/3400/3700 シリーズの場合。
 

controllersdc0at hb0priority n
disksd0at sdc0 drive 0flags 0

 
ディスクデバイスの SCSI バス番号は、 priority n のビット 3 で指定します。
ディスクデバイスの SCSI ID 番号は、 priority n のビット 0 〜 2 で指定します。
ディスクデバイスの Logical Unit 番号は、 drive で指定します。
 

NWS-3100/5000/5900 シリーズの場合。
 

controllersdcBat ap0priority 0
disksd0at sdcB drive nflags 0

 
ディスクデバイスの SCSI バス番号は、 sdcB で指定します。(B が SCSI バス番号です)
ディスクデバイスの SCSI ID 番号は、 drive n のビット 0 〜 2 で指定します。
ディスクデバイスの Logical Unit 番号は、 drive n のビット 3 〜 5 で指定します。
 
 
flags には、ドライブ毎の初期設定動作を指定します。
flags のビット 0 は、RAW デバイスの書き込み禁止を制御します。 このビットが 0 の場合、 ブロックデバイスでオープンしているパーティションに対して、 RAW デバイスでの書き込み動作を禁止します。 これにより、ファイルシステムに対して、 RAW デバイスでの誤った書き込みを防ぎます。 このビットが 1 の場合、 ブロックデバイスでオープンしているパーティションに対して、 RAW デバイスでの書き込み動作を可能にします。
flags のビット 1 は、 sd デバイスドライバのエラーステータスを制御します。 このビットが 1 の場合、 sd デバイスドライバの 拡張エラーステータスを buf 構造体の b_error にセットします。
flags のビット 2 は、WRITE AND VERIFY 動作の制御をします。 このビットが 1 の場合、 書き込み動作の後、そのデータが正しく書き込まれたことを ECC によるメディアベリファイで調べます。

ディスクデバイスの先頭セクタにパーティションサイズ等のディスク情報が 書かれている場合は、その情報が使われます。 パーティションサイズ等のディスク情報が書かれていない場合は、 デバイス情報ファイル "/sys/{newsiodev,newsapbus}/sddefs.c" の デバイス情報テーブル sddevinfo に記述されたディスク情報が使われます。 パーティション情報が記述されていない場合、 ディスクデバイスの記憶容量から パーティションの情報を計算して使用します。

デバイス情報ファイルを追加変更することにより、 新しいタイプのデバイスを接続する事も可能ですが、 既存のデバイス情報テーブルに記述されたデータを変更することは避けてください。

デバイス情報テーブルの書式については、 ヘッダーファイル "/sys/{newsiodev,newsapbus}/sdreg.h" を参照してください。

メディアを取り外せるディスクデバイスの場合、 デバイスのオープン時にメディアを回転させます。 また、 デバイスをクローズした後、 一定時間以内に次のオープン動作がなければ、 メディアの回転を停止させます。
また、デバイスをオープンすると、 クローズするまでイジェクト動作が禁止されます。

サポートデバイス

sd デバイスドライバがサポートしているディスクデバイスは、 デバイス情報ファイル "/sys/{newsiodev,newsapbus}/sddefs.c" の デバイス情報テーブル sddevinfo に記述してあります。 また、デバイス情報テーブル sddevinfo に記述を追加することにより、 新しいタイプのディスクデバイスを使用することも可能です。

さらに、 デバイス情報テーブル sddevinfo に記述されていない ディスクデバイスを接続することも可能です。
この場合、エラー訂正方法や、データ先読みキャッシュなどの機能は、 そのディスクデバイスのデフォルトの値が使われます。

IOCTL

sd デバイスドライバは、

/sys/newsiodev/dkio.h
/sys/{newsiodev,newsapbus}/sdreg.h
/sys/newsiodev/scu.h
/sys/newsiodev/odreg.h
/sys/newsiodev/cdctl.h

で示される、いくつかの ioctl を備えています。 OS のバージョンにより、仕様が変更されることがありますので、 十分注意してください。

関連ファイル

/dev/sd[0-1][0-6][a-h]ブロックデバイス

/dev/rsd[0-1][0-6][a-h]RAW デバイス

/sys/{newsiodev,newsapbus}/sd_var.c
ディスクデバイス変数定義ファイル

/sys/{newsiodev,newsapbus}/sddefs.c
ディスクデバイス情報ファイル

/sys/{newsiodev,newsapbus}/sdreg.h
ioctl コマンドと構造体の定義

/sys/newsiodev/dkio.hioctl コマンドと構造体の定義

/sys/newsiodev/scu.hioctl コマンドと構造体の定義

/sys/newsiodev/odreg.h光磁気ディスク関連の ioctl コマンドの定義

/sys/newsiodev/cdctl.hCD-ROM 関連の ioctl コマンドと構造体の定義

関連事項

format(8) メディアのフォーマットコマンド

NEWS-OSRelease 4.2.1R

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026