Előzmények
A Microsoft már a Windows NT 3.X esetében is próbálkozott, hogy kompatibilissá tegye a POSIX (Unix) rendszerekkel. A Microsoft POSIX subsystem a Windows NT 3.5-ben érkezett, a Win32 és az OS/2 subsystem mellett fejlesztették. Sajnos a Win32 kapta a legnagyobb hangsúlyt így a POSIX háttérbe szorult olyan szinten, hogy mikor megjelent, akkor még shell és futtatási környezet sem volt mellé. A POSIX programokat forráskód szinten kellett megváltoztatni, hogy működni bírjanak.
1996-ban a Softway Systems fejlesztette az OpenNT nevezetű programot, melynek segítségével a Unix-okra íródott programokat POSIX subsystem-re lehetett fordítani. 1998-ban az OpenNT-t átnevezték Interix-re. A Softway Systems a Microsoft-tól teljesen külön elkezdett fejleszteni egy új alrendszert, mely teljesen leváltotta a POSIX subsystem-et és sokkal jobb kompatibilitást eredményezett, illetve támogatta a libc könyvtárat.
1999-ben a Microsoft felvásárolta a Softway Systems-t az Interix-szel együtt, és drága add-on-ként árulták a Windows NT 4-hez és a Windows 2000-hez egyaránt. A POSIX subsystem és az Interix mellett azonban a Microsoft már elkezdte a Windows Services for UNIX (röviden SFU) fejlesztését. Az SFU 1.0 és 2.0 még az MKS Toolkit-re épült, míg az SFU 3.0 és 3.5 már az Interix-et használta.
A fejlesztői mód bekapcsolása elkerülhetetlen
Az SFU 3.0 XP-hez volt elérhető míg a 3.5, amit átneveztek Subsystem for Unix-based Applications-ra (SUA), már ingyenesen elérhető volt a Windows Server 2003 R2-höz. Kevesen tudtak róla, de A SUA a későbbiek során is elérhető volt a Windows Vista és a Windows 7 Enterprise és Ultimate verzióiban.
A Windows 8 Developer Preview-ben még aktív funkcióként jelen volt a SUA, de a végleges kiadásból ezt kivették. Egyedül a Windows 8 Enterprse-ban volt jelen, de a 8.1-es frissítéssel innen is eltávolították. A Windows Server 2012-ben is megtalálható volt a funkció, de az R2-es kiadással innen is eltűnt.
A Bash on Ubuntu on Windows fejlesztése
A Windows Subsystem for Linux (WSL) fejlesztése visszavezethető a lelőtt Project Astoria-ra. Aki nem emlékezne, a Project Astoria volt a Microsoft azon terve, hogy Windows 10 Mobile-on futtathatóak legyenek az Android alkalmazások. A Microsoft olyan, kernel-szintű kompatibilitást hozott létre, melynek köszönhetően az ELF64 binárisok natívan futtathatóak kevesebb erőforrás igénnyel, mint ha egy Linux-ot futtatnánk virtuálisan.
A Canonical segített a Microsoft-nak a fejlesztésben olyan módon, hogy rendelkezésükre bocsátott egy Ubuntu 14.04 (Trusty Tahr) lemezképet, ami a kompatibilitási réteg felett fut. Bár a Canonical segítsége nagyon sokat jelentett a projektnek, a Microsoft ígérete alapján a későbbiekben nem csak Ubuntu lesz futtatható WSL-en hanem más disztribúciók is.
A Windows beállítások között egyszerű pipával tudjuk ki/be kapcsolnia a szolgáltatást
Telepítés:
Fejlesztői mód aktiválása:
1. Nyisd meg a Gépházat.
2. Frissítés és Biztonság
3. Fejlesztőknek
4. Pipáld be a Fejlesztői módot
5. Újraindítás
A Windows Subsystem for Linux aktiválása:
1. Start Menüre jobb gomb. Programok és Szolgáltatások
2. Bal oldalt Windows szolgáltatások be- és kikapcsolása.
3. Itt be kell pipálni a Windows Subsystem for Linux (Beta)-t vagy magyarul Linuxos Windows-alrendszer (bétaverzió)
4. Újraindítás
Enable-WindowsOptionalFeature -Online -FeatureName Microsoft-Windows-Subsystem-Linux
Bash on Ubuntu telepítése:
1. Nyiss egy parancssort és írd be, hogy bash
2. El kell fogadni a felhasználási feltételeket
3. Meg kell adni egy WSL felhasználónevet és jelszót
4. Mindezek után indítható a Bash a Start Menüben létrejött parancsikonnal.
Őrület! Ubuntu a Windowsban! :)
Mire használható?
A WSL és a Bash on Ubuntu on Windows eredetileg azért lett fejlesztve, hogy az alapvető Unix/Linux parancsok működhessenek Windows alatt is, mint például vi, sed, awk és az alkalmazások azon része amik elfutnak terminálban - mint például a szerver programok (Apache, Nginx, stb.)-, hogy a fejlesztők egyszerűen tudják tesztelni a változásokat a saját gépeiken.
Jómagam Cygwin-t használtam korábban és onnan migráltam át a levelezésemet (Mutt) és az RSS olvasót (Newsbeuter).
A határok feszegetése
A közösség már a Technical Preview alatt rájött, hogy sokkal több minden kihozható a WSL-ből, mint az elsőre látszódik. Néhány példa a sok közül (mind saját környezetben tesztelt):
Grafikus alkalmazások futtatása külső X szerver (Xming) segítségével. Itt látható ahogy az x11-apps-ből fut az xeyes, xcalc, xlogo valamint az xpdf is:
Teljes grafikus környezetek futtatása. Én az i3-at próbáltam ki, de az interneten találni különböző leírásokat, hogy az Ubuntu alapértelmezett Unity felülete is használható legyen, vagy akár az Xfce.
Játszhatunk akár a Quake 1-el (TyrQuake motor) is a WSL-nek köszönhetően:
A cbwin programnak köszönhetően akár Bash-ből is futtathatunk Windows-os programokat. Így akár a Windows-os programjainkat is ütemezhetjük shell szkriptből.
Képet arról sajnos nem tehetek fel (jogi kérdés), de sikerült az általunk üzemeltetett és karbantartott ERP rendszert is futtatnom a WSL-en.
Az igazi incepció: Fut a Windows-ban a Linux, amiben fut egy játék
Ahogy az látszódik a WSL igen sok mindenre képes. Reméljük, hogy a Microsoft hamar megoldja a többi Linux disztribúció támogatását is, mert akkor egy-egy fejlesztést tényleg könnyen tesztelhetünk a Windows-unkon belül.
Sajnos a Microsoft a WSL-t csak a desktop Windows rendszerekre készíti és az eddigi nyilatkozataik alapján nem akarják bevezetni a Windows Server vonalra, pedig sok helyen megkönnyítené a dolgokat.