<!-- Mail as an attachment to: monthly@freebsd.org -->
<project cat='misc'>
  <title>System initialization and service management</title>

  <contact>
    <person>
      <name>
        <given>Mark</given>
        <common>Heily</common>
      </name>
      <email>mark@heily.com</email>
    </person>
    <person>
      <name>
        <given>Jonathan</given>
        <common>de Boyne Pollard</common>
      </name>
      <email>J.deBoynePollard-newsgroups@NTLWorld.COM</email>
    </person>
    <person>
      <name>
        <given>Jordan</given>
        <common>Hubbard</common>
      </name>
      <email>jkh@freebsd.org</email>
    </person>
  </contact>

  <links>
    <url href="http://www.daemonspawn.org/2016/01/a-comparison-of-alternatives-to-init8.html">A comparison of init(8) and rc(8) replacements</url>
  </links>

  <body>
    <p>
      There are three active projects to provide an alternative to the traditional <i>init(8)</i> and <i>rc(8)</i> subsystems that manage the boot process and system services. There are a number of reasons driving the desire to change, including:
      <p>
      <ul>
      <li>faster boot times, made possible by launching services in parallel;
      <li>greater reliability, by ensuring that services are automatically restarted if they die;
      <li>simplified dependency management, using socket activation and similar techniques
      <li>the ability to launch services "on demand", and have them self-terminate when idle;
      <li>improved security by removing the need to start common daemons as the root user
      </ul>
      <p>
      Two of the projects, launchd and relaunchd, are based on the launchd(8) API introduced by Apple in Mac OS X. The NextBSD project has ported the original Apple source code by writing a Mach compatibility layer that allows it to run on FreeBSD. The relaunchd project started from scratch with the goal of creating a more modular, lightweight, and portable implementation of the launchd API. The third project, nosh, is a unique creation that also borrows concepts from launchd, systemd, and several other Unix operating systems.
      <p>
      While the FreeBSD project has not officially made a decision to replace the current init(8) and rc(8) subsystems, the existence and active development of alternatives will continue to drive innovation in this space.
    </p>
  </body>

  <help></help>
</project>
