Linux与windows的文件系统结构
照例先搬砖
一.文件存储
文件存储在硬盘上,硬盘的最小存储单位叫做“扇区”。每个扇区存512字节,操作系统
昨天新哥问我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表定位到文件首簇unix文件系统,通过fat表(它记录着文件如何被分散在不同的扇区中),形成簇链。 (编辑:成都站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |