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.
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 :-(.
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
|
uredi kod
]
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 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.
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
|
uredi kod
]
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.
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
.
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
|
uredi kod
]
Uredske aplikacije
Grafi?ki sistemi (X-window)
Aplikacije za servere
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.