Windowsのファイルシステムとシェル

デスクトップ構造 - (新) 檜山正幸のキマイラ飼育記 メモ編 の続き。

ファイルシステムの基本はツリー構造だが、次のリンクがある。

  1. ハードリンク
  2. シンボリックリンク
  3. ジャンクション

次の記事を見よ。

GUIシェル〈エクスプローラー〉とコマンドシェル〈powershell.exe〉のレベルで、さらにリンクもどきが作られる。マップとアグリゲーションと呼ぼう。

マップは名前をファイルシステム上の実体またはアプリケーションに対応付ける。アグリゲーション〈ユニオン〉は、2つ以上のフォルダを一緒にする。ここで、フォルダは項目の集まりのことで、必ずしもディレクトリとは限らない。

ディレクトリとリンクはファイルシステムが作るもので、フォルダと項目はシェルが作るもの。物理ドライブ/物理ディレクトリに対応するフォルダもあれば、そうでないフォルダ〈仮想フォルダ〉もある。

フォルダそのものや、フォルダ内の項目が、ディレクトリやファイルにマップされているとき、そのマップはシェルが管理する。マップの変更は原則的にコントロールパネルで行う。Powershellからも出来るだろう。

ファイルシステムはリンクを除けばツリー構造で、サイクリックなリンクは避けたい(できてしまうが)。一方のシェルが作るフォルダシステムは、サイクルを許す有向グラフ構造で、デスクトップが起点〈基点〉になる。ファイルシステムの一部が、物理的実体にマップされている。今のUIは、物理的実体を隠して、シェルが作るフォルダシステムを見せるようになっている。フォルダシステムは迷宮のようで、個人的には好きになれない、ファイルシステムのツリーが好き。

Powershellが作る仮想ドライブは、get-psdrive で見られる。Alias, Function, Variable はPowershellの内部を見せている。Env, HKCU, HKLM WSMan はOS機能を見せている。それと通常の物理ドライブ〈ストレージ〉。このPSドライブ機能は面白いし、便利。