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]
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]
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]
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]
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]
Although developed for Linux, Initng was also ported to other Unix-like systems, such as FreeBSD and Haiku. [7]
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]
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]
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]
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]
Initng was one of several init system alternatives to emerge in the mid-2000s: