文件系统的基础知识:
文件类型:
1.常规文件:计算机用户和操作系统用于存放数据、程序等信息的文件。一般分为文本文件和二进制文件。他们通常存储在外存储设备上。
2.目录文件:Linux文件系统将文件索引结点号和文件名同时保存在目录中,所以,目录文件就是将文件的名称和它的索引结点号结合在一起的一张表。
3.设备文件:系统中的各种I/O设备,存放在/dev目录中,通过mknod命令可以创建一个设备文件。通常设备文件分为字设备文件,比如键盘和鼠标等;还有块设备文件,比如硬盘和光驱等。
4.管道文件:主要用于在进程之间传递数据。某进程数据写入管道的一端,另一进程从管道另一端读取数据。通过系统调用pipe可以创建一个管道。管道文件在使用上和普通文件没有什么太大的区别,只不过这种文件不像普通文件那样存储与磁盘上,而是存储在内存中。
5.链接文件:又称符号链接文件,它提供了共享文件的一种方法,通过ln命令可以创建一个符号链接。
Linux文件系统结构:
/bin 二进制可执行命令,比如我们一般常用的命令ls,cat等。
/dev 设备特殊文件
/root 系统管理员的主目录
/etc 系统管理和配置文件
/home 用户主目录的基点,比如用户是hxu,主目录就是/home/hxu.
/lib 动态链接共享库.
/sbin 系统管理命令,这里存放的是系统管理员的使用的管理程序。
/tmp 共用的临时文件存储点
/mnt 用户临时安装其他文件系统的目录。
/proc 虚拟的目录,不占用磁盘空间,是系统内存的映射。可直接访问这个目录来获取系统信息。
/var 某些大文件的溢出区,例如各种服务的日志文件。
/usr 最庞大的目录,要用到的应用程序和文件几乎都在这个目录下。
虚拟文件系统:
为了保证Linux的开放性,设计人员必须考虑如何使用Linux除支持Ext2文件系统外,还能支持其他各种不同的文件的文件系统,比如NTFS,VFAT,JFS等。为此VFS就扮演了这样的角色。即支持跨越不同文件系统或存储设备的文件操作。
一个老师的博客中说了这句话我感觉挺形象的:Linux文件系统的魅力在于“成己” 亦“成人”。如果说整个Linux内核相当于一个“国”,那么,VFS 相当于一个“家”,且是一家之长,而各种具体的文件系统相当于“己”,或者说家庭中的一个个子女。在VFS统领的这个大家庭中,各个成员之所以能相互友好共存,在于其所具有共性和个性。
VFS第一词是虚拟,表示这样的文件系统在磁盘并没有对应的存储信息。这个“虚”VFS的信息都来源于“实”的文件系统,也就是说,VFS只管理挂载到系统中的实际文件系统。
VFS中主要管理以下4个主要对象:
(1)超级块对象:描述已安装文件系统。
(2)索引结点对象:描述一个文件。
(3)目录项对象:描述一个目录项,是路径的组成部分。
(4)文件对象:描述由进程打开的文件。
阅读(1791) | 评论(1) | 转发(0) |