ZDNet reports that sources at Canonical, Ubuntu Linux's parent company, and Microsoft will announce that Ubuntu will run on Windows 10 tomorrow at the Microsoft’s Build Developer Conference.
Users won’t have a choice between running the Windows 10 tiled user interface and Ubuntu’s Unity user interface because if ZDnet is right, this announcement is for developers not end-users.
The BASH Linux-like command line shell and Linux portability has been available on Windows with Cygwin for a long time dating back to XP. This lets users run many Posix compliant system calls and port via recompiling Linux apps to run on Windows. Differences in access control lists (ACL,) drive mappings and encoding schemes are translated with Cygwin. There’s more, but in a nutshell, CygWin lets developers use Windows machines as part of a GNU software development tool-chain that is a broad selection of tools for collaboratively creating, debugging and deploying software.
The difference is Ubuntu users will be able to run Ubuntu simultaneously with Windows that (hopefully, keep your fingers crossed) will run Linux packages on Ubuntu. Why is this important? Everything that runs using Unixoid with Cygwin has to be compiled whereas, running Ubuntu simultaneously with Windows means that any Linux packages for Debian Packages (.deb) and Redhat (.RPM) and Tarballs will run as an integrated part of Windows 10. If ZDnet is right, Ubuntu running with Windows will bring all the development tools that have made Apple Macs and Linux machines popular with developers to Windows
Microsoft and Ubuntu have been working on bringing containers to Windows 10. Containers are a Linux innovation spread by Docker that packages the application with runtime dependencies such as libraries and abstracts it from hardcoded parameters such as security. Containers can be launched and stopped quickly and isolate the operating system from applications errors like virtual machines (VM) do without running VMs. Windows 10 may not be the best runtime environment for containers compared to Azure, but compatibility for testing would be a big feature; maybe it’s a stretch.
Developers use Unix/Linux command line interfaces to most of the tool-chains used to build and deploy apps such as Github and Docker. BASH for the Mac OSX and Linux are robust and integrated with the diversity of software development tool-chains. Cygwin and Unixoid brought Windows very close, but having to recompile tool-chain dependencies keeps Windows out of some development shops. Ubuntu compatibility will open up Windows 10 and make it possible for more developers to use Windows 10 machines, potentially making Windows 10 machines as popular with developers as Macs and Linux machines.
We will have to wait until tomorrow though to see just how open Microsoft Windows and Azure becomes with Ubuntu. Could open compatibility with orchestration systems used to manage containerized apps Mesos and Kubernetes and not just LXD be on the list of announcements at Build?