Linuxのファイルシステム
- ファイルシステムのコレクションは、組織の合理的かつ効果的なファイルやディレクトリの階層です
- すべてがファイルでのUnix / Linuxの基本理念の一つであります
- 通常のファイル、ディレクトリ、キャラクタデバイス、ブロックデバイス、ソケットのUnix / Linuxの中などでは、内のファイルであります
- ファイルの異なる種類の、その同じAPIによって運営されています
- UNIX / Linuxは、異なるファイルシステムは、EXT 2、EXT 3 EXT 4、XFS、のbtrfsなどと共存させることができます
- 統一されたファイルI / Oシステムを通じて任意のファイルシステムAPIにすることができ、そのファイルシステムフォーマットの特定に関係なく動作させるために呼び出します
- ファイル操作は、ファイルシステムにまたがって実行することができます
LinuxシステムとWindowsシステムの違い:
Linuxファイルシステムアーキテクチャ:
- 仮想ファイルシステムは抽象ファイルシステムのLinuxカーネル内部実装におけるソフトウェア層は、異なるファイルシステムの共存は、外部均一なアプリケーションファイルシステムインタフェースを提供することを可能にされて
-
VFSは、すべてのファイルシステムは、基本的な、抽象インタフェースとデータ構造をサポートして定義され、異なるファイルシステムをサポートできるようにするために
-
で、ファイル、ディレクトリ、およびその他の概念として、実際のファイルシステムの実装定義の抽象VFSインタフェースとデータ構造自体、
VFSの一貫性のある統一されたインタフェースとデータ構造の正式な定義を維持するには、実装の詳細を隠します
-
スーパーブロック スーパーブロックファイルシステムのための制御情報を格納するためのデータ構造を。記述ファイルシステムの
状態、ファイルシステムタイプ、サイズ、ブロック数、iノードの数と特定のディスクセクタに格納されているような。 -
索引节点 inode 用于存储文件的元数据 文件的基本信息 的一个数据结构 包
含诸如文件的大小 、 拥有者 、 创建时间 、 磁盘位置等信息 。 -
目录项 dentry 目录被用来容纳文件 目录可以包含子目录 层层嵌套以形成 文件路径 。
-
文件对象 file 一组在逻辑上具有完整意义的信息项的系列 。
VFS 中的数据结构 - 超级块用来描述整个文件系统的信息 。 每个具体的文件系统都有各自的超级块
-
VFS 超级块是各种具体文件系统在安装时建立的 并在卸载时被自动删除 其数据结构是 super_block
- 所有超级块对象以双向环形链表的形式链接在一起
- 文件系统处理文件所需要的所有信息都放在称为索引节点的数据结构 inode 中
-
具体文件系统的索引节点是存放在磁盘上的 是一种静态结构, 要使用它, 必须调入内存,
填写 VFS 的索引节点,因此,也称 VFS 索引节点是动态节点 - 文件名可以随时更改, 但是索引节点对文件是唯一的并且随文件的存在而存在
- 每个 inode 节点的大小 一般是 128 字节或 256 字节
Linux 文件系统目录结构: