[Discuss] Port Scanning
Kent Borg
kentborg at borg.org
Fri Aug 9 13:36:27 EDT 2024
On 8/6/24 10:03, Dan Ritter wrote:
> The rise of virtual machines and containers is an admission of
> systemic failure: people gave up on managing dependencies in a
> sensible manner.
I've always considered the reason to be that the traditional idea of
what services an OS should offer has become tattered. But your version
gets to the heart of that in a nice way. And there is more going on
(going wrong) here.
The OS clearly isn't doing enough to manage dependencies if people
prefer what BIOS offers (or I guess UEFI these days) to what the OS
offers. A mark of failure for the OS.
But we should still be impressed, the "operating system" had a good
decades-long run.
Back when Unix first showed up there were a very few OS-supplied
libraries that userland programs could link against, but there was not
much code reuse beyond that. I remember a Byte Magazine cover with a
painting of a stylized IC that was supposed to represent software
components (vs. hardware components), with a question: We have reusable
hardware components, why we don't have reusable software components?
Whenever that was (early '80s?) the OS wasn't addressing the problem of
managing software dependencies because there mostly *were* no software
dependencies, so much so that Byte was asking "Why not?".
At sometime in there programs with a GUI showed up. Programming X
Windows, or an original Macintosh, was more complicated than a command
line but it was still rational, something that was consciously designed.
A non-trivial program easily fit on a floppy disk, and it ran on a
machine without a gigantic OS inside.
The block diagram showing how it worked could have reasonable detail and
still fit on one sheet of paper. The X program even worked over a
network, and was likely multi-user!
Fast forward to now, drop yourself into a typical commercial software
organization, convince management they need a modern analog to that
earlier program, they assign a team, and sometime later, there it is.
Now draw me a block diagram of how *it* works, to the same level of
detail as that old one. Don't cheat, include how the various commercial
services that are part of it are also implemented.
It is *not* going to fit on one piece of paper. (But who uses paper
anymore? We have Figma.)
That extra detail? Some is because a key hunk of the system wasn't
designed for purpose. We took a system designed to serve static
hypertext...and we extended it to unrecognizable dimensions.
Other of the extra detail is trying to deal with the fact that no one
designed a coherent way to handle dependency management.
I assert that pretty much all of that extra detail is, in effect, the
"OS". An OS no one designed: billions of lines of code needing enormous
amounts of hardware on which to run. There must be a good number of
people on this list who remember Rube Goldberg machines. It is as if our
industry took those cartoons to be a model to copy and not a satirical
caution.
At this point some of those reading this are upset with me, because the
modern way of doing things does much more stuff. Certainly it does! My
point is that just it was never designed, it is a godawful mess.
It is because of the failure (or lack) of "OS" that our world got
cobbled together this way.
-kb
More information about the Discuss
mailing list