tech2 News StaffMar 31, 2016 08:59:16 IST
Microsoft seems to be working with Canonical to integrate Ubuntu within Windows, reports ZDNet. Microsoft has been working very hard to offer cross-platform development tools to their developers, as the recent purchase of Xamarin suggests. This news should be very heartening to developers. Full details will be announced at the Build conference starting 30 March.
To be clear, we're not talking about a Windows-Ubuntu hybrid OS here and neither are we talking about a virtual machine. What Microsoft is doing is integrating certain Linux subsystems within the Windows kernel. To the layman, this isn't going to make much difference. To the developer, this will be a game-changer.
Ubuntu on Windows will run on native Windows libraries and use the aforementioned subsystems for everything else. The result will, in theory, give developers access to Ubuntu from within Windows but without the overhead of a virtual machine or the hassle of a dual-boot setup.
This integration primarily gives developers direct access to Linux libraries from within a Windows environment. ZDNet says that these will also help developers working on the cloud, in other words, the Azure platform.
That's not the only news however. Microsoft has also been working on bringing containers to Windows. We understand that most of us aren't developers, so we'll take a stab at an explanation of what exactly we're talking about. If you're a developer, be warned for we'll be butchering technicalities in the name of oversimplification.
When you install an operating system (OS) like Windows, it detects your PC's hardware and runs basic drivers. These essentially tell the OS how to interact with that hardware, your PC. The OS kernel, which you should ideally not have access to, mediates the interaction between the hardware and the software. You interact with the software.
Think of a virtual machine as a PC that's emulated within your PC. When you install Ubuntu on that virtual machine, it thinks it's on a separate, physical PC. All the hardware that the virtualised OS detects is, in simple terms, software pretending to be hardware (it's way more complicated than that).
The interactions between the virtual PC running Ubuntu and your actual PC running Windows 10 are mediated by a virtualisation software like VMWare. All said and done, this process is very taxing on your system, especially if you only want to, say, test a program on Ubuntu.
Containers on the other hand take the essentials that you'd need to run a particular program and bundle them into a container (there's no better word for it). This is much less resource intensive as you don't need to emulate an entire operating system (and virtual PC) to run just one program. Another advantage of a container is that it will also completely isolate a participating program from the rest of the system, just like a virtual machine.
A hypervisor is software that, traditionally, manages virtual machines. What Microsoft has been doing is attempting to integrate containers into Windows using a hypervisor (LXD in this case) to facilitate management.
Couple this with Microsoft's plans for Ubuntu integration and you have an excellent tool for cross-platform development.