Het is geen VM... Technisch gezien is het een verkapte vorm van een wine implementatie.
Als men kijkt onder de /users/xxxx/AppData/Local/x zal men een verborgen folder vinden. In die folder staat gans de binaries dat je normaal zou vinden onder een Linux distributie BEHALVE de Linux kernel.
Zodra je de bash aanroept, zal de lxcore.sys en lxss.sys windows drivers, automatisch all de functie calls dat normaal naar een Linux Kernel zouden gaan, vertalen naar de Windows Kernel.
Je kan het een reverse Wine project noemen. Waarbij Wine probeerde de DirectX calls te vertalen naar OpenGL calls om games enz te laten werken onder Linux, doet MS nu het omgekeerde. Men vertaald de Linux kernel calls naar de Windows Kernel calls.
Het gevolg is dat de "bash" niet eens ziet dat het op Windows draait, maar wel bijna 99.9% van de performance behaald. Als je ooit onder Linux gewerkt hebt met OpenVZ containers, dan is het een beetje gelijkaardig. De OpenVZ containers gebruiken de host Kernel ( zonder vertaling ) maar kan dan wel iedere Linux distributie draaien.
Een VM zal de OS dat je probeert te draaien zijn kernel draaien, en dan die kernel proberen te doen denken dat het op een barebone hardware draait. Men "emuleert" gans de hardware layer ( met enorme performance verlies ).
Op het system uit te drukken:
VM: Volledige systeem emulatie vanuit een hardware standpunt. Kan ieder OS draaien wat je wilt.
OpenVZ / Docker: Containers dat draaien op de host zijn kernel. Kan iedere Linux OS draaien dat gebruik maakt van een Linux Kernel. Maar je kan geen Windows / OSX draaien want deze hebben hun eigen kernel / abstract laag.
Dit zit tussen beide. Er is een kleine laag waarbij men dus de Linux Kernel calls onderschept & vertaald naar de Windows Kernel. Maar men "emuleert" niet gans de omgeving. Wat je ziet onder dit, is de echte hardware. Men zal hier en daar beperkte performance verlies hebben maar omdat men de hardware direct aanspreekt buiten die vertaling, is die performance bijna bare-metal.
-----------------
Beste info vind je hier:
https://channel9.msdn.com...6/C906?platform=hootsuite
Wat is het nut hiervan?
* Native "Linux" ( zonder de kernel ) omgeving onder Windows...
Beeld je in: Ipv dat je altijd moet werken met VirtualBox of andere virtualisatie toestanden, of een remote server om spullen te ontwikkelen, kan je nu gewoon apache, php, enz draaien onder deze native oplossing. Wat je dus ontwikkeld onder deze setup, zal 100% dezelfde zijn alsof je het onder virtualisatie of een remote server ontwikkeld zou hebben.
Ja: Je kan ook zaken zoals Apache/php installeren onder Windows direct maar vaak loop je later in problemen als je die zelfde code probeert te deployen op een Linux Server.
* Je hebt directe file access vanuit deze Bash omgeving naar je Windows file systeem. Laten we eerlijk zijn, een beetje Linux bash gebruiker kan enorm leuke zaken uithalen met find, grep, xarg, enz. Maar de beste kicker is: JE HEBT DIRECTE FILE ACCESS!
Als je draait onder Virtualbox is het altijd een halve ramp om toegang te krijgen tot het file systeem van je host of omgekeerd van je VM. Vaak zit je met shared netwerk folders te werken of andere mapping toestanden waar je een halve dag zit op te vloeken.
* Je hebt directe toegang tot Windows Netwerk vanuit de Bash omgeving.
Geen toestanden meer van Bridge netwerk of andere zaken onder Virtualbox. Je draait je Apache op poort 8081 en voila. Geen configuratie of uitzoeken waarom kan ik x ip niet accessen van men virtualisatie ( virtualbox... ).
* ... Kan nog lang verder gaan maar de gevolgen zijn vrij interessant. Laten we eerlijk zijn. De meeste van ons draaien linux omdat we graag de volwassen bash omgeving hebben, omdat het gewoon interessanter is om in te ontwikkelen ( zelfde ontwikkeling omgeving <=> deployment omgeving ).
------
De grote vraag zal worden, wat kan je nog meer? Kan je meerdere omgevingen draaien in de toekomst ( Ubuntu container 1, Ubuntu container 2, Debian, ... )? Aangezien de opbouw in de directory structuur lijkt dit een mogelijkheid.
Er zijn nog veel vragen maar dit is echt een feature dat Windows 10 eindelijk de moeite waard maakt ( vanuit mijn ogen als ontwikkelaar ) om Windows 7 te vervangen. Je moet jezelf afvragen ... waarom heeft het zo lang geduurd eer men op dit idee kwam.