Uvod u operativni sistem linux: skripta
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)

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/

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)
Ovaj materijal je namenjen za učenje i pripremu, ne za predaju.
Slični dokumenti