完整上传项目文件
融合依赖图建模与智能辅助分析的 openKylin 启动性能优化平台
BootGraph-AI 面向 openKylin x86 PC 或虚拟机环境,围绕 systemd 启动过程完成数据采集、依赖图建模、关键路径识别、优化建议生成、事务化执行、回滚恢复和可视化报告输出。项目目标是在保证图形登录可用、桌面环境正常使用和系统功能完整的前提下,定位启动瓶颈并提升启动效率。
openKylin 桌面系统启动过程涉及 systemd target、service、socket、device、mount 等多类 unit。不同 unit 之间存在 After、Before、Requires、Wants 等依赖关系,单个服务耗时并不一定代表真实瓶颈,真正影响启动完成时间的是由依赖关系串联形成的关键耗时路径。
After
Before
Requires
Wants
BootGraph-AI 将启动过程抽象为有向依赖图,通过图分析方法识别关键路径和阶段瓶颈,并结合可回滚的优化事务机制,对服务裁剪、启动顺序调整、并行初始化优化和无效等待消除等操作进行安全管理。
systemd-analyze
systemctl
journalctl
运行后会生成以下文件:
outputs/index.html
outputs/report.html
outputs/report.md
outputs/analysis.json
outputs/plan.yaml
outputs/plan.json
outputs/ai_agent_report.md
outputs/ai_agent_trace.json
outputs/transactions/latest.json
outputs/compare.json
outputs/compare.md
Windows 主要用于本地开发、样例数据演示和页面报告生成。
建议环境:
真实采集和系统优化需要在 openKylin x86 PC 或虚拟机中运行。
进入项目目录:
cd E:\操作系统开源大赛\bootgraph-ai
运行完整演示流程:
python -m bootgraph_ai.cli demo --output-dir outputs
如果本机 python 命令不可用,请改用实际 Python 路径,例如:
python
C:\Users1\.cache\codex-runtimes\codex-primary-runtime\dependencies\python\python.exe -m bootgraph_ai.cli demo --output-dir outputs
运行完成后打开:
start E:\操作系统开源大赛\bootgraph-ai\outputs\index.html
也可以直接打开:
E:\操作系统开源大赛\bootgraph-ai\outputs\index.html
python -m bootgraph_ai.cli validate --input examples/sample_boot.json
python -m bootgraph_ai.cli analyze --input examples/sample_boot.json --output outputs/analysis.json
python -m bootgraph_ai.cli suggest --analysis outputs/analysis.json --output outputs/plan.yaml
同时生成 JSON 计划:
python -m bootgraph_ai.cli suggest --analysis outputs/analysis.json --output outputs/plan.json
Windows 环境默认用于演示,不会修改真实系统服务:
python -m bootgraph_ai.cli apply --plan outputs/plan.json --transaction-dir outputs/transactions --max-risk low --simulate --yes
离线模式:
python -m bootgraph_ai.cli agent --offline --analysis outputs/analysis.json --plan outputs/plan.json --transaction outputs/transactions/latest.json --output outputs/ai_agent_report.md --trace outputs/ai_agent_trace.json
API 模式:
$env:BIGMODEL_API_KEY="你的 API Key" python -m bootgraph_ai.cli agent --analysis outputs/analysis.json --plan outputs/plan.json --transaction outputs/transactions/latest.json --output outputs/ai_agent_report.md --trace outputs/ai_agent_trace.json
python -m bootgraph_ai.cli html --analysis outputs/analysis.json --plan outputs/plan.json --transaction outputs/transactions/latest.json --agent-trace outputs/ai_agent_trace.json --output outputs/report.html --with-explain
python -m bootgraph_ai.cli home --analysis outputs/analysis.json --plan outputs/plan.json --compare outputs/compare.json --transaction outputs/transactions/latest.json --agent-trace outputs/ai_agent_trace.json --output outputs/index.html
将项目复制到 openKylin 后进入目录:
cd ~/bootgraph-ai
bash scripts/run_openkylin_collect.sh baseline
该命令会采集系统启动数据,生成分析结果、优化建议和报告文件。
bash scripts/run_openkylin_transaction.sh dry-run
该命令只生成事务预览,不修改系统。
sudo bash scripts/run_openkylin_transaction.sh apply
执行前脚本会要求输入确认信息。优化完成后建议重启系统:
sudo reboot
bash scripts/run_openkylin_collect.sh optimized
bash scripts/run_openkylin_collect.sh compare
先查看回滚计划:
bash scripts/run_openkylin_transaction.sh rollback-dry-run
执行回滚:
sudo bash scripts/run_openkylin_transaction.sh rollback
项目可以在不配置 API 的情况下运行,默认使用离线分析模式。
如果需要调用外部模型生成分析报告,请在当前终端设置环境变量:
PowerShell:
$env:BIGMODEL_API_KEY="你的 API Key"
bash:
export BIGMODEL_API_KEY="你的 API Key"
也可以使用交互式脚本输入 API Key:
python scripts\run_glm_agent.py
API Key 只建议保存在本机环境变量中,不应写入代码、报告或提交材料。
bootgraph-ai/ ├─ bootgraph_ai/ │ ├─ ai/ # 智能分析、RAG、API 调用 │ ├─ collect/ # 启动数据采集 │ ├─ graph/ # 依赖图建模和关键路径分析 │ ├─ optimizer/ # 优化计划、事务执行和回滚 │ ├─ report/ # Markdown/HTML 报告生成 │ ├─ cli.py # 命令行入口 │ └─ platform.py # 平台首页生成 ├─ docs/ # 设计文档和运行说明 ├─ examples/ # 样例启动数据 ├─ knowledge/ # 本地知识库 ├─ scripts/ # Windows/openKylin 运行脚本 ├─ tests/ # 测试用例 ├─ outputs/ # 运行输出目录 ├─ pyproject.toml └─ README.md
dry-run
apply
rollback
比赛提交时可使用以下材料:
README.md
docs/design.md
版权所有:中国计算机学会技术支持:开源发展技术委员会 京ICP备13000930号-9 京公网安备 11010802047560号
BootGraph-AI
融合依赖图建模与智能辅助分析的 openKylin 启动性能优化平台
BootGraph-AI 面向 openKylin x86 PC 或虚拟机环境,围绕 systemd 启动过程完成数据采集、依赖图建模、关键路径识别、优化建议生成、事务化执行、回滚恢复和可视化报告输出。项目目标是在保证图形登录可用、桌面环境正常使用和系统功能完整的前提下,定位启动瓶颈并提升启动效率。
一、作品简介
1. 项目背景
openKylin 桌面系统启动过程涉及 systemd target、service、socket、device、mount 等多类 unit。不同 unit 之间存在
After、Before、Requires、Wants等依赖关系,单个服务耗时并不一定代表真实瓶颈,真正影响启动完成时间的是由依赖关系串联形成的关键耗时路径。BootGraph-AI 将启动过程抽象为有向依赖图,通过图分析方法识别关键路径和阶段瓶颈,并结合可回滚的优化事务机制,对服务裁剪、启动顺序调整、并行初始化优化和无效等待消除等操作进行安全管理。
2. 核心功能
systemd-analyze、systemctl、journalctl等启动相关数据。3. 输出产物
运行后会生成以下文件:
outputs/index.html:平台首页outputs/report.html:HTML 技术报告outputs/report.md:Markdown 技术报告outputs/analysis.json:关键路径和图分析结果outputs/plan.yaml:优化建议清单outputs/plan.json:优化建议结构化数据outputs/ai_agent_report.md:智能分析报告outputs/ai_agent_trace.json:分析链路记录outputs/transactions/latest.json:优化事务记录outputs/compare.json:优化前后对比数据outputs/compare.md:优化前后对比报告二、运行环境
1. Windows 开发环境
Windows 主要用于本地开发、样例数据演示和页面报告生成。
建议环境:
2. openKylin 真实环境
真实采集和系统优化需要在 openKylin x86 PC 或虚拟机中运行。
建议环境:
三、Windows 快速运行
进入项目目录:
运行完整演示流程:
如果本机
python命令不可用,请改用实际 Python 路径,例如:运行完成后打开:
也可以直接打开:
四、Windows 分步运行
1. 校验样例数据
2. 分析关键路径
3. 生成优化建议
同时生成 JSON 计划:
4. 生成事务记录
Windows 环境默认用于演示,不会修改真实系统服务:
5. 生成智能分析报告
离线模式:
API 模式:
6. 生成 HTML 报告
7. 生成平台首页
五、openKylin 真实采集流程
将项目复制到 openKylin 后进入目录:
1. 采集优化前数据
该命令会采集系统启动数据,生成分析结果、优化建议和报告文件。
2. 查看可执行优化计划
该命令只生成事务预览,不修改系统。
3. 执行优化
执行前脚本会要求输入确认信息。优化完成后建议重启系统:
4. 采集优化后数据
5. 生成优化前后对比
6. 回滚优化
先查看回滚计划:
执行回滚:
六、API 配置说明
项目可以在不配置 API 的情况下运行,默认使用离线分析模式。
如果需要调用外部模型生成分析报告,请在当前终端设置环境变量:
PowerShell:
bash:
也可以使用交互式脚本输入 API Key:
API Key 只建议保存在本机环境变量中,不应写入代码、报告或提交材料。
七、项目结构
八、安全说明
dry-run只生成计划和事务预览。apply会修改系统服务状态,必须在 openKylin 中使用 sudo 执行。apply都会保存事务记录。rollback会读取事务记录并按反向步骤恢复。九、提交材料建议
比赛提交时可使用以下材料:
README.md:作品简介和运行说明docs/design.md:设计文档outputs/report.md或outputs/report.html:技术报告outputs/index.html:平台演示首页outputs/compare.md:优化前后对比报告