66 comments

[ 5.0 ms ] story [ 131 ms ] thread
> "you cannot currently use WSL to run persistent Linux services, daemons, jobs, etc. as background tasks."

Still, this has me wondering if that's the ultimate goal here. Is Microsoft trying to position Windows 10 as a high quality Linux server in the long-term?

this is not the first time microsoft has done this.

https://en.wikipedia.org/wiki/Windows_Services_for_UNIX

one could even argue they are somewhere between the embrace and extend phase.

> one could even argue they are somewhere between the embrace and extend phase.

I see it more as grasping at straws to stay relevant. The Ballmer-era FUD campaign was mostly a failure (and bad PR). "If you can't beat 'em, join 'em".

Agreed. At this point it's like trying to "extinguish" the world's deserts or oceans :)
With Pichai they're steering more towards a service-oriented company. Linux clearly has a place in their vision. You can see this also in their offerings on Azure.

Microsoft is a large company. In recent years, many *NIX developers joined them. Although I don't have statistics.

Gone are the days where its funny or righteous to bash Microsoft on /. heck gone is /.

Its also not only Microsoft; its Wintel at a whole. Desktop market lost a lot of its relative relevance. Intel is also having trouble with ARM platform [1]. That's not only desktop market. ARM's onto the server market as well.

I'm not really backing the above up with sources and numbers though so take it with a grain of salt.

[1] https://www.fool.com/investing/general/2014/12/02/intel-corp...

the service oriented One Microsoft vision was Ballmer's last major contribution before walking out the door.

https://genius.com/Steve-ballmer-one-microsoft-annotated

Nadella (Pichai is google) is executing the roadmap Ballmer laid.

Ouch, I'm sorry I mixed them up and thanks for the reference on Ballmer's last minute change of course
It's a risky move to embrace your competitor's platform. Once this tech matures will people prefer SSH to RDS/WinRM? Will people write software for IIS or will they use WSL to deploy their Apache/Nginx config? When enterprisey software starts shipping with a WSL requirement will admins decide to move to Linux where their software is a 1st class citizen?

Why would you choose to be Windows native when its much easier to go cross platform starting with Linux?

My company is windows based. The IT department run a bunch of VM's running Linux. But it is always treated as a black box appliance. The admin expertise is still heavily based on the windows stack. I think this tech will make it easier to deploy those sort of appliances on Windows, without needing much Linux admin ability. Windows will compete at a higher level with deployment systems rather than the OS itself.
I think the idea is that right now, MS doesn't have much of a choice. Like it or not (and I doubt MS likes it), the server world runs on UNIX/Linux, and out of the four "mainstream" OSs (Windows/Mac /GNU+Linux/Chromebooks+Linux), it's the only one without a UNIXlike back, so while MS is fine on the desktop, they'll have long term problems if developers move to Mac or Linux and the community will see alternatives to Windows.

But in the end, it's not as if Windows is Open Source, and there's no guarantee that WSL will exist in it's current shape forever.

This is actually the whole EEE strategy. You embrace it, as a monopoly you can push your copy over any other, then you "extend" and improve it (so there'll be code which will only work on WSL) and then ... You won.

I came here to wonder the same. Is the key word in this sentence "cannot" or "currently"?

Do they to force win32 to continue to be a viable server platform, by forever restricting reliable Linux daemons, or do they eventually want to allow Windows to be a viable Linux server?

They want it to be a viable POSIX server.

The majority of web applications use languages with runtimes that hide any Linux specific features.

Given that the majority of enterprises allow only for Windows desktops, and won't pay for OS X machines, this is an appealing path to Ruby, Python, Erlang, Java, .NET Core, ... server based applications on azure cloud deployments.

I doubt they want POSIX ever again.

They want 'me too' POSIX-enough Developer workloads right up to the Deploy phase, where they have are building cushy, hard-to-evade on-ramp to Azure.

Your argument is confusing... Can I deploy my Django app on Azure? If the answer is yes, what exactly, is "me too" about that?
Does your current code generation pipeline rely on a GNU, BSD or Microsoft Userland?

How about Libraries, Compiler or Runtime?

'Me too' is in MSFT providing a "Super Runtime" in the form of WSL.

If your app doesn't require Microsoft's kernel or user space functions, why should your team?

I only see value for Windows as a desktop OS, and I think the intent of WSL is improving the dev experience on Windows.

If you need a high quality Linux server, why not just run Linux?

For the same reason people use OS X to actually develop applications that will actually run on GNU/Linux.
So you're saying develop on Windows Server and deploy on Linux? Why not develop on desktop Windows?
No, develop on Windows and deploy on Windows Server with the new POSIX subsystem.
I don't know why you are being down voted. I switched to OSX to get the sweet NIX underbelly years ago and while not everyone* uses OSX for linux deployments... many, many developers do.
Because a lot of enterprises running Linux are running some kind of "enterprise Linux" e.g. Red Hat, Ubuntu Advantage, SUSE Linux Enterprise, where purchasing an "enterprise Linux" allows for support contracts etc.

If you imagine WSL for Windows Server not as competition for CentOS and Debian, but as competition for "enterprise Linux", then you can have a compelling sales case for enterprises which are already heavily invested in Microsoft, i.e. with extensive Active Directory and Office 365 deployments. Why purchase two support contracts, one from Microsoft and one from Enterpise Linux Vendor X, when you can buy just one support contract from Microsoft and still run everything you need?

As far as I know, WSL is "Ubuntu on Windows", so wouldn't this be a conflict of interest? Maybe they would simply work out a deal to pay a royalty to Canonical or something. Wouldn't that be poetic.

I think it would be really interesting if MS competed in that space. But 'nix sysadmins don't want to worry about maintaining a Windows instance concurrently with their server instances (assuming the only facilities they need are what 'nix provides). Microsoft having Windows attached to their Linux distribution is a net negative, in my opinion.

Edit: Formatting

My guess, some of the Linux tooling will be easily ported or usable with Windows out of the box scenario is what they may be chasing.

Especially many tools out there for DevOps have *nix first flavor to them.

That's something I look forward to. Does anyone know of a solution of reliable SFTP on windows? By SFTP I mean copy-over-ssh as opposed to FTP with TLS. So I guess I'm asking for a standard sshd running as a windows service.
Ubuntu on WSL lets you run sshd. You can get to your Windows file system at /mnt/c/.
We're doing a port of OpenSSH to Win32 right now that includes the SFTP server and client that ships as part of OpenSSH: https://github.com/PowerShell/Win32-OpenSSH/releases

Key configuration is a little tricky right now, but we've got some helper scripts (eventually to be released as a module on the PowerShell Gallery) that it a little easier:

[1] https://github.com/PowerShell/Win32-OpenSSH/wiki/Security-pr...

[2] https://github.com/PowerShell/Win32-OpenSSH/wiki/OpenSSH-uti...

I've been using WSL on Windows 10 since it's release. I'd love to know the inside story of how it came to be. A lot of companies would never try something like this.

For me WSL has worked as perfect as could be expected, nothing failed to run that I need yet. The gaps are being slowly closed (e.g. executing between WSL/Windows). I no longer have to develop in a VM, nor be forced to use a Mac just because it has "unix" under the hood.

NT has had support for "personalities" since its inception. This is not even the first *NIX one it has had :)

Still, I agree that it's an impressive achievement.

What was the first?
The first featured one was Interix, which became SFU and then SUA. Picoprocesses (the base block behind WSL) were introduced in Windows 8.1, where SUA was removed (was deprecated in 8.0).
Except WSL has little in common with traditional NT personalities. Traditional NT personalities were a false good idea, and have been a failure in the long term, especially to run Unix workloads -- however this jugement is easy with insight -- when it came out traditional NT personalities were quite interesting.
No idea about code commonality, but the broad architecture of WSL is basically the same as the original POSIX personality from the 90's. The "foreign" process runs in a special mode and handles a different set of system calls via a different dispatch mechanism in the kernel, but still on top of the same set of kernel functionality beneath that.
Actually they are using the picoprocess ideas taken from Drawbridge research.

You are partially right, it is just that they improved a few things.

Traditional NT personalities were about the mechanism details.

Otherwise it is very current in operating systems to have a common kernel running different kind of userspace using different API - so of course there are some similarities, but only because it would be completely impossible not to have some.

It seems that this grew out of a project initially designed to port Android apps to Windows Phone https://arstechnica.com/information-technology/2016/04/why-m....
Yes, but that ran actually a hypervisor (Hyper-V based) on your phone. It was noticeable because when you gained command line access in an Android app you could find Hyper-V references. Also, when the phone had just booted, the Android VM was not ready yet, so if you tried to run an Android app a message was shown stating to retry it later.
Well, I'd love to use it if the I/O would improve. At the moment I just use Cygwin instead.
What are the problems with I/O? I am looking at this thread with an eye on buying a windows laptop for dev. instead of a mac.
It is very slow. Like noticeably slow. Especially if it comes to stuff like rsync and a lot of files. If you just use vim and such you would probably not notice it as much.

Also depending on how you develop you might run into unsupported things. For example, I once tried to run IntelliJ Linux version on it through X11 Forwarding. Didn't really run perfectly.

So right now I am too afraid to develop in it because what if the real Linux acts differently? I guess you could always test it, but then why not just develop in Linux already?

I am not even joking. In the next few years we are going to see Linux on the desktop!
Not really because what Microsoft is doing is actually GNU/Windows.

Google is busy with ChromeOS/Linux and Android/Linux.

Apple keeps developing their NeXTSTEP/BSD derivative.

I like the precision and clarity of your thinking. Would you be interested in being paid to write freelance blog posts?
No thanks, my hands are already full as it is.
This is actually really interesting. Google doesn't have a kernel so they're borrowing Linux. Microsoft doesn't have a good developer userspace so they're borrowing GNU's.
Not all Windows developers agree with that, though.
See, as much as it's a meme at this point, this is really where the GNU/Linux distinction is important. WSL is really GNU/Windows which is probably horrifying and a massive success story for the FSF.
Can you clarify the GNU/Linux distinction with regard to the WSL? I mean... isn't the main WSL layer a flavor of Ubuntu?
Linux is the name of the kernel. It is also used as the name of the kernel plus the userland, which has a lot of GNU code in it (although give Poettering some time and we'll see). WSL is the userland without the kernel.
WSL is running Ubuntu software with the GNU userspace on top of the Windows kernel using a Linux translation layer.
Lol, what about just using Linux.
photoshop, muscle memory

in that order

But this is an announcement about a feature addition to the Windows Server product (not Win10, which already has it), which does little to no image editing in practice and tends to be touched by zero muscle-driven input devices in production use.
(comment deleted)
I'm particularly eager to see WSL allow GPU pass-through so I can use PyTorch without a VM or dual-boot on my work computer.
I don't think that's necessary. WSL runs Linux binaries directly, it should use the host GPU just like any Windows program.
It doesn't work, because Linux GPU drivers don't run on the WSL (fake) Linux kernel.
They mention in some blog post that this is not gonna happen very soon.
Very cool. I wonder if picoprocesses could be extended to support something like coLinux, where the real Linux kernel runs as a timeslice alongside the Windows kernel.

Also it would be good to hear more about the progress on OpenSSH and PS remoting over SSH, the github project is getting updates but it doesn't seem very productised.

That name is horribly misleading. This is a Linux Subsystem for Windows Server. I'm guessing they wanted their brand name first, clarity be damned.
You can't put a trademark name at the front of a product name is what I have been told unless you get permission from the trademark holder. Not sure if this is true I also would love to know the reason.
I have no clue if you're right but that sounds as reasonable as anything else I know about the trademark/copyright/i.p./patent system.

Edit: This actually seems like a sane restriction in the context of the trademark system. Without even looking up the rules, it's pretty obvious people will see "Linux ..." and assume it's endorsed, or at least unopposed, by the trademark holder, which can be somewhat ambiguous with free software since it can be used so freely.