Linux

**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

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:

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
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  . 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), bez kojih je teško zamisliti Linux danas. Osim toga, operacijski sustavi su često dobivali ime po jezgri.

## GNU/Linux

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". Ono što danas mnogi nazivaju "Linux" je zapravo GNU operativni sistem sa Linux kernelom, jer je Linux ugrađen u GNU operativni sistem kome je samo to falilo da bi bio kompletan. Zato treba koristiti izraz GNU/Linux kada se govori o tom operativnom sistemu, jer je GNU većina sistema dok je LInux samo jedna komponenta.

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
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
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
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

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
**Uredske aplikacije**
* Thunderbird, KMail (*mail* klijenti)
* Mozilla, Firefox, Opera (internet pregledači)
* Ximian Evolution, PHP
* OpenOffice (uredski alati: uređivanje teksta, tablica, prezentacije, baza)
* GIMP

**Grafički sistemi (X-window)**
* GNOME
* KDE

**Aplikacije za servere** 
* Apache
* PHP
* Perl
* mySQL, postgreSQL (baze podataka)
* Postfix, Courier, Horde
* proFTPd, vsFTP

## Distribucije Linuxa

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, Proxmox VE i dr.

## Reference

## Vanjske veze
* Bosansko-hercegovačko Udruženje Linux korisnika - ULK BiH  
* Forum Bosansko-hercegovačkog Udruženja Linux korisnika - ULK BiH 

* Linux.org sadrži raznovrsne podatke o Linux operativnom sisitemu 
* Zanimljivi GNU/Linux portal 
* The Linux Documentation Project 
* Lista kategorija HOWTO (kako-da) dokumenata 
* Linux Online- Distribucije ponuđene na FTP stranicama 
* DistroWatch.com- Informacije i novosti o Linux distribucijama. 
* Screenshotovi Linux distribucija  
* Besplatna i dobra knjiga za Linux u elektronskom obliku, na našem jeziku 
* Miloševa strana - Tekstovi o slobodnom softveru, GNU/Linux i *BSD operativnim sistemima