【Linux】基础IO_2

文章目录

  • 六、基础I/O
    • 2. 系统文件I/O
      • 磁盘的存储结构
  • 未完待续


六、基础I/O

2. 系统文件I/O

磁盘的存储结构

系统中不是所有对文件都是打开的状态,大部分的文件都是没有被打开的。这些文件一般都被存储在磁盘当中。磁盘通过柱面,扇面,扇区确定一个固定的储存空间。而文件就存储在这一个个扇区当中。
将一个个扇区展开,像磁带一样,所以磁盘的一片片区域就可以看作一个 数组 。而操作系统通过对数组进行 分块、分区、分组 ,将一个非常大的空间转变成一个小小的空间。使用分治的思想就可以使只管理好一个小小的组就能管理好整个磁盘。
在这里插入图片描述

Block Group:ext2文件系统会根据分区的大小划分为数个Block Group。而每个Block Group都有着相同的结构组成。政府管理各区的例子
超级块(Super Block):存放文件系统本身的结构信息。记录的信息主要有:bolck 和 inode的总量,
未使用的block和inode的数量,一个block和inode的大小,最近一次挂载的时间,最近一次写入数据的时间,最近一次检验磁盘的时间等其他文件系统的相关信息。Super Block的信息被破坏,可以说整个文件系统结构就被破坏了
GDT,Group Descriptor Table:块组描述符,描述块组属性信息,有兴趣的同学可以在了解一下
块位图(Block Bitmap):Block Bitmap中记录着Data Block中哪个数据块已经被占用,哪个数据块没有被占用
inode位图(inode Bitmap):每个bit表示一个inode是否空闲可用。
i节点表:存放文件属性 如 文件大小,所有者,最近修改时间等
数据区:存放文件内容

我们知道,Linux的文件特性:文件 = 内容 + 属性 。文件的内容大小不确定,但是文件的属性大小是确定的(文件的名称不是文件的属性!),因此文件的内容和文件的属性不会存在一起。文件的属性是一个结构体,里面存着文件的属性。但是不知道文件名我们怎么确定文件?Linux通过文件编号来确定一个文件。
在这里插入图片描述
文件的属性的结构体中存储着文件内容所在的块的编号,通过这个编号就能找到相应的文件。


未完待续

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

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

相关文章

Android 屏幕旋转 处理 AsyncTask 和 ProgressDialog 的最佳方案

初始化数据 */ private void initData(Bundle savedInstanceState) { if (savedInstanceState ! null) mDatas savedInstanceState.getStringArrayList(“mDatas”); if (mDatas null) { mLoadingDialog new LoadingDialog(); mLoadingDialog.show(getFragmentMana…

Renesas MCU使用定时器之实现1ms定时中断

目录 概述 1 软硬件介绍 1.1 软件版本信息 1.2 硬件介绍 2 FSP配置项目 2.1 项目参数配置 2.2 配置定时器参数 3 功能实现 3.1 软件架构实现 3.2 实现功能函数 4 测试 概述 本文主要介绍使用Renesas MCU定时器之实现1ms定时中断功能,文中介绍使用FSP配…

深入探索项目中关于Java 8 Stream API使用

目录 1. 数据清洗与预处理2. 统计分析3. 数据转换与导出4. 复杂逻辑处理5. 并行处理 在实际项目中,Java 8的Stream API可以广泛应用于各种数据处理场景,以下是一些具体的应用实例,这些例子不仅展示了Stream API的灵活性,也体现了它…

理解 iOS 开发中的 NS_ENUM 和 NS_OPTIONS

在开发 iOS 应用程序时,理解 NS_ENUM 和 NS_OPTIONS 的使用至关重要,因为它们在定义和管理枚举和选项方面起着重要作用。在本文中,我们将深入探讨 NS_ENUM 和 NS_OPTIONS 之间的区别、使用场景以及如何有效地实现它们。 NS_ENUM NS_ENUM 用…

对兼容各操作系统的Anki选择题模板的更新——提供更方便的笔记修改功能

2021年当我想做一个兼容各操作系统的Anki选择题模板的时候,到处搜索茧中网,根本找不到相关内容,直到偶然在github上看到Simon Lammer的Anki持久化模块,才算真正实现。现在再在茧中网上搜索兼容各种操作系统的Anki选择题模板&#…

Android蓝牙开发(一)之打开蓝牙和设备搜索

private BluetoothManager bluetoothmanger; private​ BluetoothAdapter bluetoothadapter; /** 判断设备是否支持蓝牙 */ bluetoothmanger (BluetoothManager) getSystemService(Context.BLUETOOTH_SERVICE); bluetoothadapter bluetoothmanger.getAdapter(); if (bl…

web中间件漏洞-Jenkins漏洞-弱口令、反弹shell

web中间件漏洞-Jenkins漏洞-弱口令、反弹shell Jenkins弱口令 默认用户一般为jenkins/jenkins 使用admin/admin123登陆成功 Jenkins反弹shell 格式为 println"命令".execute().text 在/tmp目录中生成shell.sh文件,并向其中写入反弹shell的语句 new…

【2024最新华为OD-C/D卷试题汇总】[支持在线评测] 局域网中的服务器个数(200分) - 三语言AC题解(Python/Java/Cpp)

🍭 大家好这里是清隆学长 ,一枚热爱算法的程序员 ✨ 本系列打算持续跟新华为OD-C/D卷的三语言AC题解 💻 ACM银牌🥈| 多次AK大厂笔试 | 编程一对一辅导 👏 感谢大家的订阅➕ 和 喜欢💗 &#x1f…

keepalived高可用,nginx+keepalived+apache架构的实现

目 录 一、概述: 二、实验架构图如图所示: 三、实验环境: 四、实现效果: 五、实验解析及步骤: 六、具体实现: 6.1 先关闭防火墙和核心防护:两条命令: 6.2 后端apache服务…

头歌资源库(16)分苹果

一、 问题描述 二、算法思想 首先,我们可以初始化一个数组apple来记录每个孩子分配的苹果数量,将所有元素初始化为1,表示每个孩子至少分配到一个苹果。 然后,从左到右遍历评分数组ratings,判断当前孩子的评分与前一个…

文件操作<C语言>

导言 平时我们在写程序时,在运行时申请内存空间,运行完时内存空间被收回,如果想要持久化的保存,我们就可以使用文件,所以下文将要介绍一些在程序中完成一些文件操作。 目录 导言 文件流 文件指针 文件的打开与关闭 …

使用go语言高效解析json详解(含多个json库的对比)

在 Go 语言中,解析 JSON 性能的优劣取决于所使用的库。以下是对比 encoding/json、jsoniter、go-json 和 gjson 的性能分析和推荐: 1. encoding/json(标准库) 简介 encoding/json 是 Go 语言的标准库,易用性高且内置于 Go 语言中。然而&…

Java开发笔记Ⅱ(Jsoup爬虫)

Jsoup 爬虫 Java 也能写爬虫!!! Jsoup重要对象如下: Document:文档对象,每个html页面都是一个Document对象 Element:元素对象,一个Document对象里有多个Element对象 Node&#…

Android进程间通信 Messenger详解

//这里服务端Service是运行在单独的进程中的 android:process“:other” class MessengerService : Service() { private lateinit var mMessenger: Messenger override fun onBind(intent: Intent): IBinder { log(TAG, “onBind~”) //传入Handler实例化Messenger mMes…

Golang | Leetcode Golang题解之第174题地下城游戏

题目&#xff1a; 题解&#xff1a; func calculateMinimumHP(dungeon [][]int) int {n, m : len(dungeon), len(dungeon[0])dp : make([][]int, n 1)for i : 0; i < len(dp); i {dp[i] make([]int, m 1)for j : 0; j < len(dp[i]); j {dp[i][j] math.MaxInt32}}dp[…

mysql数据库切换成kingbase(人大金仓)数据库时遇到的字段不存在问题

一、问题描述 mysql数据库切换成国产数据库人大金仓&#xff08;kingbase&#xff09;数据库的遇到的字段不存在的问题,根本原因其实是没有找到相对应的表&#xff0c;报错示例如下图所示&#xff1a; 二、问题解决 1、如果所有的表都发生上述的错误&#xff0c;kingbase的…

初见SpringCloud ing

Consul 服务注册与发现 服务注册与发现 服务注册&#xff1a;微服务在启动时&#xff0c;会将自己的信息&#xff08;如 IP 地址、端口、服务名称等&#xff09;注册到 Consul。 服务发现&#xff1a;其他微服务可以通过 Consul 查询到已注册的服务&#xff0c;并通过这些信息…

算法训练(leetcode)第十五天 | 654. 最大二叉树、617. 合并二叉树、700. 二叉搜索树中的搜索、98. 验证二叉搜索树

刷题记录 654. 最大二叉树617. 合并二叉树700. 二叉搜索树中的搜索直接前序遍历借助BST性质 98. 验证二叉搜索树中规中矩版简洁版&#xff1a; 654. 最大二叉树 leetcode题目地址 本题和106. 从中序与后序遍历序列构造二叉树的思路类似&#xff0c;递归建树&#xff0c;每次找…

基于matlab的不同边缘检测算子的边缘检测

1 原理 1.1 边缘检测概述 边缘检测是图像处理和计算机视觉中的基本问题&#xff0c;其目的在于标识数字图像中亮度变化明显的点。这些变化通常反映了图像属性的重要事件和变化&#xff0c;如深度不连续、表面方向不连续、物质属性变化和场景照明变化等。边缘检测在特征提取中…

OSPF 2类LSA详解

概述 上图为2类LSA : Network LSA 的报文格式 , 我们重点关注3个报文字段即可 , 其他内容没有实际的信息 Link State ID : DR的接口IP地址 Network Mask : 该MA网络的掩码 Attached Router : 连接在该MA网络的所有路由器的Router ID 2类LSA一定是DR产生的 , 关于OSPF DR的细节…