2. Istorijat
UNIX koreni
• Unix nastaje sredinom `60-tih godina
• AT&T i Berkeley prave svoje distribucije; nastaje problem sa licencama
• GNU nastaje 1983
• Minix se koristi u nastavi, ali nije slobodan za distribuciju
• 25.08.1991. - početak Linuxa
3. Linux je OS
Ili nije
• GNU/Linux
• Kernel
• Interfejs između procesa i hardvera
• Menadžment procesa
• Menadžment resursa
• I/O menadžment
• Distribucije
4. Arhitektura
• Dva “režima” rada: user i kernel
• Sve je korisnička aplikacija (bash, xwin…)
• Nema “specijalnih” aplikacija u user space-u
• glibc je standardna run time biblioteka
• KISS princip
• Do one thing and do it well
5. Interakcija sa OS-om
Terminal
• Služi za ulaz/izlaz
• Tekstualni ili grafički
• Uvek postoji neki “shell” za interakciju sa korisnikom
• Tekstualni - sh, bash, zsh
• Grafički - Gnome, KDE, Cinnamon
• Terminal može biti lokalni i udaljeni - suštinski rade na isti način!
6. Terminal server
Tekstualni
• Aplikacija (servis) namenjen da komunicira sa terminalima
• Prihvata ulaz sa terminala, izvršava komandu, preuzima izlaz komande i šalje
terminalu
• Ulaz i izlaz se vrši kroz “kanale”
• Standardni, predefinisani kanali: stdin, stdout, stderr
• Kanali mogu da se preusmeravaju ili šalju kroz “pipe”-ove
• Primer
7. Terminalske komande
Bash
• Svaki terminal ima svoj “shell”. Shell omogućava naprednu interakciju:
• Editovanje komandi
• Kreiranje skripti
• Promenljive okruženja
• Podrazumevani i najčešći shell je “bash”; uvek postoji sh, postoje i ksh i zsh.
• Komande mogu da budu interne ili eksterne
• ls, rm - listanje, brisanje fajlova
• mkdir, cd, rmdir, pwd - kreiranje, promena, brisanje, prikaz trenutnog direktorijuma
• cat, more, less - prikaz sadržine fajla
• grep - filtriranje ulaza
• head, tail - prikaz početka ili kraja fajla
• https://cheatography.com/davechild/cheat-sheets/linux-command-line/
8. Terminalski pristup
• Terminal se koristi za izvršavanje lokalnih komandi, ali i komandi na
udaljenom računaru.
• Udaljeni računar ne mora da ima ulazne uređaje, npr. VM na AWS-u.
• Većina internet servera sadrže samo minimum potrebnih servisa.
• SSH - Secure Shell - omogućava kriptovanu komunikaciju sa serverima
• Javni i privatni ključ (public/private key)
• Asimetrična kriptografija
9. Terminal server
Grafički
• Suštinski se ne razlikuje od tekstualnog terminala.
• Ulaz su miš I tastatura, izlaz je neka grafika.
• X server i client su terminal server i terminal. Server i
terminal barataju sa grafičkim primitivama, koje su
ekvivalent karakterima kod tekstualnog terminala.
• Shell je window manager npr. Gnome, Cinnamon, KDE…
• Grafičke performanse mogu da zavise od načina primene.
10. • Postoji više tipova file system-a, svaki sa svojim prednostima i manama, npr.
ext4 , brtfs, zfs…
• Predstavlja organizaciju datoteka na nekom medijumu (disk, memorija,
traka…).
• Šta je datoteka?
Sistem datoteka (file system)
Koncept
• Sve.
• Unix apstrakuje datoteku kao podatke koji mogu da se čitaju i zapisuju, bez
pretpostavki odakle. Uređaji su datoteke. Procesi su datoteke. CPU je datoteka.
• Drajver za uređaj je softver koji omogućava da se čita i piše na neki uređaj.
12. • Sadrži fajlove korisnika koji je ulogovan. Sve što je u $HOME direktorijumu je
privatno za tog korisnika.
• Fajlovi koji počinju sa “.” su nevidljivi, osim ako se eksplicitno ne zahteva
njihov prikaz.
• Simbol ~ je sinonim za $HOME direktorijum.
• Prava pristupa:
drwxr-xr-x+ 4 markonikolic staff 128 Apr 21 20:07 Public = 755
-rwxr-xr-x 1 markonikolic staff 24 Apr 23 01:07 script.sh = 755
-rw-r--r-- 1 markonikolic staff 42 Apr 23 01:07 test.txt = 644
• chown, chmod - promena vlasništva i prava
Sistem datoteka (file system)
Home direktorijum
13. • Hard i soft (simbolički) linkovi
ln -s target link_name
• Montiranje diskova. Nema odvojenih diskova (C:, D:…), već se sve nalazi u
jednom fajl sistemu.
mount [-t type] device dir
mkdir ~/usb
mount /dev/sdb ~/usb
mkdir ~/dvd
mount image.iso ~/dvd -o loop
• df -h — prikazuje se zauzetost diskova i preostali prostor na njima
Sistem datoteka (file system)
14. Terminalski pristup
Secure Shell
• Standard za pristup udaljenim računarima preko terminala (naslednik telnet-a,
rlogin-a…)
• Koristi logovanje korišćenjem un/pw ili daleko bolje, javnim/privatnim ključem.
• Javni ključ se postavi na server(e) u $HOME/.ssh/authorized_keys
• Privatni ključ se nalazi lokalno, u $HOME/.ssh direktorijumu
ssh user@server -i .ssh/private_key
• Moguće je direktno izvršiti komande na udaljenom računaru
ssh user@server ls -l
15. • Aplikacije se retko instaliraju direktnim downloadom, već se koriste
repozitorijumi.
• Menadžer aplikacija se razlikuje u distribucijama, pa postoje apt-get, yum,
pacman…. Princip rada je sličan.
• Izbegavaju se problemi sa zavisnošću biblioteka, nedostajući frameworci itd…
• Update sistema je veoma brz.
Instalacija aplikacija
Primer
16. • Aplikacije se retko instaliraju direktnim downloadom, već se koriste
repozitorijumi.
• Menadžer aplikacija se razlikuje u distribucijama, pa postoje apt-get, yum,
pacman…. Princip rada je sličan.
• Izbegavaju se problemi sa zavisnošću biblioteka, nedostajući frameworci itd…
sudo apt update
sudo apt install appxyz
sudo apt upgrade
sudo apt distupgrade
• Update sistema je veoma brz.
Instalacija aplikacija
Primer