teratail header banner
teratail header banner
質問するログイン新規登録

回答編集履歴

1

脱字…

2018/05/26 03:37

投稿

raccy
raccy

スコア21768

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