News for hackers. Stuff that matters.
Re:Billions wasted on Hadoop startups, the same will eventua... by kazinator on Friday May 31, 2019 @09:15AM (#20060535)
> they call it a VM (and don't qualify/note that they're being fast and loose with terminology).

It's only confusing to people who are familiar just with the popularized forms of computer science terms.

Isolation and sandboxing is virtualization. In a container, the applications seem to have an operating system and machine to themselves.

A single Unix process and its address space is also a kind of virtual machine, creating the illusion that the process has a machine all to itself. Thanks to virtual memory, other processes are not even visible; they are in a different name space of pointers. That concept breaks for multi-process applications: processes are aware of each other through manipulations of shared resources like files. Or effects like not being able to bind a networking port because some other process is tying it up. The next level of virtualization is to have namespaces for resource-related namespaces in the system beyond the address space. As far as just the filesystem space goes, we can virtualize with tools like chroot. A group of applications can have their own global /etc configuration, their own version of the C library in /lib and so on. That's the beginning of "containerization".

Re:Billions wasted on Hadoop startups, the same will eventua... by hardwaresofton on Friday May 31, 2019 @10:02AM (#20060934)
> It's only confusing to people who are familiar just with the popularized forms of computer science terms.

Yeah given how often people mistakenly call containers VMs or assume they have VM-like properties (like the ability to run a different kernel), this is tripping a lot of developers up, not just lay people.

> Isolation and sandboxing is virtualization. In a container, the applications seem to have an operating system and machine to themselves.

I don't think this is quite true, generally you can isolate and sandbox something without virtualizing anything. In this case to isolate and sandbox without a loss of functionality, we are virtualizing and swapping swap implementations out from underneath an application/process. That is not always the case though -- if you unplug a machine's ethernet cable it is isolated, but you did not virtualize anything, if you deny access to a folder on disk for a process you are isolating without virtualizing, unless you mean that any kernel interaction (like blocking an `fopen()`) is "virtualization".

> A single Unix process and its address space is also a kind of virtual machine, creating the illusion that the process has a machine all to itself. Thanks to virtual memory, other processes are not even visible; they are in a different name space of pointers. That concept breaks for multi-process applications: processes are aware of each other through manipulations of shared resources like files. Or effects like not being able to bind a networking port because some other process is tying it up. The next level of virtualization is to have namespaces for resource-related namespaces in the system beyond the address space. As far as just the filesystem space goes, we can virtualize with tools like chroot. A group of applications can have their own global /etc configuration, their own version of the C library in /lib and so on. That's the beginning of "containerization".

This is a good summary of how containerization works, and the layers of isolation provided by the kernel -- the approach here is isolation by providing a fake, but that does not mean that isolation + sandboxing = virtualization, that just means that these forms of virtualization can be used to provide isolation & sandboxing.

Re:Billions wasted on Hadoop startups, the same will eventua... by danielscrubs on Saturday June 01, 2019 @01:06AM (#20067358)
Errr... how do these people think macOS and Windows can run Linux containers? It is a VM on those platforms.