svn commit: r47619 - head/en_US.ISO8859-1/htdocs/news/status

Benjamin Kaduk bjk at
Sun Oct 18 21:35:20 UTC 2015

Author: bjk
Date: Sun Oct 18 21:35:18 2015
New Revision: 47619

  Add nosh project report from Jonathan de Boyne Pollard
  With some editing by me for style consistency with the rest of the report.


Modified: head/en_US.ISO8859-1/htdocs/news/status/report-2015-07-2015-09.xml
--- head/en_US.ISO8859-1/htdocs/news/status/report-2015-07-2015-09.xml	Sun Oct 18 21:24:46 2015	(r47618)
+++ head/en_US.ISO8859-1/htdocs/news/status/report-2015-07-2015-09.xml	Sun Oct 18 21:35:18 2015	(r47619)
@@ -2996,4 +2996,125 @@
+  <project cat="proj">
+    <title>The nosh Project</title>
+    <contact>
+      <person>
+	<name>
+	  <given>Jonathan</given>
+	  <common>de Boyne Pollard</common>
+	</name>
+	<email>J.deBoynePollard-newsgroups at NTLWorld.COM</email>
+      </person>
+    </contact>
+    <links>
+      <url href="">Introduction
+	and blurb</url>
+      <url href="">&os;
+	binary packages</url>
+      <url href="">Installation
+	How-To</url>
+      <url href="">Roadmap</url>
+      <url href="">Commands</url>
+      <url href="">A
+	slightly outdated nosh Guide</url>
+    </links>
+    <body>
+      <p>The nosh project is a suite of system-level utilities for
+	initializing, running, and shutting down BSD systems, and for
+	managing daemons, terminals, and logging.  It supersedes BSD
+	<tt>init</tt> and the NetBSD <tt>rc.d</tt> system, drawing
+	inspiration from Solaris SMF for named milestones,
+	daemontools-encore for service control/status mechanisms, UCSPI,
+	and IBM AIX for separated service and system management.  It
+	comprises a range of compatibility mechanisms, including shims for
+	familiar commands from other systems, and an automatic import
+	mechanism that takes existing configuration data from
+	<tt>/etc/fstab</tt>, <tt>/etc/rc.conf{,.local}</tt>,
+	<tt>/etc/ttys</tt>, and elsewhere, applying them to its native
+	service definitions and creating additional native services.  It
+	is portable (including to Linux) and composable, it provides a
+	migration path from the world of systemd Linux, it does not
+	require new kernel APIs.  It provides clean service environments,
+	orderings and dependencies between services, parallelized startup
+	and shutdown (including fsck), strictly size-capped and
+	autorotated logging, the service manager as a
+	"subreaper", and uses kevent(2) for event-driven
+	parallelism.</p>
+      <p>The past few months have seen a growth in the import
+	mechanism, with full import of <tt>/etc/fstab</tt> and
+	<tt>/etc/ttys</tt> available in version 1.18 in July, and importing
+	PC-BSD Warden and &os; 9 jails, and full import of <tt>gbde</tt> and
+	<tt>geli</tt> mount/unmount mechanisms in version 1.21 in October.
+	It has also gained the ability to automatically re-generate
+	<tt>host.conf</tt> and <tt>sysctl.conf</tt> whenever their source
+	files change.</p>
+      <p>Other developments in the past few months include fully
+	independent shutdown support, no longer relying upon an externally
+	provided shutdown command from another toolset, and a full suite of
+	binary packages.  As of version 1.20, it became possible to
+	have a fully-nosh-managed system, on both &os; and Linux, using just
+	precompiled binary packages.</p>
+      <p>The biggest task remaining is one that was set a while ago:
+	the creation of enough native service bundles and ancillary
+	utilities to entirely supplant the <tt>rc.d</tt> system.  A
+	lot of this has been achieved, with the original target list of
+	157 items now down to just 39 remaining.  These are the tricky
+	ones, of course, where help is most needed.
+      </p>
+    </body>
+    <help>
+      <task>
+	<p>There are still a few rc scripts left that should be easy
+	  to convert, such as <tt>/etc/rc.d/gptboot</tt> and
+	  <tt>/etc/rc.d/growfs</tt> as oneshot services,
+	  <tt>/etc/rc.d/routing</tt>, and <tt>/etc/rc.d/kldxref</tt>.</p>
+      </task>
+      <task>
+	<p>&os;'s <tt>/etc/rc.d/bluetooth</tt> is over 360 lines long.
+	  In 2011, Iain Hibbert wrote a "simpler" <tt>bluetooth</tt> for
+	  NetBSD.  This can perhaps be used as a simpler basis for a nosh
+	  translation.</p>
+      </task>
+      <task>
+	<p>Add kernel support for passing a <tt>-b</tt> option to
+	  pid 1, and support for a boot_bare variable in the loader, to
+	  allow "emergency" (where even no shell dotfiles are
+	  loaded) and "rescue" mode bootstraps, akin to Linux.
+	  (History: The <tt>-b</tt> mechanism and idea date back to
+	  version 2.57d of Miquel van Smoorenburg's System 5 init clone,
+	  dated 1995-12-03, and was already known as "emergency boot" by
+	  1997.)</p>
+      </task>
+      <task>
+	<p>Add support to &os;'s fsck(8) for outputting
+	  machine-readable progress reports to a designated file descriptor,
+	  so that nosh can provide progress bars for multiple fscks running
+	  in parallel.  nosh already provides this functionality on Linux,
+	  where fsck(8) does provide machine-readable output.</p>
+      </task>
+      <task>
+	<p>Identify when the configuration import system needs to be
+	  triggered, such as when <tt>bsdconfig</tt> alters configuration
+	  files, and create the necessary hooks to import external
+	  configuration changes into nosh.</p>
+      </task>
+      <task>
+	<p>Investigate how &os;/PC-BSD could be improved by taking
+	  advantage of some available nosh package mechanisms.</p>
+      </task>
+    </help>
+  </project>

More information about the svn-doc-all mailing list