• 硬盘与文件系统


    1硬盘的物理组成:原型盘片,加磁头组成。

    一个盘片有2面 ,有多个柱面,有多个扇区,多个磁道。

    每一个扇区大小相同都是512bit,每一个磁道有相同数目的扇区(扇区存储的数据相同但是密度不同),每一个扇区可用3维坐标来表示(柱面,磁头,扇区),

    硬盘的容量可表示为: C=A*B

    A=(磁头数*柱面数)=多少个磁道

    又因为每个磁道扇区数目相等以及每个扇区存储数据相同,也就是每个磁道存储的数据大小相等

    B=(磁道容量=扇区数量*扇区大小)

    第一个扇区就是(0,0,1)就是主引导程序(mbr)446b和分区表64b

    2磁盘分区:代表的是高速操作系统次分区可以访问从a柱面到b柱面的之间的块。

    因为磁盘分区表只有64个字节所以只能记录4条分区的记录 (这4条记录称为主分区(p)和扩展分区(e))其中扩展分区还可以在划分但是主分区不可以.

    如可以划分为 p+p+p+p

    或者p+p+p+e(e可以再划分)

    只可以格式化p或者可扩展分区的逻辑分区,即扩展分区不能被整体格式化

    3分区完成之后要格式化:目的是使分区成为能被操作系统利用的文件系统。

    如windows 是ntfs 而linux正规文件系统是ext2

    4.以前一个分区只可以格式化为一个文件系统。现在可以一个分区可以挂在多个文件系统

    由于上面原因:现在我们称一个可以被挂载的数据为一个文件系统

    5.文件系统的如何运行:一般一个文件系统分为:3个文件块

    一个是inode 块(记录文件的属性权限,还有文件数据所在的block块号)

    一个是block 块(实际记录文件的数据,文件太大可以占多个块)

    一个是super block块(记录inode 和block的使用情况,文件系统的格式和相关信息)

    6文件系统的访问:索引式访问和链表式访问。

    Linux是索引式访问

    U盘是fat格式为链表式访问

    7.inode和block块在格式化完成后就被文件系统分好啦

    文件系统可以分为多个块组,,每个块组都有自己的(super block, inode, block)

    启动扇区

    Block group1

    Block group2

    Block group3

    Block group4

    每一个block group 又可以分为

    Superblock

    文件系统描述

    块对应表

    Inode对应表

    Inode table

    datablock

    在文件系统的最前面的一个扇区安装引导驱动程序(mbr)

    8.data block 在ext2下有3种大小:1kb,2kb,4kb

    每一个文件都会占用一个或多个block ,所以合理设置block很重要,会对内存的利用率提高。

    9inode table

    文件权限,属性记录区

    12个直接记录区

    一个间接记录区

    一个双间接记录区

    一个3间接记录区

    12个直接记录block号   inode ->block   可以有12block号

    假设一个block分为1kb,每个block占4个字节

    间接记录Inode->block->block:  可以有:1*1kb/4=256个block号

    双间接记录Inode->block->block->block

    3间接记录Inode->block->block-> block->block

    9.superblock(大小为1024个字节) 使用过dumpe2fs命令查看。

    主要记录block与inode的总量,以及使用情况以及(block的大小(1,2,4kB),或者inode的大小(128B)),文件系统的挂载时间,最近一次写入磁盘的时间,最近一次检验磁盘的时间等

    Vaildbit 代表文件系统是否被挂载(1时被挂载,0未被挂载)

    一般superblock只有一个,若有多个只是第一个的备份,用于数据的恢复

    10.inode 对应表代表inode的使用情况

    11.block 块对应表代表block的使用情况

    12.文件系统描述符代表的是每一个block group的详细信息,如开始block,结束block,以及每一个区段的各个描述表所在的位置。

    13文件系统与目录树的关系

    1每个文件或目录都会占用一个inode号用于文件的属性与权限

    2.每个文件或目录会分配多个block用于存储真正的数据

    对于目录,inode存储的是目录的相关属性与权限,block记录的是目录下的文件名和文件名占用的inode号

    对于文件,inode记录文件的相关信息,block记录真正的数据(先用直接,后间接后…)

    3目录树的读取:系统根挂载点的信息找到挂载点号码得到根目录的inode内容,得到根目录的block文件数据,在一层层的往下读。

    4关于文件系统的大小与读写性能:

    如果文件过于离散,则把数据全部复制出来再格式化一下文件系统在复制回去。

    分区不适宜过大,应该对主机的用途做划分。

    14.ext2ext3文件的访问和日志文件系统的功能

    当新增一个文件时根据权限检查,从inode 对应表找出未使用的inode并将文件相关属性权限信息写入inode,根据block对应表 找出未使用的block写入数据,更新inode对应表和block对应表以及superblock表

    日志文件系统的由来:由于文件存入是可能会导致block bitmap 和inodebitmap未作出及时处理,导致文件系统不一致,所以ext2每次系统都回检查全部磁盘,从而浪费时间

    Ext3比ext2多一个日志文件系统

    日志文件工作流程:

    1预备文件准备录入的信息

    2写入块表和inode表,更新medadata表

    3日志文件记录流程.

    优点:无需检查全部磁盘,只需要看日志文件即可.

    15linux文件系统的操作:会缓冲常用的文件数据到内存,物理内存会被用光,未被改动的文件设置为clean改动过得设置为dirty,可以通过sync同步写入磁盘

    正常关机会自动调用sync,非自动关机可能会导致磁盘数据的损毁。

    16.文件系统与挂载点

    文件系统只有与目录树结合才能被使用,这个称为挂载。

    挂载点一定是目录,目录为该文件系统的入口。

  • 相关阅读:
    嵌入式系统移植三部曲 王晓峰
    嵌入式系统移植三部曲 李炎朔
    ser and client.c 王晓峰
    李炎朔 编程分析
    嵌入式系统移植三步曲 赵晓晓
    嵌入式系统移植三步曲 孟明明
    现在 搞技术确实越来越不值钱了
    Linux C局域网通信程序 刘志卿
    Firefox全面兼容中国银联“在线支付”
    Linux常识型试题
  • 原文地址:https://www.cnblogs.com/hysz/p/7122980.html
Copyright © 2020-2023  润新知