Friday, April 1, 2016

Ubuntu (Linux) For Windows

Ubuntu (Linux) For Windows


Soon you'll be able to run Linux apps on Windows thanks to a partnership between Microsoft and Canonical, the company behind the popular Ubuntu version of Linux.

This summer, Microsoft will release Ubuntu for Windows, the company announced at its annual Build conference today. This marriage of former foes will not only bring a set of key Linux tools to the Windows desktop but make it easy to install other Linux programs without the need for those programs to be rewritten to work on the Windows OS.

That might not sound particularly useful, since commercial software companies like Adobe and Intuit tend to prioritize building applications for Windows over Linux. But it could make life easier for programmers. "This is a developer-focused release that removes a major barrier for developers who want or need to use Linux tools as part of their workflow," Microsoft employee Scott Hanselman explained in a blog post.

More specifically, Ubuntu for Windows is ideal for web developers, says Fintan Ryan of the analyst firm RedMonk. If you're building a website or web application, chances are it's going to end up running on Linux. About 68 percent of websites are powered by Unix-style operating systems, according to a W3techs survey; other estimates put that rate even higher. Many programmers, particularly those who work for large corporations, are still stuck using Windows to develop software that will eventually run on Linux, Ryan says. The trouble is, Linux has its own tools and its own way of doing things. Ubuntu for Windows could create a more consistent experience for web developers working on Windows and make their lives a bit easier overall.

The Big Bash


For example, Microsoft demonstrated today how developers can use the the popular open source command line interface Bash to manage a web project from a Windows desktop using the exact same commands they'd use on a Linux server.

Sure, you can already use Linux apps on Windows by running the entire operating system in what's called a virtual machine, but that can be resource intensive. Many of the tools Linux developers use are already available through Cygwin and other efforts to port open source apps to Windows, but that effort requires each application to be at least partially rewritten.

Ubuntu for Windows will use a new piece of technology Microsoft created called Windows Subsystem for Linux, Canonical's Dustin Kirkland said in a blog post. Instead of relying on a virtual machine or manually rewriting apps, the Windows Subsystem for Linux translates commands meant for the Linux kernel-the core part of the operating system-into commands for the Windows kernel. It's not perfect, Hanselman and Kirkland admit, and there's much work left to be done. But it should become possible to run many Linux tools on Windows without needing to make any changes.

Canonical's Dustin Kirkland explains a bit further. Users will be able to type "bash" into the Windows 10 start menu to open a command line console that users Ubuntu's /bin/bash.

The system features a full Ubuntu user space complete with support for tools including ssh, grep, wget, curl, python, mysql, ruby, php, vim, and more.

Kirkland says Bash for Windows 10 differs from tools like Cygwin, because it's not just a set of tools that have been recompiled to run on Windows. Instead, the complete Ubuntu subsystem is available, making this more like an emulation layer. It's kind of like the opposite of WINE, which allows you to run (some) Windows apps on Linux.

In this case, Linux system calls are translated into Windows calls in real-time, allowing you to run some Ubuntu programs on Windows without making any modifications to those programs.

Currently the tools are based on Ubuntu 14.04, but soon everything will be updated to Ubuntu 16.04.

Ubuntu for Windows is part of Microsoft's larger strategy to make Windows the main place programmers develop applications for a wide variety of platforms, from Linux to Android to iOS. But Ryan doubts Microsoft will win any Linux developers over to Windows with this new piece of technology. Rather, he thinks it's designed to keep developers from defecting away from Microsoft. Given a choice, many developers who use Windows for work today would rather just use Linux or the Unix-like Macintosh OS X operating system to do development work than mess with virtual machines or ported apps. Making life easier for them might keep them using Microsoft products once they have a say in what they use.