当前位置: > 华清远见教育科技集团 > 嵌入式学习 > 讲师博文 > linux文件系统一
linux文件系统一
时间:2016-12-14作者:华清远见

今天我们一起来看一下文件系统这块内容;不管在任何一个操作系统中,文件系统都是非常重要的一个组件;

那什么是文件系统呢?

文件系统用于组织和管理计算机存储设备上的大量文件,并提供用户交互接口。

举个例子,计算机是用磁盘存储数据的,当用户需要访问磁盘上的数据的时候,我们不是直接对硬盘进行操作的,而是通过一个叫做文件系统的东西间接的访问磁盘上的数据; 说白了,文件系统就是一个特殊的程序,这个程序的作用就是用来操作硬盘的;

文件系统类型

Linux是一个兼容性比较强的操作系统,它支持很多种的文件系统,比如说:磁盘文件系统(ext2/ext3…),网络文件系统(NFS),虚拟文件系统(TMPFS);

Windows下也有文件系统;

目前来说,linux中常用的是EXT3这种类型的文件系统,它是在ext2基础上发展起来的;这种文件系统大的优点就是,有个日志文件系统,也就是说你操作磁盘的时候,它会把你的操作完整的记录下来,必要的时候可以利用它来恢复磁盘;

文件系统的逻辑结构

Linux发行版本之间的差别很少,差别主要表现在系统管理的特色工具以及软件包管理方式的不同。目录结构基本上都是一样的。Windows的文件结构是多个并列的树状结构,顶部的是不同的磁盘(分区),如:C,D,E,F等。

Linux的文件结构是单个的树状结构.可以用tree进行展示。 在Ubuntu下安装tree(sudo apt-get install tree),并可通过命令来查看。

每次安装系统的时候我们都会进行分区,Linux下磁盘分区和目录的关系如下:

– 任何一个分区都必须挂载到某个目录上。

– 目录是逻辑上的区分。分区是物理上的区分。

– 磁盘Linux分区都必须挂载到目录树中的某个具体的目录上才能进行读写操作。

– 根目录是所有Linux的文件和目录所在的地方,需要挂载上一个磁盘分区。

以下是我们可能存在的一种目录和分区关系:

Linux正统的文件系统(如ext2、ext3)一个文件由目录项、inode和数据块组成。

目录项: 包括文件名和inode节点号。

Inode: 又称文件索引节点,是文件基本信息的存放地和数据块指针存放地。

数据块: 文件的具体内容存放地。

Linux正统的文件系统(如ext2、3等)将硬盘分区时会划分出目录块、inode Table区块和data block数据区域。一个文件由一个目录项、inode和数据区域块组成。Inode包含文件的属性(如读写属性、owner等,以及指向数据块的指针),数据区域块则是文件内容。当查看某个文件时,会先从inode table中查出文件属性及数据存放点,再从数据块中读取数据。

站在2w英尺视图,文件存储结构大概如下:

其中目录项的结构如下(每个文件的目录项存储在改文件所属目录的文件内容里):

其中文件的inode结构如下(inode里所包含的文件信息可以通过stat filename查看得到):

以上只反映大体的结构,linux文件系统本身在不断发展。但是以上概念基本是不变的。且如ext2、ext3、ext4文件系统也存在很大差别,如果要了解可以查看专门的文件系统介绍。

软连接、硬链接

软连接、硬链接

软链接和硬链接是我们常见的两种概念:

硬连接:是给文件一个副本,同时建立两者之间的连接关系。修改其中一个,与其连接的文件同时被修改。如果删除其中[color=red]任意一个[/color]其余的文件将不受影响。

软连接:也叫符号连接,他只是对源文件在新的位置建立一个“快捷(借用一下wondows常用词)”,所以,当源文件删除时,符号连接的文件将成为无源之水->仅仅剩下个文件名了,当然删除这个连接,也不会影响到源文件,但对连接文件的使用、引用都是直接调用源文件的。

具体关系可以看下图:

从图上可以看出硬链接和软链接的区别:

1:硬链接原文件和新文件的inode编号一致。而软链接不一样。

2:对原文件删除,会导致软链接不可用,而硬链接不受影响。

3:对原文件的修改,软、硬链接文件内容也一样的修改,因为都是指向同一个文件内容的。

发表评论
评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)