0% found this document useful (0 votes)
116 views19 pages

1069 Linuxos

The document provides an introduction to the Linux operating system, discussing key concepts such as the Linux kernel, different Linux distributions, and how Linux can run on various hardware platforms. It also outlines some of the main components of the Linux operating system, including its multi-user capabilities, processes, kernel architecture, and UNIX file system. The document aims to provide a brief overview of Linux and compare it to other UNIX-like operating systems.

Uploaded by

Aidin Alihodzic
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
116 views19 pages

1069 Linuxos

The document provides an introduction to the Linux operating system, discussing key concepts such as the Linux kernel, different Linux distributions, and how Linux can run on various hardware platforms. It also outlines some of the main components of the Linux operating system, including its multi-user capabilities, processes, kernel architecture, and UNIX file system. The document aims to provide a brief overview of Linux and compare it to other UNIX-like operating systems.

Uploaded by

Aidin Alihodzic
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 19

UNIVERZITET „ Džemal Bijedić “

Fakultet Informacijskih Tehnologija


MOSTAR

LINUX OS
Uvod u IT

Predmetni nastavnik: Student:


Nijaz Bajgorić Aidin Alihodžić
DL
SUMMARY
Linux Operating System is a union of Linux kernel and (mostly GNU) system software. It is
a complete UNIX clone. As such, it is a complete multi-user and multitasking system build
upon monolithic kernel which supports loadable modules. It is mostly compatible with a
number of UNIX standards on the source level, including IEEE POSIX.1, System V and BSD
features. Linux supports various filesystem types for storing data and provides a complete
implementation of TCP/IP networking. The first version of Linux kernel was created by Linus
Torvalds back in 1991 and since then it has been constantly developed by thousands of
developers world-wide. The biggest part of the system software which, along with Linux
kernel, constitutes Linux Operating System has been ported from BSD and distributed under
GPL license, as well as the kernel itself. Linux is a powerful operating system which is easily
seen through its many uses in fields such as networking, security, multiprocessing, client-
server strategies, graphics, clustering…

Since it first appeared in 1991 to present day, the user base of this versatile operating
system has been growing steadily and it has become a real competitor on the market of the
mainstream operating systems.

2
SADRŽAJ

SUMMARY ....................................................................................................2
SADRŽAJ .....................................................................................................3
UVOD..........................................................................................................4
POJAM LINUX ...............................................................................................5
Linux kernel ............................................................................................................................5
Linux OS...................................................................................................................................6
Linux distribucije...................................................................................................................6
LINUX I RAZNE HARDVERSKE PLATFORME .......................................................6
VERZIJE LINUXA ...........................................................................................7
LINUX OPERATIVNI SISTEM............................................................................7
Linux je višekorisnički sistem ..........................................................................................8
Korisnici i grupe ....................................................................................................................8
Linux vs. drugi unixoidni kerneli.....................................................................................9
Procesi.....................................................................................................................................11
Arhitektura kernela ............................................................................................................12
UNIX FAJLSISTEM ....................................................................................... 13
Fajl............................................................................................................................................13
Regularni fajlovi ..................................................................................................................13
Direktorijumski fajlovi ......................................................................................................14
Character-orjentisani device fajlovi ............................................................................14
Block-orjentisani device fajlovi .....................................................................................14
Socket .....................................................................................................................................14
Pipe i named pipe ...............................................................................................................14
Simbolički i hard linkovi ...................................................................................................14
Organizacija fajlsistema...................................................................................................15
Dijeljeni i nedijeljeni......................................................................................................15
Statični i promjenljivi ....................................................................................................15
Root fajlsistem po FHS standardu ...............................................................................16
ZAKLJUČAK................................................................................................ 17
LITERATURA............................................................................................... 18

3
UVOD

U avgustu 1991., kada je Linus Torvalds poslao na usenet grupu comp.os.minix obavijest o
svom projektu/hobiju, sam kernel linuxa je bio u povojima i teško da se mogao smatrati
nečim što će u skorije vrijeme imati toliko uticaja, ne samo na tržište operativnih sistema,
nego na toliko grana direktno i indirektno vezanih što prevazilazi obim ovog teksta da se
uopšte i nabraja.

Cilj ovog teksta nije da ulazi u sve segmente linuksa kao operativnog sistema, kao ni da se
pokuša napraviti neko skraćeno uputstvo za korištenje istog, jer je to samim raspoloživim
prostorom i opširnošću teme nemoguće uraditi. Cilj je da se napravi kratak osvrt na neke
ključne stvari kao što su sam pojam linuxa, da se pomene na kojim to sve platformama u
današnje vrijeme Linux radi, da se malo zaviri u samu njegovu srž – kernel, kao i njegovu
drugu ključnu stvar - fajlsistem, te da se napravi komparacija sa drugim, njemu srodnim,
operativnim sistemima na kojima je i baziran. Iako je ovdje riječ o linuxu, u tekstu se često
koristi riječ Unix, čisto zbog toga što se većina stvari ne odnosi samo na Linux nego važi za
sve unixoidne sisteme pa se, samim tim, misli i na Linux.

4
POJAM LINUX

U današnje vrijeme, kada se kaže Linux, najčešće se misli na jednu od tri stvari: Linux
kernel, Linux OS ili Linux distribuciju. pa da ukratko razjasnimo ta tri pojma.

Linux kernel

Kernel je jezgro operativnog sistema, njegova srž. Ukratko to je softver koji upravlja
pristupom korisničkih programa sistemskom hardveru i softverskim resursima. Ovi resursi
se kreću od dobijanja procesorskog vremena, pristupanja memoriji, čitanja i pisanja po
diskovima, povezivanja u mreže pa do interakcije s terminalom ili GUI interfejsom. Kernel
sve ovo omogućava kontrolisanjem i pružanjem pristupa memoriji, procesoru,
ulazno/izlaznim uređajima, fajlovima na disku i specijalnim servisima za korisničke
programe.

Kernel se sastoji iz nekoliko podsistema:


• upravljanje procesima
• upravljanje memorijom
• upravljanje ulazom/izlazom
• upravljanje fajlovima

Sam linuxov kernel se izvodi u tzv. zaštićenom modu. Ovaj način rada omogućava kernelu
da se izvršava a da mu ne smetaju drugi programi koji su trenutno pokrenuti u sistemu.
Sam mikroprocesor nameće ovu liniju razgraničenja između korisničkog nivoa i kernelovog
adresnog prostora te garantuje održanje integriteta njegove strukture podataka i struktura
podataka drugih procesa. Naravno, to ne znači da neki privilegovani proces ne bi mogao
prouzrokovati oštećenja unutar kernela i time izazvati nestabilnost ili sam pad sistema ali
suzbija takve mogućnosti samim tim da takvi procesi moraju biti privilegovani.

Linux je član velike porodice unixoidnih operativnih sistema. Relativno nov sistem koji se
pojavio početkom devedesetih godina prošlog vijeka te se pridružio i stao uz bok s poznatim
Unix operativnim sistemima kao što su System V Release 4 (SVR4), originalno razvijen od
strane AT&T a sada u vlasništvu SCO grupe, Digital Unix iz Digital Equipment Corporation
(sada vlasništvo Hewlett-Packarda), AIX iz IBM-a, HP-UX iz Hewlett-Packarda, Sun OS i
Solaris iz Sun Microsystems, Mac OS X iz Apple Computer Inc, razni BSD-ovi itd...

Linux je inicijalno razvijen od strane Linus Torvaldsa 1991. godine kao operativni sistem za
IBM kompatibilne personalne računare bazirane na 80386 mikroprocesoru. Linus je još
uvijek duboko “upetljan” u razvoj Linuxa, držeći ga u koraku s razvojem raznog hardvera i
koordinirajući aktivnosti stotina ljudi (developera) uključenih u razvoj Linux sistema širom
svijeta. Tokom godina, developeri su radili na tome da Linux bude dostupan i na drugim
arhitekturama uključujući Hewlet-Packardovu Alpha, Itanium, MIPS, SPARC, Motorola
MC680x0, PowerPC, AMD64, IBM-ove zSeries.

Jedna od najvećih beneficija Linux-a je ta da on nije komercijalan niti zatvoren operativni


sistem, njegov source kod je otvoren i pod GNU Public License dostupan bilo kome da ga
proučava.

5
Linux OS

Tehnički govoreći, Linux je pravi Unix kernel, mada on nije potpun Unix operativni sistem
zato što ne uključuje sve aplikacije, kao što su fajlsistem alati, windowing sistemi i grafički
desktopi, sistem-administratorske komande, tekst editori, kompajleri itd. Ali, pošto je
većina ovih programa slobodno dostupna pod GNU GPL, oni mogu biti instalirani na nekom
od fajlsistema podržanih od strane Linuxa. To nam ukazuje na pogrešno interpretiranje
riječi Linux kada se misli na cjelokupan operativni sistem. Zato je uobičajeno među onima
koji shvataju tu razliku da takav sistem nazivaju GNU/Linux operativni sistem - dakle, GNU
sistem na Linux kernelu. Činjenica je da je npr. samo postojanje GNU C kompajlera jedan
od preduslova koji su omogućili i postojanje Linuxa kao takvog, otvorenog i slobodnog
softvera. Dakle, Linux jeste unixoid koji je napisan kako se to uobičajeno kaže “from
scratch”, ali ostatak operativnog sistema je većinom portani (prebačeni, prilagođeni) GNU
softver iz BSD UNIX-a.

Linux distribucije

Pošto je Linux slobodan softver, ne postoji organizacija ili entitet koji je odgovoran za
njegovo izdavanje ili distribuciju. Takođe, bilo ko, ko to želi ili hoće, može i ima pravo da ga
sklopi u cjelokupan sistem i distribuira sve dok se pridržava GPL licence. To nas dovodi do
pojma Linux distribucije. Linux distribucije su, dakle, kolekcije kernela i (najčešće GNU)
softvera. Nusprodukt ovoga je to da postoji veliki broj Linux distribucija širom svijeta. Neke
od njih su komercijalne, neke besplatne, neke sadrže ogromnu količinu softvera a neke su
usko specijalizovane. Evo nekoliko primjera:
• SuSE Linux, proizvod njemačke softverske kuće SuSE AG (u trenutku pisanja ovog
teksta ta firma je u fazi kupovine od strane Novella) je jedna od najvećih distribucija
što se tiče količine softvera koji je uključen u nju i uz RedHat distribuciju drži primat
na području komercijalnih distribucija.
• Debian GNU/Linux je besplatna distribucija razvijena i održavana od strane volontera
širom svijeta, takođe po obimu spada među distribucije koje uključuju veliku količinu
dodatnog softvera.
• Floppyfw je mala distribucija koja zajedno s kernelom i priloženim softverom ne
prevazilazi veličinu jedne floppy diskete i ona spada u specijalizovane distribucije.
Razvijena je s jednom namjenom, da radi kao firewall i u sklopu nje se ne nalaze
nikakvi softveri koji nisu usko vezani za tu namjenu.

LINUX I RAZNE HARDVERSKE PLATFORME


Linux nastoji da održi razdvojene hardverski zavisne i hardverski nezavisne dijelove svog
koda tako da se u samom stablu source koda u poddirektorijima arch i include nalaze
poddirektoriji u kojima je izvorni kod vezan isključivo za određene platforme, odnosno
arhitekture:

1. alpha - Hewlett-Packardove Alpha radne stanice.


2. arm – Računari i embedded uređaji bazirani na ARM procesoru.
3. cris - "Code Reduced Instruction Set" procesori korišteni Axisovim tzv. thin-
serverima kao što su web kamere i development boards.
4. i386 - IBM-kompatibilni personalni računari bazirani na 80x86 mikroprocesorima (od
386 pa na dalje).
5. ia64 – Radne stanice bazirane na intelovom 64-bitnom Itanium mikroprocesoru.
6. m68k – Personalni računari bazirani na Motorola MC680x0 mikroprocesorima.
7. mips – Radne stanice bazirane na MIPS mikroprocesorima.

6
8. mips64 - Radne stanice bazirane na 64-bitnim MIPS mikroprocesorima.
9. parisc - Radne stanice bazirane na Hewlett Packardovim HP 9000 PA-RISC
mikroprocesorima.
10. ppc - Radne stanice bazirane na Motorola-IBM PowerPC mikroprocesorima.
11. ppc64 – Radne stanice bazirane na 64-bitnim Motorola-IBM PowerPC
mikroprocesorima.
12. s390 - 32-bitni IBM ESA/390 i zSeries mainframe sistemi.
13. s390x – IBM-ovi 64-bitni zSeries serveri
14. sh - SuperH embedded računari koje su razvili Hitachi i STMicroelectronics
15. sparc - Radne stanice bazirane na Sun Microsystems SPARC mikroprocesorima
16. sparc64 - Radne stanice bazirane na Sun Microsystems 64-bitnim Ultra SPARC
mikroprocesorima
17. um – Ovo nije klasični kernel vezan za neku platformu nego je UML bazirani, virtualni
kernel koji se može iskompajlirati i pokretati na nekom već pokrenutom Linux
sistemu (za sada samo na i386 arhitekturi) kao obični program.
18. x86_64 – Sistemi sagrađeni na AMD64 mikroprosesorima.

VERZIJE LINUXA
Linux razlikuje stabilne od development verzija kernela kroz jednostavnu šemu
numerisanja. Svaka verzija je označena sa tri boja razdvojena tačkom. Prva dva broja
identificiraju verziju a treći release (izdanje). U vrijeme pisanja ovog pasusa trenutna stable
verzija je bila 2.4.22 a zvaničnih 2.5 development verzija nije bilo jer su one prerasle u
novu verziju 2.6 koja je pri kraju beta faze (2.6.0-test9) te se uskoro očekuje njena stable
verzija a nove development verzije će se nakon toga vjerovatno označavati sa 2.7.

Nova izdanja stable verzija dolaze većinom zbog ispravljenih bugova (grešaka) prijavljenih
od strane korisnika. Glavni algoritam i struktura podataka korištenih za implementaciju
kernela ostaju nepromijenjeni. (Napomena: praksa često ne slijedi teoriju. Na primjer
virtual memory system je značajno izmijenjen počevši od 10 izdanja 2.4 verzije tj. od
2.4.10 kernela.

Development verzije, opet, mogu biti poprilično različite jedna od druge. Kernel developeri
su slobodni da eksperimentišu sa različitim rješenjima što obično vodi do drastičnih
promjena u samom kernelu. Korisnici koji baziraju svoje sisteme na development verzijama
kernela mogu iskusiti neprijatna iznenađenja kada nadograđuju (upgrade) svoj kernel na
novo izdanje baš zbog tih promjena. Zbog toga se ne preporučuje upotreba development
kernela u produkcionim sistemima jer ne postoji način kojim bi se predvidjelo koje će sve
nove opcije iz eksperimentalnih kernela biti definitivno zadržane a koje odbačene iz samog
kernela.

LINUX OPERATIVNI SISTEM


Svaki računarski sistem uključuje osnovni set programa nazvanih operativni sistem.
Najvažniji program u tom skupu se zove kernel. On je učitan u RAM nakon što se sistem
boota i sadrži mnoge kritične procedure potrebne sistemu da bude operativan. Ostali
programi su manje krucijalni alati. Oni mogu pružiti širok spektar interaktivnih iskustava za
korisnika, od rada svih onih poslova zbog kojih je korisnik kupio računar, ali osnovni oblik i
mogućnosti sistema su determinisane kernelom. Kernel pruža ključne olakšice svemu
ostalom na sistemu i određuje mnoge karakteristike višeg softvera. I pored svega rečenog
često se termin operativni sistem koristi kao sinonim za kernel.

Operativni sistem mora ispuniti dva glavna cilja:


• Interakcija sa hardverskim komponentama, opslužujući sve programabilne elemente
niskog nivoa (low level) uključene u hardversku platformu.

7
• Obezbijediti izvršno okruženje aplikacijama koje se pokreću na računarskom sistemu
(tzv. korisničkim programima).

Neki operativni sistemi dozvoljavaju svim korisničkim programima da se direktno "igraju" s


hardverskim komponentama (tipičan primjer je MS-DOS). U kontrastu, unixoidni sistemi
skrivaju sve detalje niskog nivoa (low level) koje se tiču fizičke organizacije računara od
aplikacija pokretanih od strane korisnika. Kada program želi da koristi hardverske resurse,
on mora uputiti zahtjev operativnom sistemu. Kernel ocjenjuje taj zahtjev, i ako odluči da
dozvoli pristup resursu, stupa u interakciju s dotičnom hardverskom komponentom u ime
korisničkog programa.

Moderni operativni sistemi se oslanjaju na dostupnost specifičnih hardverskih opcija koje


brane korisničkim programima direktnu interakciju sa hardverskim komponentama niskog
nivoa ili pristup određenim memorijskim lokacijama. Ukratko, hardver predstavlja barem
dva različita izvršna moda centralnoj procesorskoj jedinici: neprivilegovani mod za
korisničke programe i privilegovani mod za kernel. Unixi (pa i Linux) s razlogom to nazivaju
User Mode i Kernel Mode.

Linux je višekorisnički sistem

Višekorisnički sistem je računar koji je sposoban da konkurentno i nezavisno izvrši više


aplikacija koje pripadaju dvojici ili većem broju korisnika. Konkurentno znači da aplikacije
mogu biti aktivne u isto vrijeme i da se mogu “boriti” za razne resurse kao što su CPU,
memorija, hard diskovi, itd. Nezavisno znači da svaka aplikacija može izvršiti zadatak bez
obzira na to šta aplikacije drugog (ili drugih) korisnika rade. Prebacivanje s jedne aplikacije
na drugu, naravno, usporava svaku od njih i utiče na vrijeme odgovora (response time)
gledano sa korisničke strane. Mnoge kompleksnosti kernela modernih operativnih sistema
su i prisutne s ciljem minimiziranja zastoja u svakom programu i što bržeg pružanja
odgovora korisniku.

Višekorisnički sistemi moraju imati nekoliko osobina:


• Autentifikacioni mehanizam za provjeru korisničkog identiteta;
• Mehanizam zaštite protiv bagovitih korisničkih programa koji mogu blokirati druge
aplikacije koje se izvršavaju na sistemu;
• Mehanizam zaštite protiv zlonamjernih korisničkih programa koji bi mogli špijunirati
ili se mješati u aktivnosti drugih korisnika;
• Accounting mehanizam koji limitira količinu resursa dodijeljenih pojedinom korisniku;

Da bi obezbijedili zaštitne mehanizme, operativni sistemi moraju koristiti hardversku zaštitu


asociranu sa CPU privilegovanim modom. U suprotnom, korisnički program bi bio u
mogućnosti da direktno pristupi resursima i preskoči postavljene barijere. Linux je
višekorisnički sistem koji koristi hardversku zaštitu sistemskih resursa.

Korisnici i grupe

U višekorisničkom sistemu, svaki korisnik ima svoj privatni prostor na mašini, najčešće
posjeduje neku kvotu na hard disku gdje može pohraniti datoteke, primati e-mail poruke
itd. Operativni sistem mora osigurati da privatni komad korisničkog prostora bude vidljiv
samo vlasniku. Ukratko, mora osigurati da korisnik ne može iskoristiti sistemsku aplikaciju u
svrhu zloupotrebe privatnog prostora drugog korisnika.

Svi korisnici su identifikovani jedinstvenim brojem koji se zove User ID ili kratko UID.
Obično je korištenje računarskog sistema dozvoljeno samo ograničenoj grupi osoba. Kada
neko od tih korisnika započne radnu sesiju, operativni sistem traži korisničko ime (login) i

8
šifru (password). Ako korisnik ne unese ispravan par, sistem ne dozvoljava pristup. S
obzirom da se šifra smatra tajnom, privatnost korisnika je osigurana.

Da bi selektivno dijelili materijal s drugim korisnicima, svaki korisnik je član jedne ili više
grupa koje su identifikovane jedinstvenim brojem zvanim Group ID ili kratko GID. Svaki fajl
je asociran s tačno jednom grupom. Na primjer, pristup fajlu može biti podešen tako da
korisnik koji je vlasnik fajla može čitati i pisati u taj fajl, grupa može samo čitati iz njega a
svim ostalim korisnicima je pristup fajlu zabranjen.

Svaki unixoidni sistem ima specijalnog korisnika zvanog root ili superuser. Administrator
sistema se mora prijaviti na sistem kao root da bi rukovao korisničkim accountima, radio
poslove održavanja kao što su backupi, nadogradnje (upgrade) itd. Root korisnik može
uraditi skoro sve, s obzirom da operativni sistem ne postavlja uobičajene mehanizme zaštite
tom korisniku. Ukratko, root korisnik može pristupiti svakom fajlu na sistemu i može se
miješati u aktivnost svakog pokrenutog korisničkog programa.

Linux vs. drugi unixoidni kerneli

Sve komercijalne varijante Unixa su izvedene iz SVR4 ili iz 4.4BSD verzija unixa i sve se
drže nekih uobičajenih standarda kao što su IEEE's Portable Operating Systems based on
Unix (POSIX) i X/Open's Common Applications Environment (CAE). Trenutni standardi
specificiraju samo application programming interface (API) koji je dobro definisano
okruženje u kojem bi se korisnički programi trebali izvršavati. Ovi standardi ne uslovljavaju
nikakve restrikcije na internom dizajnu kernela koji ih se pridržava. Kao činjenica se može
uzeti to da nekoliko operativnih sistema koji uopšte nisu unixi ili unixoidi zadovoljava POSIX
standard, npr. Windows NT.

Da bi definisali uobičajeno korisničko okruženje, unixoidni kerneli obično dijele


fundamentalne ideje dizajna i osobina. Tako da je Linux uporediv sa ostalim unixoidnim
sistemima i poznavanjem njega moguće je razumjeti i ostale unixoidne sisteme i obratno.

2.4 verzija Linux kernela cilja na to da bude u skladu s IEEE POSIX standardom. To znači da
većina postojećih Unix programa može biti kompajlirana i izvršena na Linux sistemu uz vrlo
mali napor ili čak bez ikakvih izmjena izvornog (source) koda. Linux uključuje sve
karakteristike modernog Unix operativnog sistema kao što su virtualna memorija, virtualni
fajlsistem, lightweight processes, reliable signals, SVR4 interprocess communications,
podrška za višeprocesorske sisteme, itd.
Sam po sebi, Linux kernel nije nešto posebno inovativan. Kada je Linus Torvalds pisao prvi
kernel, on se oslanjao na neke klasične knjige o Unixovoj unutrašnjosti kao što je The
Design of the Unix Operating System (by Maurice Bach, Prentice Hall, 1986). Iako baziran
na unixima, Linux se ne drži striktno ni jedne od verzija već pokušava da implementira
najbolje osobine i dizajn više različitih Unix kernela.

Sljedeća lista objašnjava kako se Linux takmiči s nekim od poznatijih Unix kernela:

• Monolithic kernel: To je veliki, kompleksan program, sastavljen od nekoliko logičnih


komponenti. U ovome je linux poprilično konvencionalan s obzirom da većina
komercijalnih Unixa ima monolitan kernel (izuzetak je Carnegie-Mellonov Mach 3.0
koji slijedi microkernel pristup). Google u svojoj usenet arhivi ima interesantnu
diskusiju koja se vodila između Linus Torvaldsa i Andrew S. Tanenbauma (tvorca
Minixa) iz doba samog nastanka Linuxa gdje je Tanenbaum kritikovao Torvaldsa
zbog korištenja monolitnog kernela.
• Kompajlirani i statički linkovani Unix kerneli: Većina modernih kernela mogu
dinamički učitati i izbaciti neke dijelove kernelskog koda (obično neki drajveri), koji
se obično nazivaju modulima. Podrška Linuxa prema modulima je vrlo dobra s
obzirom da je on u mogućnosti da učita (ili izbaci iz samog kernela ako mu isti više
nisu potrebni) module po potrebi. Među glavnim komercijalnim varijantama Unixa,

9
samo su SVR4.2 i Solaris kerneli sličnih osobina.
• Kernel threading: Neki moderni Unix kerneli, kao što su Solaris 2.x i SVR4.2/MP, su
organizovani kao komplet kernel threads. Kernel thread je izvršni kontekst koji može
biti nezavisno raspoređen, može biti asociran s korisničkim programom ili može
izvršavati samo neke funkcije kernela. Preklapanje između kernel threadova je
mnogo manje zahtjevno od preklapanja između uobičajenih procesa pošto ovi
posljednji operišu u uobičajenom adresnom prostoru. Linux koristi kernel threadove
na vrlo limitiran način da bi periodično izvršio nekoliko kernelskih funkcija. Pošto
Linux kernel threadovi ne mogu izvršavati korisničke programe, oni ne predstavljaju
osnovni kontekst izvršne apstrakcije.
• Podrška multithreaded aplikacijama: Većina modernih operativnih sistema ima neki
vid podrške multithreaded aplikacijama. To su dobro dizajnirani korisnički programi u
smislu više relativno nezavisnih izvršnih tokova koji dijele veliki komad aplikacijske
podatkovne strukture. Multithreaded korisnička aplikacija može biti sastavljena od
više “laganih” procesa (lightweight processes - LWP), a to su procesi koji mogu
operisati na uobičajenom adresnom prostoru, memoriji, fajlovima itd. Linux
posjeduje svoju vlastitu verziju tj. Implementaciju ovih LWP procesa koja je različita
od one kod drugih sistema kao što su npr. SVR4 i Solaris. Dok su kod komercijalnih
unixa LWP-i bazirani na kernel threadsima, Linuxovi LWP su osnovni izvršni kontekst
i rukuje njima preko nestandardnog clone() sistemskog poziva (system call).
• Nonpreemptive kernel: Linux 2.4 nije u mogućnosti arbitrarno prožimati izvršne
tokove dok su u privilegovanom modu (ova restrikcija je izbačena iz 2.5
development verzije linuxa). Nekoliko sekcija kernelskog koda predpostavlja da
može izvršavati i modifikovati strukture podataka bez bojazni da će biti prekinute
(ometane) i ima drugi thread koji mijenja te strukture podataka. Obično potpuno
preemptive kernels su asocirani sa specijalnim real-time operativnim sistemima.
Trenutno, među konvencionalnim unixima, samo su Solaris 2.x i Mach 3.0 potpuno
preemptive kerneli.
• Višeprocesorska podrška: Više Unix kernela iskorištavaju višeprocesorske sisteme.
Linux 2.4 podržava symmetric multiprocessing (SMP), što znači da sistem može
koristiti više procesora i svaki od njih može rukovati bilo kojim zadatkom – nema
diskriminacije među njima. Premda je nekoliko dijelova kernelovog koda još uvijek
serializovano u smislu jednog "big kernel lock," može se reći da Linux 2.4 čini
korištenje SMP-a približno optimalnim.
• Fajlsistem: Linuxovi standardni fajlsistemi dolaze u mnogo oblika. Prve verzije linuxa
su bile bazirane na minix fajlsistemu, ali kako je linux razvijan, pojavio se Extended
Filesystem (Ext FS) koji je, iako je donio neke novosti, pružao vrlo loše performanse.
Second Extended Filesystem (Ext2) je predstavljen 1994. koji je, pored nekih
dodatnih mogućnosti, pružio robusnost i efikasnost i postao najzastupljeniji Linux
fajlsistem. Iako je relativno zastario, još uvijek ima nekih svojih prednosti (između
ostalog, prilično debugiran kod), Ext3, nasljednik Ext2 fajlsistema s kojim je
kompatibilan (moguće je vrlo lako prebaciti particiju iz jadnog u drugi) sa sobom
donosi jednu od prednosti modernih fajlsistema a to je žurnaling (journaling).
ReiserFS (takođe journaling fajlsistem) pokazuje svoju snagu kod operacija sa
velikim brojem malih fajlova. Pored ova dva posljednja, Linux ima podršku za još
nekoliko žurnaling fajlsistema kao što su: IBM AIX's Journaling File System (JFS),
Silicon Graphics Irix's XFS fajlsistem. Zahvaljujući objektno orjentisanoj Virtual File
System tehnologiji (inspirisanoj Solarisom i SVR4), portanje (prilagođavanje) stranih
fajlsistema na Linux je relativno lagan zadatak. Pored nabrojanih, Linux podržava
veliki broj drugih fajlsistema, od kojih neke samo u read only modu, ali prostor ovog
teksta limitira njihovo pominjanje.
• STREAMS: Linux nema analogiju prema STREAMS I/O podsistemu predstavljenom u
SVR4, iako je on sada sadržan u većini unix kernela i postao preferirano okruženje za
pisanje device drivera, terminal drivera i mrežnih protokola.

Iako sličan i baziran na drugim unixima, neke karakteristike ipak čine Linux jedinstvenim
sistemom. Kerneli komercijalnih unixa često predstavljaju nove osobine čisto da bi dobili
veću “krišku” na tržištu, ali to ne znači da su te osobine obavezno i korisne, stabilne ili

10
produktivne. Za razliku od njih, Linux ne pati od ograničenja i stanja nametnutih tržištem i
zbog toga on može slobodno da se razvija prema idejama svojih dizajnera (prvenstveno
Linus Torvaldsa). Specifično, Linux pruža sljedeće prednosti naspram svojih komercijalnih
konkurenata:
• Linux je besplatan. Moguće je instalirati kompletan Unix sistem bez izdataka (osim u
hardver).
• Linux je potpuno podesiv u svim svojim komponentama. Zahvaljujući GPL licenci,
bilo ko može slobodno čitati i modificirati izvorni kod kernela i svih sistemskih
programa. (Postoji jedan izuzetak: Pošto su mnoge komercijalne kompanije počele
da podržavaju svoje produkte pod Linuxom neke od njih svoje programe ne
distribuiraju pod open source licencom te samim tim za neke od njih ne postoji
dozvola čitanja i modifikacije koda.)
• Linux radi i na “low-end”, jeftinim hardverskim platformama. Moguće je dići mrežni
server čak i na starom Intel 80386 sistemu sa 4MB RAM-a.
• Linux sistemi su moćni i vrlo brzi pošto oni u potpunosti iskorištavaju mogućnosti
hardverskih komponenti. Glavni cilj linuxa je efikasnost i zbog toga su mnoga
dizajnerska rješenja komercijalnih varijanti, kao npr. STREAMS I/O podsistem,
odbačeni od strane Linusa, zbog njihovog lošeg uticaja na performanse.
• Linux ima visok standard kvalitete izvornog koda. Linux sistemi su obično vrlo
stabilni, imaju vrlo nizak nivo grešaka i na održavanje sistema (maintenance) se
troši relativno malo vremena.
• Linux kernel može biti veoma malen i kompaktan. Na samo jednu 1,4MB floppy
disketu je moguće smjestiti kernel i kompletan root fajlsistem, uključujući
fundamentalne sistemske programe. Koliko je poznato, nijedna komercijalna
varijanta Unixa to ne može.
• Linux je veoma kompatibilan sa mnogim operativnim sistemima. On dozvoljava
montiranje fajlsistema svih verzija MS-DOS i MS Windows, SVR4, OS/2, Mac OS,
Solaris, SunOS, NeXTSTEP, mnogih BSD varijanti, itd. Linux može da operiše na
mnogim mrežnim nivoima, kao što su Ethernet (kao i Fast Ethernet i Gigabit
Ethernet), Fiber Distributed Data Interface (FDDI), High Performance Parallel
Interface (HIPPI), IBM-ov Token Ring, AT&T WaveLAN i DEC RoamAbout DS.
Koristeći odgovarajuće biblioteke, Linux sistemi su čak u mogćnosti da direktno
pokreću programe napisane za druge operativne sisteme. Npr. Linux može izvršavati
aplikacije napisane za MS-DOS, MS Windows, SVR3 i R4, 4.4BSD, SCO Unix, XENIX,
i druge na 80x86 platformi.
• Linux ima dobru podršku. Zvučalo to nevjerovatno ili ne, ali mnogo je lakše doći do
zakrpa (patch) i nadogradnji (upgrade) za Linux nego za bilo koji zatvoreni
operativni sistem. Odgovor na problem obično dođe u roku od nekoliko sati nakon
slanja poruke na neku od mailing lista ili news grupa. Takođe, driveri za Linux su
obično dostupni za par sedmica nakon što su novi hardverski produkti predstavljeni
na tržištu. Suprotno tome, proizvođači hardvera izdaju drivere za samo nekoliko
komercijalnih operativnih sistema, u stvari obično Microsoftove. A komercijalne
verzije unixa rade na vrlo ograničenom skupu hardverskih komponenti.

Sa instaliranom bazom od nekoliko desetina miliona korisnika, osobe koje su navikle na


neke karakteristike kao standardne na drugim operativnim sistemima očekuju isto i od
Linuxa. Shodno tome, potražnja za Linux developerima se takođe povećava.

Procesi

Svi operativni sistemi koriste jednu fundamentalnu apstrakciju: proces. Proces može biti
definisan kao instanca programa u izvršavanju. U tradicionalnim operativnim sistemima,
proces izvršava jednu sekvencu instrukcija u adresnom prostoru. Adresni prostor je skup
memorijskih adresa koje su dozvoljene procesu da se na njih poziva. Moderni operativni
sistemi dozvoljavaju procese sa višestrukim izvršnim tokovima (flows), što su u stvari
višestruke sekvence instrukcija u istom adresnom prostoru. Višekorisnički sistemi moraju
insistirati na izvršnom okruženju u kojem više procesa može biti konkurentno aktivno i

11
natjecati se za sistemske resurse, prvenstveno CPU. Za sisteme koji dozvoljavaju
konkurentne aktivne procese se kaže da su multiprogramming ili multiprocessing (Neki
multiprocessing operativni sistemi nisu ujedno i višekorisnički, npr. MS Windows 98). Važno
je razdvojiti programe od procesa. Više procesa može konkurentno izvršavati isti program,
dok isti proces može sekvencijalno izvršavati više programa.

Na jednoprocesorskim sistemima samo jedan proces može držati CPU1 i zbog toga samo
jedan izvršni tok može napredovati u tom vremenu, ili uopšteno, broj CPU-a je uvijek
ograničen i shodno tome samo nekoliko procesa može napredovati odjednom. Komponenta
operativnog sistema pod nazivom scheduler bira proces koji može napredovati. Neki
operativni sistemi dozvoljavaju samo nonpreemptive procese, što znači da je scheduler
pozvan samo kada proces dobrovoljno oslobodi CPU. Ali procesi višekorisničkih sistema
moraju biti preemptive. Operativni sistem prati koliko dugo svaki od procesa drži CPU i
periodično aktivira scheduler.
Linux je multiprocessing operativni sistem sa preemptive procesima. Čak i kad nema
korisnika prijavljenih na sistem i kad nema apliakcija koje se izvršavaju, nekoliko sistemskih
procesa monitoriše (prati) periferne uređaje. Ukratko, nekoliko procesa sluša na
sistemskim terminalima čekajući na korisničke logine. Kada korisnik unese korisničko ime,
slušajući proces pokreće program koji validira korisnički password. Ako je korisnikov
identitet prepoznat, proces kreira drugi proces koji pokreće shell u kojem se unose
komande. Kada je aktiviran grafički displej, jedan proces pokreće window manager, i svaki
prozor na displeju je obično pokrenut od strane zasebnog procesa. Kada korisnik kreira
grafički shell, jedan proces kreira grafički prozor a drugi proces pokreće shell u kojem
korisnik može unositi komande. Za svaku korisničku komandu, shell process kreira novi
proces koji izvršava dati program.
Unixoidni operativni sistemi su usvojili proces/kernel model. Svaki proces ima iluziju da je
on jedini proces na mašini i da ima ekskluzivan pristup servisima operativnog sistema. Kada
god proces napravi system call (zahtjev kernelu), hardver promijeni privilegovani mod iz
User Mode u Kernel Mode, i proces počinje izvršavanje procedure kernela sa striktno
ograničenom svrhom tj. ciljem. Na ovaj način, operativni sistem djeluje u izvršnom
kontekstu procesa sa namjerom da udovolji zahtjevu. Kada je zahtjev potpuno zadovoljen,
procedura kernela naređuje hardveru da se vrati u User Mode i proces nastavlja svoje
izvršavanje od instrukcije koja slijedi nakon sistemskog zahtjeva.

Arhitektura kernela

Kao što je rečeno ranije, većina Unix kernela je monolitna: svaki nivo kernela je integrisan u
cijeli kernel program i radi u kernel modu u ime trenutnog procesa. U kontrastu,
microkernel operativni sistemi zahtijevaju vrlo mali skup funkcija od kernela, generalno
uključujući nekoliko primitiva za sinhronizaciju, jednostavan scheduler, i mehanizam za
komunikaciju među procesima. Nekoliko sistemskih procesa koji se izvršavaju na vrhu
mikrokernela implmentiraju druge funkcije u nivou operativnog sistema kao što je alokacija
memorije, driveri, rukovaoci sistemskih poziva itd. Premda je akdemsko istraživanje
operativnih sistema okrenuto ka mikrokernel arhitekturi, takvi operativni sistemi su
generalno sporiji od monolitnih, pošto skplicitni prolaz poruka između različitih nivoa
operativnog sistema ima svoju cijenu. Bilo kako bilo, mikrokernel operativni sistemi imaju
svoje teoretske prednosti nad monolitnim. Mikrokerneli prisiljavaju sistemske programere
da se prilagode modularnom pristupu, s obzirom da je svaki nivo (layer) operativnog
sistema relativno nezavisan program koji mora stupiti u interakciju sa ostalim nivoima kroz
dobro definisane i čiste softverske interfejse. Postojeći mikrokernel operativni sistem može
vrlo lako biti portan (prebačen) na drugu arhitekturu, s obzirom da su sve hardverski
zavisne komponente generalno enkapsulirane u mikrikernel kod. Na kraju, mikrokernel
operativni sistemi bolje koriste memoriju sa slučajnim pristupom (RAM) od monolitnih pošto
sistemski procesi koji ne daju tražene funkcionalnosti mogu biti zamjenjeni ili uništeni. Da

1
Ovo ne vrijedi za neke novije procesore, npr. Intel P4 sa Hyper-Threading tehnologijom.

12
bi dostigao mnoge teoretske prednosti mikrokernela bez plaćanja cijene u performansama,
kernel linuxa nudi module. Modul je objektni fajl čiji kod može biti uvezan (ili odbačen) s
kernelom u vrijeme izvršavanja (runtime). Objektni kod obično sadrži skup funkcija koje
implementiraju fajlsistem, drajver ili neku drugu odliku na višem nivou (upper layer)
kernela. Modul, za razliku od eksternih nivoa mikrokernel operativnih sistema, ne radi kao
specifičan proces. Umjesto toga, on se izvršava u kernel modu u ime trenutnog procesa,
kao bilo koja druga statički linkana funkcija kernela. Glavne prednosti korištenja modula
uključuju:

• Modularan pristup: Pošto bilo koji modul može biti učitan ili obrisan u vrijeme dok se
kernel izvršava (runtime), sistemski programeri moraju predstaviti dobro definisane
softverske interfejse za pristup strukturama podataka kojima moduli rukuju. To čini
pisanje novih modula laganim.
• Platformska nezavisnost: Čak i ako može zavisiti o nekim specifičnim hardverskim
osobinama, modul ne zavisi od fiksne hardverske platforme. Npr. modul disk
drajvera koji je baziran na SCSI standardu radi dobro i na IBM kompatibilnom PC-u
baš kao što radi i na Hewlett-Packardovoj Alpha-i.
• Ekonomična upotreba glavne memorije: Modul može biti uvezan s kernelom koji se
izvršava kada je njegova funkcionalnost potrebna i obrisan (uklonjen) kada prestane
biti potreban. Ovaj mehanizam može biti napravljen transparentno za korisnika pošto
samo učitavanje i brisanje modula može biti automatski izvršeno od strane kernela.
• Nema negativnih posljedica po performanse sistema: Jednom slinkan (uvezan),
objektni kod modula je ekvivalentan objektnom kodu statički linkanog kernela. Uz to
nema posebnih komunikacija nakon što je modul slinkan. Doduše, mali gubitak
performansi se dešava kod samog učitavanja odnosno brisanja modula ali on se
može uporediti sa gubitkom performansi kreiranja i brisanja sistemskog procesa kod
mikrokernel operativnih sistema. Ali to je sve, dok je gubitak performansi zbog
zahtjeva za stalnom komunikaciom među različitim nivoima kod mikrokernela stalan.

UNIX FAJLSISTEM
Dizajn unix baziranog operativnog sistema je fokusiran na njegov fajlsistem koji posjeduje
nekoliko interesantnih karakteristika.

Fajl

Na unixoidnom sistemu fajl predstavlja skladište neobrađenih ili obrađenih podataka koji su
u njemu smješteni kao niz bajtova (isti se još nazivaju i karakterima). Ti podaci su kodirani
u ASCII kodu. Fajl može da bude smješten na različite medije. Takođe, on može biti stalni
fajl (npr. na disku) ali i privremeni fajl u memoriji ili pak fajl koji prikazuje ili prihvata
podatke (npr. s terminala). Unix prepoznaje nekoliko tipova fajlova i to:
• Regularni fajlovi
• Direktorijumski fajlovi
• Simbolički i hard linkovi
• Block-orjentisani device fajlovi
• Character-orjentisani device fajlovi
• Pipeovi i imenovani (named) pipeovi (takođe zvani i FIFO)
• Socketi

Regularni fajlovi

Regularni fajlovi su po svojoj prirodi stalni fajlovi koji sadrže takve podatke kao što je npr.
izvorni kod, primljeni e-mail, ovaj tekst itd. Oni, skoro uvijek, sadrže informacije. Podaci u

13
ovim fajlovima su organizovani u slogove. A slogovi su razdvojeni specijalnim karakterom
za novi red (newline character), koji Unix koristi da ustanovi gdje završava jedan a počinje
drugi slog.

Direktorijumski fajlovi

Direktorijumski fajl je poseban fajl u kome se nalaze informacije o različitim fajlovima


smještenim u direktorijum. To su informacije o veličinama fajlova i vremenima kreiranja i
modifikacije. Unix tretira direktorijum kao fajl, ali on ima neke posebne karakteristike. Npr.
svaki direktorijum ima najmanje dva imena.

Character-orjentisani device fajlovi

Specijalni karakter fajlovi se koriste za nebaferovan I/O ka i od uređaja. Oni obavljaju


ulazno-izlazne operacije karakter po karakter. Primjeri ovih fajlova su tastatura ili monitor.

Block-orjentisani device fajlovi

Block orjentisani device fajlovi se koriste kada se podaci prenose u paketima određene
dužine. Oni koriste baferski (buffer) mehanizam za keširanje čime se povećava efikasnost
prenosa podataka, zato što se u memoriju smiješta kopija podataka. Primjer ovih specijalnih
fajlova je hard disk.

Socket

Socket je aplikativni programski interfejs (API) koji se koristi za komunikaciju između dva
host računara. Drugim riječima, on izvodi mrežne I/O operacije. U apstraktnom smislu,
socket je sličan fajlovima ali on nije pravi fajl.

Pipe i named pipe

Pipe je mehanizam međuprocesne komunikacije. On je jednosmijerni tok podataka između


procesa: sve podatke upisane od strane nekog procesa u pipe kernel može preusmjeriti
drugom procesu, koji ih može čitati. Mana običnog pipea je to što je nemoguće pristupiti već
kreiranom pipeu.

Tu na scenu stupa named pipe (ili FIFO). To je fajl koji je kreiran da obavlja međuprocesnu
komunikaciju i za razliku od običnog pipea njegovo ime je upisano u stablo fajlsistema te
mu je moguće pristupiti (npr. koristi se u klijent/server komunikaciji). On služi za razmjenu
podataka između dva programa. Proces slanja upisuje podatke u named pipe, a proces
primanja čita podatke iz njega. To je privremeni fajl i postoji onoliko dugo koliko procesi
komuniciraju. Podaci iz imenovanog pipea se obrađuju na FIFO (first in, first out) principu.

Simbolički i hard linkovi

Linkovi kreiraju pointere na stvarne fajlove, pri čemu se ne dupliraju sadržaji fajlova.
Drugim riječima, link predstavlja način da se istom fajlu da drugo ime. Kod hard linka,
originalno i linkovano ime pokazuju na istu fizičku adresu i apsolutno su identična. Hard

14
linkovi imaju dva ograničenja: direktorijum ne može imati hard link i hard link ne može
prelaziti granice fajlsistema. Moguće je obrisati originalno ime fajla a da se pri tome ne briše
linkovano ime. Samim tim se ne briše fajl, nego samo upis u direktorijum koji se odnosi na
originalni fajl i broj linkova se smanjuje za jedan.
Kod simboličkih (soft ili symlink) linkova postoje dva fajla, jedan je originalni fajl, a drugi
linkovano ime fajla koje sadrži oiginalno ime fajla. Glavno ograničejne symlinkova je to da
se može obrisati originalni fajl što za posljedicu daje to da ostaje njegovo linkovano ime a
podataka više nema. Ali, simbolički linkovi mogu da prelaze granice fajlsistema, tj.
symlinkom se može pokazivati na neki fajl koji se fizički nalazi u drugom fajlsistemu.
Takođe, simbolički linkovi mogu da pokazuju i na direktorije.

Organizacija fajlsistema

Pošto je linux sam po sebi veoma konfigurabilan, takav je slučaj i sa organizacijom


njegovog fajlsistema. Ali, da bi se neke stvari koliko-toliko unificirale stvoren je standard.
On je poznat pod nazivom Filesystem Hierarchy Standard ili skraćeno FHS. Njegova svrha
nije da nametne pravila nego da da odrednice na osnovu kojih bi se vršila organizacija
direktorija i fajlova unutar fajlsistema. Naravno, to nikog ne sprječava da stvari organizuje
po svojoj volji.

Zbog obima teme, ovdje ćemo samo pomenuti neke osnovne stvari. Sam fajlsistem se
vizuelno može zamisliti kao obrnuto stablo na čijem se vrhu nalazi korijen (root) koji se
označava kosom crtom (slash) / i koji se prema dole grana na direktorije i fajlove. FHS
standard razlikuje nekoliko vrsta direktorija: dijeljene (shareable) i nedijeljene
(unshareable) te statične (static) i promjenljive (variable). Ovakva podjela je usvojena iz
više razloga.

Dijeljeni i nedijeljeni

U mrežnom okruženju postoji dobra stvar da podaci mogu biti dijeljeni između različitih
hostova (npr. računara) da bi se uštedio prostor koji podaci zauzimaju i olakšalo održavanje
istih.
U mrežnom okruženju pojedini fajlovi sadrže informacije spcifične samo za pojedine hostove
te takvi fajlsistemi ne mogu biti dijeljeni (osim u specijalnim slučajevima).
Istorijske implementacije unixoidnih fajlsistema su držale neke podatke koji se mogu dijeliti
i one koji ne mogu u istoj hijerarhiji što je otežavalo dijeljenje većih dijelova fajlsistema.

Dijeljeni dijelovi fajlsistema mogu biti iskorišteni da bi podržali npr. sljedeće:


1. /usr particija (ili dijelovi /usr particije) montirani u read-only modu (može se samo čitati
s nje) kroz mrežu (koristeći mrežni fajlsistem - NFS).
2. /usr particija (ili njeni dijelovi) montirani sa read-only medija (npr. CD-ROM) i dijeljeni
kroz mrežu.

Statični i promjenljivi

Pošto / (root) particija sadrži i promjenljive i statične podatke, ona mora biti montirana u
read/write modu (može se i čitati i pisati po njoj),
Pošto tradicionalni /usr sadrži i promjenljive i statičke podatke a mi bi željeli da ga
montiramo u read-only modu (vidjeti primjere 1. i 2. iz prethodnog podnaslova),
neophodno je pružiti metod da se /usr može montirati kao read only. To je urađeno
kreiranjem /var hijerarhije koja je montirana u read/write modu (ili je dio neke druge
read/write particije, kao što je to npr. /) i koja je preuzela od tradicionalne funkcionalnosti
/usr particije.

15
Sljedeća tabela prikazuje primjer korištenja ove dvije pomenute podjele koji je po FHS
standardu:
Djeljivi Nedjeljivi

Statični /usr /etc


/opt /boot

Promjenljivi /var/mail /var/run


/var/spool/news /var/lock

Root fajlsistem po FHS standardu

Da bi fajlsistem zadovoljio FHS standard neki direktoriji (i symlinkovi) su zahtijevani a neki


su opcionalni. Zbog ograničenog prostora, pomenućemo samo dijelove root fajlsistema.
Da bi bio u skladu s FHS standardom, root fajlsistem mora sadržavati sljedeće direktorije:

/ root direktorij
|-- bin Neophodne komande
|-- boot Statični fajlovi boot loadera
|-- dev Device fajlovi
|-- etc Sistemske konfiguracije specifične za host
|-- lib Neophodne dijeljene biblioteke i moduli kernela
|-- mnt Tačka montirajna za privremeno montiranje fajlsistema
|-- opt Paketi dodatnog aplikativnog softvera
|-- sbin Neophodne sistemske komande
|-- tmp Privremeni fajlovi
|-- usr Sekundarna hijerarhija
|-- var Promjenljivi podaci

Root fajlsistem (naravno, u skladu s FHS) opcionalno može sadržavati i2:

/ root direktorij
|-- home Korisnički home direktoriji (opcionalno)
|-- lib<qual> Alternativni format neophodnih dijeljenih biblioteka (opcionalno)
|-- root Home direktorij root korisnika (opcionalno)

2
Prema 2.3 beta3 verziji FHS standarda u samom root direktoriju se mogu nalaziti i
direktoriji /srv (za servise koji se hostiraju na tom sistemu) i /media za montiranje medija
kao što su cdrom, floppy itd.

16
ZAKLJUČAK

Od samog svog početka pa do danas, Linux je u stalnoj ekspanziji te se sa sigurnošću može


reći da je on ne samo operativni sistem sadašnjosti nego i budućnosti. To potvrđuju mnoge
činjenice. On pokriva širok spektar područja u kojima se upotrebljava. Od složenih sistema
poput clustera, mainframe sistema, mrežnih servera, grafičkih radnih stanica, embedded
uređaja pa do običnog kućnog desktopa odakle je svojevremeno i krenuo. Jedna od najvećih
mana linuxa je bila njegova negostoljubivost prema početnicima. Kažem bila, jer se iz dana
u dan razne distribucije između ostalog sve više okreću toj kategoriji korisnika. Samo za
primjer nekada je za samo instaliranje linuxa bilo potrebno imati poprilično tehničkog
predznanja a danas je to postala trivijalna stvar koja se rješava u 2-3 klika mišom. Sve
veća podrška od strane ključnih kompanija u IT industriji kao što su IBM, Novell, Sun,
Oracle itd. dodatno potvrđuje tvrdnju s početka ovog pasusa. Zatim, vlade nekih zemalja,
poput Brazila, favorizuju ne samo Linux, nego GNU softver u cijelosti i insistiraju da se u
njihovim institucijama koristi samo slobodan softver što im donosi ogromnu uštedu u
budžetu samo po pitanju licenci za softver. Takođe mnoge ustanove za edukaciju i velike
(enterprise) kompanije sve više prelaze ili razmatraju prelazak sa zatvorenih sistema na
slobodne i otvorene.

17
LITERATURA

Knjige:

1. Ime knjige Autor(i) Godina izdanja

Understanding the
2. Daniel P. Bovet, Marco Cesati 2003
Linux Kernel
UNIX do kraja
Robin Burk, David B. Horvath i
3. (za sistem 1999
drugi
administratora)
4. Running Linux Matt Welsh i Lar Kaufman 1995

5.

Web:

Linux Kernel (http://www.kernel.org/)


1.
Aktuelne verzije linux kernela ( http://www.kernel.org/kdist/finger_banner )

GNU Software (http://www.gnu.org)


2.
Linux i GNU Projekat ( http://www.gnu.org/gnu/linux-and-gnu.sh.html )
GNU General Public License ( http://www.gnu.org/licenses/gpl.html )

The Linux Documentation Project (http://www.tldp.org/)


3.

Filesystem Hierarchy Standard (http://www.pathname.com/fhs/)


4. FHS 2.2 ( http://www.pathname.com/fhs/2.2/ )
Beta verzije FHS 2.3 ( http://samba.org/~cyeoh/ )

18
19

You might also like