首页 > 其他分享 > cat userlist的理解

cat userlist的理解

时间:2022-10-22 16:05:14浏览次数:64  
标签:文件 目录 文件系统 cat userlist 理解 磁盘 节点

学习要求

Linux文件系统的三层抽象是什么?
写出Cat userlist的过程,要详述目录文件,i-node.数据块,要画图示意
假设块大小为4k, userlist的大小不小于10k,自己假设大小

Linux文件系统的三层抽象

文件系统可以用来储存文件内容,文件属性和目录。Unix把磁盘块分成了3个部分来储存上述信息。
超级块:文件系统中第一个块被称为超级块。这个块存放文件系统本身的结构信息。比如,超级块记录了每个区域的大小,超级块也存放未被使用的磁盘块的信息。
I-节点表:超级块的下一个部分就是i-节点表。每个i-节点就是一个对应一个文件/目录的结构,这个结构它包含了一个文件的长度、创建及修改时间、权限、所属关系、磁盘中的位置等信息。一个文件系统维护了一个索引节点的数组,每个文件或目录都与索引节点数组中的唯一一个元素对应。系统给每个索引节点分配了一个号码,也就是该节点在数组中的索引号,称为索引节点号
数据区:文件系统的第3个部分是数据区。文件的内容保存在这个区域。磁盘上所有块的大小都一样。如果文件包含了超过一个块的内容,则文件内容会存放在多个磁盘块中。一个较大的文件很容易分布上千个独产的磁盘块中。

写出Cat userlist的过程,要详述目录文件,i-node.数据块,要画图示意。

考虑以下指令:

当who命令完成时,文件系统中增加了一个存放命令who输出内容的新文件,cat命令读取文件内容并将其打印到了终端上

文件有内容和属性,内核将文件内容存放在数据区,文件属性存放在i-节点,文件名存放在目录

图片参考https://blog.csdn.net/zhizhengguan/article/details/117295661

——cat的过程,实际上是读取文件并将其打印到终端的过程
具体来说:

(1)在目录中寻找文件名

文件名存储在目录文件中。内核在目录文件中寻找包含所在的记录对应编号的i-node节点

(2)定位i-节点号并读取内容
内核在文件系统中的i-node区域找到i-节点(假设为50)。定位一个i-节点一些简单的计算,所有的i-节点号大小相同,每个磁盘块都包含相同数量的i-节点。为了提高访问效率,内核有可能将i-节点置于缓冲区中。i-节点包含数据块编号的列表

(3)访问存储文件内容的数据块

通过以上调用构成,内核已经可以知道文件内容存放在哪些数据块上,以及它们的顺序。由于cat不断的调用read函数,使得内核不断将字节从磁盘复制到内核缓存区,进而到达用户空间

所有从文件读取数据的命令,比如,cat、cp、more、who等,都是将文件名传给open来访问文件内容,对open的每次调用都是先在目录中寻找文件名,然后根据目录中的i-节点号获得文件的属性,最终找到文件的内容。

inode具体信息

文件字节数
文件类型
文件权限
文件的User ID
文件的Group ID
文件在磁盘中的位置
文件的节点号
文件链接数
文件最后修改的时间
文件最后使用(读取或执行)的时间
文点自身最后改变的时间,如设置权限。

标签:文件,目录,文件系统,cat,userlist,理解,磁盘,节点
From: https://www.cnblogs.com/zhou-huilin/p/16816233.html

相关文章

  • [CF311B]Cats Transport
    [CF311B]CatsTransport思路我们发现每只小猫有两个对接走时间有影响的参数\(D_i\)和\(T_i\),而实际上我们只需要知道每只小猫刚好被接走的最小出发时刻是多少。所以......
  • Educational Codeforces Round 138
    EducationalCodeforcesRound138这把是真的丢了大脸。Dashboard$\color{Green}{★}\\$表示赛时做出。$\color{Yellow}{★}\\$表示赛后已补。$\color{Red}{★}......
  • This:从执行上下文的角度来理解这个
    This:从执行上下文的角度来理解这个。这在全局执行上下文中让我们首先看看这在全局执行上下文中是什么。可以在控制台输入console.log(this)在全局执行上下文中打印出这......
  • cat userlist
    catuserlistLinux文件系统的三层抽象是什么?linux的三层抽象分别是:磁盘——>分区分区——>块数组块数组——>(超级块,inode,数据块)写出Catuserlist的过程,要详述目录......
  • Content-type的application/json的意义?
    网站服务器编程中,前后端分离在很多项目中流行开来了。前端的静态页面,不断的发送AJAX请求给后端,以获取数据来动态改变呈现。使用什么数据格式进行交互的呢?答案是JS......
  • Educational Codeforces Round 138 (Rated for Div. 2) A-E
    比赛链接A题解知识点:贪心。注意到\(m\geqn\)时,不存在某一行或列空着,于是不能移动。而\(m<n\)时,一定存在,可以移动。时间复杂度\(O(1)\)空间复杂度\(O(1)\)代......
  • Dashboard - Educational Codeforces Round 138 (Rated for Div. 2) - Codeforces
    Dashboard-EducationalCodeforcesRound138(RatedforDiv.2)-Codeforces这场比赛写的就很菜了。D题有点思路但是没想到是求是去求不满足条件的序列。1.Problem......
  • Fabricating Sculptures 题解
    草草地写一篇题解,废话不多说暴力要拼成“^”型,考虑\(DP\)令\(f_{i,j}\)表示,总共有\(i\)个积木,其中底座占了\(j\)个积木,也就是说你还有\(i-j\)个积木来拼底座的......
  • laravel9 dcatadmin laravel-admin laravel.EMERGENCY: Unable to create configured
    问题laravel9使用dcatadmin或者laravel-admin出现问题laravel.EMERGENCY:Unabletocreateconfiguredlogger.Usingemergencylogger解决方法//文件/vendor/dca......
  • Educational Codeforces Round 83 (Rated for Div. 2) C. Adding Powers(进制转换)
    https://codeforces.com/contest/1312/problem/C题目大意:给定一个长度为n的数组a,在给定一个底数k。一开始数组元素全部都是0,我们每一个时间i可以选择一个下标下的数字......