docs: add final competition submission materials
BootSem 将启动证据采集、关键路径分析、桌面语义保护、候选资格解析、受控执行、重启复测和事务恢复连接为可追溯的系统实验流程。Windows 可作为 Go TUI/Chatbox 控制端,Linux/openKylin 作为被测端;这不表示 BootSem 已支持优化 Windows 启动。
首次使用建议先查看离线界面,再配置只读远程采集。真实 Apply、回滚和重启需要匹配的管理员部署、目标身份绑定、独立预检及人工确认。
Extreme 的 41 项是候选目录,不是每轮实际执行数量。Selected 只表示当前满足执行资格,不表示独立性能收益已经证明。组合实验评价方案整体差异,不能据此识别各服务独立因果贡献。
本文以已提供源码包的核对基线 1a1c23123ebbfd93595f68608589c046fbcdd6b6、开发分支 feat/issue-8-experimental-composite-loop 编写,不声明该提交是远端最新版本或正式初赛基线。
1a1c23123ebbfd93595f68608589c046fbcdd6b6
feat/issue-8-experimental-composite-loop
实际 checkout 可用以下命令确认:
git branch --show-current git rev-parse HEAD git status --short
主要源码位置:
detection/
analyzer/
optimizations/
scripts/
go-tui/
tests/
docs/
run.sh
以下命令按当前源码布局编写。若交付时将源码迁入 src/,需相应更新工作目录并验证,不能只移动文件后沿用旧命令。
src/
pyproject.toml
go-tui/go.mod
requirements.txt
go.mod
go.sum
go mod download
UKUI 是主要桌面验证对象。其他发行版的采集、机制分析、桌面协议和性能资格应分别评价;历史兼容记录不表示固定 Gateway 可直接部署到任意机器。
git clone --branch feat/issue-8-experimental-composite-loop https://github.com/Phoenix0531-sudo/BootSem.git cd BootSem git checkout 1a1c23123ebbfd93595f68608589c046fbcdd6b6
上述 checkout 用于复核本文基线。使用其他提交时,应重新核对产物、runtime 和部署绑定。ZIP 可用于阅读、测试及普通界面构建;Final 生产入口依赖真实 Git 提交信息与匹配构建,不能通过 git init 伪造来源。
git init
在项目根目录执行:
python3 -m venv .venv . .venv/bin/activate python -m pip install -r requirements.txt ./run.sh help
如果缺少 Python venv、systemd 工具或 OpenSSH,先按目标发行版安装对应系统软件包。不要在 Windows PowerShell 直接运行 Linux Bash 命令。
在项目根目录的 PowerShell 中执行:
go version git rev-parse HEAD Push-Location .\go-tui try { go mod download New-Item -ItemType Directory -Force .\dist | Out-Null go build -buildvcs=false -o .\dist\bootsem.exe .\cmd\bootsem if ($LASTEXITCODE -ne 0) { throw 'Go build failed' } } finally { Pop-Location }
这是普通 TUI 构建方法,不等于 Final 执行产物已通过 readiness。Final 对源码提交、EXE 和 runtime 有额外绑定;完整仓库、构建匹配与部署条件缺一不可。
cd go-tui go mod download make build # 可选:构建 Linux amd64 产物 make build-linux cd ..
产物位于 go-tui/dist/。也可查看 go-tui/Makefile 和 go-tui/README.md。
go-tui/dist/
go-tui/Makefile
go-tui/README.md
Windows,在项目根目录:
.\go-tui\dist\bootsem.exe --role controller --project-root . --results-dir .\tests\data\results
Linux,在项目根目录:
./go-tui/dist/bootsem --role local --project-root . --results-dir ./tests/data/results
默认 FORMAL 为内嵌历史快照,只读查看,不生成新的实验数据。可按 ? 查看当前版本快捷键。0 为 Chatbox,1–4 切换页面,S 切换 FORMAL/LIVE;输入框获得焦点时数字是输入内容。
?
0
1–4
S
合成夹具可用于界面检查,不能作为真实实验:
.\go-tui\dist\bootsem.exe --role controller --project-root . --results-dir .\tests\fixtures\tui-live-native
. .venv/bin/activate ./run.sh analyze ./run.sh report
结果通常写入 tests/data/results/,包括 analysis_result.json、报告和原始证据。采集成功不等于正式实验资格通过。该流程不执行优化;读取哪些日志取决于当前用户权限。
tests/data/results/
analysis_result.json
复制根目录 .env.example 为 .env,填写目标连接:
.env.example
.env
SSH_HOST=目标Linux地址 SSH_PORT=22 SSH_USER=目标用户名 SSH_KEY=C:/Users/你的用户名/.ssh/你的私钥文件
端口及路径按实际部署填写;不填写密码或私钥内容。环境变量优先于 .env,文件中的路径不会做 shell 展开。首次连接先通过 OpenSSH 核对目标公钥,程序不会自动信任未知主机密钥。
两端需匹配源码及 Python 环境。以下为参数模板,三个远端路径必须替换;--remote-results 是具体批次目录,不是结果父目录:
--remote-results
.\go-tui\dist\bootsem.exe ` --role controller ` --project-root . ` --results-dir .\tests\data\results ` --remote-project '/home/USER/BootSem' ` --remote-python '/home/USER/BootSem/.venv/bin/python' ` --remote-results '/home/USER/BootSem-results/本次批次' ` --remote-env openkylin ` --check-connection
C
G
K
LIVE RESULTS
LIVE 是导入的现场结果,可能来自先前启动。需要新一轮启动数据时必须真正重启并核验 boot ID,不能重复导入旧结果冒充新样本。
仅适用于已完成匹配管理员部署的目标。启动需显式启用 --enable-final-gateway,并提供可信的 --final-gateway-manifest-sha256、现有绝对 --campaign-workspace、预期 --campaign-machine 和远端路径。普通启动不会自动安装或配置这些条件。
--enable-final-gateway
--final-gateway-manifest-sha256
--campaign-workspace
--campaign-machine
部署与协议阅读入口:
Final UI典型流程:
apply receipt verified
不按固定秒数盲目推进,以实际完成状态为准。断连、超时或窗口崩溃后保留workspace,查询原事务状态;不要新建批次绕过未恢复事务,不重复Apply,也不手工enable代替原事务精确恢复。
UI quick A1/B1为单次重启诊断,不构成统计性能资格。命令行多轮campaign与普通 B 重启入口具有不同用途,不能混为自动正式5+5测试。
B
以下是复核命令,不表示当前交付环境已经重新执行并全部通过。
$env:PYTHONUTF8 = '1' $env:PYTHONIOENCODING = 'utf-8' python -m unittest discover -s tests -p 'test_*.py'
PYTHONUTF8=1 PYTHONIOENCODING=utf-8 PYTHONPATH=. python -m unittest discover -s tests -p 'test_*.py'
go -C go-tui test ./...
Go模块位于 go-tui/,不要在项目根目录直接使用不带模块定位的 go test ./...。平台专用测试可能跳过,跳过项不应写成已验证。
go test ./...
真实采集、Apply、重启、恢复及桌面功能检查属于独立实机实验,需要目标部署与人工授权,不由单元测试通过自动证明。
agent_gate=fail
本文不将历史汇总数字作为当前Extreme组合的效果承诺。结果应关联对应campaign、代码/配方版本、原始样本及验证记录,截图和哈希摘要不能替代原始证据。
正式材料按提交要求放入 docs/,演示PPT与真实MP4放入 presentation/,实际可运行交付物及说明放入 demo/。目录或链接只有在文件实际存在时才代表完成交付;本文不生成空占位物。
presentation/
demo/
不提交 .env、SSH私钥、密码、token、虚拟环境、开发缓存或未经筛选的现场目录。公开截图与证据副本按匿名要求处理;原始实验文件及协议绑定保持不变。
BootSem源码使用 MIT许可证,第三方依赖遵循各自许可证。Go依赖见 go-tui/go.mod 与 go-tui/go.sum,Python依赖及可选项见 requirements.txt 和 pyproject.toml。
go-tui/go.sum
BootSem 面向 openKylin 桌面系统启动性能分析场景,通过桌面语义建模、systemd/D-Bus 环境适配和不可变证据链,定位影响桌面可用性的关键启动路径。项目提供 analyze → diagnose → review → optimize → verify 完整工作流,支持正式采集、统计分析、优化审查、安全门禁和回滚验证,并以 TUI 界面和结构化结果输出可复核的分析结论。
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
BootSem:面向 openKylin 的可解释、可回滚启动性能分析与优化系统
BootSem 将启动证据采集、关键路径分析、桌面语义保护、候选资格解析、受控执行、重启复测和事务恢复连接为可追溯的系统实验流程。Windows 可作为 Go TUI/Chatbox 控制端,Linux/openKylin 作为被测端;这不表示 BootSem 已支持优化 Windows 启动。
1. 应用场景
2. 主要功能
Extreme 的 41 项是候选目录,不是每轮实际执行数量。Selected 只表示当前满足执行资格,不表示独立性能收益已经证明。组合实验评价方案整体差异,不能据此识别各服务独立因果贡献。
3. 版本与源码结构
本文以已提供源码包的核对基线
1a1c23123ebbfd93595f68608589c046fbcdd6b6、开发分支feat/issue-8-experimental-composite-loop编写,不声明该提交是远端最新版本或正式初赛基线。实际 checkout 可用以下命令确认:
主要源码位置:
detection/analyzer/optimizations/scripts/go-tui/tests/docs/run.sh以下命令按当前源码布局编写。若交付时将源码迁入
src/,需相应更新工作目录并验证,不能只移动文件后沿用旧命令。4. 系统环境与依赖
pyproject.toml声明 Python ≥3.8;实际固定 Gateway/runtime 使用部署核验的 Python,不保证任意版本等价go-tui/go.mod声明 1.25.6;使用可满足锁定依赖的工具链,不沿用旧 README 的 Go 1.21 要求requirements.txt安装;可选 AI SDK 不是离线界面和核心分析的必需条件go.mod与go.sum锁定,通过go mod download获取UKUI 是主要桌面验证对象。其他发行版的采集、机制分析、桌面协议和性能资格应分别评价;历史兼容记录不表示固定 Gateway 可直接部署到任意机器。
5. 安装与构建
5.1 获取指定源码
上述 checkout 用于复核本文基线。使用其他提交时,应重新核对产物、runtime 和部署绑定。ZIP 可用于阅读、测试及普通界面构建;Final 生产入口依赖真实 Git 提交信息与匹配构建,不能通过
git init伪造来源。5.2 Linux Python 环境
在项目根目录执行:
如果缺少 Python venv、systemd 工具或 OpenSSH,先按目标发行版安装对应系统软件包。不要在 Windows PowerShell 直接运行 Linux Bash 命令。
5.3 Windows 构建 TUI
在项目根目录的 PowerShell 中执行:
这是普通 TUI 构建方法,不等于 Final 执行产物已通过 readiness。Final 对源码提交、EXE 和 runtime 有额外绑定;完整仓库、构建匹配与部署条件缺一不可。
5.4 Linux 构建 TUI
产物位于
go-tui/dist/。也可查看go-tui/Makefile和go-tui/README.md。6. 运行方法
6.1 离线查看历史界面(不连接 VM)
Windows,在项目根目录:
Linux,在项目根目录:
默认 FORMAL 为内嵌历史快照,只读查看,不生成新的实验数据。可按
?查看当前版本快捷键。0为 Chatbox,1–4切换页面,S切换 FORMAL/LIVE;输入框获得焦点时数字是输入内容。合成夹具可用于界面检查,不能作为真实实验:
6.2 Linux 本地采集与分析
结果通常写入
tests/data/results/,包括analysis_result.json、报告和原始证据。采集成功不等于正式实验资格通过。该流程不执行优化;读取哪些日志取决于当前用户权限。6.3 Windows 配置 SSH
复制根目录
.env.example为.env,填写目标连接:端口及路径按实际部署填写;不填写密码或私钥内容。环境变量优先于
.env,文件中的路径不会做 shell 展开。首次连接先通过 OpenSSH 核对目标公钥,程序不会自动信任未知主机密钥。6.4 远程 LIVE 读取与采集
两端需匹配源码及 Python 环境。以下为参数模板,三个远端路径必须替换;
--remote-results是具体批次目录,不是结果父目录:C:只读连接检查;连接成功不代表数据已经采集G:确认后获取已有远端批次并核验传输哈希K:确认后采集当前启动并获取结果,使用不存在的新批次,不会自动重启LIVE RESULTS,再进入总览、分析或证据页面LIVE 是导入的现场结果,可能来自先前启动。需要新一轮启动数据时必须真正重启并核验 boot ID,不能重复导入旧结果冒充新样本。
6.5 Final Chatbox/Extreme 受控实验
仅适用于已完成匹配管理员部署的目标。启动需显式启用
--enable-final-gateway,并提供可信的--final-gateway-manifest-sha256、现有绝对--campaign-workspace、预期--campaign-machine和远端路径。普通启动不会自动安装或配置这些条件。部署与协议阅读入口:
Final UI典型流程:
apply receipt verified不按固定秒数盲目推进,以实际完成状态为准。断连、超时或窗口崩溃后保留workspace,查询原事务状态;不要新建批次绕过未恢复事务,不重复Apply,也不手工enable代替原事务精确恢复。
UI quick A1/B1为单次重启诊断,不构成统计性能资格。命令行多轮campaign与普通
B重启入口具有不同用途,不能混为自动正式5+5测试。7. 测试方法
以下是复核命令,不表示当前交付环境已经重新执行并全部通过。
Python离线回归
Windows,在项目根目录:
Linux,在项目根目录:
Go回归
Go模块位于
go-tui/,不要在项目根目录直接使用不带模块定位的go test ./...。平台专用测试可能跳过,跳过项不应写成已验证。真实采集、Apply、重启、恢复及桌面功能检查属于独立实机实验,需要目标部署与人工授权,不由单元测试通过自动证明。
8. 测量与证据口径
agent_gate=fail可能表示正式证据缺失;采集完成、执行资格、回执核验、桌面功能和正式性能资格是不同状态本文不将历史汇总数字作为当前Extreme组合的效果承诺。结果应关联对应campaign、代码/配方版本、原始样本及验证记录,截图和哈希摘要不能替代原始证据。
9. 已知限制
10. 材料、隐私与许可证
正式材料按提交要求放入
docs/,演示PPT与真实MP4放入presentation/,实际可运行交付物及说明放入demo/。目录或链接只有在文件实际存在时才代表完成交付;本文不生成空占位物。不提交
.env、SSH私钥、密码、token、虚拟环境、开发缓存或未经筛选的现场目录。公开截图与证据副本按匿名要求处理;原始实验文件及协议绑定保持不变。BootSem源码使用 MIT许可证,第三方依赖遵循各自许可证。Go依赖见
go-tui/go.mod与go-tui/go.sum,Python依赖及可选项见requirements.txt和pyproject.toml。