操作系统与体系结构
这门学科二十年里被两件事重新定义。一件是免费午餐的结束:主频停滞、暗硅出现,性能不再随工艺自动到来,于是专用化成为唯一出路——加速器、开放指令集、近数据计算与编译器共同构成了「体系结构的黄金时代」。另一件是隔离的破产与重建:推测执行漏洞证明了处理器的性能优化会泄漏本该隔离的秘密,此后十年,操作系统与硬件的边界被反复重划——轻量虚拟化、内核可编程性、机密计算、内存安全语言进内核,每一样都是在重新回答「谁与谁之间应当有一堵墙」。下面二十条按此排列。
一、体系结构的黄金时代A New Golden Age for Computer Architecture
单线程性能的年增长率从上世纪末的数十个百分点降到个位数,而多核也受制于并行度与功耗。这一判断指出出路在于领域专用体系结构:为特定计算模式定制数据通路、内存层次与数值精度,从而在同等功耗下获得一到两个数量级的能效优势。
专用化的收益来源被拆解得很清楚:更有效的并行形式、更贴合的数据宽度与精度、避免通用指令集的取指译码开销、以及让编译器与领域知识承担调度而非硬件动态调度。省下的主要是控制开销,而不是算术单元。
配套的判断是软件栈的重要性上升:专用硬件的价值只有在有可用编译器时才能兑现,因而硬件竞争的胜负常常在软件生态上决定(见编程语言面板的张量编译器)。这一点在这十年被反复验证。
风险是碎片化与可移植性:每一代专用硬件都可能使既有软件失效,而软件的寿命通常长于硬件。如何在专用化与长期可维护之间取得平衡,是这一时代的核心工程问题。
还有一层经济含义:专用化把成本从运行时转移到设计期,因而只有出货量足够大的负载才值得定制。「哪些计算模式稳定到值得刻进硅里」成为一个需要押注的商业判断,而押错的代价以年计。
二、开放指令集Open Instruction Set Architectures
指令集长期是少数厂商的专有资产,定制处理器必须购买授权或自行设计一套无生态的指令集。开放指令集提供第三条路:基础指令集免费且标准,任何人可以自由实现与扩展,同时共享编译器、操作系统与工具链生态。
它的实际影响首先出现在教育与研究:处理器设计课程与体系结构论文可以用同一套开放实现作为基线,实验结果第一次可比。其次是嵌入式与加速器领域——控制核、存储控制器与人工智能加速器的宿主核大量采用它。
扩展机制是其技术核心也是风险所在:自定义指令使专用化容易,但过度分化会破坏生态的统一性。标准组织的主要工作因而不是设计指令,而是约束扩展——这与任何开放平台面临的治理问题相同。
地缘因素在这十年上升为主要动力:指令集授权可被单方面中止这一事实,使开放指令集从技术选项变成供应链策略。这与操作系统、密码学与云基础设施上发生的主权化是同一件事。
从生态看,它成功的关键在于把「基础指令集」与「扩展」严格分开:前者稳定以保生态,后者自由以保创新。这一「稳定内核+可扩展外围」的结构,与网页字节码、与开放表格式的治理设计完全同型。
三、推测执行漏洞Speculative Execution Vulnerabilities
现代处理器为掩盖内存延迟而推测执行——先猜后验,猜错则回滚。回滚会撤销寄存器与内存的可见效果,但不会撤销它在缓存与其他微架构状态上留下的痕迹。攻击者可以通过测量访问时间读出这些痕迹,从而跨越进程、虚拟机甚至特权级的隔离读取数据。
这一发现的震撼在于它攻击的是整个行业二十年的优化路线本身,而非某个实现缺陷。缓解措施——刷新分支预测器、隔离页表、插入屏障——普遍带来可测的性能损失,等于把此前的部分性能收益退回。
此后十年,同类攻击不断被发现:分支预测、存储转发、预取器、乱序执行的多个环节都被证明可作为侧信道。这促成了一个新的学科界面——微架构安全,其研究方式是把硬件的性能优化逐项当作潜在泄漏源审查。
更深的教训是设计原则的更新:性能优化只要产生了可观测的时间差异,就可能成为信道。这条原则此后被写进密码学实现规范(常数时间代码)、被写进处理器设计准则,并在机密计算方案中反复出现。
值得记的是它对学科心理的影响:此前微架构被视为纯性能工程,此后每一项优化都要回答「它会不会泄漏」。一个领域被迫把安全纳入其基本设计准则,这在计算机科学中只发生过几次——网络、浏览器、如今是处理器。
四、机密计算与可信执行Confidential Computing and Trusted Execution
加密解决了数据在存储与传输中的保护,而处理时必须解密。可信执行环境的想法是由处理器提供一块受硬件保护的区域,其内存对操作系统与管理程序都不可见,并可通过远程证明向外部证明「运行的确实是这段代码」。
早期的进程级飞地在实践中受挫:内存容量受限、编程模型侵入性强,且多次被侧信道攻破。这十年的转向是虚拟机级机密计算——保护整台虚拟机而非单个进程,兼容性大幅提高,成为主流云厂商的产品形态。
根本的限制没有消失:它把信任从云运营方转移到了处理器厂商与其固件,而后者同样不可审计。远程证明的信任链最终锚定在厂商的签名密钥上。这使它适合防御「运营方的好奇」,不适合防御拥有硬件访问权的攻击者。
它的实际推动力主要来自监管与商业:多方数据协作、跨境合规与「数据不出域」的要求,使它成为一种可写进合同的技术保证。其价值更多在于责任分配的清晰,而不在于绝对的安全。
它还改变了云合同的写法:远程证明使「你运行的确实是我审计过的代码」成为可验证的条款而非承诺。技术保证一旦可核验,就会迅速被写进商业合同——这与遥感之于排放核算是同一模式。
五、内核可编程性Kernel Programmability and eBPF
修改内核行为此前只有两条路:改内核源码(周期以年计)或加载内核模块(一个错误即宕机)。新机制提供第三条:用受限的字节码编写小程序,由内核内的验证器静态证明其会终止、不越界、不访问未授权内存,然后即时编译并挂载运行。
这把可观测性与网络处理彻底改变了:无需改动应用即可采集内核级的调用、延迟与丢包信息;网络包处理可以在协议栈最早的位置完成,性能接近内核旁路方案而保留内核的管理能力。安全策略与运行时防护也大量迁移到这一层。
技术上的关键是验证器:它决定了可写什么,其保守性长期是主要限制(循环、复杂数据结构受限)。这是一个把形式化验证部署到亿级设备上的实例——多数使用者甚至不知道自己在依赖一个定理证明器的近亲。
风险随能力增长而上升:验证器本身的缺陷等于内核提权漏洞,且此类缺陷已多次被发现。把安全性集中在一个验证器上,既是这一设计的优点,也是它的单点风险。
从这条线还能提炼一条系统设计的通则:与其允许任意扩展再靠审查,不如限制表达力并自动验证。代价是有些事做不了,收益是所有能做的事都安全——这与语言设计中类型系统的取舍完全一致。
六、轻量虚拟化Lightweight Virtualization
容器共享内核,隔离依赖内核的正确性,而内核攻击面巨大;传统虚拟机隔离强但启动以秒计、内存开销大。微虚拟机的做法是把设备模型裁剪到最小、只保留少数几个必需的虚拟设备,从而把启动时间压到百毫秒级、内存开销压到兆字节级,同时保留硬件级隔离。
它使无服务器计算在经济上成立:每个函数调用可以有自己的虚拟机,而密度与启动延迟仍可接受。安全边界与计费边界第一次可以对齐到函数粒度。
同一时期的另一条路线是语言级沙箱(见编程语言面板的字节码条):用语言的类型与内存模型提供隔离,启动时间可到微秒级,代价是安全性取决于运行时实现的正确性。两条路线的分工目前是:不信任程度高用微虚拟机,追求极致密度与冷启动用语言沙箱。
共同的未解问题是设备与加速器的直通:一旦需要访问显卡或高速网卡,隔离的复杂度与攻击面立刻回升。加速器的虚拟化与隔离是这十年末期最紧迫的系统问题之一,因为大模型负载全在这一侧。
它对成本结构的影响值得单列:冷启动时间直接决定无服务器的计费粒度与可用场景。一项工程指标(启动毫秒数)决定了一种商业模式是否成立,这类耦合在系统领域并不罕见但常被忽视。
七、内核中的内存安全语言Memory-Safe Languages in the Kernel
内核是内存安全漏洞最集中的地方之一,而驱动占其代码的大部分。把驱动用具备所有权检查的语言编写,可以在编译期消除该类缺陷,同时保持零运行时开销——这是内核唯一能接受的安全方案。
工程上的困难不在语言而在接口:内核的数据结构大量使用裸指针、引用计数与手工生命周期约定,而这些约定必须被翻译成类型系统可检查的形式。这项翻译工作本身就是对内核既有约定的一次形式化,其副产品是发现了若干长期未被察觉的约定不一致。
社群层面的阻力被公开讨论:双语言维护成本、审查者的技能分裂、以及接口变更时需要同步修改两侧的绑定。这些都是真实的组织成本,而非技术反对。
从更大的图景看,它与内存安全政策化是同一条线的两端:政策要求关键组件迁移,而内核是最关键也最难迁移的组件。它的进展速度因此是整个迁移议程的现实指标。
更一般地说,这件事是「制度先于技术」的一个反例:技术方案早已就绪,推进速度取决于社群的接纳与维护成本的分摊。开源项目的治理结构,在这里比编译器的能力更能决定结果。
八、静默数据损坏Silent Data Corruption at Scale
硬件被默认为要么正确要么明确报错。两份来自超大规模数据中心的报告打破了这一假设:在数以万计的处理器中,存在少量核心会间歇性地给出错误计算结果而不触发任何错误检测,其表现依赖温度、频率与具体指令,且随器件老化出现。
后果是隐蔽而严重的:错误结果会沉默地写入存储、传播到下游、污染数据与模型。发现它们的过程往往是从数据不一致反向排查数月才定位到某一台机器的某一个核心。
由此产生的工程实践是常态化筛查:定期运行专门的检测负载、在生产中做结果比对、把可疑核心隔离。「硬件可信」这一软件工程的隐含前提,在超大规模下被迫显式化。
它对可靠性理论的含义是分类的更新:除了传统的硬故障与可检错误之外,需要为「无声的错误」单独建模——因为它无法被重试解决,且冗余计算是唯一可靠的检测手段,而冗余成本高昂。
它还对机器学习训练提出了一个少被讨论的问题:大规模训练依赖数万块加速器长期运行,一次静默错误可能污染整个检查点。已有的应对是周期性校验与结果比对,而其开销与检测覆盖率之间的取舍尚无公认标准。
九、存储栈的重写Rewriting the Storage Stack
机械硬盘时代的存储栈为毫秒级延迟设计,其中的队列、中断与上下文切换开销可以忽略。固态设备把延迟降到微秒级后,软件路径的开销开始超过设备本身,整套栈必须重写:更少的拷贝、更少的中断、更少的系统调用。
两条路径同时推进:内核旁路——用户态直接驱动设备,性能最好但失去内核的共享与保护;接口重构——新的异步提交/完成环接口使一次系统调用可以提交大量操作,把开销摊薄到接近旁路水平而保留内核管理。后者在这十年成为主流。
同期的另一件事是持久内存产品线的兴起与退场:一种介于内存与存储之间的器件曾引发大量研究(持久数据结构、崩溃一致性、编程模型),随后因商业原因停产。大量研究成果因此失去载体,是这十年系统研究中最值得记的一次「押错硬件」。
留下的遗产并未浪费:崩溃一致性与持久数据结构的方法被移植到解耦内存与新一代非易失介质上。研究押注具体器件有风险,而押注抽象层的性质通常安全。
从研究策略看,这条线给出的教训是:押注具体器件有风险,押注抽象层的性质通常安全。崩溃一致性、持久数据结构这些概念在其原定载体停产后仍然存活,因为它们刻画的是性质而不是产品。
十、内存墙与近数据计算The Memory Wall and Near-Data Computing
算力的增长长期快于内存带宽的增长,两者的差距逐年扩大。对于以矩阵乘为主的负载,访存的能耗常常比算术本身高一个数量级,因而系统的实际瓶颈是把数据搬到计算单元旁边。
回应分为几条:把内存堆叠到计算芯片旁(高带宽内存)、把简单计算下沉到内存或存储内部(近数据处理)、以及在算法层减少数据移动(分块、算子融合、量化)。其中最有效的往往是最后一条——用算法减少搬运,而不是用硬件加快搬运。
对模型推理的具体表现是:生成阶段受限于权重读取带宽而非算力,因而批处理、缓存复用与量化成为主要优化手段。「这是一个访存密集而非计算密集的负载」这一认识,重塑了推理系统的全部设计。
长期方向仍不明朗:近数据计算的编程模型复杂、通用性差;而存内计算的模拟方案精度受限。内存墙是本领域唯一一个四十年来持续恶化且没有根本解法的问题。
值得强调的是它对算法研究的反向要求:渐进复杂度相同的两个算法,其数据移动量可以相差数量级,而后者才决定实际能耗与速度。以数据移动为代价模型的算法分析,是这条线对算法理论提出的具体课题。
十一、数据中心作为一台计算机The Datacenter as a Computer
当计算资源以仓库规模部署,性能与成本由集群调度而非单机效率决定。这条线的核心问题是提高利用率而不损害延迟敏感服务:把批处理负载与在线服务混合部署,用隔离机制防止前者干扰后者。
关键的发现是干扰来自共享的微架构资源——缓存、内存带宽、互连——而非仅仅是处理器时间。因而硬件必须提供可分配、可监控的资源隔离机制(缓存划分、带宽限额),这直接影响了处理器的设计。
第二个持续主题是尾延迟:大规模服务的一次请求会扇出到数百台机器,因而整体延迟由最慢的那台决定。「尾延迟即整体延迟」这一认识改变了系统设计的目标函数——从优化平均值转向压制分布的尾部,手段包括对冲请求、微分区与自适应超时。
能耗与碳成为这十年新增的一等指标:从功率上限、冷却与选址,到按碳强度调度可延迟负载。「在电网清洁的时段跑批处理」已从研究提案变成生产实践。
尾延迟这一概念的普适性值得记:凡是「结果取决于最慢的那一个」的系统,平均值都是误导性的指标。同样的结构出现在供应链、医疗流程与分布式训练中,而多数领域仍以均值作为主要绩效指标。
十二、加速器的虚拟化与调度Virtualizing and Scheduling Accelerators
通用处理器的分时共享、内存保护与优先级机制成熟且被操作系统统一管理。加速器则不然:其驱动是厂商专有的、调度多为先来先服务、隔离手段有限,导致一个任务可以独占设备并干扰其他任务。在加速器成为最贵资源之后,这一缺口的代价直接可见。
已有的机制包括硬件分区与时间片共享,但粒度粗且切换代价高;软件层的做法是把多个模型的执行合并调度、按显存与算力双维度装箱。本质上是在重做操作系统四十年前解决过的问题,只是对象换成了加速器。
更困难的是内存:加速器显存容量有限且不可超额分配,因而调度必须同时满足容量约束,任何一次超限都会直接失败而非降速。「没有交换空间的资源」在调度理论中是最难处理的一类。
当前的方向是把加速器纳入统一的资源抽象——按需分配、可抢占、可迁移,并支持跨机池化。这将是下一代数据中心操作系统的核心内容,而其成败取决于硬件是否提供必要的抢占与状态保存能力。
它还引出一个采购层面的现实:加速器的稀缺使其调度权成为组织内部的权力问题。「谁能用多少卡」在许多机构中已不是技术决策而是治理决策,而缺乏公平共享机制会直接转化为组织矛盾。
十三、为推理而生的系统层Systems for Model Serving
模型推理的资源占用由一个不断增长的中间状态主导,其大小随生成长度变化且事先未知。早期实现为每个请求预留最大长度的显存,浪费极大。这十年的关键设计是把这一状态按块管理并允许非连续存放——本质上是把虚拟内存的分页思想搬到了加速器显存上,使显存利用率与并发数大幅提高。
随之而来的一整套机制都与操作系统同构:连续批处理(请求随时加入与退出正在执行的批)对应分时调度;前缀缓存复用对应写时复制;状态在显存与主机内存之间的换出对应交换。这是一次相当纯粹的抽象移植。
第二类问题是服务质量:首个词元延迟与后续吞吐是两个互相冲突的目标,而不同应用对两者的偏好不同。系统因而需要提供可选的服务级别,而不是单一的最优点。
第三类是分布式:模型跨设备切分后,通信模式与拓扑成为性能决定因素,调度必须同时考虑计算、显存与互连。推理系统正在成为体系结构、操作系统与编译器三者交界处最活跃的地带。
从学科史看,这条线是一次罕见的快速抽象移植:虚拟内存的思想用了不到两年就被搬到显存管理上,并立刻产生数倍的效率提升。这说明经典系统抽象的价值不在其具体实现,而在其解决的问题结构具有普遍性。
十四、微内核与可验证系统Microkernels and Verified Systems
证明一个真实内核的正确性曾被认为不可行。首个完成此事的微内核证明了其机器码实现满足抽象规范,并进一步证明了隔离性质。此后其代码被部署到航空、汽车与安全设备中,成为形式验证最有说服力的工业案例。
关键的设计选择是规模:微内核只有约一万行代码,把驱动与文件系统放到用户态。可验证性因此是架构选择的结果,而不是验证技术的胜利——如果内核有千万行,任何验证技术都无能为力。
由此形成的一般原则是「最小可信计算基」:把必须被信任的部分压到最小并加以验证,其余部分即使出错也不能突破隔离。这一原则在机密计算、语言沙箱与浏览器架构中被反复采用。
剩余的差距是性能与生态:微内核的进程间通信开销、以及缺乏庞大的驱动生态,使其难以进入通用计算。它的定位因而是高保障嵌入式与虚拟化底座,而非取代通用内核。
它还给出了一个可推广的判据:可验证性主要由规模决定,而规模是架构选择的结果。任何声称要「验证整个系统」的计划,第一步应当是把必须验证的部分缩小到可验证的量级,而不是提高验证技术的产能。
十五、并发与一致性的硬件基础Hardware Memory Models and Concurrency
多核处理器为性能而重排内存操作,其规则此前只有自然语言描述,含糊之处导致编译器与操作系统开发者依赖经验与实测。这十年的工作把主要指令集的内存模型写成形式规范,并配套可执行的测试生成器,用以检验真实硬件是否符合其自身文档。
检验的结果本身有价值:发现了若干处理器实现与文档不符之处,以及文档中的多处含糊。厂商据此修订文档与实现——这是形式方法直接改变工业规范的少数案例之一。
与语言内存模型的对接是另一半工作:编译器必须保证语言级的并发语义在目标硬件模型上被正确实现,而这一映射的正确性可以被形式化验证。「从语言语义到指令的完整链条」由此第一次闭合。
长期意义在于可移植性:随着架构多样化,同一份并发代码要在内存模型强弱不同的处理器上正确运行。没有形式模型,跨架构的并发正确性只能靠测试碰运气——而并发缺陷恰恰是测试最难发现的一类。
这条线的一个副产品值得记:形式化过程中发现的文档含糊之处,往往是长期存在却无人察觉的。写下精确规范这一动作本身就会发现问题,即使证明还没开始——这是形式方法最便宜的一部分收益。
十六、功耗、暗硅与热设计Power, Dark Silicon and Thermal Design
当电压缩放停止而晶体管密度继续增长,单位面积的功率密度随之上升,散热成为硬约束。结果是芯片上相当比例的晶体管在任一时刻必须处于关闭状态——「暗硅」由此成为设计的前提而非缺陷。
这一约束直接推动了专用化:既然不能同时点亮全部电路,不如放置多种专用单元,按负载点亮其中之一。专用加速器的兴起在物理上正是暗硅的产物,而非仅仅出于性能追求。
配套的技术是精细的功耗管理:按核、按域的动态电压频率调节、任务感知的功率上限、以及热感知的调度。这些机制使得处理器的实际性能高度依赖工作负载与散热条件——「同一颗芯片在不同机箱里是不同的芯片」成为常态。
数据中心层面的延伸是电力与冷却的协同:机架密度受限于供电与散热而非空间,液冷在这十年从特例变成大规模部署的选项。体系结构的边界因此扩展到了建筑与电力工程。
它对性能测量的含义是根本性的:同一颗芯片的性能取决于散热、供电与邻近核心的活动,因而任何跑分都必须附带环境说明。缺少这一说明的性能比较,在暗硅时代已不具备可比性。
十七、可组合的基础设施Composable and Disaggregated Infrastructure
固定配置的服务器必然在某一维度上浪费。解耦的设想是把处理器、内存、存储与加速器各自池化,通过高速互连按需组合。存储解耦早已实现,内存解耦在这十年取得实质进展(见数据库面板),加速器池化正在起步。
使能条件是互连的延迟与带宽:只有当远程访问的代价接近本地时,解耦才不损害性能。新一代缓存一致互连把内存的远程访问代价压到可接受范围,是这一路线得以推进的技术前提。
系统软件的挑战是抽象:操作系统假设内存是本地且延迟一致的,而解耦内存是分层且延迟不一致的。需要新的内存管理策略——按访问频度分层放置、透明迁移热页,这与几十年前的非一致内存访问优化同源但尺度更大。
代价是故障域的放大与安全边界的模糊:共享资源池意味着一次故障或一次攻击可能影响多个租户。解耦提高利用率的同时,把隔离从「机箱边界」这一物理事实,变成了必须由软硬件主动维持的性质。
从利用率的角度看,解耦的收益上限由资源需求的相关性决定:若所有租户在同一时刻都需要更多内存,池化就无法带来节省。因而池化的实际价值取决于负载的统计独立性,这一点在容量规划中经常被高估。
十八、形式化与实测并重的可靠性Reliability: Formal and Empirical
磁盘、内存与固态存储的失效率长期依赖厂商标称。这十年多份基于数十万台设备的现场数据把真实分布公开:失效率与标称值差异显著、批次与型号的差异大于平均值本身、且失效并非独立发生。后一点对冗余设计尤其关键——相关失效会使副本同时损坏。
内存错误的测量同样修正了旧假设:可纠正错误的发生率远高于预期,且是不可纠正错误的强预测指标,因而监控可纠正错误并提前更换,比事后处理更划算。这一做法已成为大规模运维的标准。
形式化一侧的进展是把关键组件(内核、协议、编译器)验证到可证明的程度,从而把可靠性问题从「概率」推向「确定」。两条路线的分工是:可被验证的部分证明它,不可验证的部分测量它。
尚未很好处理的是老化与依赖:设备的失效率随时间变化,而系统的可靠性模型多假设恒定失效率。把静默数据损坏、老化与相关失效一并纳入的可靠性模型,仍是开放问题。
值得单列的是这条线的方法论意义:它把可靠性从厂商标称的参数,变成了运营者可以自己测量的分布。掌握真实失效分布的组织因而能做出更好的冗余与更换决策,这构成了超大规模运营商的一项实际优势。
十九、开源硬件与设计自动化Open Hardware and Design Automation
芯片设计长期被昂贵的商业电子设计自动化工具与流片成本封闭。这十年出现的开源工具链与多项目晶圆共享计划,使小团队与学术机构可以以数量级更低的成本完成从设计到流片的全流程。「学生能流片」这件事本身改变了体系结构教育与研究的形态。
与之配套的是高层次综合与硬件描述语言的更新:用更接近软件的语言描述硬件、由工具生成寄存器传输级实现,从而缩短设计迭代周期。敏捷硬件设计的主张即由此而来——用软件工程的迭代方式做硬件。
限制是先进工艺不开放:开源流程主要覆盖成熟节点,而先进节点的设计规则与器件模型仍是严格保密的商业资产。开放化在低端有效,在前沿无效,这一分层短期内不会改变。
更一般的意义是把硬件纳入可复现研究:论文附带可综合的设计与可重跑的评测流程,使体系结构研究的结论第一次可以被独立验证。这是本领域方法学上最实质的一次改进。
它对研究生态的影响可能比对产业更大:当流片成本从百万级降到万元级,硬件研究的实验周期从数年缩短到数月,而实验周期的长度历来是决定一个领域进展速度的首要因素。
二十、系统研究的评价危机Evaluating Systems Research
系统研究以实测性能为主要证据,而实测受硬件、负载、调优与基线选择的巨大影响。多项元研究指出:与未调优的基线比较、只报告有利负载、忽略尾延迟与成本,是普遍存在的模式;重做他人实验时结论常常不成立。
制度性的回应包括产物评审与可复现性徽章、要求公开代码与配置、鼓励报告负面结果与失败的复现尝试。这些措施在这十年被主要会议采纳,效果可测——提交产物的论文比例显著上升,且其结论的复现率更高。
更深的问题是硬件可及性:前沿系统研究需要大规模集群与最新加速器,而这些集中在少数机构与企业手中。学术界与工业界的能力差距使得某些方向的论文只能由企业发表,从而丧失独立验证。
本领域给出的部分解法是共享测试床与开放数据集:公共实验平台使外部研究者可以在相同硬件上复现。与天文台、粒子加速器的共享模式相同——当实验设备昂贵到个体无法拥有时,共享设施是唯一可行的科学组织方式。
最后一点值得记入学科反思:当验证一项结论所需的设备只有被评价方拥有时,同行评议就失去了它的核心功能。共享测试床是目前唯一被证明有效的补救,而它需要持续的公共资助——这与天文台、加速器面临的是同一个筹资问题。
二十条排在一起,这门学科二十年的第一条主线是约束的转移:从主频到功耗(暗硅)、从算力到带宽(内存墙)、从单机到集群(数据中心即计算机)、从容量到互连(资源解耦)。每一次约束转移,都会使上一轮的最优设计变成次优,并推动一次架构重写。判断一个系统设计是否过时,最快的方法是看它假设的瓶颈还在不在。
第二条主线是隔离的破产与重建。推测执行漏洞证明了硬件的性能优化会泄漏秘密,此后十年,「谁与谁之间应当有一堵墙」被反复重划——微虚拟机、语言沙箱、机密计算、验证过的微内核、内核里的安全语言,每一样都是同一问题的不同答案。它们共享一条原则:把必须被信任的部分压到最小,并对这一小部分施加最强的保证。这条原则是本面板中最具普适性的一条设计经验。
第三条主线是这门学科正在把自己四十年前解决过的问题重做一遍,对象换成了加速器。分页、分时、抢占、交换、服务质量、公平调度——推理服务系统里出现的每一个机制,在通用处理器的操作系统里都有精确的对应物。这既是好消息(抽象是可移植的),也是提醒:加速器目前缺的不是算力,而是四十年积累的共享与隔离机制。谁先把这套机制做进硬件与系统层,谁就决定了下一代数据中心的形状。