LAKI PINGVINI<>
062017<><>

Windows Subsystem for Linux

Linux iz Redmonda

Još od kraja osamdesetih godina kruže priče o tome kako će Microsoft, na ovaj ili onaj način, kao bazu za svoje operativne sisteme da usvoji nešto nalik na Linux. Doduše, tada Linux još nije ni postojao, ali je postojao UNIX, koji je osnova Linuxa i koji je korišćen za pokretanje mnoštva računara iz više klase tog vremena. Taj sistem baziran na UNIX-u nosio je naziv POSIX i nudio je određeni nivo međusobne kompatibilnosti. Međutim razvoj Windowsa NT je krenuo snažno u pravcu Win32, zanemarujući dve preostale komponente koje je podržavao svojim kernelom: OS/2 i POSIX. Od tada, gigant iz Redmonda sa vremena na vreme šuruje sa podrškom tog besplatnog operativnog sistema, ali je i dalje potpuno privržen svom čedu koje je zaslužno za najveći deo njegovog bogatstva. Doduše, u Microsoftu znaju da Linux ne treba potcenjivati, pošto on kao i drugi derivati UNIX-a ima zapaženo učešće na tržištu (Android i OS × su tipični primeri). Da ne govorimo o tome da najveći broj superkompjutera radi upravo pod Linuxom, kao i jedna trećina virtuelnih mašina na Microsoft Azure serverima. Kada se uzme u obzir i činjenica da nove verzije programskog paketa Visual Studio nude mogućnost razvoja softvera za Linux, stvari postaju prilično simptomatične. Svakako najveći iskorak u tom pravcu mogao bi da bude vezan za najavljeno pojavljivanje „pingvinske” verzije poznate baze podataka MS SQL Server.

WSL

Windows Subsystem for Linux (WSL) je centralna tačka Microsoftove implementacije tog operativnog sistema. Reč je o programskom sloju za prevođenje sistemskih poziva koji služi kao spona između Linuxa i Windowsa. U prošlom broju smo pisali o programu Exagear, koji obezbeđuje izvršavanje x86 koda na ARM mikroprocesorima. Sličan mehanizam je primenjen i u ovom slučaju, tako da se ne može govoriti o nekakvom emulatoru ili virtuelnoj mašini. Reč je o programskom interfejsu koji obezbeđuje funkcije Linux kernela. Ovde nije korišćen bilo kakav izvorni kod stvarnog Linux kernela, već je glavni izvršni kernel onaj na kome počiva Windows. Prednost ovakvog pristupa jeste potrošnja sistemskih resursa koja je smanjena na minimum, dok kod rada sa virtuelnim mašinama to nije slučaj. Nažalost, pored prednosti postoje i nedostaci, pa ovakav način implementacije ne omogućava maksimalnu kompatibilnost sa tradicionalnim Linux sistemima, pre svega zbog nepostojanja pune implementacije kernela.

WSL korisnicima nudi zanimljivu mogućnost da koriste Linux Shell za upravljanje fajlovima u okviru Windowsa. Ranije su postojali pokušaji da se ista stvar obezbedi kroz komandnu konzolu PowerShell, ali ti pokušaji nisu postigli željeni rezultat. Sada je moguće pokretati Linux programe iz Windowsa, kao i Windows programe iz Linuxa, što će mnogim korisnicima biti od velike koristi.

Puštanje u pogon

Procedura instalacije Linux podsistema nije previše komplikovana, ali je skrivena ipak prilično „duboko ispod površine” i zahteva više koraka do realizacije. Prvo je potrebno da preko Start menija Windowsa 10 zađemo u meni Windows Settings, pa zatim iz njega u opciju Update & Security. U opcijama sa leve strane izabiramo stavku For developers, a zatim sa desne strane selektujemo opciju Developer mode, pri čemu prihvatamo sugestiju iz pratećeg prozora. Posle ovoga prelazimo na drugi deo zadatka koji zahteva pristup kontrolnom panelu, što je najlakše ostvarivo prečicom ’Windows-X’. Tu biramo stavku Programs and Features i na levoj strani dobro poznatog prozora biramo opciju Turn Windows features on and off, u ponuđenom spisku tražimo stavku Windows Subsystem for Linux (Beta) i označavamo njen ček boks. U slučaju da je prikaz Kontrolnog panela u režimu „Category”, do opcije sa dodatnim sadržajima Windowsa dolazimo birajući stavku Programs. Nakon završenog posla, Windows nam nudi restart sistema, što treba da prihvatimo i time završavamo glavni deo posla.

Sledeći korak jeste otvaranje konzole komandne linije, gde kucamo bash, što predstavlja komandu poziva Linux podsistema. Prilikom prvog pokretanja, računar nam govori da će instalirati Ubuntu na naš Windows, što treba da prihvatimo kucajući slovo ’Y’. Posle toga počinje preuzimanje fajlova sa resursa Windows Store. I na kraju, kada sistem završi sa instalacijom, dobijamo pitanje o korisničkom imenu i lozinci.

Nakon startovanja emulatora terminala i Basha, dočekuje nas komandna linija u sledećem obliku:

root@WIN:/mnt/c/Windows/System32#

Kao što vidimo, korisnik root je ulogovan na računar pod nazivom WIN, a trenutno se nalazimo u Windowsovom direktorijumu System32, gde je smešten program Bash. Direktorijum mnt se u Linuxu koristi kao mesto za montiranje drugih diskova ili fajl sistema, a kao što vidimo u primeru, kod nas je priključen disk C.

Windows 10 Creators Update može biti korišćen jedino na 64-bitnim verzijama Windowsa 10, i to na onima na kojima je instaliran Windows 10 Anniversary Update ili neki noviji.

Ponašanje u radu

Moraćemo da razočaramo one koji su pomislili da će ih nakon instalacije dočekati operativni sistem sa podrškom za GUI. Umesto njega, na raspolaganju imamo stari dobri Bash, koji je mnogim naprednim korisnicima dovoljan za obavljanje većine poslova. Iako to nije deo predviđene implementacije, postoji način da se iz okvira WSL pokrene GUI aplikacija, ali o tome nešto kasnije. Pisali smo o tome da bi brzina ovog podsistema trebalo da bude na visokom nivou, ali veoma brzo primetite da se prilikom startovanja nekog programa često javljaju zastoji od po nekoliko sekundi. Na internetu se može pročitati (mada nema zvanične potvrde) da je krivac za ovo antivirusni program koji proverava sumnjive sadržaje u memoriji.

O standardnoj Bash konzoli nema šta posebno da se kaže. U pitanju je dobro poznati Windows CLI, koji smo i do sada koristili. Iako nije neupotrebljiva, iskusni Linux korisnici će je vrlo rado zameniti sa programom Wsltty (goo.gl/tAiQ3E), koji je (vidi se i po imenu) kreiran za korisnike WSL i pruža mnogo više mogućnosti. U slučaju da ostanete pri standardnoj konzoli, nije loše da stavku menija Properties: Options: History postavite na neku veću vrednost.

Iako sami autori ističu da jedan deo funkcija Linuxa nije implementiran do kraja, u radu sa nekim od najstandardnijih programa nismo primetili nikakve nedostatke. Rade Wget, Apt, Nano, Vi, Telnet, Python, PHP, GCC, GIT, Node.js, Mono, MySQL i tako dalje. Poznati fajl menadžer Midnight Commander radi kako treba, osim što ne prepoznaje upotrebu miša kada se koristi sa standardnom Bash konzolom. Međutim, kada se koristi iz gore pomenutog Wsltty, obavlja posao bez ikakve zamerke. Problemi postoje sa određenim brojem programa, od kojih bismo izdvojili Apache server, kao važnu kariku veb programerskog lanca.

Rezultati benčmarka koji se mogu naći na internetu govore da su performanse WSL veoma bliske onima koje se postižu na računarima gde je instaliran Ubuntu. Čak su na pojedinim testovima postignuti rezultati koji su bolji od onih na izvornom operativnom sistemu. Grubi izuzetak od pravila predstavlja podsistem za rad sa diskom, koji u slučaju WSL-a debelo zaostaje za Linux sistemom.

Kada se u aprilu prošle godine pojavila prva verzija WSL, u njoj je bilo mnogo toga što nije funkcionisalo kako treba ili čak uopšte nije. Vremenom se situacija popravila, ali i dalje postoji mnoštvo sitnica i trikova koje treba poznavati. Recimo, komande koje koriste mrežni interfejs (kao što je ping) će po običaju vratiti sledeću grešku: „icmp open socket: Permission denied”. Problem je najčešće u tome što konzola nema administratorska prava koja bi joj obezbedila pristup tom resursu. Stvar se rešava tako što Windows konzolu pokrećemo u režimu administratora i zatim aktiviramo Linux kucanjem komande bash. Reklo bi se da je onda pametno napraviti prečicu koja bi stalno pokretala Bash sa administratorskim privilegijama, ali to nije rešenje zato što komplikuje neke druge stvari.

Još jedna lepa karakteristika ovakve implementacije Bash je što možemo pokretati Linux skript fajlove bez potrebe za direktnim startovanjem Linuxa. To se ostvaruje navođenjem komande

bash -c,

nakon čega navodimo naredbe koje nameravamo izvršiti.

LXRun je važna komanda koja se koristi za administraciju Linux podsistema iz komandne linije Windowsa i koju ćemo ovde prikazati u kratkim crtama. Kucanjem

lxrun /install

otpočinjemo instalaciju operativnog sistema. Sa

lxrun /uninstall

brišemo postojeću instalaciju, osim fajlova iz Home direktorijuma, koji se opet uklanja dodavanjem argumenta /full na kraj gornje naredbe. Ukoliko imamo potrebu da promenimo ime korisnika sistema, to se izvodi kucanjem

lxrun /setdefaultuser <ime>,

dok

lxrun /update

vrši ažuriranje datoteka na sistemu.

Pogled kroz prozor

Rekli smo da je WSL prvenstveno namenjen radu iz komandne linije, ali nije nemoguće da mu se dogradi grafički korisnički interfejs. Za to će nam biti potreban neki od brojnih × Windows servera za OS Windows. Jedna od najboljih varijanti je VcXsrv (Windows × Server), koju je moguće preuzeti sa adrese goo.gl/GJSQtq. Nakon završetka instalacije startujemo modul XLaunch, koji predstavlja neku vrstu čarobnjaka i provodi nas kroz proces izbora opcija. Na prvom ekranu je potrebno da od četiri ponuđene izaberemo opciju One large window i da, ako nam je to potrebno, zadamo redni broj prozora. U drugom koraku ostavljamo već izabranu opciju Start no client i prelazimo na sledeći korak. Na trećem ekranu je potrebno da se, pored već postojećih, selektuje i ček boks pod nazivom Disable access control. Poslednji korak nam pruža mogućnost da sačuvamo upravo definisanu konfiguraciju. Klikom na taster Finish se otvara × Windows prozor sa crnom pozadinom.

Nakon ovih koraka, vraćamo se u Bash konzolu i zadajemo naredbu za preuzimanje grafičkog interfejsa. U principu, možemo da izaberemo bilo koji GUI, a mi smo u konkretnom primeru izabrali XFCE zbog toga što uz LXDE zauzima najmanje resursa.

sudo apt install xfce4

Po završetku instalacije (koja može da potraje), potrebno je da ukažemo redni broj × Windows prozora kucajući:

export DISPLAY=:0.0

Pošto je ovo potrebno raditi svaki put kada aktiviramo GUI, najpametnije je da se komanda zapiše u fajl .bashrc, koji se nalazi unutar Home direktorijuma. Na kraju, za GUI sesiju kucamo:

xfce4-session

ili

startxfce4

Ukoliko je sve urađeno kako treba, pred nama će se pojaviti pravi pravcati Linux u srcu Windowsa. Već smo govorili da ovo nije oficijalni način korišćenja WSL konzole, tako da se ne treba iznenaditi ukoliko naiđemo na određene probleme.

• • •

Implementacija Linuxa pod Windowsom je namenjena prvenstveno programerima, naročito onima koji su orijentisani na veb platformu, pošto često rade sa alatima koji su razvijani za Linux i kojima nedostaje potpuna podrška u okviru Windowsa. Nedavno je stigla najava iz Microsofta da će, osim za sada standardnog Ubuntua sa Windows Storea, moći da se preuzmu i druge varijante Linuxa, tako da bi uskoro trebalo da se pojave Fedora i Suse, a moguće je i još po neka distribucija.

Po svemu sudeći, teško možemo očekivati da nam Microsoft ponudi nešto više od dobre podrške za komandnu liniju. Za ostale stvari će nam svakako preporučiti Windows. Ceo projekat se još uvek nalazi u beta fazi, pa je nezahvalno izvlačiti konačne zaključke. Smatramo da, za sada, stvar prilično dobro funkcioniše i da je, na radost mnogih korisnika, došlo do fuzije dva do sada oštro suprotstavljena sveta.

Igor S. RUŽIĆ

 
SparkyLinux 4.5.2
Windows Subsystem for Linux
Šta mislite o ovom tekstu?
Arduino: LE diode
Home / Novi brojArhiva • Opšte temeInternetTest driveTest runPD kutakCeDetekaWWW vodič • Svet igara
Svet kompjutera Copyright © 1984-2018. Politika a.d. • RedakcijaKontaktSaradnjaOglasiPretplata • Help • English
SKWeb 3.22
Opšte teme
Internet
Test Drive
Test Run
PD kutak
CeDeteka
WWW vodič
Svet igara



Naslovna stranaPrethodni brojeviOpšte informacijeKontaktOglašavanjePomoćInfo in English

Svet kompjutera