zoukankan      html  css  js  c++  java
  • Linux与windows的文件系统结构

    昨天新哥问我iNode的区别,支支吾吾说了好久也没讲清楚,自己回来赶紧百度了一下

    照例先搬砖

    一.文件存储

    文件存储在硬盘上,硬盘的最小存储单位叫做“扇区”。每个扇区存512字节,操作系统读取硬盘的时候,不会一个个扇区地读取,这样

    效率太低,而是一次连续地读取多个扇区,即一次性读取一个块。 这种由多个扇区组成的“块”,是文件存取的最小单位。“块”的大小,最常见的是

    4kn,即连续八个sector组成一个block。

    文件数据都存储在“块”中,那么很显然,我们还必须找到一个地方存储文件的元信息,比如文件的创建者,文件的创建日期,

    文件的大小等等。这种存储文件元信息的区域就叫做inode,中文译名为“索引节点”

    inode包含文件的元信息,包括以下内容

    1.文件的字节数

    2.文件拥有者的userID

    3.文件的GroupID

    4.文件的读.写.执行权限

    5.文件的时间戳 ctime指的是inode上一次改变 的时间(权限,属性)

                         mtime指的是inode上一次修改的时间(内容)

                        atime指的是上一次的访问时间

                        但实际上,会因为修该内容而导致mtime(属性)发生变化,从而间接引起ctime变化

    二.inode的大小

    inode也会消耗硬盘空间,所以硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存文件数据;另一个是

    iNode区,存放inode所包含的信息,每个inode节点的大小,一般是128字节或256字节。inode节点的总数,

    在格式化时就给定。

    unix系统内部不使用文件名,而是使用inode号码来识别文件。

    打开文件的过程

    1.系统找到这个文件名对应的inode号码;其次,通过inode号码,获取inode信息;

    最后,根据inode信息,找到文件数据所在的block,读出数据

    一个inode对应多个文件的情况称之为硬连接,修改一个文件内容会影响到所有文件名

    但删除一个文件不会影响到另外一个文件的访问

    二.Windows Fat文件结构

    保留扇区

          位于最开始的位置。第一个保留扇区是引导区(分区引导)

    FAT区域

          它包含有两份文件分配表,冗余考虑,它是分区信息的映射表指示簇是如何存储的

    根目录区域

           它是根目录中存储文件和目录信息的目录表,在FAT32下它可以存在分区中的任何位置。

    数据DATA区

    整个磁盘应该是这样

    我们通过bpb,获取每个fat表的所占字节,保留扇区,从而得知fdt的起始扇区

    通过fdt得到文件的首簇号,并通过首簇号得到文件的起始扇区位置。

    读取文件在数据区中的记录。

    个人感觉,通过fdt表定位到文件首簇,通过fat表(它记录着文件如何被分散在不同的扇区中),形成簇链。

  • 相关阅读:
    EBS SQL > Form & Report
    oracle sql 优化分析点
    MRP 物料需求计划
    MRPII 制造资源计划
    Barcode128 应用实务
    Oracle SQL语句优化技术分析
    APPSQLAP10710 Online accounting could not be created. AP Invoice 无法创建会计分录
    Oracle数据完整性和锁机制
    ORACLE Responsibility Menu Reference to Other User
    EBS 常用 SQL
  • 原文地址:https://www.cnblogs.com/clearlove/p/4590785.html
Copyright © 2011-2022 走看看