デバイスファイルとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > デバイスファイルの意味・解説 

デバイスファイル

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2023/12/18 00:15 UTC 版)

デバイスファイル: Device file)またはスペシャルファイル: Special file)とは、ファイルシステム上であたかも通常のファイルのような形で提示されるデバイスドライバインタフェースである。これにより、ソフトウェア入出力システムコールを通してデバイスドライバを使うことができ、作業が単純化される。

デバイスファイルは、プリンターなどの周辺機器への単純なインタフェースを提供する。また、ディスクパーティションなどの機器上の特定のリソースへのアクセスにも使える。さらに、/dev/null擬似乱数生成器といった特定の機器とは対応しないリソースへのアクセスにも使われる。

UNIX・Unix系

UNIXUnix系オペレーティングシステム (OS) では、デバイスファイルをデバイスノード: device node)とも呼び、キャラクタデバイスブロックデバイスに分類される。それらは、OSとハードウェアによるデータの入出力方法に違いがある。また、名前付きパイプのように通常のファイルではない(スペシャルな)オブジェクトと区別するため、デバイススペシャルファイルと呼ぶこともある。

実装

定義上、デバイスノードはOSのカーネルが既に確保済みのリソースに対応している。UNIXではそれらリソースを「メジャー番号」と「マイナー番号」で識別し、それら番号がノードの構造体の一部として格納されている。番号の割り当て方は、OSやプラットフォームによって異なる。一般にメジャー番号がデバイスドライバの識別に使われ、マイナー番号がそのドライバが制御する個々の機器の識別に使われる。この場合、システムはドライバに対して引数としてマイナー番号を渡す。

システムはデバイスノードが通常ファイルであるかのように扱い、標準的なシステムコールを使ってアクセスする。

キャラクタデバイス

キャラクタデバイス(またはキャラクタスペシャルファイル)は、システムが一文字ずつデータを転送する機器に対応している。キャラクタデバイスは、テレタイプ端末モデム仮想コンソール擬似端末などのようなバイトストリーム型機器を扱い、データのランダムアクセスはサポートしていないのが普通である。

多くの実装では、キャラクタデバイスはバッファを使わない入出力を行う。システムは文字単位に逐次的に読み書きを行う。

ブロックデバイス

ブロックデバイス(またはブロックスペシャルファイル)は、ブロック形式でデータをやり取りする機器に対応している。ブロックデバイスは、ハードディスクドライブ/CD-ROMドライブ/メモリ領域などのアドレス指定可能な機器を扱う。

ブロックデバイスはランダムアクセスシークが可能なことが多く、一般にバッファを使った入出力を行う。OSが個々の入出力用に1つのブロックを保持するためのバッファを確保する。プログラムがデータの読み書きを要求すると、システムは適当なバッファを用意してそのデータを保持する。バッファが一杯になると適切な操作(データ転送)が行われ、システムがそのバッファをクリアする。

擬似デバイス

UNIX・Unix系OSでは、実際の周辺機器とは対応しないデバイスノードもある。そのようなデバイスノードを「擬似デバイス(: pseudo-device)」と呼ぶ。これらはOSが制御する各種機能を提供する。以下に、よくある擬似デバイスを列挙する。

/dev/null
あらゆる入力を受け付け、それを捨てる。出力はしない。ビットバケツの一種。
/dev/zero
ASCIIのNUL文字(値がゼロ)の列を生成する。
/dev/random
可変長の擬似乱数文字列を生成する(ブロック英語版する))。
/dev/urandom
可変長の擬似乱数文字列を生成する(ブロックしない)。

慣習的な命名

以下に列挙したのは、Linuxディストリビューションでよく使われるデバイスノード名のプレフィックスである[1]

多くの場合、これらプレフィックスの後に特定の機器に対応した固有の番号が付与される。ハードディスクドライブでは、ドライブを特定する番号の後にパーティションを特定する番号が付与される。従って例えば、/dev/sda3はディスク上の領域であり、/dev/pts/14に対応してネットワーク経由の端末セッションがある。

バージョン7以降のFedoraなどのLinuxディストリビューションでは、sdをあらゆるディスクドライブに使っている (libATA)[2]

MS-DOS・Windows

MS-DOSはUNIXからスペシャルファイルの概念を導入したが、これをデバイスファイルと呼んだ[3]。ごく初期のMS-DOSはディレクトリ階層をサポートしていなかったため、デバイスファイルを通常のファイルと区別するためにそれらの名称を予約語にしていた。つまり、特定のファイル名がデバイスファイル用に予約されており、同じ名前のファイルやディレクトリを新たに作成できないようになっていた。予約された名称は、CP/MPIPコマンドでの「スペシャルファイル」と互換になるよう選ばれている。これはWindowsにも引き継がれ、予約デバイス名とも呼ばれる。

主なものを下の表に示すが、ほかにも予約デバイス名は存在する[4] [5]

ファイル名 用途
CON コンソール
PRN プリンター
AUX 補助(予備)デバイス
COM0 COM1 COM2 COM3 COM4 COM5 COM6 COM7 COM8 COM9 シリアルポート
LPT1 LPT2 PRN パラレルポート
NUL ビットバケツ

予約語に拡張子を付与しても同様に予約されたデバイスを意味する。つまり、"nul.doc" や "con.htm" はファイル名ではなく、それぞれNULとCONデバイスと解釈される。また、"C:\WINDOWS\CON" などのようにパス名の体を成していても予約デバイス名として扱われる。さらに、MSCDEXとCD-ROMドライバ間で使用するデバイス名も同様に予約デバイス名として扱われる。

CONCON問題

CONCON問題は、Windows 9x系の予約名の扱いのバグを突いて、対象のコンピュータをフリーズさせる攻撃を行えるという問題である。例えば、"C:\CON\CON" へのリンクのあるウェブページを用意して、それをクリックさせるなどという風に悪用された。これは、9x系に予約デバイス名が複数回現れるパスを指定してファイルを開こうとするとシステムがフリーズしてしまうバグが存在したためである[6]

関連項目

脚注

  1. ^ 比較のため http://www.yiluda.net/manual/linux/rute/node21.html を参照。2007年9月4日閲覧[リンク切れ]
  2. ^ Installation Notes”. Fedora 7 Release Notes. Red Hat, Inc. (2007年5月31日). 2022年3月7日閲覧。
  3. ^ MSDOShandbook 1984, p. 30,57.
  4. ^ マイクロソフト (2003年5月12日). “MS-DOS Device Driver Names Cannot be Used as File Names” (英語). Microsoftサポート技術情報. 2008年11月30日閲覧。[リンク切れ]
  5. ^ マイクロソフト (2021年9月23日). “FAT、HPFS、NTFSファイルシステムについて”. Microsoft のテクニカル ドキュメント. 2022年3月6日閲覧。
  6. ^ マイクロソフト (2007年7月18日). “パスに複数の MS-DOS デバイス名が含まれていると致命的な例外 0E が発生する”. Microsoftサポート技術情報. 2008年11月30日閲覧。[リンク切れ]

参考文献

  • 発行者 塚本慶一郎『標準MS-DOSハンドブック』株式会社アスキー、1984年7月10日。ISBN 4-87148-742-3 

デバイスファイル

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2021/02/17 03:53 UTC 版)

UNIXファイルタイプ」の記事における「デバイスファイル」の解説

詳細は「デバイスファイル」を参照 UNIXでは、ほとんど全ての物が「ファイル」として処理されファイルシステム内のいずれかの場所に格納されている。ハードディスクドライブなどのハードウェアデバイスも同様である。例外はネットワークデバイスであり、これはファイルシステム表示されず、個別処理される。 デバイスファイルは、デバイスアクセス権適用しファイル対す操作適切なデバイスドライバ指示するために使用されるUNIXは、キャラクタデバイスブロックデバイス区別する。その区別おおよそ次の通りである。 キャラクタデバイスは、入力のシリアルストリームのみを提供するか、出力のシリアルストリームを受け入れる。 ブロックデバイスは、ランダムにアクセスが可能である。 例えば、ディスクパーティションには、パーティション上のブロックへのバッファなしランダムアクセス提供するキャラクタデバイスと、パーティション上のブロックへのバッファ付きランダムアクセス提供するブロックデバイス両方がある。 キャラクタデバイスは、モード文字列の1文字目にcが表示されるブロックデバイスは、モード文字列の1文字目にbが表示されるcrw------- ... /dev/nullbrw-rw---- ... /dev/sda

※この「デバイスファイル」の解説は、「UNIXファイルタイプ」の解説の一部です。
「デバイスファイル」を含む「UNIXファイルタイプ」の記事については、「UNIXファイルタイプ」の概要を参照ください。

ウィキペディア小見出し辞書の「デバイスファイル」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ


英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「デバイスファイル」の関連用語

デバイスファイルのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



デバイスファイルのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのデバイスファイル (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのUNIXファイルタイプ (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS