0x303 计算机中数据的拷贝操作
数据拷贝是一个过程,不是看到了就知道了,发生了就知道了,数据需要传输,世界中所有的数据都需要传输,一个地方发生了一件事,这就是一个数据,如果这个数据并不向外传输,那么别人是无法知道的,向外传输的方式有很多中,如信号传输、线路传输、文字传输等。在计算机底层硬件也一样:读取数据,经过内部总线传输数据,到达目的地,修改指定存储单元信息。
计算机中数据是什么?
计算机中的数据是使用二进制存储的,也就是0和1,0和1通过不同的排列组合表示各种文字、声音、图片等数据。为什么这么存储?因为对于硬件来说描述开和关是易于实现的两个状态。
数据拷贝的过程是什么样的?
- 数据读取:从原始存储单元中将数据读取出来。
- 数据传输:将数据经过内部总线传输到指定的目标位置。
- 写入目标位置:数据到达目标位置后被写入:更改目标位置的二进制编码。
在一个位置未写入数据之前或者该位置的数据被删除后,他的开关状态是什么样的?是随机的吗?一个磁盘剩余多少空间是由某些信息记录的吗?
在计算机硬件和存储中,"开关状态"以及数据存储和删除后的状态,取决于具体的存储技术。
内存中的数据状态
对于RAM(随机访问存储器),在未初始化之前,内存中的数据通常是不确定的,可以认为是"随机"的。这是因为当电源关闭后,DRAM(动态RAM)中的数据会丢失,并且在电源再次接通时,其中的内容是未定义的。有些系统在启动时会清除或初始化内存,但在这之前,内存中的数据是不确定的。当数据被删除或者程序释放了内存空间,操作系统可能会重用这块内存而不立即清除其内容,这意味着直到新的数据被写入之前,旧数据仍然存在于内存中。
磁盘存储的数据状态
对于硬盘驱动器(HDDs)和固态驱动器(SSDs),"删除"数据通常只是在文件系统级别上移除了对应数据的引用,实际上的数据在物理层面上仍然存在,直到被新数据覆盖。因此,从技术上讲,删除操作并不会立即改变存储介质上的物理或逻辑状态。
对于SSDs,还涉及到一个称为"擦除"的过程,这是因为SSDs在写入新数据前需要先清空(擦除)数据块。但即使是数据擦除,也通常是将存储单元重置到一个预定义状态,而非随机状态。
存储空间的记录
关于磁盘剩余空间的记录,操作系统维护了一个文件系统来管理硬盘的空间使用情况。文件系统知道哪些区块被使用了,哪些是空闲的。当文件被删除,文件系统会标记这些空间为可用,从而使得这部分空间可以被新的数据覆盖。
例如,对于基于NTFS、FAT32或EXT4的文件系统,都有自己的方式来追踪哪些区域是已使用的,哪些是空闲的。这些信息通常存储在磁盘的元数据区域,允许操作系统查询总空间、已用空间和剩余空间。
因此,磁盘上的剩余空间确实是由文件系统通过一系列的数据结构和元数据记录的,而不是直接反映在存储介质的物理或电子状态上。这种设计允许复杂的空间管理,包括碎片整理和空间分配策略,以优化存储性能和空间利用率。
内存是如何存储数据的?硬盘是如何存储数据的?为什么内存中的数据会丢失儿硬盘中的数据会保持?SSD和机械盘存储数据的差别是什么?SSD和内存存储数据的差别是什么?
内存(RAM)、机械硬盘(HDD)、固态硬盘(SDD)存储数据的方式
内存
内存分为动态随机访问存储器(DRAM)和静态随机访问存储器(SRAM)
- DRAM:使用电容和晶体管来存储每一位数据,由于电荷会逐渐泄漏,所以需要不断的刷新电荷来保持数据
- SRAM:使用双稳态的晶体管来存储数据,不需要刷新就能保持数据,但是断电后数据依旧会丢失。
内存属于需要电力维持的数据存储方式
HDD
HDD硬盘使用磁性存储技术,数据保存在旋转的磁盘表面。磁头在磁盘表面读写数据,通过修改指定位置的磁性方向来表示0和1。这种技术基于磁性而非电荷,所以在断点后也能保持数据。
硬盘的磁性抗扰动能力
现代磁盘在设计时就考虑到了日常生活中各种磁铁、磁场等的干扰,所以本身设计时就具备一定的磁性抗扰动能力,翻转硬盘中的磁性需要很高的磁场,日常的磁铁一般不会造成磁性翻转,数据丢失的问题。
SDDs
SSD使用闪存(一种非挥发性的存储截止)进行数据存储,最常见的是NAND闪存,NAND闪存通过修改晶体管门的电荷状态来保存数据,这种存储方式在断电后依然能保持数据。