The Unix Heritage Society mailing list
 help / color / mirror / Atom feed
From: "Theodore Ts'o" <tytso@mit.edu>
To: Dan Cross <crossd@gmail.com>
Cc: The Eunuchs Hysterical Society <tuhs@tuhs.org>
Subject: Re: [TUHS] moving directories in svr2
Date: Mon, 3 Jan 2022 17:26:33 -0500	[thread overview]
Message-ID: <YdN4GeDfILmrsbG4@mit.edu> (raw)
In-Reply-To: <CAEoi9W7XPYwCJoQWscYFo6TM0XpPqSzcdiGCYLcdOyfdrXvmfw@mail.gmail.com>

On Mon, Jan 03, 2022 at 04:15:08PM -0500, Dan Cross wrote:
> > For that matter, you
> > probably don't need to use ifconfig/route --- just let the DHCP client
> > server of your choice take care of setting up the network, and you're
> > done.
> 
> That'll work on a laptop or on my home network (where I set up the
> DHCP server). In a large-scale datacenter environment, maybe not so
> much.

I've seen a number of large-scale data center environments that use
DHCP; and those that don't in Linux-land generally just edit a config
file in /etc/network/interfaces or /etc/network/interfaces.d --- and
then the init scripts would just use "ifup -a" which would bring up
the network either using DHCP or the hard-coded values in
/etc/network/interaces.  No need to have sysadmins manually typing
"route add ..." commands except in extreme debugging situations.

> > That's a distro-level choice.  And for most users, their networking is
> > automatically brought up using NetworkManager, or some such, so they
> > probably don't care.  And it's not like installing a package is that
> > painful.  I don't see users of say, mysql complaining that they have
> > to install that package should they want to use it.
> 
> I would suggest that the number of users who want to run MySQL is much
> smaller than the number who want to have a functioning network. But
> you're right; it's not that hard to adapt. That was kind of the point;
> there have been cases where Linux users have adapted to one degree or
> another.

I actually suspect the number of users who want to run MySQL is
actually larger than the number of users who need to manually
configure a network using /sbin/ifconfig and /sbin/route....  :-)

> The `apt install net-tools` thing is a red-herring, though: that's
> explicitly why I mentioned Google prod. What works on a single system
> doesn't necessarily scale to O(10^6) machines supporting O(10^7)
> separately running instances of O(10^4) services in O(10) globally
> distributed datacenters, that's just a single organization.

Google prod's easy --- Google maintains its own minimal prod
distribution where a small set of packages (less than a few dozen)
that were originally forked from Debian a number of years ago.  So
it's trivial for us, because net-tools is installed by default and
there is **no** engineering upside for us to switch to ip/ss --- so we
haven't.  :-)

Similarly, we're still using a *very* old version of bash (having
stayed back across multiple major releases) because it's easier to
stick with an old version of bash and keep up with the security fixes,
than it would be to audit a gazillion shell scripts and shell script
fragments for the various potential and subtle backwards-incomaptible
changes that bash has made over the past decade.

Larry has told a similar story about the advantages of using a "dead"
language like Tcl for Bitkeeper, since he didn't have to deal with
gratuitous version skew problems caused by backwards incomaptible
changes in Perl or Python.  But if you manage your own userspace,
including affording to do your own FEDRAMP-compliant security updates,
you can just choose *not* to upgrade to newer versions of bash or
network utilities.  Who *says* you have to use bash 5.1?  Or switch to
ip/ss?

On the other hand, we did spend untold engineering hours migrating
from Python 2.7 to 3.x (and *wow* was that painful) because in that
case, that was considered less work and more secure than independently
supporting Python 2.7 ad infinitum (also, we have fewer Python
programs than we have shell script fragments in config files like
Makefiles as well actual shell scripts).

So the decision about whether to follow breaking interfaces/language
changes is an engineering decision that's made on a case by case
basis, as it should be for all organizations.  In the case of bash and
net-tools, one decision was made.  In the case of Python, a difference
decision was made --- although a lot of people really weren't happy
that the Python developers didn't appreciate the cost of breaking
backwards compatibility (or rather, they decided that they didn't care
and prioritized their own convenience over that of their users).

This is why I'm a big supporter of Linus's, "Thou Shalt Not Break
Userspace" rule; backwards compatibility at the lowest levels is
important!  I'd draw that line higher than some people, but hey, if
you don't like the instability of Python, you can do what Bitkeeper
did and base your extension language/scripts on something like Tcl
instead.

					- Ted

P.S.  If you want to see the horror of trying to support a Python
program that has to be able to run on a wide variety of Linux distros,
running different versions of Python (from RHEL 6 and Python 2.3 up to
the newest bleeding edge Python 3.x), take a look at the Google's
gcloud program.  Alas, unlike the Google prod environment, we can't
dictate what distro our Cloud customers might choose to use.

The gcloud command (part of the Google Cloud SDK) has to play all
sorts of portability games, and people need to continually test across
a wide range of Python versions and Linux distros to provide assurance
that it continues to correctly as new features are added and bugs are
fixed.  I *completely* understand why Larry chose to implement
Bitkeeper extensions in Tcl, since it avoids this problem.

Bt yeah, it's why I wouldn't want to change dot-dot, since having seen
the pain the Python developers inflected on me, I wouldn't want to
inflict it on others...

  reply	other threads:[~2022-01-03 22:27 UTC|newest]

Thread overview: 81+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-12-30  3:45 Noel Chiappa
2021-12-30  4:02 ` Bakul Shah
2021-12-30 16:40 ` Theodore Ts'o
2021-12-30 22:31   ` Dan Cross
2021-12-31  0:43     ` Bakul Shah
2021-12-31  1:00       ` Rob Pike
2021-12-31  1:45         ` Bakul Shah
2021-12-31  2:23           ` Adam Thornton
2021-12-31 18:56       ` Chet Ramey
2021-12-31  3:08     ` Theodore Ts'o
2021-12-31  3:23       ` Rob Pike
2021-12-31  5:16         ` Theodore Ts'o
2021-12-31  5:21           ` Dan Cross
2021-12-31  5:55           ` Rob Pike
2021-12-31 13:32             ` Michael Kjörling
2021-12-31 15:53               ` Adam Thornton
2021-12-31 16:13                 ` Arthur Krewat
2021-12-31 18:17                 ` Dan Cross
2021-12-31 18:23                   ` Larry McVoy
2021-12-31 18:37                     ` Dan Cross
2021-12-31 18:29                   ` Arthur Krewat
2022-01-01  0:09                   ` Theodore Ts'o
2022-01-03 13:35                     ` Dan Cross
2022-01-03 20:23                       ` Theodore Ts'o
2022-01-03 20:45                         ` Warner Losh
2022-01-03 21:15                         ` Dan Cross
2022-01-03 22:26                           ` Theodore Ts'o [this message]
2022-01-03 23:10                             ` Dan Cross
2022-01-04 15:45                             ` Chet Ramey
2022-01-09 19:28                             ` Larry McVoy
2022-01-03 23:21                           ` Doug McIntyre
2022-01-03 23:37                             ` Adam Thornton
2022-01-04 14:49                               ` Stuart Remphrey
2022-01-03 23:44                             ` Larry McVoy
2022-01-03 23:56                               ` [TUHS] SMP: BSD vs System V (once was: moving directories in svr2) Greg 'groggy' Lehey
2022-01-07 19:01                                 ` Warner Losh
2022-01-09 17:31                                 ` Stuart Remphrey
2022-01-13  2:35                                 ` Kevin Bowling
2022-01-03 23:56                               ` [TUHS] moving directories in svr2 Warner Losh
2022-01-04  2:28                               ` Theodore Ts'o
2022-01-04  2:42                                 ` Larry McVoy
2022-01-04  9:28                                 ` [TUHS] Mythical Distress Sale (was Re: moving directories in svr2) Rob Gingell
2022-01-04 15:17                                   ` Larry McVoy
2022-01-04 15:26                                     ` arnold
2022-01-04 15:40                                       ` Larry McVoy
2022-01-04 15:48                                         ` Richard Salz
2022-01-03 22:57                         ` [TUHS] moving directories in svr2 Phil Budne
2022-01-04 15:40                         ` [TUHS] VRFs (was Re: moving directories in svr2) Derek Fawcus
2021-12-31  5:12       ` [TUHS] moving directories in svr2 Bakul Shah
  -- strict thread matches above, loose matches on Subject: below --
2021-12-29 19:33 Noel Chiappa
2021-12-30  3:40 ` Jay Logue via TUHS
2021-12-29 19:13 Douglas McIlroy
2021-12-29 19:37 ` Dan Cross
2021-12-29 20:15   ` Dan Cross
2021-12-29 20:42     ` Richard Salz
2021-12-29 20:58       ` Dan Cross
2021-12-29 21:20         ` Clem Cole
2021-12-30  3:15       ` Bakul Shah
2021-12-29 17:12 Douglas McIlroy
2021-12-29 16:59 Bakul Shah
2021-12-29 17:04 ` Clem Cole
2021-12-29 17:14 ` arnold
2021-12-29 17:38   ` Clem Cole
2021-12-29 17:49     ` Brantley Coile
2021-12-29 18:27       ` ron minnich
2021-12-29 20:59         ` Rob Pike
2021-12-29 14:33 Will Senn
2021-12-29 15:02 ` arnold
2021-12-29 15:38   ` Will Senn
2021-12-29 15:44     ` Richard Salz
2021-12-29 16:17       ` Clem Cole
2021-12-29 16:58         ` Richard Salz
2021-12-30  5:14         ` Dan Stromberg
2021-12-30 16:22           ` Clem Cole
2021-12-30 18:02           ` John Cowan
2021-12-30 23:04             ` Richard Salz
2021-12-29 15:17 ` Clem Cole
2021-12-29 15:44   ` Will Senn
2021-12-29 16:10     ` Clem Cole
2021-12-29 16:33       ` Warner Losh
2021-12-29 16:01   ` Bakul Shah

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=YdN4GeDfILmrsbG4@mit.edu \
    --to=tytso@mit.edu \
    --cc=crossd@gmail.com \
    --cc=tuhs@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).