一个文件被打开io流和不打卡 inode

1. 磁盘 

   最小基本单位 扇区 

 机器磁盘的io效率 (读和取)

2. 文件系统 

   对磁盘分区 ,最小的文件单位块组,快组内部已经划分好区域,巴拉巴拉,总之,每次使用数据,以操作系统的处理都是块级的,而这些块内部的区域已经划分好了,所以需要提前对内存格式化

 

一 . 创建文件

   确定路径,获取

 

 

首先我已经理解了在文件系统中最小的逻辑单位是4kb 以快组位单位 而且快组内部已经被划分号区域了 ,有块组描述符: 里面放了当前块组inode表使用的起始位置,空于数据块的起始位置以便于创建文件的时候定位 位 : innode位图表: 和inode表:这也是一块内存而且是连续的:里面放的是一系列的inode的结构体指针,这个inode的结构体指针其中主要有: inode的编号,文件属性,还有databloc[num]数组,这个数组里面都是直接或者间接存放着指向块组的数据块区的索引位置,指向的数据块内容可能直接放着数据也可能是二级索引,又指向了其他的位置,举例来说 如果是二级索引: datablock数组的大小是15x4: 也就是60个下标的话那可以指向60x4个kb的块组(忽略其他区的大小因为他们很小),这些块组的也会加入指定的inode, 每一个块组有128MB的数据库大小 ,一个索引int 类型也就4字节 这里有 128 x1024x1024 /4 个索引 15个块组又可以存: 128 x1024x1024 /4 x15 个索引 每一个索引指向4kb:所以最终可以指向 : 128 x1024x1024 /4 x15 x4kb 的大小 现在这样分析就理解透彻了整个区域划分后的功能,补充的是 inode bit图它存放的是inode表inode的使用情况, 所以 我们的inode位图表 和block位图表 像一个全局变量一样来指向我们的inode和数据块(128mb) ,然后inode结构体又又来指向数据内容和结构属性。 有了这些我们可以很轻松的阐述关于创建文件和删除文件的过程,创建一个文件 通过块组描述符(确定inode和block块的起始位置) 然后遍历inode表和block表找到空于位置进行存入数据。 当我们想删数据的时候,又可以通过innode表找到修改我们的innode位图和块位图即可 不需要对数据块修改 因为删除只需要覆盖即可,

 

 

 

 

创建一个文件是要确定当前的目录路径的,每一次都要往 会递归到根目录 然后一步步的进入回到当前目录才能找到当前目录的inode 但是这样效率太慢了 linux操作系统会对你最近常用的路径信息进行缓存 叫做dentry缓存

 

 

  ls -li 可以看到文件的inode

 

创建硬连接以后他的文件属性也是和之前一样吗

吗软链接不一样

    

不允许给目录建立硬连接举个例子如果我们在某一个目录建立了一个根目录的硬连接当我们用find命令的时候从根目录开始递归的访问每一个目录遇到这个硬连接的时候就会出现回路问题一直下去出现系统级别的错误 

   但是硬连接给目录的还有..和.因为系统建立的这两个是技术上允许也可以实习的,操作系统不相信用户但是实现这两个可以用来定位路径同时也不会出现一个问题find命令不会对.和..进行查找的

 

 

 

 

 

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

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

相关文章

ThermoSeek:热稳定蛋白数据库

这篇论文提出了ThermoSeek,一个综合性的网络资源,用于分析来自嗜热和嗜冷物种的蛋白质序列和结构。具体来说,数据收集:从美国国家生物技术信息中心(NCBI)的基因组数据库中收集了物种的分类ID,并…

leetcode算法刷题的第二十七天

1.leetcode 56.合并区间 题目链接 class Solution { public:static bool cmp(const vector<int>& a,const vector<int>& b){return a[0]<b[0];}vector<vector<int>> merge(vector<vector<int>>& intervals) {vector<v…

解决 Apache/WAF SSL 证书链不完整导致的 PKIX path building failed 问题

文章目录解决 Apache/WAF SSL 证书链不完整导致的 PKIX path building failed 问题为什么会出现证书链错误&#xff1f;常见场景直连服务器正常&#xff0c;但经过 WAF 出错Windows/Linux 下证书文件说明引入 WAF 或其他中间层&#xff1a;解决方法方法一&#xff1a;单独配置 …

十一、标准化和软件知识产权基础知识

1 标准化基础知识 1.1 基本概念 1.1.1 标准的分类 1.1.1.1 按使用范围分类 国际标准&#xff1a;由国际组织如 ISO、IEC 制定的标准。国家标准&#xff1a;由国家标准化机构制定的标准&#xff0c;如中国的 GB&#xff0c;美国 ANSI。行业标准&#xff1a;由行业主管部门制定的…

计算机毕设选题:基于Python数据挖掘的高考志愿推荐系统

精彩专栏推荐订阅&#xff1a;在 下方专栏&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb;&#x1f447;&#x1f3fb; &#x1f496;&#x1f525;作者主页&#xff1a;计算机毕设木哥&#x1f525; &#x1f496; 文章目录 一、项目介绍二…

什么是PCB工艺边?猎板给您分享设计要点

什么是PCB工艺边&#xff1f;猎板给您分享设计要点在PCB设计和制造领域&#xff0c;工艺边是一个看似简单却至关重要的概念&#xff0c;它直接关系到生产流程的顺畅性与最终产品的质量。本文将为您详细解析PCB工艺边的定义、作用、设计要点&#xff0c;并分享猎板PCB在高精度制…

Rustdesk搭建与客户端修改与编译

Rustdesk是一个开源的远程桌面工具&#xff0c;客户端可以自己定制修改编译 这里主要记录一下搭建的过程 服务端搭建 主要是参考了这篇文章&#xff0c;感觉作者分享~ 在 Linux VPS 上创建 RustDesk 服务器 - 知乎 https://zhuanlan.zhihu.com/p/1922729751656765374 这里主要…

数字人系统源码搭建与定制化开发:从技术架构到落地实践

随着元宇宙、直播电商、智能客服等领域的爆发&#xff0c;数字人从概念走向商业化落地&#xff0c;其定制化需求也从 “单一形象展示” 升级为 “多场景交互能力”。本文将从技术底层出发&#xff0c;拆解数字人系统的源码搭建逻辑&#xff0c;结合定制化开发中的核心痛点&…

2025国赛C题创新论文+代码可视化 NIPT 的时点选择与胎儿的异常判定

2025国赛C题创新论文代码可视化 NIPT 的时点选择与胎儿的异常判定基于多通道LED光谱优化的人体节律调节与睡眠质量评估模型摘要无创产前检测&#xff08;NIPT&#xff09;通过分析孕妇血浆中胎儿游离DNA来筛查染色体异常&#xff0c;其准确性很大程度上依赖于胎儿Y染色体浓度的…

2021/07 JLPT听力原文 问题一 4番

4番&#xff1a;女の人が新しい商品の紹介をしています。よく頭が痛くなる人は、どの商品を選びますか。女&#xff1a;こちら、新発売の中国茶をご案内します。今回皆様にご紹介いたしますのは、月・星・虹・空のお茶の4種類でございます。さあ、どうぞ召し上がってください。…

爆改YOLOv8 | 即插即用的AKConv让目标检测既轻量又提点

突破固定卷积核的局限,让卷积核形状随目标变化而动态调整 目标检测技术在当今计算机视觉领域扮演着至关重要的角色,而YOLO系列作为其中佼佼者,以其高速和高精度获得了广泛应用。但在实际应用中,传统的卷积操作存在一些固有缺陷**。本文介绍了一种创新性的改进方案——AKCon…

linux inotify 功能详解

内核宏开启机制inotify 功能依赖 Linux 内核宏 CONFIG_INOTIFY_USER CONFIG_INOTIFY_USER=y该宏控制用户态程序能否调用 inotify 相关系统调用,如 inotify_init(),inotify_add_watch() inotifywait 侧重实时响应,适合触发后续操作; inotifywatch 侧重数据统计,适合分析事件…

Docker Registry 实现原理、适用场景、常用操作及搭建详解

一、实现原理 Docker Registry 是基于 无状态服务架构 的镜像存储与分发系统&#xff0c;其核心设计包含以下关键点&#xff1a;存储驱动抽象层 Registry 通过 storagedriver.StorageDriver 接口实现存储解耦&#xff0c;支持多种后端存储&#xff1a; 本地存储&#xff1a;默认…

【LeetCode热题100道笔记】轮转数组

题目描述 给定一个整数数组 nums&#xff0c;将数组中的元素向右轮转 k 个位置&#xff0c;其中 k 是非负数。 示例 1: 输入: nums [1,2,3,4,5,6,7], k 3 输出: [5,6,7,1,2,3,4] 解释: 向右轮转 1 步: [7,1,2,3,4,5,6] 向右轮转 2 步: [6,7,1,2,3,4,5] 向右轮转 3 步: [5,6,7…

【Linux我做主】细说进程等待

Linux进程等待Linux进程等待github地址0. 前言1. 进程等待的必要性1.1 避免僵尸进程与资源泄漏1.2 僵尸进程不可被直接清除1.3 获取子进程的运行结果2. 进程等待的三个问题1. 为什么要有进程等待2. 进程等待是什么3. 怎么实现进程等待3. 僵尸进程演示4. waitwait的手册声明wait…

大语言模型对齐

大语言模型对齐的重要性与目标研究 一、引言 随着大语言模型 (LLM) 能力的不断提升和应用场景的日益广泛,这些模型在为人类社会带来巨大便利的同时,也引发了一系列关于安全性、可靠性和伦理问题的担忧(9)。大语言模型的对齐 (alignment) 作为确保这些强大的 AI 系统与人类价…

数组(4)

int mid min (key - arr[min]) / (arr[max] - arr[min]) * (max - min);17.数组常见算法4 分块查找18.数组常见算法5 冒泡排序笔记小程序错误#include<stdio.h> int main() {/*冒泡排序&#xff1a;1.相邻的元素两两比较&#xff0c;大的放右边&#xff0c;小的放左边2…

STM32 读写备份寄存器

本章节功能利用备份寄存器&#xff08;BKP&#xff09;实现数据的掉电保存&#xff0c;并通过按键和OLED显示屏进行交互。使能电源&#xff08;PWR&#xff09;和备份域&#xff08;BKP&#xff09;的时钟&#xff08; RCC_APB1PeriphClockCmd 函数&#xff09;&#xff0c;并…

RabbitMinQ(模拟实现消息队列项目)02

目录 十.整合数据库和文件数据 创建DiskDataManager类 十一.内存结构设计 创建MeneryDataCenter类: 实现集合操作: 对MemoryDataCenter类功能测试: 十二.整合内存和磁盘数据 创建VirtualHost类: Exchange: MSGQueue: Binding: 创建Router类 对Router类的TOPIC匹配…

Unity Standard Shader 解析(五)之ShadowCaster

一、ShadowCaster // ------------------------------------------------------------------// Shadow rendering passPass {Name "ShadowCaster"Tags { "LightMode" "ShadowCaster" }ZWrite On ZTest LEqualCGPROGRAM#pragma target 3.0// --…