📄 一句话概括
皆插件说的是没有特权部件,不是没有内核——内核(Cordis)只管加载、卸载、依赖与作用域,不认识任何具体插件,也不给谁开后门。
📝 本节和前面几节的关系
3.7 把口号兑现成了证据,但留了个尾巴:内核呢?这一节回答它——口号的边界在哪。
一、内核管三件事
- 加载与卸载:按声明把插件挂上、摘下——挂到哪个作用域(3.2)也归它管。
- 依赖解析:谁依赖谁、先装谁、缺了谁报错——装配清单能成立全靠它。
- 作用域管理:决定一份能力活在宿主平面还是会话平面。
就这三件。再没有别的了——这个【少】是刻意的。
二、内核不做什么
它不认识任何具体插件:不知道 tool-fs 是读文件的、不知道 persona 是管人格的——它只认【这是一个插件,依赖已满足,可以挂】。
它不给官方插件开后门:官方插件与第三方插件走同一条加载路径(1.3 的老结论,这里补上机制原因)。
对照反例:很多所谓【插件系统】里,官方功能走特权通道——那不叫插件,叫可拆卸的零件。
三、两个类比
- 操作系统与应用:内核不认识你装的应用,只管进程、内存、文件系统这些公共设施。
- 浏览器与扩展:浏览器内核不认识你装的扩展,只管加载、权限、生命周期这些接口。
DSH 的 Cordis 站在同一个位置:小内核+大生态——内核越小越稳,生态才敢在它上面长。
四、内核小而稳,生态才敢长
算一笔账:monorepo 49 个包、一方插件 100+——内核只占少数几个包,绝大部分体积都是插件与配套。
内核接口若频繁变,插件全得跟着改——生态就没人敢投。所以 1.5 的【接口会变】警告才格外重要:预览期内核也在动,稳定是以后的事。
一句话收束:皆插件的前提,恰恰是一个无特权、守规矩、小而稳的内核。
五、动手 Demo:内核做什么,不做什么
三件职责,每件配一句【不碰什么】:
duties = [
("加载与卸载", "按声明把插件挂上、摘下", "不关心插件具体干什么"),
("依赖解析", "谁依赖谁,先装谁", "不给任何插件开后门"),
("作用域管理", "决定挂宿主还是挂会话平面", "不替会话做决定"),
]
for a, b, c in duties:
print(" %-6s | 管: %s" % (a, b))
print(" %-6s | 不碰: %s" % ("", c))
print()
print(" monorepo 49 包, 一方插件 100+; 内核只占少数几个包")
实跑输出:
--------------------------------------------------------------------
内核做什么,不做什么
--------------------------------------------------------------------
皆插件 ≠ 没内核。内核(Cordis)管的事,一张表说清:
内核管什么 具体做 不碰什么
-------------------------------------------------------------------
加载与卸载 按声明把插件挂上、摘下 不关心插件具体干什么
依赖解析 谁依赖谁,先装谁 不给任何插件开后门
作用域管理 决定挂宿主平面还是会话平面 不替会话做决定
-------------------------------------------------------------------
两个类比:操作系统内核不认识你装的应用;浏览器内核不认识你装的扩展。
DSH 的内核也不认识 tool-fs——它只认【这是一个插件,依赖已满足,可以挂】。
算一笔账:monorepo 一共 49 个包,一方插件 100+——
内核(加载/依赖/作用域) 少数几个包
其余 几乎全是插件与配套
官方插件 vs 第三方插件 走同一条加载路径,无特权
没有特权的内核,才配得上【皆插件】三个字;内核小而稳,生态才敢长。
【不认识任何具体插件】是判断真假插件系统的一把尺子——认识插件的内核,就给特权开了门。 两个类比的共同点:内核只管公共设施——应用与扩展的内容,内核一概不知。 【预览期内核也在动】呼应 1.5:学结构、别背接口,这条纪律在内核上同样适用。
30 秒实验
- 在 49 个包的仓库结构里找一找:哪几个包像内核?(提示:名字带 cordis 或 core)
- 举一个反例软件:它的【官方功能】有没有走特权通道?
- 用一句话给外行解释【小内核大生态】的好处。
常见误区
- 错误:皆插件=整个系统全是插件,没有内核。——纠正:必须有内核——只是它无特权、只管装卸与依赖。
- 错误:官方插件加载更快、权限更大。——纠正:走同一条加载路径,官方没有任何特权(1.3 的前提在这里兑现)。
- 错误:内核这么小,肯定功能不全。——纠正:小是设计目标——公共设施越少越稳,功能全在插件生态里。
自测三问(点开对答案)
1. 内核管哪三件事? —— **加载与卸载、依赖解析、作用域管理**——就这三件,再无其他。 2. 【官方插件无特权】靠什么机制保证? —— **同一条加载路径**:内核不认识任何具体插件,只认声明与依赖。 3. 为什么内核要小? —— **内核小而稳,接口才敢承诺稳定,插件生态才敢在它上面长**。- ☐ 下一节(3.9 本章小结)
相关笔记
- 为什么这不只是【多加几个 Tool】 —— 无特权是生态成立的前提
- 这是否意味着 DSH 会成为行业标准? —— 生态能不能长,取决于内核稳不稳
- 简单的虚拟化基础设施 —— 虚拟机管理器也是只管隔离与调度的小内核
- 🐳 DeepSeek Harness · 索引