about summary refs log tree commit diff
path: root/doc/why.html
diff options
context:
space:
mode:
authorLaurent Bercot <ska-skaware@skarnet.org>2016-02-25 11:40:50 +0000
committerLaurent Bercot <ska-skaware@skarnet.org>2016-02-25 11:40:50 +0000
commit78a05ebebe174ea247691883165970df1ddb4db3 (patch)
tree685932d42b248ef02f013ad38c79332666095100 /doc/why.html
parent56e02ff74bce96e3c710247f4f11d66f34e7f28b (diff)
downloads6-78a05ebebe174ea247691883165970df1ddb4db3.tar.gz
s6-78a05ebebe174ea247691883165970df1ddb4db3.tar.xz
s6-78a05ebebe174ea247691883165970df1ddb4db3.zip
Doc fix about launchd's XML usage (thanks awilfox)
Diffstat (limited to 'doc/why.html')
-rw-r--r--doc/why.html14
1 files changed, 9 insertions, 5 deletions
diff --git a/doc/why.html b/doc/why.html
index 9438d68..7ee0f68 100644
--- a/doc/why.html
+++ b/doc/why.html
@@ -103,13 +103,17 @@ Process 1 should be <em>absolutely stable</em>, it should be guaranteed
 to never crash, so the whole of its source code should be under control. At
 Upstart's level of complexity, those goals are outright impossible to achieve,
 so this approach is flawed by design. </li>
- <li> launchd suffers from the same kind of problem. Regardless of how
-things are actually implemented inside (which I have no idea about), services
+ <li> launchd suffers from the same kind of problems. Example: Services
 running under launchd must be configured
 <a href="https://developer.apple.com/library/mac/documentation/MacOSX/Conceptual/BPSystemStartup/Chapters/CreatingLaunchdJobs.html">using
-XML</a>. That means there is an XML parser in process 1.
-<a href="https://software.intel.com/sites/default/files/race.jpg">What
-could possibly go wrong&nbsp;?</a> </li>
+XML</a>; the launchctl process interprets the XML, converts it into a
+key-value store (which is strictly
+less powerful than XML, so why do they even use XML in the first place?)
+and sends it to launchd via a Mach-specific IPC. Process 1 needs to be
+linked against the library that handles the Mach IPC, it needs to decode
+the key-value store, and use it to run and supervise a daemon. And it
+needs to keep everything in memory. This is
+a lot more complex and resource-consuming than it needs to be. </li>
  <li> systemd is much, much worse than the other ones, and a real danger
 for the future of GNU/Linux. I have a <a href="systemd.html">special page</a>
 dedicated to it. </li>