Windows Subsystem for Linux teszt

Címkék

Sokakban felmerülhet a kérdés (fel is merült, nekem is szegezték már néhányszor), hogy "Te figyi, hol a fenében van a Windózban a Linugz?". Hogy ne kelljen minden egyes alkalommal újra meg újra elmondanom, inkább leírom ide és majd csak e cikk URL-jét fogom átküldeni. Szóval...

Windows Subsystem for Linux teszt
Győződjünk meg arról, hogy a lehetőleg naprakész Windows 10 verzióval próbálkozzunk, nehogy ezen menjen el a kaland...

Windows Subsystem for Linux teszt
Kapcsoljuk be a "Developer Mode"-ot

Windows Subsystem for Linux teszt
Windows szolgáltatások be- és kikapcsolása...

Windows Subsystem for Linux teszt
Pipa a "Windows Subsystem for Linux (Beta)" mellé, majd reboot

Windows Subsystem for Linux teszt
Reboot után a Start menübe írjuk be, hogy "bash"

Windows Subsystem for Linux teszt
Kezdődhet a telepítés...

Windows Subsystem for Linux teszt
Letöltés a Windows Store-ból, majd a fájlrendszer kibontása...

Windows Subsystem for Linux teszt
Felhasználónév / jelszó megadása után kezdődhet a móka...

Windows Subsystem for Linux teszt
apt-get update; apt-get upgrade

Windows Subsystem for Linux teszt
...

Windows Subsystem for Linux teszt
Eredményként kaptunk egy Ubuntu 14.04.5 LTS-t, de ne csúfoskodjunk már vele... do-release-upgrade

Windows Subsystem for Linux teszt
...

Windows Subsystem for Linux teszt
...

Windows Subsystem for Linux teszt
...

Windows Subsystem for Linux teszt
...

Windows Subsystem for Linux teszt
...

Windows Subsystem for Linux teszt
A dist-upgrade végén egy reboot...

Windows Subsystem for Linux teszt
A reboot után egy Ubuntu 16.04.1 LTS-nek örülhetünk...

Windows Subsystem for Linux teszt
Egy "sudo apt-get install links" után HUP-ozhatunk...

Windows Subsystem for Linux teszt
Egy "sudo apt-get install mc" után mc-zhetünk...

A többi pedig már csak játék a betűkkel! Jó szórakozást!

Hozzászólások

Hmm, azt hiszem kipróbálom és rögtön telepítem is a powershellt :)

Akkor lassan lesz "Linux Subsystem for Windows" az Ubuntuban?

"Belépés díjtalan, kilépés bizonytalan."
"Vajon mit várok a sorstól, ha hányok az édestől, és izzadok a sóstól."

Ennek mi az értelme/gyakorlati haszna?
Megspóroljuk vele a virtualizációt, vagy mi?

Who is this for?
This is primarily a tool for developers -- especially web developers and those who work on or with open source projects. This allows those who want/need to use Bash, common Linux tools (sed, awk, etc.) and many Linux-first tools (Ruby, Python, etc.) to use their toolchain on Windows.

Why would I use WSL rather than Linux in a VM?
WSL requires fewer resources (CPU, memory, and storage) than a full virtualized machine. WSL also allows you to run Linux command-line tools and apps alongside your Windows command-line, desktop and store apps, and to access your Windows files from within Linux. This enables you to use Windows apps and Linux command-line tools on the same set of files if you wish.

https://msdn.microsoft.com/en-us/commandline/wsl/faq

Üdv,
Marci

Ezen azért én is elagyaltam, és lehet benne valami, hogy rendszergazdák heterogén hálózat esetén is tudjanak mondjuk shell scripteket editálni és játszani vele. Ez szerintem is logikus. Szerintem az a cél,hogy a !=r1 userek se telepítsenek linuxot se a windowsba/mellé/helyett :)

-42-

Aham, marketing blabla, de tovabbra sem ertem, hogy minek ehhez a windows resz? :D

Heterogen kornyezetre altalaban valami olyan nyelvben fejlesztenek, ami kornyezet fuggetlen (Java, python, stb.), de mondjuk webes alkalmazasnal tok mindegy. A CI/CD pipeline-ban meg majd meglatjuk mukodik e Linuxon/Windowson/Kenyerpiriton.

Tehat vagy a windows nem kell vagy a Linux. De ha mindenkeppen Linux kell, akkor tuti nem kell a Windows. :D

De jo, hat legyen.

Jelentsuk ki, hogy a cel az, hogy nehogy valaki Linux-ra adja a fejet (telepitsen), hiszen a windowsban mar ez is van. Vendor lock-in masik modja.
A tupirt/marketingbullshit-et meg hagyjuk. :D

Ó, elég sokat használtam az elmúlt hetekben:
- Java support még csak Insider preview-ban van (nem röhög, tényleg kellett...)
- Néhány syscall nincs implementálva, az elég szívás
- csak 64 bites alkalmazások mennek
- Wine nem megy (nem röhög, erre is volt már szükség :-))

Szóval azokra a perverz use case-ekre, amelyekre nekem kellene, azokra nem jó. De Linux programozást tanulni okés.

Illetve kedves hibákat tud előidézni: http://hup.hu/node/149497

Kár, hogy nálunk a céges gépekre még nem jött le, csak ha újratelepítem. Most nem kéne Cygwin-nel szórakoznom pár parancs miatt.

Én még Win7-et használok, de lassan tervezem meglépni a váltást 10-re.
Ez az első feature ami tetszik.
Kérdés, hogy jobban járok vele, mint egy VirtualBox-ba telepített Ubuntuval?

Aki már használta, attól pár kérdés:
- Van-e lehetőség az Ubuntut másik partícióra pakolni, vagy fixen bedobja valahova, pl.: C:\windows\system32\ubuntu16
- Korlátozza-e valamiben az Ubuntut, vagy valóban azt csinálhatok benne mait akarok? Akár saját kernelt fordíthatok?
- Van X is? ha nincs, csinálhatok, bármilyen ablakkezelővel?
- A meghajtók közösek? Értem ez alatt azt, hogy ha nem fut az Ununtu, akkor a filerendszerébe másolhatok fájlokat windows alól is? Vagy virtuális meghajtót használ, mint pl a VirtualBox?
- Hogy van a hálózatokkal? Külön interfészt emulál neki a windows? Lehet többet is hozzáadni?

Kapásból ennyi kérdés jutott eszembe, amire biztos találnék választ a neten, de így egyszerűbb volt, meg lehet más is kiváncsi rá :)

"jobban járok vele, mint egy VirtualBox-ba telepített Ubuntuval?"
Nem biztos, attól függ, mit szeretnél. Továbbá fontos tudni, hogy ez még béta.

- Van-e lehetőség az Ubuntut másik partícióra pakolni, vagy fixen bedobja valahova, pl.: C:\windows\system32\ubuntu16
Fixen a %localappdata%\lxss alá települ.

- Korlátozza-e valamiben az Ubuntut, vagy valóban azt csinálhatok benne mait akarok? Akár saját kernelt fordíthatok?
Nincs meg a kernel teljes API készletének támogatása még. Kernelt fordíthatsz nyugodtan, de telepíteni nem tudod már: ez a környezet nem használ Linux kernelt.

- Van X is? ha nincs, csinálhatok, bármilyen ablakkezelővel?
Telepítheted az X-es programokat, amiket a Windowsra telepített X Serveren (pl. VcXsrv vagy Xming) megjeleníthetsz. Egy ubuntu-desktopot telepítve használható a compiz. Stabil, minden funkcióra kiterjedő működést még ne várj.

- A meghajtók közösek? Értem ez alatt azt, hogy ha nem fut az Ununtu, akkor a filerendszerébe másolhatok fájlokat windows alól is? Vagy virtuális meghajtót használ, mint pl a VirtualBox?
WSL alól látod a a Windows-os filerendszert a /mnt/c alatt.

- Hogy van a hálózatokkal? Külön interfészt emulál neki a windows? Lehet többet is hozzáadni?
Itt csak találgatok, de úgy tűnik, hogy jelenleg a Windows hálózatára van fixen brigde-elve. Tippem, hogy hálózat menedzsment még nincs, de fixme.

Üdv,
Marci

Meglepődnék, ha működhetne.
Javíts ki, ha butaságot mondok, de sose láttam ilyet közelről.
Szóval, a CUDA támogatáshoz valamilyen drivert kell telepíteni Linuxra, ami a kernel-beli NVIDIA driverrel kommunikál, ugye? Mivel itt nincs Linux kernel, gyanítom, nincs meg az az NVIDIA driver sem jelenleg - innentől lehetetlennek tűnik, hogy működjön.

Üdv,
Marci

A technikai részletekkel kapcsolatban igazad van. Azért kérdeztem, mert a fejlesztői fórumon találtam egy ezzel kapcsolatos diskurzust, ahol az admin nem azt válaszolja, hogy totál lehetetlen, hanem hogy jelenleg számukra ennek nincs prioritása:

Ubuntu shell access to system GPU. Ability to run CUDA for use in Machine Learning applications.

---
Science for fun...

Nekem a do-release-upgrade "[screen is terminating]" üzenettel kiszáll... :(

http://www.omgubuntu.co.uk/2016/08/upgrade-bash-windows-10-ubuntu-16-04…

Ez adja:

sudo su
apt-get update
apt-get upgrade
apt-get dist-upgrade
apt-get autoremove
sudo do-release-upgrade -f DistUpgradeViewNonInteractive -d

As noted, it still gets stuck at a Y/N prompt. Pressed Ctrl+C and ran:

sudo -S dpkg --configure -a
apt-get update
apt-get upgrade
apt-get dist-upgrade
apt-get autoremove

Köszi a tesztet.

Első körben furcsának hatott az ötlet, de másodikban már többnek tartom mint hasznos.

Ezzel nem kell többé a lamp maradékát telepíteni és utána kézzel karbantartani vagy egy teljes vm-et fenn tartani. Egyben, egyszerre minden elérhető lesz.

Egy javaslat a képekhez:

<img... style="max-width:100%">

Enélkül nálam a képek kilógnak, és a bejegyzés alján lévő scrollbarral tudom csak rendesen megnézni őket (vagy mindegyiket megnyitogatva)

Sziasztok

nekem nem áll be a locale, azaz, pl.: mc vonalak helyett karakterekkel jelenik meg.

sehogy sem képes megerőszakolódni.

5let?

köszi

********************
tiborh, Ubuntu 16.04 LTS, Windows 10 64 bit Enterprise

kerdesem lenne: docker/lxc tamogatott? ha telepitek egy apache-ot, windows inditasakor elindithato az is (vagy csak bash-bol kezzel)?

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

A WSL nem erre való az én megértésem szerint.

Can I run ALL Linux apps in WSL?
No! WSL is a tool aimed at enabling users who need them to run Bash and core Linux command-line tools on Windows.
WSL does not aim to support GUI desktops or applications (e.g. Gnome, KDE, etc.)
Also, even though you will be able to run many popular server applications (e.g. Redis), we do not recommend WSL for server scenarios – Microsoft offers a variety of solutions for running production Ubuntu workloads in Azure, Hyper-V, and Docker.

Üdv,
Marci

vannak paran a kornyezetemben akik windowst hasznalnak valami php website fejleszteshez. nekik eddig valami vm-ben kellett az apache/php/mysql/mongo/nodejs/akarmit futtatni (wamp nemjo). Gondoltam ha mar ubuntu, akkor meg lehetne sporolni a vm-es "reteget"

--
A vegtelen ciklus is vegeter egyszer, csak kelloen eros hardver kell hozza!

Nincs (még) Win10 a gépemen, ezért nem tudom kipróbálni, de van pár kérdésem:
- hogyan működik ez, valami virtuális gépben futtat egy linux kernelt és környezetet? Vagy windows kernel alatt fut egy GNU rendszer? Ha jól sejtem, teljes rendszer ez, nem csak néhány program.

- teljesértékű Linux ez? Ha eddig dual boot volt a gépemen, akkor nem lesz rá szükségem a továbbiakban, mert egyszerre mehet mindkettő?

- fájlrendszer szinten hogy működik ez? Egy fájlrendszerben vannak a windows és a linux alrendszer fájljai, vagy valami trükközés van?

Vagy valamit félreértek és ez nem erre való?

- hogyan működik ez, valami virtuális gépben futtat egy linux kernelt és környezetet? Vagy windows kernel alatt fut egy GNU rendszer? Ha jól sejtem, teljes rendszer ez, nem csak néhány program.
A Windows NT alapú rendszerek kezdettől több "alrendszer" támogatására lettek tervezve. Így a Win32 alrendszer csak egy a lehetségesek közt. Régen volt pl POSIX alrendszer. Ilyen alrendszer lett a WSL is. Tehát Windows kernel alatt fut egy rendszer, ami nyújtja a Linux kernel API készlet jelentős részét és azokat a háttérben Windows hívásokra fordítja.
Ilyen értelemben leginkább egy "fordított wine"-ra hasonlít. Részletesen: https://blogs.msdn.microsoft.com/wsl/2016/04/22/windows-subsystem-for-l…

- teljesértékű Linux ez? Ha eddig dual boot volt a gépemen, akkor nem lesz rá szükségem a továbbiakban, mert egyszerre mehet mindkettő?
Attól függ, mire használtad a Linuxos gépedet. Ez elsősorban a fejlesztők munkáját megkönnyítendő ad *nix command line és eszközkészlet támogatást. Fizikailag pedig egy Ubuntu 14.04 (lassanként 16.04) userland települ a WSL-re, melyet a Canonical szállít. Ha például szerver szolgáltatásokat akarsz futtatni, arra nem ez a megfelelő eszköz.

- fájlrendszer szinten hogy működik ez? Egy fájlrendszerben vannak a windows és a linux alrendszer fájljai, vagy valami trükközés van?
Ebben a cikkben nézd meg az ábrát, többet mond ezer szónál: https://blogs.msdn.microsoft.com/wsl/2016/06/15/wsl-file-system-support/

Üdv,
Marci

És mi van a Posix alrendszerrel?

Ilyen friss tapasztalataim vannak: Próbálom kideríteni a symlinkek targetjének adatait, pl a fájl méretét. Linuxon a stat() a target fájl méretét adja, Windowson a symlinkét. A stat() Posix függvény. Belefér-e egy ilyen eltérés a Posix szabványba. Igazi kérdés, nem tudom a választ, és nem vagyok szabványszakértő. Csak azt gondolom, hogy a Posix pontos implementálása hasznosabb volna, mint ez az izé.
--
ulysses.co.hu

Windows 2012 szerver, Build 9200, qemu-ban futtatva. MinGW64-es fordítót használok, a gcc azt írja, hogy ő 4.5.4-es verziójú. Amit konkrétan tapasztalok:

stat(symlink) Linuxon megadja a symlink targetének méretét.

_wstat(symlink) Windowson 0-át ad a size tagban (természetesen nem 0).

Közben nincs elfelejtve, hogy egy másik szálon találkoztunk a symlinkek mérete, targete és minden egyebe ügyében. Előrébb jutottam, de nincsenek még leülepedve a dolgok. Nem pont azok a linkek a nyerők, amit adtál, de azért köszönöm. Ez volt a legjobb eredményt adó kérdés a googleban: "windows api find symlink target"
--
ulysses.co.hu

Ezek szerint nem használod a POSIX alrendszert.

"stat(symlink) Linuxon megadja a symlink targetének méretét." A sima stat()? A POSIX ellenében?

"_wstat(symlink)" Jól értem, hogy ezen kéred számon, hogy nem eléggé POSIX. Ne is várj ilyet: ez nem egy POSIX-ban leírt függvény, a Win32 pedig nem POSIX rendszer és ilyet a Microsoft nem is állított.

Üdv,
Marci

"Eddig úgy gondoltam rá, mint a c könyvtár posixban szabványosított részhalmazára"
Az nem az.

Ezt nézd meg:
https://en.wikipedia.org/wiki/Architecture_of_Windows_NT#/media/File:Wi…
Ebbe a videoba less bele, innen:
https://youtu.be/HpXkzZyrIbg?t=6m27s (A nevezéktan ne tévesszen meg, ekkorra kicserélték, mint Mónikát a Barátok Közt-ben és még át is nevezték SUA-ra, miután egy darabig SFU néven teljesített szolgálatot...)

Üdv,
Marci

Linuxon 3 stat féleség van

stat -- symlink esetén a target adatait adja
lstat -- symlink esetén a symlink adatait adja
fstat -- file descriptorból adja a stat adatokat

Az fstat() Posix függvény is a target infót adja. Tehát előbb megnyitjuk, aztán fstat(fd)-vel (Windowson is) meg lehet kapni a target adatait. Gondoltam, hogy így lesz, mert a Windows API szintjén is ez van: előbb meg kell nyitni a linket, aztán a GetFileInformationByHandle-ból megvan az infó, legalábbis egy része, mint a méret. Az fstatos megoldás mégsem annyira jó, mert nem lehet olyan alacsony hozzáféréssel nyitni, ami biztosan nem ütközik mással.

Azt sem értem egyelőre, mit jelent a "megnyitás" directoryk esetében.

A stat-nál tapasztalt eltérés mindenképpen gyanús.

--
ulysses.co.hu

További apró eltérés: "_wstat does not work with Windows Vista symbolic links. In these cases, _wstat will always report a file size of 0. _stat does work correctly with symbolic links."

Nem lennék meglepve, ha ez lenne a forrása a fent említett jelenségnek...

Forrás: https://msdn.microsoft.com/en-us/library/14h5k7ff.aspx

Üdv,
Marci

Amúgy furcsa nekem a dolog, ha jól értem, POSIX szerint a stat: http://pubs.opengroup.org/onlinepubs/009695399/basedefs/sys/stat.h.html

Ha Linuxon megnézem, ennek megfelel a man 2 stat is és ha symlinkre kérek egy stat-ot, az is a hivatkozott path hosszát adja meg méretnek.
Szóval érdekel, hogyan csinálod, hogy "Linuxon a stat() a target fájl méretét adja", mert -- ha jól értem -- POSIX szerint nem szabadna neki...

Üdv,
Marci

"Csak azt gondolom, hogy a Posix pontos implementálása hasznosabb volna, mint ez az izé."

Ha jól értem, ez az "izé" idővel módot adhat Neked arra, hogy a Linuxra készült programodat átvidd Windows-ra akár bináris formában és annak a filerendszerén futtasd, eredményesen...
(Ma még hiába próbálod, nekem legalábbis még nem látszanak az NTFS junction-ök és symlinkek WSL alatt)

Üdv,
Marci