質問: デバイスファイルの考え方 unix系osに初めて仕事に入ったのですが 上題の考えがうまく理解できません。 その1: 例えば、/dev/dsk/c0t0d0s0 と /dev/rdsk/c0t3d0s5 と2件表記 された場合はディスクが2本ある・・という解釈になるのでしょうか?。 あと「/var」などに領域を割り当てする場合、「/dev/dsk/c0t0d0s0」など 物理的なパスを指定するのでしょうか?。 その2: 「スライシング(スライス・ナンバー)」とはどういった意味なの でしょうか?。「パーティション」との違いが良くわかりません。。 すみませんが一部でも結構ですので ご教授願います。
回答: 簡単な方からいくと, #1 で既に答えられてますがここでいう「スライス」は pc でいう「パーティション」と基本的に同じです. 1つのディスクをいくつかの領域に分けたもの. で1の方: 一般的な unix では, デバイスファイルに「ブロックデバイス」と「キャラクタデバイス」の 2種類があります. ブロックデバイスは「ブロック単位にアクセスするものでランダムアクセス可能 (基本的に os はキャッシュしない)」, キャラクタデバイスは「キャラクタ (=バイト) 単位にアクセスするものでシーケンシャルアクセスのみ可能 (os がキャッシュすることもある)」なものです. ファイルシステムとしてマウントする場合にはランダムアクセスしないといけないのでブロックデバイスのみとなります. またテープデバイスだとシーケンシャルアクセスされるので自動的にキャラクタデバイスとなります. これらのデバイスファイルがどこにあるかというのは os によりますが, solaris の場合は /dev/dsk 以下がブロックデバイス, /dev/rdsk 以下がキャラクタデバイスです. で c0t0d0s0 だと「コントローラ0 (c0) のターゲット0 (t0) にあるディスク0 (d0) のスライス0 (s0)」とかいう意味だったような記憶があります. scsi の場合には「ターゲット」が scsi id に対応 (ただし歴史的事情でちょっと順番が違ったかもしれない) し, 「ディスク」は lun に対応します. なので c?t?d? までが同じなら同じデバイス, どれかでも違えば別のデバイスとなります. 今の場合 /dev/dsk/c0t0d0s0 と /dev/rdsk/c0t3d0s5 とでは同じコントローラですが異なるターゲットなので別のディスク (デバイス) となります. /dev/dsk/c0t0d0s0 と /dev/rdsk/c0t0d0s0 だと全く同じもの (同じデバイスの同じスライス) ですがブロックデバイスとキャラクタデバイスという違いがありますし /dev/dsk/c0t0d0s0 と /dev/dsk/c0t0d0s3 だと同じディスクの異なるスライスということになります.