常见问题

使用U盘传数据时操作系统做了什么(源码分析)(一)(u盘拷电脑东西会有记录吗)没想到,

时间:2024-07-16 11:23:37 来源:快捷一键重装官网 人气:66

核心提示: 一、背景学习Linux文件系统时考虑一个具体的问题:我们经常会用U盘传输东西到计算机中。当我们把U盘插入到一...

一、大背景

自学Linux硬盘时考量两个具体内容的问题:他们时常要用U盘数据传输小东西到计算机控制系统中。当他们把U盘填入到两台计算机控制系统上,因此从U尾盘拷贝文档到计算机控制系统里,接着装载U盘,将U盘取下。作业控制系统在这连串操作过程中做了些甚么?这篇网志仅从硬盘的视角借助linuxMach源代码Saramon该操作过程。第一集网志采用的linuxMach版为3.10.0。

二、硬盘此基础

1.硬盘

在开始以后我想先单纯如是说呵呵硬盘的基本知识。 

全屏还原控制系统们都知道,计算机控制系统硬盘被抽象化成了两个个块电子设备,两个块做为两个数据流。我的控制系统块大小不一为1KB,linux中能采用df指示来查阅块大小不一。

在块抽象化上还有另几层抽象化,主要由三部份共同组成:DT块、i结点表、统计数据块。每一部份都由若干个的块来共同组成。总之,统计数据块挤占最少的块。 

方便快捷全屏重装控制系统

图中展现了这四个部份。其中鼓励块我无此这儿详细描述。i结点也叫i-node,也能叫作检索结点。用法相同,前述指同一个第一类。 

以EXT4硬盘为例,全屏还原控制系统接下去我对这四个地区依次进行如是说:

DT块

DT块用以叙述整座硬盘这类的重要信息。每一具体内容的硬盘如:EXT2、EXT3、EXT4、NTFS,它都保有自己的DT块。各别的DT块叙述着各别硬盘的情况。 

这儿给我们展现EXT4硬盘的DT块在linuxMach中的表述(部份): 

方便快捷全屏重装控制系统EXT4硬盘的DT块表述存放在/fs/ext4文档夹下的ext4.h中

i结点

i结点存储于i结点表中。i结点中存储着大量的关全屏还原控制系统于文档的重要重要信息,如文档的各种属性,文档的统计数据存储的位置等。

EXT4硬盘i结点在Mach中的表述(部份): 

方便快捷全屏重装控制系统EXT4硬盘的i结点表述存放在/fs/ext4文档夹下的ext4.h中

统计数据区

统计数据区,顾名思义,存储的是文档的具体内容统计数据。每一文档挤占多个块来进行存储。通过i结点来指向这些统计数据块的位置。 

当两个文档“静静”的在硬盘上时,i结点用以叙述这个文档,每一文档对应两个i结点号,这个i结点号之于文档就相当全屏还原控制系统于身份证号之于他们公民。i结点中存储着关于文档的各种属性,因此i结点也叙述了文档统计数据的存储位置。

那么,现在有个问题。 

当他们打开两个文档,需要读取文档的属性或者文档的统计数据时作业控制系统是怎么做的?总之这个文档的重要信息需要被读取到内存中进行处理。首先,他们需要知道他们有没有权限打开这个文档,那么肯定就要查阅该文档i结点中存储的属性重要信息。因为文档权限就是文档的两个属性。所以该文档的i结点的重要信息需要被读取到内存全屏还原控制系统中。

各种相同的硬盘的文档都可能被作业控制系统打开,所以i结点重要信息都可能需要读取到内存中。面对相同的硬盘,作业控制系统如何进行统一的管理就成了问题。由此,作业控制系统引入了一种抽象化的硬盘,这种抽象化的硬盘能用同一个组控制系统调用对各种相同的硬盘以及文档进行操作。这种抽象化的硬盘被称作虚拟硬盘。