LLMpediaThe first transparent, open encyclopedia generated by LLMs

OpenRC

Generated by DeepSeek V3.2
Note: This article was automatically generated by a large language model (LLM) from purely parametric knowledge (no retrieval). It may contain inaccuracies or hallucinations. This encyclopedia is part of a research project currently under review.
Article Genealogy
Parent: Linux Hop 4
Expansion Funnel Raw 57 → Dedup 36 → NER 13 → Enqueued 13
1. Extracted57
2. After dedup36 (None)
3. After NER13 (None)
Rejected: 23 (not NE: 23)
4. Enqueued13 (None)
OpenRC
NameOpenRC
DeveloperRoy Marples, OpenRC Team
Released11 February 2007
Latest release version0.52.1
Latest release date15 October 2024
Programming languageC, Shell script
Operating systemUnix-like
GenreInit system, Service manager
LicenseBSD 2-Clause
Websitehttps://github.com/OpenRC/openrc

OpenRC. It is a Unix-like init system and service manager used to bootstrap an operating system, control system services, and manage daemons. Originally created for Gentoo Linux and FreeBSD, it is designed to be portable, fast, and dependency-driven while remaining independent from a specific Linux kernel or core system. As a BSD-licensed project, it provides a flexible alternative to systems like systemd and SysVinit, integrating with various distributions and BSD variants.

Overview

OpenRC functions as a dynamic init system that starts the essential user space after the Linux kernel hands over control during the boot process. It is not a direct replacement for the traditional SysVinit but can work alongside it or other init systems, providing enhanced service management. The project emphasizes simplicity, speed, and correctness, adhering to the Unix philosophy of modular design. Its development is closely associated with Gentoo Linux, where it became the default init system, and it has seen significant adoption within the Alpine Linux distribution, which is popular for Docker containers and embedded systems.

Design and features

The architecture of OpenRC is modular and relies on shell scripts for service definitions, written primarily in C for core components to ensure performance. Key features include parallelized startup of system services, dependency-based ordering, and comprehensive runlevel support, which are concepts inherited from SysVinit. It integrates with the Linux kernel's cgroups for process tracking and can utilize udev for hardware event management, though it remains agnostic to specific hardware abstraction layers. A distinctive component is its optional integration with init.d scripts, providing compatibility with traditional Unix administration practices.

Usage and configuration

Administrators configure OpenRC through files located in `/etc/init.d/` and `/etc/conf.d/` directories, where service scripts and their specific variables are defined. The primary command-line tool for management is `rc-service`, used to control individual daemons, while `rc-update` manages service dependencies and runlevel assignments. The system supports LSB-style headers in init scripts for compatibility and can generate dependency information automatically. For network configuration, it often pairs with tools like Netifrc on Gentoo Linux or BusyBox's utilities on Alpine Linux, and it can work with various logging daemons such as syslog-ng or metalod.

Adoption and compatibility

OpenRC is the default init system for Gentoo Linux, Alpine Linux, Artix Linux, and Hyperbola GNU/Linux-libre, and it is available as an option for Devuan, Void Linux, and FreeBSD. Its lightweight nature has made it a favored choice for embedded environments, containerized deployments using Docker or Podman, and specialized distributions like KISS Linux. The system maintains broad compatibility with BSD init systems, traditional SysVinit scripts, and can coexist with parts of systemd through projects like elogind for session tracking. This portability has led to its use on non-Linux platforms, including certain BSD/OS derivatives.

Development and history

The project was initiated by Roy Marples in 2007 to provide a modern, portable init system for NetBSD, later expanding to Gentoo Linux and other Unix-like operating systems. Major development milestones include the introduction of cgroups support, the separation of the core `rc` suite from Gentoo Linux's base system, and the establishment of a dedicated OpenRC Team for maintenance. The codebase is hosted on GitHub, where it follows a rapid release cycle, and it is distributed under the permissive BSD 2-Clause License. Ongoing development focuses on improving performance, enhancing security features like sandboxing, and maintaining compatibility with emerging Linux kernel features and alternative service managers.

Category:Init daemons Category:Free software programmed in C Category:Software using the BSD license Category:2007 software