3 ms·
Processes running on the same host are a "separate computation in the same address space" - They share a filesystem namespace. Pods running on the same kuberne
by GauntletWizard 7y ago
Processes running on the same host are a "separate computation in the same address space" - They share a filesystem namespace.
Pods running on the same kubernetes cluster are a "separate computation in the same address space" - They share a DNS namespace.
Servers running on the same internet are a "separate computation in the same address space" - They share an IP namespace.
These are the same abstraction at multiple levels, and that's okay, because you often do need that. The L1 and L2 cache are crystaline to inmemory and redis caches in distributed systems. Components with the same shape show up at multiple levels. This is okay. What's important is that those levels each serve a purpose, and that you reduce the abstraction to be as simple and meaningful as it can be.
- jacques_chester 7y agoA good analogy is network layers. The problems and solutions handled at the network layer resemble those at the internetwork layer, which resemble those at the transport layer, in turn similar to those at the application layer. Convergent evolution doesn't mean we should all become the same organism.
- BubRoss 7y agoProcesses exist in separate virtual memory spaces. Threads in the same process exist in the same virtual memory space. This is a fundamental principle of virtual memory. Mixing this up with a filesystem or any shared resource is completely nonsensical. Naive oversimplifications like this indicate a lack of understanding of how and why computers are architected as they are in the first place. Virtualization could be said to be an extrapolation of virtual memory and in fact does offer sub virtual memory, but to equate threads, processes, virtualization and shared resources as the same thing is grasping for simplicity that isn't there by making comparisons that aren't true.