ファイルシステムとは?

ファイル‐システム【file system】


ファイルシステム

【英】file system

ファイルシステムとは、OS提供するリソース管理機能の一つで、補助記憶装置対する低レベルアクセスラップし、よりアプリケーションに近いアクセスインターフェースを提供する仕組みのことである。

ファイルシステムは、アプリケーションから見てデータをより容易に扱えるようなインターフェース提供する。ファイルシステムを用いることによって、デバイスレベルでは1と0の並びしかないデジタルデータ並びを、ファイルディレクトリのような論理的構造としてアプリケーション側に見せることができる。また、このような論理的構造に対して統一的アクセス方法提供する例えば、階層的なディレクトリの中で、特定位置を示す方法データファイルという固まりとして扱う方法ファイルオープンopen)、リードread)、ライトwrite)、クローズclose)といった標準的手順で扱う方法物理的装置とは独立したレベル提供するのである

記憶装置は、それぞれ固有の仕組み持ちデバイスドライバレベルでは、個々装置固有の制御をしなければならない一方アプリケーションから見ると、それぞれの記憶装置がどんなものであるかを気にせずに、単に論理的データ透過的に保存したり、読み込んだりしたい。ここでファイルシステムを用いれば、どのような記憶装置に対しても、全く同じ作法やり取りすることができるようになる。こういう意味で、ファイルシステムは、データ入出力手段抽象化しているといえる。ファイルシステムが存在することで、アプリケーションの側は、個々装置物理的特性気にせずに、より汎用的構造で、仕組み実現することができるようになる。

Windows系OSでは、FATFAT32NTFSといったファイルシステムが用いられてきた。MacintoshOSでは、HFSが、Linux系OSでは、ext2ext3などが用いられてきた。これらは、いずれも記憶装置としては、磁気ディスク装置HDD)を想定しており、セクタよばれる物理レベルデータ固まりを、如何に効率よく、かつ、使いやすくするかという工夫をしている。なお、CD-ROMDVD-ROMなどの光ディスク系のメディアでは、ISO 9660などの規格規定されたCD-ROMファイルシステムが利用されている。磁気ディスクが、書き込みが可能なメディアであるのに対して光ディスクは、書き込み不能で、読み出しのみができるため、ディレクトリ構造表現は、書き換わることが無い前提で、高速利用できる仕組みになっているまた、OS内のデータ基本単位データベース考えるデータベースファイルシステムや、ネットワーク上でファイル共有などができる分散ファイルシステムなどもある。

ソフトウェアのほかの用語一覧
データベース:  xBase  XMLデータベース
ファイルとフォルダ:  ファイル  ファイルシステム  ファイル形式  フォルダ  ファイル名

ファイルシステム関数

導入


要件

この拡張モジュールを構築するには外部ライブラリを必要としませんが、 Linux 上で LFS (ラージファイル) をサポートする PHP を希望する場合は、 最新の glibc を入手し、次のコンパイラフラグ -D_LARGEFILE_SOURCE -D_FILE_OFFSET_BITS=64 を付けて PHP をコンパイルする必要があります。

インストール手順

PHP コアに含まれるため、 追加のインストール無しで使用できます。

実行時設定

php.ini の設定により動作が変化します。
表 90. ファイルシステムおよびストリーム設定オプション
名前デフォルト変更の可否変更履歴
allow_url_fopen"1"PHP_INI_SYSTEMPHP_INI_ALL は PHP <= 4.3.4 で利用可能です。 PHP 4.0.4 から利用可能です。
allow_url_include"0"PHP_INI_SYSTEMPHP 5.2.0 から利用可能です。
user_agentNULLPHP_INI_ALLPHP 4.3.0 から利用可能です。
default_socket_timeout"60"PHP_INI_ALLPHP 4.3.0 から利用可能です。
from""PHP_INI_ALL 
auto_detect_line_endings"0"PHP_INI_ALLPHP 4.3.0 から利用可能です。


以下に設定ディレクティブに関する 簡単な説明を示します。
allow_url_fopen boolean
このオプションにより、URL対応のfopenラッパーが使用可能となり、 ファイルのようにURLオブジェクトをアクセスできるようになります。 デフォルトのラッパーが、ftpまたはhttpプロトコルを用いて リモートファイルに アクセスするために提供されています。zlibのようないくつかの拡張モジュールが ラッパーを追加することがあります。
注意: この設定はセキュリティ上の理由で php.ini 中でのみ設定可能です。
注意: このオプションは、バージョン4.0.3のリリース直後に追加されました。 4.0.3を含む以前のバージョンでは、この機能は、設定スイッチ --disable-url-fopen-wrapperを使用することに より、コンパイル時にのみ無効にすることができます。

警告
PHP 4.3より前のWindows版では、以下の関数は、リモートファイルの アクセスをサポートしません。: include(), include_once(), require(), require_once(), イメージ 拡張モジュールの imagecreatefromXXX

allow_url_include boolean
このオプションを指定すると include()include_once()require()require_once() で URL 対応の fopen ラッパーが使用できるようになります。
注意: この設定を使用するには、allow_url_fopen が on でないといけません。
user_agent string
送信する PHP 用のユーザエージェントを定義します。
default_socket_timeout integer
ソケットベースのストリームのデフォルトの有効時間(単位は秒)を定義します。
注意: この設定は、PHP 4.3で追加されました。
from string
匿名ftp用パスワード(自分のemailアドレス)を定義します。
auto_detect_line_endings boolean
onにした場合、PHPは fgets() および file() により読み込まれたデータを評価し、UNIX、MS-DOS、Machintoshの行末 表記を使用しているかどうかを調べます。
これにより、PHPがMacintoshシステムと相互運用できるようになりますが、 デフォルトはOffとなっています。これは、最初の行の行末表記を検出 する際にごく僅かな性能劣化があるためと、UNIXシステムのもとで復改 文字を項目セパレータとして使用している人が従来のバージョンと互換 性がない動作であると感じる可能性があるためです。
注意: この設定オプションは、PHP 4.3で追加されました。

リソース型


定義済み定数

以下の定数が定義されています。 この関数の拡張モジュールが PHP 組み込みでコンパイルされているか、 実行時に動的にロードされている場合のみ使用可能です。
GLOB_BRACE (integer)
GLOB_ONLYDIR (integer)
GLOB_MARK (integer)
GLOB_NOSORT (integer)
GLOB_NOCHECK (integer)
GLOB_NOESCAPE (integer)
PATHINFO_DIRNAME (integer)
PATHINFO_BASENAME (integer)
PATHINFO_EXTENSION (integer)
PATHINFO_FILENAME (integer)
PHP 5.2.0 以降。
FILE_USE_INCLUDE_PATH (integer)
FILE_APPEND (integer)
FILE_IGNORE_NEW_LINES (integer)
FILE_SKIP_EMPTY_LINES (integer)

参考

関連する関数については、ディレクトリ およびプログラム実行の節を 参照してください。
リモートファイルとして使用することができる種々のURLラッパーの一覧 と説明については、付録 M. サポートされるプロトコル/ラッパーも参照してください。

目次

basename — パス中のファイル名の部分を返す
chgrp — ファイルのグループを変更する
chmod — ファイルのモードを変更する
chown — ファイルの所有者を変更する
clearstatcache — ファイルのステータスのキャッシュをクリアする
copy — ファイルをコピーする
deleteunlink()unset() を参照してください
dirname — パス中のディレクトリ名の部分を返す
disk_free_space — ディレクトリの利用可能なスペースを返す
disk_total_space — ディレクトリの全体サイズを返す
diskfreespacedisk_free_space() のエイリアス
fclose — オープンされたファイルポインタをクローズする
feof — ファイルポインタがファイル終端に達しているかどうか調べる
fflush — 出力をファイルにフラッシュする
fgetc — ファイルポインタから1文字取り出す
fgetcsv — ファイルポインタから行を取得し、CSVフィールドを処理する
fgets — ファイルポインタから 1 行取得する
fgetss — ファイルポインタから1行取り出し、HTMLタグを取り除く
file_exists — ファイルまたはディレクトリが存在するかどうか調べる
file_get_contents — ファイルの内容を全て文字列に読み込む
file_put_contents — 文字列をファイルに書き込む
file — ファイル全体を読み込んで配列に格納する
fileatime — ファイルの最終アクセス時刻を取得する
filectime — ファイルのinode変更時刻を取得する
filegroup — ファイルのグループを取得する
fileinode — ファイルのinodeを取得する
filemtime — ファイルの更新時刻を取得する
fileowner — ファイルの所有者を取得する
fileperms — ファイルの許可属性を取得する
filesize — ファイルのサイズを取得する
filetype — ファイルタイプを取得する
flock — 汎用のファイルロックを行う
fnmatch — ファイル名がパターンにマッチするか調べる
fopen — ファイルまたはURLをオープンする
fpassthru — ファイルポインタ上に残っているすべてのデータを出力する
fputcsv — 行を CSV 形式にフォーマットし、ファイルポインタに書き込む
fputsfwrite() のエイリアス
fread — バイナリ・モードでファイルを読み込む
fscanf — フォーマットに基づきファイルからの入力を処理する
fseek — ファイルポインタを移動する
fstat — オープンしたファイルポインタからファイルに関する情報を得ます
ftell — ファイルポインタから読み書きの位置を取得する
ftruncate — ファイルを指定した長さに丸める
fwrite — バイナリ・モードによるファイル書き込み
glob — パターンにマッチするパス名を探す
is_dir — ファイルがディレクトリかどうかを調べる
is_executable — ファイルが実行可能かどうかを調べる
is_file — 通常ファイルかどうかを調べる
is_link — ファイルがシンボリックリンクかどうかを調べる
is_readable — ファイルが読み込み可能かどうかを知る
is_uploaded_file — HTTP POSTによりアップロードされたファイルかどうかを調べる
is_writable — ファイルが書き込み可能かどうかを調べる
is_writeableis_writable() のエイリアス
lchgrp — シンボリックリンクのグループ所有権を変更する
lchown — シンボリックリンクの所有者を変更する
link — ハードリンクを作成する
linkinfo — リンクに関する情報を取得する
lstat — ファイルまたはシンボリックリンクに関する情報を与えます
mkdir — ディレクトリを作る
move_uploaded_file — 新しい位置にアップロードされたファイルを移動する
parse_ini_file — 設定ファイルをパースする
pathinfo — ファイルパスに関する情報を返す
pclose — プロセスのファイルポインタをクローズする
popen — プロセスへのファイルポインタをオープンする
readfile — ファイルを出力する
readlink — シンボリックリンク先を返す
realpath — 絶対パス名を返す
rename — ファイルをリネームする
rewind — ファイルポインタの位置を先頭に戻す
rmdir — ディレクトリを削除する
set_file_bufferstream_set_write_buffer() のエイリアス
stat — ファイルに関する情報を取得する
symlink — シンボリックリンクを作成する
tempnam — ユニークなファイル名を生成する
tmpfile — テンポラリファイルを作成する
touch — ファイルの最終アクセス時刻および最終更新日をセットする
umask — 現在のumaskを変更する
unlink — ファイルを削除する

ファイルシステム

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

ファイルシステムは、コンピュータリソースを操作するための、オペレーティングシステム (OS) が持つ機能の一つ。ファイルとは、主に補助記憶装置に格納されたデータを指すが、デバイスプロセス、カーネル内の情報といったものもファイルとして提供するファイルシステムもある。




  1. ^ "file operations can be performed on a logical file-system which may be local, structured data store or some remote service" fsspec
  2. ^ IBMは1990年AIX 3.1 リリース時に JFS を導入。これは現在 JFS1 と呼ばれている。新たなJFS(JFS2などと呼ばれる)は Linux移植版がベースで、1999年OS/2 Warp Server for e-Business で最初に出荷された。
  3. ^ マイクロソフトWindows 95 OSR2で最初に FAT32 を導入し、Windows 98で本格的に採用した。
  4. ^ a b ディスク上のディレクトリ構造自体に制限がある。特にInstallable File Systemのドライバはファイル名とディレクトリ名に制限がある。また、OSがファイルシステムの種類に寄らず全体に制限を加えていることもある。MS-DOS, Microsoft Windows, OS/2は全ファイルシステムについて \ / : ? * " > < | NUL といった文字をファイル名やディレクトリ名に使えない。UNIXおよびLinuxは全ファイルシステムについて / NUL という文字をファイル名やディレクトリ名に使えない。
  5. ^ a b c d ブロックサイズやクラスタサイズが可変なファイルシステムについては、ブロックサイズの最大と最小のときのボリュームサイズの範囲を示す。例えば、FATではディスク上のクラスタサイズが512B~128KBである。しかし、Installable File Systemの一部のドライバやOSによっては 32KBより大きいクラスタサイズをサポートしていない。
  6. ^ a b c d e f g h i j k l m n o p これらのファイルシステムでは、"." と ".." というディレクトリエントリ名は特別な意味を持つ。そのような名前のディレクトリエントリは禁じられておらず、むしろ普通のディレクトリエントリ名として存在している。しかし、これらはある意味で固定のエントリで固定の値を持ち、ディレクトリ生成時に自動的に生成される。これらのエントリがないディレクトリは壊れていると見なされる。
  7. ^ a b c d e f g h i j k l m n o p q r ディスク上の構造としては制限はないが、一部のInstallable File SystemのドライバやOSによっては制限している場合がある。MS-DOSはFAT12やFAT16に関して260バイト以上のパス名をサポートしていない。Windows NTはNTFSに関して32767文字 (UTF-16) 以上のパス名をサポートしていない。POSIXの規定では「NULL終端で1024バイトを保証すること」とされているが、上限についての記述はない。
  8. ^ a b c d e f FAT12、FAT16、FAT32の実装が、長いファイル名 (LFN)をサポートしているかどうかに依存する。OS/2, MS-DOS, Windows 95, Windows 98 のDOSモードやLinuxの msdosドライバではLFNをサポートしていないので、ファイル名は8.3形式に制限される(制限を越えるとベース名も拡張子も空白で埋められる)。また、NUL(ディレクトリ終端マーカー)を含むこともできず、文字5(削除済みファイルマーカーとして使われる文字229の代用)も含むことができない。短い名前では小文字も含まれない。
  9. ^ FAT32のパーティションをこのサイズで作成して使用することは可能だが、ソフトウェアによっては 32GiB以上のFAT32用パーティションを作成できない。有名なのは、Windows XPのインストールプログラムである(これはNTFSの利用を促すための意図的な制限であると思われる)。これを回避するには Windows Meの緊急用ブートディスクのFDISKを使う必要がある。
  10. ^ Mac OSはHFS+のボリューム上のファイル名を扱う関数群を2種類用意している。ひとつは完全なUnicodeの名前を返し、もうひとつは従来互換を保つために31バイトまでの名前を返すものである。
  11. ^ HFS+は任意のUnicode文字を許すためにエスケープシーケンスをサポートしている。古いソフトウェアからはそのエスケープシーケンスがそのまま見える。
  12. ^ HFS+のボリュームサイズはほぼ無制限であるが、Mac OSには以下のような制限がある。Mac OS 8, 9:2TiB。Mac OS X 10、10.1:2TiB。Mac OS X 10.2:8TiB。Mac OS X 10.3、10.4:16TiB。ファイルサイズの最大はこれより若干小さい(Mac OS 8では2GB)。フォルダ内の最大ファイル数(フォルダ数)は以下の通り。 Mac OS 8, 9:2^15 (32767)。macOS:2^31。しかし、通常最大ボリュームサイズをブロックサイズで割った値で制限される。
  13. ^ a b これはディスク上の構造による制限である。Windows NT用NTFSドライバはボリュームサイズを256TiB、ファイルサイズを16TiB に制限している。
  14. ^ ReiserFSの理論上の最大ファイルサイズは1EiBだが、[1]によれば、「ページキャッシュの制限により、32ビット int のアーキテクチャでは 8TiB に制限される」
  15. ^ この制限は新しい版では大きくなるかもしれない。
  16. ^ a b Linux 2.4 では XFS の最大ファイルサイズは 64TiB だが、Linux 2.4 自体が最大 2TiB までしかサポートしていない。IRIXにはこの制限はない。
  17. ^ a b 一部のInstallable File SystemドライバやOSによってはFAT12やFAT16で拡張ファイル属性をサポートしていない。OS/2とWindows NTはFAT12/FAT16向けに拡張ファイル属性をサポートしている("EA DATA. SF"擬似ファイルを使ってそのためにアロケートされたクラスタを予約している)。他のOSのファイルシステムドライバではサポートしていない。
  18. ^ f-nodeにはユーザー識別子用フィールドがあるが、OS/2 Warp Server 以外では使われていない。
  19. ^ NTFSのアクセス制御リストは単純なPOSIX式ファイルパーミッションで表せることは表現できるが、Services for UNIXCygwin を使わないとPOSIXのインターフェイスがサポートされない。
  20. ^ a b c d アクセス制御リストとMACラベルは拡張属性として実装される。
  21. ^ FreeBSD 4.XなどのOSでは拡張属性をparallel backing fileを使って実装している。
  22. ^ a b c d e f g h 一部のInstallable File SystemドライバやOSによっては、これらのファイルシステムについて拡張属性、ACL、セキュリティラベルをサポートしていない。2.6.x以前のLinuxはこれらをサポートしていないか、パッチが必要である。
  23. ^ NTFS 5.0 以降では、junctions を生成でき、(個々のファイルではなく)ディレクトリ全体をローカルに管理するドライブのいずれかのディレクトリツリーにマップすることができる。これは reparse points と呼ばれる機能で実現されており、ファイル名解析部分を柔軟に拡張可能となっている。
  24. ^ NTFS自体は大文字/小文字を区別するが、Windowsサブシステムは互換性を維持するため大文字/小文字の差異しかないファイル名を生成できないようになっている。新しいファイルを書き込みのためにオープンしたとき、大文字/小文字の差異を無視したときに同じ名前となるファイルが既に存在すると、その既存のファイルの内容が消されて書き込みに使われてしまう。Services for UNIXを使うと、完全な大文字/小文字の区別が行われる。
  25. ^ メタデータのみのジャーナリングは、Max OS X v10.2.2 の HFS+ドライバから導入された。デフォルト値でジャーナリングが有効となったのはMac OS X v10.3以降である。
  26. ^ 一般に大文字/小文字を区別していると思われがちであるが、HFS+は基本的には区別していない。単に大文字/小文字の違いを保護しているだけである。Mac OS X v10.3のコマンド newfs_hfs -s で大文字/小文字を区別するファイルシステムを作成できる。HFSXという別のファイルシステムは、HFS+を改良したもので、こちらは大文字/小文字を区別する。Technical Note TN1150: HFS Plus Volume FormatではHFS+とHFSXについて技術的詳細を論じている。
  27. ^ Mac OS X v10.4とMac OS X v10.3はファイル変更ログを提供している(ファイルシステムソフトウェアの機能であり、ボリューム形式自体がサポートしているわけではない)。fsloggerを参照されたい。
  28. ^ NetBSDの"Soft dependencies" (softdep)およびFreeBSDの"soft updates"はジャーナリングせずにメタデータの一貫性を常に保つ機能がある。
  29. ^ Linux 2.6.12 以降。
  30. ^ デフォルトでは無効になっている。
  31. ^ デフォルトでは無効になっている。
  32. ^ ログ構造化ファイルシステムであり,メタデータだけでなく全てのファイルデータの更新がインクリメンタルに記録される。
  33. ^ ReiserFSの完全なブロック・ジャーナリングは Linux 2.6.8 で追加された。
  34. ^ 一部のInstall File SystemドライバやOSによってはJFSでの大文字/小文字区別をサポートしていない。OS/2はサポートしておらず、Linux はマウント時のオプションで指定できる。
  35. ^ "aliases"と呼ばれている。
  36. ^ a b UDFはログ構造ファイルシステムであり、ファイルシステム全体がジャーナルであるかのように振舞う。
  37. ^ VxFSはオプションとして「ストレージ・チェックポイント」と呼ばれる機能を提供している。これは高機能のファイルシステム・スナップショット機能である。
  38. ^ a b ZFSはトランザクション・ファイルシステムであり、コピー・オン・ライト方式であるため、ジャーナルを使わなくてもディスク上の状態は常に正常である。しかし、同期書き込みを指定されたときなどの性能向上のため、ログを実装している。
  39. ^ a b ここで言う可変ブロックサイズとは、ファイル毎にブロックサイズを変更できるシステムである。エクステントと似ているが実装方針が微妙に異なる。UFS2の現状の実装はリードオンリーのみである。
  40. ^ a b c DOS 6 の DoubleSpace や Windows 95およびWindows 98の DriveSpace は FAT におけるデータ圧縮機能だが、マイクロソフトが既にサポートしていない。
  41. ^ a b c 8:1以外の「ブロック:フラグメント」のサイズ比もサポートしているが、8:1が最も一般的で多くの実装で推奨されている。
  42. ^ 1997年から利用可能なe2comprというパッチのセットでext2でのブロック単位のデータ圧縮が可能となる。しかし、これがLinuxカーネルのメインラインにマージされたことはない。
  43. ^ a b フラグメントは計画されていたが、ext2とext3に実装されたことはない。
  44. ^ Reiser4はデータ圧縮を実装しているが、そのためのVFS APIが提供されていない。
  45. ^ "extents"モードで実現。
  46. ^ UDFの実装に依存する。
  47. ^ ZFSの論理ブロックベースの圧縮を有効にすると、ファイルの最後尾ブロックに対してTail-Packingのように働く。
  48. ^ コピーオンライトであるため、ZFSは全ての書き込みについて遅延アロケーションを行う。





固有名詞の分類


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

辞書ショートカット

すべての辞書の索引

「ファイルシステム」の関連用語

ファイルシステムのお隣キーワード
検索ランキング

   

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



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

  
デジタル大辞泉デジタル大辞泉
(C)Shogakukan Inc.
株式会社 小学館
OSS iPediaOSS iPedia
Copyright © Information-technology Promotion Agency, Japan. All rights reserved 2006-2021
IT用語辞典バイナリIT用語辞典バイナリ
Copyright © 2005-2021 Weblio 辞書 IT用語辞典バイナリさくいん。 この記事は、IT用語辞典バイナリファイルシステムの記事を利用しております。
PHP Documentation GroupPHP Documentation Group
Copyright © 1997 - 2021 by the PHP Documentation Group.
ウィキペディアウィキペディア
All text is available under the terms of the GNU Free Documentation License.
この記事は、ウィキペディアのファイルシステム (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。 Weblio辞書に掲載されているウィキペディアの記事も、全てGNU Free Documentation Licenseの元に提供されております。

©2021 GRAS Group, Inc.RSS