2 .\" This man page is a part of util-linux package
4 .\" Japanese Version Copyright (c) 2000 NAKANO Takeo all rights reserved.
5 .\" Translated Sun May 14 2000 by NAKANO Takeo <nakano@@apm.seikei.ac.jp>
6 .\" Updated & Modified Wed May 5 17:00:32 JST 2004
7 .\" by Yuichi SATO <ysato444@yahoo.co.jp>
9 .TH RAW 8 "Aug 1999" "Version 0.1"
11 raw \- Linux raw キャラクタデバイスをバインドする
14 .I /dev/raw/raw<N> <major> <minor>
17 .I /dev/raw/raw<N> /dev/<blockdev>
27 は Linux raw キャラクタデバイスを
28 ブロックデバイスにバインドするために用いられる。
30 またバインドする時にデバイスドライバがアクセス可能でなくてもかまわない
31 (つまりオンデマンドでロードされるカーネルモジュールであってもかまわない)。
34 の利用法には 2 つのモードがある。一つは raw デバイスのバインドを
35 設定する動作であり、もう一つは存在しているバインドに対する問合わせをする
36 動作である。 raw デバイスの設定をするときは、
38 はファイルシステム中に存在している raw デバイスのノードのデバイス名である。
41 番号で示しても良いし、存在しているブロックデバイスファイルのパス名
47 オプションによって問合わせを行うことができる。
48 この際には、問合わせる raw デバイスのファイル名を指定しても良いし、
50 オプションを用いればバインド済みの全ての raw デバイスが対象となる。
52 major と minor を 0 に指定することにより、アンバインドすることができる。
54 いったん raw デバイスをブロックデバイスにバインドすると、
55 その raw デバイスはバインド先のブロックデバイスと同じように
56 オープンしたり read/write できる。しかし raw デバイスの動作は
57 ブロックデバイスと全く同じではない。特に違う点としては、
59 カーネルのブロックバッファキャッシュを全く用いない。
60 全ての I/O は、その I/O を行ったプロセスのアドレス空間に対して
61 直に行われる。もし下層にあるブロックデバイスドライバが
62 DMA をサポートしていると、データコピーを全く行わなくても
65 raw I/O では、プロセスのアドレス空間が割り付けられた物理メモリに
66 直接的なハードウェアアクセスを行うので、例外的な制限がいくつか存在する。
67 全ての I/O はメモリやディスク上で正しくアラインされていなければならない。
68 すなわちディスク上のセクタ先頭から始まり、セクタ長の整数倍で、
69 かつ仮想メモリ上のデータバッファもセクタ長の整数倍でなければならない。
70 ほとんどのデバイスでは、セクタのサイズは 512 バイトである。
82 raw デバイスすべてに対して問合わせを行う。
89 コマンドは、現在のところバッファを正しくアラインしない。
90 したがって raw デバイスには用いることができない。
92 raw I/O デバイスは、 Linux ブロックデバイスのバッファキャッシュとの
93 キャッシュの整合性を管理しない。バッファキャッシュに既に存在するデータを
94 raw I/O を用いて上書きすると、そのバッファキャッシュの指す記憶装置の
97 質問した人によって、回答はバグであったり仕様であったりするだろう!
99 Stephen Tweedie (sct@redhat.com)