当前位置: 首页 > news >正文

Linux —— 文件系统

目录

一,背景

二,文件系统


一,磁盘简介

        磁盘分为SSD、机械磁盘;机械磁盘,即磁盘高速转动,磁头移动到读写扇区所在磁道,让磁头在目标扇区上划过,即可完成对扇区的读写操作;

        在操作系统角度,内存使用的基本单位为4KB;磁盘存储的基本单位为扇区512byte(512*8=4KB);内存和磁盘间数据交互,是通过文件系统完成的;输入输出I/O的基本单位也是一般4KB;一次性从磁盘读入8个扇区数据,来填满一个内存;

二,文件系统

文件(打开文件、未打开文件,类似进程和程序的关系)

  • 已打开的文件,内存内,struct file,包含属性和方法;
  • 未打开的磁盘文件,未被加载到内存;

文件系统,是OS对打开的文件和未打开的文件的管理;

文件 = 属性 + 内容

//文件属性
[wz@192 Desktop]$ ll
total 24
-rw-r--r--. 1 wz wz   11 8月  10 19:39 log.txt
-rw-rw-r--. 1 wz wz   29 7月  21 07:31 Makefile
-rwxrwxr-x. 1 wz wz 8648 8月  10 19:44 target
-rw-rw-r--. 1 wz wz  374 8月  10 19:47 test.c
//模式 硬链接数 所有者 组 大小 修改时间 文件名
[wz@192 Desktop]$ stat log.txt File: ‘log.txt’Size: 11        	Blocks: 8          IO Block: 4096   regular file
Device: 803h/2051d	Inode: 5465892     Links: 1
Access: (0644/-rw-r--r--)  Uid: ( 1000/      wz)   Gid: ( 1000/      wz)
Context: unconfined_u:object_r:user_home_t:s0
Access: 2023-08-10 19:40:07.816510338 -0700
Modify: 2023-08-10 19:39:52.677512582 -0700
Change: 2023-08-10 19:39:52.680512582 -0700Birth: -

文件系统分类

  • 磁盘文件系统,EXT2/3/4、VFAT、FAT/FAT16/FAT32、NTFS(windows)等;
  • 网络文件系统,NFS、Samda等;
  • 虚拟文件系统,是物理文件系统与服务应用之间的一个接口层;

  • Super Block,存放文件系统本身的结构信息,记录的信息有:block和inode的总量,未使用的block和inode的数量,一个block和inode的大小,最近一次挂载时间,最近一次写入数据的时间,最近一次检验磁盘的时间等,如super block信息损坏,则整个文件系统结构就损坏了;
  • Group Descriptors Table,描述块组属性信息;
  • Block Bitmaps,记录data blocks中哪个数据块被占用,哪个没有;
  • Inode Bitmap,每个bit表示一个inode是否空闲可用;
  • Inode Table,存放文件属性;
  • Data Blocks,存放文件内容;

inode,基本上一个文件/目录一个inode,是文件所有的属性集合(不包括文件名);真正标识文件的不是文件名,是文件inode;inode和数据块是关联的;

创建新文件4个主要操作

  • 存储属性,内核先找到一个空闲的inode,把文件信息记录其中;
  • 存储数据
  • 记录分配情况
  • 添加文件名到目录

软硬链接

  • 软链接,是一个普通正常的文件,有自己独立的inode;其数据块,保存了指向链接文件的路径;类似于Windows的快捷方式;
  • 硬链接,不是一个独立额文件,没有自己独立的inode;
//创建软链接
[wz@192 Desktop]$ ln -s file.txt soft_link
[wz@192 Desktop]$ ll -ai soft_link file.txt 
5465893 -rw-rw-r--. 1 wz wz 0 8月  12 03:51 file.txt
5465912 lrwxrwxrwx. 1 wz wz 8 8月  12 03:49 soft_link -> file.txt
//创建硬链接
[wz@192 Desktop]$ ln file.txt hard_link
[wz@192 Desktop]$ ll -ai file.txt  hard_link 
5465893 -rw-rw-r--. 2 wz wz 6 8月  12 03:53 file.txt
5465893 -rw-rw-r--. 2 wz wz 6 8月  12 03:53 hard_link
//目录文件链接数为2
//本身目录名和inode的映射关系
//自身目录内还有一个默认的.文件
[wz@192 Desktop]$ ll -ai
total 3674071 drwxr-xr-x.  3 wz wz  126 8月  12 05:07 .
16777672 drwx------. 19 wz wz 4096 7月  31 06:28 ..
18335283 drwxrwxr-x.  2 wz wz    6 8月  12 05:07 dir
[wz@192 Desktop]$ ll -ai dir
total 0
18335283 drwxrwxr-x. 2 wz wz   6 8月  12 05:07 .74071 drwxr-xr-x. 3 wz wz 126 8月  12 05:07 ..
//在dir目录下新建一个文件,目录dir的链接数变为了3
//目录sudir内的默认..文件
[wz@192 Desktop]$ mkdir dir/subdir
[wz@192 Desktop]$ ll -dai dir
18335283 drwxrwxr-x. 3 wz wz 20 8月  12 05:11 dir
[wz@192 Desktop]$ ll -ai dir/subdir/
total 0
33815814 drwxrwxr-x. 2 wz wz  6 8月  12 05:11 .
18335283 drwxrwxr-x. 3 wz wz 20 8月  12 05:11 ..

相关文章:

Linux —— 文件系统

目录 一,背景 二,文件系统 一,磁盘简介 磁盘分为SSD、机械磁盘;机械磁盘,即磁盘高速转动,磁头移动到读写扇区所在磁道,让磁头在目标扇区上划过,即可完成对扇区的读写操作&#xff…...

自然策略优化的解释 Natural Policy Optimization

Natural Policy Optimization(自然策略优化)是一种用于优化策略梯度算法的方法。它是基于概率策略的强化学习算法,旨在通过迭代地更新策略参数来最大化累积回报。 传统的策略梯度算法通常使用梯度上升法来更新策略参数,但这种方法…...

docker基本使用方法

docker使用 1. Docker 介绍 Docker 可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。Docker 使您能够将应用程序与基础架构分开,从而可以快速交付软件。通过利用 …...

机器学习(十八):Bagging和随机森林

全文共10000余字,预计阅读时间约30~40分钟 | 满满干货(附数据及代码),建议收藏! 本文目标:理解什么是集成学习,明确Bagging算法的过程,熟悉随机森林算法的原理及其在Sklearn中的各参数定义和使用方法 代码…...

使用蓝牙外设却不小心把台式机电脑蓝牙关了

起因 今天犯了一个贼SB的错误,起因是蓝牙键盘突然就不能输入了(虽然是连接状态,但是按什么键都没有反应) 原来我的解决方法就是重启一下电脑,但是那会电脑开了贼多的软件。我就想重启也太麻烦了,既然重启…...

美国Linux服务器安装Grafana和配置zabbix数据源的教程

美国Linux服务器的Grafana工具是跨平台、开源、时序和可视化面板Dashboard监控平台工具,是在日常管理中帮忙提高效率的实用工具,可以通过将采集的美国Linux服务器系统数据查询后,进行可视化的展示及通知,本文小编就来介绍下美国Li…...

[ROS安装问题] rosdep update 失败报错

【关于ROS安装】 由于日益复杂的国际形势,按照wiki官网的ROS安装流程变得相当困难,这里我推荐使用鱼香ROS大佬写的脚本一键傻瓜式安装: wget http://fishros.com/install -O fishros && . fishros 【关于rosdep失败】 这已经是一…...

Vue2到3 Day5 全套学习内容,众多案例上手(内付源码)

简介: Vue2到3 Day1-3 全套学习内容,众多案例上手(内付源码)_星辰大海1412的博客-CSDN博客本文是一篇入门级的Vue.js介绍文章,旨在帮助读者了解Vue.js框架的基本概念和核心功能。Vue.js是一款流行的JavaScript前端框架…...

STM32 CubeMX (uart_IAP串口)简单示例

STM32 CubeMX STM32 CubeMX (串口IAP) STM32 CubeMXIAP有什么用?整体思路 一、STM32 CubeMX 设置时钟树UART使能UART初始化设置 二、代码部分文件移植![在这里插入图片描述](https://img-blog.csdnimg.cn/0c4841d8328b4169a8833f15fe3d670c.p…...

Kafka:安装和配置

producer:发布消息的对象,称为消息产生者 (Kafka topic producer) topic:Kafka将消息分门别类,每一个消息称为一个主题(topic) consumer:订阅消息并处理发布消息的对象…...

786. 第k个数

文章目录 QuestionIdeasCode Question 给定一个长度为 n 的整数数列,以及一个整数 k ,请用快速选择算法求出数列从小到大排序后的第 k 个数。 输入格式 第一行包含两个整数 n 和 k 。 第二行包含 n 个整数(所有整数均在 1∼109 范围内&…...

用友-NC-Cloud远程代码执行漏洞[2023-HW]

用友-NC-Cloud远程代码执行漏洞[2023-HW] 一、漏洞介绍二、资产搜索三、漏洞复现PoC小龙POC检测脚本: 四、修复建议 免责声明:请勿利用文章内的相关技术从事非法测试,由于传播、利用此文所提供的信息或者工具而造成的任何直接或者间接的后果及损失&#…...

Transformer(二)(VIT,TNT)(基于视觉CV)

目录 1.视觉中的Attention 2.VIT框架(图像分类,不需要decoder) 2.1整体框架 2.2.CNN和Transformer遇到的问题 2.3.1CNN 2.3.2Transformer 2.3.3二者对比 2.4.公式理解 3TNT 参考文献 1.视觉中的Attention 对于人类而言看到一幅图可以立…...

Scratch 详解 之 线性→代数之——求两线段交点坐标

可能有人要问:求交点坐标有什么用呢?而且为啥要用线代来求?直线方程不行吗??? 这个问题,我只能说,直线方程计算的次数过多了,而且动不动就要考虑线的方向,90的…...

Python-组合数据类型

今天要介绍的是Python的组合数据类型 整理不易,希望得到大家的支持,欢迎各位读者评论点赞收藏 感谢! 目录 知识点知识导图1、组合数据类型的基本概念1.1 组合数据类型1.2 集合类型概述1.3 序列类型概述1.4 映射类型概述 2、列表类型2.1 列表的…...

vue3+vue-simple-uploader实现大文件上传

vue-simple-uploader本身是基于vue2实现,如果要使用vue3会报错。如何在vue3中使用,可参考我的另一篇文章:解决vue3中不能使用vue-simple-uploader__Jyann_的博客-CSDN博客 一.实现思路 使用vue-simple-uploader组件的uploader组件,设置自动上传为false,即可开启手动上传。…...

自适应变异麻雀搜索算法及其Matlab实现

麻雀搜索算法( sparrow search algorithm,SSA) 是2020 年新提出的一种元启发式算法[1],它是受麻雀种群的觅食和反捕食行为启发,将搜索群体分为发现者、加入者和侦察者 3 部分,其相互分工寻找最优值,通过 19 个标准测试…...

ETL技术入门之ETLCloud初认识

首先ETL是什么? ETL代表“Extract, Transform, Load”,是一种用于数据集成和转换的过程。它在数据管理和分析中扮演着重要的角色。下面我们将分解每个步骤: Extract(抽取): 这一步骤涉及从多个不同的数据源…...

uniapp项目如何运行在微信小程序模拟器上

在HbuilderX中的小程序写完后自己一定要保存,否则会出不来效果 那么怎么让uniapp项目运行在微信小程序开发工具中呢 1 在hbuilderx中点击运行到小程序模拟器 2 然后在项目目录中会生成一个文件夹 在微信小程序开发软件中的工具>安全设置>打开端口 或者在微…...

数据挖掘全流程解析

数据挖掘全流程解析 数据指标选择 在这一阶段,使用直方图和柱状图的方式对数据进行分析,观察什么数据属性对于因变量会产生更加明显的结果。 如何绘制直方图和条形统计图 数据清洗 观察数据是否存在数据缺失或者离群点的情况。 数据异常的两种情况…...

UDP(Echoserver)

网络命令 Ping 命令 检测网络是否连通 使用方法: ping -c 次数 网址ping -c 3 www.baidu.comnetstat 命令 netstat 是一个用来查看网络状态的重要工具. 语法:netstat [选项] 功能:查看网络状态 常用选项: n 拒绝显示别名&#…...

转转集团旗下首家二手多品类循环仓店“超级转转”开业

6月9日,国内领先的循环经济企业转转集团旗下首家二手多品类循环仓店“超级转转”正式开业。 转转集团创始人兼CEO黄炜、转转循环时尚发起人朱珠、转转集团COO兼红布林CEO胡伟琨、王府井集团副总裁祝捷等出席了开业剪彩仪式。 据「TMT星球」了解,“超级…...

ffmpeg(四):滤镜命令

FFmpeg 的滤镜命令是用于音视频处理中的强大工具,可以完成剪裁、缩放、加水印、调色、合成、旋转、模糊、叠加字幕等复杂的操作。其核心语法格式一般如下: ffmpeg -i input.mp4 -vf "滤镜参数" output.mp4或者带音频滤镜: ffmpeg…...

Linux-07 ubuntu 的 chrome 启动不了

文章目录 问题原因解决步骤一、卸载旧版chrome二、重新安装chorme三、启动不了,报错如下四、启动不了,解决如下 总结 问题原因 在应用中可以看到chrome,但是打不开(说明:原来的ubuntu系统出问题了,这个是备用的硬盘&a…...

【论文阅读28】-CNN-BiLSTM-Attention-(2024)

本文把滑坡位移序列拆开、筛优质因子,再用 CNN-BiLSTM-Attention 来动态预测每个子序列,最后重构出总位移,预测效果超越传统模型。 文章目录 1 引言2 方法2.1 位移时间序列加性模型2.2 变分模态分解 (VMD) 具体步骤2.3.1 样本熵(S…...

selenium学习实战【Python爬虫】

selenium学习实战【Python爬虫】 文章目录 selenium学习实战【Python爬虫】一、声明二、学习目标三、安装依赖3.1 安装selenium库3.2 安装浏览器驱动3.2.1 查看Edge版本3.2.2 驱动安装 四、代码讲解4.1 配置浏览器4.2 加载更多4.3 寻找内容4.4 完整代码 五、报告文件爬取5.1 提…...

【生成模型】视频生成论文调研

工作清单 上游应用方向:控制、速度、时长、高动态、多主体驱动 类型工作基础模型WAN / WAN-VACE / HunyuanVideo控制条件轨迹控制ATI~镜头控制ReCamMaster~多主体驱动Phantom~音频驱动Let Them Talk: Audio-Driven Multi-Person Conversational Video Generation速…...

【C++进阶篇】智能指针

C内存管理终极指南:智能指针从入门到源码剖析 一. 智能指针1.1 auto_ptr1.2 unique_ptr1.3 shared_ptr1.4 make_shared 二. 原理三. shared_ptr循环引用问题三. 线程安全问题四. 内存泄漏4.1 什么是内存泄漏4.2 危害4.3 避免内存泄漏 五. 最后 一. 智能指针 智能指…...

LabVIEW双光子成像系统技术

双光子成像技术的核心特性 双光子成像通过双低能量光子协同激发机制,展现出显著的技术优势: 深层组织穿透能力:适用于活体组织深度成像 高分辨率观测性能:满足微观结构的精细研究需求 低光毒性特点:减少对样本的损伤…...

GraphQL 实战篇:Apollo Client 配置与缓存

GraphQL 实战篇:Apollo Client 配置与缓存 上一篇:GraphQL 入门篇:基础查询语法 依旧和上一篇的笔记一样,主实操,没啥过多的细节讲解,代码具体在: https://github.com/GoldenaArcher/graphql…...