Skip to content

Commit 7472b7b

Browse files
MalteJclaude
andcommitted
Rename uos to one throughout codebase
- Rename proto file: uos.proto → one.proto - Rename proto package: mvirt.uos → mvirt.one - Rename service: UosService → OneService - Rename client/server types: UosServiceClient → OneServiceClient, etc. - Rename constants: UOS_* → ONE_* - Rename variables: uos_client → one_client, uos_clients → one_clients - Update all doc comments from "uos" to "one" - Update documentation files (README, CLAUDE.md, docs/*, DESIGN.md) - Update CI artifact path - Keep backwards-compatible make targets (uos → one alias) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
1 parent 16508b6 commit 7472b7b

24 files changed

Lines changed: 146 additions & 124 deletions

File tree

.github/workflows/ci.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ jobs:
6363
with:
6464
name: build-artifacts
6565
path: |
66-
mvirt-uos/target/mvirt-uos.efi
66+
mvirt-one/target/mvirt-one.efi
6767
target/x86_64-unknown-linux-musl/release/mvirt
6868
target/x86_64-unknown-linux-musl/release/mvirt-vmm
6969
retention-days: 7

CLAUDE.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@ mvirt/
1212
├── mvirt-zfs/ # ZFS storage management
1313
├── mvirt-one/ # MicroVM Init System for isolated Pods
1414
│ ├── src/ # Rust init process (PID 1)
15-
│ ├── proto/ # uos gRPC API
15+
│ ├── proto/ # one gRPC API
1616
│ └── initramfs/ # rootfs skeleton
1717
├── proto/ # gRPC API definition
1818
└── images/ # Kernel and disk images (not in git)

README.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ Lightweight VM manager in Rust as a modern alternative to libvirt.
4444
| `mvirt-log/` | 50052 | Centralized audit logging service |
4545
| `mvirt-zfs/` | 50053 | ZFS storage management daemon |
4646
| `mvirt-net/` | 50054 | Virtual networking daemon |
47-
| `mvirt-uos/` | - | µOS - Minimal Linux for MicroVMs |
47+
| `mvirt-one/` | - | µOS - Minimal Linux for MicroVMs |
4848
| `proto/` | - | gRPC protocol definitions |
4949

5050
## Prerequisites
@@ -56,7 +56,7 @@ rustup target add x86_64-unknown-linux-musl
5656
# Build tools
5757
sudo apt install build-essential musl-tools
5858

59-
# For mvirt-uos (Kernel/UKI)
59+
# For mvirt-one (Kernel/UKI)
6060
sudo apt install flex bison libncurses-dev libssl-dev libelf-dev bc dwarves
6161
sudo apt install systemd-ukify systemd-boot-efi genisoimage
6262
```
@@ -70,8 +70,8 @@ make
7070
# Rust binaries only
7171
make release
7272

73-
# mvirt-uos only (UKI for direct boot)
74-
make uos
73+
# mvirt-one only (UKI for direct boot)
74+
make one
7575

7676
# Build in Docker (no local dependencies needed)
7777
make docker
@@ -112,8 +112,8 @@ mvirt/
112112
├── mvirt-log/ # Audit logging service
113113
├── mvirt-zfs/ # ZFS storage daemon
114114
├── mvirt-net/ # Networking daemon
115-
├── mvirt-uos/ # µOS - Minimal Linux for MicroVMs
116-
│ └── pideisn/ # Rust init (PID 1)
115+
├── mvirt-one/ # µOS - Minimal Linux for MicroVMs
116+
│ └── src/ # Rust init (PID 1)
117117
├── docs/ # Documentation
118118
└── images/ # VM disk images (not in git)
119119
```
@@ -127,7 +127,7 @@ mvirt/
127127
| `target/x86_64-unknown-linux-musl/release/mvirt-log` | Logging service |
128128
| `target/x86_64-unknown-linux-musl/release/mvirt-zfs` | ZFS storage daemon |
129129
| `target/x86_64-unknown-linux-musl/release/mvirt-net` | Networking daemon |
130-
| `mvirt-uos/target/mvirt-uos.efi` | Bootable UKI (kernel + initramfs) |
130+
| `mvirt-one/target/mvirt-one.efi` | Bootable UKI (kernel + initramfs) |
131131

132132
## Documentation
133133

docs/architecture.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -77,7 +77,7 @@ TUI and CLI that orchestrates the other services.
7777
- Provides unified interface for VM operations
7878
- Auto-refreshing TUI with ratatui
7979

80-
### mvirt-uos (µOS for MicroVMs)
80+
### mvirt-one (µOS for MicroVMs)
8181

8282
Minimal Linux distribution optimized for MicroVMs.
8383

docs/development/building.md

Lines changed: 12 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -11,11 +11,11 @@ mvirt/
1111
├── mvirt-log/ # Centralized audit logging
1212
├── mvirt-zfs/ # ZFS storage management
1313
├── mvirt-net/ # Virtual networking
14-
├── mvirt-uos/ # µOS - Minimal Linux for MicroVMs
14+
├── mvirt-one/ # µOS - Minimal Linux for MicroVMs
1515
│ ├── pideisn/ # Rust init process (PID 1)
1616
│ ├── initramfs/ # rootfs skeleton
1717
│ ├── kernel.config # Kernel config fragment
18-
│ └── mvirt-uos.mk # OS build rules
18+
│ └── mvirt-one.mk # OS build rules
1919
├── docs/ # Documentation
2020
└── Makefile # Main build orchestration
2121
```
@@ -32,7 +32,7 @@ The build system uses GNU Make with a dependency-based approach. Targets only re
3232
|--------|-------------|
3333
| `make` | Build everything (Rust + UKI) |
3434
| `make release` | Build Rust binaries (musl, static) |
35-
| `make uos` | Build mvirt-uos (UKI) |
35+
| `make one` | Build mvirt-one (UKI) |
3636
| `make kernel` | Build kernel only |
3737
| `make initramfs` | Build initramfs only |
3838
| `make clean` | Remove build artifacts |
@@ -45,7 +45,7 @@ The build system uses GNU Make with a dependency-based approach. Targets only re
4545
The build system automatically resolves dependencies:
4646

4747
```
48-
make uos
48+
make one
4949
└── $(UKI) # Unified Kernel Image
5050
├── $(BZIMAGE) # Linux kernel
5151
│ └── .config
@@ -59,7 +59,7 @@ make uos
5959
└── cmdline.txt # Kernel command line
6060
```
6161

62-
Running `make uos` automatically builds all dependencies in the correct order.
62+
Running `make one` automatically builds all dependencies in the correct order.
6363

6464
### Rust Binaries
6565

@@ -83,27 +83,27 @@ Build outputs:
8383

8484
| File | Description |
8585
|------|-------------|
86-
| `mvirt-uos/target/mvirt-uos.efi` | UKI (kernel + initramfs + cmdline) |
87-
| `mvirt-uos/target/cloud-hypervisor` | Downloaded hypervisor binary |
88-
| `mvirt-uos/target/hypervisor-fw` | Downloaded firmware |
86+
| `mvirt-one/target/mvirt-one.efi` | UKI (kernel + initramfs + cmdline) |
87+
| `mvirt-one/target/cloud-hypervisor` | Downloaded hypervisor binary |
88+
| `mvirt-one/target/hypervisor-fw` | Downloaded firmware |
8989

9090
## Development Workflow
9191

9292
### Code Changes
9393

94-
1. Edit code in any module (`mvirt-cli/`, `mvirt-vmm/`, `mvirt-zfs/`, `mvirt-net/`, `mvirt-log/`, `mvirt-uos/pideisn/`)
94+
1. Edit code in any module (`mvirt-cli/`, `mvirt-vmm/`, `mvirt-zfs/`, `mvirt-net/`, `mvirt-log/`, `mvirt-one/pideisn/`)
9595
2. Run `cargo fmt && cargo clippy --workspace` to check formatting and lints
96-
3. Run `make uos` to rebuild UKI, or `cargo build` for daemons only
96+
3. Run `make one` to rebuild UKI, or `cargo build` for daemons only
9797

9898
### Testing with cloud-hypervisor
9999

100100
```bash
101101
# Build UKI
102-
make uos
102+
make one
103103

104104
# Test with cloud-hypervisor (direct kernel boot)
105105
cloud-hypervisor \
106-
--kernel mvirt-uos/target/mvirt-uos.efi \
106+
--kernel mvirt-one/target/mvirt-one.efi \
107107
--cpus boot=1 --memory size=512M \
108108
--console off --serial tty
109109
```

docs/development/kernel.md

Lines changed: 7 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ This guide explains how the kernel build works and how to customize it.
44

55
## Overview
66

7-
mvirt-uos uses a minimal Linux kernel optimized for virtualization. The kernel configuration uses a **fragment-based approach** rather than a full `.config` file.
7+
mvirt-one uses a minimal Linux kernel optimized for virtualization. The kernel configuration uses a **fragment-based approach** rather than a full `.config` file.
88

99
## Config Fragment Approach
1010

@@ -22,7 +22,7 @@ Instead of maintaining a full kernel config (~8000+ lines), we use a small fragm
2222

2323
## Current Configuration
2424

25-
The `mvirt-uos/kernel.config` fragment includes:
25+
The `mvirt-one/kernel.config` fragment includes:
2626

2727
| Category | Options |
2828
|----------|---------|
@@ -63,10 +63,10 @@ If the option works, add it to the fragment:
6363

6464
```bash
6565
# Add to kernel.config
66-
echo "CONFIG_MY_DRIVER=y" >> mvirt-uos/kernel.config
66+
echo "CONFIG_MY_DRIVER=y" >> mvirt-one/kernel.config
6767
```
6868

69-
Or edit `mvirt-uos/kernel.config` directly.
69+
Or edit `mvirt-one/kernel.config` directly.
7070

7171
**Important:** Changes only in `.config` are lost after `make clean` or when `kernel.config` is modified, because `.config` is regenerated from the fragment.
7272

@@ -112,10 +112,10 @@ Common dependencies to check:
112112

113113
## Kernel Version
114114

115-
The kernel version is specified in `mvirt-uos/kernel.version`:
115+
The kernel version is specified in `mvirt-one/kernel.version`:
116116

117117
```bash
118-
cat mvirt-uos/kernel.version
118+
cat mvirt-one/kernel.version
119119
```
120120

121121
To update the kernel:
@@ -131,7 +131,7 @@ To update the kernel:
131131
Check if the option has unmet dependencies:
132132

133133
```bash
134-
cd mvirt-uos/kernel
134+
cd mvirt-one/kernel
135135
./scripts/config --state CONFIG_MY_OPTION
136136
```
137137

mvirt-one/DESIGN.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,7 @@ mvirt-one is the init system for mvirt microVMs that run isolated pods (containe
2020
│ MicroVM │ (cloud-hypervisor) │
2121
│ ▼ │
2222
│ ┌──────────────────────────────────────────────────────────┐ │
23-
│ │ uos (PID 1) │ │
23+
│ │ one (PID 1) │ │
2424
│ │ ┌─────────┐ ┌─────────┐ ┌─────────┐ ┌─────────────┐ │ │
2525
│ │ │ Image │ │ Task │ │ Pod │ │ API │ │ │
2626
│ │ │ Service │ │ Service │ │ Service │ │ Server │ │ │
@@ -69,7 +69,7 @@ API Handler → Dispatcher → Worker
6969

7070
## Dual-Mode Operation
7171

72-
uos runs in two modes:
72+
one runs in two modes:
7373

7474
### PID 1 Mode (in MicroVM)
7575
```rust
@@ -84,7 +84,7 @@ if std::process::id() == 1 {
8484
```rust
8585
else {
8686
prctl::set_child_subreaper(true)?; // Handle orphaned children
87-
start_unix_socket_server(); // /tmp/uos.sock
87+
start_unix_socket_server(); // /tmp/one.sock
8888
}
8989
```
9090

@@ -127,17 +127,17 @@ else {
127127
└── rootfs/ # symlink or bind to image rootfs
128128
```
129129

130-
### Local Development (/tmp/uos)
130+
### Local Development (/tmp/one)
131131
```
132-
/tmp/uos/
132+
/tmp/one/
133133
├── images/
134134
└── pods/
135135
```
136136

137137
## API (Protobuf over vsock/Unix socket)
138138

139139
```protobuf
140-
service UosService {
140+
service OneService {
141141
// Pod lifecycle
142142
rpc CreatePod(CreatePodRequest) returns (Pod);
143143
rpc StartPod(StartPodRequest) returns (Pod);

mvirt-one/build.rs

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,6 @@ fn main() -> Result<(), Box<dyn std::error::Error>> {
22
tonic_build::configure()
33
.build_server(true)
44
.build_client(true)
5-
.compile_protos(&["proto/uos.proto"], &["proto/"])?;
5+
.compile_protos(&["proto/one.proto"], &["proto/"])?;
66
Ok(())
77
}

mvirt-one/kernel.config

Lines changed: 23 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# mvirt-uos kernel config
1+
# mvirt-one kernel config
22
# Minimal Linux kernel for MicroVMs (cloud-hypervisor)
33
# For use with: make tinyconfig && merge_config.sh
44

@@ -70,6 +70,7 @@ CONFIG_SERIAL_8250_RUNTIME_UARTS=4
7070

7171
CONFIG_EXT4_FS=y
7272
CONFIG_TMPFS=y
73+
CONFIG_SHMEM=y
7374
CONFIG_PROC_FS=y
7475
CONFIG_SYSFS=y
7576
CONFIG_DEVTMPFS=y
@@ -110,6 +111,9 @@ CONFIG_TIMERFD=y
110111
CONFIG_EVENTFD=y
111112
CONFIG_AIO=y
112113
CONFIG_INOTIFY_USER=y
114+
CONFIG_MEMFD_CREATE=y
115+
CONFIG_SECCOMP=y
116+
CONFIG_SECCOMP_FILTER=y
113117

114118
# ===========================================
115119
# HYPERVISOR GUEST SUPPORT
@@ -409,6 +413,24 @@ CONFIG_KERNEL_XZ=y
409413
# --- Freezer (cgroup dependency, but we have CGROUP_FREEZER) ---
410414
# CONFIG_FREEZER is not set
411415

416+
# ===========================================
417+
# IPC (required for IPC namespace)
418+
# ===========================================
419+
420+
CONFIG_SYSVIPC=y
421+
CONFIG_POSIX_MQUEUE=y
422+
423+
# ===========================================
424+
# NAMESPACES (required for containers)
425+
# ===========================================
426+
427+
CONFIG_NAMESPACES=y
428+
CONFIG_UTS_NS=y
429+
CONFIG_IPC_NS=y
430+
CONFIG_USER_NS=y
431+
CONFIG_PID_NS=y
432+
CONFIG_NET_NS=y
433+
412434
# --- SCSI module (we don't use SCSI) ---
413435
# CONFIG_SCSI_MOD is not set
414436

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
syntax = "proto3";
2-
package mvirt.uos;
2+
package mvirt.one;
33

4-
// UosService provides the API for managing pods and containers in the MicroVM
5-
service UosService {
4+
// OneService provides the API for managing pods and containers in the MicroVM
5+
service OneService {
66
// Pod Management
77
rpc CreatePod(CreatePodRequest) returns (Pod);
88
rpc StartPod(StartPodRequest) returns (Pod);

0 commit comments

Comments
 (0)