Linux文件系统

Anaconda详细安装及使用教程(带图文) Anacond的介绍 Anaconda指的是一个开源的Python发行版本,其包含了conda、Python等180多个科学包及其依赖项。因为包含了大量的科学包,Anaconda的下载文件比较大(约531 MB),如果只需要某些包,或者需要节省带宽或存储空间,也可以使用Miniconda这个较小的发行版(仅包含conda和Python)。 Conda是一个开源的包、环境管理器,可以用于... 阅读详情

title: Linux文件系统
date: 2024-07-26 09:49:27
tags: Linux
cover: https://picbed0521.oss-cn-shanghai.aliyuncs.com/blogpic/202409230833286.png


原文见我的网站: www.supdriver.top

文件系统的组织方式

这里介绍一下Block Group里的分区内容

  • 超级块(Super Block): 存放文件系统本身的结构信息。记录的信息主要有:bolck(数据块) 和 inode(属性块)的总量,
    未使用的block和inode的数量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的
    时间,最近一次检验磁盘的时间等其他文件系统的相关信息。Super Block的信息被破坏,可以说整个
    文件系统结构就被破坏了
  • GDT(Group Descriptor Table): 块组描述符,描述块组属性信息。这里不作详细介绍
  • 块位图(Block Bitmap):位图中的比特位记录着Data Block中哪个数据块已经被占用,哪个数据块没有被占用
  • inode位图(inode Bitmap):每个比特位表示一个inode是否空闲可用。
  • inode表(inode Table):每一个inode存放了各自文件的属性,如文件大小,所有者,最近修改时间等
  • 数据区:存放文件内容

Linux系统中文件的增删查改

Linux中,每一个文件都有自己的inode,而每一个inode有自己的inode编号(按分区为单位)

特别的:尽管inode储存了文件的属性,文件名并不属于inode

理解目录文件

目录也是文件!目录也有自己的inode和数据块

目录的数据块储存了该目录下,文件的文件名和文件inode的映射关系

创建文件的过程

创建文件主要有以下4个操作

  1. 存储属性:内核先找到一个空闲的inode(图中是263467)。内核把文件信息记录其中。
  2. 存储数据:该文件需要存储在三个数据块,内核找到了三个空闲块:300,600,800。然后将内核缓冲区的第一块数据复制到300,下一块复制到600,依次类推
  3. 记录分配情况:文件内容按顺序300,600,800存放。内核在inode上的磁盘分布区记录了上述块列表
  4. 添加文件名到目录:通过写入目录文件,将文件名和inode的建立映射关系(这里是将文件名cab与inode 263467建立联系)

Linux中的硬链接和软链接

Linux文件系统中特别重要*的一点是:文件系统使用inode管理文件,而不是文件名,所以使用inode唯一指定文件。也就是说找到了inode才是真正找到了文件

基于此理论,我们可以更好地理解软链接和硬链接

软链接

使用ln -s <原文件名> <软链接文件名>指令可以建立软链接,-s参数就是指定创建软链接文件

例如在已有file.txt的情况下,使用ln -s file.txt soft-link在当前文件夹创建软链接文件soft-link,指向文件file.txt

然后我们输入ls -li查看这两个文件

可以看到软链接文件和原文件的inode是不同的,且两个文件的硬链接数(第二个框框)都是1,说明软链接是一个文件系统意义上的新文件

软链接文件可类比与Windows下的快捷方式

硬链接

使用ln <原文件名> <硬链接文件名>指令可以建立硬链接。

例如在已有file.txt的情况下,使用ln file.txt hard-link在当前文件夹创建软链接文件hard-link,与文件file.txt等价

然后我们输入ls -li查看这"两个"文件

可以看到它们的inode是完全一样的,那么基于上文文件系统对文件的视角,这"两个"文件完全就是同一个文件!,或者说hard-link是file.txt的别名,同时我们也能看到硬链接引用计数变成了2

在引入了硬链接引用计数的概念下,删除目录中的一个文件,只是删除该目录下文件名和inode的映射关系,并使该文件的引用计数减去1,当其归零时,才会真正释放磁盘上的文件资源

目录的硬链接数

对于每一个普通目录(除了根目录),至少有父目录下自己的文件名和该目录下的.文件2个硬链接,而在其内部创建的每个子目录又会储存一个名为..的硬连接,所以普通目录的硬连接数会>=2

因此为了防止文件系统结构混乱,操作系统不允许用户对目录建立硬链接

删除链接文件

rm不一定能删除链接文件,此时可以用unlink命令

基于Spring Security 6的OAuth2 系列之二 - 客户端--非代码演示授权码模式 至此,我们就使用浏览器+postman工具演示了通过授权码模式去获取Gitee的用户信息。这过程中,我们只是遵循OAuth2的流程,就能够实现授权方法。那么接下来,我们采用代码方式来实现这个流程。 阅读详情

相关推荐

MOOS-ivp实战:从零搭建水下机器人通信系统(Ubuntu 22.04版)

本文详细介绍了在Ubuntu 22.04系统上从零开始搭建MOOS-ivp水下机器人通信系统的完整实战流程。内容涵盖环境准备、核心安装、MOOSDB通信模型解析、自定义应用节点开发、以及调试监控工具链的使用,旨在帮助开发者快速掌握这一分布式机器人系统框架,构建稳定可靠的水下机器人通信与控制系统。

snow3的博客 635

linux文件系统

,缩短 GNU/Linux 的开机时间。无论最下层的文件系统是什么,我们最上层的用户端尽管使用系统调用接口(open、write、read等)或glibc接口(fopen、fwrite、fread等)来操作就可访问文件系统里的文件,使得一切都是文件成为可能。/sys文件系统基本上包含了系统中所有设备的所有信息,比如制造商和型号、设备插入的位置、设备的状态、设备的层次结构等等。在我们嵌入式Linux中,NFS的主要应用如:把主机的上文件(比如目标板的可执行文件)共享给目标板,这样目标板就很方便地运行程序。

123 1万+

【论文阅读】LIME:Low-light Image Enhancement via Illumination Map Estimation(笔记最全篇)

文章目录AbstractIntroductionContributionMethodSpeed-up Method(1):ALM子问题 T子问题 G子问题 Z和μ\muμSpeed-up Method(2):权重变量实验conclusion 今天要整理的一篇论文是使用传统的方法解决低照度的问题,Guo等人于2016年发表在IEEE上,论文《LIME:Low-light Image Enhance...

florrie 2万+

【Linux】文件系统、文件系统结构、虚拟文件系统

一、文件系统概述一、文件系统概述文件系统(File System)是一种用于在计算机存储设备上组织和管理文件和数据的方式。它提供了一种结构化的方法,使得计算机可以有效地存储、检索和管理文件。文件系统通过文件和目录的组织结构来管理数据。文件表示存储在设备上的数据单元,而目录用于组织和存储文件。文件系统定义了文件的命名规则,这包括文件名的长度、允许使用的字符类型等。文件名通常用于唯一标识文件。文件系统负责将文件存储在物理存储设备(如硬盘、固态硬盘、光盘等)上,并提供检索文件的机制。

咖喱年糕的博客 4025

告别谷歌翻译失效!手把手教你用Immersive Translate插件实现双语网页阅读(附Chrome/Edge/Firefox保姆级配置)

本文详细介绍了如何使用Immersive Translate插件实现双语网页阅读,解决谷歌翻译失效的问题。通过Chrome、Edge和Firefox的保姆级配置指南,帮助用户轻松安装和使用这款支持双语对照、智能识别网页内容的翻译插件,提升外文资料阅读效率。

weixin_28683689的博客 485

立创EDA实战:基于NE555的夜间氛围呼吸灯电路设计与模式切换

本文详细介绍了使用立创EDA设计基于NE555芯片的夜间氛围呼吸灯电路。项目核心是利用NE555产生PWM信号,并通过RC充放电电路实现LED亮度的缓慢周期性变化,形成呼吸效果。文章手把手教学,涵盖从电路原理分析、元件参数计算,到在立创EDA中进行原理图绘制、PCB布局布线,直至焊接调试的完整硬件设计流程,是电子爱好者入门实战的经典项目。

weixin_42153793的博客 124

Linux文件系统有哪些

Linux文件系统有哪些 1、Linux 文件系统简介 操作系统就是处理各种数据的,这些数据在硬盘上就是二进制,人类肯定不能直接看懂这些二进制数据,要有一个翻译器,将这些二进制的数据还原为人类能看懂的文件形式,这个工作就是由文件系统来完成的,文件系统的目的就是实现数据的查询和存储,由于使用场合、使用环境的不同,Linux 有多种文件系统,不同的文件系统支持不同的体系。文件系统是管理数据的,而可以存储数据的物理设备有硬盘、U 盘、SD 卡、NAND FLASH、NOR FLASH、网络存储设备等。不同的存储设

HX_CODER 1万+

DAC8568控制器实战:如何用STM32实现多通道同步输出(附完整代码)

本文详细介绍了如何使用STM32微控制器驱动TI的DAC8568多通道DAC控制器,实现高精度的多通道同步模拟信号输出。内容涵盖硬件设计要点、SPI时序精准配置、驱动层命令构建,并重点解析了通过LDAC引脚实现同步更新的核心策略,提供了完整的代码框架和实战案例,帮助工程师快速解决多通道同步输出的工程难题。

weixin_29179311的博客 169

linux根文件系统的分类,Linux中文件系统分类方法

Linux一个重要的哲学是:一切皆文件。而文件与文件系统是密切相关的,本篇笔记我们来一起学习、理清那些令我们眼花缭乱的文件系统。文件系统粗略的分类:下面依次进行介绍:根文件系统根文件系统(rootfs)是内核启动时所 mount(挂载)的第一个文件系统,内核代码映像文件保存在根文件系中,而系统引导启动程序会在根文件系统挂载之后从中把一些基本的初始化脚本和服务等加载到内存中去运行。根文件系统的根目录...

weixin_42099151的博客 3605

OpenCV自学记录(1)——(一拳超人)图像处理基础(图像获取、图像变化)

学习深度学习进行图像分类和目标检测时,要有一定的图像处理的基础。在学习深度学习之前,看了一本《图像处理技术基础》,现在也忘得差不多了,后悔当初没有整理记录下来。现在整理一下图像处理的常用方法,最后实现一个小项目——基于OpenCV的车牌号识别。 OpenCV自学记录(1)——图像处理基础(一)1、图像获取1.1获取图像数据1.2 获取摄像头图像数据2、图像变化2.1 移动(translation)...

qq_40784418的博客 1455

【系统分析师】2025年上半年真题:案例分析-答案及详解(回忆版)

摘要: 试题一考查面向对象分析,涉及用例模型构建的四个阶段(识别参与者、合并需求、细化描述、调整模型),分析CRM系统的参与者与用例,并说明用例间的包含、扩展和泛化关系。 试题二探讨嵌入式Docker,包括容器的轻量性、可移植性及隔离性含义,10项措施与7个规范方面的对应关系,以及优化容器切换时间的三种方法(如无状态连接优化)。 试题三聚焦数据库设计,分析订单表的函数依赖与范式分解(BCNF),讨论分解后是否保持函数依赖及无损性,并针对触发器的性能缺陷提出优化方案。 试题四解析Web开发中的MVC架构与SS

数据知道的博客 6603

linux之文件系统

Linux 文件系统通过 VFS 实现了“统一接口、多类型支持”,其底层依赖超级块、inode、数据块、目录项构建存储结构,通过挂载机制关联设备与目录树。理解这些核心概念和操作,不仅能帮助日常管理(如挂载设备、检查修复),还能根据场景选择最优文件系统,提升系统性能和数据可靠性。

u010632343的博客 1550

【即插即用模块】注意力篇 | TGRS 2025 | CDFIM:通道+空间多尺度注意力,双模态特征融合增强,性能翻倍!

C2DFF-Net提出了一种轻量级跨模态特征融合模块CDFIM,通过模态差异感知和多尺度深度滤波增强双模态互补信息。该模块采用通道-空间注意力协同机制,以极低计算成本(仅增加0.26M参数)提升多模态目标检测性能,在三个遥感数据集上平均提升mAP约1.7%。适用于无人机等边缘设备的实时检测任务,为跨模态融合提供高效解决方案。

主要更新底层视觉(去噪、超分等)相关的科研内容,形式为【论文精读】+【论文复现】 624

linux中什么是文件系统,什么是Linux文件系统 Linux文件系统的基本概念

在 Linux 中,最直观、最可见的部分就是 文件系统(file system)。下面我们就来一起探讨一下关于 Linux 中国的文件系统,系统调用以及文件系统实现背后的原理和思想。这些思想中有一些来源于 MULTICS,现在已经被 Windows 等其他操作系统使用。Linux 的设计理念就是 小的就是好的(Small is Beautiful)。虽然 Linux 只是使用了最简单的机制和少量的...

weixin_35547906的博客 2912

IDEA的使用指南

IDEA基于java的使用手册,可以最快速的上手,在使用中不断的丰富自己的使用技巧.

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

Linux文件系统概览

Linux文件系统知识梳理。

byte轻骑兵的技术小窝 1951

精雕软件(JDpaint) 5.5 绿色版

精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版精雕软件(JDpaint) 5.5 绿色版

Linux 【fs】文件系统

文件系统:File System:管理文件的一套系统:是一种用于管理、存储、组织和检索计算机系统中数据的方法。它定义了如何在磁盘或其他存储设备上组织数据,使得数据可以被有效地存储、访问和修改。文件系统通过将数据存储为文件并将文件组织到目录(也称为文件夹)中来实现这一点。此外,文件系统还处理元数据,例如文件的创建时间、大小和权限,以及为数据分配磁盘空间。

qq_43606536的博客 1610

pscad IEEE标准系统搭建说明

pscad IEEE标准系统搭建说明,包含典型的IEEE 9节点、14节点、30节点、39节点和118节点系统。内含标准测试系统的原始数据和潮流结果。

Linux 文件系统详解

在LINUX系统中有一个重要的概念:一切都是文件。其实这是UNIX哲学的一个体现,而Linux是重写UNIX而来,所以这个概念也就传承了下来。在UNIX系统中,把一切资源都看作是文件,包括硬件设备。UNIX系统把每个硬件都看成是一个文件,通常称为设备文件,这样用户就可以用读写文件的方式实现对硬件的访问。 和 DOS 等操作系统不同,Linux 操作系统中单独的文件...

黄规速博客:学如逆水行舟,不进则退 8361

Linux文件系统,虚拟文件系统,linux内核结构

文章目录一、文件系统1、文件系统概述文件系统种类什么是分区简单理解windows和linux文件系统的区别2、文件系统结构/etc目录下可以设置开机启动程序/proc目录举例二、虚拟文件系统1、定义2、有什么作用?3、cp指令的实现4、从系统编程,从上层到底层来看Linux内核结构1、Linux内核结构框图2、图解linux系统架构3、shellshell脚本 一、文件系统 1、文件系统概述 学术定义:文件系统是操作系统用于明确存储设备的文件和数据结构,即在存储设备上组织文件的方法。 常规认知:根目录 cd

m0_52986396的博客 937

【Linux】文件系统

​ Linux支持各种各样的文件系统格式,如ext2、ext3、reiserfs、FAT、NTFS、iso9660等等,不同的磁盘分区、光盘或其它存储设备都有不同的文件系统格式,然而这些文件系统都可以mount到某个目录下,使我们看到一个统一的目录树,各种文件系统上的目录和文件我们用ls命令看起来是一样的,读写操作用起来也都是一样的,这是怎么做到的呢?4.找到空闲的(data block),要占几个就找几个,然后再块位图中把所占块对应的标志位置成1,把文件内容写入块里,并且把块的地址写入数据块指针里。

2301_79594905的博客 798

linux的文件系统

−或者mkfs.vfat-F 32 /dev/sdb4。−类型支持自动识别,/etc/filesystems。将分区/dev/sdb4格式化成FAT32文件系统。−格式:mkfs -t 文件系统类型分区设备。−或者mkfs.ext4 /dev/sdb1。−-a:加载所有fstab已配置的文件系统。−格式:df[选项]...[文件]...−格式:mount[选项]设备名挂载点。将分区/dev/sdb1挂载到指定位置。−-a:卸载所有已挂载的非伪文件系统。−-U:通过UUID挂载设备。...

m0_55834564的博客 3509

Linux【文件系统】

Linux文件系统采用"一切皆文件"的设计哲学,将硬件设备、进程信息等均抽象为文件。主要包含两个层面:底层文件系统类型(如ext4、XFS、Btrfs等)负责数据存储管理,上层目录树(FHS标准)则规范系统文件组织结构。核心特性包括区分大小写、权限控制、日志功能和挂载机制,支持硬链接与软链接。常用ext4作为默认文件系统,Btrfs和ZFS则提供高级功能如快照、透明压缩等。通过统一接口访问各类资源,体现了Linux系统的高度灵活性和标准化设计。

隐身博客 657

linux的多重文件系统,Linux的文件系统详解

什么是Linux的文件系统Linux下的文件系统结构目前在Linux操作系统中支持很多种文件系统,包括Ext2、Ext4、Btrfs和XFS等,多达几十个文件系统。虽然支持的文件系统种类很多,但从用户层面使用方式无任何差别,用户并不感知其中的差异。对于普通用来说,数据都是组织成上文所述的树状结构。Linux操作系统对各种文件系统的支持是通过名为VFS的组件实现的,也就是虚拟文件系统(Virtual...

weixin_39630247的博客 732

Linux文件系统、虚拟文件系统、分区、文件系统目录结构、Linux内核结构

文件系统是操作系统用于明确存储设备(常见的是磁盘,也有基于NAND Flash的固态硬盘)或分区上的文件的方法和数据结构;即在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件机构称为文件管理系统,简称文件系统。也指用于存储文件的磁盘或分区,或文件系统种类。因此,可以说"我有2个文件系统"意思是他有2个分区,一个存文件,或他用 “扩展文件系统”,意思是文件系统的种类。

qq_58264156的博客 1446
上一篇: 初识动静态库
下一篇: 【数据结构】一步到胃,键值对版二叉搜索树
supdriver
博客等级 码龄3年 192粉丝 40原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值