代码拉取完成,页面将自动刷新
1 号进程处于系统关键位置,负责系统初始化和运行时服务管理,当前面临如下挑战:
行业诉求
整体策略:聚焦功能最小系统,采用核心自研与非核心社区方案替代并行的策略,独立组件抽屉式替换的策略,实现systemd自研替代
sysMaster 旨在改进传统的init守护进程,1+1+N架构。
极力构筑三大竞争力:
首先,下载仓库代码,并执行命令来预装项目依赖,构建开发环境, 项目主要基于rust 1.57构建,使用``pre-commit`做git commit检查。
sh ./build.sh
其次,可以通过提供的脚本来构建程序。也可以参考.pre-commit-config.yaml
中的动作构建。
sh ci/01-pre-commit.sh
# 格式检查
cargo clippy -vvv --all-targets --features "default" --all -- -Dwarnings
# 构建
cargo build --all --features "default" -v
# 测试
RUST_BACKTRACE=full cargo test --all-targets --all -v -- --nocapture --show-output --test-threads=1
在各场景下的使用,可以参考tools
目录下。
ls tools
源码仓库以workspaces方式管理,每一个目录是一个package,每个package包含一个crate(lib或bin形式), 公共lib crate的目录带lib前缀,使用cargo new --lib libtests创建, daemon类型的bin crate的目录以d结尾。
/ (sysmaster)
|...init (init进程)
|...factory (系统配置)
|...libs (对外接口)
| |...libtests (test lib crate)
| |...cgroup (cgroup lib crate)
| |...cmdproto(cmd proto lib crate)
|...exts (sysmaster-extends组件)
| |...devmaster (daemon)
| |...random-seed (bin)
|...core (sysmaster-core核心组件)
| |...sysmaster (bin)
| |...libcore (internal lib)
| |...sctl (sysmaster cli)
| |...coms (插件)
| |...service (unit type crate)
| |...socket (unit type crate)
| |...target (unit type crate)
|...tools
| |...musl_build
| |...run_with_sd
|...docs (sysmaster.online)
|...build.sh (准备环境)
如:
- lib crate: libs/event, libs/basic
- bin crate: extends/init, sysmaster
- daemon crate: extends/udevd, extends/logind
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。