在正式介绍文件系统之前, 我们先来聊聊存储
信息存储是人类亘古不变的话题.上古结绳而治,后世圣人易之以书契,人们一直在不断探索着信息存储的载体,以承载历史,传播文明,延续人类社会的发展. 那么自然而言的引出一个问题: 如何保存某一个时刻的状态?
按理来说只要计算机有内存了就可以使用了, 开机上电, 计算, 关机掉电. 但是随着我们计算机能力的增长, 就有了一个很自然的需求: 除了当前状态, 我们希望更大更多的数据能够保存下来, 给别人用或者给下一次的计算来用. 因此当我们谈持久的时候, 指的是可以长时间存储数据的介质, 这也是构成一切文件的基础
计算机软件设计者和计算机用户希望存储器的容量越大越好,速度越快越好,价格越便宜越好.但事实上"容量大、速度快、价格低"的3个要求是相互制约的.我们的解决的办法就是采用多种存储器构成存储器结构层次, 从高层向低层,存储设备变得越来越慢,但同时也变得更大更便宜.
持久化存储并没有想象中的那么困难, 三体中有一段非常有名的话:
文明像一场五千年的狂奔,不断的进步推动着更快的进步,无数的奇迹催生出更大的奇迹,人类似乎拥有了神一般的力量……但最后发现,真正的力量在时间手里,留下脚印比创造世界更难,在这文明的尽头,他们也只能做远古的婴儿时代做过的事.
把字刻在石头上.
但仅仅如此显然不够, 存储还应该能够按地址寻址, 并且访问速度尽可能的快. 数据存储技术的发展,可以说是一段漫长而又充满神奇色彩的历程,承载着人类智慧与技术创新.从最早的打孔卡开始,它逐渐经历了磁存储、硬盘、闪存,以及现在的云存储;
这一路的发展不仅见证了数据存储技术的飞速进步,也反映了人类对信息记载与保存的不断追求,下面我们来介绍一下科学和工程在存储器发展历史上的高光时刻!
穿孔纸带出现于19世纪30年代.穿孔纸带每一行代表一个字符,可穿过的孔代表"1",不能穿过的孔代表"0",经过光电扫描输入计算机.
打孔卡制表机的发明,带来了巨大的效率提升,从而迅速普及,标志着半自动化数据处理系统时代的开始,后来逐渐被广泛应用于工业检索及数据统计领域;打孔卡制表机最多可记录960 bits的信息数据,其中穿孔卡和穿孔纸带类似于早期计算机中的输入和输出设备,原理是将程序和数据转换为二进制代码,其中带孔为1,无孔为0,再经过光电扫描输入电脑.
打孔卡制表机毕竟属于机械式存储技术,虽然相比传统人力有了较大提升,但仍存在存储量低、故障率高等问题.18世纪末,电信号技术的发明宛如一阵清风,将磁介质存储时代的序幕缓缓拉开,人类开始进入由机械向电子过渡的阶段;最早关于磁介质的相关发现,是Oberlin Smith于1888年在英国<电气世界>杂志上发表的一篇可采用磁性介质记录声音的文章.
纸带虽然可以存储, 但是显然不易修改. 相比之下磁是一种非常好的存储介质, 一方面是因为它可以被很方便的通过磁化来改变状态, 另一方面是因为电和磁可以相互转化, 我们可以用电流产生磁场来磁化对应的数据, 也可以通过感应磁场产生电流读取数据
1898年,丹麦工程师Valdemar Poulsen将Oberlin Smith的想法付诸实践,在电报机中引入了磁线技术,发明了人类第一个实用的磁声记录和再现设备,即磁线电报机其原理是通过磁头对声音电信号进行传输和记录.1928年,在磁线电报机的基础上,德国工程师Fritz Pfleumer发现移动过程中的磁带被磁化的程度会随音频信号电流的强弱而变化,从而能将音频记录在磁带上,从而发明了录音磁带,录音磁带的发明标志着磁性存储时代的正式开启.
我们只需要将一张纸带卷起来, 均匀的栈上铁磁性颗粒. 加上一个可以转动的机械部件, 通过放大感应电流读取数据, 通过电磁铁磁化磁针就可以完成持久化存储, 不仅仅存储音频, 还可以存储数据, 也就是下图所示的磁带
磁带的价格很低, 容量很高, 顺序读取速度还可以, 但是由于磁带需要转到对应的位置, 所以随机读取几乎完全不行, 且存在机械部件, 需要严苛的环境保存
可能你认为磁带如今已经被时代淘汰了, 但其实不然. 磁带胜在价格低容量大, 在部分专业领域的存储市场仍占用一席之地, 尤其是电影行业. 新式的磁带协议 LTO, 采用了更小的磁性材料垂直排列, 甚至可以随机读写
随着工业化和信息化的不断发展,数据信息需要更高效、更便捷的存储方式,1932年,奥地利工程师Gustav Tauschek发明的磁鼓存储器使得磁存储技术跃上新台阶;它是一种利用高速旋转的圆柱体磁性表面作记录媒体的存储设备,其原理是通过电磁感应进行信息的读写,在磁芯存储器出现之前广泛用于计算机内存,同时也用于做二级存储,被认为是机械硬盘(Hard Disk Drive,HDD)的前身.
磁鼓相当于从 1D 的磁带进化到了 1.5D, 用旋转的二维平面来存储数据. 但是这种设计的代价实在是太高了, 虽然可以将数据并行的读取, 但是需要为每一个线圈都配备一个读写头, 这个成本显然是不划算的
大约在 1955 年至 1975 年间的 20 年中, 磁芯存储器(Magnetic-core memory)是随机存取计算机存储器的主要形式
这种存储器采用两根或多根导线穿过每个磁芯,形成一个 X-Y
磁芯阵列.当超过某个阈值的电流施加到电线上时,磁芯将被磁化.通过将一根 X 线和一根 Y 线供电至所需功率的一半来选择要写入的芯线,这样只写入交叉点处的单个芯线. 每一个存储单元称为一个核心记忆(core)
当不被读取或写入时,内核会保持它们拥有的最后一个值,即使电源关闭也是如此.因此,它们是一种非易失性存储器.根据它的接线方式,核心内存可能非常可靠. 现在通常在计算机程序中发生重大错误时, 操作系统会将内存的全部内容保存到磁盘以供检查而产生的文件,被称为"核心转储", 也就是 core dump, 原意指的是将磁芯(core)上的值dump到另一个地方, 现在这个词也被继承了下来, 当执行可执行程序执行遇到内存错误时就可以看到 coredump 的提示, 操作系统会将内存的数值转写到磁盘里
coredump 通常用于帮助诊断和调试计算机程序中的错误. 当程序崩溃或以其他方式异常终止时, 程序状态的其他关键部分被转储,包括处理器寄存器,其中可能包括程序计数器和堆栈指针、内存管理信息以及其他处理器和操作系统的标志和信息.快照转储(或快照转储)是计算机操作员或正在运行的程序请求的内存转储,之后程序可以继续.
TODO 一个 coredump 和调试的示例
科技的脚步从未停止. 1956年,IBM发布了世界上第一块硬盘IBM 350 RAMAC,它包含50个24英寸的盘片,能存储500万个字符,约5MB的数据,传输速度达10KB/s; IBM 350 RAMAC以旋转的磁盘方式存储数据,提高了数据的可访问性和可靠性,奠定了现当代大规模数据存储和处理的基础,标志着人类正式进入硬盘时代.
这里需要注意, 这里的硬盘(Hard Disk Drive,HDD)指的是磁盘, 不是现在的固态硬盘(Solid State Drive, SSD)
硬盘的机械结构如下:
硬盘包含很多个盘片, 每一个盘片有两面, 在逻辑上被划分为磁道、柱面以及扇区.
硬盘的发展方向主要体现在容量上的增大,以及体积上的减小
20世纪90年代,诺贝尔物理学奖得主Albert Fert和Peter Grunberg发现了巨磁电阻效应,基于该效应研究的GMR巨磁阻效应磁头技术,以及SMR瓦楞式堆叠磁盘技术,成功将HDD的磁道密度提升了上百倍.2007年是存储技术重要里程碑的一年,日立于2003年收购了IBM硬盘事业部后,率先推出了TB级别的硬盘;该硬盘采用了垂直存储技术,将盘片的磁场方向由平行变为垂直,更好充分利用了存储空间.此外,垂直存储技术能耗小,发热量减小,改善了数据抵抗热退减的能力,提高了硬盘的可靠性.
2010年,氦气封装技术量产,除了让硬盘容量变大以外,温度和能耗也降低了,耐用度和稳定性获得了大幅提升.
2022年,希捷推出了容量为22TB,采用叠瓦式的HDD,刷新了HDD最大单盘容量的记录.由于人们对少量数据的便捷存储和交换需求的出现,另外,当时的存储设备存在容量不足等问题
硬盘存储介质密度很高, 容量很大, 成本也很低, 顺序和随机的读写速度都很高, 但是依然存在机械部件, 如果磕碰容易导致磁头划伤盘片导致数据损坏, 尽管如此由于容量大价格低如今仍然是计算机系统的主力数据存储
更多阅读 disk
1971年,IBM发布了世界上第一张只读8英寸的最早个人可移介质,即软盘,容量为80KB.软盘将读写头和盘片分开, 实现了数据移动
从1971年直到20世纪90年代的近三十年内,软盘广泛应用于个人电脑和其他电子设备,并带动了计算机行业的快速发展.
如今电脑默认盘为 C 盘就是因为在 IBM PC 时代 AB 是留给软盘的驱动器标号, 它的启动顺序是先看 A/B 盘. 保存图标也是软盘的形状
虽然价格便宜, 但是容量低可靠性低速度差, 如今只能躺在博物馆里供人参观, 彻底被 USB flash disk 杀死
相比之下,光盘的存储容量、读写速度、可靠性都更优秀.1965年,美国物理学家家James Russell发明了第一个Compact Disk/CD(数字-光学记录和回放系统). 光盘实际上就是在表面挖了一个个小坑, 激光扫过表面就能够根据坑的深浅得到不同的反射信息, 进而判断出数据
挖坑虽然是一个只读的方式, 但是它可以存储很大量的数据. 光盘在很长的一段时间里面,都都是数字媒体发行的主流产品, 因为挖坑比磁这种方式要更容易批量的写入.
在印刷技术的发展历程中,活字印刷术的发明极大地促进了书籍的批量生产.通过制作一块包含文字和图像的印版,可以快速地复制出大量相同的纸张页面.这种高效的复制方式在光盘制造领域也得到了类似的应用,称为"压盘".
在光盘的制造过程中,首先需要创建一个母盘,这个母盘是将光盘上的数据坑纹与非数据区域进行对调的模板.一旦母盘制作完成,它就可以在生产线上被用来快速复制出大量的光盘发行版.
这种方法在软件发布时显得尤为高效.例如,当微软公司发布Windows XP操作系统时,或者电影、游戏厂商发布新作品时,他们不需要逐字节地通过磁带机进行数据写入.利用压盘技术,可以一次性并行地复制所有数据到光盘上,极大地提高了生产效率和发行速度.这种技术的应用,为内容的大规模分发提供了得天独厚的优势.
光盘因其低廉的价格和复制成本,在高速互联网之前的时代成为了理想的数据发行介质.它不仅推动了计算机、游戏和数字媒体产业的发展,还因其良好的容量、较快的顺序读写速度以及高可靠性而受到青睐.即使表面有划痕,光盘的数据依然可以通过激光读取,显示出其良好的数据保护能力.至今,光盘仍是一种有价值的存储介质,适合长期保存不常访问的数据,如老电影等.此外,光盘制造中采用的"挖坑"技术也被应用于芯片制造的光刻机中.
后来也有发展过对于 CD 盘的可写的技术,即CD-RW. 集成电路发明之后,就有了掩膜编程的只读存储器MROM(Mask-programmed ROM),但这类传统的ROM只可读而不可擦除或修改,灵活性差.1956年,美国Bosch Arma公司的华裔科学家周文俊,正式发明了可编程的只读存储器PROM(Programmable ROM),其原理是通过释放高压脉冲以改变内部构造,从而可实现内容一次性修改或编程;
历史上的存储介质,如磁盘和光盘,因为包含机械部件而存在一些固有的缺陷.这些机械部件通常以环形结构卷绕在平面上,导致无法避免毫秒级的延迟问题.此外,机械部件的易损性也使得这些存储介质容易损坏,存在安全隐患.例如,即便是转速高达1万4千转的机械硬盘,其性能提升的边际效益也逐渐减少.
为了寻求更高效的存储解决方案,人们转向了电路技术,因为电路可以与CPU和内存的速度相匹配.闪存,作为一种基于电路的存储技术,其基本原理是通过控制一个浮动栅极的电荷状态来存储数据.这种充电和放电的过程允许电路精确控制微小的1比特数据,实现高速、低延迟的数据存取.
1959年,贝尔实验室的工程师Mohamed M. Atalla和姜大元共同发明了金属氧化物半导体场效应晶体管(MOSFET),为半导体存储器的发展奠定了基础.1967年,姜大元与施敏提出了浮栅概念,为可重编程ROM的存储单元奠定了理论基础.
1980年,东芝的舛冈富士雄发明了快速擦除的浮栅存储器Flash,但未受到东芝的重视.1984年,舛冈富士雄公开发表了 NOR Flash
,1987年又发明了 NAND Flash
.英特尔对NOR Flash表现出极大兴趣,并在1988年生产了第一款商用NOR Flash闪存芯片.东芝则在1989年发布了世界上第一个NAND Flash产品.
NOR Flash 舛冈富士雄
闪存价格更为亲民,存储容量大,它采用三维或2.5D的存储方式,在XYZ坐标系中可以放置大量的比特信息,这种设计使得存储密度远高于传统的平面存储介质.
此外,闪存的读写速度非常快,因为它通过电路直接进行数据读写,没有机械硬盘的旋转延迟.闪存的一个独特优势是其并行处理能力,即容量越大,读写速度越快.这是因为更大的容量意味着更多的电路可以同时工作,从而实现数据的快速并行读写.
这一点在市面上销售的固态硬盘(SSD)中得到了体现,容量更大的SSD往往具有更快的读写速度.
闪存的另一个优点是其耐用性,由于没有机械部件,它对摔击和震动具有更高的耐受性.例如,即使电脑从一定高度掉落,闪存依然能够正常工作,显示出其出色的耐用性.
然而尽管闪存具有众多优点,但它也存在一个致命的缺点,那就是写入次数的限制.闪存单元的写入次数是有限的,超过一定次数后,单元可能会失效,这限制了闪存的长期使用和数据的可靠性.尽管如此,闪存技术仍在不断发展,科学家和工程师正致力于解决这一问题,以提高闪存的性能和使用寿命.
很多人会将硬盘, 磁盘, 固态硬盘, NVMe 这些概念搞混, 这里做一个区分:
此外由于没有机械部件,SSD对震动和冲击有更好的抵抗力,更加耐用.此外,固态硬盘的寿命通常比硬盘更长,因为它没有机械磨损的问题, 运行时几乎没有噪音,发热也相对较低, 几乎全是优点
U盘(USB + NAND flash), SD 卡, SSD 都使用的是 NAND Flash, 但软件/硬件系统的复杂程度不同,效率/寿命也不同. SSD 内部包含一个完整的操作系统, SSD = CPU + DRAM + NAND + ...
当读写 SSD 的时候其实并不是真的直接读写 NAND flash 颗粒, 而是先去读写它的 buffer(DRAM), SSD 控制器会做一些写入的块映射, 不让某一个块被频繁的写入导致到达寿命
更多阅读 ssd
新型存储技术的发展是为了应对传统存储技术面临的挑战,如体积增大、容量增长缓慢和性能提升有限.目前,主要的新型存储技术包括相变存储器(PCM)、铁电存储器(FeRAM)、磁性存储器(MRAM,包括STT-RAM)和阻变存储器(ReRAM).
PCM利用相变材料的状态转换来存储数据,结合了NAND Flash的非易失性和DRAM的高读写速度,具有低延迟、高密度和低功耗的特点.PCM技术的发展始于20世纪60年代,经历了长期的研究和工艺进步,目前已有商用产品,但仍面临应用瓶颈和成本问题.
FeRAM以其低耗电量、高写入速度和长读写寿命等优势受到关注,尽管存储密度和容量有限,但在特定应用场景中具有发展潜力.FeRAM技术自1952年提出以来,已有量产产品,并在汽车、物联网等领域得到应用,但技术瓶颈仍需突破.
MRAM利用磁场极化存储数据,具有SRAM的高速读写能力和DRAM的高集成度.MRAM技术自1984年发明以来不断改进,STT-MRAM作为主流商业化方案,已在多个领域得到应用.随着容量提升和成本下降,MRAM有望替代NAND Flash成为主力外部存储产品.
ReRAM作为一种新型非易失性存储器,以电阻变化存储数据,具有简单结构、低功耗和高速重写的特点.ReRAM适合多级存储,有望在AIoT、智能汽车等领域广泛应用,被视为存算一体的理想选择.尽管ReRAM仍处于研发阶段,但其在新兴存储技术中具有显著优势.
无论是内存还是持久存储,最终胜出的仍然是电. 它的密度和速度是其他介质难以比拟的.但同时我们也看到,NAND Flash 作为持久存储时有着巨大的缺陷_写入寿命.但我们也看到了工业界竟然敢于试制这样跨时代的产品,在十多年的争议中终究成为了今天存储的主角.如果更快的 non-volatile memory 到来,我们的计算机系统是否会发生翻天覆地的变化?
数据存储技术的发展,就像一本厚重的史书,每一页都记载有精心雕琢的故事,描绘着那些年我们如何从最初的石墨纸,演变为如今的云存储.而今,数据存储已经从最初的打孔卡、硬盘,闪存发展至如今的云存储;这个过程就像一部史诗般的电影,展现了人类对于技术的无尽追求和创新的宝贵精神.未来,数据存储技术还将继续发展,如同宇宙的探索一样,未知而充满无限可能.