zoukankan      html  css  js  c++  java
  • Linux的磁盘与文件管理系统(1)

                                                                                Linux的磁盘与文件管理系统(1):

    一:扇区为最小的物理单位每个为512字节,将扇区组成一个圆那就是柱面,柱面为分区的最小单位,第一个扇区里面有硬盘的主引导记录,那就是MBR与分区表,其中MBR有446个字节,分区表有64个字节。各种接口的磁盘在LINUX中的文件名为/dev/sd[a-p][1-15]:为SCSI,SATA,USB,FLASH等接口的磁盘文件名,/dev/hd[a-d]:为IDE接口的磁盘文件名。磁盘分区是发奋分区的起始柱面与结束柱面,分区表最多能够有四表分区的记录,为住分区与拓展分区的记录,主分区与拓展分区最多有4个(磁盘限制),拓展分区最多有一个(操作系统的限制)

    二:文件系统的特性:

        格式化的意义:每种操作系统所设置的文件属性/权限不相同,为了存放这些文件需要的数据,需要将分区进行格式化,成为操作系统能够利用的文件系统格式。

       Linux的正规文件需要的文件系统为ext2默认情况下windows操作系统不能够识别ext2文件系统。

       Linux下文件系统将文件权限与文件属性这两部分的数据放在不同的块中,权限与属性放在INODE中,他的实际数据房子data block 中,还有一个超级块,叫做superblock会记录整个文件系统的整体星系,包括inode与block的总量,使用量,剩余量根据INODE将block中的内容读出来的数据访问方式叫做索引式文件系统,我们常用的U盘是fat格式的,这种文件系统没有inode,无法将所有的block一口气的读出来,每个block号码都是记录在前一个block号码当中的,如果一个文件数据写入的分散的太厉害,磁盘磁头在磁盘转一圈无法读取到所有的数据,因此fat的文件系统常常需要碎片整理。

       三:LINUX下的ext2文件系统inode洗头用一开始就已经将inode与block规划好了,除非重新格式化,如果我的文件系统高达数百GB的时候,那么将所有的INODE与BLOCK放置在一起将是很不明智的决定,因为INODE与BLOCK的数量太大的时候,不容易管理,因此,ext2文件系统在格式化的时候基本上是分成多个块组的,每个块组都有独立的INODE/BLOCK/SUPERBLOCK系统。感觉就像是我们在当兵的时在整体的规划当中,文件系统最前面有一个boot sector,这个启动扇区可以安装装载程序,我们可以将不同的引导安装程序安装到引导装载程序中,这是个非常重要的设计,因为我们可以将不同的引导安装程序安装到个别的文件系统最前端,而不用覆盖整块硬盘的唯一MBR,这样也才能够制作出多重引导的环境,

     每个块组包含supperblock,文件系统描述,块对应表,inodet对应表,inode table,dateblock.

     Datablock:

       在ext2文件系统中所支持的block大小有1kb,2kb,4kb,三种而已,在格式化block的大小就固定了,每个block都有编号,以方便inode的记录,犹豫block大小的区别,会导致该文件系统所能够支持的最大磁盘容量与单一的文件容量并不相同。

     Inodetable:

     Inode的内容主要记录文件的属性以及该文件的实际数据是放置在那几号block内,基本上inode记录的文件数据至少有下面这些

     该文件的访问模式

     该文件的所有者与组

     该文件的大小,

     该文件的创建或者状态改变时间

     最近一次读取时间

     最近修改的时间

     定位文件特性的标志,如setuid等

     该文件真正内容的指向

     每个indode 大小都为128 bytes

     每个文件都会仅仅占用一个inode,因此文件系统能够创建的文件数量与inode的数量有关,这个就是为啥单一文件的最大容量与data block有关,

     系统读取文件的时候需要先找到inode,并且分析inode所记录的权限与用户是否符合,如果符合才开始读取block的内容,

    Inode与block的简要分析。Inode 能够指定多少个block我们一较小的1kb分析,可以指定的情况如下,inode可以有12个直接指向,总共可以记录12条记录,间接256*1KB每个block号码的记录会花去4BYTE,因此1K的大小能够记录256调记录,双间接256*256*1K第一层block会指定256个第二层,每个第二层可以指定256个号码。

    三间接,256*256*256*1k总额:将直接,间接,双间接,三间接加总,得到12+256+、256*256+256*256*256=16GB

       Superblock超级块这个是记录整个文件系统相关信息的地方,没有superblock就没有这个文件系统了,它的主要信息记录有block与inode的总量,未使用与已使用的inode/block数量block与inode的大小,文件系统的挂载时间,最近一次写入数据的时间,最近一次简练磁盘的时间与文件系统的相关信息,一个validbit树枝,若此文件系统已经被挂载,则valid bit为0,否者为1

    文件系统的基本信息都基本写到这里面,一般来说supperblock的大小为1024bytes,

       每个block group都可能含有SUPPERBLOCK但是我们也说一个文件系统应该仅有一个supperblock而已,第一个block group含有supperblock之外,后续的block group不一定含有supperblock,而含有supperblock的其他非第一个block group的supper block作为了第一个的备份,

                 文件系统描述说明:这个区段可以描述为每个block group 的开始与结束的block号码,以及说明每个区段分别介于哪一个block号码之间,

                 Block bitmap块对照表,通过block bitmap的辅助可以知道那些block是空的,因此我们的系统就能够很快速的找到可使用的空间来处置文件,如果你删除某些文件,那么那些文件原本占用的的block号码就的释放出来,此时block bitmap当中对应的block号码标志为“未使用中个,”

                Inode bimap用来记录未使用的inode号码,与block bitmap 类似

        

  • 相关阅读:
    Educational Codeforces Round 86 (Rated for Div. 2) D. Multiple Testcases
    Educational Codeforces Round 86 (Rated for Div. 2) C. Yet Another Counting Problem
    HDU
    HDU
    HDU
    HDU
    Good Bye 2019 C. Make Good (异或的使用)
    Educational Codeforces Round 78 (Rated for Div. 2) C. Berry Jam
    codeforces 909C. Python Indentation
    codeforces1054 C. Candies Distribution
  • 原文地址:https://www.cnblogs.com/woaiyy/p/2544498.html
Copyright © 2011-2022 走看看