Linux

**Linux** ili GNU/Linux je operativni sistem za računare baziran na Linux kernelu. Jedan je od najpoznatijih primjera
slobodnog softvera i razvoja putem otvorenog koda. Za razliku od drugih operativnih sistema (kao na primjer Windows-a i Mac OS-a) njegov kod je dostupan javnosti i svako ima pravo da ga slobodno koristi, mijenja i redistribuira.
[220px|mini|desno|[Ubuntu (Linux distribucija)|Ubuntu]]

## Uvod 
Riječ "Linux" se odnosi samo na kernel Linuxa ali se često (i pogrešno) koristi kao naziv za za cijeli operativni sistem (također *GNU/Linux*) baziran oko tog jezgra i broja biblioteka i alata iz GNU projekta. Više stotina Linux distribucija sadrže razni softver zajedno sa GNU/Linux kernelom.

U početku, Linux su razvijali i koristili entuzijastični studenti. Od tada, Linux je dobio podršku od strane velikih kompanija kao što su IBM i Novell za upotrebu na serverima i počinje da ulazi u upotrebu i na ličnim (*personal*-osobnim) kompjuterima. Promoteri i analitičari tvrde da za ovaj uspjeh treba zahvaliti njegovoj nezavisnosti od bilo kakvog centralnog proizvođača, niskom trošku, tj. besplatnosti, sigurnosti i pouzdanosti.

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

## Historija 
[mini|desno|170p|[Linus Torvalds]]
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:

[Posting (poruka) sa Message-ID 1991Aug25.205708.9541@klaava.Helsinki.FI na Usenet(https://bs.wikipedia.org/wiki/Usenet)u]
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.

Danas mnogo ljudi programira u Linuxu, pa to uglavnom čine iz entuzijazma, a vrlo rijetko jer od toga imaju neke finansijske koristi. Internet je od samog početka igrao veliku ulogu u razvijanju sistema, jer se čitava komunikacija i razmjena fajlova odvijala i još odvija otvoreno u javnosti, kroz *usenet* i *mailing* liste te popularne forume.

## GNU/Linux 
mini|desno|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 ugrađene 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 
Linux kernel je napravljen, kao i većina drugih modernih sistema, po uzoru na Unix. 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 vrijeme upotrebe uvoze ili izvoze iz kernela.

### Usermode nasuprot kernelmode 
Kod i kod mnogih drugih operativnih sistema, Linux posjeduje dva moda (tipa) za izvođenje programa, od kojih zavisi koja prava i privilegije određeni programi imaju u sistemu. Korisnički programi se izvode u korisničkom modusu (*user mode*) a sam kernel i njegovi moduli u kernelskom modu (*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
[mini|desno|[KDE grafičko okruženje]]

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

## Distribucije 
Distribucije su konfigurisani paketi koji sadrže kompletne Linux sisteme. Neke od njih su potpuno slobodne i u rukama korisnika, dok su druge komercijalno orijentisane. One korisniku omogućavaju obično jednostavan način izbora i instalacije softverskih paketa. Razlikuju se u konfiguraciji sistema, izboru softvera, instalacijskoj proceduri ali i u podržavanju različitih korisničkih potreba.
Distribucije su sastavljene od kernela i od programa koje kreatori distribucije izaberu.

## Također pogledajte 
* Git (softver)
* Picotux

## Reference 
## Vanjski linkovi 
* Udruženje Linux korisnika Bosne i Hercegovine - ULK BiH 
* Forum Udruženja Linux korisnika Bosne i Hercegovine - 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 bosanskom jeziku
* Miloševa strana - Tekstovi o slobodnom softveru, GNU/Linux i *BSD operativnim sistemima

Kategorija:Softver
Kategorija:Operativni sistemi
Kategorija:Linux
Kategorija:GNU