Thursday, March 31, 2016

Microsoft Is Bringing the Bash Shell to Windows 10

Frederic Lardinois:

Microsoft today announced that it is bringing the GNU project’s Bash shell to Windows. Bash (Bourne Again SHell) has long been a standard on OS X and many Linux distribution systems, while the default terminal for developers on Windows is Microsoft’s own PowerShell.

More importantly than bringing the shell over to Windows, developers will now be able to write their .sh Bash scripts on Windows, as well (or use Emacs to edit their code). Microsoft noted that this will work through a new Linux subsystem in Windows 10 that Microsoft worked on with Canonical.

“The native availability of a full Ubuntu environment on Windows, without virtualization or emulation, is a milestone that defies convention and a gateway to fascinatingly unfamiliar territory,” Canonical founder Mark Shuttleworth said in a statement today.

Dave Winer:

They ported Word and Excel to Mac when they were trying to get the world to adopt Windows. I think you can see where this is headed. Flatten out the differences between the OSes as much as possible. Why not. No one cares about that stuff, that’s the layer that was established 30 years ago. The action is happening 10-levels up the stack.

4 Comments RSS · Twitter

Just a quibble, Excel was Mac first.

I think a lot of web/sysop/etc devs use Macs because it's a nicer *nix. Competition here would be nice and maybe make Apple pay more attention to the Mac.

@Lee Thanks. I was wondering about that myself, though I think it doesn’t affect his point.

The Ars story ( hints that this might be more than just a shell. Microsoft may have an independent implementation of the Linux kernel API. This would be like the BSD layer on OS X. The details will be messy for years to come though. Many open source projects already have Windows ports and it will be a hassle to target the Linux compatibility layer instead of the hacked-up Windows layer. This is an OS X probably that persists to this day.

Yeah, bash is the most visible end result, and probably what they targeted, but (from this post linked from ) what this is is unmodified Ubuntu userland binaries (executables and libraries) running on top of an implementation by the Windows kernel of the Linux kernel interfaces. It's not a port of bash in the sense that bash itself has not even been recompiled.

This also required some additional ANSI/VT100 support to cmd.exe.

Leave a Comment