[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