English | 한국어
- Create the service crate under
services/<name>/.
- Add the crate to the workspace in
Cargo.toml.
- Add
services/<name>/RUSTOS.package.toml.
- Choose
kind = "service" and execution_domain = "user".
- Choose
startup:
init for early system services.
session for session-owned services.
desktop for UI/desktop services.
none for manually launched services.
- Use
[build] builder = "cargo-kernel-binary" for Rust userspace services.
- Use
[install] path = "services/<name>/<name>.elf".
- Add at least one
[[desktop.entries]] entry for registry generation.
- Add
runtime_deps only when the service requires another package first.
- Run
cargo xtask check, then cargo xtask build.
id = "exampled"
kind = "service"
execution_domain = "user"
profiles = ["default"]
startup = "init"
[build]
builder = "cargo-kernel-binary"
package = "exampled"
[install]
path = "services/exampled/exampled.elf"
[[desktop.entries]]
display_name = "exampled"
weight_micros = 100
logical_admin = true
console_hosted = false
cargo xtask check passes.
cargo xtask build stages the service under build/image/services/<name>/.
- Generated registries under
build/image/system/registry/ include expected
startup/desktop metadata.
- Service logs use
observability_client with category service.
services/<name>/ 아래 service crate를 만듭니다.
- root
Cargo.toml workspace에 crate를 추가합니다.
services/<name>/RUSTOS.package.toml을 추가합니다.
kind = "service", execution_domain = "user"를 선택합니다.
startup을 선택합니다.
- early system service는
init
- session-owned service는
session
- UI/desktop service는
desktop
- 수동 실행 service는
none
- Rust userspace service는
[build] builder = "cargo-kernel-binary"를 사용합니다.
[install] path = "services/<name>/<name>.elf"를 사용합니다.
- registry 생성을 위해
[[desktop.entries]]를 최소 하나 추가합니다.
- 다른 package가 먼저 필요할 때만
runtime_deps를 추가합니다.
cargo xtask check, 이후 cargo xtask build를 실행합니다.
id = "exampled"
kind = "service"
execution_domain = "user"
profiles = ["default"]
startup = "init"
[build]
builder = "cargo-kernel-binary"
package = "exampled"
[install]
path = "services/exampled/exampled.elf"
[[desktop.entries]]
display_name = "exampled"
weight_micros = 100
logical_admin = true
console_hosted = false
cargo xtask check가 통과합니다.
cargo xtask build 후 service가 build/image/services/<name>/ 아래에 stage됩니다.
build/image/system/registry/의 generated registry에 예상 startup/desktop
metadata가 포함됩니다.
- service log는
observability_client와 service category를 사용합니다.