Skip to main content
Glama
ryancnelson

I'm an Old Sun Box — MCP

by ryancnelson

我是一台老 Sun 盒子 — MCP

Solaris 跑在 SPARC 上,SPARC 又跑在 QEMU 里,QEMU 又跑在另一台 Mac 里,接进了一个 AI,它运行了 uname,朝 2002 年的深渊短暂一瞥,然后说:

“嗯。真怪。算了,我有 Bash。开干。”

这是一个为虚拟 Sun Niagara 实验室量身定制的 MCP 控制平面。

规范说明开始读。工作按照权威 TODO 清单来组织,加入与贡献指南解释了一个想法如何变成一个范围明确的分支、一项经过测试的改动,以及一个干净收尾的工作单元。项目博客按时间顺序记录这段不正经的故事,而不至于把规范性文档变成周五晚上的胡言乱语。

重点不在于给智能体一个规规矩矩的小远程 shell,然后假装一台古老的 Solaris 客户机就是普通的云 VM。重点在于让智能体住进机器里,同时赋予它那种硬件和内核黑客梦寐以求的、近乎不可能的 X 光透视能力:

  • Solaris/illumos SPARC 客户机内部的 shell;

  • 客户机原生 DTrace:探针、聚合、syscall/provider 证据,以及操作系统用自己的母语解释自己;

  • 带外串口与维护通道;

  • QEMU monitor 与机器状态访问;

  • 一个懂 SPARC 的 GDB,直接盯着被模拟的 CPU;

  • 宿主机侧的 eBPF、perf、syscall、调度器与 I/O 证据;

  • VM 磁盘、快照、日志、固件与运行清单;以及

  • 一份把事实与感觉分开的证据台账。

客户机网络恰恰是正在被调试的对象之一。因此,它绝不是调试它的前提条件

这是用来做什么的

回报是一个紧凑的修复回路,专门对付那些跨越历史与虚拟化边界的故障。假设 Solaris 的 ifconfig 碰上一个莫名其妙的 ioctl 就吐了。这个 bug 可能存在于用户态假设、illumos 网络协议栈、Ryan 模拟的 Solaris 设备驱动、QEMU 的 sun4v/设备模型,或者连接这一切的实验室配置里。

这个 MCP 就是用来拒绝猜测的装置。复现症状,陈述相互竞争、分属各层的假设,用客户机 DTrace 观察这个 ioctl,检查内核/驱动状态,把它与 QEMU 和宿主机 trace 关联起来,给最可能负责的那一层打补丁,有意识地重建、重启或重载,然后再跑一遍同一个判别性测试。这个跨层迭代的回路,就是产品本身。

-smp 2 仍然得到一个单 CPU 的 Solaris 系统时,也是如此。我们可以去比较 QEMU 的 vCPU 清单、OpenBoot 与 sun4v 机器描述数据、Solaris 的 CPU 发现/挂接证据、调试器可见的 CPU 状态,以及宿主机线程,而不是把“别人都把 SMP 跑通了”当作可操作的诊断。

世界观

客户机是首要主体:

Solaris processes and kernel
        ↕
SPARC CPU, memory, traps, and devices
        ↕
QEMU monitor, console, and GDB stub
        ↕
VM host tracing, networking, and storage

智能体从最靠近症状的层次开始,每当判别性测试需要时便跨层移动。每一条事实都会说明自己来自哪里。客户机的观测不是 QEMU 的观测;QEMU 的观测不是宿主机的观测;一条热得发烫的宿主机线程,也不能证明 Solaris 正在取得进展。

这与其说是“SSH 进一台服务器”,不如说是“与虚拟化的裸 SPARC 硬件进行心灵融合”。

方法

本项目遵循 Ryan 的 Gilfoyle 假设法:

  1. 摆出相互竞争、可证伪的假设。

  2. 预测每个假设分别认为我们应当观察到什么。

  3. 运行能区分它们的最便宜的测试。

  4. 立即记录证据,包括它的层次与出处。

  5. 杀掉坏假设,不掺一丝感情。

  6. 只有在变更前的证据稳妥入袋之后,才动系统。

没有对着日志文件开降神会这种事。不会因为控制台抽动了一下就宣布胜利。不会把“我不知道”写成满满一页自信的粉丝同人。

家规

  • 带外优先。 串口 socket、QEMU monitor 和调试器访问,必须在客户机网络坏掉时依然存活。

  • 只允许精确目标。 当可能同时跑着好几个不可替代的实验时,不许搞 pgrep qemu | head -1 那种牛仔烂活。

  • 每次变更都要坦白。 monitor 控制、信号、调试器写入、带有已知副作用的寄存器读取,以及磁盘操作,都要标记为状态变更。

  • 调试器要分离。 一个悄悄让所有 vCPU 停住的聪明诊断,并不聪明。

  • 一个写入者,就是一个写入者。 当三个过期的桥接进程在共享通道上互相争夺时,通道并不会因此变得更可靠。

  • 永远不要对 QEMU 的控制终端按 Ctrl-C。 我们已经为这一课交过学费了。

  • 犯罪之前先拍快照。 可复现的犯罪才是科学。

  • 证据胜过自信。 尤其是当自信穿着一件 Sun Microsystems T 恤的时候。

这个 MCP 应该暴露什么

计划中的工具族都明确声明了自己所操作的层次:

lab.*          run discovery, intent, health, and manifests
guest.*        bounded guest commands, console evidence, and DTrace
qemu.*         HMP/QMP queries and deliberate machine control
debugger.*     SPARC register, instruction, memory, and backtrace capture
host.trace.*   bounded eBPF/perf/process investigations
evidence.*     append-only observations and artifact references
hypothesis.*   predictions, discriminating tests, and falsification

原始的专家级访问是一项特性,不是什么丢人的事。面对危险的力量,正确的答案是精确瞄准、有界执行、可见的效果和可恢复的实验——而不是把每件工具都打磨到只会输出 hello world

客户机里的 DTrace 和 QEMU 外面的 eBPF/perf 是互补的 X 光视角。任何一方都不会被拔高成来自另一层的证据:DTrace 探针描述的是 Solaris;宿主机探针描述的是模拟器进程。当它们跨越虚拟化边界相互印证时,那就来劲了。

状态

可移植的 0.1 核心已经实现。 严格配置、经过校验的运行身份、guest/HMP/host 适配器、不可变的证据与假设历史、调试器清理编排,以及 MCP stdio 服务器,都由一套测试套件覆盖,而它不需要真实的 VM、root 或网络。CI 在 macOS 和 Linux 上运行它。

实机 SPARC GDB 配置、客户机 DTrace 配方、宿主机 eBPF/perf 配方,以及项目的语义分类器 argv 配置,都明确保持“未经验证”的状态,而没有被当作魔法来宣传。控制平面的设计是从一个可用的 QEMU sun4v 实验室中提炼出来的,它已经拥有客户机通道、持久化存储、语义 VM 分类、实机 GDB-stub 调试和宿主机侧性能证据。

这台盒子很老。调试装备可不老。

这玩意儿有多 vibe-coded?

相当高!

**我有意拥抱这种 AI 垃圾文风,而不是装模作样地充诗人。准备好迎接大剂量的、破折号拉满的“金句”,比如“精神是抓住了,但没有人——包括未来的 Ryan——能迅速说清这个软件承诺了什么、下一步该做什么。”。**

这里没有任何幻想,以为 Ryan 是从 Bill Joy 的额头里全须全尾地蹦出来、一出生就精通 sun4v 内部机制的。这个项目是靠好奇心、实验、AI 协作、旧文档、新证据,以及偶尔冒出来的、极具生产力的坏点子,一步步建起来的。

这让纪律变得更加重要,而不是更不重要。SPEC 规定系统必须做什么。测试证明它实际做了什么。证据台账记录我们真正观察到了什么。贡献者工作流能让一个有前途的 hack 不至于悄悄变成一层考古堆积。

-
license - not tested
Not graded
quality - not tested
B
maintenance

Maintenance

Maintainers
Response time
Release cycle
Releases (12mo)
Commit activity

Resources

Unclaimed servers have limited discoverability.

Looking for Admin?

If you are the server author, to access and configure the admin panel.

Related MCP Connectors

  • Shared debugging memory for AI coding agents

  • Run, build, and validate firmware on virtual hardware from your AI agent. Hardware knowledge corpus.

  • Sovereign Agent OS — Persistent Memory, Governance & Compliance for AI Agents.

View all MCP Connectors

Latest Blog Posts

MCP directory API

We provide all the information about MCP servers via our MCP API.

curl -X GET 'https://glama.ai/api/mcp/v1/servers/ryancnelson/im-an-old-sun-box--mcp'

If you have feedback or need assistance with the MCP directory API, please join our Discord server