Linux i Windows: Razlike u filozofiji

U prethodnim tekstovima o operativnim sistemima zasnovanim na Linux kernelu bavili smo se uglavnom tehničkim pitanjima oko njihove instalacije i osnovnog korišćenja. Ovoga puta pozabavićemo se razlikama u filozofiji na kojoj su izgrađeni Windows i Linux, kako bi novi korisnici stekli konkretniju sliku o ovom sistemu i raspršili eventualne iluzije o njegovim mogućnostima i ograničenjima. Čak i ako ne planiraju privremeni ili trajni prelazak na Linux, nije zgoreg znati osnovne razlike u pristupu i korišćenju, jer one mogu kad-tad zatrebati. U krajnjoj liniji, radi se o poučnom štivu kojeg nije od zgoreg znati, bez obzira da li planirate da menjate svoj operativni sistem. Linux i Windows, dva sveta, dve filozofije

Ivan Todorović Suštinske razlike između Windowsa i Linuxa posledica su toga što oni potiču iz dva sasvim različita sveta. Kao što je mnogima poznato, Windows je originalno nastao kao puka grafička „školjka“, odnosno nadogradnja DOS-a i od njega povukao stvari od kojih se neke nisu promenile do današnjeg dana. Primarno korišćen u kućnom okruženju i manjim firmama (dugo vremena nije imao šta da traži u enterprise sektoru i serverskim poslovima), Windows je tek u deceniji za nama postao respektabilan i pouzdan operativni sistem koji može biti osnova računarskih sistema za kritične poslove.
 

Sa druge strane, Linux je u startu izgrađen po ugledu na operativni sistem Unix i njegove derivate, pokupivši tako mnoge stvari koje su u podrazumevane u mrežnom okruženju (dobar multitasking i vrlo ozbiljna implementacija sistema korisničkih naloga i privilegija), ali dugo zanemarujući ono što kućni korisnici smatraju sasvim prirodnim – primera radi, dobru podršku za multimediju i jednostavnu instalaciju programa i drajvera. Razlike između ovih sistema su se vremenom dosta smanjile, makar iz korisničkog ugla, ali činjenica sa početka teksta – da ovi sistemi potiču iz sasvim različitih miljea – ostaće za stalno i sa njom se mora živeti ako nameravate da koristite obe familije operativnih sistema. Zato prođimo kroz neke najznačajnije razlike. Organizacija fajlova Kao što znaju oni koji su se interesovali za istorijat DOS-a i Windowsa, prvobitni DOS uopšte nije poznavao koncept foldera. S obzirom da su se u PC računarima prve generacije koristile samo disketne jedinice i da prve PC diskete nisu bile tako velikog kapaciteta (tek 160 kilobajta), fajlovi su se na njih snimali „đuture“, a autori DOS-a mislili su da je dovoljno da se disketni drajvovi razlikuju samo po slovnoj oznaci. Tako je ime fajla A:PROGRAM.COM (nije se koristila ni kosa crta) bilo potpuno kvalifikovano ime fajla. Folderi su uvedeni tek u sledećoj reviziji operativnog sistema (DOS 2.0), kada je ubačena i podrška za hard diskove, mada su slovne oznake A: i B: zbog kompatibilnosti ostale rezervisane za disketne jedinice, a ostali diskovi se “numerišu“ počev od slova C. Iako bi ovako nešto onima koji su potpuno novi u svetu računara moglo biti nelogično, uobičajeni korisnici su se odavno navikli i ne čude se zašto samo jedan hard disk u računaru bez disketnih jedinica nosi oznaku C: a ne neku drugu.
 

 
Kod Linuxa su stvari naizgled konfuznije, a u suštini logičnije. S obzirom da je napravljen po uzoru na Unix i derivate,  korišćene na računarskim sistemima na kojima je hard disk bio uobičajena (da ne kažemo obavezna) pojava, u hijerarhijskoj strukturi foldera ne postoje nikakve slovne oznake. Ceo fajl sistem kreće iz jedne korene tačke odnosno diska sa koga se podiže sistem, a ostali drajvovi se “montiraju” u foldere u hijerarhiji. Tako folder “/home/pera” može biti na odvojenoj particiji ili drugom hard disku, dok se u folderu „/media/cdrom” po svoj prilici nalazi sadržaj trenutno ubačenog optičkog diska. Jedini, uslovno rečeno, problem je što korisnik ne zna sa sadržajem kog diska trenutno barata dok ne otkuca komandu „mount“ koja će ispisati koji fajl sistemi (odnosno diskovi ili particije) su montirani u koje foldere. Na Windowsu je stvar prilično jasna – dovoljno je da bacite pogled u „My Computer“ i vidite koji su diskovi prisutni i koja „slova“ zauzimaju. Sa druge strane, upravo ova apstrakcija programerima drastično olakšava posao – oni u svojim programima mogu pisati i čitati po fajlovima uvek na isti način, bilo da se oni nalaze na lokalnom hard disku, fleš drajvu ili mrežnoj lokaciji. Takođe, tu je još jedna posledica Unixove orjentacije ka višekorisničkim računarskim sistemima namenjenim biznis i naučnoistraživačkoj upotrebi – običan korisnik ne treba da vidi ništa što nije od značaja za njegov rad, tako da mu se dodeljuje folder u hijerarhiji fajl sistema u kome može da skladišti svoje fajlove i to bi bilo to – detalje ne treba da poznaje ukoliko nije administrator sistema.
 

 
Okrenimo se praktičnom delu – kako se sve ovo odražava na svakodnevni rad korisnika PC računara? Što se tiče prepoznavanja ubačenih drajvova, Windows je tu u prednosti jer još od verzije 95 podržava automatsko detektovanje novoubačenih medija. Dovoljno je da korisnik umetne disketu, optički disk ili USB drajv i odmah će moći da pristupi njihovom sadržaju preko Windows Explorera. Kod Linuxa je situacija gora – korisnici su dugo vremena morali ručno da montiraju uređaj u odgovarajući folder (kucanje komande poput “mount -t iso9660 /dev/hdc /media/cdrom/” svaki put kada ubacite optički disk u računar vrlo brzo dosadi, verujte nam na reč), sve dok uz distribucije nije počeo da stiže preinstaliran i prekonfigurisan program „autofs“ koji detektuje ubacivanje medija i automatski montira njihov sadržaj u odgovarajući folder u fajl sistemu. Tako sada, ako ubacite USB fleš ili DVD u računar sa Ubuntuom ili nekom sličnom prijateljski nastrojenom distribucijom, drajv će odmah biti prepoznat i biće vam prikazan njegov sadržaj. Ipak, sistem notifikacije koji postoji na Windowsu je sastavni deo operativnog sistema projektovanog tako da ostavi što bolji utisak na kućnog korisnika, tako da u ovom slučaju Microsoftovo rešenje ima prednost.Jedan program – jedan posao Moramo još jednom ponoviti da je Linux napravljen po uzoru na Unixe. Kako se radi o sistemima koji su imali pravi multitasking još dok DOS nije ni postojao, korisnici su imali slobodu da pokreću više komandi (programa) istovremeno i da ih kombinuju kako bi završili željene poslove. Kada se tome pridoda mogućnost prosleđivanja podataka između programa o čemu smo pisali u prethodnom tekstu, dobija se veoma širok prostor za manevrisanje (pogledajte i deo sa programiranjem shell skripti iz prethodnog teksta). Šta to znači u praksi? Pa recimo, ukoliko neki program za Linux ima potrebu da u toku rada kompresuje određene fajlove, rutine za kompresiju najverovatnije nisu sastavni deo programa već će on pozvati program „zip“ koji će odraditi željenu operaciju pakovanja fajlova. Na isti način, popularni program Synaptic, koji na distribucijama kao što su Debian, Ubuntu i Mint služi za instalaciju novog softvera, zapravo predstavlja „front-end“, odnosno napredniju grafičku „školjku“ za komandu „apt-get“ koja zaista instalira željene pakete. Ili još jedan primer – tekst procesor Abiword će za proveru spelovanja teksta pozivati program „aspell“ u pozadini, umesto da u sebi ima ugrađene odgovarajuće podprograme za to.
 

 
Ukratko, filozofija Linuxa i drugih Unixolikih sistema po ovom pitanju je da jedan program treba da radi jedan posao, ali da ga radi kako treba. Kombinovanjem takvih manjih programa može se postići funkcionalnost po želji, a ovakav sistem je daleko fleksibilniji i pritom olakšava posao programeru. Naravno, veći programi i programski paketi dosta su se odmakli od ove filozofije jer su jednostavno postali previše složeni, ali je ona i dalje izrazito prisutna u Unix svetu. Nije retkost ni na Windowsu, ali u daleko manjoj meri, makar u obliku zastupljenom na Linuxu (direktnim pozivanjem drugih izvršnih programa). Korisnički nalozi S obzirom da je Unix u startu bio višekorisnički operativni sistem, ne čudi što je Linux preuzeo veoma ozbiljan pristup organizaciji korisnika računara i stroga pravila oko njihovih dozvola. U startu je razgraničeno postojanje jednog „superkorisnika“, odnosno administratorskog naloga „root“ koji ima sve sistemske privilegije, i običnih korisnika sa ograničenim mogućnostima. Sve starije Linux distribucije, kao i dosta modernijih koje prate „staru školu“, tokom instalacije sistema i dalje kreiraju jednog običnog korisnika (sa korisničkim imenom i lozinkom), a takođe traže da definišete lozinku za root-a, uz neizbežno obaveštenje da nikako ne treba da se logujete u sistem direktno kao root (na nekim starijim distribucijama je čak za root korisnika bio podešen drečavi crveni wallpaper u grafičkom okruženju koji je upozoravao da pazite šta radite). Ovo i te kako ima smisla – dok ste ulogovani kao root, možete nehotice pokrenuti neki maliciozni program koji može napraviti karambol u sistemu, ili greškom obrisati neke od bitnih sistemskih fajlova. Zato za svakodnevni rad treba da se logujete kao običan korisnik, a ako vam zatrebaju administratorske privilegije, otvorićete terminal, komandom „su“ se prebaciti u root režim i obaviti tih nekoliko bitnih koraka.
 

 
Mogućnost povremenog logovanja u root nalog, pa i sama potreba da korisnik pamti duple lozinke (jednu za svoj i jednu za root nalog) može delovati apsurdno na sistemu sa samo jednim korisnikom, kao što je kućni računar. Distribucija Ubuntu prva je ovo rešila na vrlo elegantan način – lozinka za root korisnika podrazumevano nije ni definisana (zato se u startu ni ne možete logovati kao root, osim ako lozinku eksplicitno ne definišete komandom „sudo passwd root“), a običan korisnik upisan je u konfiguracioni fajl „sudoers“ (u slobodnom prevodu, „oni koji mogu da obavljaju ‘su’ poslove“). Za sve administrativne komande, sistem će tražiti lozinku korisnika umesto root lozinke. Time je obezbeđeno manje maltretiranje vlasnika kućnog računara, uz zadržavanje visokog stepena sigurnosti.
 

 
Na Windowsu je koncept korisničkih naloga sa odvojenim privilegijama i podešavanjima dugo bio prilično labav, ne računajući familiju Windows NT koja uključuje XP, Vistu i „sedmicu“. Štaviše, u familiji starijih kućnih Windowsa (95, 98, ME), sistem je korisnicima pamtio samo najosnovnija podešavanja (recimo, wallpaper i slično) ali su svi oni imali pune privilegije, što je u kombinaciji sa brojnim sigurnosnim propustima, direktno proisteklim iz toga što Windows nije od starta razvijan za rad u mrežnom okruženju, predstavljalo direktan uzrok eksplozije malicioznog softvera krajem prošlog i početkom ovog veka. Na Windowsu XP, prvom ozbiljnom Windowsu koji je zabeležio ogromnu popularnost u kućnom okruženju, stvari po pitanju korisničkih naloga i privilegija bile su drastično bolje izvedene, ali je i to bilo uzalud iz prostog razloga što je sistem tokom instalacije i dalje kreirao podrazumevanog korisnika sa administratorskim privilegijama. To je isto kao kada bi Linux non stop koristili pod root nalogom – sve što pokrenete od programa ima direktan uticaj na ostatak sistema, uključujući tu i mogućnost njegovog oštećenja ili kompletne destrukcije.
 

 
Stvar je donekle rešena u Visti, uvođenjem mehanizma „User Account Control“, koji je korisnika zapitkivao za dozvolu prilikom svake operacije koja može imati bilo kakve posledice po sistemska podešavanja. S obzirom da je ovaj sistem bio prilično naporan iz pogleda korisničkog iskustva, samo je napravljen kontraefekat – ljudi su ga masovno isključivali ne bi li mogli da rade neometano, kao na prethodnim izdanjima Windowsa. Takođe, korisnici masovno naviknuti na slobodu koju im je pružao Windows XP, doživljavali su brojne neprijatnosti pokretanjem starijih programa koji su pisani da se izvršavaju samo pod administratorskim privilegijama, što je drugi razlog zašto je Vista izašla na loš glas. Ipak, nije sve tako crno kao u izreci „Što se grbo rodi, vrijeme ga ne ispravi“, jer su gotovo svi programi za Windows novijeg datuma svesni toga da mnogi korisnici prosto nemaju administratorske privilegije i da će ih pokretati iz ograničenih naloga, ali period tranzicije prethodnih nekoliko godina nije bio prijatan, što zbog loših navika programera, što zbog sigurnosnih mehanizama koji predstavljaju „zakrpu na zakrpu“.
 
Što se tiče grafičkog okruženja na Windowsu i Linuxu, sada više nema neke drastične razlike u korišćenju jer sva aktuelna grafička okruženja i dalje slede davno ustanovljene paradigme, tako da se korisnici relativno brzo privikavaju pri prelasku na novi operativni sistem. Ono što značajno razlikuje grafička okruženja na ovim sistemima jeste način na koji rade „ispod haube“.
 

 
Interesantno je da je Windows prvobitno osmišljen kao grafička platforma za Microsoft Office, odnosno fleksibilni sistem u kome bi Microsoft jednostavnije gradio interfejs za programe iz Office-a. Kada su uvideli potencijal ove platforme, nastavili su razvoj kompletnog grafičkog okruženja za sve aplikacije, tako da je grafički podsistem u startu bio ključni element Windowsa, a kasnije i sastavni deo kernela (kada je Windows postao pravi operativni sistem). Istina, ovo je važilo zaključno sa Windowsom XP. U Visti i „sedmici“ je deo grafičkog podsistema prebačen iz jezgra operativnog sistema na aplikativni nivo, čime se poboljšala stabilnost sistema (pošto bagovi u kernelu mogu izazvati krahiranje celog sistema, dok bagovi u aplikacijama u najgorem slučaju mogu samo izazvati „pucanje“ aplikacije), uz teorijski nešto slabije performanse zbog softverskog raslojavanja.
 

 
Kod Linuxa je priča drugačija – Linux kernel sadrži samo najpotrebnije mehanizme za upravljanje resursima i procesima, pa Linux distribucije tehnički ni ne moraju da sadrže bilo kakvo grafičko okruženje. Zbog ovoga su mnogi programeri ostvarili sopstvene zamisli na ovu temu, koje su se izvršavale na nivou aplikativnog softvera umesto u kernelu. Dominantni koncept trenutno je X Windows System, odnosno njegova besplatna i slobodna implementacija zvana X.Org. Ona ne samo da omogućava prikaz grafike, već u sebi sadrži i mrežni protokol jer je X Windows napravljen po sistemu klijent-server komunikacije. To znači da se grafičko okruženje uopšte ne mora izvršavati na računaru na kome se nalazi sam Linux kernel i X Windows sistem, već i na udaljenim računarima preko mreže jer grafički klijent i grafički server komuniciraju mrežnim protokolima (analogno mogućnosti da udaljenom Linux računaru pristupite pomoću lokalne terminal aplikacije, o čemu smo pisali u tekstu o komandnoj liniji na Linuxu).
 

 
Iako ovo u teoriji zvuči jako fleksibilno, u praksi je situacija malo drugačija. Grafički podsistem koji radi po klijent-server sistemu nema mnogo smisla na kućnim računarima i radnim stanicama jer se stvara nepotrebno raslojavanje softvera i pad performansi u poređenju sa grafičkim okruženjem koje se izvršava u kernelu i u direktnoj sprezi sa hardverom. Na modernim X Windows implementacijama, kao što je X.Org koji se koristi na svim aktuelnim Linux distribucijama, to je donekle sanirano tako što se na lokalnoj mašini za komunikaciju između grafičkog servera i grafičkog klijenta ne koristi mrežni sloj već ovi procesi komuniciraju putem procesnih „cevovoda“, ali i dalje ostaje nepotrebno raslojavanje. Zbog toga je Windows u takvim situacijama u prednosti. Budućnost grafičkih okruženja na Linuxu može biti u softveru po imenu Wayland koji je trenutno u fazi razvoja, i koji omogućava da aplikacije direktno komuniciraju sa „window menadžerima“ (softverskom sloju koji se bavi samim iscrtavanjem prozora) zaobilazeći X Windows sistem, što rezultuje boljim performansama.
 

 
Ako zanemarimo mehanizme koji se bave grafičkim okruženjima „ispod haube“, samo korisničko iskustvo na Windowsu i Linuxu danas se ne razlikuje drastično. Najpopularnija grafička okruženja za Linux trenutno su GNOME i KDE. Oba su jako intuitivna i jednostavna za upotrebu jer koriste ikonice, desktop, panele i sve ostalo na šta su korisnici Windowsa odavno navikli. Dašak promene doneo je interfejs po imenu Unity koji se podrazumevano koristi na Ubuntuu 11.04, ali su mišljenja podeljena jer takav interfejs više priliči tablet računarima i ultraprenosnim netbukovima, umesto desktop monitorima velike dijagonale.
 

Za kraj Uzevši u obzir poreklo Windowsa i Linuxa i sve što smo pomenuli do sada, čini se da je pravo čudo da su ovi sistemi, sa stanovišta krajnjeg korisnika, danas postali toliko bliski po jednostavnosti upotrebe. Ipak, to govori o ogromnoj fleksibilnosti Linux „univerzuma“, koji se može adaptirati tako da adekvatno radi na bilo čemu, od embedded sistema i telefona pa do desktop računara u kućnom i kancelarijskom okruženju. Nadamo se da smo vam ovim tekstom makar malo pomogli da sagledate zašto se Windows i Linux razlikuju u nekim elementima i zašto će zbog različitih miljea iz kojih su potekli uvek biti dva odvojena sveta. Ono što ne treba zaboraviti jeste da je različitost pozitivna stvar i da korisnici PC računara uvek imaju na raspolaganju više operativnih sistema koje mogu isprobavati i koristiti po želji i potrebi, zbog čega je PC i dalje ultimativna platforma za sve primene.  
http://img.benchmark.rs/tests/software/linuxfil/win_users_s.jpg375

Ostani u toku

Prijavi se na newsletter listu i jednom nedeljno cemo ti poslati email sa najnovijim testovima i vestima iz sveta tehnologije.

Hvala!

Uspešno ste se prijavili na na naš newsletter! Proverite vaš email nalog kako bi potvrdili prijavu.

Možda vam se svidi