The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: imp@bsdimp.com (Warner Losh)
Subject: [TUHS] daemons are not to be exorcised
Date: Tue, 20 Mar 2018 22:30:27 -0600	[thread overview]
Message-ID: <CANCZdfrm8gkZO6nDmyM=NqnEk92X0Lh=bpLxH4CzRCT8RbsP2Q@mail.gmail.com> (raw)
In-Reply-To: <20180321023125.GC6850@thunk.org>

On Tue, Mar 20, 2018 at 8:31 PM, Theodore Y. Ts'o <tytso at mit.edu> wrote:

> On Mon, Mar 19, 2018 at 10:40:44PM -0600, Grant Taylor via TUHS wrote:
> >
> > I think many people working on Linux are genuinely trying to make it
> better.
> > They just have no conceptual history to guide them.
>
> There are also ways in which Unix is just simply deficient.  For
> example, take syslog.  It's simple, sure, but it has an extremely
> simple structure, and it's not nearly flexible enough for more
> sophisticated use cases.  As a result, *many* commercial Unix systems
> have tried reinventing an event logging system which had more structure.
>

At Netflix, we log JSON entries and scrape the logs to upload to our data
base.... Simple syslogd can work, but I've often seen other packets layered
upon its simple protocol...

Early NetBSD and FreeBSD systems required a reboot when you inserted a
> PCMCIA card, and would crash if you ever tried to eject a PCMCIA card.
>

To be fair, the earliest versions of Linux's PC Card support did likewise.
Like the BSDs, the initial drivers were network or serial that were hacks
on existing drivers that "reached over" and configured the PCIC so the
device could probe. Those hacks were later replaced with better code that
allowed for a wider array of drivers, as well as allowing them to come and
go. The first hacks for hot-plug PCI also followed a similar trajectory:
some hack to let people boot with the hardware in place, either in the
driver itself, or in the bridges, followed months or years later by proper
hot-plug support. USB was similar, but plug and unplug were well-trodden
paths by the time it came along, so there was no lag...


> You may not like Linux's solution for supporting these sorts of
> hardware --- but tell me: How would you hack V7 Unix to support them?
>

Much the same way that FreeBSD has gone: to move away form the hand-tweaked
config tables with lots of ifdefs in v7 to having each driver self
contained with an init function that registers other interesting things and
a way to add to the tree dynamically after boot. But maybe I'm biased,
though it is approximately the model that Linux's device discovery evolved
into after trying a couple of different strategies out first...

But there's many things that v7 never had to deal with: multiple CPU
(everybody did that differently), dynamic devices, thousands of different
devices supported by hundreds of drivers (it supports like 10 or 15 major
ones), cope with large memory systems, deal with devices that had widely
varying performance (all disks were the same: you submitted the request and
tens of milliseconds later you got the results: no imbalances if you had a
system with both NVMe with microsecond response time and tens of thousands
of queue entires along with spinning rust with 10ms response time and maybe
a few dozen). v7 didn't have to cope with devices that were very smart, so
it didn't have to deal with dynamically balancing system resources to cope.
It didn't have to deal with demand paging, or pages of different sizes. It
didn't have to cope with cache coherency issues. It didn't even bother with
shared libraries, nor did it require a MMU, though there were performance
and security benefits. Oh, and it didn't deal with security very well by
today's standards.

Even so, the code is very simple to read and understand. And now that's
it's available, it makes so many other decisions and design patterns make
so much more sense than even finely written prose describing them. The
simple elegance of its ideas and implementation afforded a clarity of
design that allowed one to see the basics and hold it all in your head with
not too much study. The same cannot be said for any modern OS.

Warner
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://minnie.tuhs.org/pipermail/tuhs/attachments/20180320/befef091/attachment.html>


  parent reply	other threads:[~2018-03-21  4:30 UTC|newest]

Thread overview: 62+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-03-20  1:26 A. P. Garcia
2018-03-20  1:40 ` Dave Horsfall
2018-03-20  1:47 ` maxigas
2018-03-20  4:23 ` Grant Taylor
2018-03-20  4:24   ` Steve Nickolas
2018-03-20  4:40     ` Grant Taylor
2018-03-20  5:19       ` A. P. Garcia
2018-03-21  2:31       ` Theodore Y. Ts'o
2018-03-21  3:20         ` Larry McVoy
2018-03-21  4:30         ` Warner Losh [this message]
2018-03-21  4:52         ` Grant Taylor
2018-03-21  9:16         ` Jaap Akkerhuis
2018-03-22  0:18           ` Grant Taylor
2018-03-22  0:22             ` Larry McVoy
2018-03-22  2:25               ` [TUHS] syslog (was Re: daemons are not to be exorcised) Jeremy C. Reed
2018-03-21 13:59         ` [TUHS] daemons are not to be exorcised Clem Cole
2018-03-21 14:18           ` Paul Winalski
2018-03-21 15:15             ` Warner Losh
2018-03-21 15:45               ` Andy Kosela
2018-03-21 15:49                 ` Warner Losh
2018-03-22  0:28           ` Grant Taylor
2018-03-20  6:32   ` Andy Kosela
2018-03-20 12:31   ` Nemo
2018-03-20 17:48 ` Paul Winalski
2018-03-20 17:56   ` George Michaelson
2018-03-20 18:04     ` Dan Cross
2018-03-20 18:24       ` Bakul Shah
2018-03-20 18:46         ` Clem Cole
2018-03-20 19:10           ` Bakul Shah
2018-03-20 19:55             ` Dan Cross
2018-03-20 19:56           ` Tim Bradshaw
2018-03-20 21:12             ` A. P. Garcia
2018-03-20 21:40               ` Andy Kosela
2018-03-21  6:32             ` Wesley Parish
2018-03-20 20:14           ` Warren Toomey
2018-03-20 20:25             ` Paul Winalski
2018-03-20 21:15               ` Clem Cole
2018-03-20 21:09             ` Clem Cole
2018-03-20 18:53         ` Toby Thain
2018-03-20 19:24       ` Nemo Nusquam
2018-03-21 12:10     ` emanuel stiebler
2018-03-25 19:56     ` emanuel stiebler
2018-03-26  9:44       ` George Michaelson
2018-03-26 12:38         ` emanuel stiebler
2018-03-20 21:32 Nelson H. F. Beebe
2018-03-21 14:17 Noel Chiappa
2018-03-21 15:03 ` Clem Cole
2018-03-21 16:18   ` Arthur Krewat
2018-03-21 17:28     ` Paul Winalski
2018-03-21 17:33       ` George Michaelson
2018-03-21 17:50         ` Arthur Krewat
2018-03-21 19:49           ` A. P. Garcia
2018-03-21 19:37         ` Paul Winalski
2018-03-21 17:34       ` Larry McVoy
2018-03-22  2:24         ` Dave Horsfall
2018-03-21 17:39       ` WIlliam Cheswick
2018-03-21 17:52         ` Arthur Krewat
2018-03-21 17:56       ` Nemo
2018-03-21 18:01         ` Larry McVoy
2018-03-21 18:04       ` Dan Cross
2018-03-21 19:56         ` Clem Cole
2018-03-21 20:13           ` Paul Winalski

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='CANCZdfrm8gkZO6nDmyM=NqnEk92X0Lh=bpLxH4CzRCT8RbsP2Q@mail.gmail.com' \
    --to=imp@bsdimp.com \
    /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).