The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Clem Cole <clemc@ccc.com>
To: Ronald Natalie <ron@ronnatalie.com>
Cc: TUHS main list <tuhs@minnie.tuhs.org>
Subject: Re: [TUHS] C++ / Kernel
Date: Thu, 23 Aug 2018 13:24:51 -0400	[thread overview]
Message-ID: <CAC20D2PaOchRCvJCj=+Z8xOm5nPDdLEoE7GN-oUHmyHyqxA5qg@mail.gmail.com> (raw)
In-Reply-To: <10c401d43aef$8be34870$a3a9d950$@ronnatalie.com>

[-- Attachment #1: Type: text/plain, Size: 3179 bytes --]

On Thu, Aug 23, 2018 at 10:43 AM <ron@ronnatalie.com> wrote:

> I'm not sure what "strong typing" gain you expect to find.   With the
> exception of the void* difference, C++ isn't much more "type strong" than
> C.
> A lot of the type issues you can find on the Kernel just by turning up the
> compiler warnings (or use lint).
>
100% agree...



>
> The biggest issue we had was BSD didn't use void* at all.   Had they
> converted pointers to void*, which is in implementation necessarily the
> same
> as char*,
> C would have done the right thing.   The problem is they did what I call
> "Conversion by union."
>
I just put it as 'silent architectural assumptions' in system's
programming.   In Henry's 10 commandments, he referred to this as assuming
'all the world is a Vax.'  (today the assumption is all the world is
INTEL*64).


The DevSwitch is the beginnings of an object oriented philosophy.   Alas,
> the original UNIX used it only for mapping major dev numbers to functions.
> It got some later use for other things like multi filesystem
> support.
>
Fair enough -- again.  As much as I love BSD, I'm quick to knock it (and
now Linux) a few pegs for two issues in this light.  At the time, adding
something like the file system switch was engious and novel.   It took a
couple of different schemes in different UNIX kernels (Sun, Masscomp, Eight
edition and later System V) and then a couple of arguments on how to do
interposition to stack them to settle on the proper functions needed for
the FS, but eventually we mostly have them.   But that took years, we still
don't have something like the Locus vproc work for the process layer,
although it was added to Linux as well as BSD/Mach [Linux rejected it - see
the OpenSSI.org work].

To me, if we had done the same thing with the process layer that we did to
FS's we would be better off.  But the reason is off course the lack of an
indirection layer which object give you.




>
> The scary supportability thing in the kernel, isn't so much typing, but the
> failuer to "hide" implementation details of one part of the kernel from the
> other.
>
Again, I agree.  But this argument screams in favor of Dykstra THE style
layering (e.g. micro-kernel) approach.   I always thought it was a better
way to go, but in the end, people always picked pure performance over the
safety that "information hiding" gives you.

It's tough, I've been on both sides of this debate and have empathy for
both positions.   As a supplier, it is all about being as fast as possible,
because the customers don't care how hard you have to work, they just want
as much speed as possible (in fact the super computer folks would really
rather no OS at all).  So the 'less is more' monolithic / hack /
architectural specific ideas make a lot of sense.    But some of the things
we are talking about here are ideas that aid us in the development side on
making 'better' or 'cleaner' systems - ones that are more maintainable and
easier to ensure are 'correct' - which often the custom will not pay for,
or worse shun because it end up being a little slower.

Clem


ᐧ

[-- Attachment #2: Type: text/html, Size: 5597 bytes --]

  reply	other threads:[~2018-08-23 17:25 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-08-23 14:42 ron
2018-08-23 17:24 ` Clem Cole [this message]
2018-08-23 20:21 ` Bakul Shah
2018-08-23 22:17   ` ron
2018-08-23 22:28     ` Nevin Liber
2018-08-23 22:48       ` Clem Cole
2018-08-23 23:14     ` Steffen Nurpmeso
2018-08-24 14:13       ` Steffen Nurpmeso
2018-08-24 14:32         ` ron
2018-08-24 18:15           ` Steffen Nurpmeso
2018-08-26 16:34             ` Paul Winalski
2018-08-27 16:31               ` Steffen Nurpmeso
2018-08-24  1:41     ` Bakul Shah
2018-08-24 10:41       ` Pete Turnbull
2018-08-24 12:17       ` ron
2018-08-24 18:36         ` Bakul Shah
2018-08-24 18:38           ` ron
2018-08-24  1:58     ` Dan Cross
2018-08-24  3:04       ` Clem cole
2018-08-24 14:01         ` Dan Cross
2018-08-24 13:22 ` Derek Fawcus
2018-08-24 16:59   ` Steffen Nurpmeso
2018-08-23 23:29 Noel Chiappa
2018-08-23 23:42 ` ron
2018-08-24  0:30   ` Clem Cole
2018-08-24  2:05     ` Bakul Shah
2018-08-24 12:21     ` ron
2018-08-24  1:27 Noel Chiappa
2018-08-24  2:52 ` Clem cole
2018-08-24  7:30 Paul Ruizendaal

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='CAC20D2PaOchRCvJCj=+Z8xOm5nPDdLEoE7GN-oUHmyHyqxA5qg@mail.gmail.com' \
    --to=clemc@ccc.com \
    --cc=ron@ronnatalie.com \
    --cc=tuhs@minnie.tuhs.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).