Linux

Izvor: Wikipedia
Karikatura pingvina je oficijelna maskota Linuxa.

Linux je operativni sistem za računare i njegovo jezgro. Jedan je od najpoznatijih primera slobodnog softvera i razvoja putem otvorenog koda. Za razliku od drugih operativnih sistema (kao na primer Windowsa i Mac OSa) njegov kod je dostupan javnosti i svako ima pravo da ga slobodno koristi, menja i redistributira.

Naziv Linux se striktno odnosi na jezgro Linuxa ali se često koristi za ceo operativni sistem (takođe GNU/Linux) baziran oko tog jezgra i broja biblioteka i alata iz GNU projekta. Preko 300 Linux distribucija pakuju razni softver zajedno sa GNU/Linux sistemom.

U početku, Linux su razvijali i koristili entuzijastični pojedinci. Od tada, Linux je dobio podršku od strane velikih korporacija kao što su IBM, Hewlett-Packard i Novell za upotrebu u serverima i počinje da ulazi u upotrebu i na ličnim kompjuterima. Promoteri i analitičari tvrde da je ovaj uspeh zahvaljujući njegovoj nezavisnosti od bilo kakvog centralnog proizvođača, niskom trošku, sigurnosti i pouzdanosti.

Linux je originalno razvijan za Intel 386 mikroprocesore a danas podržava niz mikroprocesora i računarskih platformi. Upotrebljava se u dijapazonu od ličnih računara do superkompjutera i integrisanih sistema kao što su mobilni telefoni i lični video rekorderi.

Historija[uredi - уреди]

Glavni članak: Historija Linuxa

Linux je u svojoj prvoj verziji objavljen u oktobru 1991, kada je, tada dvadesetjednogodišnji finski student Linus Torvalds, na Usenet-u poslao sljedeći post:

 Hello everybody out there using minix -
 I'm doing a (free) operating system (just a hobby, won't be big and
 professional like gnu) for 386(486) AT clones. This has been brewing
 since april, and is starting to get ready. I'd like any feedback on
 things people like/dislike in minix, as my OS resembles it somewhat
 (same physical layout of the file-system (due to practical reasons)
 among other things). 
 I've currently ported bash(1.08) and gcc(1.40), and things seem to work. 
 This implies that I'll get something practical within a few months, and
 I'd like to know what features most people would want. Any suggestions
 are welcome, but I won't promise I'll implement them :-)
 
 Linus (torvalds@kruuna.helsinki.fi)
  
 PS. Yes - it's free of any minix code, and it has a multi-threaded fs. 
 It is NOT protable (uses 386 task switching etc), and it probably never
 will support anything other than AT-harddisks, as that's all I have :-(.

Posting (poruka) sa Message-ID 1991Aug25.205708.9541@klaava.Helsinki.FI na Usenetu Linus je prvo svoj sistem objavio pod ličnom licencom, ali već 1993 u verziji kernela 0.99.10 Linux je objavljen pod GNU licencom. Kasnije Linus komentariše tu odluku kao najbolju koju je donio vezanu za Linux, jer tek ovaj korak Linuxu omogućava brzo razvijanje i proširenje.

U ranim danima linux je služio kao eksperimentalni sustav koji su koristili studenti, hakeri, programeri i općenito ljudi jako orijentirani na rad s računalima. Nije bilo šire komercijalne upotrebe. To se promijenilo s nastankom Apache Web Servera, koji je zajedno sa linuxom pružio pouzdano i besplatno rješenje za pogonjenje velikog broja web stranica. Tako je linux u par godina istisnuo mnoge druge sustave slične Unixu te u velikoj mjeri i Windows NT sa serverskog tržišta. Napredovanje linuxa na desktopu ide puno sporije te je linux još uvijek rijetka pojava na kućnim i uredskim kompjutorima. S vremenom je nastalo mnogo novih programa za linux (ali i ostale UNIXe) za razne svrhe: uredski paketi, sve vrste programa za internet, PDF, gledanje i uređivanje slika, multimediju, snimanje CD/DVDa te mnogi specijalizirani programi. Može se reći da danas za linux postoje svi potrebni programi za prosječnog kućnog i uredskog korisnika koji se ne igra previše i ne koristi svoj kompjutor za visoko specijaliziranu profesionalnu svrhu.

Što se sigurnosti tiče, za sada postoji samo neznatan broj virusa, spyware-a i adware-a koji rade na linuxu, većina kojih je proof-of-concept (eng. dokaz zamisli) koji nisu u optjecaju, a osim toga osnovni dizajn linuxa i pratećeg softvera je takav da otežava ozbiljne upade u sustav. Osim sigurnosti, stabilnost je također jedna od prednosti ovog operacijskog sustava. Tome pridonosi modularan dizajn Linuxa (jezgre) koja omogućava da se pojedini dijelovi sistema zaustavljaju i ponovno pokreću po potrebi, što kod npr. instalacije grafičkog pogonskog programa znači da se računalo ne mora ponovno pokrenuti, već je dovoljno učitati novi modul i ponovno pokrenuti grafički podsustav. Isto vrijedi i za ostale pogonske programe. Linux može imati više grafičkih sučelja (desktopa). Ako koristi neki vizualno siromašniji, može raditi i na sporijim kompjutorima, koji bi za windowse bili preslabi.

Prodor linuxa na kućna računala te u poslovni svijet usporava činjenica da se igre uglavnom ne rade za linux, a nedostaju i mnogi profesionalni programi. Poseban problem su i pogonski programi (driveri) koje tvrtke rijetko izdaju ili korisnici odbijaju koristiti, što zbog nesuglasica oko stavova po pitanju slobodnog sofvera, što zbog brzog i pomalo divljeg razvoja linux jezgre koji otežava pisanje drivera. Iz tih razloga, linux zajednica teško surađuje sa velikim komercijalnim tvrtkama koje bi mogle pomoći u podršci i širenju linuxa. Konačno, tu je i problem postojanja velikog broja distribucija, to jest, nekih specifičnih razlika između njih (spomenute dalje u tekstu).

Ipak, polako ali sigurno, linux prodire na desktop. Nastaje više linux distribucija prilagođenih početnicima. Izmišljen je i LiveCD, koncept koji omogućava dizanje sistema sa CD/DVD-a i USB-a, te omogućuje isprobavanje linuxa bez pisanja po disku. Mnoge distribucije dolaze kao liveCD-i s mogućnošću instalacije na korisnikov disk. U svijetu je linux postao veliki posao, i to ne samo među serverima. Nažalost, Balkan tu jako zaostaje za svijetom...

Nesuglasice oko naziva[uredi - уреди]

Neki članovi zajednice dijele mišljenje Free Software Foundation-a (zaklade koja stoji iza projekta GNU), i smatraju da se naziv "Linux" može koristiti samostalno samo kad se govori isključivo o jezgri (eng. kernel). Budući da je jezgra uklopljena u operacijski sustav GNU - umjesto njihove nedovršene jezgre Hurd - Free Software Foundation smatra da je ispravan naziv GNU/Linux (ili GNU+Linux), te da je to samo jedna od varijanti operativnog sustava GNU [1] . Dok neke distribucije jasno ističu naziv GNU/Linux - najistaknutiji primjer je Debian GNU/Linux - većina medija i korisnika koristi naziv Linux. Pristaše naziva GNU/Linux ističu kako je taj naziv bitan zbog širenja ideje o slobodnom softveru.

Linus Torvalds, kao i većina zajednice, odbacuje naziv GNU/Linux. Kao razlog, Torvalds navodi da se ovaj operacijski sustav ne sastoji samo od Linuxa (jezgre) i GNU projekta, te da se se korištenjem imena GNU/Linux zapostavljaju drugi važni projekti (kao primjer navodi Xorg)[2], bez kojih je teško zamisliti Linux danas. Osim toga, operacijski sustavi su često dobivali ime po jezgri.

GNU/Linux[uredi - уреди]

Glavni članak: GNU
Logotip GNU projekta

GNU projekat je pokrenut 1984. s ciljem da se razvije kompletan unixoidni operativni sistem koji je potpuno slobodan: GNU sistem. GNU predstavlja akronim za "GNU's Not Unix" - "GNU nije Unix". Komponente iz GNU sistema danas su uklopljene u linux sisteme, pa mnogi iz FSF-a i njihovi fanovi linux nazivaju "GNU/linux".

Fondacija za slobodni softver je najveći sponzor GNU projekta. FSF dobija vrlo malo novca od korporacija odnosno velikih fondacija. Oslanjaju se na podršku individualaca koji misiju podržavaju misiju FSFa, a to je da sačuva, zaštiti i promovira slobodu korištenja, studiranja, kopiranja,modificiranja i distribuiranja računarskog softvera, te da brani prava korisnika slobodnog softvera.

Godine 2005, preko 67% budžeta FSF je popunjeno prilozima pojedinačnih donatora. Ova vrsta podrške predstavlja primarni način finansiranja.

Kernel[uredi - уреди]

Linux kernel je napravljen, kao i većina drugih modernih sistema, po uzoru na Unixa. To znači, između ostalog, da se zasniva na potpunoj abstrakciji i virtualiziciji svih hardverskih komponenti. Upravo to je i glavna funkcija kernela. Pored toga u kernelu je implementirana funkcionalnost multitaskinga (obavljanje više zadataka odjednom), kontrola procesa, kontrola memorije itd.

Na samom početku Linux kernel je bio monolitske građe, što znači da je sva funkionalnost zajedno sa drajverima implementirana u jednom kernel-imageu. Ovakva arhitektura se brzo ispostavila kao lošom, jer svaka i najmanja izmjena može da predstavlja izmjenu cijelog kernela. Danas je Linux hibridno-monolitan, što znači, da je veliki dio drajvera, koji nisu neophodni za sami start kernela, implementirani kao moduli koji se za vrjeme upotrebe uvezuju ili izvezuju iz kernela.

Usermode vs. kernelmode[uredi - уреди]

Kod i kod mnogih drughi operativnih sistema, Linux posjeduje dva moda (tipa) za izvođenje programa, od kojih ovisi koja prava i privilegije u sistemu određeni programi imaju. Korisnički programi se izvode u korisničkom modusu (user mode) a sam kernel i njegovi moduli u kernelskom modusu (kernel mode). Takva podjela ima prednost da korisnički program ne može izazvati pad cijelog sistema.

C i asembler[uredi - уреди]

Gotovo cijeli kernel je programiran u programskom jeziku C. Samo veoma kritični djelovi su pisani u asembleru. Cijeli Linux sistem je jako dobro prilagođen programiranju u C, ne samo jer je C i koncipiran kao programski jezik za unix-slične sisteme. Kao kompajler se uglavnom koristi gcc koji omogućava i jednostavno portiranje sistema za druge arhitekture, zbog čega Linux i jeste toliko rasprostanjen na različitim arhitekurama.

Za više o ovome pogledajte članak programski jezik C ili gcc.

Softver[uredi - уреди]

Za Linux danas postoji veliki broj programa, od kojeg se najveći broj izdaje pod GPL-licencom. Nemoguće bi bilo napraviti kompletnu listu programa. Ipak, neki programi su toliko rasprostranjeni, da se smatraju glavnim repertoarom na Linux-sistemima.

  • bash, "bourne again shell" je jedan od komandnih interpretera (shell) na Linuxu.
  • mc ili "Midnight Commander", se koristi za izlistavanje, sortiranje, traženje, kopiranje, prikazivanje fajlova itd.
  • gcc je kompajler za programski jezik C i C++

Za Linux postoji mnogo editora, koji slijede različite paradigme.

  • Vim i Emacs su najpoznatiji i najbolji editori za Linux, iako su portirani (prebačeni) na gotove sve sisteme.

Glavne aplikacije za servere i korisnike[uredi - уреди]

Uredske aplikacije

Grafički sistemi (X-window)

Aplikacije za servere

Distribucije Linuxa[uredi - уреди]

Glavni članak: Linux distribucija
Desktop Ubuntu distribucije.

Linux distribucija je operacijski sustav sastavljen od Linux kernela (s pogonskim programima), GNU sistemskih i aplikacijskih programa, Xorg grafičkog servera i grafičkog okruženja. Osim tih osnovnih dijelova, različite distribucije uključuju veći ili manji broj ostalih korisničkih programa specifične namjene. Svaka distribucija je podešena prema željama autora i korisnika za određenu namjenu. Nemoguće je utvrditi točan broj distribucija, a ne postoji niti jasan kriterij što čini Linux distribuciju. Veliki broj distribucija kao i nepostojanje standarda - poput jedinstvenog načina instaliranja programa - mnogim korisnicima računala otežava prelazak na Linux, ali i komercijalnu upotrebu.

Distribucije se mogu podijeliti u tri osnovne skupine s obzirom kako se distribuira softver uz pojedinu distribuciju. Softver se može distribuirati u izvornom kodu (kao kod distribucije Gentoo) ili u zato predviđenim paketima (koji sadrže izvršne inačice softvera) ili pak kao izvršni programi ili skripte koje same instaliraju softver (također u izvršnom obliku). Dva najčešća sustava za upravljanje paketima su rpm i dpkg pa se stoga distribucije koje ih koriste često nazivaju nazivaju RPM distribucije, odnosno distribucije temeljene na Debianu. U distribucije vrste RPM spadaju npr. RHEL, Fedora, Mandriva, PCLinuxOS, OpenSuse, dok u distribucije vrste Debian spadaju (osim samog Debiana): Ubuntu, Xandros, Mepis, Knoppix, Sidux i dr.

Izvori[uredi - уреди]

  1. Stallman, Richard (19. lipnja 2007.). "Linux and the GNU Project". The GNU Project. Free Software Foundation. http://www.gnu.org/gnu/linux-and-gnu.html. pristupljeno 13. 07. 2007.. 
  2. Moore, J.T.S. (producent, autor teksta, i redatelj). (2001). Revolution OS. [DVD].

Eksterni linkovi[uredi - уреди]