首页 > 其他分享 > cat userlist

cat userlist

时间:2022-10-23 20:46:12浏览次数:52  
标签:文件 扇区 cat userlist inode 目录

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

一、Linux文件系统的三层抽象是什么?

Linux文件系统的内部结构
硬盘实际上是由一些磁性盘片组成的计算机系统的一个设备。文件系统是对该设备的一种多层次的抽象。

  • 第一层抽象:一个磁盘能够储存大量的数据,一个磁盘可以被划分成分区,每个分区可以看作是一个独立的磁盘。
  • 第二层抽象:一个硬盘有一些磁性盘片组成。每个盘片的表面都被划分为很多同心圆,这些同心圆称作磁道,每个磁道又被进一步划分为扇区,每个扇区可以储存一定字节数的数据。扇区是磁盘上的基本储存单元。一个磁盘扇区编号的系统使得我们可以把磁盘视为一系列块的组合。
  • 第三层抽象:文件系统可以用来储存文件内容,文件属性和目录Unix把磁盘块分成了3个部分来储存上述信息。

嵌入式Linux系统分三层:应用层,内核层,硬件层。

1:应用层是一些应用程序和库,是面向用户的,如命令,QQ等应用程序;

2:内核层的主要功能是设备驱动,进程管理,内存管理,文件系统和网络通信;

3:硬件层是以信号为对象,完成各种信号之间的相互转换,通常信号变换前后其承载的信息保持不变,因此,无论如何变换,信号之间总是存在某种函数关系。

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

使用man cat命令

cat主要有三大功能:

  1. 一次显示整个文件。
    $ cat filename
  2. 从键盘创建一个文件。
    $ cat > filename
    只能创建新文件,不能编辑已有文件.
  3. 将几个文件合并为一个文件。
    $cat file1 file2 > file

cat具体命令格式为 : cat [-AbeEnstTuv] [--help] [--version] fileName

  • 说明:把档案串连接后传到基本输出(屏幕或加 > fileName 到另一个档案)
  • 参数:
    • -n 或 –number 由 1 开始对所有输出的行数编号
    • -b 或 –number-nonblank 和 -n 相似,只不过对于空白行不编号
    • -s 或 –squeeze-blank 当遇到有连续两行以上的空白行,就代换为一行的空白行
    • -v 或 –show-nonprinting

超级块 inode节点表 数据区
                   

(一)inode

inode在linux中是一种数据结构,包含了文件系统中文件相关的重要信息
inode节点表存放inode节点,存储文件属性、所有者、权限等元数据信息

文件储存在硬盘上,硬盘的最小存储单位叫做"扇区"(Sector)。每个扇区储存512字节(相当于0.5KB)

操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个"块"(block)。这种由多个扇区组成的"块",是文件存取的最小单位。"块"的大小,最常见的是4KB,即连续八个 sector组成一个 block。

文件数据都储存在"块"中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为"索引节点"。

(二)目录文件

Linux文件系统是目录和文件组成的一种层次结构,目录(directory)也是一种文件,起点称为根(root),其名字是一个字符 / 。Linux系统中打开目录,实际上就是打开目录文件。目录文件的结构非常简单,就是一系列目录项(dirent)的列表。每个目录项,由两部分组成:所包含文件的文件名,以及该文件名对应的inode号码。
Linux中,一个文件(包括目录)的文件名,及文件名与inode的对应关系,都是由包含该文件的目录所描述的。在Linux目录中,每个名字有一个inode number,inode number指出了存储数据的硬盘空间的位置。ls -i命令列出整个目录文件,即文件名和inode号码,所以我们可以先读取文件的inode,然后通过ls -i观察名字和inode对应关系;如果要查看文件的详细信息,就必须根据inode号码,访问inode节点,读取信息。

(三)数据块

三、假设块大小为4k, userlist的大小不小于10k,自己假设大小

1.Cat userlist的过程:

  1. 从目录找到userlist
  2. 从dentry结构体定位inode
  3. 从inode结构体读出i_block[]
  4. 按顺序组织i_block[]中的内容,输出到终端。

 2.示意图:

标签:文件,扇区,cat,userlist,inode,目录
From: https://www.cnblogs.com/20201212ycy/p/16819458.html

相关文章

  • MacBook M1系统启动MxSrvs中的nginx报错:nginx: [emerg] getgrnam("root") failed in /
    nginx报错:nginx:[emerg]getgrnam("root")failedin/Applications/MxSrvs/bin/nginx/conf/nginx.conf:1nginx:[emerg]getgrnam("wangteng")failedin/Applications......
  • cat userlist
    Linux文件系统的三层抽象是什么?第一层抽象:一个磁盘能够储存大量的数据,一个磁盘可以被划分成分区,每个分区可以看作是一个独立的磁盘。第二层抽象:一个硬盘有一些磁性盘片......
  • php7.4.32报错“PHP message: PHP Deprecated: Directive 'allow_url_include' is de
    如题,php7.4.32的版本下,在php.ini中打开allow_url_include会报错:NOTICE:PHPmessage:PHPDeprecated:Directive'allow_url_include'isdeprecatedinUnknowno......
  • cat userlist
    catuserlist三层抽象第一层抽象磁盘会被分成一个一个的扇形区域,每个扇形区域有着相同的属性,相互独立。第二层抽象磁盘的每个相对独立的扇形区域都是由块数组构成......
  • Nginx+Tomcat实现负载均衡、动静分离(脚本方法)
    一、Nginx负载均衡实现原理1、Nginx实现负载均衡是通过反向代理实现反向代理(ReverseProxy)是指以代理服务器(例:Nginx)来接受internet上的连接请求,然后将请求转发给内部......
  • 替代try catch处理异常的优雅方式
    前言软件开发过程中,不可避免的是需要处理各种异常,就我自己来说,至少有一半以上的时间都是在处理各种异常情况,所以代码中就会出现大量的​​try{…}catch{…}finally{…}......
  • 云服务器安装Mysql之后,设置可以进行远程连接,Duplicaticate wntry '%-root' for key '
    云服务器安装Mysql之后,设置可以进行远程连接1、首先连接mysqlmysql-uroot-p2、MySql5版本GRANTALLON*.*TOroot@'%'IDENTIFIEDBY'你得root密码'WITHGRANT......
  • cat userlist
    Linux文件系统的三层抽象是什么?第一层抽象:从磁盘到分区 分区可以看作磁盘 两个512G的硬盘跟一个1T的硬盘分成两个区第二层抽象:从磁盘到序列块 块数组与字节数组第......
  • cat userlist
    Linux文件系统的三层抽象是什么?如下三个第一层抽象:从磁盘到分区分区可以看作磁盘或者是将磁盘看做分区第二层抽象:从磁盘到序列块块数组与字节数组第三层抽象:块数......
  • centos8下安装tomcat
    1、下载tomcatapache-tomcat-10.0.27.tar.gz2、上传到/opt目录下,并解压到/usr/local目录tar-zxvf/opt/apache-tomcat-10.0.27.tar.gz-C/usr/local3、......