Istorijat

UNIX je operativni sistem opšte namene 

(i serveri i radne stanice) koji je svoj životni put 

započeo 1969. godine u Bell Labs. Grupa AT&T programera koja je najodgovornija za razvoj 
UNIX-a (tada se zvao UNICS, ili Uniplexed Operating and Computing System) su Ken 
Thompson, Dennis Ritchie, Brian Kernighan, Douglas McIlroy, i Joe Ossanna. Programski jezik 
C je konstruisan da bi se napisao UNIX.

Danas je UNIX zajednički naziv za široku familiju operativnih sistema

 koji zadovoljavaju 

propisane standarde. Neka od UNIX izdanja su komercijalna, kao IBM AIX i HP-UX, dok neka 
izdanja karakteriše otvoreni kod, kao Linux i Free-BSD. Na slici je prikazan uprošćen dijagram 
razvoja UNIX-olikih sistema.Razvoj UNIX-olikih sistema.

*Alternativa kvalitetnim, ali skupim UNIX sistemima je Linux, koji spaja odličnu pouzdanost i 
performanse sa besplatnim i potpuno dostupnim izvornim kodom. Pored tradicionalnog CLI 
(Command Line Interface) pristupa, danas je za Linux dostupno više grafičkih okruženja, kao što 
su GNOME, KDE, XFCE, itd. Linux 2009. godine pokreće više od polovine svih servera na 
Internetu, a polako se probija i na desktop tržište. Ovaj kurs se bazira upravo na Linuxu.

*

Verzije se među sobom razlikuju manje ili više

. Većina verzija je kompatibilna sa jednom od 

dve verzije SVR4 (System V) i BSD.

*

Pokušaji standardizacije

: najuspešniji - standard 1003 (IEEE 1003) – poznat kao POSIX 

(Portable Operating Systems Interface) standard. POSIX je u jednom trenutku spojen sa Single 
Unix Specification (SUS) standardom, ali je zadržan isti naziv.

*

1984. Richard Stallman je otpočeo sa GNU

 (Gnu’s Not Unix) projektom sa ciljem kreiranja 

operativnog sistema koji liči na Unix, a može biti slobono distribuiran. Iz GNU projekta potekla 
je gcc kompajler kolekcija, bash shell itd.

*

1991. Linus Torvalds, Finski diplomac, je započeo rad na Unix-like sistemu - Linux

. Linux 

je samo kernel(jezgro OS-a), dok su file sistem, shell itd. kreacije drugih (često GNU 
organizacije). Licenca pod kojom se Linux distribuira je General Public License (GPL). Zahtev 
ove licence je da sve izmene koje se prave na nekom GPL kodu budu dostupne zajednici.

*Od 1994. BSD Unix se distribuira pod BSD licencom

 koja dozvoljava slobodne izmene bez 

zahteva da izvorni kod bude dostupan drugima. Nejgove poznate verzije NetBSD, FreeBSD i 
OpenBSD projects. On čini i osnovu Darwin tehnologije (na njoj je baziran Mac OS X).

Distribucija

*Linux distribucija

 je skup biblioteka i raznorodnih softverskih alata izgrađenih oko Linux 

kernela. Većina distribucija sastoji se iz tzv. paketa, koji pored fajlova sadrže i međuzavisnosti sa 
drugim paketima. Većina tog softvera je otvorenog koda, pod GNU ili BSD licencom. Moderne 
distribucije poseduju i preko 30000 paketa! Neke od Linux distribucija su:

Komercijalne

 - Red Hat Enterprise Linux (RHEL), Suse Linux Enterprise Server 

(SLES).

Sa komercijalnom podrškom

 - Fedora (Red Hat), openSUSE (Novell), Ubuntu 

(Canonical).

Razvijene od strane zajednice

 - Debian, Gentoo, Arch, Slackware.

*Osnovne komponente svake

 distribucije su:

User interface

 - počeo kao command-line interface (CLI) sistem; graphical user interface 

(GUI) – npr. Mac OS X Aqua, zatim Linux KDE i GNOME interfejsi

kernel

 - samo jezgro OS-a (višekorisnički, multitasking, monolitni)

shell

 - command line interpreter obezbeđuje komunikaciju korsinika sa OS-om. Neki od 

najrasprostranjenijih su:

sh (Bourne shell)

C shell (csh); TCSH (TENEX C shell)

Korn shell (ksh); PDKSH (Public Domain Korn shell)

background image

Linux moduli.

Kernel je modularizovan

 (modularna monolitna arhitektura), odnosno uvedeni su izmenljivi 

drajverski moduli (loadable kernel modules), a standardizovan je i konfiguracioni interfejs.

Moduli kernela

 su delovi kernelskog koda koji može da se prevede, napuni u memoriju ili 

izbaci iz memorije nezavisno od ostatka kernela. Kernelski moduli implementiraju drajvere za 
hardverske uređaje, novi fajl sistem, mrežne protokole, itd. Moduli omogućavaju raznim 
programerima da napišu i distribuiraju drajvere koji ne moraju da prođu GPL licencu 
(karakterističan primer su video drajveri). Potrebni drajveri pune se u memoriju kao moduli 
kernela. Module Linux kernela čine tri komponente:

*

upravljanje modulom

 - omogućava punjenje modula u kernelsku memoriju i 

komunikaciju modula sa ostatkom kernela, proveru da li je modul u memoriji i da li se 
koristi i izbacivanje modula iz memorije (pod uslovom da se modul ne koristi),

*registracija drajvera

 - omogućava modulu da objavi ostatku kernela da je novi drajver 

u memoriji i da je raspoloživ za korišćenje. Kernel održava dinamičku tabelu drajvera 
koji se pomoću posebnog seta programa mogu napuniti ili izbaciti iz memorije u svakom 
trenutku,

*rezolucija konflikata

 - mehanizam koji služi da spreči hardverske konflikte tako što 

omogućava drajveru da rezerviše hardverske resurse (IRQ, DMA1, ports) i time spreči 
druge drajvere ili autoprobe funkciju da ih koriste.

Komponente kernela

Komponente kernela

 su sledeće:

*upravljanje procesima

 - kreira procese i omogućava višeprocesni rad (multitasking)

*upravljanje memorijom

 - kontroliše dodeljivanje memorije i swap prostora procesima, 

kernelskim komponentama kao i bafersko keširanje

*upravljanje fajl sistemima 

(VFS, Virtual File System)

*apstrakcija mrežnih servisa

*podrška za hardverske uređaje

, podrška za različite sisteme datoteka, podrška za TCP/IP…

Korisni linkovi

https://stallman.org/

http://www.fsf.org/

https://www.linux.org/

http://distrowatch.com/

background image

Znak $ je odzivni znak komandnog interpretera (shell prompt). Komanda može 
biti 

interna   (ugrađena   u   shell)   ili   eksterna   (realizovana   kao   poseban 

program koji se nalazi u sistemskoj putanji)

. Opcije i argumenti su parametri 

koje   shell   prenosi   komandi,   pri   čemu   su   argumenti   najčešće   obavezni   i 
predstavljaju ime nekog fajla, direktorijuma, korisnika ili, na primer, identifikator 
procesa.

Ime komande, opcije i argumenti razdvajaju se razmakom. Shell interpretira 
razmak kao graničnik i na osnovu toga razdvaja argumente i opcije od imena 
komande.   U   jednu   komandnu   liniju   može   se   uneti 

najviše   256   karaktera

Imena većine UNIX komandi po pravilu se formiraju od malih slova. Više UNIX 
komandi mogu se navesti u istoj komandnoj liniji ukoliko su razdvojene znakom 
tačka-zarez.

Opcije su osetljive na velika i mala slova (case-sensitive) i mogu se navesti na dva 
načina:

-x znak minus (-) praćen jednim slovom,

–option dva znaka minus (–) praćena punim imenom opcije.

echo

Jedna   od   često   koričćenih   komandi   je 

echo

 koja   prikazuje   tekst   ili   vrednost 

promenljive na ekranu. Sintaksa komande echo je:

echo

 

[

opcije] 

[

string, promenljive...]

Opcije

:

-n ova opcija ne prebacuje kursor u novi red,nakon izvršenja echo komande

-e omogućava interpretaciju sledećih karaktera u kombinaciji sa obrnutom 
kosom crtom:

o

a upozorenje (alert bell)

o

b povratak unazad (backspace)

o

c ne prelaziti u novi red (suppress trailing new line)

o

 novi red (new line)

o

r povratak na početak reda (carriage return)

Želiš da pročitaš svih 107 strana?

Prijavi se i preuzmi ceo dokument.

Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.

Slični dokumenti