Hacker News new | ask | show | jobs
by chrisdfrey 2606 days ago
From https://venturebeat.com/2019/05/06/microsoft-windows-termina... :

"WSL 2 will also support running Linux Docker containers natively, so that VMs are no longer required."

Great news!

2 comments

"Windows Subsystem for Linux 2 (WSL 2) is the next version of WSL and is based on a Linux 4.19 kernel shipping in Windows"

Unfortunately the link https://aka.ms/build2019kernelannounce doesn't seem to work for me.

Does that mean they are giving up on the syscall emulation thing?

The whole thing of WSL was it that contained no Linux kernel at all.

It means the opposite.

Today, Linux Docker containers on Windows rely on a VM running on Hyper-V.

Tomorrow (by which I mean "in the future," or "June 2019" or whatever the announcement says) Linux Docker containers on Windows will run natively, without the Linux VM crutch. I am assuming that it will use the emulated syscalls the same way that WSL runs today.

Not sure about that, except if their phrasing is astonishingly poor, which is of course possible. I mean, in my book "Linux 4.19 kernel shipping in Windows" means a Linux kernel shipping in Windows, and that would need Hyper-V (Linux is trademarked btw, MS can't just pretend that they ship a Linux kernel if they don't). At the same time, I really hope that this is not the case and that it actually means that they are targeting a syscall compatibility with Linux version 4.19; because I'm certainly not gonna give up my third party VMs for some work, so if WSL is rebased on Hyper-V that means bye-bye WSL for me.
Rewriting WSL to suddenly require a VM would be a HUGE leap backwards and I can't see that being the solution chosen. It doesn't make sense.

Adding the appropriate things to WSL to make Docker for Windows no longer require the Moby VM, or to support Linux Docker within the WSL environment without modification, is an approach that makes much more sense to me.

It appears that is what they have done though: https://devblogs.microsoft.com/commandline/shipping-a-linux-...
WSL 2 is a (lightweight magic) VM.
My guess is that they mean that they will fully support the syscall surface of Linux 4.19. I highly doubt that they're actually going to include the kernel inside Windows due to the GPL licensing, the linking issues would force open far more than even Nadella would like.
Does that mean one can mount ext drives now?
Finally. Won't need to run a VM for Docker anymore
Does that mean that Docker for Windows will no longer require Hyper-V? And therefore will be available for Windows home editions?
Yes, it looks so. They will add a few syscalls that Docker needs to WSL and we will use it on Home Edition.
It'll be interesting to see details here, which I guess will come out over the next couple of days.

They could either go the syscall emulation route (as in current WSL), or possibly the "thin hypervisor" route, the fact they're talking kernel versions makes me think that may be what they're planning...

I suspect it's the "thin hypervisor", aka LCOW + hyperv isolation. https://devblogs.microsoft.com/premier-developer/running-doc...

(I work at Microsoft but have no inside knowledge on this; just speculating.)

Just saw there's some more technical details here https://devblogs.microsoft.com/commandline/shipping-a-linux-....

Whilst it doesn't explicitly mention Virtual Machines or Hypervisors, I'd read this as making use of that kind of technology with some additional tech. for interop with Windows to the level of WSL currently.

EDIT: and here's the confirmation https://devblogs.microsoft.com/commandline/announcing-wsl-2/ it's a VM

Indeed.

I've been running WSL for over a year with Docker for Windows and while the experience feels native to WSL (WSL has no problem running the Docker CLI and connecting to Docker for Windows) it'll be a very nice perk to just apt install Docker in WSL and not deal with DfW.