Linux 在 i 节点表中的磁盘地址表中,若一个文件的长度是从磁盘地址表的第 1 块到第 11 块 解析?
2015-02-26 16:54
351 查看
面试题:
在 i 节点表中的磁盘地址表中,若一个文件的长度是从磁盘地址表的第 1 块到第 11
块,则该文件共占有 B 块号。
A 256
B 266
C 11
D 256×10
linux文件系统是Linux系统的心脏部分,提供了层次结构的目录和文件。文件系统将磁盘空间划分为每1024个字节一组,称为块(也有用512字节为一块的,如:SCOXENIX)。编号从0到整个磁盘的最大块数。
全部块可划分为四个部分,块0称为引导块,文件系统不用该块;块1称为专用块,专用块含有许多信息,其中有磁盘大小和全部块的其他两部分的大小。从块2开始是i节点表,i节点表中含有i节点,表的块数是可变的,后面将做讨论。i节点表之后是空闲存储块(数据存储块),可用于存放文件内容。
文件的逻辑结构和物理结构是十分不同的,逻辑结构是用户敲入cat命令后所看到的文件,用户可得到表示文件内容的字符流。物理结构是文件实际上如何存放在 磁盘上的存储格式。用户认为自己的文件是边疆的字符流,但实际上文件可能并不是以边疆的方式存放在磁盘上的,长于一块的文件通常将分散地存放在盘上。然而 当用户存取文件时,linux文件系统将以正确的顺序取出各块,给用户提供文件的逻辑结构。
当然,在linux系统的某处一定会有一个表,告诉文件系统如何将物理结构转换为逻辑结构。这就涉及到i节点了。i节点是一个64字节长的表,含有有关一个文件的信息,其中有文件大小、文件所有者、文件存取许可方式,以及文件为普通文件、目录文件还是特别文件等。在i节点中最重要的一项是磁盘地址表。
该表中有13个块号。前10个块号是文件前10块的存放地址。这10个块号能给出一个至多10块长的文件的逻辑结构,文件将以块号在磁盘地址表中出现的顺序依次取得相应的块。当文件长于10块时又怎样呢?磁 盘地址表中的第11项给出一个块号,这个块号指出的块中含有256个块号,至此,这种方法满足了至多长于266块的文件(272384字节)。如果文件大 于266块,磁盘地址表的第12项给出一个块号,这个块号指出的块中含有256个块号,这256个块号的每一个块号又指出一块,块中含256个块号,这些 块号才用于取文件的内容。磁盘地址中和第13项索引寻址方式与第12项类似,只是多一级间接索引。
这样,在linux系统中,文件的最大长度是16842762块,即17246988288字节,有幸是Linux系统对文件的最大长度(一般为1到2M字节)加了更实际的限制,使用户不会无意中建立一个用完整个磁盘区所有块的文件。
文件系统将文件名转换为i节点的方法实际上相当简单。一个目录实际上是一个含有目录表的文件:对于目录中的每个文件,在目录表中有一个入口项,入口项中含有文件名和与文件相应的i节点号。当用户敲入catxxx时,文件系统就在当前目录表中查找名为xxx的入口项,得到与文件xxx相应的i节点号,然后开始取含有文件xxx的内容的块。
http://blog.sina.com.cn/s/blog_97525a630101883o.html
在 i 节点表中的磁盘地址表中,若一个文件的长度是从磁盘地址表的第 1 块到第 11
块,则该文件共占有 B 块号。
A 256
B 266
C 11
D 256×10
linux文件系统是Linux系统的心脏部分,提供了层次结构的目录和文件。文件系统将磁盘空间划分为每1024个字节一组,称为块(也有用512字节为一块的,如:SCOXENIX)。编号从0到整个磁盘的最大块数。
全部块可划分为四个部分,块0称为引导块,文件系统不用该块;块1称为专用块,专用块含有许多信息,其中有磁盘大小和全部块的其他两部分的大小。从块2开始是i节点表,i节点表中含有i节点,表的块数是可变的,后面将做讨论。i节点表之后是空闲存储块(数据存储块),可用于存放文件内容。
文件的逻辑结构和物理结构是十分不同的,逻辑结构是用户敲入cat命令后所看到的文件,用户可得到表示文件内容的字符流。物理结构是文件实际上如何存放在 磁盘上的存储格式。用户认为自己的文件是边疆的字符流,但实际上文件可能并不是以边疆的方式存放在磁盘上的,长于一块的文件通常将分散地存放在盘上。然而 当用户存取文件时,linux文件系统将以正确的顺序取出各块,给用户提供文件的逻辑结构。
当然,在linux系统的某处一定会有一个表,告诉文件系统如何将物理结构转换为逻辑结构。这就涉及到i节点了。i节点是一个64字节长的表,含有有关一个文件的信息,其中有文件大小、文件所有者、文件存取许可方式,以及文件为普通文件、目录文件还是特别文件等。在i节点中最重要的一项是磁盘地址表。
该表中有13个块号。前10个块号是文件前10块的存放地址。这10个块号能给出一个至多10块长的文件的逻辑结构,文件将以块号在磁盘地址表中出现的顺序依次取得相应的块。当文件长于10块时又怎样呢?磁 盘地址表中的第11项给出一个块号,这个块号指出的块中含有256个块号,至此,这种方法满足了至多长于266块的文件(272384字节)。如果文件大 于266块,磁盘地址表的第12项给出一个块号,这个块号指出的块中含有256个块号,这256个块号的每一个块号又指出一块,块中含256个块号,这些 块号才用于取文件的内容。磁盘地址中和第13项索引寻址方式与第12项类似,只是多一级间接索引。
这样,在linux系统中,文件的最大长度是16842762块,即17246988288字节,有幸是Linux系统对文件的最大长度(一般为1到2M字节)加了更实际的限制,使用户不会无意中建立一个用完整个磁盘区所有块的文件。
文件系统将文件名转换为i节点的方法实际上相当简单。一个目录实际上是一个含有目录表的文件:对于目录中的每个文件,在目录表中有一个入口项,入口项中含有文件名和与文件相应的i节点号。当用户敲入catxxx时,文件系统就在当前目录表中查找名为xxx的入口项,得到与文件xxx相应的i节点号,然后开始取含有文件xxx的内容的块。
http://blog.sina.com.cn/s/blog_97525a630101883o.html
相关文章推荐
- win 7下例用VMware Workstation进入linux时(无法打开磁盘xx.vmdk或者某一个快照所依赖的磁盘原因:未能锁定文件)
- 将Oracle数据库改为归档模式并启用RMAN备份 如下Linux环境下对Oracle单节点数据库采用文件系统情况的配置归档模式过程。首先查看数据库归档模式和磁盘使用情况,确定归档文件放到什么位置。
- 在Linux下创建一个大文件,即制造磁盘I/O异常,使用dd命令
- andrid linux kernel中植入一个文件节点
- linux0.11调试教程,写了个readinode,参数i节点号,返回磁盘i节点到文件inodexxxx
- Linux下通过OTG把板卡上的一个磁盘或文件映射成移动磁盘
- Linux下通过OTG把板卡上的一个磁盘或文件映射成PC机上的一个移动磁盘
- linux-011文件系统节点操作函数解析
- Linux下通过OTG把板卡上的一个磁盘或文件映射成移动磁盘
- 在Linux下创建一个大文件,即制造磁盘IO异常,使用dd命令
- Linux——磁盘/文件/目录/i 节点 之间的关系
- 一个对磁盘,文件夹,文件进行遍历的类
- linux下批量替换一个目录下的文件某个字符串
- 用dom解读xml的时候,如果碰到有命名空间的时候(就是节点名字有:的时候)需要把xml文件中的那个命名空间地址和名字拿出来加到XmlNamespaceManager 里面去
- 【推荐】解析Linux系统根文件系统的目录树,让你对linux更深的认识
- 发布一个biztalk 解析Excel文件到xml消息的管道组件
- 简单的解析文件,取URL地址,并根据地址抓下页面
- Intel平台下Linux中 ELF文件动态链接的加载、解析及实例分析(一): 加载
- CTDP linux 程序员手册 (4.8) 一个管理和读文件的例子
- [WORK]工作需要,研究一个解析Excel文件