Answers:
它从磁盘读取它。
磁盘上的数据不仅是结构化的(如@psusi所说),而且还经过了编码。编码可确保记录的数据不会与扇区标题中的位置标记混淆,因此可以读取循环流,直到找到目标位置标记为止。
据我了解,现代硬盘并不能完全做到这一点。他们将整个圆读入缓冲区,跟踪每个扇区的位置,然后使用缓冲区发送回请求的数据。
更新:
磁性介质是具有具有两个关键属性的磁场的材料:1)它永远不会自行改变; 2)记录设备可以改变表面上任何点的磁场方向。读取媒体时,传感器会检测到磁场朝向传感器的方向和远离传感器的方向。当传感器在整个表面上移动时,它会检测这些极性转变的时间。解码的第一层将这些时序转换为比特值。由于此过程中的物理必要不确定性,因此编码不得要求相同极性的长时间延伸;也就是说,它必须是游程长度受限编码(RLL)。
硬盘设计的细节通常是商业秘密,但是本质上有两种方法可以确保扇区标记永远不会出现在扇区内容中:
设计一个允许特殊值的RLL,这些值永远不会由于对内容数据进行编码而产生。这些特殊值不仅可以用于标记扇区边界,还可以用于纠错或任何其他辅助目的。
使用第二层编码,以确保标记值仅出现在标记处。这有点像URL编码,以允许在URL中“隐藏”特殊字符,但是有一个额外的限制,即等同于限制可以添加的字符个数,因此最终类似于base64编码。
因此,读取头在整个表面上移动以检测磁极性变化,这些变化的时间用于确定相应的位值序列(可能包括一些不代表存储数据的异常值),并且该序列用于确定正在读取的扇区以及这些扇区的内容。当确定扇区的内容时,数据可以存储在固态缓冲器中和/或存储在RAM缓冲器中和/或发送回以满足请求。
数据不以任意的1和0的流形式写入。它是按扇区编写的。每个扇区都有用户数据的有效负载和标头。标头包含纠错码,以及标识扇区开始的特殊同步字段和扇区号,以便驱动器可以知道何时找到扇区的开始以及它是哪个扇区。
Psusi是正确的(磁盘上的数据是结构化的,并且计算机的不同部分使用该结构的不同部分),但实际上并没有解决您的问题。
该驱动器并不真正“知道”任何东西。它具有低级电子设备,可以读取磁盘上的标记(通常在工厂或驱动器头本身上写入),从磁盘读取数据块或将数据块写入磁盘,或判断磁盘上的特定位置磁盘损坏或损坏,或者应将其移至磁盘上的特定位置。这就是“了解”的全部内容。阅读头本身并不会决定将其移动到其他地方,机器中更高的东西告诉它...
除了其他答案外,某些硬盘肯定(过去也可能仍然有)具有一个盘片(以“磁头/磁头/扇区”表示),保留用于校准/定位数据,根本不用于用户数据存储。
您正在寻找的答案包括两个部分:
1)硬件控制器
2)文件系统
就像您说的那样,在HDD(与SSD等其他技术相反)中,实际数据被写入到圆形金属板上,成为同心圆环,并保持形成图案的磁场。存放此数据的磁盘上方是写头,该写头可移动以读取和写入数据,就像黑胶唱片播放器一样。它移动的盘片连接到控制其旋转的电动机上。
硬件控制器充当操作系统和硬盘驱动器之间的接口。控制器可以读取写入头的位置以及盘片的旋转,并使用此信息来决定如何放置磁头和盘片以进行读取和写入。它将来自操作系统的读取和写入请求转换为控制信号,这些信号可移动写头并旋转磁盘,并将从操作系统传入的并行数据转换为一条串行数据线。它还拆分该串行线,并确定将每个部件放入哪个物理位置或扇区,并以文件系统指定的方式记录此信息。
文件系统是有关如何以及在何处存储数据的规范。计算机的操作系统知道如何解释此文件系统,并使用此知识与硬件控制器进行充分的通信,在这种情况下,将数据的圆环分成称为扇区的可用段,并告诉文件系统这些扇区的物理位置。文件系统为每个扇区提供一个地址,该地址只是一个唯一的数字,并且该地址由硬件控制器转换为特定的磁盘旋转和读取磁头位置,以开始读取或写入。
有关更多信息,这些Wikipedia文章中的以下部分非常有用:
请参阅此处的简介和第3.1节“空间管理”:https : //en.wikipedia.org/wiki/File_system
请参见2.1节“磁性记录”在这里: https://en.wikipedia.org/wiki/Hard_disk_drive#Magnetic_recording