跳转至

核心设计原则

Operation 是处理对象,pvisor 拥有执行生命周期,Event 提供观察接口。

请求、有效决定、安装控制和运行观察保持不同权威

定义与执行分开

跨组件共享的操作、策略、Placement、结果及交互契约放在 core。准入、调度、进程启动、socket、资源准备和生命周期由 pvisor 与驱动实现。新增类型先找现有生产调用方,不为未来接口增加另一套执行器或控制协议。

请求、决定与事实分开

请求描述意图,策略决定描述有效约束,Placement 描述选定的执行位置,观察描述实际发生的情况。改写保存原始和有效快照,不能覆盖原始请求;计划与实际控制的证据边界见能力与证据。

保持已知因果依赖

后一步依赖前一步的结果,就必须等前一步完成;放置、转发和记录方式不能改变这个关系。因果引用表达已知依赖,Journal 位置表达提交顺序,时间戳表达观察时间。三者不能相互替代,更不能推导出跨 Job 全局副作用顺序。

一个生命周期所有者

一次 Attempt 的资源准备、执行、取消、清理和终态公布归 Session。驱动报告输出与观察,不自行公布整项工作的终态。取消是请求,完成是结果;记录失败和执行失败分别报告。

保证必须对应实际边界

文件和网络控制由实际拦截机制提供,保证应带着平台与覆盖范围;null 计数、捕获覆盖范围与强制力来源见能力与证据。

文件先审查再应用

启用暂存后,工作区修改保留在 Overlay 中,显式审查和 apply 再改变目标。失败执行也可能留下可审查的改动;各恢复范围与不能撤销的外部副作用见能力与证据。

记录服务于重建事实

公开记录应能说明操作请求、实际改写、放置、结果与来源。快照和因果链使事实可审查;确定性副作用重放还需要初始状态、外部输入和对应执行机制,Event 记录本身不足以支持。

具体机制见核心架构、Operation 与 Event和隔离设计。