G88 · 独立系统 API 出生时刻与双内存读取边界
1. 决策与基线
Owner授权同AI方案、实现、自复核,非第三方。主线基线 9b7dcdb,工作树干净,唯一已装Mac b126/手机参考76保持。G87真实当前74支持列含startAbsTime,28行恒定;tick起点加ns procAge候选28/28在包内,但未证出生原点和实际Gauge同读。64真实消息aux均为空,不能靠恢复不存在的辅助字段补时间。
本批仅实现自有Fixture的独立参考:系统 proc_pid_rusage(self, RUSAGE_INFO_V0)出生时刻与footprint,以及紧邻的 task_info(self, TASK_VM_INFO)原生读界。此非Perfowl采集源、不用于商店App、不注入产品;先E2控制、规模成本与iOS编译,不在本批安装/启动/结束手机App或采新数据。签名/保全覆盖和同代时间准入后续另批。第一metric/完整54与原五轮、准备/测窗、2MiB或5%误差门不变。
2. 原始字段、公式与边界先入档
新增编译条件 FIXTURE_KERNEL_MEMORY_REFERENCE,仅自有Fixture同时NONSTARTUP开启才存在。运行配置沿现有32KiB PerfowlAcceptanceConfig.json、schema perfowl.fixture-acceptance-config/1,仅JSON Boolean kernelMemoryReferenceEnabled=true启用;默认/false/字符串/数字/未知schema不启用。默认OFF不调用时钟/系统API、不创建新文件;构建开启时仅有界读取已有配置。旧TASK_VM_INFO/CPU/clock/surface/负载结构与公式原字节保持。
通过Darwin dlsym查询导出的C系统API,不用Swift内部ABI声明伪装C原型;符号仅首次ON读取时解析并缓存,nil严格记录missing。函数类型为C调用约定 (Int32 pid, Int32 flavor, UnsafeMutableRawPointer buffer) -> Int32,第三实参按系统头文件 rusage_info_t*所指的结构存储区传入。查询只用getpid/RUSAGE_INFO_V0;不能对其他进程使用。
实际SDK rusage_info_v0布局:96B、ri_phys_footprint offset72、ri_proc_start_abstime offset80、ri_proc_exit_abstime offset88(16B uuid加10项UInt64)。运行时严格核MemoryLayout大小/offset;未知布局不调用API,返回null。记录flavor0、布局字节/expected值、符号可用、返回Int32 status及errno(失败才非null),成功值仍保留原始UInt64字节/tick,不把失败写0。自进程exit必须0、start>0且start≤读取begin,否则拒准入但记录原始值与API状态。
两API独立顺序:rusageBegin→rusageCall→rusageEnd→taskBegin→TASK_VM_INFO→taskEnd。记录每个前/后mach_absolute_time,不以timer回调、包End或procAge替代。TASK返回count须覆盖phys_footprint字段,不足/错误为null。两个footprint值不是同一瞬间,动态不同不要求字节相等。
公式:rusageFootprintBytes = ri_phys_footprint;taskFootprintBytes = task_vm_info.phys_footprint;processStartTicks = ri_proc_start_abstime;观察时年龄范围 [readBeginTicks − processStartTicks, readEndTicks − processStartTicks] × numer/denom仅适用于该API读界自身,不自动等于Sysmontap procAge/footprint采样时刻。MiB=bytes/1048576;候选Sysmontap时点仍 startAbsTime × timebase + procAge,本批不将候选写入产品。API可用声明/导出符号与沙箱运行许可分开,当前iOS运行unknown。
独立新schema perfowl.fixture-kernel-memory/1;与旧来源UUID分开。50Hz/180s/最多9001点/8MiB/32KiB批写,完整初始/尾部/缺槽与错误保留。主文件flush/fsync/close和pending seal写/fsync/close/非覆盖link全部成功才有committed seal;封口仅证明所留字节闭合,不能代完整窗口/API成功或数值校准。资源/布局/API失败保留原件,不回写旧清单。
3. 测试与效率目标
先真实源码主机控制:默认OFF/strict Boolean与实际配置名;真实Mac两API准入;C调用闭包注入的nil符号、错误status、errno、未知布局、零/晚于读取的出生、非零exit、短TASK布局、读界逆序均拒;UInt64 exact JSON;同PID/timebase/出生不变与序列/名义槽/封口的独立消费者;main/receipt写、fsync、close、link失败不生成有效seal,short/EINTR仍有界;旧类byte-identity核对。消费者不允许未知schema/非finite/重复key/溢出/多余或缺行/错摘要/伪完整seal,不能在严检中删失败行。
O(N)流式消费/O(1)摘要;单行≤2048B、文件≤8MiB/9001点,串行1,主机执行≤30s/128MiB;编译≤90s/640MiB,回归≤180s/256MiB。按9001规模做五对old TASK-only vs 新Rusage+TASK读取/编码,交替顺序、保留全部结果;OFF旧路径不变,每次新双读预期≤1ms、9001读取≤5s,新相对成本门 new ≤ old×3 + 0.25s(额外系统调用,不声称必须快于旧单读),codec≤2s、文件≤8MiB,资源/吞吐/首响应/worst/CPU/RSS/IO物理峰unknown明示。超限即停、不原样自动重试。
iOS在已有derived-data/cache构建unsigned、明确全部原条件+新条件,先保存旧可重建产物指纹/实际旧包证据;不新环境、不签名或部署。旧手机76与Mac b126不动。新参考代码编译与Mac真实API成功是E2,非iPhone新API许可或独立精确Gauge时间。
4. 实现与交付闭环
范围仅自有Fixture源码新增默认OFF hook与独立类、匹配主机测试入口/用例、独立消费者/测试、README及文档联动;产品/SDK/原验收公式不修改。私有独占 g88-independent-kernel-memory-reference/先登记Git、全部旧源、G87交付封存、安装/v3;原失败与原件保全。
结果追加本页、serial总目标/ledger/handoff、知识页/总览/Home、时间线与未关门表;新增HTML/冻结正文后build≤300s/3GiB、零死链/归档dist byte match,不部署。窄提交、GitHub/GitLab各一次推送,GitLab失败不重试且不阻断软件工作,Webhook单次。下一签名/旧手机Documents保全与同ID覆盖方案再定,不默认自动新运行。原54/首项正式0/5/GUI/A1OPEN/HybridFROZEN/G9OFF/GPL/正式公证/电学温度缺仪器均保留,不以新参考替代最终产品交付。
Implementation / Validation Update · 2026-10-07 · 独立参考本地E2完成,手机运行待准入
同AI制定方案/执行/自复核,非第三方。G88自有参考新增默认关闭的自身proc_pid_rusage出生/footprint与紧邻TASK_VM_INFO读界;46实际源码主机控制、13新消费者、旧43控制及全部261工具回归通过,五对9001双API读成本和iOS unsigned编译通过。仅E2,尚未签名/部署或证明Gauge同读;唯一Mac b126与手机76保持,正式0/5、完整54未验收。
1. 实际修改与原方案对应
只改自有Fixture的默认OFF属性/初始化接线与单独的FixtureKernelMemoryReference类;增加实际Swift源码host入口/控制,以及kernel_memory_reference.py严格流式消费者与匹配测试。原dense-footprint host入口仅排除显式G88新增块以复核旧源码;移除两处新接线及追加块后,旧Fixture全部字节恢复一致,原TASK/CPU/时钟/Surface/阶跃负载没有重写。261项Mac产品/产品测试源码与6 SDK文件以基线摘要核对,未修改产品或SDK采集公式。
新参考单独schema/文件/50Hz180s,记录rusage成功状态、精确出生和footprint以及每个API的mach前后界;TASK紧随其后但并非同时读取。C ABI回调与96B结构/72、80、88 offsets经运行时校验;缺符号/错误布局/调用错误保留null与状态,默认关闭不调用系统API/时钟或创建新文件。运行配置沿原basename与strict Boolean,不另外发明配置路径。
消费者O(N)/O(1)单遍,2048B行/8MiB/9001点,严查封口SHA/字节/样本数/180s窗口或明确测试短窗、名义槽、出生绑定和每个API读界。观察摘要只证自身采样集,不据两个值偶然相等证明Gauge同源同瞬时,也不从自身9000点自动推产品120槽或原五轮通过。
2. 首次编译失败保留,修订来源明确
首次真实Swift host编译失败:默认实参中的covariant Self表达式不受Swift接受,私有类类型回调需私有声明。原输入/编译错误/外监督资源完整保存,不计为通过。修订将read()改成显式委托重载,并将C注入回调保持private;新独占host-controls-r1一次运行通过。没有操作手机、重复同码碰结果或覆盖失败输出。
编译器外监督为150s/768MiB,而内层真实compile仍90s/640MiB、execution30s/128MiB;不是把运行RSS门放宽为编译RSS门。iOS构建独立300s/2GiB,使用既有derived-data;前置保全旧缓存快照并核对构建后原快照未变。主机参考1s是明确短窗验证,不把它当180s真机数据。
3. 可复算的验证与成本
- 新实际源码46控制:默认OFF/strict配置/旧字节保真;Mac真实两API成功;C实际调用注入缺符号、布局失败、errno、无效出生/退出、TASK短结构/错误;精确UInt64与顺序;main与seal的write/fsync/close/link故障、short/EINTR。不合格的9组短窗/故障产物均被独立消费者拒绝。
- 新消费者13测试(含多组型别/时钟/绑定/封口变异),全部验收工具261测试;旧参考43控制与原配置红绿验证保持。
- Mac真实1s定时器:50点 / 37180B,同出生与无漏名义槽,最大双API括号115731ns,最大间隙21895156ns。是Mac自身参考E2,不是iPhone API沙箱许可或准确性。
- iOS arm64构建exit0,保留全部原编译条件并增加FIXTURE_KERNEL_MEMORY_REFERENCE;干净unsigned产物源pin/三文件摘要登记、旧已编译缓存快照保持。尚未stamp新版本、签名、安装或新launch。
五对交替9001读(秒):
| 对 | 原TASK-only | 新双API | 原声明old×3+0.25门 | 判定 |
|---|---|---|---|---|
| 1 | 0.023732990 | 0.026788973 | 0.321198970 | 通过 |
| 2 | 0.015619908 | 0.027824880 | 0.296859724 | 通过 |
| 3 | 0.016086435 | 0.027773414 | 0.298259305 | 通过 |
| 4 | 0.015571420 | 0.025731643 | 0.296714260 | 通过 |
| 5 | 0.015841641 | 0.027252486 | 0.297524923 | 通过 |
新增API有真实额外成本,不声称比原路径更快;全部也低于9001读5s门。最差抽样1000次双读取中的最大单次73.620002µs,在1ms门内。9001行codec 0.055615510s / 6075675B,在2s/8MiB门内。CPU/RSS包含编译器与工具范围分别记录,非手机App开销;采样树峰值仍可能遗漏瞬时峰,物理I/O峰unknown。
| 任务 | 外wall秒 | direct CPU秒 | direct峰RSS B | 采样树峰RSS B | 监督上限 |
|---|---|---|---|---|---|
| 新源码host外监督 | 7.682301 | 9.746675 | 174366720 | 205721600 | 150s / 805306368B |
| 消费者匹配 | 0.417285 | 0.306414 | 18784256 | 18681856 | 60s / 134217728B |
| 旧参考回归外监督 | 11.675571 | 15.026930 | 177258496 | 219836416 | 120s / 805306368B |
| 工具完整回归 | 6.042920 | 5.291286 | 49332224 | 57946112 | 180s / 268435456B |
| iOS unsigned构建 | 24.996969 | 4.239451 | 113287168 | 600219648 | 300s / 2147483648B |
4. 不改验收分母与历史判定
新系统出生原点与Sysmontap startAbsTime候选仍需同代手机独立比较;procAge纳秒与Gauge同读尚未证明。本批没有手机新数据、产品Session或正式轮。G85原源120/120、观察数值相容116/120、四失败槽与三空误差交集原样保留,不用G88回填旧Raw,不扩大2MiB或5%容差,不取nearest/插值/持值/删阶跃。完整54项仍全部未验收,第一物理内存正式0/5,电学/温度缺仪器仍登记而非排除。
5. 下一步G89:本地签名与包来源准入,再保全覆盖
先落G89方案:复用本批已源pin的干净unsigned产物,在单一私有包内stamp新版本、核可用原签名身份/配置与arm64、独立IPA解包/严格签名、code-sign-aware代码溯源;签名会改变Mach-O,不能用signed/unsigned整文件SHA相等假验收。随后另行有界保全手机Documents/config/marker,原生定向结束自己的测试App、核退出、同ID覆盖及旧件守恒,再准入新生命周期的API出生/独立读界。只需手机解锁/已有连接,不默认要求Owner手动退出;失败保留且不自动重试,不碰其他App。
当前唯一Mac b126与旧参考76保持,0新环境/worktree/网站发布/记忆写入。A1OPEN/HybridFROZEN/G9OFF、正式公证/GPL与电学温度缺参考门不变。E2工程完成不等于全目标完成。站点build、最终机械核对、各远端一次推送与单次通知以最后机读证据为准。