Linux--文件系统:数据的存储和组织之道

news2024/11/26 0:27:28

引言

文件系统是计算机操作系统中的重要组成部分,它负责管理计算机存储设备上的数据以及对数据进行组织和访问。一个高效可靠的文件系统对于系统性能和数据安全至关重要。

文件系统的基本概念

文件系统是操作系统中用于管理和存储文件的软件结构。它定义了如何在存储设备或分区上组织文件的方法。文件系统的主要功能包括为用户建立文件、存储、读取、修改、转储文件,控制文件的访问,并在不再使用时撤销文件。文件系统为用户和应用程序提供了一个统一的、抽象的方式来访问和管理数据,隐藏了物理存储设备的细节,使得数据存储、检索、保护和共享成为可能。

在这里插入图片描述

理解文件系统

在这里插入图片描述

inode是文件系统中用于存储文件元数据的数据结构每个文件都对应一个唯一的inode,用于记录文件的属性信息和文件内容的物理位置

在这里插入图片描述
这些显示的,都是inode结构的内容;
在这里插入图片描述

.
.
.
.
Block group(块组)是文件系统中的一个概念,用于存储设备上的数据划分为一组连续的数据块。每个块组由多个数据块组成,并包含了与该组相关的元数据信息。

在这里插入图片描述
.
.
.
.
在这里插入图片描述
.
.
.
.
那如何创建一个新文件?
在这里插入图片描述
在这里插入图片描述

文件系统的类型

  1. FAT文件系统
  • FAT文件系统是一种较为简单和通用的文件系统,被广泛应用于Windows操作系统和移动存储设备。
  • FAT文件系统使用文件分配表(File Allocation Table)来管理文件的空间分配和索引,支持短文件名和长文件名。
  1. NTFS文件系统
  • NTFS文件系统是Windows操作系统中较新的文件系统,相比于FAT文件系统,具有更好的性能和安全性。
  • NTFS文件系统采用了一种称为“日志式文件系统”的设计。通过使用事务日志和元数据的冗余副本,提供更好的文件系统可靠性和恢复能力。
  • NTFS文件系统支持较大文件和分区的大小,并提供了文件权限、加密和压缩等高级特性。
  1. ext4文件系统
  • ext4文件系统是Linux操作系统中最常用的文件系统,是ext文件系统的第四个版本。
  • ext4文件系统通过增加日志事务等机制,提高了文件系统的可靠性和性能。
    -ext4文件系统通过使用索引节点(inode)来管理文件和目录的元数据信息,并使用块组(block group)的概念来管理磁盘空间。

软硬链接

概念

软链接,又称为符号链接,是一种特殊类型的文件,它包含了指向另一个文件或目录的路径名。软链接可以链接不同文件系统的文件,也可以链接目录。

.
软链接的作用是在不改变原文件或目录位置的情况下,创建一个新的路径引用。通过软链接,可以使多个路径指向同一个文件,从而提供更灵活的文件访问方式
类似Windows桌面的快捷方式。

硬链接是Linux系统中另一种文件链接的形式。与软链接不同,硬链接是通过文件系统中的inode连接来实现的,而不是通过路径名
.
硬链接是在文件系统中创建一个指向原文件的链接,它与原文件实际上是同一个文件,共享相同的inode和数据块

在这里插入图片描述

应用场景

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

MT6825编码器在STM32中的使用

文章目录 1、PWM 绝对值位置读取功能1.1 DataSheet说明1.2 硬件支持1.3 Cubemax配置及使用1.4 项目代码实现1.5 效果验证1.6 注意事项 2、SPI 绝对值位置读取功能2.2 硬件支持2.3 Cubemax配置及使用2.4 项目代码实现 1、PWM 绝对值位置读取功能 1.1 DataSheet说明 1.2 硬件支持…

【计算机网络篇】物理层(4)信道的极限容量,信道复用技术

文章目录 🍔信道的极限容量🛸造成信号失真的主要因素⭐码元的传输速率 🛸奈氏准则🛸香农公式🎈练习 🗒️小结 🍔信道复用技术⭐常见的信道复用技术🎈频分复用FDM🎈时分复…

TouchGFX之性能测量

TouchGFX Core开放了几个信号,可用于测量性能。 当这些信号在内部触发时,用户可在应用程序中同步触发单个GPIO,从而实现“渲染时间”和其他有用信号的可视化。 信号在GPIO.hpp中定义 /* 用于操作GPIO的接口类,以便在目标硬件上进…

ANOMALY TRANSFORMER: TIME SERIES ANOMALY DETECTION WITH ASSOCIATION DISCREPANCY

论文题目: ANOMALY TRANSFORMER: TIME SERIES ANOMALY DETECTION WITH ASSOCIATION DISCREPANCY 发表会议:ICLR 2022 论文地址:https://openreview.net/pdf?idLzQQ89U1qm_ 论文代码:https://github.com/thuml/Anomaly-Transforme…

“惠才俊·暖同行”成都蓉北商圈“政策进楼宇”系列活动第二站

活动时间 2024年3月27日下午14:00活动地点 四川省成都市金牛区福堤路99号数媒大厦(5楼共享会议室)主办单位 成都蓉北商圈发展服务局 成都市金牛区新经济和科技局 成都树莓信息技术有限公司协办单位 蓉北人力资源服务产业园 主讲单位 蓉北商圈服务局、区新经济和科技局、国…

PyQt上手指南

文章目录 前言PyQt的好处从一个最简单的例子入手PyQt5基础组件体系源码结构 Qt Designer基础布局高级界面Web控件 多线程列表图形绘制PyQt5.QtGuiPyQtGraphmatplotlib和PyQt结合和mplfinance结合 工具使用打包链接 前言 用户界面开发,我搞过visual C MFC、Delphi V…

thinkphp 使用phpmailer发送邮件以及使用消息队列异步解耦发送邮件

邮箱注册配置&#xff1a; 注册163或qq邮箱&#xff0c;开启smtp服务 25端口 ssl则465端口 下载phpmailer composer 安装phpmailer composer require phpmailer/phpmailer设置配置文件 配置文件 书写代码 代码 <?php namespace app\job; use think\facade\Log; us…

安卓(uniapp)上架华为踩坑合集

1.如果是离线打包&#xff0c;注意在manifest那里修改&#xff1a; android:debuggablefalse2…您的应用targetsdk版本低于30&#xff0c;不符合华为应用市场审核标准。 修改建议&#xff1a;请您将应用targetsdk等级升级到30或30以上。 因为之前我升到30被打回来过&#xff…

【LAMMPS学习】三、构建LAMMPS(5)可选的构建设置

3、构建LAMMPS 3.5.可选的构建设置 LAMMPS 可以通过多种可选设置来构建。每个小节都解释了如何使用 CMake 和 make 进行构建。 3.5.1. C11 标准合规性 编译 LAMMPS 需要 C11 标准兼容编译器。 LAMMPS 2020 年 3 月 3 版是核心代码和大多数软件包与之前的 C98 标准兼容的最…

使用 Flink + Faker Connector 生成测试数据压测 MySQL

博主历时三年精心创作的《大数据平台架构与原型实现&#xff1a;数据中台建设实战》一书现已由知名IT图书品牌电子工业出版社博文视点出版发行&#xff0c;点击《重磅推荐&#xff1a;建大数据平台太难了&#xff01;给我发个工程原型吧&#xff01;》了解图书详情&#xff0c;…

基于java校园在线打印预约系统设计与实现

摘 要 二十一世纪以来&#xff0c;计算机行业应用技术不断发展&#xff0c;人们的观念也在不断改变。传统打印行业&#xff0c;用户已经意识到传统的打印文件方法等待时间太长。校园在线打印预约系统可以通过网络来打印文件&#xff0c;用户可以在特定的时间预约打印文件&#…

【RabbitMQ | 第一篇】消息队列基础知识

文章目录 1.消息队列基础知识1.1什么是消息队列&#xff1f;1.2消息队列有什么用&#xff1f;&#xff08;结合项目说&#xff09;1.2.1异步处理1.2.2削峰/限流1.2.3降低系统耦合性1.2.4实现分布式事务 1.3消息队列的缺点1.4JMS和AMQP1.4.1 JMS的两种消息模型&#xff08;1&…

PSQLException:limit must not be negative

limit must not be negative异常原因及解决 在PostgreSQL中遇到PsqlException: limit must not be negative异常&#xff0c;通常是由于在执行SQL查询时&#xff0c;传递给LIMIT子句的值为负数导致的。LIMIT子句用于限制查询结果的数量&#xff0c;其值必须是非负整数。 解决这…

C++ Qt开发:QUdpSocket实现组播通信

Qt 是一个跨平台C图形界面开发库&#xff0c;利用Qt可以快速开发跨平台窗体应用程序&#xff0c;在Qt中我们可以通过拖拽的方式将不同组件放到指定的位置&#xff0c;实现图形化开发极大的方便了开发效率&#xff0c;本章将重点介绍如何运用QUdpSocket组件实现基于UDP的组播通信…

15届蓝桥杯第二期模拟赛所有题目解析

文章目录 &#x1f9e1;&#x1f9e1;t1_求余&#x1f9e1;&#x1f9e1;思路代码 &#x1f9e1;&#x1f9e1;t2_灌水&#x1f9e1;&#x1f9e1;思路代码 &#x1f9e1;&#x1f9e1;t3_字符显示&#x1f9e1;&#x1f9e1;思路代码 &#x1f9e1;&#x1f9e1;t4_区间最大和…

Mysql:行锁,间隙锁,next-key锁?

注&#xff1a;以下讨论基于InnoDB引擎。 文章目录 问题引入猜想1&#xff1a;只加了一行写锁&#xff0c;锁住要修改的这一行。语义问题数据一致性问题 猜想2&#xff1a;要修改的这一行加写锁&#xff0c;扫描过程中遇到其它行加读锁猜想3&#xff1a;要修改的这一行加写锁&…

[ C++ ] STL---list的使用指南

目录 list简介 list的常用接口 构造函数 赋值运算符重载 迭代器 容量相关接口 元素访问接口 修改相关接口 头插push_front() 头删pop_front() 尾插push_back() 尾删pop_back() insert() erase() list的迭代器失效 list简介 1. list是可以以O(1)的时间复杂度在任意…

ORACLE 上机操作3-1

sqlplus / as sysdba 显示parameter结构 SQL> set pause on SQL> desc v$parameter 显示系统静态参数 SQL> select name from v$parameter where isses_modifiable FALSE; 显示db_files是否可以用命令修改 SQL> select isses_modifiable, issys_modifiable, ismod…

使用 OpenAI 的 Embedding模型 构建知识向量库并进行相似搜索

OpenAI的embedding模型的使用 首先第一篇文章中探讨和使用了ChatGPT4的API-Key实现基础的多轮对话和流式输出&#xff0c;完成了对GPT-API的一个初探索&#xff0c;那第二步打算使用OpenAI的embedding模型来构建一个知识向量库&#xff0c;其实知识向量库本质上就是一个包含着一…

四、HarmonyOS应用开发-ArkTS开发语言介绍

目录 1、TypeScript快速入门 1.1、编程语言介绍 1.2、基础类型 1.3、条件语句 1.4、函数 1.5、类 1.6、模块 1.7、迭代器 2、ArkTs 基础&#xff08;浅析ArkTS的起源和演进&#xff09; 2.1、引言 2.2、JS 2.3、TS 2.4、ArkTS 2.5、下一步演进 3、ArkTs 开发实践…