On Thu, Nov 10, 2022 at 12:47:37AM +0000, segaloco via TUHS wrote:
What comes to mind for me is the different init
systems, desktop
environments, networking tools, user management tools, and basically that
anything that isn't lore in POSIX seems to be up in the air these days.
However, you go back to when SVR4 derivatives were king, they all had the
same init, the same useradd, the same /etc/passwd, the same ifconfig.
Maybe some of the snazzier new features were pretty variable, but the
most basic stuff like starting your system, creating a user, seeing if
you were connected to a network, essential administrative functions,
were relatively consistent.
This is sooooo not true. I was supporting BitKeeper on all Unix
variations as well as MacOS and Windows from about 2000 to 2018ish.
At the very least you had BSD based systems and Sys5 based systems but
the Sys5 systems had all diverged. AIX had smit for admin, other systems
would let you edit the /etc files but they were in different locations.
ifconfig was most definitely not compatible across all the systems, nor
was ps. There were tons and tons of differences. We ended up pulling in
NetBSDs libc so we at least had one libc (we didn't use the native libc,
yep, you read that right, even that was incompatible).
Even /etc/passwd wasn't consist, some places had /etc/shadow that had the
passwords (I think, it's all getting blurry), and I think there was one,
probably AIX, that had /etc/shadow but not in /etc/shadow.
The best way I can explain all of this is a lack of a dictator over
all the versions. You need someone who is pushing back on changes and
is making everything consistent. That's hard to do within a single
organization and impossible over multiple organizations. POSIX tried
but it wasn't enough. It helped a little. If it had worked, we wouldn't
have needed to ship our own libc.