文件系统
我们晓得文件可以分为c盘文件和显存文件,显存文件后面早已说过,如今谈谈c盘文件
初始inode
概念:inode是在Linux操作系统中的一种数据结构,其本质是结构体,它包含了与文件系统中各个文件相关的一些重要信息。在Linux中创建文件系统时,同时回创建大量的inode。
c盘文件由两部份构成,分别是文件内容和文件属性。文件内容就是文件当中储存的数据,文件属性就是文件的一些基本信息,比如文件名,文件大小以及文件创建时间等信息都是文件属性,问问价属性又被称为元信息。
在命令行输入ls-l,即可显示当前目录下各文件的属性信息。
其中各列信息所对应的信息如下所示:
在LINUX操作系统中,文件的元信息和内容是分离储存的,其中保存元信息的结构称为inode,由于系统当中可能存在大量的文件,所以我们须要给每位文件的属性集起一个惟一的编号,即inode号。也就是说,inode是一个文件的属性集合,Linux中几乎每位文件都有一个inode,为了分辨系统当中大量的inode,我们为每位inode设置了编号
在命令行输入ls-i即可显示各个文件的inode编号
无论是文件内容还是文件属性linux培训,都是储存在c盘当中的。
c盘的概念
c盘是一种永久性储存介质,在计算机中,c盘几乎是惟一的机械设备,与c盘相对应的就是显存,显存是掉电易失储存介质,目前所有的普通文件都是在c盘中储存的。
c盘在冯诺依曼体系结构中既可以充当输入设备,又可以充当输出设备
c盘的寻优方案
对c盘进行读写操作时,通常有以下几个步骤:
1.确定读写信息在c盘的那个大盘
2.确定读写信息在c盘的那个柱面
3.确定读写信息在c盘的那个磁道
通过以上步骤,可以确定信息在c盘中的读写位置。
c盘的分区与低格介绍
线性储存介质
理解文件系统,首先我们必须将c盘想像成一个线性的储存介质,想想磁带,当磁带被卷上去时,其如同c盘一样是方形的,但当我们把磁带剪短后,其就是线性的。
c盘分区
c盘一般被称为块设备,通常以磁道为单位,一个磁道的大小一般为512字节。我们若以大小为512G的c盘为例,该c盘就可以被分为十亿多个磁道。
计算机为了更好的管理c盘linux内存管理,于是对c盘进行了分区。c盘分区就是使用分区编辑器在c盘上界定几个逻辑部份,硬碟一旦界定成数个分区,不同的目录与文件就可以储存进不同的分区,分区越多,就可以将文件性质分的越细,根据更为细节的性质,储存在不同的地方以管理文件,比如在Windows下c盘通常被分为C盘和D盘两个区域。
在Linux操作系统下,我们也可以通过以下命令查看我们c盘的分区信息。
c盘低格
当c盘完成分区后,我们还须要对c盘进行低格。c盘低格就是对c盘中的分区进行初始化的一种操作1,这些操作一般会造成现有的c盘或分区中所有的文件被消除。
简单来说,c盘低格就是对分区后的各个区域写入对应的管理信息。
其中,写入的管理信息是哪些是由文件系统决定的,不同的文件系统低格时写入的管理信息是不同的,常见的文件系统有EXT2,EXT3,XFS等。
EXT2文件系统的储存方案
计算机为了更好的管理c盘,会对c盘进行分区。而对于每一个分区来说,分区的颈部会包括一个启动块(BootBlock),对于该分区的其余区域,EXT2文件系统会按照分区的大小将其界定为一个个的块组(BlockGroup).
注意:启动块的大小是确定的,而快组的大小是油低格确实的,但是不能修改。
其次,每位组块都有着相同的组成结构,每位组块都由超级快(SuperBlock),快组描述符表(GroupDescriptorTable),块位图(BlockBitmap),inode位图(inodeBitmap),inode表(inodeTable)以及数据表(DataBlock)组成。
SuperBlock:储存文件系统本身的结构信息。记录的信息主要有:DataBlock和inode的总数、未使用的DataBlock和inode的数目、一个DataBlock和inode的大小、最近一次挂载的时间、最近一次写入数据的时间、最近一次检验c盘的时间等其他文件系统的相关信息。SuperBlock的信息被破坏,可以说整个文件系统结构就被破坏了。
GroupDescriptorTable:块组描述符表,描述该分区当中块组的属性信息。
BlockBitmap:块位图当中记录着DataBlock中那个数据块早已被占用,那个数据块没有被占用。
inodeBitmap:inode位图当中记录着每位inode是否空闲可用。
inodeTable:储存文件属性,即每位文件的inode。
DataBlocks:储存文件内容。
注意:
怎样理解创建一个空文件?
怎样理解对文件写入信息?
怎样理解删掉一个文件?
由于此操作并不会真正将文件对应的信息删掉,而只是将其inode号和数据块号置为了无效,所以当我们删掉文件后短时间内是可以恢复的。
为何说是短时间内呢,由于该文件对应的inode号和数据块号早已被置为了无效,因而后续创建其他文件或是对其他文件进行写入操作申请inode号和数据块号时,可能会将该置为无效了的inode号和数据块号分配出去linux文件系统的inode,此时删掉文件的数据都会被覆盖,也就难以恢复文件了。
为何拷贝文件的时侯非常慢,而删掉文件却非常块?
由于拷贝文件须要先创建文件,之后再对该文件进行写入操作,该过程须要先申请inode号并填入文件的属性信息,然后还须要再申请数据块号,最后才会进行文件内容的数据拷贝,而删掉文件只需将对应文件的inode号和数据块号置为无效,无需真正的删掉文件,所以拷贝慢linux文件系统的inode,而删掉文件时很快的。
怎样理解目录?
注意:每位文件的文件名并没有储存在自己的inode结构当中,而是储存在该文件所处目录文件的文件内容当中。由于计算机并不关注文件的文件名,计算机只关注文件的inode号,而文件名和文件的inode表针储存在其目录文件的文件内容当中后,目录通过文件名和文件的inode表针即可将文件名和文件内容及其属性联接上去。
软硬链接
软链接
概念:软链接通过名子引用另一个文件,具有独立的inode,是一个独立的文件。上面的数据块储存了源文件的路径信息。
通过以下命令创建了一个文件的软链接
ln -s myfile myfile_S
通过ls-i-l命令我们可以看见,软链接文件的inode号与源文件的inode号是不同的,但是软链接文件的大小要比源文件的大小小得多
软链接又称作符号链接,软链接文件相对于源文件来说是一个独立的文件,该文件有自己的inode号,然而该文件只包含源文件的路径名,所以软链接文件的大小要比源文件小得多。软链接就类似于Windows操作系统当中的快捷方法。
然而软链接只是源文件的一个标记,当删掉了源文件后,链接文件不能独立存在,即使仍保留文件名,但缺不能执行或查看软链接的内容了
硬链接
概念:硬链接通过inode引用另外一个文件和指向的文件共享同一个inode,不是一个独立的文件。在linux中可以让多个文件名对应于同一个inode.
In myproc myproc _c
通过ls-i-l命令我们可以看见,硬链接文件的inode号与源文件的inode号是相同的,但是硬链接文件的大小与源文件的大小也是相同的,非常注意,当创建了一个硬链接文件后,该硬链接文件和源文件的硬链接数弄成了2
硬链接文件就是源文件的一某些名,一个文件有几个文件名,该文件的硬链接数就是几,这儿inode号为655989的文件有两个,因而该文件的硬链接数为2。
与软链接不同的是,当硬链接的源文件被删掉后,硬链接文件仍能正常执行,只是文件的链接数降低了一个,由于此时该文件的文件名少了一个。
其实,硬链接就是让多个不在或则同一个目录下的文件名,同时还能更改同一个文件,其中一个更改后,所有与其有硬链接的文件都一起更改了。
为何刚创建的目录的硬链接数是2?
我们创建的一个普通文件,该普通文件的硬链接数是1,由于此时该文件只有一个文件名。那为何我们创建一个目录后,该目录的硬链接数是2?
由于每位目录创建后,该目录下默认会有两个蕴涵文件.和..,它们分别代表当前目录和上级目录,因而这儿创建的目录有两个名子,一个是dir另一个就是该目录下的.,所以刚创建的目录硬链接数是2。通过命令我们也可以看见dir和该目录下的.的inode号是一样的,也就是说明它们代表的实际上是一个文件。
软硬链接的区别