O_DIRECT
ファイルを読み取るときにオペレーティングシステムのキャッシュをバイパスするためにopen()
。ウィキペディア二つの間に違いはないそうですね。しかし、HD(またはより具体的にはパーティション)をrawデバイスとして定義すると、ファイルシステムは必要ありませんか? (存在するこのスタックオーバーフロー投稿コメントによると、ファイルシステムはすでに事前フォーマットされているため、これは不可能だと言われています。 )
また、ファイルシステムの問題を取り除き、RAWデバイスを定義して使用するための良いギルドを共有できる人がいる場合は、非常に感謝します。
答え1
いいえ。生のデバイスにアクセスするためにファイルシステムは必要ありません。さて、仮想ファイルシステムを使用していると言えますが、デバイス/dev
名だけを公開すると、I / Oはそのデバイスに移動します。
ただし、キャッシュ/バッファリングにはいくつかのレベルがあります。ファイルシステムはそのうちの1つにすぎず、システムは独自のセットを持ち、ディスクハードウェアも独自のセットを持ちます。復讐が欲しいならもっと近いデバイスの場合は、追加のインターフェイスにアクセスする必要があります。
dd
などの既存のツールを使用する方が良いかもしれませんhdparm
。「dd を使用したディスク I/O パフォーマンスのテスト」または「ディスク速度テスト(読み取り/書き込み):LinuxでのHDD、SSDパフォーマンス」。