UNIXファイルタイプUNIXファイルタイプ(UNIX file types)とは、UNIXが識別するファイルの種別のことであり、POSIXに規定される標準のUNIXファイルタイプは、regular(一般)、directory(ディレクトリ)、symbolic link(シンボリックリンク)、FIFO special(名前付きパイプ)、block special(ブロックデバイスファイル)、character special(キャラクタデバイスファイル)、socket(ソケット)の7種類である[1]。OSの実装によっては、これよりも多くのファイルタイプが使用できる(SolarisのDoorsなど)。ファイルタイプは 通常(regular)のファイルの場合、UNIXのシステムではファイルの内部構造を解釈しないため、その構造と解釈はそれを使用するソフトウェアに完全に依存する。ただし、 モード文字列
drwxr-xr-x 2 root root 0 Jan 1 1970 home
従って、上記の例ではファイルモード文字列は 内部的には、 実装の例GNU coreutilsバージョンの FreeBSDはよりシンプルなアプローチを使用するh[4]が、使用できるファイルタイプの数は少なくなる。 一般ファイル一般ファイルは、モード文字列の1文字目に $ ls -l /etc/passwd -rw-r--r-- ... /etc/passwd ディレクトリディレクトリは、最も一般的な特殊ファイルである。ディレクトリファイルのレイアウトは、使用するファイルシステムによって定義される。UNIXではネイティブと非ネイティブの両方のファイルシステムが利用できるため、ディレクトリファイルレイアウトは1つではない。 ディレクトリは、モード文字列の1文字目に $ ls -dl / drwxr-xr-x 26 root root 4096 Sep 22 09:29 / $ stat / File: "/" Size: 4096 Blocks: 8 IO Block: 4096 directory Device: 802h/2050d Inode: 128 Links: 26 Access: (0755/drwxr-xr-x) Uid: ( 0/ root) Gid: ( 0/ root) ... シンボリックリンクシンボリックリンクは他のファイルへの参照を示す特殊ファイルである。シンボリックリンクは、参照先ファイルのパスのテキスト表現として保存される。パスは相対パスであっても良く、また、参照先のファイルが必ずしも存在するとは限らない。 シンボリックリンクは、モード文字列の1文字目に lrwxrwxrwx ... termcap -> /usr/share/misc/termcap lrwxrwxrwx ... S03xinetd -> ../init.d/xinetd 名前付きパイプ(FIFO)UNIXの強みの1つにプロセス間通信があり、その機能の1つにパイプがある。これは、あるプロセスの出力を別のプロセスの入力とする機能である。同じユーザによって開始された同じ親プロセス空間に両方のプロセスが存在する場合は問題ないが、プロセスが異なるユーザ名と権限で実行されている場合などには名前付きパイプ(FIFOともいう)を使用する必要がある。 名前付きパイプは、ファイルシステムのどこにでも存在することができる特殊ファイルである。 名前付きパイプはは、モード文字列の1文字目に prw-rw---- ... mypipe ソケットソケット(UNIXドメインソケット)は、プロセス間通信に使用される特別ファイルであり、2つのプロセス間の通信を可能にする。プロセスはUNIXドメインソケットを介して、データの送信だけでなく、 一方向のデータフローのみしか使用できない名前付きパイプとは異なり、ソケットは完全に双方向通信である。 名前付きパイプは、モード文字列の1文字目に srwxrwxrwx /tmp/.X11-unix/X0 デバイスファイル→詳細は「デバイスファイル」を参照
UNIXでは、ほとんど全ての物が「ファイル」として処理され、ファイルシステム内のいずれかの場所に格納されている。ハードディスクドライブなどのハードウェアデバイスも同様である。例外はネットワークデバイスであり、これはファイルシステムに表示されず、個別に処理される。 デバイスファイルは、デバイスにアクセス権を適用し、ファイルに対する操作を適切なデバイスドライバに指示するために使用される。 UNIXは、キャラクタデバイスとブロックデバイスを区別する。その区別はおおよそ次の通りである。
例えば、ディスクパーティションには、パーティション上のブロックへのバッファなしランダムアクセスを提供するキャラクタデバイスと、パーティション上のブロックへのバッファ付きランダムアクセスを提供するブロックデバイスの両方がある。 キャラクタデバイスは、モード文字列の1文字目に crw------- ... /dev/null brw-rw---- ... /dev/sda Doors→詳細は「en:Doors (computing)」を参照
Doorsは、クライアントとサーバ間のプロセス間通信用の特別ファイルであり、現在Solarisでのみ実装されている。 Doorsは、モード文字列の1文字目に Dr--r--r-- ... name_service_door 脚注
関連項目 |
Portal di Ensiklopedia Dunia