文件系统分析总结
一、 Linux文件分类
二、 文件存储结构
1、Linux正统的文件系统(如ext2、ext3)一个文件由目录项、inode和数据块组成,具体如下:
目录项:包括文件名和inode节点号;
Inode :又称文件索引节点,包含文件的属性(如读写属性等,及指向数据块的指针);
数据块:文件的具体内容。
2、文件存储结构
1)文件存储总体大致结构
2)目录项结构
3)Inode结构
以上只反映大体的结构,linux文件系统本身在不断发展。但是以上概念基本是不变的。
三、 Linux常见目录
四、 Linux磁盘分区和挂载
整个存储设备的使用过程为:首先执行诸如mk2fs或mkfs.xxx这样的命令对存储设备进行格式化,将其格式化成某种类型的文件系统,然后用mount命令将该存设备挂载到某个具体的目录下,然后对该目录下的文件进行“增、删、改、查”就可以实现对该存储设备上数据的操作。
1.Linux的磁盘分区
Linux发行版本之间的差别很少,差别主要表现在系统管理的特色工具以及软件包管理方式的不同。目录结构基本上都是一样的。Windows的文件结构是多个并列的树状结构,最顶部的是不同的磁盘(分区),如:C,D,E,F等。而Linux的文件结构是单个的树状结构.可以用tree进行展示。每次安装系统的时候我们都会进行分区,Linux下磁盘分区和目录的关系如下:
–任何一个分区都必须挂载到某个目录上。
–目录是逻辑上的区分。分区是物理上的区分。
–磁盘Linux分区都必须挂载到目录树中的某个具体的目录上才能进行读写操作。
–根目录是所有Linux的文件和目录所在的地方,需要挂载上一个磁盘分区。
2.Linux文件系统的挂载
1)挂载的定义
当要使用某个设备时,例如要读取硬盘中的一个格式化好的分区、光盘或软件等设备时,必须先把这些设备对应到某个目录上,而这个目录就称为“挂载点(mountpoint)”,这样才可以读取这些设备,而这些对应的动作就是“挂载”。 将物理分区细节屏蔽掉。用户只有统一的逻辑概念
2)NFS简介
一种非常好的文件共享方式,其通过mount来实现,底层是通过NFS通信协议实现。
五、 VFS简介
1. 定义
VFS是Linux和UNIX文件系统中采用的一种技术机制,旨在一个操作系统中支持多个不同类型的文件系统。VFS是操作系统内核中这样一组数据结构与子程序的集合,它位于操作系统系统调用界面与具体类型文件系统之间,负责完成以下一些工作:
1)记录操作系统中可以支持和已经安装有哪些文件系统类型;
2)将相关系统调用转换为对具体类型文件系统的调用;
3)负责不同类型文件系统间的协同工作(例如跨FS复制);
4)实现对不同类型文件系统的动态装卸和可扩充性等。
2. 功能
VFS主要向用户、应用程序、和操作系统其他部件提供了一个通用的、统一的、标准的、抽象的、虚拟的系统调用接口界面(所以称Virtual),其对以上应用程序等掩盖不同类型文件系统的差异和细节,也为以上应用程序等提供了对具体文件系统类型的程序独立性和透明性。例如,当用户程序AP1在两次运行中分别读EXT2、NTFS文件,都使用同样的read(…)系统调用函数,程序AP1不必改变。
3. 实现原理简介
1)支持多种文件系统需要解决的问题
a.格式不同
b.卷管理信息内容与格式不同
c.目录项内容与格式不同
d.文件描述信息内容与格式不同
e.相应操作子程序也就不同(打开文件,读写文件等),所以同样的读文件系统调用read(…),对不同类型的文件系统(例如EXT或NTFS), 需调用相应不同的操作子程序
2)文件系统结构框图
VFS最关键的作用,就在于提供了对上述不同操作子程序的分支跳转支持机制。
六、Linux文件具体操作详解
1. 文件的访问权限及安全性
2. 文件的具体操作
这其中包括文件的安装,拆卸,打开,关闭,和文件的读写。
未完待续……