[{"content":"在正传里，我们规规矩矩走完了一条几乎像教科书划定的路线：从 1 bit 到 1 YB。每一个路标都指向同一个终点——8 位字节的绝对统治。\n但历史不是一条直线。在我们踩过的那条明路底下，还埋着一张错综复杂的地下路网——那些曾经繁荣过、被一整代工程师当成物竞天择的理所当然、却最终被“字节”帝国车轮碾碎的单位。\n它们没有墓碑。但你如果愿意掀开计算机史的井盖，那些名字还在下面幽幽地发光：nibble、18-bit word、36-bit word、variable word length。这一篇，我们就讲讲它们的遗言。\n一、nibble：半个字节，一辈子的小弟 在所有被遗忘的单位里，nibble 大概是最憋屈的一个。它不是被淘汰的——它是压根没混到过上场机会。\nnibble 是 4 个比特，半个字节。它的诞生几乎紧贴着“byte”这个词。按照 David B. Benson 的回忆，他早在 1958 年就在洛斯阿拉莫斯用上了“nibble”这个叫法，而“byte”正式诞生于 1956 年左右。也就是说，老大哥刚落地，这个小弟就紧跟着来了。\n名字的来源透着一股五六十年代工程师特有的冷幽默。“Byte”是从“bite”改拼写来的，那半个 bite 叫什么？小口轻咬——nibble。这不是哪个标准委员会的官宣，这是几个写汇编的家伙在茶水间啃三明治时的即兴发挥。\n但笑话讲完，悲剧就已经注定了。IBM System/360 把世界推进 8 位字节的轨道之后，nibble 就彻底成了“存在但没人需要”的东西。你不会用半个字节去寻址，寄存器里也读不进一个独立的 nibble。它确实活下来了——在十六进制编辑器里、在 BCD 编码的角落、在调试时偶尔蹦出来的 high nibble 和 low nibble 里——但它从来没当过主角，连配角都算不上。\n如果说 nibble 只是一个生不逢时的小兄弟，那接下来这几个，可是真正当过帝王的。\n二、18 位字：人类第一款电子游戏 1959 年，一家叫 DEC 的初创公司造出了自己的第一台计算机。他们不敢叫它“computer”——那个年代，“计算机”意味着几百万美元、一整个机房，还有 IBM 的维修合同。风险投资人明确警告：不许造计算机。于是 DEC 给它起了个温和无害的名字：Programmed Data Processor-1，简称 PDP-1。\nPDP-1 的字长是 18 位。为什么是 18？因为在那个年代，“一个字该多长”还没有标准答案。DEC 的工程师同时在开发 12 位、18 位和 36 位的架构，每一种都在试探不同的市场角落。对比 IBM 那些昂贵到只有国防部才养得起的大家伙，18 位更短、更便宜、指令集只有 28 条——说白了，这是第一台大学和实验室买得起的“平民计算机”。\n它没辜负这个定位。就是在 PDP-1 上，麻省理工的黑客文化开始萌芽。1962 年，Steve Russell 写出了人类历史上第一款电子游戏——《Spacewar!》。两个玩家各操纵一艘飞船在重力井附近缠斗，屏幕上每一条轨迹，都是 18 位指令在磁芯内存里翻飞的结果。\nPDP-1 的主内存有 4096 个 18 位字，换算成 8 位字节大约相当于 9,216 字节——也就是我们俗称的 9 KB。九千个字节。你今天用手机随手拍一张糊到不行的照片，够塞下几百台 PDP-1 的全部记忆。\n18 位字的后代——PDP-4、PDP-7、PDP-9、PDP-15——又硬撑了将近二十年。直到 1970 年，DEC 推出了 16 位的 PDP-11。那句老话怎么说来着？杀死你的往往不是更强的对手，而是更便宜、更多人用的对手。PDP-11 在全生命周期内卖出了超过 60 万台，18 位字长的旧世界，被标准化和规模化的成本优势无声地卷走了。\n三、36 位字：当优雅撞上标准，优雅会输 在所有被遗忘的字长里，36 位是最不该被忘记的一个。它不光是统治过科学计算的江山，还留下了一堆让后人咋舌的传说。\nDEC 阵营里，36 位的血脉始于 1963 年的 PDP-6。这台机器被当时的那帮极客公认为优雅到了极致——是真正程序员才配用的计算机。但商业上，它惨得一塌糊涂。全球只卖出 23 台，是 PDP 全系列最失败的型号。之所以卖不动，硬件可靠性是一个大坑：它有一些大型系统模块，在当年的印刷电路板技术下属于步子太大扯着蛋。\n但 PDP-6 的架构并没有随商业失败进棺材。1968 年，DEC 推出了 PDP-10，保留 36 位字长和几乎相同的指令集，但硬件实现彻底翻新了，用了分立晶体管和 DEC 自家的 Flip-Chip 封装技术。PDP-10 从 1968 年一直卖到 1983 年，截至 1980 年末大约售出了 1500 台。\n为什么是 36？这数字看着古怪，但其实是一个数学家才会欣赏的选择：36 恰好等于 2² × 3²，拥有极其丰富的因数分解结构。它既能塞下 6 个 6 位字符，也能精确表达 10 位十进制数——在当年的科学计算里，这种十进制精度是无可替代的硬通货。\n斯坦福人工智能实验室（SAIL）的黄金岁月，就是在一台双处理器 PDP-10 上度过的，主内存有 262K 个 36 位字。后来 SAIL 还装了一台绰号叫“Moby”的 Fabri-Tek 大容量磁芯存储器，容量达到 256K 字，在当时被认为大得像白鲸，大到不真实。SAIL 那台机器不光跑 AI 论文——John McCarthy 和 Les Earnest 那帮人还拿它来生成音乐乐谱。更离谱的是，1965 年 11 月，有人通过一条电报线路，从波士顿远程操作了一台设在澳大利亚珀斯的 PDP-6，完成了可能是人类历史上最早的洲际远程计算连接。\n当 System/360 用 8 位字节和 32 位字长横扫商业世界时，36 位社区的人怀抱着一种骄傲的鄙夷，管自己的地盘叫“真正的计算”。\n但骄傲不能当饭吃。随着 1970 年代后期交互式分时系统被微型计算机取代，32 位架构在成本、生态和标准化上的优势织成了一张密不透风的网。1983 年，PDP-10 产品线被 DEC 叫停，被自家 32 位的 VAX 超小型机取代。1984 年，最后一台 PDP-10 走下产线。\n36 位，卒。墓志铭上可以刻一行字：优雅撞上了标准，优雅输了。\n四、可变字长：灵活是灵活，但兼容性的债迟早要还 如果说 36 位教会我们的是“标准的碾压之力”，那可变字长的故事，教的是另一堂课：生态兼容性的成本，从来不会消失，它只会迟到。\n在 1950 到 1960 年代，IBM 的 700/7000 系列大型机内部同时跑着好几套完全不同的存储架构。其中专为商业数据处理打造的那条线——所谓的 Commercial 架构——用的就是可变字长。代表机型包括 IBM 702、705，以及 1961 年推出的晶体管升级版 IBM 7080。\n在这些机器上，一个“字”有多长？没准。数据以字符为单位存储，指令可以操作任意连续的字符序列。你想想，银行户名长度不定，保险地址长度不定，交易备注长度不定——用固定字长去框这些数据纯属给自己找不痛快。可变字长在处理这类活计上简直就是量身定做。\n但代价是什么呢？IBM 在同一个时期同时维护着好几条完全不同的产品线——加上 1400 系列就是五种——每一种都得单独写软件、配外设。在某个具体应用上，可变字长也许优雅极了。但当你需要让两台不同字长的机器交换数据时，程序员就变成了翻译官，而且是没有词典的那种。\n这就是 System/360 为什么必须诞生。Fred Brooks 后来在回忆录里把 System/360 的统一架构称为“IBM 历史上最痛苦也最必要的决定”——痛苦是因为它要一刀砍掉多条产品线，必要是因为再这么各自为政下去，连 IBM 自己的工程师都维护不过来了。1964 年 System/360 发布，8 位字节成为帝国统一的度量衡。所有不能对齐到 8 位倍数的字长——包括可变字长——被一刀切出局。\n五、1 位机和 4 位机：躲在历史角落里的活化石 除了字长，还有一些因为“太小了”而被遗忘的整台计算机。\n1971 年，英特尔推出了 4004——全世界第一款商用微处理器。它是一颗 4 位 CPU。片内集成了约 2300 个晶体管，晶体管间距是今天听起来匪夷所思的 10 微米，时钟频率 740 kHz，每秒钟能运算约 6 万次。它原本是给日本 Busicom 公司的计算器定制的，英特尔后来花 6 万美元从 Busicom 手里买回了对外销售权——这是一个后来被证明极为明智的决定。4004 的裸片尺寸只有 3mm × 4mm，成本不到 100 美元，性能却相当于那个重达 30 吨、占地一整间房子的 ENIAC。\n4 位 CPU 并不是设计错误。在那个年代的嵌入式场景里，你能让芯片干的活无非是控制几个数字、跑点简单逻辑。用 8 位 CPU 去驱动一台计算器或者微波炉当然能行，但那意味着更大的芯片、更高的功耗、更贵的售价。4 位是那个时代的最优经济解。而且这个最优解的生命力远比任何人预想的持久——直到 21 世纪，4 位微控制器还在某些超低功耗嵌入式领域的犄角旮旯里悄悄活着。\n比 4 位更极端的，是 1 位机。对，你没看错——一台一次只处理一个比特的计算机。\nMotorola MC14500B 是这类机器最著名的代表，全名叫“工业控制单元”，说人话就是一颗 1 位的工业控制芯片。一台由它驱动的机器不会做加减乘除——它的全部本事就是读入一个输入位，查表，输出一个结果位。它的设计目的就一个：替代继电器梯形逻辑，用于 PLC（可编程逻辑控制器）。你坐的电梯、家门口的自动门、工厂流水线上传送带的启停逻辑——在相当长的一段历史里，它们的大脑可能就是一颗以 1 位速率运行的芯片。\nPDP-1 的 9,216 字节内存已经小到塞不满你一张照片了，但 1 位机至今没有完全消亡，这才是令人震撼的事实。在继电器逻辑和 FPGA 之间的那道夹缝里，在对可靠性要求苛刻到变态的工业现场，1 位逻辑仍然比任何跑着 Linux 的 ARM 芯片更能证明自己的价值。\n道理也简单：一颗只会说“是”或“否”的芯片，能整出什么幺蛾子？\n六、字节帝国的墓志铭 读到这里，你可能会问：为什么最终赢的是 8 位？\n这个答案我们已经在正传里用数万字拆解过了。1964 年，IBM 用 System/360 下了 50 亿美元的豪赌，把 8 位字节焊死在了计算机史的标准方程式里。在那之前，全世界的计算机没有两台共享同一个“字节”定义；在那之后，所有的例外都要被清除。\n但历史上那些被碾碎的、被遗忘的、被扫进垃圾桶的字长，并非没有留下任何痕迹。PDP-1 上跑出的《Spacewar!》，它的精神后裔至今还活在每一个电子游戏里。36 位社区那帮人坚持的“真正的计算”，如今改头换面出现在高性能计算的每个角落里。而 1 位机和 4 位机像蟑螂一样顽强地活着，在你看不到的地方维持着世界的运转。\n耐人寻味的是，System/360 的继承者——IBM 自己的大型主机，在半个世纪之后也拥抱了 Linux，一个诞生在 PDP-7 和 PDP-11 上的操作系统。当年横扫一切的帝国，和它亲手杀死的对手，最后在某种意义下走进了一样的未来。\nAlan Kay 说过一句话，放在这里刚好合适：“预测未来最好的方式，就是实现它。”但这帮被遗忘的字长教给我们的是另一课：实现未来的方式有无数种，但只有一种会被写进教科书。 18 位、36 位、可变字长、1 位机——它们不是错误答案，它们是计算机在青春期尝试过的每一种可能性。它们输掉的不是技术的较量，而是生态的赌局。\n技术的进化论和生物的进化论有一个共同点：活下来的未必是最优解，只是最适应当时生态的那一个。但那些消失的物种——它们在化石里保留的每一种形态，都在提醒我们：这条路曾经可以走向完全不同的地方。\nWerner Buchholz 给了我们 byte。Fred Brooks 给了我们 8。而那些没有留下名字的人——DEC 的工程师，36 位社区的守夜人，1 位机的设计者——他们们留下的，是计算机科学最宝贵的遗产：探索和尝试。\n七、后记 这个系列，从 1 bit 写到 1 YB，横跨了 11 篇文章。写第一篇的时候，我以为自己只是在讲存储单位。写到第三篇，我发现我其实在讲商业史。写到第七篇，我终于反应过来——我写的从头到尾都是同一件事：人类是怎么把混乱驯服成秩序的，以及每一次驯服背后，哪些东西被牺牲掉了。\n1 bit 是香农和图基在贝尔实验室的茶水间里随口定下来的。1 byte 是 Werner Buchholz 为了少写几个字硬造出来的。1 KB 欠了 24 个字节的糊涂债，从打孔卡时代一路滚到今天的硬盘包装盒上。1 MB 的墓碑刻在全世界每一个软件的保存图标上，每天被点击几十亿次，却没人停下来看一眼。1 GB 让乔布斯从牛仔裤口袋里掏出了一个白色盒子，然后把一千首歌和整个唱片工业的葬礼一起塞了进去。1 TB 第一次让人类拥有了一个“花不完”容量的窗口期。1 PB 之后，数据就再也不是个人的事了，它变成了城市的血液、国家的档案、文明的底稿。\n而番外篇里那些被遗忘的单位——nibble、18 位字、36 位字、可变字长、1 位机和 4 位机——它们教会我的是：计算机史不是一条从 A 到 B 的高速公路，而是一片曾经枝繁叶茂、如今只剩下几棵参天大树的森林。 我们以为 8 位字节是唯一解，其实它只是一个幸存者。\n写这个系列的过程中，我无数次发现，那些被广为流传的“常识”其实经不起推敲。1.44 MB 软盘既不是 1.44 MB 也不是 1.44 MiB，它是一个诡异的混血儿。1 TB 硬盘买回家变成 931 GB，不是硬盘厂商在骗你，而是他们在用十进制卖货，你的操作系统在用二进制读货——两边都没错，两边也都不让步。高德纳在 1990 年代末提议过 KKB，全世界程序员觉得太丑，没人用。这些细节让我意识到：技术的世界里充满了人类特有的将就、妥协和将错就错。 我们以为自己在和逻辑打交道，其实我们一直在和人的习惯打交道。\n最后，谢谢 Werner Buchholz。谢谢 Fred Brooks。谢谢 Alan Shugart。谢谢高德纳。谢谢那些没有留下名字的 DEC 工程师、36 位社区的守夜人、1 位机的设计者。以及——谢谢读到这里的你。\n这个系列到此结束。但关于计算机史，能聊的东西还多得很。\n我们下个坑里见。\n","permalink":"https://gpchn.252123.xyz/posts/%E4%BB%8E-1-bit-%E5%88%B0-1-yb/%E7%95%AA%E5%A4%96/","summary":"\u003cp\u003e在正传里，我们规规矩矩走完了一条几乎像教科书划定的路线：从 1 bit 到 1 YB。每一个路标都指向同一个终点——8 位字节的绝对统治。\u003c/p\u003e\n\u003cp\u003e但历史不是一条直线。在我们踩过的那条明路底下，还埋着一张错综复杂的地下路网——那些曾经繁荣过、被一整代工程师当成物竞天择的理所当然、却最终被“字节”帝国车轮碾碎的单位。\u003c/p\u003e","title":"从 1 bit 到 1 YB：番外篇 —— 被遗忘的单位"},{"content":"\n这篇故事的开场，需要你放下手机，找一张纸和一支笔。\n在纸上画一个边长大约 40.9 厘米的正方形。如果你手边没有尺子，这个长度大概是从指尖到肘弯的距离——你小臂的长度。画好之后，盯着这个正方形看五秒。根据 NTT 在 2012 年前后的理论估算，如果以当时最先进的 9.5 纳米制程工艺制造闪存芯片，要存储 1 Yottabyte 的数据，大约需要 0.167 平方米的芯片面积——刚巧一张边长约 40.9 厘米的正方形。\n当然，这个思想实验充满了理论的理想化。它假设完美的晶圆良率、零冗余副本、无压缩、无校验位开销，更没有考虑控制电路、封装、冷却系统和电源所占的体积。在现实中，由于 EC 纠删码产生的冗余副本以及整个存储系统多层校验、网络和供电带来的额外物理开销，存储 1 YB 的数据所需的总硅片面积很可能是这个数字的 2 到 3 倍。但这恰恰是它最奇妙的地方——在所有已知的存储单位里，Yottabyte 是唯一一个还能被一张小小的正方形图纸绑住的尺度。你用人类身体的一部分就能画下它的疆域，圈出整个信息宇宙最后的物理边界。\n如果你回到我们这个系列的第一篇，回到 1948 年香农把\u0026quot;信息\u0026quot;定义为\u0026quot;消除不确定性\u0026quot;的那个下午——他大概永远不会想到，人类有一天会需要在自己的手臂两侧画一个微不足道的正方形，来丈量全文明跨过几百世纪积攒起来的数字记忆。\nYottabyte，中文 尧字节，简称 1 YB。\n1 YB = 1024 ZB = 1,048,576 EB = 1,208,925,819,614,629,174,706,176 字节。约 1.21×10^24 字节。如果 1 TB 是一滴雨水，1 EB 是一座西湖，1 ZB 是长江——那 1 YB 就是太平洋加北冰洋再加半个大西洋。\n不过这也不重要了。这篇系列连载已快走到尽头，比起任何数字上的精准换算，有一个更应该被问出来的问题是——当人类的手终于触到这个词的边缘时，我们究竟宣告了怎样一个宇宙？\n在进入最后的叙事之前，让我们完成最后一轮数字校验。在本系列前 9 篇的换算中，原文多数采用二进制前缀（1 KB = 1024 Bytes），仅在涉及 IDC 的全球数据圈预测时注明了十进制口径（1 ZB = 1000 EB）。下文的所有 YB 级换算，如无特别标注，均沿用二进制前缀，以保证系列统一。涉及外部机构预测的部分——比如 IDC、NetApp 的\u0026quot;全球数据圈 2030 年左右触及 1 YB\u0026quot;——原文中的数据引用按来源的十进制口径直接呈现，不再额外转换，以避免因口径不一致造成数据矛盾。\n一、Yotta-：八。世界上最后一个 SI 前缀 1991 年，国际度量衡委员会（CGPM）做了一件大事。\n他们在国际单位制里一口气增加了四个新前缀，把 10^15 到 10^24 这段巨大的数学空档一次性填满，并正式设定了十进制前缀 zetta-（10^21）和 yotta-（10^24）。其中 peta- 和 exa- 在 1975 年 CGPM 的第 15 次大会上已经获得通过，而 zetta- 和 yotta- 则是在 1991 年的第 19 次大会上首次正式落地。从此，十进制世界的度量衡前缀头一次爬到了 10^24 这个数字量级。\n\u0026ldquo;Yotta-\u0026ldquo;的词根是什么？不是拉丁文，也不是意大利——它的词根来自古希腊语的 οκτώ（októ），意为\u0026quot;八\u0026rdquo;。为什么是八？因为 10^24 = (10^3)^8，也就是\u0026quot;1000 的八次方\u0026rdquo;。CGPM 在给 zetta-（来自拉丁文 septem，\u0026ldquo;七\u0026rdquo;）找到搭档之后，顺势从希腊语里挖出了这个代表\u0026quot;八\u0026quot;的词根，再加上 a 后缀以保持与所有其他 SI 前缀一致的尾音美感——于是 yotta- 诞生了。\n在 ZB 篇我们说过，zetta- 的词根是拉丁文的\u0026quot;七\u0026quot;。而 yotta- 是希腊文的\u0026quot;八\u0026quot;。一个来自罗马，一个来自雅典——这两个文明在两千年前划分了地中海，又在 1991 年的同一个修辞维度里重遇。来自拉丁文的 finalis 和来自希腊文的 tele-、meta- 在 ZB 和 YB 的天空下再次毗邻而居——它们合在一起，为人类词汇表钉上了目前唯一被敲定为官方前缀的封顶之作。\n而在 yotta- 被正式写入 SI 标准的同时，早已置身于二进制世界的计算机工程师们也为这份官方封顶备妥了一件自己的\u0026quot;制服\u0026quot;。早在我们 KB 篇就详细记述过的 IEC 二进制前缀体系——也就是 1998 年国际电工委员会为对抗\u0026quot;Kilo 到底是 1000 还是 1024\u0026quot;这一度量衡混战而推出的那套 kibi-、mebi-、gibi- 命名方案——同样为 yotta- 生成了一个胞兄：yobi-。\n从 1991 年 CGPM 敲定 yotta- 那天起，1 YB 的二进制版本——yobibyte（YiB）——就已经被预留在 IEC 标准扩容草案的列表里，像一个等待远方宿主抵达的空名。1 YiB = 2^80 字节 ≈ 1.209 YB。在 2026 年的今天，没有任何消费级产品需要用到 YiB 这个单位——但它已经在那里了。只要人类的数据量再膨胀 21%，这个预留了几十年的空名就会被征召服役。\n但更有意思的是——在 yotta- 之后，CGPM 没有再批准过任何更大的 SI 前缀。\n2022 年，CGPM 又新增了四个前缀——ronna-（10^27）和 quetta-（10^30），以及它们的分数对应 ronto-（10^-27）和 quecto-（10^-30）。但这次扩展出现在 yotta- 命名 31 年之后，且至今仍然没有正式的二进制等价物被 IEC 采纳。yotta- 独自占据 SI 最大前缀王座三十一年——它大概是有史以来孤独得最久的一个度量衡封顶词。\n二、1 YB 能装什么？ 在进入真正的叙事之前，让我们把 1 YB 拆解成人类可以触摸的东西。以下换算主要沿用整个系列一致的二进制前缀体系（1 YB = 1024 ZB），对来自 IDC 等研究机构的预测数据保留其原始十进制口径：\n全人类所有书籍的纯文本 × 10 亿倍。 美国国会图书馆约 180 TB 纯文本，1 YB 大约相当于 60 亿座美国国会图书馆——这个数字比银河系里的恒星总数还大好几倍。 约 30 万亿部高清电影（每部 4 GB）。 如果从宇宙大爆炸开始全天滚动播放，到今天大概还没看完一个零头。 大约 33 万年不间断的 8K 超高清视频（H.265，典型码率 ≈ 80 Mbps）——从尼安德特人在地球上消失开始录，刚好能录到今天。 地球上的沙粒。 据地质学家估算，地球上所有海滩和沙漠的沙粒总数在 7.5×10^18 到 10^19 之间——也就是大约 100 ZB 到 1 YB 的量级区间。1 YB 的数据量，相当于给地球上的每一粒沙子都存至少 1 个字节。如果换成星星——整个可观测宇宙的恒星总数大约在 10^22 到 10^23 颗，1 YB 的字节数大约是恒星总数的 10 到 100 倍。给可观测宇宙里的每一颗恒星分 1 个字节，只需要 10 到 100 ZB——勉强够用，但也不宽裕。沙子极少，恒星极多，而 1 YB 刚好卡在这两种宇宙级尺度之间。 一个从人类文明诞生到 21 世纪初的全部文化产出——包括所有书籍、所有录音、所有影像、所有软件——保守估计，大概在 1 YB 以内。一个脆弱的塑料盒子里，安放下文明几千年来所有的信息生产与精神冲动。 而在现实世界里，要存下 1 YB——假设使用当今最大容量的 30 TB 企业级硬盘，你需要大约 370 亿块这样的硬盘。如果把它们平铺摆放在地面上，每一块 3.5 英寸硬盘占地约 0.01 平方米，370 亿块硬盘的总面积大约是 370 平方公里——相当于把整个巴黎市区全部铺满硬盘，还有富余。而所有这些硬盘背后惊人的供应链总重——超过 2.5 亿吨——大约相当于 40 座吉萨大金字塔的石头总重量。光是生产这些硬盘，就能吞噬掉地球全年硬盘出货量的将近一百倍。\n但上面这些数字游戏，其实并不重要。它不过是我们在 PB 篇、EB 篇、ZB 篇反复做过的同一道数学题的放大版——把单位往上挪一位，数字后面多二十四个零。真正让 YB 与众不同的，是下面这个数字。\n三、2030 年左右，人类将跨过 1 YB 2018 年，IDC 发布了《Data Age 2025》白皮书，预测全球数据圈到 2025 年将达到 175 ZB[reference:2]。一年后，这个数字被上修到 181 ZB[reference:3]。到 2024 年，IDC 把 2026 年的全球数据圈预测从 221 ZB 大幅上调至约 237 ZB，理由是生成式 AI 的爆发远超预期。\n而在这一切嘈杂的数据更迭背后，有一个预测自始至终几乎没有变过：到 2030 年左右，全球数据圈将跨过 1 YB。 这一预测先后被 IDC、NetApp 等多家机构引用，成为业界对 YB 时代降临时间窗口的普遍共识。按照目前约 20% 的年复合增长率推算，全球数据圈从 2026 年的约 237 ZB 增长到 2030 年的 1 YB 仅仅只需要 4 年多——而从 ZB 到 YB 的这一次跨越，比此前任何一个量级跨越都快。\n这意味着什么？\n我们在这个系列里反复讲过一个故事：从 KB 到 MB，人类跨越了十几年。从 MB 到 GB，花了不到十年。从 GB 到 TB，用了七年。从 TB 到 PB，大概是五到六年。从 PB 到 EB，四年。从 EB 到 ZB，三到四年。\n而从 ZB 到 YB——大概也是四年。\n这是一条令人窒息的加速曲线。但更令人窒息的，是它的终点。这大概是人类最后一次还能用自己发明的度量衡前缀去标注全球数据总量了。在 yotta- 之后，CGPM 虽然在 2022 年新推出了 ronna-（10^27）和 quetta-（10^30），但这些前缀至今尚未被计算机行业采纳为二进制等价标准，也还没有任何机构用它们来预测全球数据圈。YB 是目前已知的最后一个有实际对应事物、有明确到达时间线的存储单位。\n这整趟从 1 bit 到 1 YB 的旅程，其实都是在赶一个时间节点——赶在\u0026quot;全球数据圈\u0026quot;这个词还勉强能被一个人类语言里早早就预备好的单位装下之前。而 YB，就是这座庙宇的最后一级台阶。在这级台阶之上，只剩一片连前缀都没有预备的空白。\n四、YB 时代的荒诞：存得下整个地球，却读不完一分钟 在 ZB 篇里我们说过，ZB 时代最残酷的现实是\u0026quot;生成远超存储能力\u0026quot;。十几年后，这句话在 YB 尺度下变得更尖锐、也更荒诞了：存得下，但读不完。\n假设你有一套完整的 1 YB 存储系统。你现在想从里面检出所有包含“Hello World”这两个词的文件。如果你的存储阵列能维持每秒 1 TB 的读取速率——这大概是一块中端 NVMe SSD 的极限顺序读取带宽——那么检完 1 YB 的数据需要超过 1 万亿秒，也就是大约 35,000 年。换句话说，你需要从最后一次冰河时期结束就开始以这个速度不停地读，读到今天才刚刚读完。\n这不是技术瓶颈，这是宇宙法则——1 YB 已经大到了连\u0026quot;遍历\u0026quot;本身都变成了不可承受之重。人类历史上第一次，存储容量的膨胀让数据检索本身变成了一个需要几代人的意志去完成的事业。\n而这种\u0026quot;存得下，读不完\u0026quot;的荒诞，在科学计算领域已经有一个活生生的例子在等着了。\n平方公里阵列（SKA）——人类在建的最大射电望远镜，预计在 2020 年代末到 2030 年代初全面投入运行。它的天线阵列分布在澳大利亚和南非的荒漠里，总接收面积达到一平方公里。一旦满负荷运转，SKA 每天产生的原始数据量将达到大约 10 EB——每一天。\n10 EB，一天。\n把日历翻到 2030 年。假设 SKA 已经运行了三年。仅这一台设备，三年累积的原始数据量就超过 10 ZB——相当于 2026 年全球数据圈总量的约二十五分之一。而 SKA 每天的观测时间可以覆盖多个频段和多个目标，粗略估算三年跑出来的数据就可以站稳数百 ZB 的基线。如果未来升级到全阵列最大吞吐量运行，仅这一套望远镜，就能直接碰到 YB 的门槛。一片荒漠里的一台射电望远镜，站在 YB 的门槛上往宇宙里看。\n而这些数据意味着什么？——在 SKA 十年的原始观测数据里，真正能被天文学家手工筛选和分析的，可能不到 1% 的 1%。绝大部分数据只被\u0026quot;听过\u0026quot;一次——被自动化分类管道扫描一圈，打上标签，然后就沉入了冷数据深库。它们从来没有被人类的视网膜凝视过哪怕一毫秒。\n一个射电望远镜每天写出的几 EB 宇宙日志，写进了一个几万盘磁带的冷数据归档库，被一个自动化脚本读一次，就再也没有醒来。\n这大概就是 YB 时代的核心困境，我们早在前几篇就反复预演过：数据已经大到不再是人类主动创造的结果，而是机器无休止排放的物理副产品。到了 YB 量级，我们甚至无法通过算法全部筛洗这些信息废气，也无法通过任何物理直觉去感受它们的总质量。 200+ ZB 的数据圈已经让\u0026quot;遗忘\u0026quot;变成了需要专门设计的技术手段；而在 1 YB 的尺度上，连\u0026quot;记起来\u0026quot;都变得奢侈——不是硬盘买不起，是时间不够、意志不够、注意力不够。人类把信息塞进了一个自己永远无法再完整打开的黑箱。\n五、YB 离我们有多远？——一座正在合围的数据中心环 大多数人以为 YB 还很远。但它其实比你想象得更近——近到它的一部分已经在沙漠和北极圈的灰白色楼群里运行了好几年。\n截至 2025 年底，全球超大规模数据中心的数量已达到约 1,300 座。其中亚马逊云科技、谷歌和微软三家拥有的数据中心容量占了全球一半以上。这些数据中心分布在亚利桑那的沙漠、内蒙古的草原、瑞典的北极圈、苏格兰的海床、智利的阿塔卡马高原——它们一片一片地合围，默默地把全球数据圈的每一滴增量收进自己那永远不肯休眠的存储池里。\n业内估计，全球总存储保有量——不是\u0026quot;年生成量\u0026quot;，是截至某一时刻的全球总存储数据量——在 2024 年左右大约在 20 到 30 ZB 量级。而 2026 年全球数据圈的生成量已经超过 230 ZB。这意味着我们每年制造的\u0026quot;新数据\u0026quot;，已经远远大于人类历史上所有\u0026quot;已存储数据\u0026quot;的总和。这中间仍然存在着一道鸿沟——绝大多数数据根本没有被保存，它们在生成的几秒内就被冲刷进了物理法则的虚空。\n而在所有这些合围中，最令人不安的合围可能不是云厂商，而是一个我们早在 PB 篇和 EB 篇就反复提过的名字。\nNSA 犹他数据中心。 2013 年斯诺登披露的文件第一次让公众瞥见这座藏在犹他沙漠里的灰白色建筑。它的确切容量从未被官方公布——有媒体估计在 3 到 12 EB 之间，也有报道称它的设计目标是\u0026quot;yottabytes 级别\u0026quot;的规划容量。两者的差距，是五六个数量级。\n五六个数量级——这大概就是 YB 在公共领域里最精确的定位：一个被人反复传说、却至今没有任何机构公开确认拥有的\u0026quot;神级容量\u0026quot;。如果犹他中心真的能在未来十年扩容到 YB 量级，如果它的设计蓝图里确实为 YB 预留了物理空间——那么 YB 就不只是一个字面意义上的\u0026quot;全球数据总和\u0026quot;，它同时也是一个主权国家可以独立掌控的\u0026quot;情报深度\u0026quot;。这是一个在之前的任何一个存储量级里都未曾出现过的命题：当存储单位大到足以纳入一个国家的全部监控目标时，\u0026ldquo;数据量\u0026quot;就变成了\u0026quot;数据权\u0026rdquo;。\n距离 2030 年还有四年。在从 ZB 篇的结尾一路走到 YB 篇的这一章里，全球超大规模数据中心的增量仍在加速，而建设\u0026quot;YB 级智慧\u0026quot;所必需的专项预算、硅光互联与液冷基础设施，被云服务商以\u0026quot;数十亿美元\u0026quot;的规模逐月计入财报。\n六、一个文明能承受多大的记忆？ 让我们暂时离开数据中心，回一趟家。\n想象你坐在家里的电脑前，打开一个文件夹。这个文件夹里有你从出生到现在的全部数字档案——所有照片、所有聊天记录、所有邮件、所有写过的文档、所有拍过的视频。算一下，大概几千 GB，撑死几十 TB。\n然后你再想象，把这个文件夹乘以 80 亿。\n这就是 1 YB——全人类的这种\u0026quot;人生文件夹\u0026quot;绑在一起。而在这些文件夹里，绝大多数内容根本没有什么史诗性的意义。它们是你周一中午和同事说了句\u0026quot;饭否\u0026quot;的聊天记录，是你两年前在地铁上拍的一片模糊的晚霞，是你妈问你什么时候回家的那通电话。这些无所不在的日常赘肉、信息尘埃和默认保存的营销邮件，一并构成了 1 YB 最根本的物质事实。\n而一个文明能承载多少无意义的记忆，而不被压垮？这是一个完全陌生的问题——因为在 YB 之前，\u0026ldquo;记忆\u0026quot;还是一个可以被人类主动筛选的行为；到了 YB 之后，\u0026ldquo;记忆\u0026quot;成了一种物理性的废气沉降。\n我们在 ZB 篇里讨论过\u0026quot;被遗忘权\u0026quot;和\u0026quot;删除在分布式系统里是否可能\u0026rdquo;——那是 ZB 级别的旧困惑。到了 YB 尺度，这个问题上升了一个维度：当整个文明的全部日常排泄——每一声咳嗽、每一次犹豫、每一封未读邮件——都被装进一个边长 40.9 厘米的\u0026quot;正方形墓碑\u0026quot;里时，人类还有没有能力去\u0026quot;记忆\u0026quot;自己？\n一堆沙子不足以思索；但一整片撒哈拉，大概可以埋葬任何试图把它翻一遍的意志。\n七、怎么存下它？一条 YB 的物理栈 到这里，我们还是得回到那个最基本的物理问题：用什么介质？\n40 座吉萨大金字塔重量的企业级硬盘——这显然行不通，全球一年的硬盘出货量都不到这个数字的百分之一。LTO 磁带——依然是最传统的冷数据归档王者，最新的 LTO-10 磁带单卷容量预计在 36 TB，要凑满 1 YB 大约需要 300 亿卷，卷起来的物流本身就能耗尽整个云厂商的供应链预算。蓝光光盘——更不用提，全人类加起来都造不出那么多。\n但这不是最关键的。在 EB 篇中我们郑重地讨论过\u0026quot;比特衰变\u0026rdquo;：存储介质里的电荷缓慢泄漏，磁畴取向逐渐漂移。在 EB 尺度上，这是一个需要端到端校验来对抗的概率问题。在 ZB 尺度上，它是一个不容商量的物理定律。在 YB 尺度上，它升级成了一个更根本的存在性问题——你的备份还没做完，第一部分的数据可能就已经开始衰变了。\n这不是夸张。一个 1 YB 的存储系统如果全部建立在传统 HDD 介质上，每年大约有 1% 到 2% 的硬盘会因为机械磨损、磁畴退化和环境老化而直接报废。在 YB 级别，这个故障量就和你每年彻底倒掉几万个旧硬盘相当——维修人员这辈子大概没办法在同一个机房里把同一批硬盘全部摸过一圈。\n云厂商对此的终极方案，我们在 EB 篇里已经讨论过——\u0026ldquo;永远在迁移\u0026rdquo;。数据从老旧硬件向新硬件持续流动，从不给任何一个平台安静老去的时间窗口。这个循环一旦开启，就是永续的。唯一的代价是能源——在 YB 尺度下，\u0026ldquo;迁移\u0026quot;本身的耗电量可能比存储本身的耗电量更大。也许到了某一天，全球数据中心的碳排放将不再是用于计算，也不是用于制冷，而是用于\u0026quot;迁移\u0026rdquo;——数以亿计的硬盘和闪存颗粒在永无止境的复制任务中，把上一个四年存下的世界搬向下一个四年的载体上。\n而在所有这些传统介质之上，有一种介质，大概是 YB 尺度下最遥远、却也最接近终局的形式——只有它能将这整个字节海洋安静地凝缩在一只手掌之内的体积里，只要文明在一万年以后还记得怎么去读它：\nDNA。\n2019 年，微软和华盛顿大学的研究团队成功将\u0026quot;Hello\u0026quot;这个词写入了合成 DNA 并完整读回。到 2023 年，DNA 存储的理论密度上限已经高达 1 EB/克——换句话说，1 YB 数据的物理存在量，大约只需要 一吨 DNA。\n一吨 DNA 存下整个文明的全部数字记忆。相比之下，用传统硬盘需要 2.5 亿吨。这种近乎魔幻的信息密度，本质上是生命体自行演化出来的一种压缩方案——DNA 用四个碱基（ATCG）编码信息，每个碱基对大约相当于 2 bit 的数据密度。在亿万年的演化压力下，自然选择已经将这种存储机制打磨到了接近物理学极限。\n但在 2026 年的今天，DNA 存储的读写成本依然高到这个星球上没有任何一家机构能商业化量产它。一个字节写进 DNA 再读出来，成本大约在几美分到零点几美分——换算成一个 YB 的写入成本，大致是整个地球全年 GDP 的几千倍到几万倍。\n目前最接近\u0026quot;永生\u0026quot;的 YB 存储介质，在成本上目前还完全不可能。\n不过也许这才是对的。1 YB——这最后一粒沙子，本就不该被随便装进某个廉价容器里随便搬运。它应该被安静地凝缩进一吨看不见的 DNA 琼脂，沉入某个地壳深处的盐层，等一万年之后一个完全不同的文明来揭封。它应该在某个远离尘嚣的洞穴里，被一圈一圈地刻进石英玻璃的纳米光栅——2024 年，微软 Project Silica 已经完成了将 7 TB 数据写入石英玻璃的验证性实验，单片玻璃预计可稳定保存超过 1 万年。如果用这种介质来装 1 YB 的数据，大约需要 1.5 亿片这样的石英片。把这些石英玻璃片整齐摞起来，全部擦入一座中等岩洞的一侧石壁上，嵌成一面星光闪闪的\u0026quot;方舟墙\u0026quot;——那一整面洞壁，就是文明临终前写给时间最长的一封遗书。\n八、回到 1 bit 这篇系列的名字叫《从 1 bit 到 1 YB》。\n我们聊了 1 bit——烽火台上的狼烟，一枚晶体管的开关，一个人说\u0026quot;是\u0026quot;或\u0026quot;否\u0026quot;的权利。聊了 1 Byte——一个德裔工程师的灵机一动，八个排队站好的比特，一台价值 50 亿美元赌注的 System/360 大型机。聊了 KB、MB、GB、TB——从 13 张打孔卡到 1.44 MB 的软盘墓碑，从一千首歌的 iPod 到 200 小时高清视频的 Deskstar。聊了 PB——一座没有窗户的数据中心，一张低沉的灰色建筑被嵌入沙漠；EB——一块大陆级的数位储库，装满人类自己无法阅读的数据废气；ZB——全文明笼罩头顶的数字大气层，让所有记忆全部默认保存，也让真正致命的沉默从此不再可能被从磁带深处铲除。\n而到了 YB，故事的方向彻底变了。\nYB 不再是一个\u0026quot;更大的盒子\u0026quot;。YB 是这整个文明的最后一道数据防线——在它之下，人类还能用一个已命名、已校准、已被写入标准文件的度量衡前缀来圈住自己；而在它之上，连语言本身都还没有准备好。YB 之后的那些数字边界，暂时仍然属于一种只存在于论文储备板块、被称为\u0026quot;ronna-\u0026ldquo;和\u0026quot;quetta-\u0026ldquo;的语法边荒——它们至今没有对应的二进制等价物被 IEC 敲定，也还没有任何分析师去严肃地预测\u0026quot;全球数据圈将在哪一天首次突破 1 ronnabyte\u0026rdquo;。\n每一个量级，都是一种存世的体温。KB 是匠人的手温——你每存一个文件都要精打细算，多余的空格都得删掉。MB 是少年的心跳——一张软盘刚好装下一两张照片，你需要一个文件柜来管理一摞盘片。GB 是青年沸腾的血液——一块硬盘能装下一个音乐库或者十几部电影，你开始觉得容量够用了。TB 是中年的从容——存储不再是一个需要精打细算的稀缺品，而是一种可以随手挥霍的空气。PB、EB 和 ZB 是整座文明的脉搏——你看不见它，但它断了，整个数字世界就会窒息。\n而 YB——YB 大概是一座神庙的最后一柱香。\n在没有新的前缀正式被接受之前，这个来自希腊语\u0026quot;八\u0026quot;的词，就是这座信息尺度的金字塔在最后一块台基上刻下的最后一画。而在这支香燃尽之后，人类的数据膨胀可能永无止境——但可以确定的是，这个文明已经用完了所有已知的、被正式批准过的词汇，来命名自己的记忆。\n1948 年，克劳德·香农在贝尔实验室给\u0026quot;信息\u0026quot;的数学定义写完最后一笔时，随口把最小的那个单元叫成了 bit——历史上一个著名的起名事故由此诞生。他大概不会想到，在他写完那篇论文的八十年后，这列从 1 bit 出发的火车会一路轰隆隆地穿过所有度量衡的界限，撞进一个连语言本身都装不住它的终极车站。\n从 1 bit 到 1 YB。一粒沙的独白，变成一片宇宙的回声。\n从你的指尖，到一条银河。\n本系列正文至此结束。如果你还想多听一个故事，接下来是番外篇——献给那些在这个系列的叙事中被遗漏、被跳过、被沉默吞没的被遗忘的单位。它们从未住进你的电脑，但也许，它们比我们在正文里聊过的任何数字都更为感人。\n","permalink":"https://gpchn.252123.xyz/posts/%E4%BB%8E-1-bit-%E5%88%B0-1-yb/1-yb/","summary":"\u003cp\u003e\u003cimg alt=\"数据中心\" loading=\"lazy\" src=\"/posts/%E4%BB%8E-1-bit-%E5%88%B0-1-yb/1-yb/1.webp\"\u003e\u003c/p\u003e\n\u003cp\u003e这篇故事的开场，需要你放下手机，找一张纸和一支笔。\u003c/p\u003e\n\u003cp\u003e在纸上画一个边长大约 40.9 厘米的正方形。如果你手边没有尺子，这个长度大概是从指尖到肘弯的距离——你小臂的长度。画好之后，盯着这个正方形看五秒。根据 NTT 在 2012 年前后的理论估算，如果以当时最先进的 9.5 纳米制程工艺制造闪存芯片，要存储 1 Yottabyte 的数据，大约需要 0.167 平方米的芯片面积——刚巧一张边长约 40.9 厘米的正方形。\u003c/p\u003e","title":"从 1 bit 到 1 YB：1 YB - 最后一粒沙子"},{"content":"\n西班牙塞维利亚，一座 16 世纪建成的石头建筑里，藏着人类最早的“数据饥渴”——西印度群岛综合档案馆。西班牙帝国用三百年时间，把殖民地的每一笔交易记录、每一份航海日志、每一封总督密信，塞进了这里约 9 公里长的书架上——共 43,000 余卷，约 80 亿页。\n1990 年代，西班牙文化部联合 IBM 西班牙公司和 Ramón Areces 基金会，启动了一项在当时堪称先锋的档案数字化工程。到 1998 年，他们已经扫描了超过 1100 万页原始文献——相当于馆藏的沧海一粟，但这些高精度图像所占用的存储空间，已大幅超越当年主流硬盘的容量极限。\n而今天，人类每天生成的数据有多少？\n大约 650,000 TB。也就是 0.65 ZB。每天。\n三百年的帝国档案，今天的人类只用不到两分钟就超越了。\n这不是技术参数的比拼，这是一种文明存在方式的彻底改写。在 KB、MB 时代，数据是稀缺品——你攒了好几年的照片，一块硬盘就能全部兜住。到了 PB、EB 时代，数据变成了公用设施——它藏在你脚下的数据中心里，像水电暖一样沉默运转。而在 ZB 时代，数据正在变成这个星球上最普遍的\u0026quot;工业废气\u0026quot;——它不再被人特意制造，而是被机器无休无止地排放出来。\nZettabyte，中文 泽字节，简称 1 ZB。\n1 ZB = 1024 EB = 1,048,576 PB = 1,180,591,620,717,411,303,424 字节。约 1.18×10^21 字节，或者说 一万亿 GB，或者 十亿 TB。如果 1 TB 是一滴雨水，1 ZB 就是一条长江。\n但比起数字换算，有一个更有意思的问题值得先问：这个词到底从哪儿来的？为什么它偏偏叫\u0026quot;Zetta\u0026quot;？\n一、Zetta-：一场来自 1991 年的末日预言 1991 年，国际度量衡委员会（CGPM）正式通过了一组新的 SI 前缀：zetta- 表示 10^21，yotta- 表示 10^24。\n\u0026ldquo;Zetta-\u0026ldquo;到底是什么意思？它的词根来自拉丁文 septem，意为\u0026quot;七\u0026rdquo;。为什么是七？因为 10^21 = (10^3)^7，也就是\u0026quot;1000 的七次方\u0026rdquo;。当初命名时，委员会把 septem 的首字母改成 z，加上意大利语常见的指小后缀 -etta，组合成了\u0026quot;zetta-\u0026quot;。\n一个来自拉丁文的词根，被一个意大利式的后缀包裹，放进了一台以二进制为母语的计算机里——就诞生了“泽字节”。不过，这个名字引入中国时，翻译家选了“泽”字——“泽”在中文里不仅有“光泽、恩泽”之意，也暗合“水聚为泽”的汇集意象，用来命名人类所能触及的最大数据度量衡，倒也贴切。\n但有意思的是，在 1991 年，没有任何人真的需要“zetta”这个词。\n那时候全球一年的数据量还以 TB 计，你能买到的最大硬盘不过几百 MB。CGPM 通过这两个前缀，不是因为“已经需要用了”，而是因为“迟早有一天需要用”——这大概是人类历史上最早的一次“存储末日预言”，比任何一家市场调研机构的预测都早。\n预言押中了。\n2010 年，根据 IDC 的数据，全球每年创建、捕获、复制和消耗的数据总量首次突破 1 ZB，达到 1.2 ZB。从 1991 年命名到 2010 年第一次用上，十九年。十九年里，人类从“哪有那么多数据？”走到了“啧，数据多得没地方放了。”\n而思科的一则旧预测，至今读来仍有意义——早在 2012 年，思科 Visual Networking Index（VNI）预测 2016 年全球 IP 流量将达到每年 1.3 ZB，这是网络流量第一次迈过\u0026quot;泽字节\u0026quot;门槛。存储的\u0026quot;泽字节时代\u0026quot;始于 2010 年，而流量的\u0026quot;泽字节时代\u0026quot;比存储晚了整整六年——因为 ZB 级的数据，首先要能生成出来，然后才谈得上存。而到了 2020 年代，生成早已甩开存储好几条街。\n到这里，你已经看到了 ZB 的故事的第一个关键矛盾：数据是被\u0026quot;制造\u0026quot;出来的，还是被\u0026quot;排放\u0026quot;出来的？ 这个问题，把人类对信息的理解推到了一个全新的维度——在 ZB 之前，数据是人类主动书写、主动留存的行为痕迹；到了 ZB 时代，数据成了被机器无休无止、无论你需不需要都会喷涌而出的数字工业废气。\n二、30 EB 的塞维利亚：当数据不再需要人来写 让我们回到塞维利亚——但不是 16 世纪那座西印度群岛档案馆，而是 2000 年代全球数字档案的一个不太被人提及的转折：谷歌图书计划。\n2004 年，Google 宣布了一项在当时看来近乎狂妄的计划：扫描全世界所有书籍。密歇根大学、哈佛大学、牛津大学、斯坦福大学、纽约公共图书馆——世界上最大的几座图书馆，把藏书一车一车运进谷歌的扫描中心。到 2019 年，谷歌已经扫描了超过 4000 万册图书，覆盖 400 多种语言。\n如果把这 4000 万册图书全部数字化成纯文本，总数据量是多少？\n大概在 30 EB 左右——连 1 ZB 的三十分之一都不到。\n这是人类文明几千年写下的所有\u0026quot;书\u0026quot;，用严格的文字形式、经过挑选、经过编排、经过印刷、经过图书馆编目——所有这一切加起来，放在一块 2026 年的 30 TB 企业级硬盘旁边，也就是一万块硬盘的量。一个中型机柜就能装下全人类所有纸书的纯文本副本。\n但今天全球一年生成 220 ZB 数据。剩下的 200+ ZB 是什么？\n不是任何一个人\u0026quot;写下\u0026quot;的。它们是被机器自动生成的。\nIoT 传感器：一台工业涡轮机上的数百个传感器，每秒产生几十万条状态读数。一个中等规模的智能工厂，每天排放数 TB 的振动、温度、压力日志。全球数十亿台物联网设备，每分每秒在无人注视的情况下向数据中心倾倒数据流。 自动驾驶测试车：我们在 EB 篇已详细讨论过——每辆车每天实测数据量可达 4 到 20 TB，一个 100 辆的测试车队月产出超过 30 PB。行业头部玩家的累计数据量，到 2020 年代已稳稳跨过 ZB 门槛。 短视频平台：YouTube 在 2026 年每分钟上传超过 500 小时的新视频内容，日上传量超过 720,000 小时。TikTok 和抖音全球日活超过 15 亿，每天产生的视频原始数据量在 PB 至数十 PB 级别，月度数据量轻松突破 EB，年度数据量已进入 ZB 尺度。你刷过的每一个 15 秒视频，背后是一次内容的编码分发，也是一次永久的排放性数据沉淀。 日志与监控：每一台服务器、每一个网络交换机、每一个云函数调用——都在疯狂写日志。这些日志绝大多数在被写入磁盘的那一刻起，就再也没有被人类阅读过。它们像一种数字化的“背景辐射”，填满了 ZB 空间的绝大部分。 换言之，人类文明花了几千年积攒下来的\u0026quot;文化数据\u0026quot;——书、档案、艺术、音乐、电影——在 ZB 时代全部加起来，可能只占数据总量的不到 1%。剩下的 99%，是机器写给机器的\u0026quot;内部备忘录\u0026quot;。\n一位科技作家在《纽约时报》上写过一句被反复引用的话：\u0026ldquo;我们正在用一个文明的全部文化数据当钱，去给五个世纪的监视视频和消费推荐系统做零钱。\u0026ldquo;这并不是为了贩卖焦虑，而是提示一种物质事实：我们永远不可能像在海滩捡贝壳那样，从 ZB 的海洋中挑出所有\u0026quot;有意义的数据\u0026quot;再度回顾。数据，凭本能捡不完，凭算力筛不净，凭物理直觉也装不住了。\n而谷歌的那 30 EB 书，提醒我们一件更微妙的事：人类曾经以为\u0026quot;记录一切\u0026quot;是文明最高的野心——西班牙帝国为此花了三百年。而现在，\u0026ldquo;记录一切\u0026quot;不再需要野心，它成了一种被动的物理后果。\n而下一个问题就是——用什么东西把这 220 ZB 的数据装进去？\n三、38 万块硬盘与机器人光驱：ZB 时代的物理体面 在 PB 篇和 EB 篇里，我们还在津津乐道地对比 IBM 3380 那台 250 公斤的冰箱巨兽和今天口香糖大小的 M.2 SSD。到了 ZB 这个量级，这种对比失去了意义——不是因为硬盘不够轻，而是因为根本没有人会把 1 ZB 的数据装在同一类介质里。\n但我们可以做一道数学题。\n一块当前主流企业级大容量硬盘，容量约 30 TB，重量约 690 克。要凑满 1 ZB 的原始容量，你需要大约 38,000 块这样的硬盘。总重量约 26 吨——相当于一辆满载的重型卡车。加上服务器机箱、电源、网络交换机、制冷系统和配电设备，一整套 1 ZB 的存储阵列大概需要一个中小型数据中心的大厅来容纳，耗电量够一个小镇使用。\n这还不是全部。如果你把 1 ZB 的数据存进 LTO-9 磁带——一卷 18 TB 的磁带大约需要 61,000 卷。IBM 的 Spectra Logic TFinity 磁带库是当下市面上最大的商用磁带系统，一台满配约能容纳 2 到 3 EB。要装下 1 ZB，你得买约 400 到 500 台这个级别的磁带库——这已经是一个超大规模数据中心的配置量级了。\n但真正的挑战从来不在于\u0026quot;单体的极限\u0026rdquo;，而是这些数据的存储周期分层。云厂商并不是平等对待所有数据。ZB 级存储架构的灵魂，是一套自动化的数据生命周期管理系统：\n热数据（最近被频繁访问的数据）：停留在全闪存 NVMe 阵列上，延迟微秒级，单位存储成本极高。它们占据总量的 5%-10%，却消耗掉近一半的存储预算。 温数据（偶尔被调用的数据）：从 NVMe 向大容量 HDD 阵列迁移。这部分占 ZB 的主要份额，通常是半年内被访问过，但已经不够\u0026quot;热\u0026quot;的文件。 冷数据（几乎不再被访问的数据）：被打包写入 LTO 磁带库，或者直接归档进低速高密度的冷存储集群，等待它的可能只是合规审计或算法训练时的一次意外召回。 一个标准大型互联网公司的 ZB 级存储池，热数据可能只有几十 PB——但它们占据了系统绝大部分的 IOPS 和运维成本。而那些在磁带库深处安静吃灰的几百 EB 冷数据，每年唯一被完整读取的时刻，就是做年度数据完整性校验的时候。\n如果愿意，你当然也可以把 1 ZB 的数据全部刻成蓝光光盘。2026 年初一张标准蓝光双层盘容量为 50 GB，215 亿张 50 GB 蓝光盘才能凑满 1 ZB。如果把这些光盘摞起来，高度约 25 万公里——可以从地球叠到月球三分之二的距离。\n需要强调的是，以上这些并不是一个科学的部署方案，而仅仅是一些\u0026quot;思想实验\u0026rdquo;。它们想说明的只有一件事：ZB 数据正在把人类推进一个\u0026quot;生成能力远超存储能力\u0026quot;的时代。 在 KB、MB 时代，你有多少数据，你就买多大的硬盘。到了 ZB 时代，这句话反过来才更接近现实：你有多少硬盘，直接决定了你能留下多少数据。剩下的，丢进虚空——不是被刻意删除，而是根本没有物理介质来接住它。\nIDC 预测，到 2026 年，全球数据圈将增长到约 237 ZB，仅 2026 年一年新增的数据量就超过 40 ZB。而全球硬盘和 SSD 的年出货总量折算成存储容量，仅约 3 到 4 ZB。这中间的缺口——每年几十 ZB 的数据被生成出来，却从未被任何人保存——直接揭示了一个事实：我们活在数据洪流里，但绝大多数数据从未被目击，就被物理法则撕碎又冲走了。\n这就是 ZB 时代最残酷、也最迷人的现实：数据已经不再是人类需要费力保存的稀缺品，而是人类根本来不及保存、也根本不知道如何放弃的物理事实。\n四、一条狗的\u0026quot;记住所有气味\u0026rdquo;，还是神的\u0026quot;忘记一切\u0026quot;？ 2013 年，美国国家安全局（NSA）犹他数据中心的容量在科技媒体上被反复猜测。我们在 EB 篇和 PB 篇都提到过它——1.5 亿美元的造价，65 兆瓦的耗电量，荒无人烟的犹他沙漠。进入 ZB 时代，全球类似的大型超大规模存储设施已不再稀缺——从 Azure 的亚利桑那到华为云的乌兰察布，它们的逻辑如出一辙：用廉价的沙漠、北极圈或废弃矿坑，换取海量数据的长期低成本储存。\n但 NSA 犹他中心的真正遗产，不在于它存了多少数据，而在于它第一次让公众严肃地追问一个前所未有的问题：当存储的欲望膨胀到 ZB 级别时，\u0026ldquo;永远记住一切\u0026quot;会不会从技术承诺变成道德困境？\n在 2014 年的一起欧洲案例中，一位西班牙公民援引\u0026quot;被遗忘权\u0026rdquo;，起诉 Google 并最终迫使谷歌从搜索结果中删除其十年前的个人债务拍卖公告。欧洲法院裁定，搜索引擎有权拒绝删除\u0026quot;过时但合法\u0026quot;的信息，但前提是它必须证明该项信息对公共利益仍有价值。这个在 EB 年代尚且能以\u0026quot;逐年审查\u0026quot;来勉强维系的旧版隐私规则，在 ZB 时代彻底脱了节。面对每年数十 ZB 的增量，没有任何信用机构或云厂商能逐条判断哪些信息值得留、哪些信息早该丢了。于是，所有平台不约而同地采取同一个策略：默认保存一切。\n但这带来一个问题——如果一个人十年前在社交网络上发了一条不当言论，十年后这条数据被 AI 训练模型爬取，嵌入了某个大语言模型的权重里，它还能被删除吗？传统意义上的\u0026quot;删除\u0026quot;——找到那条记录、销毁它——在 ZB 级别的分布式存储系统里几乎不现实，因为数据被切碎成无数校验分片，塞进了不同机架、不同楼层甚至不同国家的硬盘里。你删了原文，校验分片还在。你清空了备份，磁带库里的冷归档还在。你甚至不确定这个\u0026quot;被删掉\u0026quot;的数据是不是已经在哪个 checkpoint 里被冻结进了某个模型的训练快照。\n这就是 ZB 时代的\u0026quot;存储悖论\u0026quot;：技术给了人类\u0026quot;记住所有气味\u0026quot;的能力，但人类并没有与之匹配的遗忘机制。 过去，人会死，文件会发霉，硬盘会坏，纸会腐烂——遗忘是默认状态，记住才是例外。但在 ZB 时代，记住是默认状态，遗忘才需要专门的技术手段和制度设计。欧洲《通用数据保护条例》（GDPR）规定的\u0026quot;被遗忘权\u0026quot;，在 ZB 级的存储系统面前，与其说是一项法律权利，不如说是一种对物理现实的无奈妥协——如果当事人不主动发现并要求删除，那份十年前的债务记录就将在冷冻磁道中永生不死。\n这让人想起博尔赫斯在短篇小说《博闻强记的富内斯》里创造的那个悲剧角色：伊雷内奥·富内斯因为一次事故获得了完美的记忆力，他能记住每一天每一片树叶的形状、每一秒钟的触感和每一次心跳的节奏。但他也因此崩溃了——因为他无法进行任何思考，他的意识被无差别的记忆完全填满。博尔赫斯写道：\u0026quot;思考就是遗忘差异，就是概括，就是抽象。 \u0026quot;\n人类花了漫长的时间才学会遗忘的艺术——从最初的结绳记事到文字的发明，每一步都是对信息的选择性抽象。文字的发明本身，就是人类第一次主动选择\u0026quot;记住什么、遗忘什么\u0026quot;。而 ZB 时代对\u0026quot;记住一切\u0026quot;的执着，正在让这种能力陷入前所未有的退化危机。当机器把人类从\u0026quot;遗忘\u0026quot;的劳动中解放出来时，人类失去的不是负担，而是思考最本质的前提——一段毫无遗忘的文明，还是一段懂得释怀的文明——这个问题的答案，大概比\u0026quot;1 ZB 等于多少 GB\u0026quot;重要得多。\n五、1 ZB 能装什么？ 在进入下一个量级之前，让我们来做一次 1 ZB 的换算。由于 1 ZB 太大，这次我们用十进制和国际单位制口径（1 ZB = 1000 EB），因为目前所有公开发表的 IDC 全球数据圈预测均基于十进制，但误差不影响直觉感受：\n约 2500 亿部高清电影（每部 4 GB）——假设公元前 3000 年埃及第一王朝建立开始全天滚动播放，到 2026 年的今天大概放完了不到千分之一。 约 3 万亿首 MP3 歌曲（每首 4 MB）——把这些歌曲从头到尾播一遍需要大约 2.2 亿年，比恐龙灭绝到现在的时间还长 3 倍。 相当于大约 7000 个美国国会图书馆的全部藏书数字化纯文本——以美国国会图书馆约 180 TB 纯文本馆藏量估算。 大约 100 万辆自动驾驶汽车连续 24 小时运行产生的全部传感器原始数据——存满整整一年。 每辆 L4 级测试车在极端高配传感器全开的测试状态下，每天最多可产生约 30 TB 数据；如果考虑大多数真实路测场景中的传感器按需触发和实时压缩，一辆主流自动驾驶公司在 2025 年实际每天产生的高精度日志和关键帧，通常在 4 到 12 TB 之间。这里取保守常态。** 全球在 2026 年每 1.5 天产生的全部数据——以 2026 年全球数据圈约 237 ZB 的年生成量计算。 在物理世界里，要装下 1 ZB 的数据，你大约需要：\n一个占地约 200 平方米的中型数据中心机房； 数万台服务器和存储设备 24 小时运行； 电力消耗功率超过 1 兆瓦——足够一个数千人小镇的全部生活用电。 而在 1991 年，\u0026ldquo;Zetta-\u0026ldquo;这个词被写入 SI 标准的时候，全世界最大的硬盘不过 1 GB。命名者不会想到，三十五年后，人类每 1.5 天就能把这 1 ZB 填满。\n六、ZB 的公共面孔：当你已经住在 ZB 时代里，却以为自己还在 MB 时代 在 PB 篇和 EB 篇里，我们说了，PB 是数据中心的语言，EB 是互联网脊梁的语言。到了 ZB，语言已经不是\u0026quot;技术行话\u0026quot;了——它变成了日常生活的底层物理常数。你可能从来没说过\u0026quot;泽字节\u0026quot;这个词，但你每天都活在它铺成的地基上。\n搜索引擎。 Google 每天处理的搜索量超过 85 亿次，每次搜索命中分布在数千台服务器上的 PB 级索引碎片，在零点几秒内完成合并、排序和返回。据 Google 在 2020 年司法部反垄断案中披露的数据，其全球网页索引约 4000 亿文档，此后未再公开更新。虽然网页索引本身的规模难以精确估算，但 Google 在其数据中心内存储、处理和分析的数据总量——包括网页库、索引、知识图谱、AI 训练语料和日志数据——在 2020 年代已进入 ZB 级别。你用 Google 搜\u0026quot;天气预报\u0026rdquo;，大约有数十台服务器在 ZB 级别的数据池里为你翻腾一遍。\n大语言模型。 GPT-4 和类似规模的大模型训练需要 PB 到 ZB 级的高质量文本语料。Common Crawl 一个月爬取的全球网页数据量约为 344 到 363 TiB，而它的整个开源语料库规模在 2025 年已达到 PB 至 EB 级。从这些原始数据中清洗、去重、筛选出的训练数据集背后，站着一个人工标注与自动化管道共同维持的 ZB 级别治理体系。每一次你向 ChatGPT 提问，背后的权重是从一整座 ZB 级数据垃圾山里蒸馏出来的——这句\u0026quot;好像没什么技术含量\u0026quot;的闲聊背后，是人类历史上规模最大的数字工业综合体之一。\n视频流。 Netflix 在 2024 年全球订阅用户突破 2.8 亿。YouTube 月活用户超过 29 亿，用户每天观看约 12 亿小时的内容。Netflix 在 2024 年下半年的全球流媒体播放总时长达到 940 亿小时，全年合计接近 1900 亿小时。把这些视频流量加起来，每年的数据吞吐量足以填满数百 ZB 的传输带宽——虽然实际存储量远小于此（视频分发依赖 CDN 缓存而非全量长期存储），但 ZB 是这个系统的\u0026quot;计量单位\u0026rdquo;，不是它的\u0026quot;库存量\u0026quot;。\n照片。 2026 年，全球每天上传到各社交平台的图片总量超过 50 亿张。以每张手机照片 3 到 5 MB 计算，每天仅社交图片就超过 20 PB 的新增数据。再加上原始文件、编辑副本、各分辨率转码版本——仅图片这一项，每年就能轻松占据几 ZB 的存储空间。你在 Instagram 上传一张自拍，它会被自动转码成 6 种分辨率、复制到 3 个地理区域的数据中心、塞进内容审核的 AI 队列、生成多种视觉特征索引——你只按了一下快门，后台默默复制了超过 8 份副本。\n被永远删不掉的记忆。 即使你删除了社交账号，由于第三方爬虫、AI 模型对旧有数据的阶段性备份、以及广告网络的受众画像残留，你的痕迹很可能依然驻留在几十个跨国运营的 ZB 级存储孤岛里，直到磁带过期、云商割接或被下一波安全法规强制擦除。这些并非你我主动上传的数据，却构成了 ZB 世界中一块极其沉重的灰色主权领土。\n你每天起床，拿起手机，刷了 15 分钟短视频，搜了一下天气，发了一张照片。这套动作你做了十年，觉得稀松平常。但如果你突然搬到一座没有 ZB 存储系统的世界里——你什么都打不开。\nZB 就是这样一种东西：它不是给你用的，它是给你活着的。\n七、ZB 的告别：从建筑到天空 我们在 PB 篇说，PB 之后的存储不再以\u0026quot;硬盘\u0026quot;为单位，而是以\u0026quot;数据中心\u0026quot;为单位。在 EB 篇说，EB 是把互联网变成了一整座沉默运转的工业记忆系统。\n到了 ZB 时代，连\u0026quot;数据中心\u0026quot;这个单位都要被改写了。\n2010 年，人类用了几千年累积的数据才跨过 1 ZB 的门槛。但到了 2026 年，人类每隔大约 1.5 天就能生成 1 ZB 的新数据。从\u0026quot;几千年\u0026quot;到\u0026quot;1.5 天\u0026quot;——这不是一条渐进的曲线，而是一场文明的相位跃迁。\n如果把信息尺度的递进比作一部文明扩张史：1 bit 是第一个烽火台上的狼烟，1 GB 是你口袋里的一千首歌，1 PB 是一座没有窗户的数据中心，1 EB 是一整片沉默运转的数字大陆。而 1 ZB——它不再是一座建筑，不再是几排机架，甚至不再是一片沙漠里的数据中心集群。它是笼罩在整个文明头顶的数字大气层。你看不见它，但它决定了你在数字世界里能不能呼吸。数据不再是人类主动书写的文化产品，而是被机器无差别排放的物理副产品——而我们永远无法把一条河的流动装进一个水桶慢慢品尝。\n而在 ZB 之上，只剩最后一个量级。在那个量级上，人类的语言本身可能已经不够用了。\n下一个单位：1 YB。在那里，我们不再说\u0026quot;数据圈\u0026quot;，我们得说\u0026quot;信息宇宙\u0026quot;。而这一整个宇宙，能不能被完整的备份在某个地方——甚至永远不损坏、不被遗忘——那是最后一篇要回答的问题。\n","permalink":"https://gpchn.252123.xyz/posts/%E4%BB%8E-1-bit-%E5%88%B0-1-yb/1-zb/","summary":"\u003cp\u003e\u003cimg alt=\"Archivo de Indias\" loading=\"lazy\" src=\"/posts/%E4%BB%8E-1-bit-%E5%88%B0-1-yb/1-zb/1.webp\"\u003e\u003c/p\u003e\n\u003cp\u003e西班牙塞维利亚，一座 16 世纪建成的石头建筑里，藏着人类最早的“数据饥渴”——西印度群岛综合档案馆。西班牙帝国用三百年时间，把殖民地的每一笔交易记录、每一份航海日志、每一封总督密信，塞进了这里约 9 公里长的书架上——共 43,000 余卷，约 80 亿页。\u003c/p\u003e","title":"从 1 bit 到 1 YB：1 ZB - 淹没在数据海洋里"},{"content":"2013 年 6 月，前美国国家安全局承包商雇员爱德华·斯诺登在香港的一家酒店里，向《卫报》和《华盛顿邮报》的记者展示了一批绝密文件。随后数年，围绕监控、隐私和数字权力的争论席卷全球。但在这场风暴的底层，藏着一个被大多数人忽略的物理事实，一个纯粹的技术参数——存储容量。\n据斯诺登披露的文件，NSA 犹他数据中心的存储容量估计在 3 到 12 艾字节之间。注意这个词：艾字节。（注：NSA 从未正式公布设计容量。媒体报道的估算范围从若干 EB 到 YB 级别均有，Forbes 基于泄露蓝图的工程推算约为 3-12 EB；此处取主流保守估算。）\n这是绝大多数人第一次在新闻标题里看见它。在此之前，“艾字节”最多出现在某些计算机科学论文的脚注里。在此之后，它变成了一个隐喻——一种足以吞下整个互联网记忆的巨兽的量词。\nExabyte，中文 艾字节，或者你不太可能在任何消费产品包装盒上见过的写法——1 EB。\n1 EB = 1024 PB = 1,048,576 TB = 1,152,921,504,606,846,976 字节。大约 115 亿亿字节，或者说一百一十五万太字节。这个数字已经大到人类大脑无法凭直觉去感受了，需要动用比喻和数学来把它拆开。\n但在所有关于 EB 的拆解开始之前，有一个问题更值得我们停下来想一想：当人类第一次需要用一个叫“艾字节”的词去描述存储时，这条文明的小船，已经悄悄划过了一道什么样的分水岭？\n一、Exa- 这个词：从希腊到硅谷 在希腊语里，hexa 是“六”的意思——但 hexa 已经被占据为“十六进制”的词根了，没法再用。于是更生僻的希腊词 hexakosioi（意为“六百”）被拿出来，从中抽出 ex- 这个前缀，强行赋予了它 10^18 的含义。1975 年，国际计量大会（CGPM）正式批准 exa- 作为国际单位制前缀，表示 10^18。注意，这是十进制版本的——它甚至不是为计算机而生的。\n计算机世界接过这个前缀之后，按照自己一贯的“1024 才是 1000”的逻辑，把 1 EB 定义为 2^60 字节，即 1,152,921,504,606,846,976 字节——比十进制的 1 EB 多了大约 15%。没错，又是那个我们早在 KB 篇就讲过的度量衡老账，到了 EB 这个量级，这笔糊涂账的绝对差额大到离谱：十进制和二进制之间的 EB 差了大约 1.5 亿 GB。一亿五千万个 GB，足够把 Windows 95 安装 300 万次所差的容量，在计算口径的一念之间就出现了。\nExa- 这个词根真正嵌入计算机行业的日常词汇表，始于 1990 年代末到 2000 年代初。彼时互联网正在经历第一次爆炸式增长，超级计算机的吞吐能力爬到了 TB 级，而思科（Cisco）这样的网络设备厂商开始大量发布关于“全球 IP 流量”的预测白皮书。这些白皮书里出现了一个在当时看起来近乎科幻的预测：到某个时间节点，全球互联网的年数据流量将突破 1 EB。\n1 EB 的数据流量。不是存储，是流动——一年之内，全人类在互联网上产生和消耗的数据总量，跨过了这条线。思科在 2008 年前后的《视觉网络指数》（VNI）报告中，正式宣告了这一预测。事实上，据该系列报告的数据追溯，全球 IP 流量在 2001 年突破 1 EB/年大关，到 2007 年左右月均流量突破了 1 EB。（注：思科 VNI 白皮书在 2000 年代末首次广泛进入大众视野，而其数据回溯将 1 EB 年流量的临界点锚定在 2001 年前后）\n这意味着什么？意味着在乔布斯掏出第一代 iPod 的同一年——在他把“一千首歌装进你的口袋”的同一年——整个互联网一年的数据流量，已经跨过了 1 EB。GB 和 EB 在同一个历史时刻共存于世界的两端：这是信息尺度最迷人的折叠瞬间。\n二、互联网的脊椎：1 EB 的流动比 1 EB 的静止更早到来 在 PB 篇里我们说过，存储从 PB 开始变成了一种像呼吸一样的公用设施。但 EB 时代带来的是一个更深层的变化：在 PB 时代，你先存数据，再考虑怎么用它。在 EB 时代，数据还没存稳，就已经被用掉了。 流动比静止更重要。\n我们来看几个可见的证据。\n谷歌的爬虫与索引。 谷歌在 2008 年的一篇官方博文中透露，其系统检测到的独立 URL 数量已突破 1 万亿。即使每个页面的平均索引大小只有几十 KB，整个网页索引的规模也已经稳稳进入了 EB 俱乐部的门槛。而这个索引不是“存着不动”的——它需要持续更新、重组、压缩、分发到全球各地的边缘节点。每一次你搜索“天气”，命中的不只是某一个机房里的一块硬盘，而是分布在全球几十个数据中心里、不断被重新计算和排序的一整套 EB 级索引碎片。\nNetflix 的视频编码矩阵。 2007 年，Netflix 从 DVD 邮寄业务转型为流媒体服务。到 2010 年代，Netflix 的全球订阅用户突破 1 亿，每人每天观看数小时的高清视频。为了适应从 50 英寸电视到 5 英寸手机屏幕的所有观看场景，Netflix 会对同一部影片生成数百个不同分辨率、码率、编码格式的版本，并将它们分发到全球上千个 CDN 节点。整条管道里的总副本量，是一个 EB 级的数字。你按下的每一次播放键，背后都是几个 EB 的数据在为你冲刷出一个最流畅的观影体验。\n科学计算的“一次实验，一辈子看不完”。 我们之前提到了 CERN 的 LHC——大型强子对撞机每年产生超过 30 PB 的原始碰撞数据。但这只是冰山一角。LHC 的四个大型探测器（ATLAS、CMS、ALICE、LHCb）在实验阶段的总数据产出量，加上模拟重建数据、分析派生数据，整个生命周期累计的数据规模早已迈过 1 EB 的门槛，具体数字取决于你如何划分原始数据与派生数据的边界。2012 年发现希格斯玻色子的那个信号，就藏在数十 PB 的背景噪声里。1 EB 是物理学家们淘金的那条数据之河——而金子只有其中一撮。\n社交网络的“沉默的大多数”。 你在 Instagram 上发一张照片，它会被自动转码成多种分辨率，复制到多个地理区域的服务器上，塞进自动内容审核的队列里，生成多种视觉特征的索引，最后才出现在你朋友的 feed 流里。你只发了一次，但后台大概存了 6 到 8 份。当全球每天上传数十亿张图片和视频时，整个 Instagram 的存储架构管理着一个 EB 级的持续膨胀的数据池——而你只看得见其中你自己的那个小小剖面。\n三、TSMC 与 ASML：EB 时代的看门人 讲到这里，我们还没正面回答一个问题：用什么硬件来承载 EB？\n在 PB 篇，我们还能津津乐道地比较 IBM 3380 的 250 公斤和 M.2 SSD 的口香糖大小。在 TB 篇，我们还能说“一块 20 TB 的硬盘塞进 1U 服务器，五台机器拼出一个 PB”。但到了 EB 这个量级，单纯的“硬盘数量”不再有意义。真正决定一个 EB 能否被经济地存储和访问的，是 半导体工艺的制程节点 和 光刻技术的极限精度。\n这就是 EB 时代最容易被忽略、却最根本的硬约束：你的全部数据，不论存在哪个云厂商的哪个数据中心里，最终都刻在一张张晶圆上。而晶圆，是用光刻机一根一根线地“画”出来的。\nTSMC（台积电） 是目前全球最先进的芯片代工厂。它生产的高密度 NAND 闪存控制器、服务器 CPU 和 AI 加速器，是每一座 EB 级数据中心的物理底座。而 TSMC 的产线里站着 ASML——荷兰一家近乎垄断极紫外（EUV）光刻技术的公司，一台 EUV 光刻机售价超过 1.5 亿美元，需要 40 个集装箱才能运输，安装调试耗时数月。每一片先进制程的晶圆，都必须经过 ASML 的光刻机。\n这意味着一个看似遥远、实则极其直接的因果链：ASML 产出的光刻机数量，约束着 TSMC 的先进制程产能；TSMC 的产能量，约束着全球高密度 3D NAND 闪存和服务器芯片的出货量；而这些芯片的出货量，又约束着云厂商能以多快的速度、多低的成本扩张 EB 级存储阵列。2023 年到 2024 年间全球围绕 AI 算力爆发的产能争夺，其实就是这条因果链在真实商业世界的一次公开发作。\nEB 的存亡，不是被硬盘决定的，而是被光刻机决定。这是信息尺度膨胀到一定数量级之后，物质世界反过来施加的最冷酷的物理制约。\n四、比特衰变在 EB 尺度上的终极形态：存档艺术的危机 在 PB 篇我们聊过“比特衰变”——存储介质里的电荷缓慢泄漏，磁畴取向逐渐漂移，导致数据在无人察觉的情况下静默损坏。在 PB 尺度上，这是一个概率问题。在 EB 尺度上，它是一个不容商量的物理定律。\n一个 EB 系统中大约有 2^60 个比特。即便每个比特每年出现错误的概率低到 10^-18，一个 EB 的系统每年也会发生大约一次不可检测的比特翻转。而实际的错误率远远高于这个数字——普通消费级内存的软错误率在 10^-12 到 10^-15 每比特每小时的数量级，企业级硬件虽然低几个数量级，但在 EB 尺度下依然杯水车薪。\n这就是为什么所有 EB 级系统都必须采用端到端的数据完整性校验——从磁盘扇区的 ECC，到文件系统的校验和，到网络传输的 CRC，到应用层的副本比对。每一层都在和比特衰变搏斗。你的数据能在云盘里安然无恙地躺十年，不是因为硬盘不会坏，而是因为有一整套算法体系在持续不断地自查、修复和迁移副本。存储，在 EB 尺度上，不再是一个硬件问题，而是一个数学问题。\n但比比特衰变更隐蔽的威胁是 人类知识格式的断代。你在 1990 年代用 WordPerfect 写的文档，今天大概率已经打不开了。你在 2000 年代刻录的 CD-R，镀层可能已经开始氧化剥落。一个 EB 的存储系统每时每刻都在刷新自己的硬件——硬盘换成 SSD 再换成下一代持久内存，接口从 SATA 变成 SAS 变成 NVMe 变成未来的 CXL。每一次硬件代际更迭，都意味着数据必须被迁移。而这个迁移过程本身，就是一次大规模复制，带着引入新错误的可能性。\n云厂商解决这个问题的方式是“永远在迁移”——数据从老旧硬件向新硬件持续流动，从不给任何一个平台安静老去的时间窗口。这听起来像是永生的技术承诺，但它也带来一个令人不安的哲学问题：如果一个数据被持续重建了五十年，经历了三代文件系统和两种编码标准的变迁，它还是原来那个数据吗？你还能肯定地说，这份从祖父硬盘里抢救出来的数码档案，和五十年前存档人保存进去的那一张唯一的底本是同一个文件吗？\n这不是杞人忧天。CERN 在管理 LHC 数据时就遇到了这个问题：早期的实验数据存进了某种磁带格式，十几年后，能读取这种格式的驱动器和软件环境已经不存在了。他们需要专门维护一套“格式遗产系统”，用来持续把旧数据转换成新格式——永无止境。\n五、1 EB 能装什么 让我们来做最后一次换算。以下换算主要采用二进制前缀（1 EB = 1024 PB），但由于 EB 实在太大，微小误差不影响直觉感受：\n约 2.5 亿部高清电影（每部 4 GB）——假设你从公元前 3000 年埃及第一王朝建立开始每天看一部电影，到今天还没看完一个零头。 约 3000 亿首 MP3 歌曲——地球总人口 80 亿，每人分 37 首，还剩一大堆。 整个人类有史以来说过的所有话——据语言学家估算，所有人类在所有时代说出的话语，如果全部转换成纯文本，大约在 1 到 5 EB 之间。也就是说，1 EB 大约等于全人类历史上所有口头语言的文字记录的五分之一到等身。这个数字小得让人吃惊——我们说了几十万年的话，总量不过几个 EB。而今天全球互联网一年的 IP 流量已经超过 5000 EB。 整个人类有史以来说过的所有话——按语言学文献中的中位估算，每人每天约说 16,000 词，平均词长 5 字符，70 年寿命，一生约产生 2 GB 纯文本原始数据。以历史总人口约 1,000 亿人（绝大多数未活到成年）、去重压缩 10 倍计，所有人类在所有时代说出的话语，全部转换成纯文本存储，粗略估计为 50 EB。这个数字小得让人吃惊——我们说了几十万年的活话，总量不过几十个 EB。而今天全球互联网一年的 IP 流量已经超过 5,000 EB。 谷歌在 2010 年代中后期管理的索引与网页库规模——虽然谷歌从不公布精确数字，但多方分析师估算其原始网页库与索引的总和早已进入 EB 俱乐部，且正在向更高量级迈进。 全人类基因组数据的总量——假设为 80 亿人做全基因组测序，每人原始数据约 150 GB（haploid），总数据量约为 1200 EB。1 EB 大概能装下全球千分之一人口的全基因组数据。 而承载这些数据的物理载体——在 2026 年的今天，一块 30 TB 的企业级硬盘重量约为 690 克。要达到 1 EB 的原始容量，大约需要 36,000 块这样的硬盘，总重量约 25 吨。加上服务器机箱、电源、网络设备和制冷系统，一整套 1 EB 存储集群大概需要一个中等规模的数据中心大厅来容纳，耗电量足够一个万人小镇的所有生活用电。\n六、1 EB 的公共面孔：你已经是它的原住民 和 PB 一样，EB 也没有完全把自己关在数据中心里。它有几个你在日常生活中反复接触、却从没和“艾字节”这个拗口词联系起来的公共面孔。\n短视频平台。 TikTok 和抖音的全球日活用户超过 15 亿，每天产生的视频数据量在 PB 级，月度数据量轻松突破 EB。你在地铁上划过的每一个 15 秒视频，都经过编码、分发、缓存、推荐算法的无数次读写——整个系统围绕一个 EB 级的动态内容池在运转。你每天刷 2 小时，就是在 2 小时的物理时间里，以大约 10 到 30 Mbps 的速度穿过自己那根细管，贪婪地在这个 EB 大池里切下属于你一个人的一道薄片。\n大语言模型。 GPT-4 和类似规模的大模型在训练阶段需要处理数十 TB 到 PB 级的高质量文本语料，而整个互联网级原始语料的总规模——包括 Common Crawl 的全部网页爬取结果——在 2020 年代已达数十 PB 级别，单次月爬取约 344-363 TiB。这些语料在被清洗、去重、分词之前，以原始形态存储在 PB 甚至 EB 级的分布式文件系统上。你每次和 ChatGPT 聊天，背后是一套从 EB 级语料库中被蒸馏出来的权重，在你打出每一个字的时候沉默地运算。\n自动驾驶。 一辆 L4 级自动驾驶测试车每天产生的传感器数据——激光雷达、摄像头、毫米波雷达、高精度 GPS——在 4 到 20 TB 之间。以 Waymo 测试车为例，每小时产生约 1,100 GB 数据，按一天运行 24 小时计算约 26 TB。一个拥有 100 辆测试车的车队，每月产生的数据量超过 30 PB。而自动驾驶公司需要将这些数据全部回传、标注、清洗并用于模型训练。行业头部玩家的累计数据量已经摸到了 EB 的门槛。硅谷的路口和北京的高架桥，正在以艾字节的精度被数字化重造。\n七、EB 的告别：始于犹他，不止于犹他 让我们回到 2013 年的香港，回到斯诺登和记者们待过的那间酒店房间。\n为什么是犹他州？为什么 NSA 要在一片沙漠里建造一个艾字节级别的数据中心？官方的解释是：为了支撑情报分析。但更深层的逻辑，EB 这个单位自己的物理属性，已经替他们回答过了。\nEB 需要荒凉。EB 需要廉价的电力、稳定的地质、远离飓风和地震带的土地。EB 不能生活在人类旁边——它太热、太吵、太耗电。于是它被发配到沙漠、北极圈、海底和废弃的矿山里。在 PB 时代，数据中心还像一座仓库。在 EB 时代，数据中心更像是这个文明偷偷埋在地下的维生装置——它不体面，不显眼，但断了电整个数字世界就会窒息。\n如果整个信息尺度是一个正在不断扩张的文明——从 1 bit 的烽火台到 1 PB 的都市，那么 1 EB 就是这个文明建造的第一座“大陆级工程”。它不再是某个公司或某个国家的财产，它是人类这个物种作为整体产出的信息废气的总汇集。\n而从 1 EB 再跨出下一步，就不再是“更大”，而是“另一种东西”。在那里，1 EB 只不过是一块即将被吞没的垫脚石。人类给这个下一级取了一个名字，它本身就是一整个海洋。\n下一个单位：1 ZB。在那个尺度上，我们不再谈论地球上的数据，而是开始谈论全人类作为一个文明所拥有的全部数字储备。欢迎来到信息世界的半球尺度。\n","permalink":"https://gpchn.252123.xyz/posts/%E4%BB%8E-1-bit-%E5%88%B0-1-yb/1-eb/","summary":"\u003cp\u003e2013 年 6 月，前美国国家安全局承包商雇员爱德华·斯诺登在香港的一家酒店里，向《卫报》和《华盛顿邮报》的记者展示了一批绝密文件。随后数年，围绕监控、隐私和数字权力的争论席卷全球。但在这场风暴的底层，藏着一个被大多数人忽略的物理事实，一个纯粹的技术参数——\u003cstrong\u003e存储容量\u003c/strong\u003e。\u003c/p\u003e","title":"从 1 bit 到 1 YB：1 EB - 整个互联网的重量"},{"content":"\n湿冷的空气，持续的低频嗡鸣，日光灯下永不停歇的灰色长廊。一排排机柜整齐列队，每一格都嵌满密密麻麻的硬盘，指示灯像无数只不眠的眼睛，在无人注视的角落里飞快明灭。闻起来，是金属、塑料、制冷剂和微量臭氧的混合：金属来自机壳，塑料来自线缆绝缘层，制冷剂从空调管路里逃逸出微不可查的一丝甜腻，臭氧是高压放电留下的隐晦签名。有些老旧的机房里还混杂着灰尘被电热烤过之后特有的焦腥味。\n电子电路在长期通电后，会释放出一种极微量的溴化阻燃剂挥发物，常年累积在机柜的死角里，形成淡淡的化学涩味。只有偶尔更换滤网、擦拭热交换器翅片时，那种气味才会格外明显。这不是一间让人觉得舒服的屋子，这是一台超大型精密仪器的内脏。人类在这里是访客，真正的常住居民是数据。\n在 TB 时代，数据还住在你桌子下面的铁盒子里，嗡嗡转动，温驯可触。但到了 PB 时代，数据搬进了这些灰色建筑，从此隐没于一片永不休眠的机架汪洋。在这里，存储不再是一块你能握在掌心的硬盘，而是一整个需要冷水机组、柴油发电机和消防气体灭火系统层层包裹的工业系统。\n你上一次感觉到“我在保存数据”，大概还是把文件拖进某个文件夹的下午。而在数据中心里，数据从未停止过保存自己——每分每秒，冗余副本在不同的机架之间自动同步，损坏的块被静默修复，老化的硬盘在预测到故障前就被踢出阵列。这一切都不需要你动手，甚至不需要你知道。存储，从 PB 时代开始，变成了一种像呼吸一样自动运转的基础设施。\n2012 年 6 月，美国犹他州荒漠深处，一座不起眼的灰色建筑悄然通电。它没有窗户，没有招牌，只有密密麻麻的空调外机在沙漠热浪中嗡嗡作响。开车路过的人可能会以为那是一座普通仓库，但这座“仓库”造价 15 亿美元，里面住着一个单位——Petabyte。\n它的主人是美国国家安全局（NSA），也被称为 Bumblehive。这座犹他数据中心的设计容量至今被严格保密，但多方分析师估计它在 3 到 12 艾字节（Exabyte）之间。而它的第一阶段上线目标，业界普遍认为是 1 PB。（注：NSA 从未正式公布设计容量，媒体估算范围差异极大，从若干 EB 一直到 yottabyte 级别，此处取 Forbes 基于泄露蓝图的保守估算）\n从这一刻起，人类对存储的理解彻底变了。在此之前，你用 TB 来衡量一块硬盘、一台笔记本、一个家庭的数字资产。但 PB 的出现，意味着存储不再是一个人、一个家庭的事——它是一个国家、一个平台、一整个互联网的事。\nPetabyte，中文 拍字节，或者 1 个 P。\n1 PB = 1024 TB = 1,048,576 GB = 1,125,899,906,842,624 字节。一千兆个字节。这个数字太大了——大到我已经没办法用“你手机里的歌曲数量”来打比方了。一千兆到底是多少？我们稍后会做换算。\n但在此之前，让我们回答一个更迫切的问题：人类到底是先造出了 PB 级存储，还是先造出了 PB 级的数据——而这个问题，又反过来重新定义了我们整个数字文明的底层逻辑。\n一、谷歌的“乐高机柜”：PB 是怎么被一块块拼出来的 1998 年，两个斯坦福大学的研究生——拉里·佩奇和谢尔盖·布林——在加州门洛帕克一间车库里创办了一家小公司。这家公司的使命是“整合全球信息”。它的名字叫 Google。\n但实现“整合全球信息”的雄心里卡着一个现实到令人窒息的瓶颈：你要爬取全世界的网页，你要把它们的副本全部存下来，你还要在上面建索引——这需要多大的存储？\n在 1998 年，一块企业级硬盘的容量不过几 GB，价格贵得让人牙酸。而 Google 是一家连租厂房的钱都紧张的初创公司。它买不起 EMC 和 IBM 的高端存储阵列，也请不起专业设备维护团队。于是 Google 的工程师们做了一个在整个 IT 史上都堪称“离经叛道”的决定：自己造。\n他们从电脑城买来最便宜的消费级硬盘，塞进用廉价主板搭起来的服务器里，然后把这些五花八门、没有任何容错保障的机器塞进机柜。坏一个算一个，坏了就拔掉换新的，重要的是便宜——而且要多。\n这就是 Google File System（GFS） 的诞生背景——一个运行在不可靠硬件上的高可靠分布式文件系统。而基于 GFS，Google 建立起世界上第一套真正意义上的 PB 级数据基础设施，并因此迈出了“自家服务器只买最便宜硬盘”的存储民主化第一步。\n在早期，Google 的这些服务器长得一点都不像你想象中那种科幻感十足的数据中心。它们被装在开放的机架上，甚至会因为振动过大而导致全部读写性能大幅下降。为了解决这个问题，他们不得不给硬盘加装减震垫、调整机架排布。在同行眼中，Google 的机房更接近于一个被放大了一百倍的大学生宿舍——到处是乱糟糟的网线、随手拼装的硬件，但它确实跑起来了，而且跑得出奇地稳。\nGoogle 大概是最早一批面对“PB 级存储焦虑”的公司。到了 2006 年左右，它的数据中心已经在 EB 级别上规划未来，但日常活跃管理的索引与数据，总是在 PB 的尺度上反复磨合。这种早早被 PB 级规模顶到的阵痛，让 Google 比大多数公司提前十年交了一份《PB 操行手册》。\n二、犹他州那座没有窗户的建筑 让我们回到犹他州沙漠里那座灰色建筑。\nNSA 犹他数据中心的选址绝非偶然。犹他州地广人稀，电费相对低廉，地质结构稳定，几乎没有地震风险。最关键的是——它能就近获取大量电力。据估算，这座数据中心满负荷运行时消耗约 65 兆瓦电力，足以供应一个数万人的小镇。\n65 兆瓦是什么概念？其中相当一部分不是花在计算上，而是花在冷却上。数以万计硬盘昼夜旋转，CPU 和内存全速运转，产生的热量足以让整座建筑变成一个巨型烤箱——如果不加冷却，它会在几个小时内烧毁自己。这也是为什么你在这类数据中心附近总能听到那种持续不断的低频嗡鸣声——那是制冷系统在日以继夜地和物理定律搏斗。\n不仅是 NSA，Google、Amazon、微软、Facebook……每一家科技巨头都在全球各地建造着这样的数据中心。在距离凤凰城约两个半小时车程的亚利桑那州梅萨市，灰白色的 Google 数据中心几乎嵌进了沙漠景观——门外挂着不起眼的监控标识，而里面正运行着一部分你明天会在搜索引擎里键入的世界的索引。Facebook 则在瑞典吕勒奥——北极圈边上一座常年低温的小镇——建起了一座数据中心，用北极圈的冷空气给服务器自然降温。微软把数据中心沉进了苏格兰海底，验证水下数据中心是否能靠海水降温、并减少对陆地空间的依赖。\n这些巨型数据中心的共同点是：它们之间的主要互动不再是“人和机器”，而是“机器和机器”。你大概从未真正走进过一座 PB 级数据中心，但你每天发的每一条微信、搜的每一个关键词、拍的每一段短视频，最终都会在某个灰色建筑里占据几纳米的磁畴，从此成为一个不会腐烂的数字比特尸体。即使你死了，它大概还在。\n三、PB 级别到底在“存”什么？ 在 TB 时代，我们要用一块实体硬盘去装照片、装视频，存储对象是一个个具体的文件。在 PB 时代，文件名逐渐变得不重要了——数据被拆碎、被打散、被复制成三份丢进不同的机架，由调度系统统一管理。\n这就是 分布式文件系统 和 对象存储 统治 PB 级数据的秘密：你不再直接操作文件，你操作的是一个抽象的“存储池”。\n而存储在这个池子里的，是那些我们天天用却几乎从来看不到的东西：\n搜索引擎的索引。 Google 爬取全球数百亿个网页，并对每个网页建立正排和倒排索引。你以为你搜“天气”只需要查一个数据库——实际上每一次查询都会命中分布在上千台服务器上的索引碎片，在零点几秒内完成合并、排序、返回。支撑这一切的，是 PB 级的索引数据。\n社交平台的图片与视频。 Instagram 每天上传的照片超过数亿张，YouTube 每分钟上传的视频超过 500 小时。这些数据中绝大多数你永远看不到——它们被存在某个 PB 级的存储集群里，靠自动温度分层系统来管理。热数据放在 SSD 上供即时访问，温数据留在硬盘阵列里，冷数据被打包写入磁带库，几年无人访问就自动归档沉入离线深库。这就是 PB 时代独有的数据生老病死。\n云存储的快照与冗余。 当你把文件存进云盘时，你以为只有一份副本吗？事实上，一个标准的商用云存储系统，会为你的数据自动维护 3 到 6 份冗余副本，分布在不同的机架、不同的楼层，甚至不同的城市。这一切自动运行、无人感知——但代价是，存储消耗被乘以 3 到 6 倍。一块 1 PB 的原始硬盘空间，实际可用可能只有 300 TB 出头。冗余吞噬了 PB，但也正是它为 PB 撑起了安全穹顶。\n科学计算的数据集。 欧洲核子研究中心（CERN）的大型强子对撞机每年产生的数据超过 30 PB，全球射电望远镜项目（平方公里阵列，SKA）建成后每年会产生约 1000 PB 的数据——比当前整个互联网的日流量还要高。人类基因组测序成本从 2000 年代的数十亿美元降到现在的几百美元，单次测序原始数据在几百 GB 到 TB 之间，全球基因组数据集的规模已稳稳进入 PB 俱乐部。从最后一个冰河纪的遗存到遥远星系的脉冲信号，整个宇宙都可以被提取成几列数字塞进 PB。\n四、PB 时代的“怪问题”：硬盘还没坏，但你永远读不到数据了 当你日常和几百个 TB 打交道时，只会关注两个指标：速度和容量。但当规模达到几百 PB 时，一个全新的、令人不安的问题出现了：硬盘还没坏，但你装在里面的数据可能再也读不出来了。\n这不是技术故障，而是静默数据损坏在 PB 规模下的概率学惩罚。\n这种现象在存储行业有一个听起来更科幻的名字：比特衰变（Bit Rot）。存储介质中的电荷会缓慢泄漏，磁畴的取向会逐渐漂移，导致写入时还是 1 的比特，在几年后悄无声息地变成了 0，而硬盘自身的错误校正码（ECC）甚至来不及报告这个错误。这在几百 GB 的硬盘上无关紧要；在几 PB 的系统里，它变成了不得不直面的问题。\n更隐蔽的风险在于版本迁移。你今天把十万张照片存进某个云服务，二十年后，制造商可能已经更换了三四代硬盘接口标准，你再想把这些数据转存到新的设备上，还得找到一个能同时兼容老版本 API、旧文件系统元数据格式和当时授权协议的工具链。PB 尺度下的“长期保存”不是买更多硬盘，而是持续为格式与协议的更迭付费。\n这也是为什么磁带——一个在消费市场消失已久的东西——至今仍然活跃在 PB 级冷存储的王座上。LTO-9 磁带的单卷容量已达 12 TB，LTO-10 预计可达 36 TB，稳定性可达三十年，不耗电、不怕振动，只需放进恒温恒湿的柜子里就比绝大多数机械硬盘更省心。冷数据归档的最佳伴侣（也是最朴素的选择），依然是 1980 年代那盘你放进录像机里会卷带的磁带的后代。CERN 把每年产生的 EB 级数据打包成离线磁带库运走；云厂商把可能再也不会有人调用的老备份按打捆塞进机器人磁带库。\n五、1 PB 能装下什么？ 在进入下一个量级之前，让我们来一次 1 PB 的换算。以下换算基本按二进制前缀（1 PB = 1024 TB）计算，小数点后取整：\n1 PB 大约等于：\n约 2.5 亿首 MP3 歌曲（每首 4 MB）——如果连续播放，需要约 1,900 年。从东汉刘秀建立东汉开始播，播到今天晚上才播完。 约 3.4 亿张手机照片（每张 3 MB）——如果你每天拍 100 张，够你拍九千三百年。一万年前人类刚开始驯化小麦的时候你拍了一张照片，今天还剩一半没拍完。 约 1,700 小时的 4K 超高清视频（H.264，典型码率约 15 Mbps），约 500 小时的无压缩 4K 原始素材。如果你把一个人的一生——从出生到八十岁——全部用 1080p 视频不间断录下来，大概需要 3 到 5 PB。1 PB 大概是一个人的整个童年和青少年。 整个美国国会图书馆所有纸质藏书的纯文本数字化版本的约 50 到 100 倍——1 PB 大概能装下人类有史以来出版过的所有书籍的纯文本内容，还可能剩下半箱子的地方。 谷歌搜索引擎原始网页库的一小部分。 虽然谷歌不公开具体数字，但据 2008 年前后的一篇官方博文透露，谷歌处理的网页总量早已突破 1 万亿——即使只存索引，也远不止 1 PB 能装下的量级。 而在现实世界里，一台标准 1U 机架式服务器可以塞进 12 到 24 块企业级大容量硬盘。如果每块 20 TB，一台 1U 机器的容量便能轻松突破 200 TB，这意味着只要 5 台 1U 机器就能凑出一个 1 PB 的存储集群。五台机器，一只标准机柜都还没装满。把 2012 年 NSA 犹他数据中心最初上线的那 1 PB 平移到现在，大概只能在数据中心的一个角落占掉半个机架。\n六、PB 的公共面孔：从电网到你的指尖 PB 虽然是一个数据中心级别的单位，但它并没有完全藏在地下。有两个你每天都在用、却从不觉得它和 PB 有关系的产品，它们的背后有着浓重的 PB 味道。\n第一件：你的 Gmail。 Gmail 在刚推出时给每个用户免费提供了 1 GB 空间，这在当时被看作一个不可理喻的慷慨。但 1 GB 背后，必须有一个敢接下“为用户兜底所有邮件”的存储架构，而这个架构从一开始就建立在 Google 的那个“从乐高机柜拼出来的”PB 级分布式文件系统之上。你邮箱里十年不删的邮件，正安安静静地躺在某个 PB 集群的第三份冗余副本里。\n第二件：生成式 AI。 2022 年 ChatGPT 上线，背后的大型语言模型需要海量文本语料来训练。例如，Common Crawl 的一个 PB 级训练语料子集，就包含了数万亿 token 的训练数据。而模型训练本身产生的中间数据，也时常在几百 TB 到 PB 级别徘徊。你每次和 AI 聊天，背后是一整座 PB 级存储大库在为你的每一次会话默默供数。\nPB 正在从后台走向前台。你可能不认识它，但你已经用身体在消费它。\n七、PB 的告别：一座看不见的城市 1 PB 最值得记住的不是它有多大，而是它完成了一个存储单位最有价值的一次身份转变。从这个人造单位出现之后，“存储”在人类生活里的角色，就已经彻底地重新洗牌了。\nPB 之后，数据不再以“文件”为单位，不再以“硬盘”为单位，甚至不再以“机房”为单位，而是一种建筑在地基以下的无形公用设施——就和自来水、医院、电网一样，平时你感受不到它的存在，只有断电那一下你才意识到：原来它是我每天的命运底座。\n我们每个人都是 PB 时代的普通居民。你活在由无数个 PB 搭建的数字城市里，你看不见它——但你有朝一日如果突然搬到一座没有 PB 的世界里，你会窒息。\n而在这座看不见的城市上面，信息尺度还在继续膨胀。在下一个单位面前，连“PB”这个刚刚还让人觉得大到窒息的量级，都将被压缩成一粒微不足道的沙子。\n下一个单位：1 EB。在那里，1 PB 已经不再是数据中心的主角。它会变成一个你过去曾为之震撼、而转瞬就再也排不上号的历史小单位——就像前几个时代里我们不断告别过的那些老朋友一样。\n","permalink":"https://gpchn.252123.xyz/posts/%E4%BB%8E-1-bit-%E5%88%B0-1-yb/1-pb/","summary":"\u003cp\u003e\u003cimg alt=\"数据中心\" loading=\"lazy\" src=\"/posts/%E4%BB%8E-1-bit-%E5%88%B0-1-yb/1-pb/1.webp\"\u003e\u003c/p\u003e\n\u003cp\u003e湿冷的空气，持续的低频嗡鸣，日光灯下永不停歇的灰色长廊。一排排机柜整齐列队，每一格都嵌满密密麻麻的硬盘，指示灯像无数只不眠的眼睛，在无人注视的角落里飞快明灭。闻起来，是金属、塑料、制冷剂和微量臭氧的混合：金属来自机壳，塑料来自线缆绝缘层，制冷剂从空调管路里逃逸出微不可查的一丝甜腻，臭氧是高压放电留下的隐晦签名。有些老旧的机房里还混杂着灰尘被电热烤过之后特有的焦腥味。\u003c/p\u003e","title":"从 1 bit 到 1 YB：1 PB - 数据中心凉爽干燥的空气"},{"content":"2007 年 1 月 5 日，一项纪录被打破了。日立环球存储（HGST）宣布了业界首款 1 TB 硬盘——Deskstar 7K1000。这是一块 3.5 英寸、7200 RPM 的硬盘，采用垂直磁记录技术，建议零售价 399 美元，折合每 GB 成本约 40 美分。HGST 同时发布了面向数字录像机市场的 CinemaStar 1 TB 版本，声称一块 TB 级硬盘可以轻松存储近 250 小时的高清节目。\n从这一刻起，人类正式进入了 TB 时代——一个和 GB 时代截然不同的新纪元。如果说 GB 时代是在问“我能存多少”，那么 TB 时代要回答的问题是：“我存完以后，还能再存多少，才会开始觉得不够？”\nTerabyte，中文 太字节，俗称 1 个 T。\n1 TB = 1024 GB = 1,048,576 MB = 1,099,511,627,776 字节。一万亿个字节。这个数字今天已经爬满了全世界的电商页面——你买一台笔记本，配置单上写着 512 GB 或 1 TB 的 SSD；你装一块移动硬盘，包装盒印着 2 TB、4 TB 乃至 5 TB。TB 早已不是一个让人一惊一乍的单位，它已经变成了你日常掏钱购买的“默认套餐”。\n但如果你把日历翻回 2007 年，你会发现：人类为了跨过 TB 这道门槛，用了整整五十年。从 1956 年 IBM RAMAC 的 5 MB 到 2007 年 Deskstar 的 1 TB，容量膨胀了约 200,000 倍。而接下来，从 1 TB 走到 20 TB，只用了不到十五年。如果计算机信息史是一部电影，TB 就是那段突然按下了四倍快进的疯狂蒙太奇。\n一、1 TB 刚来的时候，我们根本填不满它 2007 年，1 TB 硬盘的出现给全世界带来了一个问题：这么大，拿来干什么？\n不是开玩笑。在那个年代，绝大多数家庭的数字资产加起来可能还装不满一个 80 GB 的硬盘。MP3 码率普遍只有 128 kbps，一部电影压缩到 700 MB 刚好刻进一张 CD-R，照片刚从两三百万像素起步，一张 JPEG 不过几百 KB。你辛苦收集了好几年的数据，腾挪到新买的 1 TB 硬盘上，进度条一闪而过——只占了不到十分之一的空间。\n这种感觉是历史性的：人类第一次拥有了一个“花不完”的容量。 在 KB 时代，你每存一个文件都要精打细算，多余的空格都得删掉。在 MB 时代，一张软盘刚好装下一两张照片，你需要一个文件柜来管理一摞盘片。在 GB 时代，一块硬盘能装下一个音乐库或者十几部电影，你开始觉得容量够用了。但到了 TB 时代，你发现自己根本不知道该如何填满它——这种感觉在计算机史上从未出现过。\n当然，这种感觉并没有持续太久。没过几年，高清视频、大型游戏和手机拍照的像素军备竞赛联手把 TB 从“奢侈”变成了“刚需”。但那个短暂的“花不完”的窗口期，是 TB 时代送给全人类的一份独特礼物——它是一个短暂地超越了人类贪婪的存储单位，在人类物欲的大地上划开了一条只闪耀了几年的光带，便重新被数据洪流吞没了。\n二、日立打响了第一枪，然后呢？ 2007 年日立抢占 1 TB 先机之后，希捷很快在当年 6 月推出了自家的 1 TB 产品——Barracuda 7200.11，单碟容量 250 GB，4 碟封装。西数紧随其后，1 TB 硬盘迅速从新闻头条变成了电脑城里的常规商品。短短一年间，TB 从神话落地为标价签上的一个数字——这种急速的“商品化”，是此前任何一个存储量级都未曾经历过的速度。\n然后，故事急转直下。\n2008 年，希捷 Barracuda 7200.11 系列曝出了著名的“固件门”事件——我们在上一篇 GB 的故事里详细追溯过这场灾难。30 多款产品、数以万计的用户、硬盘里拿不出来的数据——这场危机之所以刻骨铭心，恰恰是因为它发生在 TB 门槛刚刚被跨越的时刻。当一块硬盘大到能装下你半辈子照片和全部工作文档的时候，它就不再是一个技术参数，而是一个装满人生的保险柜。保险柜突然打不开了——这种感觉，是人类在迈入 TB 时代的那一刻，付出的第一笔学费。\n但希捷的翻车并没有阻止历史的脚步。比机械硬盘内部的厮杀更值得关注的，是另一个赛道上传来的蜂鸣声——它正在悄然改写 TB 时代的全部规则。\n三、SSD 的逆袭：当 TB 不再需要旋转 在机械硬盘三巨头为 TB 王座打得头破血流的同时，一场静悄悄的革命正在另一个赛道上酝酿。\n闪存技术的历史其实远比你想象的早。1988 年，英特尔正式推出商用闪存芯片。1989 年，世界上第一款固态硬盘诞生。但在接下来的近二十年里，SSD 一直是一个价格昂贵的边缘角色——容量小、价格高，仅供军用和工业场景。\n真正的转折发生在 2008 年。这一年，英特尔发布了 X25-M 固态硬盘，以相对亲民的价格和远超机械硬盘的读写速度打开了消费级 SSD 的市场大门。此后几年，SSD 容量一路飙升，价格一路走低。2013 年，第一块 1 TB 消费级 SSD 上市，零售价约 500 美元——虽然还是比同等容量的机械硬盘贵不少，但 SSD 已经不再是一个只供发烧友氪金的奢侈品。同年，TLC NAND 闪存颗粒的普及进一步降低了制造成本。2014 年，NVMe 协议进入商用，让 SSD 的读写速度直接起飞——一块 NVMe SSD 的顺序读取轻松突破 3000 MB/s，而同时代最快的机械硬盘还在一两百 MB/s 上挣扎。\n2015 年，M.2 接口的 SSD 开始普及。这个接口的硬盘有多小？大概相当于一块口香糖。1 TB 的容量，从 1980 年那台 250 公斤的双开门冰箱，变成了一块可以夹在两指之间的电路板。\nSSD 对机械硬盘的降维打击是全方位的：它没有旋转的盘片，没有来回滑动的磁头臂，不怕震动，几乎不产生噪音，读写延迟以微秒计。唯一曾经吃亏的是容量和价格——而到了 2020 年代，这项优势也在迅速蒸发。今天，1 TB M.2 NVMe SSD 的价格已经跌到几百元人民币，成为了新装机器的绝对标配。机械硬盘被挤到了 NAS、监控和冷备份的小角落，在一片自己曾独霸过的领土上，沦为了更低成本的次要选项。\n而站在那张口香糖大小的 M.2 SSD 面前，你再回头看 1980 年那张 IBM 3380 的照片——重 250 公斤，售价数万美元——大概会感到一阵时空错乱的眩晕。\n四、1 TB 既大又小——一场关于“矛盾体”的奇妙自洽 1 TB 是一个矛盾的奇迹。它是历史上第一个让人同时觉得“太大了”和“太小了”的存储单位。\n它太大了。 如果你不存视频、不玩游戏、不下电影，只用来码字办公，一块 1 TB 硬盘可以用到你退休。1 TB 大约能装下 17,000 小时的标准音质 MP3（按每首 4 分钟、128 kbps 计算），或者约 310,000 张高质量数码照片（以每张 3.5 MB 计算），或者约 500 小时的高清视频。如果你只存《战争与和平》这样的纯文本文档（全书约 3.2 MB），1 TB 能装下大约 320,000 部。全部读完，大概需要几百辈子。\n它又太小了。 今天一款《使命召唤》轻松 200 GB，《原神》手机版 30 GB。你的手机拍 4K 视频，每分钟吞掉 400 MB——半小时就超过 10 GB。你手机里 1 TB 的存储，在半年前还让你觉得“这辈子用不完了”，现在突然就弹出了“存储空间不足”的提示。而 Windows 11 系统需要 64 GB 以上存储空间才能流畅运行，基础安装就会占掉约 30 GB——你甚至还没开始装软件、存文件，系统自己就已经吃掉了十分之一的容量储备。\n这种“又大又小”的撕裂感，恰恰是 TB 最迷人的特质。它不是一个让你安稳停靠的港湾，而是一道分水岭。在这个分水岭的一侧，“存储”还是一个需要省着用的稀缺资源；在另一侧，“存储”变成了一个可以被随手挥霍的空气。你拍完照片再也不删了，你聊天记录再也不清了，你下载的电影看完也不删——因为“反正也就占那么一点”。这种心理模式的转变，正是在 TB 时代完成的。\n而 TB 的另一重身份，是它把单位混淆的地雷重新埋到了操作系统和硬盘厂商的边界线上。1 TB 的硬盘买回来，Windows 上显示约 931 GB——那“蒸发”掉的 69 个 G 是硬盘厂商按十进制（1 TB = 1000^4 字节）标注容量，而操作系统坚持用二进制（1 TiB = 1024^4 字节）读取，双方永远谈不拢。这道裂缝我们之前在 KB 篇、MB 篇中反复提及，到了 TB 量级，裂口的绝对规模终于大到了能被肉眼直接感觉到，而且不再只属于发烧友之间的争吵——它成了所有消费品评价里绕不开的一句抱怨。\n五、1 TB 能装下什么？ 让我们停下来，给 1 TB 做一次体面的换算。\n1 TB 大约等于：\n约 17,000 小时的标准音质 MP3——以每首 4 分钟、128 kbps 计算，可以连续播放约 700 天不停歇。 约 310,000 张高质量数码照片（以每张 3.5 MB 计算）——如果你每天拍 100 张照片，1 TB 够你拍八年半。 约 500 小时的高清视频（1080p，H.264 压缩）——或者约 150 小时的 4K 超高清视频。 约 1,000 部压缩后的电影——你可以在黑屋子里连看 40 天不出门。 一整座图书馆的纯文本——美国国会图书馆的纸质藏书如果用纯文本数字化，大约需要 10 到 20 TB。1 TB 大概是一栋小城市图书馆。 但更直观的对比是：你手机里那块 1 TB 的闪存芯片，相当于 5000 台 IBM RAMAC（1956 年，5 MB/台），或者 400 台 IBM 3380（1980 年，2.52 GB/台）。如果把它们全部搬进一间机房，光是电费和空调，就够你在北京三环内租半层写字楼。\n而在 2026 年的今天，一台 1 TB 的 M.2 SSD 大概只要五百块钱，重量不到十克，插在主板上就像插一张口香糖大小的名片。你用指甲盖大小的东西，装下了人类五十年心血的跃迁。\n六、TB 的告别：当它变成默认单位 2007 年，日立把第一块 1 TB 硬盘搬进市场的时候，全球科技媒体给了它显赫的头条。但在不到二十年的时间里，1 TB 从“天花板”变成了“起点”。\n今天你买一台笔记本，基础配置大多已经来到 512 GB 或 1 TB。你在电商平台的存储产品筛选栏里，2 TB、4 TB 的移动硬盘一眼望不到头。你甚至不需要专门买一块硬盘来凑足 TB——你新手机的配置单上，1 TB 版本就在那儿挂着，贵不了多少钱。\n当一个单位不再令人惊奇的时候，它才真正征服了世界。我们在 KB 篇、MB 篇、GB 篇中反复讲述的那种“每往上跳一级就必须重新认识计算机能力”的震撼体验，在 TB 这里悄然退潮了。TB 变成了一个默认的、温暖的、不再引起任何技术敬畏的舒适区。\n但这恰恰是它的成就——它已经把“万亿字节”融进了人类日常生活的背景音里，变成了一种数字时代的基础生存资料。你是伴随着这种背景音长大的，却对它曾经高昂到不可一世的过去毫无所知。\n而就在你觉得 1 TB 已经够大了的时候，信息尺度的车轮已经碾过了下一个刻度。在那个刻度上，你不再是一个人在管理存储——你的硬盘也不再需要你操心，因为数据早已溢出你的桌面，流向你看不见的地方。\n下一个单位：1 PB。我们在机房里再见。\n","permalink":"https://gpchn.252123.xyz/posts/%E4%BB%8E-1-bit-%E5%88%B0-1-yb/1-tb/","summary":"\u003cp\u003e2007 年 1 月 5 日，一项纪录被打破了。日立环球存储（HGST）宣布了业界首款 1 TB 硬盘——Deskstar 7K1000。这是一块 3.5 英寸、7200 RPM 的硬盘，采用垂直磁记录技术，建议零售价 399 美元，折合每 GB 成本约 40 美分。HGST 同时发布了面向数字录像机市场的 CinemaStar 1 TB 版本，声称一块 TB 级硬盘可以轻松存储近 250 小时的高清节目。\u003c/p\u003e","title":"从 1 bit 到 1 YB：1 TB - 大到让你忘记容量"},{"content":"2001 年 10 月 23 日，史蒂夫·乔布斯站在苹果总部一个小型发布会的舞台上，手插在牛仔裤口袋里。他掏出一个白色的盒子，对台下说了一句话——这句话后来被写进了每一本营销教科书。\n他说：“把一千首歌装进你的口袋。”\n让这句豪言成立的容量差不多是 1 Gigabyte。\nGigabyte，中文 吉字节，或者你用更熟悉的说法——1 个 G。\n1 GB = 1024 MB = 1,048,576 KB = 1,073,741,824 字节。十亿个字节。这个数字在你的手机套餐里、在你的 U 盘包装上、在你下载一部电影时进度条旁边的小字里，无处不在。但你可能从来没有认真想过：当人类第一次拥有整整 1 GB 的存储空间时，他们需要动用多大的家伙来伺候它？\n答案是：一辆叉车。\n一、IBM 3380：当 1 GB 比你还重 1980 年，IBM 向世界展示了人类历史上第一款突破 GB 级容量的商用硬盘——IBM 3380。它的容量达到了 2.52 GB，是第一款以 GB 为单位来标注存储空间的设备。\n2.52 GB。今天这个数字大概只够你手机系统打个补丁。但在 1980 年，这台设备是一个工业巨兽：它的大小相当于一台双开门冰箱，重量约 250 公斤，售价从 8 万到 14 万美元不等——而且和同时代的其他大型机设备一样，IBM 通常只租不售，月租金折合成今天的币值，够你在硅谷租一套不错的公寓。\n你没有看错。250 公斤。现在的你如果把一台 1 TB 的移动硬盘搁在桌上，它大概重 150 克。而四十年前，存取区区 2.5 个 GB 的数据，你需要腾出半间屋子，还得确保地板不会被压塌。IBM 3380 的重量超过 500 磅，根本不是为任何个人用户设计的，它属于大型机机房，属于银行、航空公司和政府机构的数据中心。\n从一吨重的 5 MB（还记得上一篇的 RAMAC 吗？），到冰箱那么大的 2.5 GB，硬盘的“减肥史”在 1980 年才刚刚拉开序幕。而真正让 GB 走进普通人生活的，不是 IBM 这种天价机柜，而是另一场发生在 1980 年代末到 1990 年代的微型化革命。\n二、3.5 英寸的逆袭：当 GB 爬上你的桌面 1980 年，就在 IBM 3380 震撼登场的同时，一家小公司悄悄地播下了一颗种子。这家公司的名字叫 Shugart Technology——是的，就是 Alan Shugart，上两篇我们反复提到的那个“软盘之父”。不过你大概率没听过这个名字，因为它很快就改了一个更响亮的名字：Seagate（希捷）。\n同一年，希捷推出了 ST-506，这是人类第一款 5.25 英寸硬盘。容量是多少？5 MB。对，只有 5 MB，连半首 MP3 都塞不下。但它的意义不在于容量，而在于尺寸——它第一次证明了，硬盘可以被塞进个人电脑的机箱里，而不是独享一间空调机房。\n接下来十年，硬盘经历了一场疯狂的“缩水”竞赛。从 5.25 英寸缩小到 3.5 英寸，再缩小到 2.5 英寸。到 1990 年代末，一块 3.5 英寸的桌面硬盘已经能装下 10 到 20 GB 的数据。这个容量意味着什么？意味着你可以把整台电脑的操作系统、办公软件、几十款游戏、上百张 CD 抓下来的 MP3 全部塞进一块巴掌大的铁盒子里。\n1998 年，你买一台新电脑，配置单上会赫然写着“硬盘：4.3 GB”——这是个能让你在同学面前走路带风的数字。也是在这一年，CD-ROM 驱动器成为了新电脑的标配。一张标准 CD-R 能刻 700 MB 的数据，而一张 DVD 则能装下 4.7 GB——恰好和一个入门级硬盘的容量不相上下。你会第一次发现，原来硬盘里装的东西可以刻满六张 CD-R，而你甚至没耐心刻完第一张。\n从那以后，光盘与硬盘携手统治了 GB 时代的“分发”与“存储”两大场景——光盘负责把软件和电影喂进电脑，硬盘负责把它们吃下来、记住、随时调出来。而一个原本毫不起眼的小配件，即将在 GB 的底座上完成人类计算机体验的一次巨大跃迁。它是一台 MP3 播放器。\n三、“一千首歌，装进你的口袋” 2001 年 10 月 23 日，史蒂夫·乔布斯站在苹果公司总部一个小型发布会的舞台上，从牛仔裤口袋里掏出了一个东西。\n在此之前的 MP3 播放器，要么体积巨大，要么容量可怜——32 MB、64 MB，勉强装得下十几首歌。当同行们还在用 MB 数歌的时候，乔布斯直接把单位换成了 GB。第一代 iPod 的容量是 5 GB，售价 399 美元。\n5 GB 有多大？乔布斯用一句后来被刻进营销史教科书的话回答了这个问题：“把一千首歌装进你的口袋。” （\u0026ldquo;1000 songs in your pocket.\u0026quot;）\n这句话的精妙之处在于，它完全没有提什么 gigabyte、什么 megabyte、什么二进制十进制——它只告诉你一件事：从今往后，你不再需要随身带一摞 CD。你所有的音乐，都在这个比你手掌还小的白盒子里。\n但一千首歌只是开始。2007 年 9 月，苹果发布了第六代 iPod——iPod classic，容量直接拉到 160 GB。160 GB。这意味着四万首歌，或者两百小时的视频。\n从 5 GB 到 160 GB，iPod 用了六年时间，把 GB 这个原本属于机房和服务器机柜的专业单位，硬生生地揉进了每一个普通人的口袋里。你不需要知道 1 GB 等于 1024 MB，你只需要知道“我的 iPod 还有 3 个 G 没用完”。从乔布斯掏出那个白色小盒子的下午开始，GB 的语言成为了大众度量衡的基准——它变成了一种数字化的亲切感，不再冰冷，不再只属于技术人员的行话。\n但就在 iPod 一路高歌猛进的时候，硬盘世界正在酝酿两个截然不同的故事。一个关于信任的崩塌，另一个关于速度的颠覆。\n四、希捷“固件门”：当一个 TB 近在咫尺时，信任先崩了 2008 年，硬盘产业迎来了一个里程碑式的时刻：希捷发布了酷鱼 Barracuda 7200.11 系列的 1.5 TB 版本。这是世界上第一块 1.5 TB 容量的台式机硬盘，是 GB 尺度不断膨胀后迈出的标志性一步。\n然而就在用户们兴冲冲地把数据往这块“海量”硬盘里搬的时候，诡异的事情发生了。硬盘会随机出现“卡死”现象——在 Linux、Mac OS X 和 Windows Vista 下都有可能发作，电脑突然就认不出这块盘了。\n这就是后来震惊整个 PC 圈的希捷“固件门”事件。受影响的远不止 1.5 TB 那一个型号，从 160 GB 到 1.5 TB 共 30 多款产品全被卷入其中，包括 Barracuda 7200.11、Barracuda ES.2 SATA 乃至迈拓 DiamondMax 22 系列。希捷最终不得不发布固件更新来修复问题，但那几个月里，数以万计的用户对着硬盘里拿不出来的数据，第一次对“海量存储”这四个字产生了一种混杂着不安的复杂感情。\n固件门是 GB 时代一个意味深长的注脚。它提醒了所有人一件事：当存储空间大到可以装下你半辈子照片和全部工作文档的时候，“可靠性”就不再是一个技术参数，而是一个情感问题。硬盘不再是那个被供奉在恒温机房里、有专人伺候的神龛，它已经变成了你桌子下面那个嗡嗡作响的铁盒子——你信任它，就像信任你家楼下的银行保险柜。而当这个保险柜突然告诉你“钥匙打不开了”的时候，那种恐慌是 5 MB 时代的人永远无法体会的。\n五、GB 时代的遗产：那些靠 GB 活着的东西 让我们从事故现场移开目光，看看 GB 量级诞生的地方。在那个时代，GB 除了在硬盘和播放器里膨胀，还在几个更贴近桌面的位置上各自插下一面旗帜。这三面旗帜至今还飘在你的电脑里。\n第一面旗，叫操作系统。\nWindows 95 的典型安装需要 50 到 55 MB 空间，Windows 98 也不过 195 MB。到了 Windows XP，安装大小膨胀到约 1.5 GB。再到 Windows 10 和 11，轻轻松松 20 到 30 GB。操作系统越大，能做的事越多——图形界面、网络协议栈、驱动库、安全模块——每一层功能都是用 GB 堆出来的。你觉得电脑“变慢了”，往往不是因为 CPU 不行了，而是因为新系统的“身躯”已经胖到能压塌老硬盘的脊梁。\n第二面旗，叫游戏。\n1990 年代初，一张 3.5 英寸软盘能装下一个完整的游戏。到了 1990 年代末，一张 CD-ROM（700 MB）成了游戏的标准载体。而进入 2000 年代，DVD 单面单层 4.7 GB 成了新标配。游戏从几十 MB 膨胀到几个 GB，再到几十 GB——今天你玩的《使命召唤》或《原神》，动辄 100 GB 起步。GB 的膨胀，在游戏产业里表现得比任何地方都更加凶猛和不可逆转。\n第三面旗，叫照片和视频。\n1990 年代中后期，一台家用数码相机的照片大小大约是几百 KB 到 1 MB 左右。今天，你的手机主摄随手一按，一张照片 5 到 15 MB，一段 4K 视频每分钟吞掉 400 MB。你手机里的 128 GB 或 256 GB 存储，在 2000 年是一整排服务器机柜才堆得出来的容量，而今天它刚刚够你存半年不删的照片和微信聊天记录。\n六、GB 的告别：当硬盘不再是硬盘 GB 时代真正的终结者，不是更大的容量，而是一种完全不同的技术。\n就在第一代 iPod 用微型硬盘征服世界的同时，一个安静的对手已经在实验室里酝酿。它没有旋转的盘片，没有机械臂，没有嗡嗡声——它叫 闪存。2005 年，苹果推出了完全基于闪存的 iPod nano，用指甲盖大小的芯片取代了嗡嗡转动的微型硬盘。几年之后，基于闪存的 SSD（固态硬盘） 开始蚕食传统机械硬盘的市场。SSD 没有机械部件，读写速度比机械硬盘快几十倍，而且体积可以做到指甲盖大小。\n在 2010 年之后，一块 M.2 规格的 SSD，长度不过一根手指，容量轻松达到 1 TB——相当于 500 台 IBM 3380 合在一起，塞进一块口香糖大小的电路板上。GB 在这一轮技术更迭中，变成了一个不再值得单独拿出来说的、默认标配式的数字。\n但这恰恰是 GB 最伟大的成就。当一个单位变得不再令人惊奇的时候，它才真正征服了世界。我们在 KB 篇和 MB 篇中反复讲述的那种“每往上跳一级都必须重新认识计算机能力”的震撼体验，在 GB 这里画上了一个阶段性的休止符。\n七、1 GB 能装下什么？ 在进入下一个量级之前，让我们最后来一次换算。1 GB 是一个能让人第一次感受到“丰富”的单位——它不再是“只能装一首歌”或“只能存一张表”，而是忽然间可以把生活里一整个完整的场景打包装进数字容器里的“宽裕感”。\n1 GB 大约等于：\n约 250 首 MP3 歌曲——以每首 4 分钟、128 kbps 码率计算，差不多是你通勤路上听一个月的量。 约 200 到 500 张数码照片（取决于像素和压缩率）——一次短途旅行的全部回忆。 约 1 小时的标准画质视频——或者半部压缩过的电影。 一部《战争与和平》的纯文本，可以装下一千多遍。 一整张 CD-ROM 容量的约 1.4 倍。 但在 1980 年，要装下这些，你需要一台叉车和 4 万美元。\n今天的你，手机里至少有 128 个这样的单位。你把四十年前能压垮地板的存储能力揣在牛仔裤口袋里，毫无感觉，甚至每天都在抱怨不够用。\n然而，就在你觉得“GB 已经大到令人生厌却又在日常中微不足道”的时候，信息尺度的车轮已经转到了下一个台阶。在那个台阶上，1 GB 不过是计量大海的第一瓢水——接下来，我们将进入一个硬盘不仅比冰箱大，而且大到不得不动用一整套全新的思维来理解它有多大的领域。\n下一个单位：1 TB。如果你以为自己已经对数字麻木了，那么你最好系紧安全带——因为从 TB 开始，你过去每一篇积累下来的所有容量直觉，都将被重新格式化。\n","permalink":"https://gpchn.252123.xyz/posts/%E4%BB%8E-1-bit-%E5%88%B0-1-yb/1-gb/","summary":"\u003cp\u003e2001 年 10 月 23 日，史蒂夫·乔布斯站在苹果总部一个小型发布会的舞台上，手插在牛仔裤口袋里。他掏出一个白色的盒子，对台下说了一句话——这句话后来被写进了每一本营销教科书。\u003c/p\u003e","title":"从 1 bit 到 1 YB：1 GB - 一千首歌的重量"},{"content":"你现在盯着屏幕，手指悬在快捷键上方。Ctrl+S，或者 Cmd+S，或者什么 App 角落里那个小小的软盘图标——你每天要按几十次的保存按钮，长着一张已经死去二十年的脸。\n那是一张 3.5 英寸软盘。在计算机的世界里，没有比这更倔强的墓碑了。而这张软盘的标准容量，是 1.44 Megabyte，中文 兆字节。\n1 MB = 1024 KB = 1,048,576 字节。\n一百万个字节。这个数字在今天是个人尽可欺的计量单位——你手机拍一张照片就得吃掉好几个 MB，你微信群里一个略长的短视频轻轻松松几十 MB。但在 1980 年代，“MB”是一个能让人心跳加速的词，它意味着你的计算机终于拥有了某种类似“大脑皮层”的东西——能装下整个操作系统、一整套办公软件，甚至还能塞进一个游戏。\n而 MB 走进千家万户的载体，是一个你已经至少十五年没见过的物件：3.5 英寸软盘。\n一、1.44 MB——那个被印在全世界软盘上的魔法数字 让我们先把时间拨回 1984 年。这一年，苹果发布了第一代 Macintosh，迈克尔·戴尔在宿舍里创办了 Dell，而计算机世界的一颗石子，其实在三年前就已经被扔下了。\n1981 年，索尼推出了一种全新的存储介质——一块 3.5 英寸的塑料方片，里面夹着一张涂满磁性材料的圆形碟片。但真正让这颗石子激起涟漪的，是 1984 年。这一年，苹果决定在全新的 Macintosh 电脑上采用这种 3.5 英寸软盘。以特丽珑电视和随身听闻名于世的索尼负责制造，乔布斯拍板把它塞进了 Mac 的机身侧面。从这一刻起，3.5 英寸软盘开始走向全世界的桌面，它的容量标注得明明白白：1.44 MB。\n今天来看，1.44 MB 大概连一首 MP3 都装不下，但当时这个容量已经大到令人窒息。一张 3.5 英寸软盘能干什么？它能装下整整一套 DOS 操作系统，配上完整的命令行工具，外带一个小游戏。一个学生拎着一张软盘去学校机房，插进去、开机——整台电脑就变成了他自己的私人设备。在没有网络、没有 U 盘、没有云存储的年代，一张软盘就是你的随身硬盘，你的电子邮件，你的网盘账号和你的数据生命线。\n但这里面有一个经典的“度量衡笑话”，你大概率中过招。我问你：一张标准的 3.5 英寸软盘，容量到底是多少？\n你肯定会脱口而出——1.44 MB。包装盒上就是这么印的，全世界都这么写。\n答案是：严格来说，既不是 1.44 MB，也不是 1.44 MiB。它是一个诡异的混血儿。\n索尼在设计软盘时采用了双重标准的奇怪组合：格式化后的容量是 1440 KiB，也就是 1440 × 1024 = 1,474,560 字节。但写包装盒的时候，他们把“1440 KiB”除以 1000 而不是 1024，于是得到了 1.44 MB 这个不伦不类的数字。它既不是正经的二进制兆（1 MiB = 1,048,576 字节，1.44 MB 已经超了），也不是严谨的十进制兆（1 MB = 1,000,000 字节，1.44 MB 说的又远不止这么多）。\n一张小小的软盘，用 1.44 MB 这个看似精确实则荒诞的标签，把 KB 篇里我们花了大半章才讲清楚的那笔糊涂账全部浓缩在了自己身上。\n二、当微软需要 13 张软盘：Windows 95 的分发炼狱 如果说软盘是 MB 时代的标志性载体，那么 1995 年 8 月 24 日的那个夜晚，就是 MB 时代最盛大的告别典礼——只是当时所有人都没意识到。\n这天，微软发布了 Windows 95。发布会选在了华盛顿州雷德蒙德总部，现场搭起了巨大的帐篷，滚石乐队的《Start Me Up》被买来当广告曲，全球各地的电脑城门口排起了午夜长队。这是操作系统历史上第一次出现堪比摇滚演唱会级别的发布盛况。\n但对于真正经历过那个年代的人来说，记忆里最刻骨铭心的不是发布会，而是那个沉甸甸的纸盒子。Windows 95 的完整安装大约需要 50 MB 空间。今天看来这连半分钟的微信小视频都算不上，但在 1995 年，普通人家根本没有宽带。你的选择只有两种：要么买一张安装光盘（前提是你得先有一台光驱，而光驱在 1995 年还不是标配），要么老老实实领回一摞软盘，逐个插入、读取、换盘、再插入——重复 13 到 21 遍。\n标准版 Windows 95 分发在 13 张 3.5 英寸软盘上。\n13 张。你小心翼翼地按编号排好，跪在机箱前一张一张往里喂。喂到第 5 张，系统提示“请插入第 6 张磁盘并按回车”。喂到第 8 张，风扇呼呼地转，你开始紧张。喂到第 12 张，读盘声突然刺耳——磁盘读取失败。安装中断，你必须从头再来。\n这种体验在今天可以被归入某种酷刑艺术，但那个年代的人就是这么装操作系统的。最早几批从 OTA 系统更新切换到全量包刷机的安卓发烧友，大概能体会那种一半期待一半祷告的心情。世界上第一代真正的图形界面大众操作系统，就是从这些摞起来不到两厘米厚的软盘里，一张一张地爬进硬盘，然后展开成一场改变了整个个人电脑产业格局的图形革命。\n三、一个来自 1990 年代的脑筋急转弯：1 MB 到底能干什么？ 从软盘上抬起头来，让我们回到 1 MB 本身。不必纠缠它究竟是 1000² 还是 1024²，我们只问一个最朴素的问题：当计算机业界第一次拥有整整一百万字节的时候，他们拿它干了什么？\n答案是：他们造出了一个至今仍在运行的存储装置，而且你一星期滑屏幕的次数，比它每个月的读写次数少好几个数量级。\n这个装置，叫 计算机硬盘。\n1956 年，IBM 发布了 RAMAC 305——人类历史上第一台搭载硬盘的计算机。它的硬盘单元是四个巨大的铁柜子，里面装着 50 片直径 24 英寸的铝制磁性盘片，摞起来足足有一台冰箱那么高，总重量超过一吨。全体盘片一起疯狂旋转，伸出机械臂在一块盘面上来回划动——整套系统的总容量是 5 MB。\n5 MB。你手机现在拍半张高清照片，就把这堆一吨重的铁家伙的全部存稿给塞满了。就这 5 MB，需要一间专门的空调机房来伺候，月租金 3200 美元（按今天的币值折算大约三万美元）。请注意，是月租金——因为 IBM 根本不卖这个东西，只租不售。\n这就是 MB 最初的物理形态：它不是一个你随用随取的便利工具，而是一座需要恒温空调和专业工程师供着的小型神龛。\n但也是从 RAMAC 开始，人类第一次体会到随机存取的震撼。在此之前，所有的数据读取都是顺序的——磁带必须从头卷到尾，打孔卡必须一摞一摞喂进去。有了硬盘，磁头可以瞬间飞到盘面上的任意位置，直接读写任意一块数据。这看上去只是一个操作模式的改变，但实质上是人类操作信息方式的一次范式跃迁。今天我们默认“打开任何一个文件都能瞬间到达”——这个流畅的操作感，是 1956 年那组一吨重的铁柜子第一次向世界做出的承诺。\n四、一张照片与“MB 体验”的诞生 如果说软盘让 MB 成为了分发单位，硬盘让 MB 成为了运行单位，那么真正让“MB”这个概念长进普通用户肉里的，是另一件东西：数码照片。\n1980 年代末到 1990 年代初，JPEG 图像压缩标准成熟并普及。一张彩色照片经过 JPEG 压缩后，大小刚好落在几百 KB 到几个 MB 的区间。这就是“MB 体验”的诞生时刻——你第一次能在电脑屏幕上看到一张照片，属性栏里清清楚楚写着“1.2 MB”。那不是一串抽象的数字，它对应着你上次旅行时站在海边的那个笑容。1.44 MB 的软盘能装一张到两张这种照片，你的硬盘能装几百张这种照片。这种“数字对应实物”的直接映射，是 KB 时代从未有过的体验。\n也是从这个时期开始，MB 完成了它在大众心理上的身份转换：它不再是一个冰冷的技术规格，而是一个可以触摸的生活计量单位。你知道一张照片是几个 MB，一首 MP3 是几个 MB，一段视频——那可就大了，那得几十个 MB，甚至几百个。但你隐约感到那扇通往 GB 的大门已经开始松动了。\n五、MB 时代的告别 1 MB 的价值，并不只是多存一点字或者一帧模糊的画面。它是信息世界从小巧的“文本殖民地”迈向多媒体帝国的第一个登陆点。从 1 MB 开始，计算机学会了处理和存储图片、声音和动画——也就是从这一刻起，它不再是一台仅供工程师和打字员使用的运算机器，而是一台能存住你的面庞与歌谣的情感空间。\n1 MB 也并非单独停留在软盘或硬盘的技术符号上。那个时期，MP3、数码相机、个人硬盘和图形操作系统，通通都围绕着“几 MB”这个量级发生化学反应，自然而然地撞开了 PC 走向家庭的大门。\n在它之前的 KB，只能装下指令和字符。在它之后的 GB，将容下一个时代的电影、音乐和整个互联网的毛细血管。而 MB，是站在二者之间的那道门槛——当你把一张软盘插进驱动器，听着里面发出咔嗒一声轻响，然后看到屏幕上跳出 14 个安装步骤时，你已经活在这个门槛上了。\n有趣的是，软盘早就死了，但它的墓碑却无处不在。直到今天，你打开 Word 写文档、点开 Photoshop 修图，甚至在你手机 App 里随手点一下——那个代表\u0026quot;保存\u0026quot;的图标，依然是一张 3.5 英寸软盘的形状。全世界每天有几亿人下意识地点击着一张二十年前就淘汰了的塑料片子，却几乎没有人意识到自己在向一个 MB 时代的遗物行注目礼。这大概是一个技术符号所能获得的最高待遇：它已经退役，但从未退场。\n至于硬盘是怎样从一个一吨重的怪物瘦身成笔记本里的一片掌中薄铁，MP3 又是如何在几 MB 的压缩里杀死 CD 帝国的——那是我们下一篇要讲的故事。\n下一个单位：1 GB。欢迎来到硬盘的殖民地。\n","permalink":"https://gpchn.252123.xyz/posts/%E4%BB%8E-1-bit-%E5%88%B0-1-yb/1-mb/","summary":"\u003cp\u003e你现在盯着屏幕，手指悬在快捷键上方。Ctrl+S，或者 Cmd+S，或者什么 App 角落里那个小小的软盘图标——你每天要按几十次的保存按钮，长着一张已经死去二十年的脸。\u003c/p\u003e","title":"从 1 bit 到 1 YB：1 MB - 一张软盘如何承载一个时代"},{"content":"假设你现在穿越回 1970 年，坐在一台电传打字机前，准备把你写的程序输入计算机。你不是在敲键盘——你手里捏着 13 张打孔卡，每一张有 80 列，每一列打好孔就是一个字符。你要敲完一整屏代码，得打出小一摞卡，抱着它们走到机器前，一张一张喂进去。\n而这一整摞卡片加起来，差不多刚好是今天的主角——1 KiloByte，译作 1 千字节。\n你大概又在心里默念了：1 KB = 1024 Bytes。没错，每个用过电脑的人都见过这个数字——下载一张旧式低清表情包差不多就是这个尺寸，80 年代一张软盘的容量也得从这个单位开始算。\n但你有没有想过一个问题：为什么是 1024？为什么不是整整齐齐的 1000？\n这个问题的答案，牵扯出一桩计算机世界最持久的\u0026quot;度量衡丑闻\u0026quot;——一个连硬盘厂商和操作系统至今都在互相甩锅的罗生门。\n一、不是 1000，是 1024 人类喜欢 10 的倍数。我们有十个手指头，十进制是我们刻进基因里的直觉。一千米、一公斤、一毫升，全世界都没异议。\n但计算机不一样。计算机没有手指头，它只有铜线和晶体管——要么通电，要么断电，1 或者 0。对计算机来说，最自然的计数方式是以 2 的幂次来工作的：2、4、8、16、32、64、128、256、512……\n到了 512 之后，下一个 2 的幂次是 1024。这个数字刚好和人类的 1000 非常接近——早期那些写代码的工程师低头一看，2^10 = 1024，差不多就是一千嘛。于是他们把希腊语里表示\u0026quot;一千\u0026quot;的词根 kilo- 借过来按在了 1024 头上，还互相递了个眼神：\u0026ldquo;差那么 24 个字节，无伤大雅。\u0026rdquo;\n就这样，1 KB 还没出生，就欠了 24 个字节的\u0026quot;糊涂债\u0026quot;。\n要说这个糊涂债是怎么来的，得回到计算机最底层的硬逻辑。因为计算机用二进制编址，每根地址线可以表达 0 或 1——两根线能寻址 4 个位置，三根线能寻址 8 个，以此类推。当工程师设计内存系统时，他们需要地址总线的数量一定是整数。最优解就是用 10 根地址线——恰好能寻址 1024 个位置。你没法用 9.97 根地址线去寻址正好 1000 个位置，物理定律不跟你谈凑整。\n所以在硬件层面，1024 不是计算出来的，是\u0026quot;长出来\u0026quot;的——它是被内存地址总线的物理架构天然锁定的数字。每个字节需要一个唯一的地址才能被精准读写，而地址线的数量决定了寻址范围——这是镌刻在芯片骨子里的物理规律。\n但也就因为这额外附送的 24，为后来的一切争吵埋下了引信。\n二、打孔卡、软盘与传说中的\u0026quot;过飞机安检\u0026quot; 既然已经有了 KB 这个单位，让我们看看在它诞生之初，一张软盘和一叠打孔卡之间发生过怎样的世代交替。\n早期的数据存储手段，凡是经历过那个年代的人都知道，长这样：打孔卡。一张标准的 IBM 打孔卡，有 80 列，每列 12 个可能的孔位——也就是说，一张卡最多能存 960 位数据，换算过来就是 120 个字节。\n120 个字节。存不下一行稍长的代码注释。\n那要存够 1 KB（也就是 1024 字节），需要多少张打孔卡？一千多字节，听起来好像不多，但一算就让人头皮发麻：标准 IBM 打孔卡有 80 列，按每列存一个字符来算，一张卡只能存 80 个字节。填满 1 KB 需要整整 13 张卡——你辛辛苦苦敲完一屏代码，得打出一小摞卡片才能带走。\n13 张只是起步价。正是在这种\u0026quot;打孔卡之痛\u0026quot;的背景下，1971 年，IBM 亮出了第一张 8 英寸软盘。它的设计初衷朴实到令人心酸：只是为了给 IBM System/370 大型机当启动盘用，省得系统管理员每次都费劲地手动加载微码。它只有只读功能，容量——80 KB。按一张打孔卡在日常使用中平均能装下的有效数据来算，这一张巴掌大的塑料片子，能顶得上将近 3000 张打孔卡。\n三千张。你把这三千张卡摞在地上，得用一整张办公桌才铺得下。但在一张巴掌大的塑料片面前，它们全被装进了历史的回收站。80 KB，这串数字在当时看来是一种降维打击。\n最妙的是，IBM 对这款产品真正的历史地位几乎毫无察觉。他们只是在解决一个大型机运维上的小痛处，根本没想过这东西会变成未来三十年整个个人电脑产业标配的数据交换媒介。这就好比那个在喝下午茶时顺手开启了工业革命的工人——自己全然不知自己到底干了件什么事。一个为了少搬几趟打孔卡而发明的小玩意儿，最终掀翻了整个打孔卡帝国，这大概就是技术史上最优雅的一种\u0026quot;顺便\u0026quot;。\n而初代软盘之父，Alan Shugart，后来离开 IBM，加盟了 Memorex。在那里，他的团队于 1972 年推出了可读写的 8 英寸软盘——容量一下提到了 175 KB。后来 Shugart 又自己创办了公司，把软盘的规格一路缩小到 5.25 英寸，成为早期家用电脑的主力驱动器。直到他再次跳出来创立 Seagate，去做了硬盘——不过这些已经属于 MB 乃至 GB 的领域了。\n三、K 和 k，大小写之争——混乱从这一刻开始 这场混乱最为人熟知的战场是：你买了标称 1 TB 的硬盘，回家插上电脑一看，只有 931 GB。硬盘厂商说我们的 1 TB 是 1000^4 字节，操作系统说我们的 1 TB 是 1024^4 字节。两边谁都没说错，两边也谁都不愿让步。\n但这个问题的根源，比硬盘大战要早得多。\n早到什么时候？在打孔卡还当道的 1970 年代，当不同公司的计算机用着不同字长、通信全靠纸带和磁带的时候，工程师群体中就逐渐分裂出两条路线。一批人觉得 kilo 就该老老实实按国际单位制来，1000 就是 1000。另一批人认为既然写代码的时候 2 的幂次是默认值，那 1024 才是程序员眼中的\u0026quot;kilo\u0026quot;。\n这听起来只是技术细节的差异，但在实际工作中可以引发灾难性的后果。最具警示性的案例发生在 1999 年——美国宇航局的\u0026quot;火星气候轨道器\u0026quot;在即将进入火星轨道时突然失联，事后调查发现，这颗造价 1.25 亿美元的探测器竟然毁于一个单位换算错误：洛克希德·马丁公司设计的飞行软件使用英制单位\u0026quot;磅力\u0026quot;来计算推进器推力，而 NASA 喷气推进实验室的导航团队则默认所有输入数据都以公制单位\u0026quot;牛顿\u0026quot;为准。一个以为对方给的是磅，一个默认对方给的是牛顿，两个系统之间的推力数据就这样在同一个数字标签下发生了 4.45 倍的偏差。整个飞行过程中，这种微小但持续的\u0026quot;单位分歧\u0026quot;不断累积，最终使探测器以比预定轨道低了足足 170 公里的高度一头扎进火星大气层，焚毁解体。\n同样的剧本，落在数据世界里就是磁盘分区错位、数据库索引塌方、存储配额全线崩盘。于是工程师们想了个临时的土办法：用小写 k 表示 1000，大写 K 表示 1024。kB 是按国际单位制的规矩来（1000 字节），KB 才是计算机世界的黑话（1024 字节）。这个约定在当年那个\u0026quot;写程序的人彼此都认识\u0026quot;的小圈子里，行得通——大家都心照不宣。\n但问题是，个人电脑时代来了。\n从 1980 年代开始，计算机不再是少数技术精英的玩具，数以百万计的普通人涌入这个圈子。他们不懂\u0026quot;程序员之间心照不宣的约定\u0026quot;，他们只知道一公斤是一千克，一公里是一千米。硬盘厂商嗅到了商机：如果把 KB 按 1000 来算，包装盒上的数字就能写得更大——消费者总觉得数字越大越划算。内存厂商则继续坚守 1024 的路线——因为内存芯片的物理寻址本来就是以 2 的幂次来设计的。两边的分歧——硬盘厂商叫它 1000，内存厂商叫它 1024，而那时还没有任何国际组织愿意出面一锤定音。\n混乱就此失控。\n这件事最讽刺的地方在于：1024 不是某个权威拍板定的标准，它是一个\u0026quot;大家都这么用了所以就这么用了\u0026quot;的行业惯性。 没有哪个牛人写过一篇划时代的论文来规定它，也没有哪次会议投过票。它就是早期几个写汇编的程序员贪图方便，把一个 2 的幂次随手叫成了 kilo。等后来的人想纠正的时候，发现已经纠正不动了。\n这大概是计算机史上规模最大的一个\u0026quot;不小心说漏嘴\u0026quot;。\n四、1998 年，IEC 终于看不下去了 这场混乱持续了几十年。\n整个 1980 和 1990 年代，消费者买硬盘被“缺斤少两”是常事，程序员写文档得在注释里解释“我用的 KB 是指 1024”，而教科书里两种写法并行。这期间最令人肃然起敬的一次努力，来自那位写出《计算机程序设计艺术》这部“计算机圣经”的巨擘 Donald Knuth。早在 1990 年代末，他就敏锐地察觉到了这个“度量衡”隐患，并提议把 1024 字节称为“大千字节”（large kilobyte），甚至编了缩写符号 KKB——大写的 K 加一个正常的 KB。\n如果你觉得 KKB 看起来很眼熟，那是因为你肯定没在任何地方见过它。一个天才数学家的命名直觉撞上了一堵叫\u0026quot;用户习惯\u0026quot;的墙——全世界的程序员异口同声：太丑了，不用。这大概就是高德纳一生中唯一没能成功的命名提案。\n到了 1998 年，国际电工委员会（IEC）终于拍案而起：受够了。\n他们出台了一套全新的二进制前缀标准——在原有的 kilo、mega、giga 后面分别插入 bi（代表 binary），造出一组看上去像某种神秘咒语的词：kibi-、mebi-、gibi-、tebi-……\n于是：\n1 kilobyte (KB) = 1000 bytes（按国际单位制） 1 kibibyte (KiB) = 1024 bytes（按二进制，专门给计算机用） 1 megabyte (MB) = 1000² bytes 1 mebibyte (MiB) = 1024² bytes 逻辑完美，定义清晰，从此天下太平——\n才怪。\n这套名字推出来二十多年了，普通用户至今还在问\u0026quot;KiB 是什么鬼\u0026quot;。硬盘厂商继续用 1000 来标容量（因为这样数字好看），内存厂商继续用 1024（因为物理寻址天生就是这个数），而操作系统为了同时兼容两边，把两种体系都塞进了同一个下拉菜单，留用户一个人面对 KB/KiB 的排列组合原地迷路。\n但你要是问一个硬件工程师：KiB 好不好？他会毫不犹豫告诉你——好，非常好，太好了。 因为直到今天，当你和他讨论内存颗粒规格的时候，每一个 KiB 都不容歧义，这是硬件的铁律，不是营销。\n所以，当你下次看到电脑上硬盘容量\u0026quot;缩水\u0026quot;的时候，请想起这场始于 1970 年代、至今未分胜负的度量衡战争——你正在亲身见证计算机史上所存不多的法理死结之一。KB 和 KiB 之间的 24 字节鸿沟，是一条从晶体管物理层一直裂到人类认知层的断层线。只要计算机还在用二进制，只要硬盘还在用十进制包装盒，这条裂缝就不会愈合。\n五、当 KB 成为身份证：Commodore 64 的故事 让我们把目光从标准之争转向一个更具体的故事——一家公司如何把\u0026quot;64 KB\u0026quot;这四个字直接焊在了品牌名字上。\n1982 年 8 月，一家由奥斯维辛幸存者创办的公司 Commodore，发布了一款注定要写进史册的家用电脑。它的名字简单粗暴到不像一个商品，更像一张配置单：Commodore 64，名字里的 64 指的是它配备 64 千字节（Kilobytes） 的 RAM。售价 595 美元，远低于同时期的 Apple II 和 IBM PC。\n你没看错，整台机器只有 64 KB 的内存。今天你右击一下微信缓存文件夹，看到的占用都比这大几千倍。\n64 KB——今天它连一个微信表情包都不够装，却装下了一个时代几千万人的整个童年：金黄色的 Commodore BASIC 命令行、滚动着方块的横向射击游戏、用磁带加载程序时那长达好几分钟的刺耳滋滋声。1982 年到 1993 年间，超过 1700 万台 Commodore 64 被售出，成为史上最畅销的单款计算机之一。\n这也是\u0026quot;Kilobyte\u0026quot;第一次从工程术语变成大众消费品上的铭牌——就像今天说\u0026quot;买台 1 TB 的手机\u0026quot;一样自然。回头再看，在这台机器诞生时，\u0026ldquo;KB\u0026quot;已经从那个差了 24 的\u0026quot;假千\u0026quot;摇身一变，成了家用电脑能用实感丈量的体验单位。它不再是一个只属于打孔卡和尚在战壕里撕扯标准的工程师们的暗语，它在客厅里插着电视、跑着游戏，第一次真正走进了千家万户的日常词汇。\n六、KB 到底能装下什么？ 让我们从历史故事里跳出来，回到这个单位本身。\n1 KB = 1024 字节（如果你坚持二进制），或者 1000 字节（如果你卖硬盘）。不管是哪种口径，1 KB 到底能装什么？\n约 1024 个英文字母——相当于上面这句话的两倍长。 约 512 个常用中文字（每个汉字通常占 2 到 3 个字节，在 GBK/GB2312 编码中是 2 字节/字，UTF-8 中则是 3 字节/字）——差不多就是你发一条微博的极限。 一条 DOS 命令行指令。 16 世纪出版的金陵世德堂本《西游记》，全书约 86 万字——以当时的双字节编码来算，用纯文本存储大概在一兆多不到两兆字节之间，也就是大约一千多 KB。换句话说，一部完整的、明清时期被刻印成几十卷的中国古典小说巅峰之作，用最朴素的双字节文本形式存进计算机，占据的空间还比不上今天你用手机随手拍的一张废片缩略图。 这种容量在今天的标准看来简直是个笑话。但在 1970 年代，已经是令人震撼的数字了。\n不过，KB 真正的意义，不在于它能存下多少东西，而在于它确立了一个范式：从 KB 开始，计算机存储不再是一个一个字节地数，而是一千一千地跳。 你后面要见的 MB、GB、TB，本质上都在重复 KB 的故事——只不过每次乘以 1024，把规模再往上抬一个数量级，而抬着抬着，大家就会习惯性地把前一级单位蔑称为\u0026quot;那个根本不值一提的老古董\u0026rdquo;。\n如果把信息尺度的递进比作盖一座通天塔，1 Byte 是奠基石——它定义了文字如何在机器里安身。而 1 Kilobyte，是第一级可以让人站上去望得远一点的台阶。它是第一个真正\u0026quot;有用\u0026quot;的存储单位：从它开始，计算机能做的事情不再是\u0026quot;Yes\u0026quot;或\u0026quot;No\u0026quot;、不再是一个\u0026quot;A\u0026quot;、不再是串行地读穿孔纸带上的一个个窟窿眼——而是同时对上千字节的数据进行寻址、计算和编程。真正的个人运算史，从这里出发。\n至此，一个程序员终于能写出他的第一行稍有意义的代码了。\n下一个单位：1 MB。当软盘的故事结束时，硬盘才刚刚登场。\n","permalink":"https://gpchn.252123.xyz/posts/%E4%BB%8E-1-bit-%E5%88%B0-1-yb/1-kb/","summary":"\u003cp\u003e假设你现在穿越回 1970 年，坐在一台电传打字机前，准备把你写的程序输入计算机。你不是在敲键盘——你手里捏着 13 张打孔卡，每一张有 80 列，每一列打好孔就是一个字符。你要敲完一整屏代码，得打出小一摞卡，抱着它们走到机器前，一张一张喂进去。\u003c/p\u003e","title":"从 1 bit 到 1 YB：1 KB - 13 张打孔卡"},{"content":"上一回我们聊了1 bit。一个开关，一瞬脉冲，一根导线里时有时无的电流。彼时，人类教会机器吞吐信息的本领才刚刚入门——是的，输出一个 yes-or-no，分辨一段黑白，这便是比特的全部世界。这的确很了不起，但实话说：若机器只能存储一个 0 或 1，它永远无法写出“Hello World”，更无法绘出蒙娜丽莎。它需要一个更大的单位。\n它的名字是 Byte，中文名 字节。“字节跳动”的那个“字节”。\n你或许早已听过：1 Byte = 8 bits = 256 种可能的排列组合。这个等式刻在每个程序员的骨子里。但我要告诉你的是，在计算机的史前时代，这个等式完全不存在。字节是多少位？这得看是哪一台计算机、哪一个厂商，甚至看那个程序员当天的心情。\n字节的来历，是一出充满了偶然、巧合、大国博弈，乃至语言学幽默的滑稽剧。\n一、“比特”太小了，“咬”一口吧 在那个芯片都是电子管、编程还在打孔纸的年代，计算机有一条不成文的行规：一次只能处理一个字符。\n彼时的计算机需要处理的是文字——字母、数字、标点符号。你给机器输入“A”，机器内部得有一个二进制序列来代表这个“A”。这套序列需要多长？4 位只能表达 16 种可能，给英文字母都不够；5 位能表达 32 种，连数字带大写字母勉强凑合，但一旦要区分大小写立马歇菜。于是早期的计算机设计师们各自为政：有的用 6 位，有的用 7 位，还有的用上了 9 位甚至 12 位的奇葩配置（这个我们稍后会聊）。\n时间来到 1956 年，地点是 IBM 的实验室。彼时的 IBM 正全力以赴打造一台野心勃勃的机器——IBM 7030 “Stretch”超级计算机。这台铁家伙被寄予厚望，要成为世界上速度最快的计算机（虽然这个 flag 后来以一种颇为尴尬的方式倒下了，但那是另一桩公案）。项目设计团队里有一个名叫 Werner Buchholz 的德裔美国工程师。他当时正在纠结一个看似不起眼、实则影响深远的问题：输入输出设备上那一组连续的比特，究竟该怎么称呼？\n叫“a group of bits”？太啰嗦。叫“a chunk”？太随意。叫“a block”？已经在别处用了，容易混淆。Buchholz 翻来覆去地想，最终盯上了一个英文单词——bite。没错，就是“咬”那个 bite。一组比特，就像计算机从数据流里咬下来的一小口，形象、好记。唯一的麻烦是，bite 跟 bit 太像了，手写体一潦草，谁分得清哪个是哪个？于是 Buchholz 灵机一动，把 i 换成了 y——byte。这样，一个大写的 B 也能把它和 bit 区分开。\n这就是字节名字的由来。这个“为避混淆而刻意改拼写”的命名方式，后来被写进各种技术词典，成为计算机史上一段小而精致的掌故。Buchholz 本人也因此在 1990 年获得了 IEEE 计算机先驱奖。有意思的是，Buchholz 晚年接受采访时说，他从未觉得起了这个名字有什么了不起——他只是在做一个工程师该做的日常工作。历史的幽默感大概就是如此：真正改变世界的人，往往自己浑然不觉。\nBuchholz 虽然发明了“byte”这个名字，但我们今天所理解的“1 byte = 8 bits”在当时并不成立。Buchholz 最初定义的字节其实是一个可变长度的概念：它可以是 1 到 6 个比特，具体取决于输入输出设备每次传送多少位数据。IBM 内部的讨论在 1956 年晚些时候才逐渐收敛到 8 位。但此时距离 8 位字节成为全球通行标准，还差一场真正的商业豪赌。\n二、混乱的史前时代：字节的大小一度各说各话 今天的我们习惯了整齐划一的世界：内存按 8 位编址，CPU 寄存器是 8 位的整数倍，网络协议里的 octet 八位一组明明白白。但在 1950 年代到 1960 年代早期的计算机世界，那简直是一锅大杂烩。\n字长（word size）是那个时代的计算机最核心的参数之一，而“字节”不过是字长体系里的一个附属物。彼时流行过多种不同的字长体系：\n12位：DEC 公司的 PDP-8 小型机就是这个规格，便宜、皮实，实验室的最爱。 18位：PDP-1 等早期小型机采用。 36位：IBM 704/709 系列、Honeywell 6000 系列、PDP-10 等大型机的主流字长——为什么是 36？因为 36 位可以精确表达 10 位十进制数，非常适合早期的科学计算。 这些不同的字长催生了对应的字节体系：36 位机上流行 6 位字节（36 正好是 6 的 6 倍，用一个字表达 6 个字符，高效又优雅），也有的系统采用 9 位字节。这个时代的字节不是独立存在的单元，而是字内部的“子字段”（bitfield）。最夸张的是 PDP-10：它支持的“byte”可以是 1 到 36 位之间的任意比特序列。你可以在同一台机器上定义一个 7 位的 byte 去存 ASCII 字符，又定义一个 6 位的 byte 去兼容旧的打孔卡数据——计算机就像一块万能橡皮泥，程序员随心所欲地捏出自己想要的东西。\n这里有一个有趣的细节：为什么 36 位体系在 1960 年代一度占据统治地位？答案藏在那个年代计算机最吃香的业务里——数值计算。军方算弹道、NASA 算轨道、气象局算天气……这些任务对十进制精度要求极高。36 位恰好能在二进制世界里优雅地表达 10 位十进制数（2^36 约等于 6.87×10^10），不像 32 位那样捉襟见肘。在当时的科学家和工程师眼中，36 位才是“严肃计算”的入场券。\n然而，科学计算再高端，它赚不来大钱。真正的大钱在商业数据处理领域——银行的账本、保险公司的保单、航空公司的订票系统。而商业需要的是什么？是区分大小写字母的能力，是丰富的标点符号，是跨系统的兼容性。36 位体系在数值精度上登峰造极，但在字符处理上却显得笨重而昂贵。6 位字节只能容纳 64 个字符，连 26 个小写字母都塞不进去——于是当年的计算机输出清一色全大写，就像在对你咆哮。\n一场关于字节大小的战争，悄然在两个阵营之间打响：一方支持 6 位字节与 36 位字长，另一方支持 8 位字节与 32 位字长。这不是一个技术优劣的问题，而是两条截然不同的技术路线的对决——前者是科学计算的精密仪器，后者是商业计算的通用平台。最终，改变战局的不是某个天才的论文，也不是某场学术会议的决议，而是一场价值 50 亿美元的豪赌。\n三、一场价值 50 亿美元的豪赌：System/360 如何一刀定乾坤 1964 年 4 月 7 日，IBM 向世界揭开了 System/360 的面纱。\n用今天的语言来描述这次发布，大概相当于苹果同时发布了 MacBook Air、Mac Studio 和 Mac Pro，五款 CPU、五十四种外设，而且它们全部运行同一套架构、同一套软件——插上就能用，升级不用重写程序。在 1964 年那个每台计算机都有自己一套独立操作规范、连同一家公司的不同机型都无法兼容的年代，这种想法本身就近乎疯狂。\nIBM 内部把这套系统称为“50 亿美元的赌博”——折算到今天大约是 340 亿美元，比当时 IBM 全年的营收还高。事实上，整个计划一度被质疑为“技术自杀”：如果失败了，IBM 将陷入财务深渊；如果成功了，它将彻底重塑计算机产业的游戏规则。\n结果我们都知道了：它押中了。发布首月订单就超过一千台，到 1966 年月销量突破千台，每台售价 250 万到 300 万美元。System/360 成为了大型主机的性能基准，和福特 T 型车、波音 707一起被《Wired》杂志评为史上三大商业创新。\n但对于我们这篇文章来说，System/360 真正关键的影响是一个被嵌入底层架构的设计决定。这个决定来自一个人：Frederick P. Brooks Jr.——后来写出软件工程圣经《人月神话》的那位布鲁克斯。在设计 System/360 时，他拍板了一个决定：将 IBM 360 系列从 6 位字节改为 8 位字节，从而允许使用小写字母。后来布鲁克斯回顾自己的职业生涯时说了这么一句话：\n“我做出的最重要的决定，是将 IBM 360 系列从 6 位更改为 8 位字节，从而允许使用小写字母。这种变化传播到了所有地方。”\n一个 6 位的字节能表达 64 种可能，够装下 26 个大写字母、10 个数字、若干标点符号和少量控制字符——唯独装不下 26 个小写字母。在这个架构的约束下，全世界的计算机输出都是用大写在咆哮。Brooks 决定把字节拓宽到 8 位，一下子把空间翻到了 256 种可能。大写字母、小写字母、数字、符号，全都塞进去之后还有富余——那多出来的一位后来被用作奇偶校验位来检测传输错误。自此，计算机终于可以“轻声细语”地输出大小写混合的文字了。\n当 System/360 以摧枯拉朽之势席卷企业市场时，它的配套编码方案 EBCDIC 也顺势成为了事实标准——这是一个 8 位字符编码体系，涵盖了数字、大小写字母和大部分常用符号。尽管 EBCDIC 在技术美感上远不如后来更为优雅的 ASCII，但商业的力量就是这样：谁卖得多，谁制定标准。36 位大型机和 6 位字节体系，在一夜之间从主流变成了遗产。这跟后来 VHS 击败 Betamax、Windows 称霸桌面市场是同一类故事——赢家靠的往往不是技术最优解，而是生态最强势。\n1 Byte = 8 bits——这个你现在觉得天经地义的等式，就是在这一场商业豪赌里被焊死在计算机史上了。\n四、当我们聊一个字节时，到底在聊什么？ 现在让我们停下来，好好看看一个真正的8位字节到底长什么样。\n一个字节，由 8 个比特构成。想象你面前有 8 个并排摆着的开关，每个开关只有两种状态：开（1）或关（0）。这就意味着一个字节一共可以排列出 2^8 = 256 种不同的组合。如果用来表达不带符号的整数，范围是 00000000 到 11111111，也就是十进制 0 到 255。如果你在玩老式 8 位红白机，一个字节恰好可以表达游戏里一个格子里的道具数量——255 发子弹，多一发就溢出归零，这就是被无数80后玩家诅咒过的“255 上限”。\n一个字节不仅能代表数字，也能代表文字。在最基础的表层语义里，1 Byte = 1个英文字母。与此同时，字节也是计算机内存寻址的最小单位——你的处理器在内存里找一个数据，绝不能对比特说“我要第 137 位”，而只能说“我要第 18 号字节”。内存在最底层被划分成一个个编号的字节格子，每个格子里有 8 个比特安静地待着。正因为有了这种统一的寻址体系，程序才能高效而精确地读写数据，而不是在一堆无标号比特中迷失方向。\n这种“刚好 256 种组合”的魔力，配合2的幂次对硬件寻址的天然亲近感，就像 “上帝为程序员预留的完美隙缝”——不大不小，恰好够用。也正因如此，字节成了此后一切信息尺度递进的基石，我们后面每一篇要聊的 KB、MB、GB……都不过是在这个基数上乘以 1024 而已。\n你可以把它理解为计算机世界的 “最小语素”——正如一门语言文字用于表达意义的“最小单位”，字节就是这个数字文明的元语言。八个无声的开关，让人类的字母和符号得以从纸上跃入电子回路，并最终在屏幕中破壳而出。\n五、一个没有歧义的词 讲到这里，一个顺理成章的问题浮出水面：既然 1 byte = 8 bits 已经是事实上的全球标准，为什么网络协议里还充斥着另一个词——octet？\n答案一半在技术，一半在语言。\n先说技术那一半。在 TCP/IP 协议栈被敲定的 1970 年代，互联网的前身 ARPANET 上跑着各式各样的怪机器。其中相当一部分是 DEC PDP-10——没错，就是前面提到的那台字节长度可以 1 到 36 位随便选的计算机。当这些字长各异的计算机需要在网络上互通时，所有人都遇到了一个棘手的问题：你的“byte”配不上我的“byte”，一通信就打架。于是工程师们想出一个新词，它不依附于任何一台机器的字长定义，只陈述一个客观事实——8 比特。这个词就是 octet。前缀 oct- 来自拉丁文的“八”，斩钉截铁，绝无歧义。\n再说语言那一半。在法语里，“bit”和“byte”是一对让人头皮发麻的同音异义词。想象一个法国工程师在电话会议上跟同事讨论网络协议：“我们需要在这个字段里塞 4 个 byte。”同事反问：“你说是 4 个 byte 还是 4 个 bit？”——在法语发音里，这句话两头都对得上，根本没法分辨。要是在对接金融数据或者医疗信息的时候出现这种误会，损失就要按亿来算了。于是，法语世界对 octet 这个词比英语世界更为热情地张开双臂。在法国、法属加拿大和罗马尼亚，人们至今不说 megabyte，而说 megaoctet——便利店里的硬盘包装盒上就是这么印的。\n技术和语言两支力量一汇合，octet 就成了网络标准文档里雷打不动的正式用语。直到今天，IPv4 地址用 4 个 octet 表达（每个值域 0～255），IPv6 地址用 16 个 octet，HTTP 协议里那个特别重要的 MIME 类型叫“application/octet-stream”——之所以不用“byte”，正是为了在各国、各语种、各种老旧设备之间通信时，把歧义杀个片甲不留。\n六、字节的未竟之旅：从8位到无限 故事到 System/360 似乎可以画上句号了。但字节真正的历险，其实才刚刚开始。\n8 位 = 256 种组合，对英语世界来说绰绰有余——26 个大小写字母、10 个数字、标点符号，再加上一堆控制字符，256 个格子塞得满满当当但够用。然而，当计算机开始走向世界，麻烦接踵而至：汉字怎么办？阿拉伯字母怎么办？日语的假名和韩语的谚文怎么办？\n答案是：一个字节不够，就多来几个字节。\n在 Unicode 体系下，一个字符可以用 1 到 4 个字节来表达。UTF-8 是最优雅的设计之一：它向下完全兼容 ASCII（7 位 ASCII 恰好落在 UTF-8 单字节表达的范围内，那些年存下的英文文本不必做任何转换就能被新系统识别），同时又能把汉字、emoji、古埃及象形文字全部编码进多字节序列。一个英文字母占 1 个字节，一个常用汉字占 3 个字节，一个 emoji 占 4 个字节。你每天在微信里发的那些笑脸表情——每发出一个，就是 4 个字节流过光纤。\n所以，1 Byte 不只是数字信息的单位，它也是一个文明基座：它是英文的储存口袋，是计算机内存的编址灵魂，更是多语言世界的奠基砖块。 当后来者继续以此乘 1024、乘 1024，逐级延展至 KB、MB 乃至 YB 时，请务必记得——所有的这一切，都始于这8 个排队站好的比特，始于计算机史上一场价值 50 亿美元的赌博和一个德裔工程师灵机一动的双关语。在那个混沌的黎明，有多少六位六位的往事湮没在历史的尘埃里，只有这一个大写的“B”，为我们标记了一切宏大叙事的源头。\n","permalink":"https://gpchn.252123.xyz/posts/%E4%BB%8E-1-bit-%E5%88%B0-1-yb/1-byte/","summary":"\u003cp\u003e上一回我们聊了1 bit。一个开关，一瞬脉冲，一根导线里时有时无的电流。彼时，人类教会机器吞吐信息的本领才刚刚入门——是的，输出一个 yes-or-no，分辨一段黑白，这便是比特的全部世界。这的确很了不起，但实话说：若机器只能存储一个 0 或 1，它永远无法写出“Hello World”，更无法绘出蒙娜丽莎。它需要一个更大的单位。\u003c/p\u003e","title":"从 1 bit 到 1 YB：1 Byte - 当计算机学会“咬”下第一口"},{"content":"今天开个新坑，聊一个计算机领域最基础、最底层，但你几乎每天都在用却从来不认识它的东西。\n在正式开始之前，我先问一个问题：你觉得，人类历史上最伟大的发明是什么？\n有人说是轮子，有人说是文字，有人说是互联网。但我觉得，还有一个答案被严重低估了——那就是“把复杂的事情变成选择题”。\n1948 年，美国贝尔实验室里，一个叫 克劳德·香农 的男人正在疯狂搞研究。这个男人是什么来头？他大学的时候同时修了电子工程和数学两个学位，硕士论文搞了个用继电器做逻辑运算的东西，后来被学术界公认为“二十世纪最重要的硕士论文”——注意，是硕士论文，不是博士论文。\n就是这么一号猛人，在 1948 年发了一篇论文，叫《通信的数学理论》。这篇论文一出来，整个学术界都炸了。香农在里面干了一件什么事呢？他把“信息”这个东西给数学化了。\n这事有多离谱呢？就好比有人突然告诉你：爱情是可以算出来的，幸福是可以量化的，你妈为什么觉得你冷是可以建模的。信息这个东西，以前大家都觉得很玄乎，一封电报发过去，“我军已占领高地”和“高地已被我军占领”，意思差不多，但哪个信息量更大？没人说得清。\n香农说：不，说得清。\n他给出的答案震古烁今：信息的本质，是消除不确定性。\n什么叫消除不确定性？举个例子。你现在想问一个问题：今天外面下雨了吗？这个问题有两个可能的答案：下了，或者没下。所以这个问题的不确定性是“二选一”。我告诉你了答案，我就给了你一个信息量。如果我告诉你的是一句废话，比如“今天要么下雨要么不下雨”——那对不起，这句话信息量是零，因为它没有消除任何不确定性。\n香农把这个最基本的“二选一”单元，叫做 binary digit，简称 bit。\n但这里有一个好玩的八卦。\n香农当时想给这个东西起个名字。他自己没想好，就去问同事。他先问了另一位大佬约翰·冯·诺依曼，就是那个搞计算机的冯·诺依曼。冯·诺依曼想了想说，你叫它“binary digit”不就行了嘛。香农觉得有点长。\n然后他又去问了另一位数学家，叫约翰·图基。图基说：“binary digit”太啰嗦了，我建议你缩写成“bit”。\n注意，这个约翰·图基不是随便什么人。这个人后来发明了快速傅里叶变换，就是现在你手机里所有音频压缩、图像处理的数学基础。但在1948年那个下午，他最大的贡献是随口起了一个名字。这个名字后来成了整个信息时代的基石。\n所以各位，起名真的很重要。你想想，如果当时图基那天心情不好，说“你叫它 binit 也行”，那后来我们就会说“我手机有 512 吉比尼特的存储”——那整个科技史的画风就完全不一样了。\n好了，名字有了，那这玩意儿到底能干什么？\n我们回到“选择题”这个思路上来。1 bit，就是一个最纯粹的选择题。它只能回答一个问题：是，还是否。\n你不能问它“今天天气怎么样”，你只能问“今天下雨了吗”。它只能点头或者摇头。在计算机的世界里，我们把这个点头和摇头记作 1 和 0。\n就这么简单的东西，能干什么？\n答案是：什么都能干。\n我接下来这句话可能有点暴论，但各位仔细品一品——你手机里的一切，无论是 4K 高清视频、吃鸡游戏、你前女友的聊天记录，还是你现在正在看的这篇文章，它们在被层层剥开、拆到最底层之后，全部都是由“是”和“否”这两个字组成的。\n就像宇宙万物看起来千姿百态，但拆到原子层面，全是质子、中子、电子。在信息世界里，1 bit，就是那个不可分割的原子。\n那么，1 bit 在物理世界里长什么样？\n这个说来也很有意思。香农搞理论的时候，根本不关心物理实现，就像建筑师画图纸的时候不关心砖是红砖还是青砖。但在现实中，1 bit 需要有东西来代表它。\n最早的 1 bit 长什么样？我们中国人最熟悉：烽火台上的狼烟。点着了，就是 1，意味着“敌人来了”；没点着，就是 0，意味着“一切安好”。一个烽火台，就是一个 1 bit 设备。\n再往后，19 世纪的穿孔纸带。一张纸，上面有孔就是 1，没孔就是 0。那时候的纺织机、电报机，用的全是这个原理。你奶奶缝纫机用的那个打孔花样板，本质上就是一套只读存储器。\n到了电子时代，事情变得更有意思。一个晶体管开关，通就是 1，断就是 0。你现在手机里那个指甲盖大小的芯片上，大约有 100 多亿个晶体管。100 多亿个 1 bit 单元挤在一片硅片上，每秒开关数十亿次。而它们做的每一件事，从底层看，都只是在回答一个又一个的“是或否”。\n我们回到 1 bit 本身。到这里，你可能觉得，1 bit 太渺小了，渺小到几乎没有实际用途。一个烽火台只能告诉你“有敌人”或者“没敌人”，它不能告诉你敌人来了多少人、从哪个方向来的、主将是谁。它甚至不能告诉你今天值班的士兵午饭吃了什么。\n但我想给你一个完全不同的视角。\n1957 年，苏联发射了人类第一颗人造卫星“斯普特尼克1号”。这颗卫星上装了什么东西？除了一堆仪器之外，它只往地面发回一种信号：哔——哔——哔——。这个哔哔声，本质上就是 1 个 bit 的信息在重复：“我在呢”“我在呢”“我在呢”。\n就这么一个 1 bit 的信号，把整个西方世界吓出了一身冷汗。因为它意味着苏联人能把一个东西扔到地球轨道上。能扔卫星，就能扔核弹。美国人的反应是立刻成立了 NASA，全面开启了太空竞赛。\n所以你看，1 bit 的信息量虽然小，但如果它回答的是那个最关键的问题——“苏联人有没有能力打到我们？”——那这个 1 bit，就足以改变人类历史的进程。\n最后，让我们给 1 bit 找一个形象的比喻。\n如果整个信息世界是一片大海，那么 1 bit 就是构成这片大海的一粒沙。一粒沙什么也做不了，你把它放在手心里，风一吹就没了。但如果你有 80 亿粒沙，你能堆出一整片海滩。\n而我们后面要讲的所有故事——从 1 Byte 到 1 KB，从 1 GB 到 1 YB——全部都是从这粒沙开始的。\n香农在 1948 年那篇论文里写下\u0026quot;bit\u0026quot;这个词的时候，他大概不会想到，七十多年后，人类每年产生的数据量已经需要用“泽它字节”这种你甚至不会写的汉字来描述了。但无论数字多庞大，溯其源头，信息最小的、最本质的孩子，仍然是这个只会点头摇头的哑巴：1 bit。\n","permalink":"https://gpchn.252123.xyz/posts/%E4%BB%8E-1-bit-%E5%88%B0-1-yb/1-bit/","summary":"\u003cp\u003e今天开个新坑，聊一个计算机领域最基础、最底层，但你几乎每天都在用却从来不认识它的东西。\u003c/p\u003e\n\u003cp\u003e在正式开始之前，我先问一个问题：你觉得，人类历史上最伟大的发明是什么？\u003c/p\u003e","title":"从 1 bit 到 1 YB：1 bit - 信息世界的原子"},{"content":"用 PyWebview 写完应用，打包成 Android APK 是最后一步。官方文档给了方向，但细节需要自己摸索。以下是我验证过的完整流程。\n1. 准备 Linux 环境 Android 打包依赖 Buildozer，它只能跑在 Linux 上。Windows 用户可通过 WSL 搭建环境。\n1.1 启用虚拟化并安装 WSL Ubuntu 首先确认 CPU 虚拟化已开启：任务管理器 → 性能 → CPU → 虚拟化，显示“已启用”。\n接着打开系统功能：控制面板 → 程序 → 启用或关闭 Windows 功能，勾选“适用于 Linux 的 Windows 子系统”和“虚拟机平台”。\n在 Microsoft Store 中搜索 Ubuntu，安装 20.04.6 LTS 或 22.04.5 LTS。安装后会自动弹出终端，按提示设置用户名和密码。\n1.2 安装系统依赖与 Buildozer 在 Ubuntu 终端执行以下命令，安装编译所需的工具链：\nsudo apt update sudo apt install -y git zip unzip openjdk-17-jdk python3-pip autoconf libtool \\ pkg-config zlib1g-dev libncurses5-dev libncursesw5-dev libtinfo5 cmake \\ libffi-dev libssl-dev pip3 install --user Cython==0.29.33 virtualenv buildozer echo \u0026#39;export PATH=$PATH:~/.local/bin/\u0026#39; \u0026gt;\u0026gt; ~/.bashrc source ~/.bashrc 如果系统中另有 Java 版本冲突，可尝试安装 openjdk-11-jdk 替代。\n2. 配置打包信息 2.1 初始化 buildozer.spec 进入项目根目录，执行：\nbuildozer init 会生成 buildozer.spec。PyWebview 项目可直接下载官方示例配置作为基础：buildozer.spec 示例。\n2.2 必须修改的项 title：应用名称 package.name：包名 package.domain：域名格式的包 ID requirements：至少包含 python3,kivy,pywebview，其他依赖也一并列出 android.add_jars：需要指向 pywebview 自带的 jar 包。运行以下 Python 代码获取它的绝对路径： from webview import util print(util.android_jar_path()) 将输出路径填入 android.add_jars。\n如果需要联网权限，确保 android.permissions 中包含 INTERNET。 3. 开始构建 第一次构建会下载 Android SDK、NDK 等组件，耗时很长，后续构建会大幅加快。\n调试版 (debug) 生成 debug APK，用于快速测试：\nbuildozer android debug 正式版 (release) 生成用于发布的 AAB 文件：\nbuildozer android release 产物位于 bin/ 目录。\n4. 处理 APK/AAB 文件 如果直接得到 APK 可跳到签名步骤；如果是 AAB，需先提取通用 APK。\n4.1 从 AAB 提取 universal.apk 使用 bundletool，确保电脑已装 Java：\njava -jar bundletool.jar build-apks --bundle=your_app.aab --output=output.apks --mode=universal output.apks 是一个 ZIP 文件，解压后得到 universal.apk。\n4.2 允许明文 HTTP 流量 注：这种方法有安全风险，建议仅用于开发。目前我还没有找到更好的办法。 Android 9 及以上默认禁止明文 HTTP，如果 WebView 需要访问 http://localhost，必须修改 AndroidManifest。\n用 apktool 反编译 APK：\njava -jar apktool.jar d universal.apk -o decompiled 编辑 decompiled/AndroidManifest.xml，在 \u0026lt;application 标签内添加：\nandroid:usesCleartextTraffic=\u0026#34;true\u0026#34; 重新打包：\njava -jar apktool.jar b decompiled -o unsigned.apk 4.3 生成签名密钥 如果还没有 keystore，用 keytool 生成一个：\nkeytool -genkey -keystore my-release.keystore -keyalg RSA -keysize 2048 -validity 10000 -alias my-key 按提示输入信息，记住设置的密码和别名。\n4.4 对 APK 签名 使用 apksigner 完成签名：\napksigner sign --ks my-release.keystore --ks-key-alias my-key -out final.apk unsigned.apk final.apk 即为可安装的安装包。\n5. 自动化脚本 我将上述 AAB 处理流程写成 Python 脚本，一键完成提取、改 Manifest、签名。核心逻辑贴在下面，完整文件见 QriaMath 仓库。\n#!/usr/bin/env python3 # coding=utf-8 from sys import argv from os import system from pathlib import Path VER = \u0026#34;0.1.0\u0026#34; JAVA = r\u0026#34;path\\to\\java\u0026#34; SEVEN_ZIP = r\u0026#34;path\\to\\7z\u0026#34; APK_SIGNER = r\u0026#34;path\\to\\apksigner\u0026#34; AAB = \u0026#34;QriaMath-0.1.0-arm64-v8a_armeabi-v7a-release.aab\u0026#34; print(\u0026#34;(1/4) Building APK from AAB...\u0026#34;) system(f\u0026#34;{JAVA} -jar bundletool.jar build-apks --bundle={AAB} --output=output.apks --mode=universal\u0026#34;) system(f\u0026#34;{SEVEN_ZIP} x output.apks -ooutput\u0026#34;) print(\u0026#34;(2/4) Modifying AndroidManifest...\u0026#34;) system(f\u0026#34;{JAVA} -jar apktool.jar d output/universal.apk -o dec\u0026#34;) xml = Path(\u0026#34;dec/AndroidManifest.xml\u0026#34;) xml.write_text(xml.read_text().replace(\u0026#34;\u0026lt;application\u0026#34;, \u0026#39;\u0026lt;application android:usesCleartextTraffic=\u0026#34;true\u0026#34;\u0026#39;)) print(\u0026#34;(3/4) Rebuilding APK...\u0026#34;) system(f\u0026#34;{JAVA} -jar apktool.jar b dec -o unsigned.apk\u0026#34;) print(\u0026#34;(4/4) Signing...\u0026#34;) system(f\u0026#34;{APK_SIGNER} sign --ks qriamath.keystore --ks-key-alias qriamath -out QriaMath-{VER}.apk unsigned.apk\u0026#34;) 整个过程把 PyWebview 项目转为安卓 APK 的步骤连在一起了。如果遇到构建报错，优先检查 buildozer.spec 中的路径和依赖列表；WSL 用户注意项目文件必须放在 Linux 文件系统内，不要直接在 /mnt/c 下构建，否则权限和性能问题会很难排查。\n","permalink":"https://gpchn.252123.xyz/posts/pywebview-%E6%89%93%E5%8C%85%E5%AE%89%E5%8D%93%E5%85%A8%E8%BF%87%E7%A8%8B%E8%AE%B0%E5%BD%95/","summary":"\u003cp\u003e用 PyWebview 写完应用，打包成 Android APK 是最后一步。官方文档给了方向，但细节需要自己摸索。以下是我验证过的完整流程。\u003c/p\u003e\n\u003ch2 id=\"1-准备-linux-环境\"\u003e1. 准备 Linux 环境\u003c/h2\u003e\n\u003cp\u003eAndroid 打包依赖 Buildozer，它只能跑在 Linux 上。Windows 用户可通过 WSL 搭建环境。\u003c/p\u003e","title":"PyWebview 打包安卓全过程记录"},{"content":"我当前在 Python 脚本里保持的骨架大致如下：\n#!/usr/bin/env python3 # coding=utf-8 def main(): ... if __name__ == \u0026#34;__main__\u0026#34;: main() 下面逐条解释这些选择，以及我在缩进、引号、空白上的习惯。\nshebang #!/usr/bin/env python3 只在 Unix/类 Unix 系统上生效，Windows 会直接忽略这一行。它的作用是让内核用 env 找到 python3 来执行脚本，而不是硬编码 /usr/bin/python3 这样可能不存在的路径。对要用 ./script.py 直接跑脚本的人来说，这行算基本礼貌，省去先敲 python3 的步骤。\n如果你的脚本只跑在 Windows 上，写不写无所谓；但只要有可能跨平台，保留它没有坏处。\n编码声明 Python 2 默认源文件编码是 ASCII，要写中文就必须在文件头加 # coding: utf-8。另一种常见写法 # -*- coding: utf-8 -*- 里的 -*- 纯粹是装饰，Emacs 早期风格延续下来的，我更喜欢直接写成 # coding=utf-8。\nPython 3 已经默认 UTF-8，理论上去掉这行也没问题。但考虑到仍有人在用 Windows 7 或某些特殊环境（比如系统 locale 不是 UTF-8 的 CI 容器），带上这行能够避免 GBK 环境解析源文件时报错。保留它成本为零，兼容性却多一层。\n程序入口 把主流程写进 main() 然后靠 if __name__ == \u0026quot;__main__\u0026quot; 调用，这是 Python 社区沉淀下来的习惯。好处至少有三个：\n函数内部的变量是局部变量，不会漏成全局变量污染模块空间。 模块可以在被 import 时不执行任何副作用，同时又能独立运行调试。 与其他语言（C/Java/Go 等）的入口函数命名保持一致，降低阅读切换成本。 if __name__ == \u0026quot;__main__\u0026quot; 本身是 Python 运行时的内建机制：当脚本作为主程序运行时，解释器会把 __name__ 设成 \u0026quot;__main__\u0026quot;；当被导入时，__name__ 则是模块名。这个差异刚好用来区分两种用途。\n引号 我个人默认用双引号 \u0026quot;。Black 格式化工具的默认行为也是双引号，除非字符串内含有双引号导致转义过多，才会临时切换到单引号。我自己的处理方式更绝对一点：即使需要在字符串内部写双引号，我也会用转义 \\\u0026quot; 来保持外层统一。\n另有一种流派：用双引号包裹面向人的字符串（比如日志、提示），单引号包裹面向机器的字符串（比如字典 key、正则），这能在语义上多传递一层信息。我个人不反对这种分法，但前提是整个项目能达成一致，否则混用不如统一。\n缩进 Python 用缩进代替花括号来划分代码块。好处是强制统一外观，坏处是深层嵌套会迅速吃掉横向空间。我一般控制最多三层逻辑缩进——如果发现要写到第四层，就拆分函数或者用 any/all、dict.get 之类的手法把判断提前消掉。\n一个例子：多层 if 嵌套可以改成守卫语句直接 return 或 raise，缩进立刻回到可控范围。\n行宽与换行 我一直遵守 79 字符的行宽限制。这个数字来自 PEP 8，最初是对 80 列终端的兼容，但即便在今天，窄行高密度的窗口排列也依然受益于此。\n超出 79 字符时，表达式用括号隐式续行优先于反斜杠 \\。对于容器字面量，直接用元素间逗号换行：\ndata = [ \u0026#34;first\u0026#34;, \u0026#34;second\u0026#34;, \u0026#34;third\u0026#34;, ] 这种写法在 diff 时只改一行，不会动到前后的逗号。\n空白与注释 我习惯在逻辑块之间空一行，逗号后留一个空格，运算符两侧也各留一个空格。这些细微空白对人眼解析速度的帮助远大于看起来的“浪费”。\n注释我尽量用英文，即便团队内部中文交流也没问题，但英文注释能避免编码声明之外的编码猜测，也方便与开源社区衔接。如果必须用中文注释，我会在中文与英文单词/数字之间加一个半角空格，保持文字的呼吸感。\n这种空格习惯不止是在注释里，任何中英文混排的地方都值得保持。\n以上规则没有一个是为了“正确”而存在，它们只是我在多次踩坑和阅读他人代码后收敛出来的最小共识。一致性本身，就是最好的可读性。\n","permalink":"https://gpchn.252123.xyz/posts/python-%E4%B8%AD%E8%89%AF%E5%A5%BD%E7%9A%84%E7%A0%81%E9%A3%8E%E6%98%AF%E4%BB%80%E4%B9%88%E6%A0%B7%E7%9A%84/","summary":"\u003cp\u003e我当前在 Python 脚本里保持的骨架大致如下：\u003c/p\u003e\n\u003cdiv class=\"highlight\"\u003e\u003cpre tabindex=\"0\" style=\"color:#f8f8f2;background-color:#272822;-moz-tab-size:4;-o-tab-size:4;tab-size:4;\"\u003e\u003ccode class=\"language-python\" data-lang=\"python\"\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e#!/usr/bin/env python3\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#75715e\"\u003e# coding=utf-8\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003edef\u003c/span\u003e \u003cspan style=\"color:#a6e22e\"\u003emain\u003c/span\u003e():\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    \u003cspan style=\"color:#f92672\"\u003e...\u003c/span\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e\u003cspan style=\"color:#66d9ef\"\u003eif\u003c/span\u003e __name__ \u003cspan style=\"color:#f92672\"\u003e==\u003c/span\u003e \u003cspan style=\"color:#e6db74\"\u003e\u0026#34;__main__\u0026#34;\u003c/span\u003e:\n\u003c/span\u003e\u003c/span\u003e\u003cspan style=\"display:flex;\"\u003e\u003cspan\u003e    main()\n\u003c/span\u003e\u003c/span\u003e\u003c/code\u003e\u003c/pre\u003e\u003c/div\u003e\u003cp\u003e下面逐条解释这些选择，以及我在缩进、引号、空白上的习惯。\u003c/p\u003e\n\u003ch2 id=\"shebang\"\u003eshebang\u003c/h2\u003e\n\u003cp\u003e\u003ccode\u003e#!/usr/bin/env python3\u003c/code\u003e 只在 Unix/类 Unix 系统上生效，Windows 会直接忽略这一行。它的作用是让内核用 \u003ccode\u003eenv\u003c/code\u003e 找到 \u003ccode\u003epython3\u003c/code\u003e 来执行脚本，而不是硬编码 \u003ccode\u003e/usr/bin/python3\u003c/code\u003e 这样可能不存在的路径。对要用 \u003ccode\u003e./script.py\u003c/code\u003e 直接跑脚本的人来说，这行算基本礼貌，省去先敲 \u003ccode\u003epython3\u003c/code\u003e 的步骤。\u003c/p\u003e","title":"Python 中良好的码风是什么样的"},{"content":"我平时在 Linux 上用 zsh，配上 oh-my-zsh 和 powerlevel10k 主题，几乎是一键起飞，颜值和效率都在线。\n但 Windows 这边嘛……很多人到了 CMD 或者 PowerShell 就随缘了，顶多装个 Windows Terminal 就开干。其实只要用对工具，Windows 终端也能做到和 zsh 一样美观。这个工具就是 oh-my-posh。\n下面带你一步步把 CMD 和 PowerShell 的美化拉满。\n1. 先装 Nerd Font 字体 Nerd Font 是所有终端美化的地基。它和普通字体的区别就是塞了一堆特殊图标，没有它的话，你的终端里那些炫酷的箭头、Git 分支图标全会变成乱码。\n下载地址：https://www.nerdfonts.com/ 我自用的是 FiraCode Nerd Font，进它的 GitHub Release 页面下载压缩包，解压后全选 ttf 文件夹里的所有字体，右键安装即可。 装完这个，后面的一切才有意义。\n2. 安装 oh-my-posh 官方给了好几种装法，现在甚至能直接在 Microsoft Store 里找到它。不过为了避免路径和权限上的小麻烦，我还是习惯用包管理器装。\n截至 2025 年 2 月 9 日，最新版是 24.19.0。安装方式三选一：\n# 用 winget（推荐） winget install JanDeDobbeleer.OhMyPosh -s winget # 手动安装脚本 Set-ExecutionPolicy Bypass -Scope Process -Force; Invoke-Expression ((New-Object System.Net.WebClient).DownloadString(\u0026#39;https://ohmyposh.dev/install.ps1\u0026#39;)) # 用 chocolatey（社区维护，不一定最新） choco install oh-my-posh 我用的是 winget。装完后开一个新的 PowerShell 窗口，跑一下 oh-my-posh --version，能输出版本号就说明成功了。\n3. 美化 PowerShell 我选的主题是 powerlevel10k_rainbow，和 oh-my-zsh 上的 powerlevel10k 长得神似，可惜不能像在 zsh 里那样交互式定制，只能直接从给出的四款 powerlevel10k 变体里挑。\n先找到配置文件位置：\n$PROFILE 它会输出类似 C:\\Users\\[你的用户名]\\Documents\\WindowsPowerShell\\Microsoft.PowerShell_profile.ps1 的路径。如果这个文件不存在，自己新建一个同名文件就行。\n打开它，写入以下内容：\n# 下面这几行是可选插件，能装的话体验更好，想折腾的可以自己去搜 #Import-Module posh-git #Import-Module Terminal-Icons #Import-Module PSReadLine #Import-Module ZLocation # 核心命令：初始化 oh-my-posh，指定主题路径 oh-my-posh init pwsh -c C:\\Users\\gpchn\\AppData\\Local\\Programs\\oh-my-posh\\themes\\powerlevel10k_rainbow.omp.json | Invoke-Expression # Tab 键补全增强，可选但很实用 Set-PSReadLineKeyHandler -Key Tab -Function MenuComplete 保存，重新打开 PowerShell，就能看到效果了。\n缺点要提前说：PowerShell 启动本来就慢，配上 oh-my-posh 后更明显。我这边就算缓存过，冷启动也要 3 秒多，有时候清理完 C 盘延迟能飙到 7 秒——这锅微软背，oh-my-posh 只是雪上加霜。\n美化效果大概是这样：\n如果看腻了这个主题，随时可以换。官网主题库：https://ohmyposh.dev/docs/themes，或者在 PowerShell 里直接跑 Get-PoshThemes 遍历看一遍。都不满意还能自己写配置文件，定制自由度很高。\n4. 美化 CMD CMD 没有原生的配置文件概念，所以得下载一个小工具——clink。它能让 CMD 支持自动补全、持久化配置，还能加载写好的美化脚本。\n官网右上方下载最新版安装即可（下载在 GitHub Release，可能需要点魔法）。装完后打开 CMD，随便敲几个字母看看有没有自动补全提示，有就说明 clink 在干活了。\n然后进 clink 的安装目录，新建一个文件叫 oh-my-posh.lua，写入：\n-- 指定主题路径，不喜欢 powerlevel10k_rainbow 可以自己去换了 load(io.popen(\u0026#39;oh-my-posh init cmd -c C:\\\\Users\\\\gpchn\\\\AppData\\\\Local\\\\Programs\\\\oh-my-posh\\\\themes\\\\powerlevel10k_rainbow.omp.json\u0026#39;):read(\u0026#34;*a\u0026#34;))() 保存，重新打开 CMD，应该就能看到漂亮的提示符了。\n效果如下：\n用 doskey 找回肌肉记忆 doskey 命令能实现别名功能，比如把 ls 映射到 dir。\n在你的用户目录下找到 AppData\\Local\\clink，新建 clink_start.cmd（有些版本是 autoexec.cmd，具体看 clink 文档），内容参考：\n@echo off doskey ls=dir doskey rm=del doskey cp=copy doskey mv=move doskey clear=cls doskey pwd=chdir doskey cat=type doskey less=type 这样每次打开 CMD，你就能愉快地打 ls 了，肌肉记忆不用重新训练。\n5. 美化 Git Bash Git Bash 的美化本质上和 PowerShell 差不多，只是它用的终端模拟器不好换 Nerd Font（也可能是我没找到方法），所以只能用不带图标的 .minimal 主题，有点遗憾。\n首先把你的 .omp.json 主题文件复制到一个固定的路径，比如 /etc/oh-my-posh/xxx.omp.json。\n然后在用户目录下找到或新建 ~/.profile，写入：\n# 指向你复制过去的主题文件 eval \u0026#34;$(oh-my-posh init bash -c /etc/oh-my-posh/xxx.omp.json)\u0026#34; 重启 Git Bash 就生效了。\n6. Wait a minute oh-my-posh 的美化效果严重依赖终端模拟器，像 VSCode 自带的那个终端，有时候渲染会抽风，图标变框框或者直接不显示，目前我也没找到特别靠谱的解决方法。如果你的日常主要用 IDE 里的终端，这个美化可能意义不大。\n7. 总结 搞完之后，CMD 和 PowerShell 的颜值确实能提升好几个档次，只是代价也摆在明面上——PowerShell 启动更慢了。\n凡事都有代价。PowerShell 内嵌的 .NET 框架确实比 CMD 强大很多，但我用不着。\n","permalink":"https://gpchn.252123.xyz/posts/%E7%94%A8-oh-my-posh-%E7%BE%8E%E5%8C%96-cmd-%E5%92%8C-powershell/","summary":"\u003cp\u003e我平时在 Linux 上用 zsh，配上 oh-my-zsh 和 powerlevel10k 主题，几乎是一键起飞，颜值和效率都在线。\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"oh-my-zsh\" loading=\"lazy\" src=\"/posts/%E7%94%A8-oh-my-posh-%E7%BE%8E%E5%8C%96-cmd-%E5%92%8C-powershell/1.webp\"\u003e\u003c/p\u003e\n\u003cp\u003e但 Windows 这边嘛……很多人到了 CMD 或者 PowerShell 就随缘了，顶多装个 Windows Terminal 就开干。其实只要用对工具，Windows 终端也能做到和 zsh 一样美观。这个工具就是 \u003ca href=\"https://ohmyposh.dev/\"\u003eoh-my-posh\u003c/a\u003e。\u003c/p\u003e","title":"用 oh-my-posh 美化 CMD 和 PowerShell"},{"content":"配置文件这种东西，没人喜欢专门去学它。你打开一个陌生的项目，看到满屏的缩进、引号、中括号，第一反应大概率是——这写的什么天书？\n但偏偏每个项目用的语言还不一样。JSON、XML、INI、YAML、TOML……名字一个比一个抽象，语法一个比一个有个性。没办法，还是得认一认。\n下面简单聊聊这五种最常见的配置文件语言，帮你下次碰到它们的时候，少上几次百度。\n1. JSON JSON 是 Douglas Crockford 基于 JavaScript 的语法整出来的，2000 年就有了第一版标准，2013 年 ECMA 正式给它发了\u0026quot;身份证\u0026quot;。\n它长这样：\n{ \u0026#34;addr\u0026#34;: \u0026#34;127.0.0.1\u0026#34;, \u0026#34;port\u0026#34;: 8080, \u0026#34;custom\u0026#34;: { \u0026#34;args\u0026#34;: [\u0026#34;--debug\u0026#34;, \u0026#34;--verbose\u0026#34;], \u0026#34;timeout\u0026#34;: 10 } } 看着就是一堆花括号、方括号和引号。机器读起来飞快，人读起来嘛——如果你的配置文件超过三层嵌套，眼睛就开始打架了。\n优点： 几乎所有语言都能解析，生态无敌。\n缺点： 早期版本连注释都不支持，写配置体验一般。\n2. XML XML 是 W3C 在 1998 年正式发布的，本质上是从一个更老的标准 SGML 精简而来。当年 Web 服务盛行的时候，XML 可是绝对的主角。\n它长这样：\n\u0026lt;app\u0026gt; \u0026lt;addr\u0026gt;127.0.0.1\u0026lt;/addr\u0026gt; \u0026lt;port\u0026gt;8080\u0026lt;/port\u0026gt; \u0026lt;custom\u0026gt; \u0026lt;args\u0026gt;--debug\u0026lt;/args\u0026gt; \u0026lt;args\u0026gt;--verbose\u0026lt;/args\u0026gt; \u0026lt;timeout\u0026gt;10\u0026lt;/timeout\u0026gt; \u0026lt;/custom\u0026gt; \u0026lt;/app\u0026gt; 如果你会写 HTML，XML 几乎是零门槛，因为它就是同一套标签哲学。但问题也在这：标签太多，文字全淹没在尖括号里了。\n优点： 语义自描述，基本不需要额外注释。\n缺点： 啰嗦，体积大，现在被 JSON 抢走了不少饭碗。\n3. INI INI 文件是 Windows 系统的原住民，早期几乎所有 Windows 程序的配置都用它。有时候你也看到它叫 .cfg、.conf 或 .txt。\n它长这样：\n[app] addr = 127.0.0.1 port = 8080 [custom] args = --debug --verbose timeout = 10 方括号分节，下面是键值对，简单到不用学就会写。但也因为太简单，稍微复杂点的数据结构（比如列表、嵌套）就搞不定了。\n优点： 可读性天花板级别的简洁。\n缺点： 缺乏标准，不同解析器各玩各的，碰到嵌套当场投降。\n4. YAML YAML 最早是 2001 年由 Clark Evans 搞出来的，名字经历了从 \u0026ldquo;Yet Another Markup Language\u0026rdquo; 到 \u0026ldquo;YAML Ain\u0026rsquo;t a Markup Language\u0026rdquo; 的华丽转身，明显是想和 XML 划清界限。\n它长这样：\napp: addr: 127.0.0.1 port: 8080 custom: args: - --debug - --verbose timeout: 10 YAML 最大的特色就是用缩进表示层级，跟 Python 是同门师兄。看起来干净到像在写提纲，但成也缩进、败也缩进——空格和 Tab 搞混的那一刻，调试起来想砸键盘。\n优点： 可读性极高，功能全面。\n缺点： 怕缩进错误，学习曲线不友好。\n5. TOML TOML 全称 \u0026ldquo;Tom\u0026rsquo;s Obvious, Minimal Language\u0026rdquo;，由 GitHub 联合创始人 Tom Preston-Werner 发起，目标就是做一个比 INI 强、比 YAML 乖、比 JSON 更合适当配置的语言。\n它长这样：\n[app] addr = \u0026#34;127.0.0.1\u0026#34; port = 8080 [custom] args = [\u0026#34;--debug\u0026#34;, \u0026#34;--verbose\u0026#34;] timeout = 10 第一眼像 INI 的升级版，但加了明确的数据类型和嵌套语法。Python 的 pyproject.toml 和 Rust 的 Cargo.toml 都用它，这算是行业里一张很有分量的推荐信。\n优点： 语法直觉，类型明确。\n缺点： 相对年轻，网上资料远不如 JSON 丰富。\n最后怎么选？ 个人经验之谈：\n超级简单的小项目 → INI，不用费脑子。 需要复杂数据结构 → JSON，哪里都认你。 追求人类可读且不怕缩进 → YAML，写完自己看着也舒坦。 生产项目、团队协作 → TOML，站在 INI 肩膀上，少了很多坑。 说到底，无脑用 JSON 也没什么毛病。（毕竟配置写好之后，除了改 bug，谁也不会天天去看它。）\n","permalink":"https://gpchn.252123.xyz/posts/%E9%85%8D%E7%BD%AE%E6%96%87%E4%BB%B6%E8%AF%AD%E8%A8%80%E6%80%8E%E4%B9%88%E9%80%89%E6%89%8D%E4%B8%8D%E5%90%8E%E6%82%94/","summary":"\u003cp\u003e配置文件这种东西，没人喜欢专门去学它。你打开一个陌生的项目，看到满屏的缩进、引号、中括号，第一反应大概率是——这写的什么天书？\u003c/p\u003e\n\u003cp\u003e但偏偏每个项目用的语言还不一样。JSON、XML、INI、YAML、TOML……名字一个比一个抽象，语法一个比一个有个性。没办法，还是得认一认。\u003c/p\u003e","title":"配置文件语言，怎么选才不后悔？"},{"content":"终于选好了配置、买好了零件、装好了电脑，然后暑假就要结束力（悲）\n话不多说先上配置 不得不说 e3 神教嘎嘎香，160 块钱能有这性能，传送门2、CS:GO、半条命、泰拉瑞亚、求生之路2 这种低配游戏毫无压力（虽然我也没试过，但根据配置要求来看是这样的）\n再加 300 块预算，x79 + e3 / e5，再装个显卡，妥妥的游戏机，3A 随便打（心有余而预算不足）\n再苦也不能苦孩子，再省也不能省电源，本来就是纸壳机箱再爆炸就真成火灾力（悲）新电源价格不能低于 1元/瓦，二手一定要买大牌子，起码质量有一定保证。买杂牌的搞不好会爆炸（物理）\n实际上还从家里的废弃电脑上拆了一块 500G 机械硬盘，没有这块硬盘应该也够用。deepin 吃硬盘吃的有点多，我买的 120G 固态装好以后就只剩 46G 了，当然你可以在安装系统分区的时候把备份分区删掉，这样大约能有 90G 左右（但是 swap 分区一定要留！）\n装好系统后 根据朋友 皮厚鹅 的建议装了 deepin 系统，这次装机没翻车很大程度上要感谢他。\n安兔兔跑分 从应用商店找到了安兔兔，顺手跑一下\n散热还是买贵了，从开机到跑完分 CPU 温度一直稳定在 27℃，换成萝卜会不会好一些（doge）\n总体来说这个电脑我感觉还不错，性价比高的一批，可能唯一不足的点就在于噪音有点大（以及 Linux 系统有亿点麻烦），把纸箱合上噪音问题能得到很大程度上的解决，但是闷久了机箱内部空气会有点热（用手摸稍有点温的程度，我干脆就又打开了）\n避坑指南 0. 默认分辨率无法调整 刚装好系统时的分辨率是 1024x768，看起来很难受，设置里也只有这一个选项（网上也有其他情况，总之没法调到合适的分辨率）\n针对这一情况我写了一个 shell 脚本来解决：\n#!/bin/sh cvt 1366 768 60 # 可以换成自己想要的分辨率（如果显示器支持的话），三个数字分别代表 横向分辨率，纵向分辨率 和 帧数 xrandr --newmode \u0026#34;1280x720_60.00\u0026#34; 74.50 1280 1344 1472 1664 720 723 728 748 -hsync +vsync # \u0026#39;newmode\u0026#39; 后面不用自己填，在第一行命令的返回中有，直接复制粘贴 xrandr --addmode VGA-1 1280x720_60.00 # 不一定是 VGA-1，运行 \u0026#39;xrandr -q\u0026#39; 来确定你应该填什么 xrandr -s 1280x720_60.00 可以把这个脚本写到开机自启动里，我试了几次不管用，每次开机得手动运行\n另外，如果刚进桌面就运行脚本，屏幕上方可能出现一条椭圆形……区域，挡住后面的图像。之后再运行一次脚本就会弹出来一个注销通知（就是那个椭圆形区域的罪魁祸首），点 \u0026lsquo;稍后注销\u0026rsquo; 就会自己隐出屏幕，椭圆形区域也会随之消失。\n1. 网卡驱动安装 Linux 系统大部分是不支持外置网卡的，也就是说，如果你买的主板不带网卡，就没法连接网络\n我家里刚好有一个闲置的外置网卡（实际上之前是给那个废弃电脑买的），插上去以后无法识别，网卡的灯也没有亮，所以需要安装网卡驱动\n使用 lspci 命令确认外置网卡型号，一般都能在网上搜到驱动，请仔细查看 README 文件（如果有的话），如果安装驱动需要额外安装依赖，可以用手机的 \u0026lsquo;USB 共享网络\u0026rsquo; 功能临时供网，不用装驱动，插上就能用（如果共享网络按钮是灰的那就是没插上，检查数据线和 USB 接口）\n如果无法用手机供网，可以用u盘传输 deb 包（或者 rpm 包，看你系统支不支持）\n另外，有时候实在装不上依赖就先安装驱动试试，万一装上了或者作者写的依赖不完全正确呢（我的网卡驱动要求 build-essential 和 git 依赖，我在另一台电脑上 git clone 了用u盘传过去文件夹，没安 build-essential，也能装好，作者可能是想要 gcc 依赖？deepin 自带了 git 和 gcc）\n2. 混乱的 Python 环境 deepin 自带 Python2 和 Python3，可我又想装新版本，所以安装了 MiniConda（我终于知道 conda 有多香了）\n国外下载速度太慢，可以从 清华镜像 下载 Anaconda 和 MiniConda\n","permalink":"https://gpchn.252123.xyz/posts/%E5%9E%83%E5%9C%BE%E4%BD%AC%E7%A6%8F%E9%9F%B3%E5%A6%82%E4%BD%95%E7%94%A8200%E5%85%83%E5%87%91%E5%87%BA%E4%B8%80%E5%8F%B0%E7%94%B5%E8%84%91/","summary":"\u003cp\u003e\u003cem\u003e终于选好了配置、买好了零件、装好了电脑，然后暑假就要结束力（悲）\u003c/em\u003e\u003c/p\u003e\n\u003ch2 id=\"话不多说先上配置\"\u003e话不多说先上配置\u003c/h2\u003e\n\u003cp\u003e\u003cimg alt=\"配置单\" loading=\"lazy\" src=\"/posts/%E5%9E%83%E5%9C%BE%E4%BD%AC%E7%A6%8F%E9%9F%B3%E5%A6%82%E4%BD%95%E7%94%A8200%E5%85%83%E5%87%91%E5%87%BA%E4%B8%80%E5%8F%B0%E7%94%B5%E8%84%91/1.webp\"\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"系统显示\" loading=\"lazy\" src=\"/posts/%E5%9E%83%E5%9C%BE%E4%BD%AC%E7%A6%8F%E9%9F%B3%E5%A6%82%E4%BD%95%E7%94%A8200%E5%85%83%E5%87%91%E5%87%BA%E4%B8%80%E5%8F%B0%E7%94%B5%E8%84%91/5.webp\"\u003e\u003c/p\u003e\n\u003cp\u003e不得不说 e3 神教嘎嘎香，160 块钱能有这性能，传送门2、CS:GO、半条命、泰拉瑞亚、求生之路2 这种低配游戏毫无压力（虽然我也没试过，但根据配置要求来看是这样的）\u003c/p\u003e","title":"垃圾佬福音：如何用200元凑出一台电脑"},{"content":"观前提示：Vercel 和 GitHub 在国内被墙了，没有梯子就歇菜吧\n注册域名 首先来到白嫖域名的网站：https://www.dynadot.com/register-your-free-link-domain\n在搜索框里填上你想要注册的域名，如果可以注册就会是图中的样式，点 Next\n会提示你注册账号，按着提示填就行。实测一个账号只能注册一个免费域名，所以这一步是必须的。\n这里有一个要注意的地方就是在页面最下方 Create Account 上面有三个勾选框，第一个取消掉，第二第三个勾上。\n填完以后点 Create Account 就行了。\n下一步是验证账号，打开邮箱，它会一次性给你发很多个邮件，找到验证那一封，大概长这样：\n点击验证链接，会跳转到浏览器，然后显示网站的登录页面，我们用刚刚创建的账号登录。\n登录完成后跳转到账号的 dashboard，在页面的右侧会有个设置安全问题，照着提示填就行。\n打开域名管理界面：\n刚刚注册的链接会显示在这，点进去：\n往下划，找到 DNS Settings：\n点进去，在展开的选项中选第一个 Name Servers：\n我们先把这个网页搁置，去搞 CloudFlare。\nCloudFlare 设置 打开 CloudFlare 仪表板（如果你还没有账号，点进去页面上的注册链接，两分钟就注册好了）\n（接下来开始实机演示就进行不下去了，所以没有配图了）\n点击右边的蓝色按钮“添加站点”，跳转到添加站点页面，输入刚刚注册的域名，点击按钮。\n跳转到选择方案界面，往下划选择 Free 方案，点击继续。\n等待扫描一会，划到下方一堆 DNS 记录（一条一条末尾有个蓝色删除链接的）\n把它们全删除（是的，全部删除，最下面的两个点击编辑就会展开，里面也有删除链接，也都删除）\n点击继续，准备下一阶段。\n回到域名注册的网站 点击继续后会跳转到下一个页面，往下划找到 Name Servers，它们前面有一个 CloudFlare 的图标（橙色的云）\n还记得之前离开域名注册的最后一个步骤吗？选中了 Name Servers 然后搁置，现在将 CloudFlare 提供的两个 Name Servers 填上去，填完后点击保存按钮。\n接下来是一个等待的步骤，一般几分钟就好了。在注册 CloudFlare 的邮箱收到提示后（或者在主页显示这个域名已经可用后），回到 CloudFlare 仪表板的主页（即之前第一次打开仪表板的链接）。回顾一下之前的图片：\n像这样的就是可用了。点进去你的域名，进到 DNS 记录页面：\n这是我已经设置好的样子，你的应该是空的，点击图中右上方的添加记录按钮，你需要添加两个，一个需要在左侧的选项中选则“A”，一个是“CNAME”：\n这个页面就可以搁置了，接下来进行 GitHub 部分。\nGitHub 设置 （首先你要有一个 GitHub 账号，如果没有就去注册一个）\n你需要在 GitHub 上新建一个仓库，然后在本地用 git 连接，这将作为你的网站根目录（不用 git 只用 GitHub 网页版理论上也是可行的，如果你实在用不来 git 的话）\n最好再新建一个名为“index.html”的文件，内容是“Hello World”或者其他什么的，这能更好的表示你的网站成功运行。\n如果你打算使用框架（包括我的博客框架 Hexo）之类的，最好在下一步 vercel 设置之前就在 GitHub 弄好仓库，这样在 vercel 新建项目的时候可以自动识别，或者在新建项目的时候手动选择框架。\n所有 GitHub 设置到此为止（不考虑后续网站开发），接下来是 vercel 部分。\nVercel 设置 进入 vercel 的 dashboard 页面（如果你没有 Vercel 账号，用 GitHub 账号注册一个，然后再回来继续）\n点击 Add New，选择 Project：\n然后选中刚刚创建的 GitHub 仓库，点击 import：\n按照提示完成项目的创建，进入到项目页面，点击上方横向菜单最后一个 Settings，然后点击左侧竖向菜单的 Domains：\n在输入框中输入新注册的域名，点击 Add：\n三个选项自己选择，如果不懂就选第一个。选好以后会跳出来两个配置未确认页面：\n（因为域名是瞎填的，所以会报错）\n接下来进行最后一步，回到 CloudFlare 页面。\n回到 CloudFlare 回顾一下 CloudFlare 最后的步骤：\n对照 vercel 的两个未确认配置，填上去，保存，就行了。\n打开你的 .link 域名，如果你在这个地方：\n没有选第三个的话，www.你的域名.link 和 你的域名.link 都是可以打开的，如果选了第三个就只有后者能打开。\n如果不出意外，这时候访问你的网站，就能展示出你 GitHub 仓库（即网站根目录）的内容了。\n注：这个博客网站也是这么创建的，用了 Hexo 作为后端，以及 next 主题。如果你也想这样配置你的网站，自己上网查或者联系我获得帮助都可以，这方面网上资料很多的。\n","permalink":"https://gpchn.252123.xyz/posts/%E7%99%BD%E5%AB%96%E6%9C%8D%E5%8A%A1%E5%99%A8-link-%E9%A1%B6%E7%BA%A7%E5%9F%9F%E5%90%8D/","summary":"\u003cp\u003e\u003cem\u003e观前提示：Vercel 和 GitHub 在国内被墙了，没有梯子就歇菜吧\u003c/em\u003e\u003c/p\u003e\n\u003ch1 id=\"注册域名\"\u003e注册域名\u003c/h1\u003e\n\u003cp\u003e首先来到白嫖域名的网站：\u003ca href=\"https://www.dynadot.com/register-your-free-link-domain\"\u003ehttps://www.dynadot.com/register-your-free-link-domain\u003c/a\u003e\u003c/p\u003e\n\u003cp\u003e\u003cimg alt=\"检查域名可用性\" loading=\"lazy\" src=\"/posts/%E7%99%BD%E5%AB%96%E6%9C%8D%E5%8A%A1%E5%99%A8-link-%E9%A1%B6%E7%BA%A7%E5%9F%9F%E5%90%8D/1.webp\"\u003e\u003c/p\u003e\n\u003cp\u003e在搜索框里填上你想要注册的域名，如果可以注册就会是图中的样式，点 Next\u003c/p\u003e","title":"白嫖服务器 + .link 顶级域名"},{"content":"Hi there! 👋 🧐 对全栈很感兴趣，最近在折腾 Hermes agent 🎓 我是一个来自河北的高中学生 🌱 最近在学习 OpenClaw, Hermes, 自建 Linux 服务器, 玩客云刷机等内容 📚 正在阅读《Rust 程序设计语言》《操作系统——原理与实现》 💻 差不多有 7 年的编程经验了，主要使用 Python，别的语言偶尔用用 ✍🏻 我在这里记录学到的有关计算机的知识，但只是偶尔想起来的时候…… WakaTime GitHub Stats ","permalink":"https://gpchn.252123.xyz/about/","summary":"\u003ch2 id=\"hi-there-\"\u003eHi there! 👋\u003c/h2\u003e\n\u003cp\u003e\u003ca href=\"https://twitter.com/intent/follow?screen_name=gpchn\"\u003e\u003cimg alt=\"Twitter Follow\" loading=\"lazy\" src=\"https://img.shields.io/twitter/follow/gpchn?label=Follow\"\u003e\u003c/a\u003e \u003ca href=\"https://gpchn.252123.xyz/\"\u003e\u003cimg alt=\"website\" loading=\"lazy\" src=\"https://img.shields.io/badge/Website-46a2f1.svg?\u0026style=flat-square\u0026logo=Google-Chrome\u0026logoColor=white\u0026link=https://gpchn.252123.xyz/\"\u003e\u003c/a\u003e\u003c/p\u003e\n\u003cul\u003e\n\u003cli\u003e🧐   对全栈很感兴趣，最近在折腾 Hermes agent\u003c/li\u003e\n\u003cli\u003e🎓   我是一个来自河北的高中学生\u003c/li\u003e\n\u003cli\u003e🌱   最近在学习 OpenClaw, Hermes, 自建 Linux 服务器, 玩客云刷机等内容\u003c/li\u003e\n\u003cli\u003e📚   正在阅读《Rust 程序设计语言》《操作系统——原理与实现》\u003c/li\u003e\n\u003cli\u003e💻   差不多有 7 年的编程经验了，主要使用 Python，别的语言偶尔用用\u003c/li\u003e\n\u003cli\u003e✍🏻   我在这里记录学到的有关计算机的知识，但只是偶尔想起来的时候……\u003c/li\u003e\n\u003c/ul\u003e\n\u003ch3 id=\"wakatime\"\u003eWakaTime\u003c/h3\u003e\n\u003cp\u003e\u003ca href=\"https://wakatime.com/\"\u003e\u003cimg alt=\"WakaTime\" loading=\"lazy\" src=\"https://wakatime.com/share/@d2b815da-b0b0-4453-9ce9-a2180d4af304/c2197848-ad8f-4d21-8860-49dbfb7c4b38.svg\"\u003e\u003c/a\u003e\u003c/p\u003e","title":"关于"}]