回答編集履歴
1
脱字…
answer
CHANGED
@@ -8,7 +8,7 @@
|
|
8
8
|
|
9
9
|
まず、WindowsとLinuxではファイルシステムの考え方が**全く異なります**。Cygwinなどは無理矢理Windows上でLinuxっぽく動作させていましたが、かなり制限がある方法でした。WSLの目的は、通常のLinuxをWindows上で動かすことですので、無理矢理解釈する程度ではうまくいきません。そこで、WSL側でシステムコールをするときに使われるVFSに対して、通常のLinuxファイルシステムを提供するVolFsを用意しました(他に、DrvFs(後述)やTmpFs、ProcFs等があるようです)。
|
10
10
|
|
11
|
-
VolFsは通常のLinux用ファイルシステム、いってみればext4やBtrfsで見られるようなファイルシステムを提供します。これらはNTFSにはない機能、モード(NTFSのACLと)、inode、所有グループ、POSXIなシンボリックリンク、POSIXな名前付きパイプ、":"や"?"等が含まれるファイル名、大文字小文字の完全な区別等々が含まれます。こうすることで、通常のLinuxと同じように処理をすることができます。
|
11
|
+
VolFsは通常のLinux用ファイルシステム、いってみればext4やBtrfsで見られるようなファイルシステムを提供します。これらはNTFSにはない機能、モード(NTFSのACLと異なる形式)、inode、所有グループ、POSXIなシンボリックリンク、POSIXな名前付きパイプ、":"や"?"等が含まれるファイル名、大文字小文字の完全な区別等々が含まれます。こうすることで、通常のLinuxと同じように処理をすることができます。
|
12
12
|
|
13
13
|
といっても、VolFs用にディスクのパーティションを区切ってフォーマットするとか、仮想ディスクのような物を用意するとかはしませんでした。そのようにした場合、容量が固定化されたり、無駄な空き領域が出来たり、二段階アクセスにより遅くなったりと問題が出るからです。そこで、VolFsはNTFS上にある領域をそのまま**バックエンド**として使うことにしました。ファイルデータ自体はそのまま置くことができますし、使えない文字はエスケープして別名にするなどで対応します。そして、モードや所有グループなどはNTFSの拡張ファイル属性(EA、Extended file attribute, xattr)に書き込むようにしたのです。
|
14
14
|
|