C 插件系统实战指南:dlopen 没告诉你的四件事

Posted on 一 07 9月 2026 in Tech • Tagged with tech, C, dlopen, plugin, so, abi, dynamic-linking, best-practice

dlopen 只有四个函数,半小时能学完。难的是它没管的四件事——入口点怎么找、插件怎么回调宿主、ABI 怎么不崩、卸载怎么办。这篇把这四个问题的传统答案讲清楚,给一份可编译运行的完整参考实现(357 行),再用 10 个实测的崩溃现场说明常见错误。含 Linux/macOS 差异对照和一份可勾选的 checklist。


Continue reading

C 语言的动态加载、依赖注入与服务注册:把 FreeSWITCH 的模块机制拆到底

Posted on 一 07 9月 2026 in Tech • Tagged with tech, C, freeswitch, dlopen, plugin, dependency-injection, service-registry, abi

C 没有反射,凭什么能用字符串 "answer" 找到一个函数?把 FreeSWITCH 的模块系统从 dlopen 拆到函数指针派发,四层结构讲透:动态加载、依赖注入、服务注册、运行时查找。所有结论都在 FreeSWITCH 1.11.3-dev 上实测过,包括亲手写一个 50 行模块热加载进跑着的进程,以及三个实测出来的坑。


Continue reading

deepseek-harness 有什么不一样:一个"没有核心"的 Agent 框架

Posted on 日 23 8月 2026 in AI • Tagged with journal, AI, agent, architecture, plugin

DeepSeek 开源了自己的 agent harness(dsh),主打一句话——"一切皆插件"。它跟别家的 agent 框架不一样的地方不在功能多寡,而在架构范式:模型、工具、技能、会话、沙箱、存储、循环、调度、界面全是插件,连"主循环"本身都能被换掉,没有一个特权核心可以打补丁。本文从一个老程序员被"特权核心"坑过的角度,讲清楚这件事为什么值得关注,以及它的代价在哪。


Continue reading