docs: rework all pages to Artix Wiki quality
- index.md: add download link + stable release announcement - building.md: add troubleshooting section (cache, squashfs, compression) - ci.md: IA upload enabled, push trigger removed (manual dispatch only) - development.md: add all gotchas from AGENTS.md (SDDM theme ordering, pipewire launcher, antergos-release in basestrap, CI changes) - installer.md: document fixed issues (audio, SDDM, os-release) - packages.md: add pipewire fork, antergos-sddm-theme, antergos-release - launcher.md: expand with module configs - init-systems.md: Chimera uses dinit, OpenRC marked as broken - openrc.md: add broken warning banner - wallpapers.md: default is antergos-wallpaper.png (not Adwaita Morning) - overlays: clean up explanations and symlink behavior - desktop-environments.md: add Discover note, clean up GNOME entry - dinit.md, runit.md, s6.md: polish and add troubleshooting sections
This commit is contained in:
+30
-28
@@ -7,56 +7,58 @@ has_children: true
|
||||
|
||||
# Init Systems
|
||||
|
||||
An **init system** is the first process that runs when your computer boots (PID 1). It's responsible for starting everything else — filesystems, networking, display manager, services, and more. Think of it as the foreman at a construction site: it doesn't do the work itself, but it makes sure everything gets started in the right order.
|
||||
An **init system** is PID 1 — the first process that runs when your computer boots. It starts everything else: filesystems, networking, display manager, services. Think of it as a foreman: it doesn't do the work itself, but it makes sure everything happens in the right order.
|
||||
|
||||
Antergos NeXT lets you choose between **four** init systems during installation. This page explains each one so you can pick what suits you.
|
||||
Antergos NeXT lets you choose between **four** init systems during online installation. (Offline mode uses Dinit, the default.)
|
||||
|
||||
> Don't know what init to choose? **Stick with Dinit** — it's the default, it's fast, and it's what Antergos NeXT ships with. OpenRC is also available if you prefer a more traditional approach.
|
||||
> **Don't know what to pick? Stick with Dinit** — it's the default, it's fast, and it's what Antergos NeXT ships with. OpenRC is also available but currently broken in Antergos NeXT (services don't enable correctly on installed systems).
|
||||
|
||||
## The inits
|
||||
|
||||
| Init | Philosophy | Complexity | Speed | Used by |
|
||||
|------|-----------|------------|-------|---------|
|
||||
| [Dinit](dinit) | Modern, dependency-based | Medium | Very fast | Antergos NeXT, Artix, new projects |
|
||||
| [OpenRC](openrc) | Simple, modular, Unix-like | Low | Fast | Gentoo, Artix, Devuan, Alpine |
|
||||
| [Runit](runit) | Minimal, reliable, Unix-like | Low | Very fast | Void Linux, AntiX |
|
||||
| [S6](s6) | Supervision-based, secure | Medium-High | Very fast | New projects, embedded |
|
||||
| [Dinit](dinit) | Modern, dependency-based, parallel | Medium | Very fast | Antergos NeXT (default), Chimera Linux, Artix, new projects |
|
||||
| [OpenRC](openrc) | Traditional, modular, shell-script-based | Low | Fast | Gentoo, Artix, Devuan, Alpine — **currently broken in Antergos NeXT** |
|
||||
| [Runit](runit) | Minimal, supervision-based, Unix-like | Low | Very fast | Void Linux, AntiX |
|
||||
| [S6](s6) | Full supervision suite, modular | Medium-High | Very fast | Artix, embedded systems |
|
||||
|
||||
## Choosing an init
|
||||
|
||||
| If you want... | Pick... |
|
||||
|----------------|---------|
|
||||
| The fastest boot possible | Dinit or S6 |
|
||||
| Something familiar and well-documented | OpenRC |
|
||||
| The simplest, most Unix-like approach | Runit |
|
||||
| Advanced supervision and process management | S6 |
|
||||
| The fastest boot, automatic dependency resolution | Dinit |
|
||||
| Something familiar, well-documented, simple | OpenRC |
|
||||
| The simplest supervision-based approach | Runit |
|
||||
| The most powerful non-systemd init with full supervision | S6 |
|
||||
|
||||
## What they all have in common
|
||||
|
||||
- **No systemd** — all four are independent implementations
|
||||
- **Service scripts** — services are configured via files in `/etc/`
|
||||
- **Runlevels** — groups of services that start together
|
||||
- **Logging to files** — logs go to `/var/log/`, not `journalctl`
|
||||
- **Runlevels** — groups of services that start together under different conditions
|
||||
- **Plain-text logging** — logs go to `/var/log/`, not `journalctl`
|
||||
|
||||
## What's different
|
||||
## Key differences
|
||||
|
||||
The main differences are in:
|
||||
|
||||
1. **How services are defined** — OpenRC uses shell scripts, Dinit uses a declarative config format, Runit uses executable scripts, S6 uses a supervision tree
|
||||
2. **How they manage dependencies** — some handle it automatically, some leave it to you
|
||||
3. **How they supervise processes** — some restart crashed services automatically, some don't
|
||||
4. **How fast they boot** — Dinit and S6 are designed for parallel startup and are noticeably faster
|
||||
| Aspect | Dinit | OpenRC | Runit | S6 |
|
||||
|--------|-------|--------|-------|-----|
|
||||
| Service format | Declarative `.conf` files | Shell scripts | Executable `run` scripts | `run` scripts + s6-rc database |
|
||||
| Dependencies | Automatic | Manual (`need`/`use`) | None | Automatic (s6-rc) |
|
||||
| Supervision | Optional | No | Yes (runsv) | Yes (s6-supervise) |
|
||||
| Logging | None built-in | syslog | Per-service (optional) | Per-service (s6-log) |
|
||||
| Init script | None needed | `/etc/init.d/` | `/etc/runit/1/2/3` | s6-linux-init |
|
||||
|
||||
## Learning Linux with init systems
|
||||
|
||||
If you're new to Linux, learning about init systems is a great way to understand how your OS works under the hood. Here's why:
|
||||
If you're new to Linux, init systems are one of the best ways to understand how your OS works under the hood:
|
||||
|
||||
- **You'll learn about processes** — PID 1, service trees, process supervision
|
||||
- **You'll learn about boot order** — what needs to start before what
|
||||
- **You'll learn about dependencies** — why NetworkManager needs dbus, why dbus needs udev
|
||||
- **You'll learn about logging** — where logs go, how to read them
|
||||
- **You'll learn about runlevels** — why your system behaves differently in single-user mode vs normal boot
|
||||
- **Processes** — PID 1, service trees, process supervision
|
||||
- **Boot order** — what needs to start before what
|
||||
- **Dependencies** — why NetworkManager needs dbus, why dbus needs udev
|
||||
- **Runlevels** — why your system behaves differently in single-user vs normal boot
|
||||
|
||||
The best part? If you break something with services, you can always fix it — service management is much simpler than kernel config or package management.
|
||||
The best part? If you break something with services, you can always fix it by re-enabling or starting it manually. Service management is much simpler than kernel config or package management.
|
||||
|
||||
> **Pro tip**: If you're dual-booting or using a VM, try all four inits. Install a test system with Dinit first, then reinstall with OpenRC, then Runit, then S6. See which one feels right.
|
||||
## Switching init after install
|
||||
|
||||
Artix provides a [switching init guide](https://wiki.artixlinux.org/Main/SwitchInit) that also works on Antergos NeXT. The process involves installing the new init's packages, configuring its services, and updating the bootloader.
|
||||
|
||||
Reference in New Issue
Block a user