Initng
Initng | |
---|---|
![]() | |
Original author(s) | Jimmy Wennlund |
Developer(s) | Initng contributors |
Initial release | March 16, 2005 |
Stable release | 2.6.10
/ March 24, 2007 |
Repository | |
Written in | C |
Operating system | Unix-like |
Platform | Cross-platform |
Available in | English |
Type | init |
License | GNU General Public License |
Website | Archived 2016-04-04 at the Wayback Machine |
Initng is a dependency-based init system intended as a complete replacement for the traditional System V init. It was designed to improve boot performance by allowing services to start concurrently once their dependencies are met.[1]
Overview
[edit]Most conventional init systems, such as Sysvinit, start system services sequentially. Initng, by contrast, builds a dependency graph to identify which services can be started in parallel, significantly reducing system startup time.[2] It also provides a control interface named ngc, which allows users to query and manage running services.[3]
Architecture
[edit]Initng consists of a core daemon (initng), a control utility (ngc), and configuration files (.i files). Each service is represented by a separate file that defines its dependencies, execution command, and runlevel. The system builds a directed acyclic graph of services and starts them as soon as all dependencies are satisfied. This modular architecture makes Initng lightweight and adaptable for embedded environments.[4]
Features
[edit]- Asynchronous and parallel process startup[3]
- Explicit dependency declaration using .i files[1]
- Service supervision and automatic restart[4]
- Built-in statistics on startup time per service[2]
- Interactive CLI tool (ngc) for runtime control[3]
Configuration and Usage
[edit]To add a new service, users create a .i file specifying name, daemon, need, and exec parameters. Initng supports runlevels, and services can be managed in real time using ngc:
ngc status network ngc restart apache2 ngc shutdown
This level of control offers more transparency than traditional init systems.[5]
History and development
[edit]Initng was released in March 2005 by Jimmy Wennlund.[1] The most recent stable version, 2.6.10, was released in March 2007. The project eventually transitioned to maintenance by Ismael Luceno.[4] It was adopted as the default init system by several smaller distributions, including Pingwinek and Bee Linux.[6]
Platform support
[edit]Although developed for Linux, Initng was also ported to other Unix-like systems, such as FreeBSD and Haiku.[7]
Benchmarking and Performance
[edit]Initng demonstrated significantly faster boot times than Sysvinit, especially on multi-core systems. On average, systems booted 30–50% faster depending on configuration. Parallel startup and dependency resolution contributed to this improvement.[2]
Extensibility
[edit]Initng supports custom plugins and modules, making it adaptable to diverse environments. It allows integration with logging tools and system monitors. Developers can create their own plugin modules in C to extend its capabilities.[4]
Reception
[edit]Initng gained early attention in the Linux community for dramatically improving boot times.[2] In November 2005, it received the "Hottest Pick" award from Linux Format magazine.[8]
Criticism and Limitations
[edit]Critics noted that Initng lacked robust documentation and had a steep learning curve. Its compatibility with traditional SysV init scripts was limited, making adoption harder in large distributions. Eventually, the rise of systemd overshadowed Initng due to broader integration and community support.[9]
Comparison with other init systems
[edit]Initng was one of several init system alternatives to emerge in the mid-2000s:
- Upstart – event-driven, used in Ubuntu from 2006 to 2014.[10]
- OpenRC – used in Gentoo and Alpine Linux, known for parallel booting and simplicity.[11]
- runit – focused on service supervision, used in Void Linux.[12]
- systemd – dominant init system in modern Linux distributions.[9]
See also
[edit]- Init (computing)
- Systemd
- Runit
- Upstart
- OpenRC
- Embedded Linux
- Startup performance
- Process supervision
External links
[edit]References
[edit]- ^ a b c OSNews. Initng - Next Generation Booting. OSNews. 2005. [1]
- ^ a b c d Corbet, Jonathan. Faster Booting with Initng. LWN.net. 2006. [2]
- ^ a b c Williams, Glyn. Initng: Fast Booting Linux. Linux Journal. 2006. [3]
- ^ a b c d Initng contributors. Initng GitHub Repository. GitHub. 2025. [4]
- ^ Initng contributors. Initng User Manual. Initng.org (archived). 2006. [5]
- ^ DistroWatch. News – Lightweight Init Alternatives. DistroWatch. 2007. [6]
- ^ HaikuPorts. Initng for Haiku. HaikuPorts Wiki. 2009. [7]
- ^ Linux Format. Issue 72: Awards. Linux Format Archive. 2005. [8]
- ^ a b Freedesktop.org. systemd. Freedesktop.org. 2025. [9]
- ^ Canonical Ltd. Upstart. Launchpad. 2006. [10]
- ^ OpenRC contributors. Introduction to OpenRC. GitHub. 2022. [11]
- ^ Bernstein, Gerrit. runit – a UNIX init scheme with service supervision. Smarden.org. 2001. [12]