【Linux】:文件系统

news2024/10/7 12:26:39

文件系统

  • 一.认识硬件-磁盘
    • 1.磁盘的物理构成
    • 2.磁盘的存储构成
    • 3.逻辑结构
  • 二.文件系统

文件=内容+属性,前面我们所说的文件操作都是针对以打开的文件,那么未打开的文件呢?当然是在磁盘上储存着,接下来谈谈它是如何储存的。

在这里插入图片描述

一.认识硬件-磁盘

1.磁盘的物理构成

在2000年的时候流行过一段时间的光盘。

在这里插入图片描述

这种光盘有一面是光滑的,而磁盘就由一个或者多个这样的光盘组成(它的两面都是光滑的)。

在这里插入图片描述

在这里插入图片描述

在这里插入图片描述

磁盘有一个磁头,当电脑关机时,磁头就会转到磁头停靠点。当磁盘通电时,磁盘会顺时针或逆时针高速旋转,同时磁头也会来回摆动。整个磁盘的底部会有一个与电脑的连接口,当把磁盘插入到电脑里时,电脑就能通过连接的总线把二进制信号读入电脑。

在这里插入图片描述

磁头是两面都有,如果只有一个光盘那么就有两个磁头,如果是两个光盘,那么就有四个磁头。注意磁头和盘面不接触。

2.磁盘的存储构成

在这里插入图片描述

磁盘上的数据是有规律的,它会循着马达向外部扩散,形成一个一个的同心圈,数据就储存在这些圆上,这些同心圆被称为磁道。在盘面上还会有一条条的线,将磁道分割成一个个扇形区域,这些区域被称为扇区。磁盘被访问的最基本单位就是扇区-一般512B/4KB。

在这里插入图片描述

要把数据储存到磁盘第一个问题就是定位—面->磁道->扇区。 从上往下看,多个圆重合在一起形成一个柱形结构,这个结构被称为柱面。前面说到磁头会左右摆动,就是在定位磁道。

磁盘为什么慢主要取决于:1.确认磁道;2.盘片的自转。 如果数据无序,势必会导致盘片的自转次数变多。所以运动越少,效率越高;运动越多,效率越低。

3.逻辑结构

虽然在物理结构上是圆形,但在逻辑结构上可以看成线性。

在这里插入图片描述

每一个扇区都有对应的下标,那么这样我们就能通过下标计算它所处的面,磁道。

回归到硬件:不仅CPU里有寄存器,磁盘里也有寄存器。

在这里插入图片描述

进程可以让操作系统间接的帮忙检查状态寄存器,判断状态是否变化,如果变化则操作结束,否则进行等待。然后IO访问控制寄存器,查看指令,接着对数据进行相应的操作。

二.文件系统

如果一个电脑的磁盘有800GB的大小,那么毫无疑问这对于操作系统来说太大了不易于管理。于是我们可以将磁盘划分为C盘,D盘…之类的,当然这还是有些大,于是操作系统就引入了Inode。

在这里插入图片描述

BootBlock:一般被称为启动分区,主要包括一些磁盘分区的起止位置,开机信息等等。

Block group:就是把磁盘划分成更多份。那么就把一块很大的磁盘变成了管理一个Block group的小快。而这些块里面的就是文件系统。

Data Blocks:存文件内容的区域。

Linux ext2文件系统,上图为磁盘文件系统图(内核内存映像肯定有所不同),磁盘是典型的块设备,硬盘分区被划分为一个个的block。一个block的大小是由格式化的时候确定的,并且不可以更改。例如mke2fs的-b选项可以设定block大小为1024、2048或4096字节。而上图中启动块(Boot Block)的大小是确定的。

在这里插入图片描述

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

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

相关文章

学完能拿20k的接口自动化测试框架教程 涵盖框架源码+视频教程以及搭建流程

自动化测试 自动化测试,这几年行业内的热词,也是测试人员进阶的必备技能,更是软件测试未来发展的趋势。 特别是在敏捷模式下,产品迭代速度快,市场不断调整,客户需求不断变化,单纯的手工测试越…

【已验证】微信小程序php连接SQL Server数据库代码

微信实现通过PHP连接到数据库,分为三步:首先写index.php的接口代码,然后在微信小程序的js页面上调用php接口方法连接到数据库(通过url地址的方式),最后在小程序的wxml页面将控制台的数据显示在页面上。 微信…

口袋参谋:如何挑选淘宝热词?这一招很重要!

​在电商行业待了快十年之久了,据我的了解99.99%的中小卖家,在开店初期根本就不知道如何选词! 最后选出来的关键词,无非就一种结果,那就是根本搜不到宝贝,或者就干脆没人搜,根本没流量&#xf…

数据库数据迁移常见方式

数据库数据迁移常见方式 数据库数据迁移常见方式1、通过sql2、通过数据迁移工具3、云服务进行数据迁移什么是DRS服务如何使用DRS服务DRS云服务可以干什么 数据库数据迁移常见方式 1、通过sql 批量导入sql insert into tableName select * 2、通过数据迁移工具 在数据库里面…

概念解析 | 数字通信中的调制技术

注1:本文系“概念解析”系列之一,致力于简洁清晰地解释、辨析复杂而专业的概念。本次辨析的概念是:调制。 数字通信中的调制技术 一、背景介绍 在数字通信系统中,信息源产生的信息信号通常是低频基带信号,而用于传输的载波通常是高频正弦信号。为了将信息信号有效地加载到载波…

Spring RabbitMQ那些事(1-交换机配置消息发送订阅实操)

这里写目录标题 一、序言二、配置文件application.yml三、RabbitMQ交换机和队列配置1、定义4个队列2、定义Fanout交换机和队列绑定关系2、定义Direct交换机和队列绑定关系3、定义Topic交换机和队列绑定关系4、定义Header交换机和队列绑定关系 四、RabbitMQ消费者配置五、Rabbit…

npm ERR! code ERESOLVE,npm ERR! ERESOLVE unable to resolve dependency tree

前言 当你第一次下包,或者删除node_module之后,突然npm i报错,这是因为npm版本导致的 可能是某些包版本跟npm 不兼容导致的(peerDependencies) npm ERR! code ERESOLVE,npm ERR! ERESOLVE unable to resolve depend…

mysql之高阶语句

1、使用select语句,用order by对表进行排序【尽量用数字列进行排序】 select id,name,score from info order by score desc; ASC升序排列(默认) DESC降序排列(需要添加) (1)order by结合whe…

怎么写好宣传稿件?纯干货

企业宣传稿件撰写并不难,有框架、有模板,再有知识储备就行,今天伯乐网络传媒和大家分享新闻稿写作套路,超实用的新闻稿套路➕模板,教你从0到1学会企业宣传稿写作!纯干货,建议收藏起来慢慢看&…

uniapp原生插件之安卓友盟消息推送原生插件

插件介绍 安卓友盟消息推送原生插件,支持自定义响铃,震动,免打扰时间段,厂商离线推送等 插件地址 安卓友盟消息推送原生插件 - DCloud 插件市场 详细使用文档 uniapp 安卓友盟消息推送原生插件使用文档 超级福利 uniapp 插…

深度学习_10_softmax_实战

由于网上代码的画图功能是基于jupyter记事本,而我用的是pycham,这导致画图代码不兼容pycharm,所以删去部分代码,以便能更好的在pycharm上运行 完整代码: import torch from d2l import torch as d2l"创建训练集&创建检测集合"…

STM32 TIM定时器,配置,详解(1)

计数器寄存器(TIMx_CNT)、预分频器寄存器(TIMx_PSC)、自动重载寄存器(TIMx_ARR)。 PSC预分频器,顾名思义,先预备一下分频,有时候频率过高,后面的定时器承受不住,就先用PSC先分频一下。如何分频的?将每接受到…

PTE作文练习(一)

目录 65分备考建议 WE模版 范文 Supporting ideas: SWT 65分备考建议 RA重在多听标准的正确的示范,RS重在抓大放小,WFD重在整理错题,以及反反复复的车轮战,FIBRW重在“以对代记” 就是直接看答案,节约时间&#…

Python编程的四个关键点——都知道吗?快来查漏补缺!

文章目录 前言一、Python 中的类型提示二、Python 虚拟环境和包管理三、新的 Python 语法四、Python 测试关于Python技术储备一、Python所有方向的学习路线二、Python基础学习视频三、精品Python学习书籍四、Python工具包项目源码合集①Python工具包②Python实战案例③Python小…

响应式新闻博客资讯网站模板源码带后台

模板信息: 模板编号:29779 模板编码:UTF8 模板分类:博客、文章、资讯、其他 适合行业:博客类企业 模板介绍: 本模板自带eyoucms内核,无需再下载eyou系统,原创设计、手工书写DIVCSS&a…

uniapp原生插件之安卓腾讯Bugly专业版原生插件

插件介绍 Bugly专业版是TDS腾讯端服务(Tencent Device-oriented Service)旗下的端质量监控平台,通过采集、监控、定位、告警等核心能力,提供专业的质量监控服务,帮助开发者及时发现并解决质量问题,打造高质…

SQL注入漏洞:CMS布尔盲注python脚本编写

SQL注入漏洞:CMS布尔盲注python脚本编写 文章目录 SQL注入漏洞:CMS布尔盲注python脚本编写库名爆破爆破表名用户名密码爆破 库名爆破 import requests #库名 database"" x0 while requests.get(urlf"http://10.9.47.77/cms/show.php?id33%20and%20length(data…

动态规划实例——01 背包详解

题目描述 有 n 件物品,每件物品有一个重量和一个价值,分别记为 w1,w2,…,wn 和 c1,c2,…,cn。现在有一个背包,其容量为 wk,要从 n 件物品种任取若干件。要求…

Python---capitalize() 方法---把字符串的首字母大写,其他字符全部小写,title()方法--把字符串中的所有单词的首字母大写,组成大驼峰

capitalize 英 /ˈkpɪtəlaɪz/ v. 用大写字母书写(或印刷),把……首字母大写;为(开办或发展企业)提供资金;(将资产或股票)变现,使资本化;&…

Window10安装Docker

文章目录 Window10安装Docker前提条件Hyper -VWSL 2.0 安装包下载执行安装包更新 Window10安装Docker 前提条件 Hyper -V 如何启用 WSL 2.0 安装包下载 官网地址 下载后: 执行安装包 wsl --update等得有点久 重新打开 拉取一个helloworld镜像 说明已经…