Linux 文件系统

文章目录

  • 文件系统定义
  • 文件系统结构
  • 文件创建过程
  • 软硬链接原理
  • 补充说明

文件系统定义

网络答案:Linux文件系统是Linux操作系统中用于组织和管理文件和目录的一种文件系统。它负责在硬盘上存储和检索文件,并为用户提供对文件的访问和管理功能。

个人理解:依然是从硬件说起,先说磁盘本身的物理结构从,磁盘的结构如下图所示,一个磁盘内有多个盘片,每个盘片有两个盘面,盘面上有多个同心圆环被称为磁道,磁道又被均匀划分为一个个扇区,每个扇区可存储512 字节数据(二进制数据)(无论该扇区离圆心远近都是512KB)。面对如此多的数据块,操作系统需要对其进行先描述再组织,这也就有了文件系统的需求,文件系统是操作系统的一部分(如下图二)。

磁盘结构:

文件系统是操作系统的一部分:
在这里插入图片描述

文件系统结构

在这里插入图片描述

引导块(Boot Block): 是文件系统中的一个特殊块,位于文件系统的起始位置。它包含了引导加载程序(Boot Loader)所需的信息,用于引导操作系统的启动过程。

Block Group:ext2文件系统会根据分区的大小划分为数个Block Group。而每个Block Group都有着相
同的结构组成。

超级块(Super Block):存放文件系统本身的结构信息。记录的信息主要有:bolck 和 inode的总量,
未使用的block和inode的数量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的
时间,最近一次检验磁盘的时间等其他文件系统的相关信息。Super Block的信息被破坏,可以说整个
文件系统结构就被破坏了

Group Descriptor Table:块组描述符,描述块组属性信息,

Block Bitmap:Block Bitmap中记录着Data Block中哪个数据块已经被占用,哪个数据块没有被占用

inode Bitmap:每个bit表示一个inode是否空闲可用。

inode Table :存放文件属性 如 文件大小,所有者,最近修改时间等。

Data blocks :存放文件内容。

解释说明

  1. Boot Block 为引导块,缺点文件系统的起始位置/

  2. 整个磁盘被分为了若干个Block group (对应了日常使用电脑时分C\D\E盘的行为), 每个Block group结构相同。在Block group 中负责实际数据存储的是Data Blocks区,Data Block 区中有许多Block存储块(具体有多少看用户分盘情况),一个Block的可存数据大小是4KB。

  3. Block Bitmap是一个位图,该位图一个标志位被置为1,则代表对应的一个Block块(4KB)被占用。
    inode Bitmap 与 inode Table 关系则有所区别, inode Bitmap 位图标志位记录inode编号是否被占用,inode Table 则记录indoe编号对应的文件信息。

  4. 超级块(Super Block)记录了整个文件系统的全局信息,而组描述(Group Descriptor Table)符表记录了文件系统中每个块组的详细信息。操作系统在挂载文件系统时首先读取超级块,然后使用超级块中的信息来定位和读取组描述符表,进而获取文件系统的更详细信息和管理文件系统的块组。

文件创建过程

当我们创建一个文件并保存,操作系统在利用其文件系统在内核中先找通过inode Bitmap和Block Bitmap找到未使用的inode Table 和多个Data block来分别储存所创建文件的信息和内容,需要注意的是Data block可能不是连续的,inode Table 中记录的文件信息记录了该文件内容被存储在哪些Data block(不是通过Block Bitmap记录,Block Bitmap只能识别某个Data block是否被使用)

软硬链接原理

  1. 如果不清楚软硬连接在补充说明部分有解释。

  2. 软硬链接的特性/原理是由文件系统的特性/结构决定的。创建软连接在文件系统视角来看,是新创建了一个文件(软连接是一个文件),这个文件的内容是原文件或目录的路径,故软链接可以跨文件系统(跨磁盘分区,即跨Block group)进行链接。 创建硬链接在文件系统视角来看,是为文件名和inode(inode是inode Table中的)建立新的映射关系,即多个文件名可对应同一个inode。硬链接与目标文件共享相同的inode和数据块,故硬链接只能链接到同一文件系统中的文件,且不能链接到目录

  3. 在文件系统中,目录是一种特殊的文件,它包含了其他文件和目录的索引。目录中的每个条目都包含了文件名和对应文件的inode号码。硬链接是通过将一个文件名关联到一个inode号码来创建的。
    因为目录文件已经被用于存储其他文件和目录的索引信息,所以将一个硬链接链接到目录会导致混乱和冲突。例如,如果允许将一个硬链接链接到目录,那么可能会出现循环链接的情况,导致文件系统无法正常遍历和访问文件。所以硬链接不能连接到目录。

补充说明

一、为什么一个扇区0.5 KB,而文件系统中一个block块4KB呢

  1. 0.5KB太小,会增加读取次数,导致效率低下,但一次读取数据单位也不能过大,否则空间浪费较多。
    (如果前一个数据存储为占满一个block,下一个数据会在新的block开始存储)。
  2. 完成硬件和软件解耦,如果磁盘的一个扇区为1kb,block为0.5KB就会发生操作系统和硬件不兼容的问题。

二 、 什么是元数据

元数据是指从信息资源中抽取出来的用于说明其特征、内容的结构化的数据(如题名,版本、出版数据、相关说明,包括检索点等),用于组织、描述、检索、保存、管理信息和知识资源。

三 、 什么是软硬链接

  1. 作用:

通俗的理解软硬连接就是window系统中文件的快捷方式,要想进一步理解就要看软硬链接原理。

  1. 创建:

创建软链接(Symbolic Link)

ln -s <目标文件> <链接文件>

软链接是一个特殊的文件(软链接是文件),它包含了指向目标文件的路径信息。软链接可以跨越不同的文件系统,并且可以链接到目录。

创建硬链接(Hard Link):

ln <目标文件> <链接文件>

硬链接是目标文件的另一个入口点,它与目标文件共享相同的inode和数据块。硬链接只能链接到同一文件系统中的文件,且不能链接到目录。
创建链接时,目标文件可以是绝对路径或相对路径。链接文件的名称可以自定义,但是需要确保在所在目录中是唯一的。
使用以上命令创建软链接和硬链接时,如果目标文件或链接文件已经存在,会提示是否覆盖或创建失败。可以通过添加 -f 选项来强制创建链接并覆盖已存在的文件。
另外,可以使用 ls -l 命令来列出文件和链接文件的详细信息,包括链接类型、目标文件和链接文件的路径等。

四、 Linux 如何查看文件或目录的硬链接数


ls -l | grep '^-' | grep '文件或目录名称' | wc -l

五 、为什么目录默认两个硬链接数?

因为 . / 和 … / 都是文件,被隐藏起来了。
. 和 … 分别是对本目录和上级目录的硬链接。(硬连接数的最终判断标准是同一个inode编号建立了多少映射
文件默认的硬链接是文件名,数为1
目录默认的硬链接是目录名和./ 数目为2(目录本身和./连个硬链接)如果在已经创建的目录里再创建目录,里层目录里会产生 …/ ,…/是和外层目录建立了链接的,故此时外层目录的硬链接数会+1。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mfbz.cn/a/229644.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

设备温度和振动综合监测:温振一体式传感器的优点和应用

随着工业设备的复杂性和自动化程度的提高&#xff0c;对设备状态监测的需求也日益增加。温振一体式传感器作为一种集振动和温度监测于一体的传感器&#xff0c;具备多项优势&#xff0c;因此在工业设备状态监测领域得到广泛应用。 温振一体式传感器基于振动传感器和温度传感器的…

数字人对话系统 Linly-Talker

&#x1f525;&#x1f525;&#x1f525;数字人对话系统 Linly-Talker&#x1f525;&#x1f525;&#x1f525; English 简体中文 欢迎大家star我的仓库 https://github.com/Kedreamix/Linly-Talker 2023.12 更新 &#x1f4c6; 用户可以上传任意图片进行对话 介绍 Lin…

AIGC创作系统ChatGPT网站源码,Midjourney绘画,GPT联网提问/即将支持TSS语音对话功能

一、AI创作系统 SparkAi创作系统是基于ChatGPT进行开发的Ai智能问答系统和Midjourney绘画系统&#xff0c;支持OpenAI-GPT全模型国内AI全模型。本期针对源码系统整体测试下来非常完美&#xff0c;可以说SparkAi是目前国内一款的ChatGPT对接OpenAI软件系统。那么如何搭建部署AI…

文献速递:多模态影像组学文献分享:生成一种多模态人工智能模型以区分甲状腺良性和恶性滤泡性肿瘤:概念验证研究

文献速递&#xff1a;多模态影像组学文献分享&#xff1a;生成一种多模态人工智能模型以区分甲状腺良性和恶性滤泡性肿瘤&#xff1a;概念验证研究 文献速递介绍 近年来&#xff0c;人工智能&#xff08;AI&#xff09;领域日益被探索&#xff0c;作为一种增强传统医学诊断和…

扁平的MutableList元素每隔若干元素一组装入新MutableList,Kotlin

扁平的MutableList元素每隔若干元素一组装入新MutableList&#xff0c;Kotlin fun main(args: Array<String>) {val array arrayOf("a", "b", "c", "d", "e", "f", "g", "h", "i…

php+mysql期末作业小项目

目录 1、登录界面 2、注册界面 3、主界面 4、学生表界面 5 、查询学生界面​编辑 6、修改学生信息界面​编辑 7、删除学生信息界面 8、添加学生信息界面 9、后台数据库​编辑 一个简单的php➕mysql项目学生信息管理系统&#xff0c;用于广大学子完成期末作业的参考&…

驾驭苹果的人工智慧模式:克服反击与应对挑战

苹果一年一度的秋季「春晚」时间越来越近&#xff0c;但在大模型浪潮下&#xff0c;苹果何时推出自己的「苹果GPT」成了另一个关注的话题。 毕竟&#xff0c;前有华为&#xff0c;后有小米&#xff0c;在中国手机厂商争相将大模型装进移动终端的同时&#xff0c;苹果却依旧对A…

Vue 子路由页面发消息给主路由页面 ,实现主页面显示子页面的信息

需求 子页面进入后&#xff0c;能在主页面显示子页的相关信息&#xff0c;比如说主页面的菜单激活的是哪个子页面的菜单项 如上图&#xff0c;当刷新浏览器页面时&#xff0c;让菜单的激活项仍保持在【最近浏览】。 实现方式&#xff1a; 在子页面的create事件中增加&#xff…

3dMax vs Cinema4d哪个更好更适合你?

Cinema 4d和3dMax的区别 用于游戏风格、开发和风格可视化的3D建模、动画和渲染软件系统&#xff0c;为用户提供制作和编辑动画、视觉效果和环境的灵活性。4D CINEMA可能是由MAXON构建的强大的3D建模、运动图形、绘画和动画软件系统。Cinema 4D将在每个Windows和MAC操作系统上运…

苹果股价为何会在11月份突然暴涨?12月份还会继续上涨吗?

来源&#xff1a;猛兽财经 作者&#xff1a;猛兽财经 苹果股价受益于大盘而上涨 随着第四季度财报的公布&#xff0c;全球市值最高的公司苹果(AAPL)的股价在上个月出现了暴涨&#xff0c;并在11月份剩下的大部分时间里一直保持着与标普500指数一致的走势。 猛兽财经认为主要原…

阿里云磁盘在线扩容

我们从阿里云的控制面板中给硬盘扩容后结果发现我们的磁盘空间并没有改变 注意&#xff1a;本次操作是针对CentOS 7的 &#xfeff;#使用df -h并没有发现我们的磁盘空间增加 #使用fdisk -l发现确实还有部分空间 运行df -h命令查看云盘分区大小。 以下示例返回分区&#xf…

Vue阶段笔记(有js包)

目录 1.要先上传Vue的js包&#xff0c;包的路径在这&#xff1a; 2.获取 3.定义Vue接管的区域和他所要实现的内容 #整体代码如下&#xff1a; Vue的指令(被绑定得必须有声明) #v-bind #v-model #v-on #V-ifV-else-ifV-elseV-show #v-show #v-for 1.要先上传Vue的js包&…

继承与派生(2)

1.派生类的权限&#xff1a;派生类的成员函数可以访问基类的public和protected类型的成员&#xff0c;而派生类的对象只能访问public类型的成员 2.创建顺序&#xff08;先创造后析构&#xff09;&#xff1a;基类函数&#xff0c;派生类函数&#xff0c;组合类函数 类的组合按…

深度学习之注意力机制

注意力机制与外部记忆 注意力机制与记忆增强网络是相辅相成的&#xff0c;神经网络去从内存中或者外部记忆中选出与当前输入相关的内容时需要注意力机制&#xff0c;而在注意力机制的很多应用场景中&#xff0c;我们的外部信息也可以看作是一个外部的记忆 这是一个阅读理解任务…

0013Java程序设计-基于Vue的上课签到系统的设计与实现

文章目录 **摘 要**目录系统设计4.2学生签到4.3 签到信息列表4.4 用户信息管理5.1系统登录5.1.1 登录5.1.2 清除用户登记记录5.1.3 登录拦截 5.2用户管理5.2.2 用户添加5.2.3 用户编辑5.2.4 用户删除5.2.5 用户分页 5.3签到信息5.3.1签到信息列表 5.4学生签到5.4.1学生签到 开发…

【超详细教程】FL Studio 21中文破解版,让你的音乐制作更出彩啦!

嗨小仙女们&#xff01;今天小助理要跟大家分享一个超赞的消息&#xff01;你们知道吗&#xff0c;FL Studio 21中文破解版终于来啦&#xff01; FL Studio 21是一款超级火爆的音乐制作软件&#xff0c;不仅功能强大&#xff0c;而且操作简单&#xff0c;适合各种水平的音乐制…

基于SSM的java衣服商城

基于SSM的java衣服商城 一、系统介绍二、功能展示四、其他系统实现五、获取源码 一、系统介绍 项目类型&#xff1a;Java EE项目 项目名称&#xff1a;基于SSM的美衣商城 项目架构&#xff1a;B/S架构 开发语言&#xff1a;Java语言 前端技术&#xff1a;Layui等 后端技术…

2023新型智能优化算法-小龙虾优化算法

1 灵感来源 COA的灵感来源于小龙虾的觅食、避暑和竞争行为。觅食阶段和竞争阶段是COA的开发阶段&#xff0c;避暑阶段是COC的探索阶段。 2 数学模型 2.1 初始化种群 采用随机初始化种群&#xff0c;相信大家都能看懂&#xff0c;直接原文献截图。 2.2 确定小龙虾的温度和摄入…

使用git push太慢怎么办

使用git push太慢怎么办 修改host文件&#xff1a; windows 的路径应该在 C:\Windows\System32\drivers\etc\hosts 在host文件的最后一行加上 151.101.72.249 github.global.ssl.fastly.nethost不允许修改就复制一份&#xff0c;修改好了再替换掉&#xff0c;可能会让你输入…

量子芯片技术:未来的计算革命

量子芯片技术&#xff1a;未来的计算革命 一、引言 随着科技的不断发展&#xff0c;人类正在进入一个全新的技术时代&#xff0c;即量子时代。量子芯片技术作为这个时代的重要代表&#xff0c;正逐渐改变我们对计算和信息处理的理解。本文将深入探讨量子芯片技术的基本原理、…
最新文章