Bash on Ubuntu on Windows - mi ez és hogyan telepítsd?

2016. szeptember 21.
47.2331
Figyelem! Ez a cikk már több, mint egy éves! A benne lévő információk elavultak lehetnek!
darkomen profilja, adatai
darkomen
A Microsoft nagy figyelmet kapott mikor bejelentette, hogy a Windows 10 Anniversary Update-ben érkezik a Windows Subsystem for Linux, melynek segítségével Linux binárisok natívan futtathatóak Windows rendszeren. Ez felhasználói szemmel nem tűnik annyira nagy szónak, hiszen a hétköznapok során nincs olyan dolog amiért esetleg érdemes lenne használni ezt a funkciót. Ha viszont az ember hálózatokat üzemeltet, akkor már más kérdés. Lássuk is miről van szó!



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

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

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

Alternatív telepítési módszer, hogy PowerShell-be a következő parancsot kell kiadni:

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! :)

Ő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

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.
7 hozzászólás

Hentes

8 éve, 2 hónapja és 8 napja

Nagyon hasznos, olvasmányos és jó cikk. Viszont egy dolgot nem értek, és ezt teljesen komolyan kérdem: ennek mi értelme van? meglepett smiley

válasz erre

Harder

8 éve, 2 hónapja és 20 napja

Bár nem fogom használni, nagyon hasznosnak tartom ezt az újítást a Wiindowsban - a cikket meg még hasznosabbnak! A Linux sokkal könnyebben, okosabban használható fejlesztésre és ezt a Microsoft is tudja, épp ezért pakolta bele a Windowsba.

Szerintem ezzel nem fognak Linuxosokat áttéríteni Windowsra, viszont ellenkező hatást bitos sikerül majd kiváltani! mosolygó smiley

Sok ilyen anyagot kérünk még, köszi! mosolygó smiley

válasz erre

Gólem

8 éve, 2 hónapja és 20 napja

Az első normális kód a Windowsban. röhögő smiley

válasz erre

Fikarc

8 éve, 2 hónapja és 21 napja

Ez mekkora okosság! meglepett smiley Anti-wine! röhögő smiley

Nagyszerű leírás, szuper cikk! mosolygó smiley

válasz erre

darkomen

8 éve, 2 hónapja és 21 napja

Mordorer írta:
Lehet hogy nagyon amatőr a kérdés, de ha bekapcsolom, akkor onnantól simán kiadhatom a Linuxos parancsokat a cmd-ben? meglepett smiley Vagy kell hozzá ez a "keretrendszer"?
Vagy közvetlenül megnyitod a Bash on Ubuntu-t (A start menüben keletkezik az indító), ezzel kapsz egy terminált vagy CMD-be beírod, hogy bash és megkapod a környezetet. Onnantól futtathatóak a parancsok

válasz erre

Mordorer

8 éve, 2 hónapja és 21 napja

Lehet hogy nagyon amatőr a kérdés, de ha bekapcsolom, akkor onnantól simán kiadhatom a Linuxos parancsokat a cmd-ben? meglepett smiley Vagy kell hozzá ez a "keretrendszer"?

válasz erre

VDemon

8 éve, 2 hónapja és 22 napja

Hiánypótló cikk! Köszönjük! mosolygó smiley

válasz erre