verisimilitudes
Joined 7 years ago
Joined 7 years ago
> Programs just have to be compiled relocatable.
Yes, and with unrestricted memory access, one program can crash the entire system.
> You know, like what happens with shared libraries: which are written in C, and get loaded at different addresses in the same space, yet access their own functions and variables just fine.
That is except when one piece manipulates global state in a way with which another piece can't cope, and at best the whole thing crashes. Dynamic linking in UNIX is so bad some believe it can't work, and instead use static linking exclusively.
It is because UNIX is written in the C language that there are even multiple flat address spaces instead of segments or a single address space systemwide. The fact that the kernel exists at all is also due to this. It has everything to do with the implementation language.
> Languages "such as Lisp" will have the exact same problem, for the same reason.
Under UNIX, yes.
> Collecting all of the "components" of the connection and sending them to a different host won't make the other host start sending packets to the new recipient, or replay the in-flight packets (which is state on intermediate routers, different computers than the connected ones entirely), or fix the ARP tables on the neighbouring hosts. None of that is available, and certainly isn't writeable, to the host doing the serialising.
It may very well require some specialized machinery, but not nearly so much as one may think to be necessary.
> To play some silly semantics games, this isn't so much about _serialising_ a connection as it is about _deserialising_ the connection and having it work afterwards.
That's implicit. I needn't write of deserializing when writing of serializing, as one is worthless without the other, at least in most cases.
> That act has literally nothing to do with programming language.
Look at what Lisp and Smalltalk systems could do before UNIX existed and tell me that again.
So, my point is the ability to take running state, serialize it, and reinstate it elsewhere is only impressive to those who have misused computers for so long that they don't understand this was something basic in 1970 at the latest.
> It is natural to want those connections to follow the container to its new host, preferably without the remote end even noticing that something has changed, but the Linux networking stack was not written with this kind of move in mind.
Yes, it was written in the C language.
My Gopher hole is under the verisimilitudes.net domain at port 70. I also have a Finger service at port 79.
My website is here: http://verisimilitudes.net
The particular Finger information is here: finger://[email protected]
My current main project is an interactive machine code development tool, Meta-Machine Code (MMC). You may find it through the WWW or Gopher.
The Gopher selector is 2017-07-07 for a menu.
Here is the URL: http://verisimilitudes.net/2017-07-07
Here is the Gopher URL: gopher://verisimilitudes.net/12017-07-07