OS
| Field |
Value |
| Purpose |
Defines operating system identity — distro, version, architecture, kernel, init system |
| Repo |
AmadlaOrg/Entities/OS |
| Entity URI |
amadla.org/entity/os@v1.0.0 |
Schema
| Property |
Type |
Required |
Description |
distro |
string |
yes |
Distribution name (e.g., rocky, ubuntu, debian, alpine, arch, fedora, opensuse) |
version |
string |
no |
Distribution version (e.g., 9, 24.04, 3.20) |
arch |
array of strings |
yes |
Supported architectures (e.g., ["x86_64", "aarch64"]) |
family |
string |
no |
Abstract OS family: rhel, debian, arch, alpine, suse, gentoo, bsd, macos, windows |
init |
string |
no |
Init system: systemd, openrc, sysvinit, launchd, windows (default: systemd) |
kernel |
string |
no |
Kernel version constraint (e.g., >=5.15) |
codename |
string |
no |
Distribution release codename (e.g., noble, bookworm) |
Sub-types
| Entity |
Purpose |
Handled By |
| OS/Preference |
Preferred system tools per concern (firewall, network, cron, etc.) |
lay, enjoin |
Example
_type: amadla.org/entity/os@v1.0.0
_body:
distro: rocky
version: "9"
arch:
- x86_64
- aarch64
family: rhel
init: systemd
kernel: ">=5.14"
codename: Blue Onyx
Minimal example
_type: amadla.org/entity/os@v1.0.0
_body:
distro: ubuntu
arch:
- x86_64
Consumers
| Tool |
How It Uses OS |
| lay |
Selects package manager and install commands based on distro/family |
| enjoin |
Selects backend tools (firewall, service manager, cron) based on OS identity |
| raise |
Chooses VM images and cloud AMIs matching distro/version/arch |
| unravel |
Discovers and outputs the OS entity from a running system |
| judge |
Validates that the running OS matches declared requirements |