Documentation

How OnixOS is put together

Follow an OnixOS change from a package source through repositories and profiles into an installed system.

Documentation pagesSystem architecture
On this page

OnixOS is based on Arch Linux. It uses pacman and Arch package formats, while the OnixOS project maintains its own package recipes, repositories, profiles, installers and system configuration. This page follows the path between those pieces.

From source to installed system

  1. Package source — a package project contains a PKGBUILD and any source patches, service files or install hooks it needs.
  2. Repository build — the build-system source lists select package projects. Successful builds are collected into a pacman repository for a target architecture.
  3. Profile assembly — a profile’s packages.<arch> file selects binary package names. Its profiledef.sh, pacman.conf, airootfs/ overlay and boot files define the live image around them.
  4. Image and installation — the build system stages the selected profile and collects its image artifacts. The image starts the installer configured by that profile.
  5. Installed system — pacman remains the package database and transaction manager. onix-base adds OnixOS helpers such as opkg and onix-configure.
Layer Maintained in Main responsibility
Package project OnixOS packages and related package groups Buildable package metadata and files
Repository selection sources/*.list and build-system configuration Choose source projects and repository targets
Repository onix-base, onix-community, onix-kernel and onix-firmware Publish package databases and archives
Profile OnixOS profiles Select installable packages and configure a live image
Build system onix-build-system Coordinate repository and image stages and collect artifacts

Package selection and image selection

A source-list entry and a profile package-list entry refer to different things. The build-system list selects a package project to build. The profile list names the binary package the image needs from its configured repositories. Adding a package to one list does not automatically add it to the other.

See the package and profile map for current shared and profile-specific selections. The profile guide explains the image manifests; the package catalog links each source group.

Architecture scope

The build system can target x86_64, aarch64 and armv7h for repository and profile-image work. Each package recipe and profile still declares its own limits. The six standard install profiles currently define x86_64 package lists; do not read the build-system target list as a promise that every standard ISO is published for every architecture.

For profile support, compare the declared architecture, package list, boot configuration and package availability together. The profile development guide explains those checks.

Where O Language fits

O Language is a separate open-source project with its own runtime source. OnixOS maintains an olang package recipe, and individual profiles or tools may use the runtime. The distribution does not depend on O Language for its package manager, installer or base system.

Start learning the language at the O Language guide. For the language’s connection to an OnixOS installation, see its installation page.