Initng

Last updated
Initng
Original author(s) Jimmy Wennlund
Developer(s) Initng contributors
Initial releaseMarch 16, 2005;20 years ago (2005-03-16)
Stable release
2.6.10 / March 24, 2007;18 years ago (2007-03-24)
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]

Contents

Overview

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

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

Configuration and Usage

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

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

Although developed for Linux, Initng was also ported to other Unix-like systems, such as FreeBSD and Haiku. [7]

Benchmarking and Performance

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

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

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

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

Initng was one of several init system alternatives to emerge in the mid-2000s:

See also

References

  1. 1 2 3 OSNews. Initng - Next Generation Booting. OSNews. 2005.
  2. 1 2 3 4 Corbet, Jonathan. Faster Booting with Initng. LWN.net. 2006.
  3. 1 2 3 Williams, Glyn. Initng: Fast Booting Linux. Linux Journal. 2006.
  4. 1 2 3 4 Initng contributors. Initng GitHub Repository. GitHub. 2025.
  5. Initng contributors. Initng User Manual. Initng.org (archived). 2006.
  6. DistroWatch. News – Lightweight Init Alternatives. DistroWatch. 2007.
  7. HaikuPorts. Initng for Haiku. HaikuPorts Wiki. 2009.
  8. Linux Format. Issue 72: Awards. Linux Format Archive. 2005.
  9. 1 2 Freedesktop.org. systemd. Freedesktop.org. 2025.
  10. Canonical Ltd. Upstart. Launchpad. 2006.
  11. OpenRC contributors. Introduction to OpenRC. GitHub. 2022.
  12. Bernstein, Gerrit. runit – a UNIX init scheme with service supervision. Smarden.org. 2001.