supervision - discussion about system services, daemon supervision, init, runlevel management, and tools such as s6 and runit
 help / color / mirror / Atom feed
From: "Casper Ti. Vector" <caspervector@gmail.com>
To: supervision@list.skarnet.org
Subject: Re: The "Unix Philosophy 2020" document
Date: Sun, 13 Oct 2019 21:57:18 +0800	[thread overview]
Message-ID: <20191013135718.xkom7qghgqxl2cac@CasperVector> (raw)
In-Reply-To: <20191013102113.0177ff57@dickeberta>

(Removed the skaware list from To:, for previously noted reason.)

On Sun, Oct 13, 2019 at 10:21:13AM +0200, Oliver Schad wrote:
> thank you for the effort putting things together. I was asking myself
> some questions. What is the target group? What is the exact purpose of
> that document?

As was hinted in the Foreword, the document is a compendium, but I
attempted to keep reasonable separation of concerns between the parts.
So the first part is about UP2020 (including the systemd rants, which
are the most important reason I can and need to ask for advices here),
the second part about my attempt to more systematically explore the
social values of the Unix philosophy (from the UP2020 perspective),
and the third part about the "Unix/Lisp reconcilliation" proposal.

Different passages are aimed at various groups of people, eg.:
* The document as a whole might be interesting for Unix addicts who
  happen to also appreciate the UP.
* The first part would probably be useful for people entangled in the
  "init wars", particularly for those who have strong opinions.
* The third part might be of some value to Unix developers interested in
  programming languages, as well as certain PL researchers.
* In general, footnotes are less essential contents, and often require
  deeper understanding of the subject matter.

> For systemd I have a more practical approach to discuss:
> 
> 1) how many config statements are there?
> 2) how many cases exist, which you have to work around (practical
> setups, where a config statement is missing or do the wrong thing)
> 3) how many bugs/feature requests are opened over time and how long does
> it take to solve them?
> 4) how big is the memory footprint and for which systems this is too
> much?
> 5) how many lines of code?
> 
> So you would have metrics - especially if you compare them to other
> solutions. If you want to have more food, make more metrics (call graph
> complexity or whatever). But there are simple metrics, which shows the
> result(!) of the design. Talking about the design itself is really a
> personal opinion otherwise and very lengthy and needs a lot of
> knowledge to follow.

I see.  Some of these metrics can be found from citations ([55] for (3),
[132] for (4), both as of v0.1.1) or in an easily verifiable way ((1)
and (5); tarball size of systemd + dependencies vs. tarball size of s6 +
friends + dependencies specific to them might be an easy indicator for
(5)).  Most arguments I made are admittedly qualitative, but they are
(if not, please tell me :) either backed up by citations or self-evident
to people who know a little about systemd.  On the other hand, I find
convincing quantitative evidences for most arguments much harder to
find (which is why statistics is an independent research field :);
nevertheless, the requirement about "know a little about systemd" is
indeed tricky, which is part of why I asked here.

> For the philosophy itself there are some parts missing in my opinion:
> what does that really mean what you're talking about in practical
> solution?
> 
> Is there a practical approach anywhere, interface definition,
> architecture? You describe a few patterns ok - but they are really
> common. I don't get really, which people would help this document.
> 
> Maybe that thing is missing: if somebody would like to build a modern
> UNIX: what are practical steps to achieve it?
> 
> Which tools, which interfaces (kernel, userland) are needed?

Before the publication of the document there was a alpha phase of it
in a subgroup of my local LUG (cf. the Afterword), and somebody asked
something similar.  My current opinion is that the UP2020 summary
(minimising the cognitive complexity of the system while almost
satisfying the requirements) can be used to compare *existing* systems
and *practical/semi-practical* proposals, but does not directly dictate
specific technical routes to a Unix-ish solution.

Metaphorically, UP2020 to practical ways to Unix-ish solutions is like
the principle of least action to the calculus of variations, except that
practical Unix-ish ways cannot be precisely formulated like the calculus
of variations is.  Instead, we have to foster programmers' (imprecise
but productive in another way) creativity, and the ways to foster
creativity were outlined in Section 11-12.

> BTW: I can't really see images inside the PDF

Sorry, but there are currently no figures due to a limited time budget;
I will probably make a plan about adding pictures and then implement it,
perhaps before the end of this year if time permits.  As a further note,
I am far from as good a teacher as V. I. Arnold or Dan Friedman (cf.
the end of Section 16), and soon after actually beginning to write the
document I found it really hard to accommodate for people with varied
levels of backgrounds.  This is quite serious a barrier for newbies, and
what has already been done is surely not quite enough; I will rethink
about this often.

-- 
My current OpenPGP key:
RSA4096/0x227E8CAAB7AA186C (expires: 2020.10.19)
7077 7781 B859 5166 AE07 0286 227E 8CAA B7AA 186C



  reply	other threads:[~2019-10-13 13:57 UTC|newest]

Thread overview: 69+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <20190831130730.ki6ma7i5curucowe@caspervector>
     [not found] ` <em5af31b6f-4dd3-4a31-a6cf-beccb100238d@elzian>
     [not found]   ` <20190901091157.bjtfhqq6d2rg75yo@CasperVector>
2019-09-27  8:38     ` Casper Ti. Vector
2019-10-12 17:37       ` Casper Ti. Vector
2019-10-12 18:58         ` Steve Litt
2019-10-12 19:14           ` Casper Ti. Vector
2019-10-13  3:31         ` Casper Ti. Vector
2019-10-13  8:21         ` Oliver Schad
2019-10-13 13:57           ` Casper Ti. Vector [this message]
2019-12-08 17:04             ` Casper Ti. Vector
2019-10-14  6:35           ` Jens Rehsack
2019-10-22 15:33         ` Casper Ti. Vector
2019-10-22 16:54           ` Steve Litt
2019-10-22 17:07             ` Casper Ti. Vector
2019-11-17  6:26         ` Casper Ti. Vector
2019-11-17  7:28           ` Casper Ti. Vector
2019-11-24 20:13             ` Guillermo
     [not found]               ` <20191125025202.oqu4ennu3lexnxsa@caspervector>
2019-11-25  2:52               ` Casper Ti. Vector
2019-11-25 14:20                 ` Casper Ti. Vector
2019-11-30 12:13                   ` Jeff
2019-11-30 12:20                     ` Jeff
2019-11-30 12:45                       ` Jeff
2019-11-30 13:29                         ` Laurent Bercot
2019-11-30 14:43                           ` Casper Ti. Vector
2019-11-30 15:01                             ` Jeff
2019-11-30 15:48                               ` Casper Ti. Vector
2019-11-30 16:58                                 ` Jeff
2019-12-26 17:52           ` Casper Ti. Vector
2019-12-27  1:09             ` Oliver Schad
2019-12-27 11:11               ` Casper Ti. Vector
2019-12-27  2:57             ` Steve Litt
2019-12-27 13:54               ` Casper Ti. Vector
2019-12-27 15:37                 ` Casper Ti. Vector
2020-01-04  9:10                   ` Casper Ti. Vector
2020-01-04 18:25                     ` fungal-net
2020-01-05  0:36                       ` Casper Ti. Vector
2020-01-05  6:31                       ` Casper Ti. Vector
2020-01-05  6:54                         ` Casper Ti. Vector
2019-12-27 23:05                 ` Steve Litt
     [not found]               ` <20191227135411.jbtxorloetcvv5bx@caspervector>
     [not found]                 ` <20191227153719.2tt4bbidp3v7t23u@caspervector>
     [not found]                   ` <20200104091013.wesvxvcqxquc5n2h@caspervector>
2020-01-04 12:32                     ` Laurent Bercot
2019-12-27 21:29             ` Steve Litt
2019-12-27 23:34               ` Alex Suykov
2019-12-28 10:35               ` Casper Ti. Vector
2019-10-28 15:34       ` Avery Payne
2019-10-28 15:51         ` Casper Ti. Vector
     [not found]   ` <20190901091157.bjtfhqq6d2rg75yo@caspervector>
     [not found]     ` <20190927083816.tectynx7dzlfcvb7@caspervector>
     [not found]       ` <20191012173743.drzlgnrw4hib6hh4@caspervector>
     [not found]         ` <20191117062644.lt6wfmqwijqqhc5w@caspervector>
     [not found]           ` <20191226175258.o2nsregew6tlqlbu@caspervector>
2019-12-26 19:17             ` Laurent Bercot
2019-12-27 11:23               ` Casper Ti. Vector
2019-12-28  2:24                 ` Alex Suykov
2019-12-28  2:57                   ` eric vidal
2019-12-28 14:04                     ` Alex Suykov
2019-12-28 18:05                       ` Guillermo
2019-12-28 23:19                         ` Oliver Schad
2019-12-28 18:12                       ` Oliver Schad
2019-12-28 21:32                       ` eric vidal
2019-12-28  6:46                   ` Steve Litt
2019-12-28 13:37                     ` Alex Suykov
2019-12-28 13:54                       ` Casper Ti. Vector
2019-12-28 17:41                       ` Oliver Schad
2019-12-28 18:29                         ` Serge E. Hallyn
2019-12-28 23:16                           ` Oliver Schad
2019-12-28 21:31                         ` eric vidal
2019-12-29 16:07                         ` Alex Suykov
2019-12-29 20:32                           ` Oliver Schad
2019-12-28 10:26                   ` Casper Ti. Vector
     [not found]               ` <20191227112309.3fow6vynss2ifw4t@caspervector>
2019-12-27 12:32                 ` Laurent Bercot
2019-12-27 13:48                   ` Casper Ti. Vector
2019-12-27 23:54                   ` Oliver Schad
2019-12-27 23:56                     ` Oliver Schad
2019-12-28 15:19                       ` Guillermo
2019-12-28 18:16                         ` Oliver Schad
2019-12-28 20:44                   ` Laurent Bercot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20191013135718.xkom7qghgqxl2cac@CasperVector \
    --to=caspervector@gmail.com \
    --cc=supervision@list.skarnet.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).