субота, 29. јануар 2011.

Hierarhija fajlsistema

Većina korisnika zna šta je to GNU/Linux, kako je RMS pokrenuo GNU projekat i kako je Linus napravio Linux kernel. Većina zna i šta su to distribucije, i ako koriste neku distribuciju onda znaju i zašto koriste baš tu distribuciju. Medjutim malo ljudi zna šta predstavlja ona "naopaka" organizacija direktorijuma na primarnoj particiji. E, pa tekst koji sledi služi da da delimičan uvid u to...

Fajlsistem?

Fajlsistem (u slobodnom prevodu sistem podataka) je metod po kome se organizuju i čuvaju podaci, ovi podaci se organizuju u posebne baze podataka kako bi se njima lakše manipulisalo i kako bi operativni sistem (u daljem tekstu OS) računara lakše radio sa njima. Hijerarhiju fajl sistema je najlakše opisati kao drvo. Kada se formatira particija za upis podataka formiran je koren, zatim se pri instalaciji operativnog sistema upisuju osnovni direktorijumi, koji bi činili stablo drveta, kao i poddirektorijumi i datoteke koje čine grane i lišće na drvetu. Možda se baš iz ovog razloga osnovni direktorijum u GNU/linux-u naziva i root (korenski) direktorijum.
Kada se zaviri u korenski direktorijum bilo kojeg GNU/Linux Operativnog sistema, vidi se na prvi pogled poprilično komplikovana struktura direktorijuma. U korenskom direktorijumu (iz terminala se može videti komandom ls / ) nalazi se dosta osnovnih direktorijuma, tu su: /bin, /boot, /dev, /etc, /home, /lib, /mnt, /proc, /root, /sbin, /tmp, /usr, /var... Oni koji su na GNU/Linux prešli sa Windows OS-a, sigurno smatraju ovakvu strukturu suvišnom i nepotrebnom (znam da ja jesam), medjutim kada se jednom razume namena svakog od ovih osnovnih direktorijuma, shvata se da je ovakva struktura mnogo logičnija i prirodnija.

Korenski direktorijum

Korenski direktorijum (ne treba ga mešati sa /root direktorijumom) predstavlja formatiranu particiju, spremnu za upis osnovnih direktorijuma GNU/Linux OS-a. Označava se znakom /, u engleskom jeziku "slash" u srpskom jeziku jednostavno kosa crta. Ono što je na Windows-u C: particija, to je u GNU/Linux-u korenski direktorijum. On uglavnom sadrži sve osnovne direktorijume (sa njihovim podacima) GNU/Linux OS-a, ukoliko se ne formiraju posebne particije za pojedine osnovne direktorijume o čemu će biti više reči dalje u tekstu.

/bin direktorijum

GNU/Linux je kao što znamo osetljiv na razliku izmedju velikih i malih slova. Za njega nije isto kada se napiše /Bin, /bin ili /BIN, čak šta više sva tri navedena direktorijuma mogu se nalaziti na istom mestu jer za GNU/Linux oni predstavljaju tri različita direktorijuma, što i jesu. Takodje, GNU/Linux podrazumevano slaže podatke po alfabetu, pa je tako /bin direktorijum uvek prvi na listi (iako je /boot direktorijum verovatno važniji). /bin direktorijum sadrži nekoliko korisnih komandi koje mogu da koriste i superkorisnik (root) i ostali korisnici OS-a. Ovaj direktorijum obično sadrži ljusku (shell), u zavisnosti od konfiguracije OS-a to mogu biti BaSH, CSH, Korn itd. kao i često korišćene komande pwd, ls, cp, mv, rm, cat, dd itd. /bin direktorijum se mora nalaziti na korenskom direktorijumu. Razlog za ovo leži u tome što ove komande moraju uvek biti dostupne po podizanju OS-a, tako da se sa njima mogu popraviti ostale particije čak i ako se nema pristup ostalim osnovnim direktorijumima. Takodje on može sadržati i neke programe koji su potrebni skriptama za podizanje OS-a.

/boot direktorijum

Sadrži sve što je potrebno za proces podizanja OS-a računara, osim konfiguracionih datoteka (možda najbolji primer za ovo su konfiguracione datoteke butloadera GRUB). Ovaj direktorijum sadrži butloader (Grub, lilo...), početni ramdisk (virtuelna particija u RAM memoriji, koja služi za učitavanje početnih podataka za podizanje OS-a pre nego što se montira stvarni korenski direktorijum, naziva se initrd ili initramfs), Linux kernel (nazvan vmlinuz), a može sadržati i MBR, sistemske mape kao i druge datoteke potrebne za podizanje OS-a.

/dev direktorijum

Je lokacija na kojoj se nalaze hardverske datoteke. Ovo je poseban direktorijum jer bolje prikazuje jedan važan aspekt GNU/Linux-a a to je da je sve datoteka. Ukoliko sa baci pogled na direktorijum /dev videće se da se u njemu nalaze datoteke kao što su: cpu, mem, hda1 (ili sda1), cdro, lp0, ttyS0 itd. Svaka od ovih datoteka predstavlja jedan hardverski deo računara /dev/cpu naravno predstavlja Centralnu Procesorsku Jedinicu, /dev/cdrom predstavlja optički uredjaj, /dev/lp0 predstavlja štampač itd. Ovo može na prvi mah izgledati čudno ali ako se uporede karakteristike datoteka sa karakteristikama hardverskih delova računara zapaziće se mogućnost da je moguće i sa jednih i drugih čitati i pisati podatke. Uzmimo /dev/dsp na primer, koji predstavlja zvučnik računara (ne zvučnike povezane na zvučnu karticu već zvučnik preko koga bios saopštava greške). Ukoliko u terminal ukucamo komandu $ cat /boot/vmlinuz* > /dev/dsp začuće se zvuk, to je zvuk Linux kernela (ovo ne radi na Ubuntu-u 10.10, pretpostavljam zato što OSS nije uključen u kernel).

/etc direktorijum

Sadrži konfiguracione datoteke GNU/Linux-a, ovo je nervni sistem OS-a. Većina datoteka, koje se nalaze u /etc direktorijumu i njegovim poddirektorijumima, su tekstualne datoteke i mogu se ručno izmeniti. Konfiguraciona datoteka je statična i ne može biti izvršna, a služi da kontroliše odredjenu operaciju ili program. Upravo iz ovog razloga pojedini administratori redovno prave rezervne kopije ovog direktorijuma, čije vraćanje skraćuje posao oko konfigurisanja OS-a nakon reinstalacije. U ovom direktorijumu nalaze se poddirektorijumi kao što su /etc/X11 koji sadrži sve konfiguracione datoteke X servera, zatim /etc/apt koji sadrži sve konfiguracione datoteke apt-get menadžera za instalaciju paketa itd.

/home direktorijum

GNU/Linux je višekorisničko okruženje, pa je tako svakom korisniku računara dodeljen po jedan direktorijum koji je dostupan samo superkorisniku i njemu (mada može biti tako konfigurisan da bude dostupan i ostalim korisnicima). U okviru /home direktorijuma, svakom od korisnika je dodeljen po jedan poddirektorijum koji nosi isto ime kao što je i ime korisnika. U okviru tog direktorijuma nalaze se sve konfiguracione datoteke kojima se definiše izgled radne površine korisnika, raznih imejl naloga i sl. Za razliku od opštih datoteka (Video, Audio, Slike, Tekstualne ...) konfiguracione datoteke (i direktorijumi) su skrivene, imaju . ispred imena (.xsession naprimer) i da bi se videle moraju se izlistati sa opcijom -a (ls -a). Dosta korisnika GNU/Linux-a pravi posebnu particiju na HDD-u na kojoj je smešten /home direktorijum, ovako se izbegava potreba za poremeštanjem većeg broja datoteka u slučaju reinstalacije sistema.

/lib direktorijum

U /lib direktorijumu se čuvaju moduli Linux kernela i deljene programske biblioteke potrebne za rad programa iz /bin i /sbin direktorijuma. Programske bibloteke lako se identifikuju po njihovoj ekstenziji .so.

/mnt direktorijum

Montiranje je proces kojim se razni fajlsistemi čine dostupni GNU/Linux OS-u. Svaki put kada se na računar priključi USB disk, ubaci CD u optički uredjaj i sl. fajlsistem na priključenom mediju se mora montirati da bi podaci na njemu bili dostupni OS-u a samim tim i korisniku. Nakon montiranja ovi podaci su dostupni preko tačke montiranja a to je uobičajeno poddirektorijum u okviru osnovnog direktorijuma /mnt. Na nekim novijim distribucijama priključeni mediji su dostupni preko tačke montiranja u osnovnom direktorijumu /media umesto /mnt.

/proc direktorijum

Je virtuelni fajlsistem, koji ne sadrži "prave" datoteke već tekuće sistemske informacije (količina RAM-a, koji uredjaji su montirani, konfiguracija hardvera). Iz ovog razloga /proc se ponekad naziva kontrolnim i informacionim centrom GNU/Linux OS-a. Na primer komanda lsmod uzima podatke iz datoteke /proc/modules i sl.

/root direktorijum

Je "home" direktorijum superkorisnika, kao što smo već rekli ne treba mešati /root direktorijum i korenski direktorijum /. Superkorisnik ima svoj poseban "home" direktorijum, u korenskom direktorijumu, izdvojen iz /home direktorijuma gde se nalaze "home" direktorijumi ostalih korisnika, da bi mu uvek bili dostupni svi najbitinij programi, jer /home direktorijum može biti nedostupan na izdvojenoj particiji, ukoliko dodje do pada OS-a.

/sbin direktorijum

Sadrži osnovne programe potrebne za podizanje računara, oporavak i popravke OS-a, u ovom direktorijumu se nalaze programi kao što su init, ip, mount...


/tmp direktorijum

Ovaj direktorijum sadrži datoteke koje su potrebne samo privremeno, kod većine GNU/Linux distribucija sadržaj ovog direktorijuma se briše prilikom svakog restarta ili gašenja računara. Ipak pošto mnogi programi koriste ovaj direktorijum za smeštaj privremenih datoteka tokom rada, iz ovog direktorijuma ne treba ništa brisati (osim ukoliko tačno ne znate šta radite) jer to može dovesti do pada programa i nestabilnosti sistema.

/usr direktorijum

Je najveći direktorijum na GNU/Linux OS-u, jer sadrži programe koje koriste "obični" korisnici računara (/usr/bin), dokumentaciju većine programa (/usr/doc), konfiguracione datoteke i grafike (ikonice i sl.) za programe (/usr/share), izvorni kod (/usr/src)... /usr direktorijum deljen je za sve korisnike sistema.

/var direktorijum

Ovaj direktorijum sadrži varijabilne (koje se stalno menjaju tokom redovnog rada računara) i privremene datoteke, kao što su razne informacije (eng. "log") o procesu podizanja računara, trenutnim operacijama koje računar izvodi i sl. (/var/log), privremene datoteke koje trebaju da sa sačuvaju prilikom restarta računara (/var/tmp), automatske rezervne kopije ključnih sistemskih datoteka (/var/backups)...

U korenskom direktorijumu mogu se nalaziti I drugi osnovni direktorijumi, u zavisnosti od tipa GNU/Linux distribucije, no ovaj tekst objašnjava samo namenu po meni najbitnijih, za više pročitajte:
- http://en.wikipedia.org/wiki/Filesystem_Hierarchy_Standard, i
- Filesystem Hierarchy Standard 2.3 (PDF 500KB).

PDF verziju ovog teksta možete naći na:
http://dl.dropbox.com/u/12349603/Fajlsistem_hijerarhija.pdf

петак, 28. јануар 2011.

FCM No.45

Novi, 45. broj Full Circle Magazin-a, donosi:

- Command and Conquer,
- Program in Python (19. deo),
- Linux Lab : Creating a Multiboot USB stick.
- Review : KDE 4.5.
- Top 5 : Music Annotation Apps...

Broj 45. se može skinuti sa adrese:
http://dl.fullcirclemagazine.org/issue45_en.pdf

петак, 21. јануар 2011.

Par brzih i korisnih komandi

1. Listanje imena i verzije GNU/Linux distribucije
cat /etc/issue

2. Brisanje svih datoteka iz direktorijuma osim onih sa navedenim ekstenzijama
rm !(*.foo|*.bar|*.baz)

3. Brisanje svih datoteka osim navedene
rm -f !(never_delete.txt)

4. Kreiranje skripte od poslednje kucane komande
echo !! > foo.sh

5. Raspakivanje tarbola bez da se čuva na disku računara
wget -qO – “http://www.tarball.com/tarball.gz” | tar zxvf -

уторак, 18. јануар 2011.

PCLinuxOS Magazine 2011.01

Prevrćući GNU/Linux arhivu na HDD-u pre neki dan naleteo sam na kopiju PDF magazina "PCLinuxOS magazine", i nisam mogao da verujem da sam zaboravio na ovako dobro Linux štivo. Par slova u Gugl polje za pretragu bilo je dovoljno da me odvede na matičnu stranicu ovog magazina, obradovao sam se kao dete kada sam video da je projekat još uvek živ i zdrav, i da čak šta više, magazin redovno izlazi svakog meseca. Poslednji januarski broj donosi:

* e17: Sistemski Panel, deo.1
* e17: Pogled na module
* e17: Izobilje gadžeta
* Scribus, deo.1: Upoznavanje
* Grub: Opravke Bootloader-a
* Alternativni OS: Kolibri, deo.2
* i još puno toga...

i može se skinuti sa adrese:
http://www.pclosmag.com/pdf/2011-01.pdf

Arhiva svih brojeva koji su izdati od septembra 2006 godine se nalazi na adresi:
http://pclosmag.com/index.php/downloads

A takodje za svaku preporuku su i specijalna izdanja od kojiih posebno treba izdvojiti:
Command Line Interface Intro Special Edition

Novi brojevi PCLinuxOS magazina će ubuduće biti redovno predstavljani na ovom blogu, to obećavam...

понедељак, 17. јануар 2011.

HandBrake

HandBrake je aplikacija otvorenog koda namenjena za video enkodiranje. Višeplatformska je pa je dostupna za Mac OS X, Windows i GNU/Linux. Za ulazni video podržava sve video formate koje libavformat može pročitati i koje libavcodec može dekodirati, dok se kao izlazni video može dobiti MPEG-4, H.264 ili Theora, u kontejnerima MP4 ili MKV sa audiom kodiranim u AAC, MP3 ili u Voorbis-u.

HandBrake takodje podržava:
- Odabir samo pojednih poglavlja,
- ubacivanje titlova u izlazni video,
- autocrop,
- pravljenje redne liste datoteka koje se kasnije automatski odrađuju...

Na Ubuntu-u HandBrake se instalira tako što se prvo doda adresa njegovog repozitorijuma u listu repozitorijuma, komandom iz terminala:
sudo add-apt-repository ppa:stebbins/handbrake-releases

pa se ažurira lista repozitorijuma i instalira HandBrake komandom:
sudo apt-get update && sudo apt-get install handbrake-gtk

I za kraj, vrlo lepo uputstvo za HandBrake nalazi se na adresi:
https://trac.handbrake.fr/wiki/HandBrakeGuide

субота, 8. јануар 2011.

libreoffice

Mark Shuttleworth je najavio pre nekog vremena da Ubuntu prelazi na libreoffice kancelarijski paket, na Ubuntu-u 11.04 Alpha 2, libreoffice 3.3 biće podrazimevani kancelarijski paket, a evo kako se može instalirati i na Ubuntu 10.04 i 10.10.
Prvo je potrebno ukloniti postojeći openoffice paket, komandom iz terminala:
sudo apt-get purge openoffice*.*

potom dodati adresu libreoffice repozitorijuma u listu repozitorijuma:
sudo add-apt-repository ppa:libreoffice/ppa

i naravno instalirati libreoffice:
sudo apt-get update && sudo apt-get install libreoffice-gnome

za korisnike gnome okruženja ili za korisnike KDE okruženja komandom:
sudo apt-get update && sudo apt-get install libreoffice-kde