一睹为快:体验ICM操作系统的Demo
先来看一个示例。我创建了一个名为 app.icm 的文件,其内容如下:

PRINT Hello from ICM formatPRINT 2+2=4
后缀名 .icm 并非任何已知编程语言的扩展名——它是我临时编造的。接着,我执行了下面这条命令:
run /data/app.icm
系统的输出结果是什么?
[] AI:检测到自定义 DSL,PRINT 语句映射为 Python print(),转换中...Hello from ICM format2+2=4
请注意,这里没有预置的解析器,也没有提前编写好的解释器。AI 自行读取文件内容、理解语义,并将其转换成 Python 代码后执行。
什么是ICM-OS?
这便是 ICM-OS(Intent-Centric Meta Operating System),一个以意图为中心的元操作系统研究原型。
核心理念可以浓缩为一句话:你说“把这段话翻译成日文”,系统就执行翻译;你说“运行这个文件”,系统就照做——无论文件是什么格式。你说“计算 hello 的 SHA256”,系统会实时生成一个 SHA256 原语并完成计算。
技术架构深度解析
需要强调的是,ICM-OS 是一个真实可启动的操作系统,并非 Docker 容器,也不是套了壳的 Python 脚本:
- 内核:Linux 6.1.82(最小化配置)
- 引导:GRUB2
- 网卡驱动:Intel e1000
- Init 进程:自研 C 程序(PID 1)
- Shell:自然语言驱动,替代了传统 bash
第一层:CDM(能力分解模型)
用户输入意图后,AMS(意图分解器)会调用 DeepSeek API,将意图拆解为一个有向无环图(DAG),然后按拓扑顺序依次执行。
举一个例子:
"抓取 https://example.com 并总结内容"→ DNS_RESOLVE→ TCP_CONNECT→ TLS_HANDSHAKE→ HTTP_GET→ HTML_PARSE→ NLP_SUMMARIZE
图中的每个节点都是一个实现了 invoke() 接口的 Python 类,前一个节点的输出作为下个节点的输入。图在执行前会依次经过类型检查、无环性验证和访问控制验证。
第二层:DynGen(动态原语生成)
如果能力注册表中没有合适的原语,系统便会执行以下流程:
- 让 DeepSeek 生成对应的 Python 类代码
- 通过
exec()动态加载到运行时 - 注册到 CPR(能力原语注册表)
- 缓存到
/data/primitives/目录
下次重启时自动从磁盘恢复,实现零 API 调用。
再看这个实例:
icm> calculate the SHA256 hash of "hello world"[DynGen] Generating primitive: SHA256_HASH[DynGen] Generated:import hashlibclass SHA256_HASHPrimitive(CapabilityPrimitive): ...[DynGen] Cached: /data/primitives/SHA256_HASH.pyResult: b94d27b9934d3e08...
第三层:SANDBOX_EXEC(任意格式文件执行)
这是“运行任何文件”功能的核心环节。
- 读取文件内容
- 如果是
.py/.sh,直接运行 - 如果是未知格式:让 AI 分析内容,判断语言/格式,必要时转换后再运行
前面那个 .icm 格式的文件就是这样被成功执行的。
真实运行效果展示
下面呈现一些真实的运行效果。首先展示真实的 DNS 解析和 HTTP 请求:
icm> fetch https://httpbin.org/ip[DNS_RESOLVE] ip='34.235.67.238'← 真实 DNS 解析[TCP_CONNECT] status=CONNECTED[TLS_HANDSHAKE] cert_valid=True[HTTP_GET]status_code=200Result: {"origin": "38.150.15.31"}← 真实公网出口 IP
接着看任意语言写文件——完全不需要任何额外配置:
中文把"你好世界"写入文件 /data/notes/test.txt→ 写入成功 ✓德文Schreibe "Hallo Welt" in die Datei /data/notes/german.txt→ 写入成功 ✓日文翻译把 你好 翻译成日文→ こんにちは ✓
AMS 会从意图中自动提取参数,无论用户使用哪种语言输入,DeepSeek 都会负责理解并执行。
再来看看网页抓取加 AI 总结的实例:
icm> 抓取 https://example.com 并总结内容[HTML_PARSE]title='Example Domain'[NLP_SUMMARIZE] 此域名仅用于文档示例,无需授权,请勿用于实际操作。
还可以读取真实内核数据:
icm> show current memory usageMemTotal: 1023272 kBMemFree: 841840 kB ← 来自 /proc/meminfo
动态原语缓存的演示:
# 第一次启动:AI 生成[DynGen] Generating primitive: UUID_GENERATE[DynGen] Cached: /data/primitives/UUID_GENERATE.pyResult: bc05d63e-718c-4ea6-804c-a1eeef3b83d1# 重启后:从缓存加载,零 API 消耗[DynGen] Loaded from cache: UUID_GENERATEResult: 5d604c9e-eafb-4ae1-beb4-6a7e36bd31d8
启动方式
qemu-system-x86_64 -kernel iso-build/work/iso/boot/vmlinuz -initrd iso-build/work/initrd.img -append "console=ttyS0,115200n8 rdinit=/init" -m 1024M -nographic -netdev user,id=net0 -device e1000,netdev=net0
启动时会自动完成以下步骤:
- 挂载 proc/sys/devtmpfs/tmpfs
- 从 initramfs 恢复缓存原语到
/data/primitives/ - 配置 eth0 网络(IP、网关、DNS)
- 启动 Python ICM shell
尚未完善的部分(坦诚分享)
当然,这个系统距离完美还有很大差距,目前存在以下几个关键不足:
- 动态生成代码无沙箱:通过
exec()执行 AI 生成的代码在生产环境显然不安全,这是当前最核心的安全隐患 - 渲染原语为 stub:CSS_LAYOUT、JS_EXECUTE、WINDOW_RENDER 等能力尚未实现
- 持久化磁盘问题:tmpfs 重启后数据清空,目前通过将缓存原语打包进 initramfs 来临时绕过
- GBT 验证器为 stub:ARM64→x86-64 翻译功能基本可用,但行为等价验证尚未完成
- Kconfig 的陷阱:Linux
make oldconfig会静默丢弃未满足依赖的配置项,CONFIG_E1000=y莫名消失的问题耗费了大量排查时间
为什么打造这个系统
我们来审视现有操作系统的交互模型:
用户意图 → 寻找软件 → 安装 → 学习 → 操作 → 结果
中间存在过多不必要的摩擦。ICM-OS 的目标是将整个链路直接压缩为:
用户意图 → 结果
这并非全新的构想,但我想构建一个真正能启动、能运行实际工作负载的原型,而非仅仅停留在 PPT 或 Demo 视频层面。
当前开发进度
| 里程碑 | 状态 | 内容 |
|---|---|---|
| M1 | ✅ | 可启动 ISO + CDM + 网络 |
| M2 | ✅ | 真实 DNS / HTTP / 翻译 |
| M3 | ✅ | 文件读写 / HTML 解析 / AI 总结 |
| M4 | ✅ | 动态原语生成,系统自我扩展 |
| M5 | ✅ | SANDBOX_EXEC,任意格式文件执行 |
| M6 | ? | 原语安全沙箱 + 依赖自动安装 |
快速上手体验
想亲手尝试?步骤非常简单:
git clone https://github.com/jinbohao1688/icm-os.gitcd icm-osecho "DEEPSEEK_API_KEY=your_key" > .envpip install -r requirements.txtpython3 cli.py# 开发模式,不需要编译内核
完整的 ISO 构建方法,请参见项目 README。
欢迎探讨架构设计、安全边界,或者指出这个方向存在的根本性问题。
技术栈:Python 3.10 / Linux 6.1.82 / DeepSeek API / networkx / BeautifulSoup / 自制 C init
