Live data from Hacker News

Drawbridge

research.microsoft.com

31–40 of 45 posts

Re: Drawbridge

#31
post #14

So, this is this a means to bridge the gap between Hyper-V, Hyper-V app streaming and Docker on the windows side? I'm kinda confused what the use case is compared to other existing product offerings.

It is not a product offering, it is a research project. So it does not have to have a clear use case (yet).

Re: Drawbridge

#32
post #3

Seems like Microsoft's response to docker, although I have no idea if it actually is, in terms of precedence. But certainly aimed at the same idea.

Not really. It is a research project, and predates Docker.

LXC containers predate Docker, too. In any case, it doesn't really matter whether it's an actual response, or not.

Re: Drawbridge

#33
post #7

Earlier quoted context omitted.

> "why not make an operating system that has only 45 syscalls?" Because much of Microsoft's licensing revenue is contingent upon continuing to support the edge cases that are inevitably not part of the set of programs that can be dropped into such a sandbox without problems.

You missed the joke. NT was originally a pretty hardcore microkernel, with even things like graphics drivers being in userspace. However, in the name of performance, more and more stuff was brought into kernel space.

NT was never a true microkernel (much less a hardcore one), and was never intended to be. It was never designed to have any protection between its internal "subsystems" (file system I/O, security, HAL, drivers, etc.) — everything runs in kernel mode, in the same address space, and communicates using direct calls, not IPC.

NT is sometimes mistaken for a microkernel partly because of the graphics driver problem, and partly because it contains a module which Microsoft actually refers to as "the microkernel". This part consists mostly of the scheduler.

What is true about the NT kernel is that it's modular, with strict internal API separation between each subsystem, and that kind of design was (as far as I know) inspired by actual microkernels, as was the idea of hiding the kernel behind "OS personalities" such as Win32.

Re: Drawbridge

#34
post #32

Earlier quoted context omitted.

Not really. It is a research project, and predates Docker.

LXC containers predate Docker, too. In any case, it doesn't really matter whether it's an actual response, or not.

Docker is not anything, Docker is a wrapper for cgroups and namespaces - also utilized by LXC.

Infact, Docker started as a wrapper around LXC. It literally configured and shelled out to lxc-start in order to orchestrate containers.

This however, is much much different to cgroups/namespaces.

What the Drawbridge paper describes is a full user-mode kernel . If you want the analagous implementation on Linux look at User Mode Linux, or the Graphene stuff that has already been linked to.

Re: Drawbridge

#35

This seems like Microsoft's response to Bromium vSentry which is a very impressive product. http://www.bromium.com/products/vsentry.html

Not quite. Bromiums solutions make use of VT-x/VT-d/EPT. This is pure para-virtualised approach. Atleast from what I can see, it's possible it uses VT-x/VT-d/EPT to implement the process isolation - just somewhat unlikely given how it's presented.

Re: Drawbridge

#36

This sounds a lot like Docker for Windows, am I right ? I might have to try it to understand it, but it is exciting.

It's more like User Mode Linux for Windows.. except ofcourse it's User Mode Windows...

Re: Drawbridge

#37
post #34
post #32

Earlier quoted context omitted.

LXC containers predate Docker, too. In any case, it doesn't really matter whether it's an actual response, or not.

Docker is not anything, Docker is a wrapper for cgroups and namespaces - also utilized by LXC. Infact, Docker started as a wrapper around LXC. It literally configured and shelled out to lxc-start in order to orchestrate containers. This however, is much much different to cgroups/namespaces. What the Drawbridge paper describes is a full user-mode kernel . If you want the analagous implementation on Linux look at User…

Or look at the netbsd rump kernel (http://rumpkernel.org) which also runs under Linux or standalone.

Re: Drawbridge

#39

Earlier quoted context omitted.

You missed the joke. NT was originally a pretty hardcore microkernel, with even things like graphics drivers being in userspace. However, in the name of performance, more and more stuff was brought into kernel space.

NT was never a true microkernel (much less a hardcore one), and was never intended to be. It was never designed to have any protection between its internal "subsystems" (file system I/O, security, HAL, drivers, etc.) — everything runs in kernel mode, in the same address space, and communicates using direct calls, not IPC. NT is sometimes mistaken for a microkernel partly because of the graphics driver problem, and pa…

IRPs are the kernel "IPC" mechanism used by NT... And for whole classes of drivers/subsystems IRPs are the core processing mechanism. The IO manager calls to process IRPs could very well be traditional microkernel message passing API's complete with task switching and message copies.

While NT is not a microkernel, from a kernel API level it appears to basically be one, only missing the fact that everything is not actually isolated.

Re: Drawbridge

#40
post #9

It is important to note how this will shake the current state of the application virtualization market. There is no docker like solution for Windows. All the big players (VMware, Microsoft, Symantec, etc) do tricks to isolate the applications. The tricks are instrumenting API calls and adding filtering drivers. With these solutions only less than 70% can be virtualized and the process can be really difficult.

Hu? Can you elaborate on what you mean by this (app-v, and other windows sandbox/package tools) not being as complete as docker?

Because from what I've seen of the current state of docker, non trivial linux applications seem to have issues in docker as well because they depend on specific things which are not being namespaced well (say /sys manipulations for example, ioctls, or even use filesystem specific APIs).

Docker seems to work well as long as one stays close to web server functionality. (aka LAMP like stacks which tend to only manipulate network sockets and traditional files).

Post reply on HN