The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: Jon Steinhart <jon@fourwinds.com>
To: tuhs@minnie.tuhs.org
Subject: Re: [TUHS] Macs and future unix derivatives
Date: Tue, 09 Feb 2021 11:00:15 -0800	[thread overview]
Message-ID: <202102091900.119J0Gv9850825@darkstar.fourwinds.com> (raw)
In-Reply-To: <YCId1oKS5AJwKCkU@mit.edu>

Theodore Ts'o writes:
> On Mon, Feb 08, 2021 at 10:58:08PM -0500, M Douglas McIlroy wrote:
> > > Do they *really* want something which is just V7 Unix, with nothing else?
> > > No TCP/IP, no hot-plug USB support?  No web browsing?
> > 
> > > Oh, you wanted more than that?  Feature bloat!  Feature bloat!
> > > Feature bloat!   Shame!  Shame!   Shame!
> > 
> > % ls /usr/share/man/man2|wc
> >     495     495    7230
> > % ls /bin|wc
> >    2809    2809   30468
> > 
> > How many of roughly 500 system calls (to say nothing of uncounted
> > ioctl's) do you think are necessary for writing those few crucial
> > capabilities that distinguish Linux from v7? There is
> > undeniably bloat, but only a sliver of it contributes to the
> > distinctive utility of today's systems.
>
> Well, let's take a look at those system calls.  They fall into a
> number of major categories:
>
> *) BSD innovations
>   *) BSD socket interfaces (so if you want TCP/IP... is it bloat?)
>   *) BSD job control
>   *) BSD effective id and its extensions
>   *) BSD groups
> *) New versions to maintain stable ABI's, e.g., (dup vs dup2 vs dup3,
>    wait vs wait3 vs wait4 vs waitpid, stat vs stat64, lstat vs lstat64,
>    chown vs chown32, etc.)
> *) System V IPC support (is support for enterprise databases like
>    Oracle "bloat"?)
> *) Posix real-time extensions
> *) Posix extended attributes
> *) Windows file streams support (the original reason for the *at(2)
>    system calls -- openat, linkat, renameat, and a dozen more)
>
> Ok, that last I'd agree was *pure* bloat, and an amazingly bad idea.
> But there are plenty of people who have bugged/begged me to add
> windows file streams because they were *convinced* it was a critical
> feature.  And I dare say bug-for-bugs Windows compatibility was worth
> millions of $$$ of potential sales, which is why they agreed to add it
> --- and why I kept on getting nagged to add that feature to ext4 (and
> I pushed back where the Solaris developers caved, so there.  :-)
>
> As for things like System V IPC support, that was only added to Linux
> because it was worth $$$, because enterprise databases like DB2 and
> Oracle demanded it.  Is that evidence of "cancer"?  You might not want
> it, but that's a great example of "one person's bloat is another
> person's critical feature".
>
> Or consider the dozen plus BSD sockets interface, which if removed
> would mean no TCP/IP support, and no graphical windowing systems.
> Critical feature, or bloat?
>
> But hey, if you only want V7 Unix, why are you complaining?  Just go
> and use it, and give up on all of this cancerous new features.  And I
> promise to get off of your lawn.  :-)

I'm with Doug here.  Some time ago, I was asked to give a talk at OSU
based on my life with UNIX.  Mostly figured out what to say while
driving down there.  I started the talk by posing the question of what
makes UNIX great.  I said that while many people had different answers,
to me it was the good abstractions and the composability of programs
that it supported.  I then asked why so many people had forgotten that
which started a very lively discussion.

When I look at linux (and pretty much anything else today), the loss of
good abstractions is quite evident and in my opinion is responsible for
much of the bloat and mess.

This didn't begin with linux.  To me, it started when UNIX moved out of
research.  Changes were made without any artistry or elegance.  And it
happened in BSD-land too.  I never liked the socket interface, would
have preferred to open("/dev/ip").  But, as Clem and I have discussed,
the socket API was the result of the original code coming from elsewhere
(BBN I think), and the political desire to keep the networking code
separable from the rest of the kernel.

At this point in time, I feel that linux is suffering from the tragedy
of the commons.  I'm not interested in getting into an argument over
this.  My opinion is that I think that more direction would have helped.
I think that there was a golden era for contribution that has passed.
There was a time when because of cost of machines and education that
open-source contributors were somewhat of the same caliber.  But now that
machines are essentially free and every java programmer thinks that they
know everything, the quality of contributions and especially design has
dropped.

While I use linux, it's no longer a system that I trust in any way.  It's
huge, bloated, rats-nest undocumented code.  Yes, I know that a small
percentage of people like Ted spend a lot of time on the code and therefore
know it well.  But I find it an impenetrable mess.  When I first had a need
to look at the UNIX kernel, it was easy to figure out what was going on.  Not
so with linux.  Of course, I'm getting old and maybe not as good at this stuff
as I used to be.

You might claim that the code is stable and debugged, but if that was the case
then I wouldn't be getting a new kernel on practically every daily update.

To me, it also seems like linux is focused on two ends of the spectrum with
the middle mostly ignored.  Lots of focus on embedded and data centers.  As
a desktop system, it's tolerable but generally annoying.  Again, somewhat a
function of the tragedy of the commons; the environment consists of programs
with little consistency.  I think that if one compared the user interfaces to,
let's say, gimp, audacity, and blender, the common features would be close to
the null set.  And those are just a few "major" programs.

So a more interesting question to me is, when is linux going to die under its
own weight, and what if anything will replace it.  With the exception of
Windows, most everything today has some roots in UNIX.  If one was going to
reimagine a system going back to the UNIX philosophy, what would it look like?
Is there likely to ever be an opportunity for a replacement, designed system
or are we stuck with the status quo forever?

Jon

  parent reply	other threads:[~2021-02-09 19:00 UTC|newest]

Thread overview: 45+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-02-09  3:58 M Douglas McIlroy
2021-02-09  4:07 ` Adam Thornton
2021-02-09  4:13 ` Will Senn
2021-02-09  5:21 ` Andrew Warkentin
2021-02-09  5:29 ` Theodore Ts'o
2021-02-09  6:37   ` Andrew Warkentin
2021-02-09 16:13     ` Theodore Ts'o
2021-02-09 17:31       ` John Cowan
2021-02-09 19:06         ` Chet Ramey
2021-02-10  2:31       ` Andrew Warkentin
2021-02-09 19:00   ` Jon Steinhart [this message]
2021-02-10  1:41     ` Larry McVoy
2021-02-10  1:52       ` George Michaelson
2021-02-10  2:24         ` Larry McVoy
2021-02-10  2:44           ` Dan Cross
2021-02-10  3:10             ` Larry McVoy
2021-02-10 20:03             ` Kevin Bowling
2021-02-10  2:57         ` Warner Losh
2021-02-10  2:56       ` Warner Losh
2021-02-10  3:02         ` Larry McVoy
2021-02-10  3:53       ` Andrew Warkentin
2021-02-09 11:34 ` Thomas Paulsen
2021-02-09 18:29 ` Nemo Nusquam
  -- strict thread matches above, loose matches on Subject: below --
2021-02-09 12:22 M Douglas McIlroy
2021-02-09  8:30 Bakul Shah
2021-02-08 18:11 Will Senn
2021-02-08 18:21 ` Larry McVoy
2021-02-08 18:32   ` Justin Coffey
2021-02-08 18:39     ` Larry McVoy
2021-02-09  1:59     ` Theodore Ts'o
2021-02-12 13:48     ` Angel M Alganza
2021-02-08 18:42 ` Henry Bent
2021-02-09  6:55   ` John Gilmore
2021-02-09  7:05     ` Michael Huff
2021-02-16 22:55       ` Greg A. Woods
2021-02-09  7:17     ` Will Senn
2021-02-09 19:02     ` Theodore Ts'o
2021-02-10  1:34       ` Larry McVoy
2021-02-09 22:59     ` Wesley Parish
2021-02-08 18:43 ` Dan Stromberg
2021-02-12 13:39   ` Angel M Alganza
2021-02-08 18:45 ` Thomas Paulsen
2021-02-25 22:45   ` Dave Horsfall
2021-02-08 20:07 ` Al Kossow
2021-02-09  5:10 ` Andrew Warkentin

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=202102091900.119J0Gv9850825@darkstar.fourwinds.com \
    --to=jon@fourwinds.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).