在linux 系统中,i节点有多少个物理地址字段

 我来答
max的深林
推荐于2016-04-28 · TA获得超过2059个赞
知道大有可为答主
回答量:5925
采纳率:100%
帮助的人:5122万
展开全部
一个磁盘可以划分为很多个扇区, 每个扇区有512个字节, 扇区是磁盘的基本存储单元。将每个扇区编号, 这样磁盘就变为了一系列编了号的块组合。
一个磁盘主要包括引导块, 超级块, i节点表,文件存储区, 进程对换区等。
1、.引导块
引导块占用第0号物理块, 不属于文件系统管辖。如果系统中有多个文件系统, 只有跟文件系统才有引导程序放入引导块中, 其余文件系统都不使用引导块
2、超级块
文件系统的第一个块被称为超级块, 这个块存放的是文件系统本身的结构信息。比如超级块记录了每个区域的大小, 存放未使用磁盘的信息等。
3、i节点表
超级块是下一个部分就是i节点表, 每个文件对应一个i节点,每个文件都有一些属性, 如文件大小,所有者,创建时间等。这些信息存放在对应的i节点的结构中, 所有的文件都具有相同大小的I节点,这些i节点组成一个i节点表,文件系统创建后,i节点的数目是有限的。所以一个文件系统能够创建的文件也是有限的。

4、文件存储区
文件系统的第3个部分是文件存储区,文件的内容保存在这里, 磁盘所有的块大小都是一样, 如果文件大小超过一个块的大小,则文件会存放在多个次磁盘块中
5、进程对换区
磁盘上会开辟一块区域, 为对换区, 当内存中的进程需要扩大占用的内存空间, 而当前内存空间不足时, 则把某些不常用的进程暂时替换到对换区中, 在适用的时候又把他们换进 内存,解决内存不足和进程之间对内存的竞争问题。

i节点的结构如下
struct dinode
{
ushort di_mode; /*文件类型+用户权限*/
short di_nlink; /*文件链接数*/
ushort di_uid; /*属主用户id*/
ushort di_gid; /*属主用户组id*/
off_t di_size; /*文件大小*/
char di_addr[40]; /*文件数据区起点地址*/
time_t di_atime; /*最后访问时间*/
time_t di_mtime; /*最后修改时间*/
time_t di_ctime; /*创建时间*/
};

i节点数据结构里面没有文件名, 那文件系统是如何管理文件名,i节点和文件内容之间的关系的呢?

假设要创建一个新文件。该新文件占3个磁盘存储块。
创建文件步骤如下:
1、 内核先找到一块空闲的i节点, 图中,内核找到空的i节点号为10, 内核把文件信息记录到其中, 如文件大小, 文件所有者, 创建时间等。
2、存储数据,即文件的内容存储,由于该文件需要3个数据块,内核从空闲的数据块中找到3个数据块, 200, 300, 400。 将内容复制到这些块中。
3、记录分配情况, 数据保存到3个数据块中, 必须记录起来, 以便下次查找。 磁盘分配情况记录在文件的i节点的磁盘序列列表中,
4、增加文件名和目录。新文件的名字为hello.c, 内核将文件的入口添加到目录文件中,文件名和i节点号之间的对应关系, 将文件名和文件属性,内容联系起来,找到文件名就找到文件的i节点号,通过i节点号就能够找到文件的属性和内容。
本回答被提问者和网友采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式