ルートディレクトリ
ルートディレクトリ (英語: root directory) とは、コンピュータファイルシステムにおいて、ファイル階層における最初または最上位のディレクトリのことである。ルートディレクトリは、全ての枝の開始点である木の幹に例えることができる。ルートファイルシステムは、ルートディレクトリが位置しているのと同じディスクパーティションに含まれるファイルシステムである。ルートファイルシステムは、システムのブート時にマウントされる他の全てのファイルシステムの頂点にあるファイルシステムである。
メタファー
[編集]物質的なファイルキャビネットの例を利用するため、ファイルキャビネット内の個々の引き出しをファイルシステムやシステムプロンプトに含まれるサブディレクトリの最高位階層として表現した場合、ファイルキャビネットがある部屋をルートディレクトリとして表現できる。つまり、他のディレクトリはルートディレクトリの中に含めることができるが、少なくともそのファイルシステムにおいてはルートディレクトリは他のどのディレクトリの中にも含めることができない。ほとんどのオペレーティングシステムではファイルを、ルートディレクトリにあるサブディレクトリに配置するように、ルートディレクトリに配置できる。人はこれを部屋の中の至る所に、あるいは部屋の中にある任意のファイルキャビネットの中にペーパーファイルを置くこととして心に思い描くだろう。
複数ルートディレクトリ
[編集]Unixはこの木構造の本質を完全に抽象化し、UNIXやUnix系システム内では/
記号はルートディレクトリを意味する。ルートディレクトリは慣例として/
で表現されるが、そのディレクトリ見出し自体は名前を持たない、つまりルートディレクトリの名前は最初のディレクトリ区切り文字 (/
) の前にある「空文字列」の部分である。マウントされたファイルシステムを含む全てのファイルシステムの見出しがこのルート(根)の「枝」である。
DOS、OS/2、そしてMicrosoft Windowsでは、各パーティションに(固有のパーティションCに対してはC:\
と分類される)ドライブレターが割り当てられ、パーティションを超えた共通のルートディレクトリは存在しない。DOS、OS/2、そしてWindowsは、パーティションを別のドライブのディレクトリ内にマウント可能とする、さらに抽象的な階層構造をサポートするが、これはまれにしか見られない。これはDOSではJOIN
コマンドを用いることで、最初にDOSに追加されて以来ずっと可能であり、同様にして全てのWindowsバージョンでもできる。文脈によっては、全てのマウントされたドライブを含むルートディレクトリを参照することも可能である。ただしルートディレクトリはファイルシステムのどこにも存在しないため、ルートディレクトリにファイルを直接含むことはできない。例えば、"file:" URIスキームを用いてローカルファイルにリンクする場合、そのシンタックスは"file:///C:/...
"で表現され形式になる。ここで"file://
"は標準接頭辞であり、三つ目の'/
'がローカルシステムのルートを表す。
Unix系オペレーティングシステムでは、各プロセスはルートディレクトリがどこかを自身で理解している。ほとんどのプロセスにとっては、ルートディレクトリはシステムの実際のルートディレクトリと同じであるが、chrootシステムコールを呼ぶ出すことで変更することができる。これは通常、レガシーライブラリを必要とするソフトウェアを起動したり、時にはソフトウェアのインストールとデバッグを簡単にしたりするため、人目につかない環境を作成するために行われる。chroot内のプロセスはchroot環境から脱け出すことができるため、セキュリティの強化を目的として使うべきではない[1]。FreeBSDは、オペレーティングシステムレベル仮想化を可能にし、ファイル階層のサブセットへ正確にプロセスがアクセス可能なファイルはどれなのかを抑制するためのセキュリティ目的にも役立つ、より強力なjail()システムコールを提供する。
/root
[編集]多くのUNIXには、/rootと名付けられたディレクトリも存在する。紛らわしいが、これは本記事が述べている「ルートディレクトリ」ではなく、(慣例的に「root」として知られる)スーパーユーザーのホームディレクトリである。こちらを明示するために、その発音から「slash root」として示される[2]こともある。[3]
VMS
[編集]VMSオペレーティングシステムにおいて、「ルートディレクトリ」という用語は、UNIXでは「ホームディレクトリ」として呼ばれる、ユーザーファイルの全てが保存されるディレクトリを示すために用いられる。VMSではMS-DOSのディスクごとの「ルートディレクトリ」に相当するものは「マスターファイルディレクトリ」としてみなされ、[000000]として指定される。
関連項目
[編集]脚注
[編集]- ^ “What chroot() is really for”. Lwn.net. 2014年2月12日閲覧。
- ^ root Definition. The Linux Information Project.
- ^ 歴史的には(大昔には)/ を root のホームディレクトリとする慣習だったこともあるが、色々と不都合なため /root に分離された。
外部リンク
[編集]- Root Directory Definition - Linux Information Project (LINFO) による