Linux的文件系统
?Linux的文件系统1. 基础概念1.?在LINUX系统中有一个重要的概念:一切都是文件。Linux是重写UNIX而来,在UNIX系统中,把一切资源都看作是文件,包括硬件设备。 2. Linux的文件系统因为Linux的版本不一样而不一样,会向下兼容,而且一个Linux发行版不会只有一个文件系统。 2. 整体结构如下1. 存储硬件:常见的硬盘有PATA,SATA和AHCI等, 2.?在Linux系统中,对不同硬盘所提供的驱动模块一般都存放在内核目录树drivers/ata中,而对于一般通用的硬盘驱动,也许会直接被编译到内核中, ? ? 而不会以模块的方式出现,可以通过查看/boot/config-xxx.xxx文件来确认。 3.?General Block Device Layer? 通用设备操作接口 ? 不同的硬盘驱动,会提供不同的IO接口,内核认为这种杂乱的接口,不利于管理,需要把这些接口抽象一下,形成一个统一的对外接口,这样,不管你是什么硬盘,什么驱动,对外而言,它们所提供的IO接口没什么区别,都一视同仁的被看作块设备来处理。所以,如果在一层做的任何修改,将会直接影响到所有文件系统,不管是ext3,ext4还是其它文件系统,只要在这一层次做了某种修改,对它们都会产生影响。 4. 文件系统? ?File System 目前Linux的支持的文件系统由好多,大多Linux发行版本默认使用的文件系统一般是ext4,另外,新一代的btrfs也呼之欲出,不管什么样的文件系统,都是由一系列的mkfs.xxx命令来创建。
5. Virtual File System 虚拟文件系统 文件系统那么多,那不同的文件系统的操作也不一致,所以需要一个统一的接口来对文件系统操作, 而不是直接操作文件系统。VFS就把这些不同的文件系统做一个抽象,提供统一的API访问接口,这样,用户空间就不用关心不同文件系统中不一样的API了。VFS所提供的这些统一的API,再经过System Call包装一下,用户空间就可以经过SCI的系统调用来操作不同的文件系统。 VFS所提供的常用API有:? mount(), umount() …? open(),close() …? mkdir() … (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |