ICode9

精准搜索请尝试: 精确搜索
首页 > 系统相关> 文章详细

Linux 存储 superblock

2020-02-20 13:03:37  阅读:294  来源: 互联网

标签:文件 存储 4KB 内容 superblock Linux inode block


Linux系统中有一个名为 super block的“硬盘地图”。

Linux并不是把文件内容直接写入到这个“硬盘地图”里面,而是在super block里面记录着整个文件系统的信息。因为如果把所有的文件内容都写入到这里面,它的体积将变得非常大,而且文件内容的查询与写入速度也会变得很慢。

Linux只是把每个文件的权限与属性记录在inode中,而且每个文件占用一个独立的 inode 表格,该表格的大小默认为128字节,里面记录着如下信息:

  • 该文件的访问权限(read、write、execute);
  • 该文件的所有者与所属组(owner、group);
  • 该文件的大小(size);
  • 该文件的创建或内容修改时间(ctime);
  • 该文件的最后一次访问时间(atime);
  • 该文件的修改时间(mtime);
  • 文件的特殊权限(SUID、SGID、SBIT);
  • 该文件的真实数据地址(point)。

而文件的实际内容则保存在 block 块中(大小可以是 1KB、2KB 或 4KB),一个 inode 的默认大小仅为 128B(Ext3),记录一个 block 则消耗 4B。

当文件的 inode 被写满后,Linux 系统会自动分配出一个 block 块,专门用于像 inode那样记录其他block块的信息,这样把各个block 块的内容串到一起,就能够让用户读到完整的文件内容了。对于存储文件内容的 block块,有下面两种常见情况(以 4KB 的 block 大小为例进行说明)

  • ➢ 情况 1:文件很小(1KB),但依然会占用一个 block,因此会潜在地浪费 3KB。
  • ➢ 情况 2:文件很大(5KB),那么会占用两个 block(5KB-4KB 后剩下的 1KB 也要占用一个 block)。

PS: 小知识

在Linux系统中创建硬链接的时候,便是创建了一个指向同一个inode的指针,因为在使用ls -l指令的时候,便能够查看到创建了硬链接的文件的指向inode的数量是大于1的!

因此在删除文件的时候,如果inode指向数大于一,其实并不会删除这个文件,而是会删除当前的指针,其他指向这个inode的文件仍然可以访问!

Keven Ge 发布了2 篇原创文章 · 获赞 0 · 访问量 54 私信 关注

标签:文件,存储,4KB,内容,superblock,Linux,inode,block
来源: https://blog.csdn.net/qq_45976844/article/details/104408660

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有