
Microsoft and Canonical partner to bring Ubuntu to Windows 10 - raddad
http://www.zdnet.com/article/microsoft-and-canonical-partner-to-bring-ubuntu-to-windows-10/#ftag=RSSbaffb68
======
hobs
Some additional details from Scott Hanselman:

[http://www.hanselman.com/blog/DevelopersCanRunBashShellAndUs...](http://www.hanselman.com/blog/DevelopersCanRunBashShellAndUsermodeUbuntuLinuxBinariesOnWindows10.aspx)

"This is a real native Bash Linux binary running on Windows itself. It's fast
and lightweight and it's the real binaries. This is an genuine Ubuntu image on
top of Windows with all the Linux tools I use like awk, sed, grep, vi, etc.
It's fast and it's lightweight. The binaries are downloaded by you - using
apt-get - just as on Linux, because it is Linux. You can apt-get and download
other tools like Ruby, Redis, emacs, and on and on. This is brilliant for
developers that use a diverse set of tools like me."

"This runs on 64-bit Windows and doesn't use virtual machines. Where does bash
on Windows fit in to your life as a developer?

If you want to run Bash on Windows, you've historically had a few choices.

Cygwin - GNU command line utilities compiled for Win32 with great native
Windows integration. But it's not Linux. HyperV and Ubuntu - Run an entire
Linux VM (dedicating x gigs of RAM, and x gigs of disk) and then remote into
it (RDP, VNC, ssh) Docker is also an option to run a Linux container, under a
HyperV VM Running bash on Windows hits in the sweet spot. It behaves like
Linux because it executes real Linux binaries. Just hit the Windows Key and
type bash. "

~~~
drinchev
> This is a real native Bash Linux binary running on Windows itself.

How does it work without VM? I'm super curious!

~~~
pionar
They added a subsystem in Windows that responds to Linux APIs.

~~~
fla
Think of it as Wine, reversed.

~~~
darkr
Eniw?

~~~
unclenoriega
Emulator Not In Windows

Sorry it's not recursive.

~~~
ant6n
ENIW is 'Nix In Windows

------
untog
Well, this has increased the changes of my next laptop being a Surface Book by
around 100%. I already loved the form factor of the thing, but lack of bash
was absolutely causing me to hesitate and wonder if I could justify doing all
my work in a Linux VM or something (I can't).

I'm genuinely very tired of OS X, which (to my perception at least) has gotten
steadily worse with every version. I for one will be happy to switch.

~~~
dimgl
Really...? What would you change about OSX? I just switched from Windows to a
Mac and I can't see myself ever going back...

~~~
vardump
Working SMB networking would be nice. Tired of mysterious issues. I can't
remember a single time in past year when whole directory copy/move to SMB
share succeeded. OS X just gives me these descriptive "error -51" or
whatevers. (It's really mature (not!) of OSX to have that blue screen icon for
SMB shares.)

Stable USB stack would be nice as well. Ever since El Capitan, virtual
machines I run off USB drive have been getting random I/O timeouts.

OS X tends to need quite a bit more memory than Win10. Win10 is as usable on 2
GB RAM as OS X on 4 GB. OS X graphics driver is also pretty slow, some 30%
slower than on Windows. OpenGL support is pretty bad on OS X.

On Windows 10 side my biggest issues are unstable (or temporarily unavailable)
RDP and bluetooth stereo audio stuttering. RDP color accuracy leaves also a
lot to be desired.

~~~
vetinari
Funny, that it's SMB that I hate on Windows. With OSX or Linux its no problem
to access shares with different credentials, no matter whether Windows server
in AD or standalone samba-based NAS, while it is a major pita in Windows.

~~~
vardump
Odd. I think my issues might have something to do with file sizes. Maybe there
are some issues with files over 2 GB or 4 GB. I don't know. I've just resorted
to using FTP (ugh!) and USB drives to get files out of my OS X machines.

~~~
vetinari
The network is OK? Are you connected over wifi? No packet loss?

And even though it is 3x3 MIMO, copying 20GB vm images is not something you
want to do over wifi, so in the end I've got the Thunderbolt Ethernet adapter.
Works like a charm, shorted the transfer by more than 10x.

SMB by itself never gave a problem (clean install of 11.0, then continuously
updated to 11.4).

~~~
vardump
11ac wifi. Usually connected at 702/780/867 Mbps. Works fine from Linux and
Windows VMs running on OSX (and laptops).

Transfer speed after overhead over 11ac 867 Mbps wifi is usually 400+ Mbps.

No packet loss (or at least it's below 0.1%).

------
jkot
Interested in how long it will last this time. Windows NT were POSIX compliant
long time ago, but that was discontinued.

[https://en.wikipedia.org/wiki/Microsoft_POSIX_subsystem](https://en.wikipedia.org/wiki/Microsoft_POSIX_subsystem)

[https://en.wikipedia.org/wiki/Windows_Services_for_UNIX](https://en.wikipedia.org/wiki/Windows_Services_for_UNIX)

~~~
gpvos
The POSIX subsystem was so crippled that it was unusable (no graphics or
network). SfU was neither free nor included by default, except for one free
version which also happened to be its last. Also at those times Linux did not
have the market penetration that it currently has with Android.

~~~
twoodfin
Right. As I've heard it, the POSIX subsystem was essentially a checkbox
feature to meet some government contracting requirements.

~~~
wolfgke
You confuse the POSIX subsystem with SFU/Interix (originally called "OpenNT",
but soon renamed to "Interix". Later bought by Microsoft and rebranded as
"Services for UNIX"):

>
> [https://www.samba.org/samba/news/articles/low_point/tale_two...](https://www.samba.org/samba/news/articles/low_point/tale_two_stds_os2.html)

> [http://brianreiter.org/2010/08/24/the-sad-history-of-the-
> mic...](http://brianreiter.org/2010/08/24/the-sad-history-of-the-microsoft-
> posix-subsystem/)

~~~
gpvos
I specifically remember that I read that (it was a checkbox feature) about the
ancient POSIX subsystem. The SFU/Interix system was a bit more capable, I
think? I did install it at one time, but never really used it.

Edit: yes, that is in fact exactly what the first link you gave says: _The
POSIX subsystem was added as the POSIX standard had become very prevalent in
procurement contracts._ [...] _This original subsystem was, I think it 's fair
to say, deliberately crippled to make it not useful for any real-world
applications. Applications using it had no network access and no GUI access,_
[...] _SFU contains a full POSIX environment, with a Software development kit
allowing applications to be written that have access to networking and GUI API
's._

~~~
orbitingpluto
I remember trying to use the Services for UNIX Version 1.0 Korn shell for a
job. Coming from bash/zsh, I loathed it. I opted for Cygwin's bash ASAP.

------
tzs
How about GUI applications?

I worked at a place that developed a "Linux on Windows" thingy back in the
Windows XP days. It was essentially like WINE. A user-mode Windows program
would load the Linux binary into the Windows program's address space and
execute it, trapping any attempts by the Linux code to issue system calls, and
the Windows program would then service those system calls.

For non-GUI stuff this worked remarkably well. I was able to grab the binary
for rpm off of my Red Hat system, and the then current Red Hat distribution
disc, and install successfully almost all of the RPMs from the disc and have
almost all of the non-GUI ones work.

I had expected big problems from the case-insensivite vs. case-sensitive
filesystem issue, but in practice there were only a handful of things that ran
into this. Mostly Perl stuff that used both "makefile" and "Makefile".

GUI stuff was another matter. We could run XFree86 under Cygwin, and then the
Linux apps under our WINE-like program would work. However management was not
keen on the idea of including Cygwin and XFree86 if we turned this thing into
a project. Also, we wanted an X server that would fit in better with a mix of
X and native Windows apps running at the same time.

I spent a while trying to write a Windows X server straight from the official
specifications. I got as far as being able to get xcalc to display a window
and all the controls to show up right, but weird things happened with events.
Everything looked fine when I packet sniffed the communication. I still had
not figured this out by the time management decided that this whole thing did
not have enough of a commercial market to continue the project.

~~~
bitcrazed
Want to make this absolutely clear - this is a command-line only toolset for
developers.

It is not built to support GUI desktops/apps. It is not built to run
production Linux server workloads. It is not suitable for running micro-
services or containerized environments.

Again - this is A COMMAND-LINE-ONLY DEVELOPER TOOLSET!

~~~
gpvos
Any plans for it to become more than that?

------
0x0
I wonder if this will mean that Windows will ship a more up to date Bash than
OSX!

Apple stopped updating Bash in OSX when the upstream license changed from GPL2
to GPL3, I believe. (Fortunately, they keep the bundled zsh more up to date)

~~~
hxegon
wow, so... 2007?

~~~
0x0
Yup

    
    
        % uname -a; bash --version; zsh --version
        Darwin hostname 15.4.0 Darwin Kernel Version 15.4.0: 
        Fri Feb 26 22:08:05 PST 2016; root:xnu-3248.40.184~3/RELEASE_X86_64 x86_64
        
        GNU bash, version 3.2.57(1)-release (x86_64-apple-darwin15)
        Copyright (C) 2007 Free Software Foundation, Inc.
        
        zsh 5.0.8 (x86_64-apple-darwin15.0)

~~~
y4mi
thank goodness zsh is the superior shell anyway

~~~
stula_0
It really should be the default shell by now. I don't the see the point in
Apple maintaining the 2007 version of bash with security updates when they can
just promote ZSH which has near 0 breaking changes from bash

~~~
NetStrikeForce
Apple can't do that or many people will just move away to... Well, Windows
now.

Users with zsh as their default shell are a tiny minority.

~~~
JdeBP
The former is nonsense, and the latter sheer unsupported guesswork.

The actual evidence from history of changing shells, from the Ubuntu and
Debian worlds where they actually did make a change of shells (from Bourne
Again to Debian Almquist) a few years ago, is that it doesn't drive people
away in the first place, let alone away to Windows.

Even if one did a survey to make the latter _not_ unsupported guesswork, one
would have (if my experience of StackExchange is anything to go by) to account
for all of those who answered that "My shell is Terminal.app." or "I have oh-
my-zsh as my terminal.".

------
typon
This might be the most exciting news I've heard in a long time. Being able to
use Visual Studio and .NET for web development while using zsh and all the
other Linux tools? Dreamland.

~~~
Karunamon
Serious, non-snarky question:

What does this give you that you would not already have with cygwin? The
latter installs .exe versions of the usual command line utils, and I'm almost
certain ZSH and the others you speak of are included.

I do not understand the practical implications of this move by Canonical/MS
other than PR - what's actually changing from a user/dev standpoint?

~~~
metafex
Cygwin is and always will be only an emulation-layer, never the real deal. For
most day-to-day things it works perfectly, but when you run into some corner-
case, most of the time you are out of luck.

My only real problem with Cygwin is, that it misses a command-line package
manager. If they could adopt pacman for package management like MSYS2 does,
I'd be a happy camper.

edit: To deploy Cygwin based applications you need to get a commercial license
from RedHat (if it's not FOSS). Which could be a deal-breaker.

~~~
tavert
You realize cygwin's setup.exe package manager has a CLI, right? The issue
with pacman in msys2 is that it's posix dependent, which fails badly at
updating the core posix layer itself. Cygwin's setup.exe is a native Windows
executable and doesn't have this self hosting problem.

~~~
koenigdavidmj
That doesn't solve the problem that if it is trying to update the Cygwin DLL,
you need to shut down everything. And if there's an update to something like
bash or coreutils, same thing (since Windows does not allow writing to
executables that are running).

~~~
tavert
Sure. But self-hosting pacman makes it literally impossible to do correctly.
Updating cygwin itself should be done by an outside-of-cygwin solution to
invoke setup.exe, just write a little powershell provisioning script or
something.

~~~
Macha
?

Arch is certainly capable of updating pacman via pacman,and it's been a while
but I'm pretty sure you can update apt/dpkg via the usual apt-get upgrade on
Ubuntu

~~~
tavert
Those aren't operating under the restrictions imposed by Windows.

------
JustSomeNobody
I think eventually, we'll see Windows transform into a Linux distro with a
Windows UI.

I'm not trying to wrinkle anyone's shorts, but this just makes a lot of
financial sense. Let the "community" do most of the OS development and only
maintain the Windows UI. This allows them to focus more on services and Azure.

~~~
loudmax
It would look like that's the direction they're moving in if this product were
a Windows environment on Linux. Something like a Microsoft supported version
of Wine.

As it is, it looks more like a Linux environment on Windows. Analogous to a
Cannonical supported version of Cygwin.

I'd love to see Windows as Linux distro because I'd prefer to give full access
to my hardware to Linux and only pull out a Windows environment when an
application requires it. Desktop Linux users are in the minority though, so I
expect there's a lot more demand for the reverse.

~~~
dalailambda
It could make sense if they want developers to start creating Linux focused
apps, and then over time deprecate the win32 parts.

------
bcantrill
Exciting stuff! This is (very?) similar what with LX branded zones in
SmartOS[1][2] -- and, as I've said before[3] -- we want as many other systems
as possible take this approach. That said, we also know how long a haul this
is, and how detail-intensive it is. So I've got a bunch of questions. ;)
First, is the source available? Second, how much of the One Hundred Language
Quine Relay[4] runs successfully? (For us, running that sucker to completion
was an important early milestone.) Assuming that runs, my next questions are
all common apps/programs that we knew to be especially thorny for one reason
or another: Go, strace, tcpdump, systemd, etc. Anyway, it's great to see the
SmartOS approach so broadly validated by Microsoft -- and hope that they both
finish the job and open source it all!

[1] [http://www.slideshare.net/bcantrill/illumos-
lx](http://www.slideshare.net/bcantrill/illumos-lx)

[2] [http://us-
east.manta.joyent.com/patrick.mooney/public/talks/...](http://us-
east.manta.joyent.com/patrick.mooney/public/talks/surge2015-lx.pdf)

[3] [https://www.youtube.com/watch?v=l6XQUciI-
Sc#t=1h7m15s](https://www.youtube.com/watch?v=l6XQUciI-Sc#t=1h7m15s)

[4] [https://github.com/mame/quine-relay](https://github.com/mame/quine-relay)

~~~
bradfitz
The linked slides say:

"Problem for software unenlightened by ABI (golang)"

I know they're not your slides, but do you also think Go is unenlightened
(which reads: clueless and unaware) or do you think perhaps it consciously
rejected the common ABIs?

~~~
bcantrill
I've never gotten a straight answer as to why Go makes system calls directly
instead of doing what every other program on the planet does and calling into
the system libraries. Certainly, it made the ports to non-Linux systems
absolutely brutal: systems are required to make themselves look like Linux for
Go to function correctly. So yes, this is unenlightened -- or perhaps it's a
conscious attempt to make Go unportable?

------
outworlder
Hell has indeed frozen over, and that's good news! From the screenshots, that
actually looks like a proper terminal too.

I wonder what will happen to Powershell now.

~~~
brazzledazzle
Powershell will probably be fine. Besides them both being a REPL and scripting
language they're very different. I guess the simplest way to put it is in
powershell you're passing around objects and in bash you're passing around
strings. That's an oversimplification though. I'd start wondering about
powershell's future when bash starts getting the ability to tap into .Net the
way powershell does.

~~~
TallGuyShort
As exemplified by this announcement, Bash in isolation is not that valuable.
It's the standard UNIX tools that most Bash scripts just assume are there that
really round it out as a platform. Supporting the piping of objects instead of
text? Not such a big deal. Replacing UNIX tools with object versions? I agree
- very valuable, but now a massive undertaking involving redefining a lot of
flags, etc.

------
kevin_b_er
Sounds like a regression on Canonical's issue #1. The resolution case was "A
majority of the PCs for sale should include only free software.". This article
does indeed appear to showcase active work toward a regression on bug #1

[https://bugs.launchpad.net/ubuntu/+bug/1](https://bugs.launchpad.net/ubuntu/+bug/1)

~~~
schoen
Mark Shuttleworth marked that bug as resolved a couple of years ago, which I
think was a mistake. I recently reproduced this bug in that I went to a local
PC store and attempted to buy a machine without any proprietary software. They
said that they didn't have any such machines available (never mind a majority
of their machines, as suggested by the original bug text).

~~~
vlunkr
He also uses the popularity of Android as part of his reason for closing it.
Sure, Android itself is open source, but you still have to go out of your way
to find Android devices that are purely FOSS.

~~~
mastax
> but you still have to go out of your way to find Android devices that are
> purely FOSS

This is pedantry, and certainly there's a sliding scale of openness for
devices. But unless I'm very mistaken, there are no devices available that
even approach 'purely FOSS'. What would such an 'Android' phone even be? No
google play services, no google play store, crippled and buggy open GPU
drivers, and still a proprietary baseband. Not that I'm happy with this
situation it just seems impractical.

------
otterley
To clarify, it sounds like what Microsoft has added to Windows 10 is a Linux
ABI.

This has been done before with other x86 OSes: FreeBSD has had 32-bit ABI
compatibility for at least a decade
([https://www.freebsd.org/doc/handbook/linuxemu.html](https://www.freebsd.org/doc/handbook/linuxemu.html)),
and the "lx branded zone" for Solaris also has 64-bit support
([https://docs.oracle.com/cd/E19455-01/817-1592/gchhy/index.ht...](https://docs.oracle.com/cd/E19455-01/817-1592/gchhy/index.html)).

It looks like Ubuntu was the first to package some Linux binaries for Windows.
I guess that's useful?

~~~
fanf2
Linux ABI support was introduced in FreeBSD 2.1 released in 1995, 20 years
ago.

------
chubot
I know I've run bash on Windows before -- but I don't remember if it was with
or without Cygwin. I assume this announcement is running bash natively,
without Cygwin or anything VM-like.

Did they have to contribute patches to bash, or just install it by default? I
don't see anything on the bash mailing list, but the development is not
particularly open.

~~~
nileshtrivedi
[https://twitter.com/jacobrossi/status/715209978286514176](https://twitter.com/jacobrossi/status/715209978286514176)

~~~
chubot
OK interesting -- native Ubuntu Linux binaries on Windows too. FreeBSD and
Illumos are also emulating Linux too, i.e. translating syscalls in the kernel.
I wonder if Microsoft grabbed some of that code since it's open source :)

This just shows how standards are made... implement first then think about it
later :) I don't think the Linux syscall interface is the model of clarity,
but that's what we have.

EDIT: This answers my original question... apparently they didn't patch bash
-- they patched their own kernel to run the bash binary, and all Linux
binaries! It was done at a binary level rather than source level.

------
FLGMwt
Would anyone be able to give insight on why this would be useful? Im curious,
sure, but I'm at a loss to think of a use case.

~~~
twoodfin
My guess for the marketing target is developers who use Macs because their
tools of choice are native to POSIX, with Windows API implementations as
second-class citizens at best.

Maybe things have improved since, but at least a few years ago, it was always
a crapshoot to try to get some new open source tool set up on Windows/Visual
Studio, vs. batting close to 1.000 on Mac with configure && make && make
install.

Another way to put this is that the world Terminal.app gives you access to is
a huge selling point for developers, and this is part of Microsoft's attempt
to provide something as useful.

~~~
b34r
They haven't and this is exactly it, as least for me as a web developer.

------
mixmastamyk
Very interesting and great to hear, though I would prefer zsh or fish. Didn't
they fix their command window (terminal) too?

Recently, MS is making all the right moves technically, but they've also
doubled down on the spying, pushing W10 without consent, and still in bed with
NSA, so they are still out of consideration for me.

A shame really. :(

~~~
mstromb
From what I'm reading it's the entirety of Ubuntu, including apt. Use bash
once to apt-get install zsh and you're done.

~~~
mixmastamyk
Yep, they changed the title on me, and now that I've read several of the
articles here, I see it is a whole/minimal ubuntu userland.

------
pvdebbe
This has a faint scent of an early April fool joke.

~~~
tempodox
It does, but then find me a Linux user who doesn't dual-boot into Windoze for
desktop apps. This way, you save one reboot. I wonder, however, how stable
this will be...

~~~
bsharitt
I can't think I a single thing I'd need to boot into Windows for anymore.

~~~
typon
Visual Studio is better than any IDE in existence. With ViEmu it becomes even
better.

~~~
tombert
Unless you don't have 30 spare gigs of storage space...

~~~
typon
If by 30 you mean 20 gigs then, yes. Also, 20 gigs on a very decent 256GB SSD
costs around $6.40. I don't know how much your hourly wage is, but the time
Visual Studio saves me compared to other development platforms makes up for
that money pretty quickly.

~~~
rplnt
> If by 30 you mean 20 gigs then, yes.

I'm pretty sure VS doesn't require nowhere near that amount and you are
talking about Windows symbols.

~~~
tombert
That might be true; I had a slightly tainted image of VS when I had to use it
three years ago, and after everything I needed was installed, I only had like
a gig left (this was on a weak, underpowered netbook, admittedly).

In retrospect it's not entirely VS's fault, though I just found it amusing how
quickly it ate through my storage when Vim only takes like 90 megs.

------
bovermyer
I am inordinately happy about this. The article was a little sparse on
details, though... is there a link where we can learn more?

~~~
lstamour
Scott's blog, as mentioned above:
[http://www.hanselman.com/blog/DevelopersCanRunBashShellAndUs...](http://www.hanselman.com/blog/DevelopersCanRunBashShellAndUsermodeUbuntuLinuxBinariesOnWindows10.aspx)

------
chx
I am sick and tired of Linux hardware support. Looking at what I run on a
Linux GUI, there's nothing which actually is Linux specific (right now I have
Skype, Slack, Konversation, shutter, phpstorm, geany, Chrome and Firefox
running). If I am able to run the Linux LAMP stack then I will be happy to
ditch all the problems with battery life, video drivers and bluetooth and just
use Windows. This stuff here is really big.

------
dhruvrrp
This might actually stop the exodus to OSX ive seen in the developer
community.

And I'm kind of surprised Microsoft did this since they seemed to be pushing
for Powershell before the Windows 10 release.

~~~
joeyaiello
We'll be continuing to invest heavily in PowerShell going forward. Bash on
Windows is awesome right now for developer scenarios, especially for folks
coming from an OSX/Linux workflow.

------
neilsimp1
[http://www.hanselman.com/blog/DevelopersCanRunBashShellAndUs...](http://www.hanselman.com/blog/DevelopersCanRunBashShellAndUsermodeUbuntuLinuxBinariesOnWindows10.aspx)

Some more info on this

------
frsandstone
It's interesting to see Microsoft move their OS more and more in sync with
Linux/OSX. Maybe they should invest in a Linux kernel based OS and build a
compatibility wrapper on top of that instead?

~~~
Aleman360
Why? The Windows kernel has many advantages over Linux.

~~~
fleetfox
I'm genuinely curious. Can you name few?

~~~
herewulf
It has a very special blue graphics mode built in.

------
sz4kerto
What about file permissions? If I can develop on a native IDE running on
Windows and share files with a Linux VM (or anything running Docker) without
screwing up file permissions, then I'm on.

~~~
hollander
It seems like it has its own file system, maybe a virtual one. See the
screenshots.

------
new_hackers
Glad to see this announcement. I hope this doesn't dampen the emphasis for
PowerShell which is a better Bash for Windows

~~~
0xFFC
I am seeing this narrative in HN and web which is ridiculous, You have nothing
to worry about PowerShell,Microsoft showed they are dead serious about Windows
10 and PowerShell deeply integrated to .net platform. So I am pretty sure and
I can predict nothing will happen to PowerShell because this is against
company interest.

They are trying to introduce bash as native shell as another option. That's
all.

~~~
new_hackers
right, which means more and more people won't bother learning PowerShell and
just use grep and the like.

It is still somehow a secret that PowerShell even exists. I can't count the
number of Windows users I know that still open cmd.exe, or install cygwin so
they can grep files.

I'm just saying that dealing with text is inferior to .NET objects on windows,
and the PowerShell pipeline is much more powerful. However, I don't know how
many people will end up learning this cause, "hey I can just use bash!"

------
0xCMP
Amazing. Can't tell you how many times we've asked Microsoft for a better
shell like linux. Or how many times we've said (half-jokingly) that Microsoft
should just give up and use a more unix-y file system and swap out the kernel
for linux.

This all not to say that Microsoft tech in these low level areas don't have
advantages over linux or are bad, but it'd be nice to have it at a low level.

~~~
JdeBP
> _Microsoft should just give up and use a more unix-y file system and swap
> out the kernel for linux._

You do realize that that's the exact opposite of what is happening here, ne?
The Windows NT file system is used, and the _Linux_ kernel is being swapped
out for the Windows NT one.

"At a low level" NTFS actually _is_ "Unix-y", of course. It had to be in order
to support the POSIX subsystems. Case sensitivity, hard links, symbolic links,
and a wide degree of freedom for filename characters are all there, at a low
level.

~~~
0xCMP
Yes I do, but the ideas/conversations have been happening, on and off, for
many years before this.

Especially when they weren't doing so hot and the idea gets floated around
(obviously without much serious thought, just something we say) "oh man, what
if they just gave up on that part and used linux to make it all work" \-- Then
everyone goes "that'd be cool, but then all those apps wouldn't work..."

Hence why they chose this route which required some pretty fancy research on
their part to implement. Which is even cooler imho. Probably the best senario
for Windows/MS over all in the end.

------
quotemstr
Oh, another subsystem. Yay, good for Microsoft. The problem with the subsystem
approach is that it's hard to get programs running in the subsystem to
interact with the desktop world, which is win32. What I like about Cygwin is
that the programs that run under it _are_ win32 programs: they can equally
well use CreateWindow and ppoll. Cygwin programs understand NT permissions.

It's always been possible to run Linux programs under Windows: just run a VM.
What Microsoft has done here makes it less painful to run Linux programs,
sure, but these programs still exist in their own little world. Cygwin
programs, on the other hand, _are_ Windows programs. To me, that makes them
much more useful.

Now, maybe I'm wrong. Maybe the new Linux subsystem is more tightly integrated
with the rest of the system than I'm guessing. But based on the available
documentation, it looks a lot more like SFU or Interix than it does Cygwin,
and that's a shame, because if I'm right, Microsoft misunderstood the whole
_point_ of Cygwin. Again.

~~~
rizalp
In my perspective, this Linux subsystem are very useful for running server
components like redis, or nginx which doesn't have official windows build. So
you can develop server apps which will run on Linux prod, but develop it with
Windows

~~~
quotemstr
Unless I can fire up windbg and point them at these binaries (which would
involve teaching dbghelp to read DWARF, and be useful in its own right), I
still don't see much of a point. I can always just use a lightweight VM, and
paravirtualized cross-VM filesystem access already exists.

~~~
JdeBP
You're rather presuming that one would use windbg. That's an unwarranted
assumption, given that the hypothetical developer here who is developing
server apps using redis and nginx "with Windows, for Linux prod" is likely to
think of gdb as the debugger.

Of course, whether gdb would work is something that we haven't yet been shown.

------
jwildeboer
Project Janus reloaded? AFAICS it's the same approach. Some shim layer that
translates between Linux kernel API and native Windows API.
[http://www.cnet.com/news/suns-solaris-10-to-run-linux-
apps-t...](http://www.cnet.com/news/suns-solaris-10-to-run-linux-apps-too/#)!

~~~
wyldfire
Maybe the NT kernel could gain a linux-syscall-compatible layer, instead of
adding compatibility in userspace. That would allow for compatible (same-arch)
binaries!

(EDIT: this would also require ELF loaders and all kinds of other good stuff,
but still a possibility IMO)

~~~
Revik
Guess what, there actually is an ELF loader in the compatibility layer:
[https://pbs.twimg.com/media/CcTwejAUEAAq_jR.jpg](https://pbs.twimg.com/media/CcTwejAUEAAq_jR.jpg)

~~~
JdeBP
One (more) thing that is conspicuously glossed over is non-ELF executables.
We've seen Win32 programs invoking ELF64 binaries demonstrated. And of course
the Windows NT Linux subsystem already "knows" that it's a Linux subsystem
process when a program comes to exec() a script, and doesn't have to worry
about checking binary formats over fork() because the program image doesn't
change. But missing so far has been Win32 programs invoking Linux executable
scripts, that have #! lines.

------
phabian
This looks like a long-term plan to kill linux. The only way to kill linux is
from inside out.

~~~
pritambaral
Embrace. Extend. Extinguish.

------
betolink
Once upon a time Steve Ballmer said that GPL/Linux was cancer, it's odd to see
his company spreading it =)

~~~
SXX
If you can't stop it...

~~~
mixmastamyk
If you can't beat 'em, join 'em.

------
waiseristy
Hah, nice little Emacs jab there

"Of course, I have no idea how to CLOSE emacs, so I'll close the window. ;)"

------
snhkicker
I think this will be met VERY VERY badly by readers of this comment but this
change as far as i understand is windows telling canonical to help them in
taking their customers i live in egypt and other than containers and CLI and
running it as webservers there is practically no way for anyone to even
consider using linux i don't think this will end up well for linux i think
windows attempts will take the webservers business from linux in 5 years or
something which is probably 90% of it

~~~
digi_owl
Microsoft has their own cloud service, Azure.

And Ubuntu's biggest "market" these days is not desktop, but as a container
base.

So this is MS getting cozy with Canonical to offer a development environment
for Ubuntu based containers destined for Azure.

------
JdeBP
A lot has been written, in this and the other major Hacker News discussion,
about Microsoft. Very little has been written about Canonical. Another ZDNet
news piece ([http://www.zdnet.com/article/ubuntu-not-linux-on-windows-
how...](http://www.zdnet.com/article/ubuntu-not-linux-on-windows-how-it-
works/)) quotes in part a Mark Shuttleworth press statement that is on the
Ubuntu WWW site in full
([http://partners.ubuntu.com/microsoft](http://partners.ubuntu.com/microsoft)).

Another thing that no-one has mentioned at all is how this pairs up with
UbuntuBSD.

* [https://news.ycombinator.com/item?id=11326457](https://news.ycombinator.com/item?id=11326457)

Michael Hall of Canonical is quoted elsewhere
([http://www.cio.com/article/3046588/open-source-
tools/ubuntub...](http://www.cio.com/article/3046588/open-source-
tools/ubuntubsd-helps-users-escape-systemd.html)) saying that

> _I think it 's a cool project and I'm looking forward to seeing how far they
> get with it. It would certainly be an interesting addition to our already
> varied list of official flavors, if they can get there._

If one has Ubuntu binaries, one can now run them directly on top of 3
operating system kernels:

* On the FreeBSD kernel, with UbuntuBSD.

* On the Linux kernel, with Ubuntu Linux.

* On the Windows NT kernel, with this new Windows NT Linux subsystem.

So whilst RedHat is busy pushing systemd, and the systemd people are busy
pushing a convergence of all Linux distributions into systemd operating
systems that do a whole lot of things in the same single way, Ubuntu is
apparently taking on Debian's "universal operating system" mantle and
extending it to places where even Debian is not.

Everyone is focussing on Microsoft. It's important to remember the "and
Canonical".

~~~
JdeBP
And going by Canonical's marketing only a few days later, its ubiquity is what
they are pushing.

* [https://news.ycombinator.com/item?id=11464703](https://news.ycombinator.com/item?id=11464703)

------
Tistel
I think this is great. I live in emacs and a bit of bash. emacs on windows
works, but, does not _feel_ right. Everything is a little wonky (the path
slash thing, the unix find and aspell tools etc). If this makes emacs feel
like it does on linux native or mac, I will seriously consider buying a
windows laptop. Well done new guy in charge of Microsoft!

~~~
lottin
It's true, I always have to install some bundle that includes R and LaTeX
along with Emacs, otherwise it's a nightmare installing all the different
programs individually and making them work together. But still for me the main
problem of Emacs on Windows is that the fonts look blurry and horrible.

------
xaduha
I'd be more excited if they added support for NFS to every edition of Windows
and fixed some quirks that is has.

Bash alone isn't that useful, you'd need other stuff and you can already get
that from other sources. There's also a distinction between a terminal program
and shell. Bash is a shell. iTerm2 is a terminal program. Cmd.exe is both?

------
hobarrera
I know I'm being picky, but there's NO Linux here. Linux is the kernel, and
the kernel is THE piece they're not including.

So rather than repeating "Linux on windows", this is "Ubuntu's userland on
windows", or "GNU on windows", or any other variation, but NOT "Linux".

~~~
JdeBP
In fairness: the Windows NT OS/2 subsystem doesn't have the OS/2 kernel, the
"NT Virtual DOS Machine" doesn't have a vanilla DOS kernel, and there's no
Unix kernel in Windows Services for Unix. So they're all named after the thing
that isn't really there, and that the Windows NT kernel substitutes for.

Furthermore, only _some_ of the (free) software bundled up as Ubuntu is "GNU".
Being copylefted doesn't by itself make something part of the GNU Project.

* [https://www.gnu.org/software/software.html#allgnupkgs](https://www.gnu.org/software/software.html#allgnupkgs)

The annoying thing was the Microsoft video where twice Rich Turner of
Microsoft stopped Russ Alexander to clarify what was happening and gave
_incorrect_ clarifications of how things were "running on Linux ... on
Windows". They patently are not "running on Linux".

Microsoft has been quite happy to say over all these years that OS/2 1.x
programs were "running on Windows" and DOS programs were "running on Windows"
and Win16 programs were "running on Windows" and even Win32 programs were
"running on Windows", M. Turner. This is just plain "Linux programs running on
Windows". There is no need to make it confusing when it actually isn't. (-:

------
Xorlev
Cool! The *nix/Windows ecosystems coming closer can only be a good thing. I've
hesitated in getting a Surface Book since it'd always need a good network
connection to support remote development, but this has the potential to change
the game.

I had always hoped this would happen when I was younger, and now it's finally
here.

------
jaxondu
I was hoping for a fully supported Ubuntu running on MS Surface Pro.

------
staticelf
This is basically a dream come true for me if this is executed well.

~~~
mizzao
Agreed. I currently have an Ubuntu guest VM on a Windows host and use both
simultaneously for day-to-day work.

~~~
ewzimm
I do the same thing! Even now, WiFi has poor support on Linux with many
computers, especially newer business tablets, so VMs or remote desktops are
the only options. This will mean I can get full performance.

~~~
mizzao
Yep, running a Surface Book with this setup and it's fantastic.

------
DoubleMalt
That will not make me use windows on my computers, but it will make at places
that use Windows sooo much better.

------
rcarmo
FYI, [http://aka.ms/uowterms](http://aka.ms/uowterms) points to Canonical's
site.

Pretty excited about this, given that I've been using Cygwin for ages and
always found it a pain to hit those edge cases where it didn't work.

------
Osiris
I'm excited for native git on Windows. The current Git on Windows versions are
damn slow.

------
jbandela1
This is awesome. My guess, is that they will also integrate building Linux
applications with Visual Studio. See
[https://blogs.msdn.microsoft.com/vcblog/2015/11/18/announcin...](https://blogs.msdn.microsoft.com/vcblog/2015/11/18/announcing-
the-vs-gdb-debugger-extension/)

for an example of how to debug using gdb in Visual Studio. Having an
integrated Linux environment, would make this support seamless. Then Visual
Studio becomes the cross-platform hub for building code for Windows, Linux,
iOS, and Android.

------
tarr11
Interesting, as a rails dev who develops mainly on vim, the main reason I've
switched to an MBP from a Thinkpad was because of this.

Will reconsider a windows laptop again next, if build quality and battery life
are comparable.

~~~
eswat
Base coming to Windows has nudged me to strongly consider going back as well.
But finding a laptop with comparable build quality to a MacBook is also what
I’m finding troublesome to accomplish.

~~~
izacus
Hmm? Pretty much everything in MacBook pricing bracket is comparable (highend
ASUS Zenbooks, Dell XPSs, highend Thinkpads, etc.)

------
leni536
This was possible few years ago on x86 win XP.

[http://www.colinux.org/?section=home](http://www.colinux.org/?section=home)

I guess it's possible to do something like this again.

------
javanix
I'll be very curious to the the source of this native-Windows port.

~~~
saulr
I don't think bash itself has been ported, it's simply running under a Linux
subsystem. I imagine it's similar to the discontinued POSIX and UNIX[2]
subsystems. In this case, bash probably believes that it's running in on
Linux, not that it's been ported over to compile in Windows.

[1]
[https://www.wikiwand.com/en/Microsoft_POSIX_subsystem](https://www.wikiwand.com/en/Microsoft_POSIX_subsystem)

[2]
[https://www.wikiwand.com/en/Windows_Services_for_UNIX](https://www.wikiwand.com/en/Windows_Services_for_UNIX)

------
venomsnake
Another item on the Apocalypse is coming list is checked.

On a more serious note - Unity is something I deeply hate, and a lot will
depend on the quality of the implementation.

It will be good to develop easily for linux too.

------
ENTP
Sounds like this is an experiment to me - the first step towards a hybrid OS.
Do they want to try and eat into the OSX/development stack in an effort to
make windows relevant to that market? Or is there a bigger picture here where
they eventually want to blur the lines between linux and windows? Perhaps they
will "pull an android" on the patent front but have a free alternative that
you can use. I guess I've been around too long and seen too much.

~~~
JdeBP
It's not really an experiment. Or if it is, it was one that was performed in
1988. Windows NT has _from the start_ been designed to have this, multiple
operating system "personalities" layered as "subsystems" over a single kernel.
As someone who has been around long and seen much, you should recall the OS/2
1.x subsystem aimed at pulling in the OS/2 1.x market, the "NT Virtual DOS
Machines" aimed at pulling in the DOS market, the (original) POSIX subsystem
that people characterized as little more than marketing checkboxery, and so
forth.

Gradually all of the subsystems, and processor architectures, fell by the
wayside. The excitement for some is less that this is some fundamental
architectural change in Windows NT. It isn't. It's that this is the first new
thing in (desktop/laptop/server) Windows NT for a while that isn't "The
customer can have any subsystem and processor architecture that he wants, as
long as it is WinNN and Intel/AMD.".

It would be good to see the Interix subsystem come back, too. And maybe a
second processor architecture, as well. (-:

------
SXX
rm -rf /* now on Windows

------
dang
Not sure what the best URL is for this story, so we just picked the oldest
active thread. We can change the URL if there's a significantly better one.

------
digi_owl
Not surprised. Seems that as of late the biggest use of Ubuntu is as a
container base.

If there is one thing Microsoft has always delivered, it is strong developer
tools. And this is another case, as developers now don't have to fiddle with a
VM to get a Ubuntu test environment going before stuffing things into a
container.

Every embrace of Linux Microsoft has been doing as of late can be traced back
to their Azure cloud service.

------
gketuma
This will make me drop my MBP for the Surface Book.

------
petecox
Will this work on Windows Phone?

It would seem like this compatibility layer goes some of the way to running
Android apps on WP10.

But it might be handy to have a GNU/Linux distro in your pocket, coupled with
Continuum, running inside a chroot.

(sure there's debian chroots on Android. There's Ubuntu Touch but I've never
seen a retail handset, whereas Lumias do exist.)

------
santiagobasulto
"According to sources at Canonical, Ubuntu Linux's parent company, and
Microsoft, you'll soon be able to run Ubuntu on Windows 10." I'm not a native
english speaker, but that seems like a poorly phrased sentence, isn't it? (I'm
currently reading "Eats, shoots and leaves")

------
rsp1984
A lot of bash already exists in the "git bash" shell that comes with the git
Windows installation [1].

I've been using it for a while now for a lot of non-git stuff too and I'm
quite happy with it.

[1] [https://git-for-windows.github.io/](https://git-for-windows.github.io/)

------
mangeletti
Real question: why are users considered "hard core" just because they run bash
commands from a CLI?

It's such a strange though to me, the idea of being a sys admin and clicking
around in a Windows computer... is that how it happens, or do most Windows
admins use one of the CLI tools mentioned in the article?

~~~
mekoka
I think you're asking two questions. Why would sys admin use a cli? Think
about it this way, what if instead of letters your keyboard came already
attached with words you can use instead? That's the best analogy to the
difference between the gui and the cli I can come up with. It's just 2 APIs,
but the latter is generally more complete, faster and offers more control.

As to why people are considered "hard core" when they use the cli, it must
have to do with the (somewhat false) notion that one must have a special kind
of mind to be able to remember all these commands. Most cli users know that
they're not geniuses, they just had the patience to go through a tutorial or
read parts of the manual. Then they repeatedly used a small set of commands
that they need almost daily and that stuck to long term (or muscle) memory.
Over time they took some notes when they encountered handy but seldom used
commands. They've done this for many many years with many many tools. Look
over their shoulders as their little fingers do their thing and mistake their
craft for wizardry.

------
sunsu
I'm assuming some of this was driven by Microsoft's desire to support the
Docker ecosystem? Great move!

------
davnn
I'm really impressed with Microsoft's decisions lately. To put it bluntly: YOU
GUYS ARE AWESOME.

~~~
j1vms
Yes, I also think that their decisions over the past few years are pointing to
a real renaissance within the organization, and they are starting "again" to
focus on their core strengths.

------
kchoudhu
The ability to use apt-get is what is truly intriguing.

Will I be able to change the repositories that I face off against?

------
pritambaral
So a bunch of CLI tools, that use a shim layer to translate Linux syscals to
Windows kernel API. I think this will be somewhat like OS X's POSIX base. I'm
dreaming this could mean eventually being able to run KDE or openbox or sth,
perhaps by community effort.

------
hartator
Actual tweet:
[https://twitter.com/windowsdev/status/715211234702966785](https://twitter.com/windowsdev/status/715211234702966785)

No much information for now, but that seems to be a little revolution.

------
eanzenberg
ls c:\program/ /files\documents\recycle/ /bin\

ugh

~~~
SXX
According to the screenshot it's will be:

ls /mnt/c/program\ files/documents/

~~~
anthk
ln -s /mnt/c/program\ files/ /mnt/c/sw

------
lasermike026
Is Microsoft starting to get it?

------
tonyblundell
Cool! Linux with Viruses :-)

------
quotemstr
All I wanted was a win32-subsystem COW fork. NT already had a COW fork. It
always has. All you needed to do was wire up that fork to win32. Instead, you
did some other random, much less valuable thing.

------
pen2l
I'm on Win8, haven't updated to Windows 10. Will this /only/ work on Win10? I
really don't want to update -- but will update if it's the only way.

------
wolfhumble
How does this _license wise_ play together with the GPL?

~~~
samuellb
It seems to be an implementation of a subset of the Linux kernel ABI (binary
interface to applications) on top of the NT kernel. It's most likely written
from scratch, similar to WINE or FreeBSD's Linux ABI, and in that case there
shouldn't be any copyright issues.

------
Redoubts
Does this make the development story much more clear? I was always confused
about the differences between msys, msys2 , mingw, cygwin, etc.

------
grandalf
Wow, the lack of a solid, built-in bash and apt-get has been the major reason
I'd never consider windows for everyday use.

~~~
lottin
What about the lack of middle-click paste and virtual desktops?

~~~
grandalf
Yeah virtual desktops are nice, I am not generally in the habit of using
middle click anymore though.

------
systems
i kind of prefer it the other way around, like others here have suggested

i want a better wine, that can run sql server, and ms visual studio

~~~
rplnt
I don't see much reason to do either. Virtualization pretty much works now.
I'm sure there are use cases when that's not enough, but I think majority of
people who want Windws+Linux would be happy with either of those running in a
VM (depending on their use case).

------
wslh
> It also seems unlikely that Ubuntu will be bringing its Unity interface with
> it. Instead the focus will be on Bash and other CLI tools, such as make,
> gawk and grep.

I will love it but not having a graphical interface limits the added value.
Currently the main problem with running a desktop Linux in a VM is the limited
support for 3D/2D that increased CPU usage making your whole computer
unusable.

On the server side Hyper-V in Windows 10 is a partial solution that already
works.

~~~
anthk
> Currently the main problem with running a desktop Linux in a VM is the
> limited support for 3D/2D that increased CPU usage making your whole
> computer unusable.

Bullshit.

~~~
wslh
Excuse me... It seems like you are an ignorant and happy downvoter. HN is for
civilized discussions, if you don't agree make your point.

For anybody else, just search this on Google: 2d 3d cpu ubuntu (virtualbox OR
vmware OR "hyper-v")

~~~
anthk
VBOX Guest Additions, Virgl for KVM, GPU passthrough .

~~~
wslh
So... you know something that I don't and instead of teaching me you insult
me. Also, your answer doesn't invalidate what I said since these are
experimental approaches with many issues (see for example
[https://forums.virtualbox.org/viewtopic.php?f=7&t=69732](https://forums.virtualbox.org/viewtopic.php?f=7&t=69732)
)

Now, have you tried these experimental approaches with Unity on
VMware/VirtualBox/Hyper-V? Please let us know your results so anyone can
benefit of that.

~~~
anthk
Those are not experimental approaches. I've tried them about 5 years ago.

Also, how is that experimental:

[https://www.youtube.com/watch?v=37D2bRsthfI](https://www.youtube.com/watch?v=37D2bRsthfI)

Stop spreading FUD if you don't know what are you talking about.

~~~
wslh
Clearly you don't know what FUD really is.

------
zyngaro
Great. Now I may consider buying a PC again.

------
iammyIP
Great News! For many people, this might make the full transition to a real
Linux distribution much easier.

------
leonardinius
Genuinely interested: will I be (in near future) run Linux native docker on
Windows?

------
analognoise
Embrace, extend, extinguish.

------
daveloyall
Embrace! Extend! Extinguish!

------
NamPNQ
Ubuntu join with win shjt?

------
be5invis
I am curisous about can these ELF programs interop with win32 ones?

------
pmlnr
so this is
[http://unxutils.sourceforge.net/](http://unxutils.sourceforge.net/) v2?

------
tweevijftig
The question is: Does the date command work?

------
manojlds
Does this obviate msysgit?

------
czk
well, I guess 2016 truly is the year of the linux desktop

------
szczepano
quite similar to Microsoft and Nokia partnership

------
BrainInAJar
So they've reintroduced Services for UNIX Applications?

This isn't news. This is Microsoft up to the same dirty tricks they pulled in
the 90's to try to kill UNIX.

------
Philipp__
Grabbed popcorns, now open the floodgates!

------
pmontra
This post has more details [http://www.zdnet.com/article/microsoft-and-
canonical-partner...](http://www.zdnet.com/article/microsoft-and-canonical-
partner-to-bring-ubuntu-to-windows-10/)

The interesting part is "Ubuntu will primarily run on a foundation of native
Windows libraries."

If this is true Canonical is playing with fire. That could be the embrace step
of the usual embrace-extend-estinguish script. Think what happens when
Microsoft adds some new functionality to those "native Windows libraries" and
Ubuntu/Windows is extended to use it and Ubuntu/Linux obviously not. If
(when?) the majority of Ubuntu's users will be on Windows Microsoft only needs
to start developing its own Ubuntu and cut Canonical out of the loop. If there
will be a significant amount of Ubuntu/Windows servers by then, very little
will be left for Canonical. Only the cost of Windows licenses can save
Canonical on the server. The desktop will be lost given that most of Ubuntu's
desktops are born as Windows machines. The more convenient way will be to add
Ubuntu/Windows to them and keep a Windows OS for games or just in case you
need some Windows native application.

Maybe Canonical is thinking about leaving the desktop and focusing on the
server. Still it's a risky move.

Another interesting post of October 2015
[http://www.linuxjournal.com/content/ubuntu-
conspiracy](http://www.linuxjournal.com/content/ubuntu-conspiracy) "The word
is that Microsoft is in secret negotiations to purchase Canonical." Maybe
they're playing the Elop move without having to change CEO.

~~~
JdeBP
> _" Ubuntu will primarily run on a foundation of native Windows libraries."_

I think that you're predicating an entire argument on what was probably a bit
of slipshod writing. After all, we know (now) that what this is is Linux
binaries running on the Windows NT kernel, and that Microsoft hasn't actually
done anything to those binaries _at all_ (and indeed touted that as a
feature). So Microsoft hasn't taken any steps to make Ubuntu softwares
specific to the new Windows NT Linux subsystem.

Nor has this even been positioned as an "Ubuntu on Windows server". Indeed,
the Microsoft people promoting it have been stating (in all-capitals or
boldface, no less) that it's for enhancing developer command-line workflows.
It apparently doesn't even have the server capabilities (i.e. running programs
as services) that even the old (Interix) Windows NT POSIX subsystem had.

You're also discounting the _other_ Ubuntu news of the month.

See
[https://news.ycombinator.com/item?id=11415985](https://news.ycombinator.com/item?id=11415985)
and
[https://news.ycombinator.com/item?id=11416376](https://news.ycombinator.com/item?id=11416376)
.

