Idiotuv decentni uvod do Linuxu (i UNIXu obecne)



Hello everybody not completely Billshited.


Tento text by mel byt takovym decentnim pruvodcem pro lidi, co se chteji naucit s linuxem a maji ho uz nainstalovany (treba podle meho "Idiotova pruvodce instalaci Linuxu"). Predpokladam, ze mate nejake decentni zkusenosti z jinych operacnich systemu (nebo jen systemu). Tento pruvodce by vam mel ukazat jak takovy UNIX (Linux je freewarovy UNIX) funguje, proc a jak a kde se co nastavuje, ukazat jak resit jednoduche ulohy jako treba spusteni ulohy v danem case, s cim vsim se v operacnim systemu muzete setkat, kde na Internetu hledat odkazy, programy a dokumentaci atd.

Predpokladam, ze vam ruzne bytosti, hrde se prohlasujici za lidi a pouzivajicich na pocitacich ruzne radobyoperacni systemy vykladali, jaka hruza ze je UNIX (Linux je freewarovy Unixovy OS vytvoreny dobrovolniky na Internetu). Neverte tomu. Znam ruzne zkonfigurovane unixy, nektere se tvari uplne hrozne, nektere vypadaji lidsky (urcite vite, jak vypada takovy SGI). Linux bude to, co si z neho udelate. Abyste si ho mohli pretvorit k obrazu svemu, musite vedet co, kde a jak. Jako zacatecnik jsem o unixu nevedel skoro nic. Stovkami hodin stravenymi u pocitace jsem zjistil, kam linuxu sahnout, aby delal to co chcete. Chci se o tyto zkusenosti v vami podelit, protoze jsem solidarni a koneckoncu, nekdo musi udelat micro$oftu konec. Az poznate vyhody linuxu, budou se vam komercni radobyoperacni systemy zdat jako trabant proti formuli 1.

Zrejme ted sedite u pocitace, bezi na nem Linux, a na obrazovce na vas kouka hlaska neco jako

darkstar login:

Vim jaka hruza je, kdyz nevite, co od toho cekat, co udelat. Takze nez se pustime do nejake praxe, par vet o tom, co s tim a jak to muze vypadat. Protoze je tezke rozhodnout cim zacit a nejde to bez kontextu, nejprve uvadim takovy maly souhrn vlastnosti, ktere mne napadly a ktere je uzitecne vedet. Pokud si je nezapamatujete, vubec se tim netrapte, protoze slouzi jen k orientaci. Vlastni system Linuxu se naucite ovladat jen praxi, a to tak ze se nebudete bat experimentovat a zkouset ruzne prikazy. Linux je velice stabilni a prikazy s destruktivnim ucinkem muzete neco znicit jen jako superuzivatel root. Pro nauceni zakladu systemu vam poradim krok po kroku v dalsi casti, jak pokracovat.



Unix jako takovy vznikl v sedmdesatych letech a neustale se vyviji. Od zacatku byl vytvaren tak, aby byl multiulohovy (multitasking=jeden clovek muze mit spusteno vice bezicich programu zaroven), multiuserovy (vice lidi muze najednou pracovat na jednom fyzickem pocitaci), preemptivni (zadna uloha nemuze zablokovat system, system sam odebira uloham procesor po urcite dobe). Linux vyuziva 32/64-bitoveho adresovani procesoru, na kterych bezi. Linux sam o sobe je jadro operacniho systemu, ktere napsal student Linus Torvalds se skupinou silencu na Internetu. K tomuto jadru dalsi lide udelali tzv. distribuce, kde jsou uz zkompilovane programy a ma to instalacni program atd. Tomu celemu se rika Linux (tedy i kdyz Linux je vlastne jen jadro a distribuce jsou ruzne).

Vyskytl se zde termin uloha: uloha je spusteny program. Teto uloze je prirazeno cislo, pod kterym se v systemu prezentuje (neco jako rodne cislo) - rika se tomu PID (Process IDentificaton).
Aby si uzivatele navzajem nemohli krast, mazat a menit data na disku a procesu, jsou v unixu zavedeny tzv. pristupova prava. Existuje vsak jeden uzivatel ci spise mod, u ktereho se pristupova prava nekontroluji a tudiz ma pravo manipulovat s cimkoli v systemu. Tento uzivatel se jmenuje root (stejne jako mod root). Je to uzivatel, ktery typicky instaluje system a spousti v nemz zivotne dulezite programy. Je to take slabina unixu, protoze kdyz dostanete prava uzivatele root tak muzete pekne zbourat system, jakoz i monitorovat ostatni uzivatele atd.

Programy pod unixem, ktere se radi mezi systemove jsou psany tak, aby plnily nejake zakladni funkce (treba zpracovani textu, trideni....) a to plnily dobre a bez chyb. Je to proto ze unixu je hodne a uzivatel ocekava stejne chovani programu na vsech z nich. Sam unix muze mit i 300-400 zakladnich prikazu, ale vetsinou vam vystaci znat 20 a vedet o dalsich 40. Ke vsemu (vsem prikazum) jsou v unixu manualove stranky, ktere se daji zobrazit prikazem man <jmeno_prikazu_co_vas_zajima> . Uzivatele si pak z techto zakladnich prikazu mohou rychle poskladat vlastni programy, ktere neco zpracovavaji (pomoci skriptu).

Uzivatele komunikuji s Linuxem pomoci terminalu. Terminal je z hlediska linuxu zarizeni, ktere umi posilat pismenka z klavesnice a umi nejak zobrazovat text, scrollovat obrazovku a posouvat kurzor. Toto zarizeni nemusi byt nutne klavesnice a monitor, ktere jsou pripojeny k pocitaci, na nemz Linux bezi. K linuxu se da pripojit pres sit (TCP), pres modem, seriovou linku, emulatoru terminalu v X Window. Ruzne terminaly mohou mit jiny pocet znaku/radek, mohou/nemusi umet barvicky, pipat atakdale. K jednomu pocitaci s bezicim linuxem je mozno pripojit vice terminalu, a to i ruzneho typu. Sam linux disponuje tzv. virtualnimi terminaly (VT), mezi kterymi se lze prepinat klavesami LALT+F1...LATL+F12, typicky je jich zkonfigurovano jen 6. Na kazdem z nich muzete byt prihlaseni jako nekdo jiny, spoustet uplne jine programy, muzete na nich mit zobrazene manualy a vedle hned psat program a jeste vedle ho kompilovat a zkouset (pro ilustraci).

Protoze unixu (od ruznych vyrobcu) je relativne mnoho a jsou proto dobre standardizovane, ocekavejte, ze programy psane pod Linuxem pujdou s minimalnimi upravami spustit treba na stanicich Silicon Graphics a naopak. K tomu je ale treba je rekompilovat, ponevadz ruzne unixy bezi na ruznych procesorech, ktere maji jiny instrukcni repertoar. Kompilace programu je vubec kapitola sama pro sebe, cinici zacatecnikum nemale obtize. Zatim mohu rici to, ze vetsina nekomercnich programu je dodavana v tzv. zdrojovem tvaru (vetsinou napsane v jazyku C/C++). Vy pak z nich musite na svem systemu vykompilovat spustitelne soubory. Na jednu stranu je to vyhoda, protoze si muzete pri kompilaci spustit optimalizaci pro svuj procesor (pentium, Ppro, 486,...). Kompilace je relativne jednoducha vec kdyz jde vse bez problemu. O tom vsak pozdeji.

Jsou ruzne unixy z hlediska interni struktury. Vetsinou splnuji nejake normy pro nazvy funkci a procedur systemu (napr. norma POSIX). Interne si pod nazvem Linux predstavte jadro operacniho systemu, ktere bezi v protected modu procesoru 386 a vyssim (verze pro jine typy procesoru jsou take - PowerPC, MIPS, HP, ALPHA, MC68xxx). Toto jadro je hardwarove chraneno proti zasahu procesu (uloh) do sveho adresoveho prostoru, takze se nemuze stat, ze by neposedny program zbortil system (tedy zbortit system jde, ale musite vedet jak ;-). Jadro je vetsinou monoliticke (je to jakoby jediny samorozbalovaci program, ktery se po zavedeni do pameti rozbali, prepne do protected modu, zapomene na DOS, BIOS a jine zverstva a spusti se). Od tohoto okamziku pouziva svoje funkce pro pristup k periferiim. Jadro samo o sobe spousti/zavadi programy, stara se o virtualni pamet (na swap disku), poskytuje sluzby pristupu k siti (TCP/IP), jednotny pristup k diskum (CD-rom, ATAPI, SCSI, diskove pole..), kontroluje pristupova prava atd.

V unixu se nejak pracuje s disky, klavesnici, sitovou kartou, mysi, zobrazovaci jednotkou a jinymi zaznamovymi a prenosovymi medii. Pristup k temto zarizenim je standardizovan a je soucasti sluzeb jadra. Takze jak se tak priblizne tvari tyto zarizeni z hlediska unixu (tohle je docela dulezite pro pochopeni principu unixu).

Tvurci unixu vyresili problem, jak efektivne reprezentovat ruzne zarizeni v systemu. Krome pameti, kterou si spravuje jadro, ma procesor pristup k periferiim. Tyto periferie poskytuje programum ktere je potrebuji a maji na pristup k nim narok (pristupova prava). Jake ale mit rozhrani pro pristup k disketam, diskum, cdromam, streamerum, mysim, portum ap.? Jednoduche. Zarizeni, ktere umeji najet na urcitou stopu (sektor) a prenaseji najednou vzdy blok dat (HDD, cd-rom), se nazyvaji blokova zarizeni. Zarizeni, ktere komunikuji po znacich/bytech (terminal, seriove porty, streamery) se nazyvaji znakova zarizeni. K obema typum se pristupuje tak, ze je otevrete jako soubor (rozdil je pak jen ze znakove zarizeni neumi seek). Pak uz jen z vasich programu ctete z takto otevreneho souboru/zarizeni. Podrobnosti dale.

Linux jako ostatni unixy ma jediny adresarovy strom, v jehoz ramci adresujete vsechny disky. K oddeleni adresaru se pouzivaji normalni lomitka / . Vas program nevi ze soubor s kterym pracuje je pripojen pres paterni sit na fileserveru, nebo ze je na floppy mechanice. Z jeho pohledu existuje jen cesta k tomuto souboru a odezva systemu, zda je zalozen/prava cteni-zapisu/chyba pri cteni-zapisu apod. Ruzne disky se v unixu tvari jako ruzne adresare, pricemz jeden z disku je hlavni (lezi na nem korenovy adresar / ). Takze cesta k souboru muze vypadat takhle:
/usr/local/bin/netscape
nebo treba i takhle:
../../texty/poznamky
.. je stejne jako jinde nadrazeny adresar.

Struktura adresaru je v linuxu dejme tomu pevne dana, dodrzuje konvence ulozeni ruznych souboru do prislusnych adresaru. Takze treba adresar /home/ (timhle myslim adresar , kdyz napisete jen /home , tak klidne muzu myslet soubor) uchovava (privatni) domaci adresare uzivatelu, v adresari /sbin/ jsou prikazy pouzivane vyhradne rootem ke sprave systemu (formatovani, fdisk), v adresari /etc/ jsou textove konfiguracni soubory ovlivnujici cely system atd.

Dalsi veci v linuxovskem filesystemu jsou odkazy (linky). Jsou to krizove reference na jeden fyzicky obsah souboru z vice mist v filesystemu. Jsou tzv. mekke a tvrde. Tvrde jsou ty, kde je uveden primo prvni alokacni jednotka souboru u vice jmen v filesystemu, mekke jsou pouze jakesi odkazy typu "misto tohodle souboru si vezmi jiny s timhle nazvem" (neco jako URL na webu).

Unixy sjednocuje pouziti sitoveho protokolu TCP/IP. Podporu techto sluzeb poskytuje primo jadro linuxu. Vyhoda tohoto protokolu je, ze muzete spojit rozlisne architektury pres jakekoli fyzicke medium, ktere je schopno prenaset pakety nebo znaky, tedy i seriovy/paralelni port, modem, infra spojeni (IrDA), sitove karty. V jednom pocitaci muze byt i vic sitovych rozhrani, kazdemu z nich je prirazena jedna IP adresa.

Dalsi vymozenosti linuxu jsou sdilene knihovny. Jsou to soubory nejakych funkci, ktere se nabizeji ostatnim programum k pouziti, zabalene pekne pod nejakym nazvem. Pritom pokud vice programu(procesu) vyuziva sluzeb jedne knihovny, tato je v pameti pouze jednou (resp. ta cast, ktera je skutecne pouzivana). Stejne tak, pokud se proces rozdvoji (resp. klonuje), tak je jeho kod v pameti pouze jednou. Pokud jeden z takto vzniklych programu modifikuje data sdilena s druhou kopii (resp. originalem), vytvori se v tomto procesu privatni kopie stranky jez byla zmenena. Umoznuje to udelat treba 10 instanci stejneho programu, kazda z nich zcela nezavisly proces, a presto budou v pameti zabirat mista jako jeden proces. Tato technika se jmenuje copy-on-write.

V unixu je take dalsi ze silnych nastroju, a to presmerovavani vstupu a vystupu programu. Predpokladejme, ze program ma vstup ze ktereho cte a vystup na ktery zapisuje. Treba ze vstupu nacte deset radek a na vystup je vypise v obracenem poradi, nebo setridene. No a kdyz vezmete tento program, na vstup mu poslete seznam jmen lidi, bude na vystupu tohoto programu setrideny seznam lidi. Jenze tento vystup se muze stat vstupem do dalsiho programu, ktery treba vybere jen lidi od A do K. Dalsi program, ktery zapojite za tyto predchozi treba secte vyplaty techto lidi. Tomuto celemu se rika rourovani cili pipovani, programy se radi do kolon (strudl 'zapajpovanych' programu). No a vysledek cele teto kolony se ulozi nekam do souboru. Vypada to prakticky nejak takhle:
vypis seznam | setrid | filtruj jmena | secti vyplaty > jmeno_souboru_s_vysledkem

Na co narazite urcite v kazdem unixu jsou zamky. Protoze v unixu bezi zaroven hodne programu (skutecne bezi) a chteji pouzivat stejna zarizeni, tak musi byt nejak zabezpeceno prirazeni zarizeni urcitym procesum. Stejne tak lze zamykat obsah souboru i casti souboru (treba v databazi). Klasickym prikladem muze byt zamykani pristupu k seriovemu portu. Pouze jeden program ma povoleno s nim operovat v danem case. Po tuto dobu ma seriovy port zamknut.

Z dalsich vlastnosti unixu jmenujme sdilenou pamet (okenko v pameti, kam ma pristup vice procesu zaroven, treba pro vymenovani dat sejmutych framegrabberem, kde jeden proces "odchytava" data z HW zarizeni do sdilene pameti a druhy je ze sdilene pameti komprimuje a uklada na disk. Ekvivalentem softwaroveho preruseni je v programech posilani signalu. Signal je cislo, ktere zaslete procesu. Cilovy proces na toto cislo muze/nemusi reagovat, treba ukoncenim cinnosti nebo vypisem sveho statutu. Mezi dalsimi nastroji je take meziprocesova komunikace IPC (Inter Process Communication), kdyz jeden proces muze druhemu procesu poslat zpravu (typicky tak 1k dat, treba textovy pozadavek "Muzu uz zapisovat do souboru XXXYYY?"), pouziva se k synchronizaci procesu a vyrizovani databazovych zadosti.




Tady je par ukazek, jak s vami muze takovy linux komunikovat. Nejprve to, co lide povazuji za hruzu, tedy shell (interpret prikazu, tedy to podle ceho udelal $ill gate$ jeho command.com). Shellu znam asi 6 (kazdy je jinak veliky a ma odlisne interni prikazy).

Welcome to Linux 2.0.7 running on i586
it's 09:57:37   Mon Jul 29  1996
VT tty5
Address smrt.cz
online 10 users

smrt login: xmyslik
Password:******
Smrt prichazi necekane

You have mail.
smrt:~$ who
  6:33pm  up  8:38, 11 users,  load average: 0.00, 0.02, 0.00
USER     TTY      FROM              LOGIN@  IDLE   JCPU   PCPU  WHAT
a        tty1                       9:57am  8:26m  0.07s  0.07s  -bash
root     tty2                       9:58am  8:21m  1.07s  0.04s  -bash
a        tty3                       9:59am  8:20m  7.30s  0.10s  -bash
a        tty4                      10:13am  8:20m 51.88s  0.02s  sh /usr/X11/bin/startx -- -bpp 16
a        tty5                       6:33pm  3.00s  0.15s  0.08s  w
xmyslik  ttyp2    :0.0             10:15am  7:29m  0.03s  0.02s  rlogin -l root localhost
root     ttyp3    localhost        10:15am  7:29m  0.32s  0.08s  -bash
xmyslik  ttyp5    :0.0             10:54am  5:12m  0.82s  0.82s  /usr/local/bin/mc -P -x -c
xmyslik  ttyp7    :0.0             11:07am  7:25m  0.08s  0.08s  -bash
xmyslik  ttyp9    :0.0              1:25pm  3:51m  0.76s  0.22s  /usr/local/bin/mc -P -x -c
xmyslik  ttypb    :0.0              5:44pm 37.00s  0.10s  0.03s  telnet smrt
smrt:~$ mail

Mail version 5.5 6/1/90.  Type ? for help.
"/var/spool/mail/a": 10 messages
>   1 a@localhost           Wed Mar 13 03:53  50/1942  "Re: (PPP)<->(linuxbox)<->(pipeline50)<->w"
    2 a@localhost           Wed Mar 13 04:46  49/1938  "Re: Help with odd mail problem"
    3 a@localhost           Wed Mar 13 04:48  43/1526  "Re: help: IP_MASQUERADING"
    4 a@localhost           Wed Mar 13 04:48  42/1656  "Re: help: IP_MASQUERADING"
    5 a@localhost           Wed Mar 13 05:00  70/3093  "IP_MASQUERADING Works!"
    6 a@localhost           Wed Mar 13 05:01  70/2975  "Re: IP_MASQUERADING Works!"
    7 xmyslik@localhost     Wed Mar 13 06:10  43/1701  "Re: Me Too!!!: Fix for ET4000/W32P Proble"
    8 MAILER-DAEMON@smrt.c  Fri Jun  7 12:37 128/5155  "Returned mail: Host unknown (Name server:"
    9 MAILER-DAEMON@smrt.c  Fri Jun  7 12:50 166/5846  "Returned mail: Host unknown (Name server:"
   10 MAILER-DAEMON@smrt.c  Fri Jun  7 12:55  79/2759  "Returned mail: Host unknown (Name server:"
&q
Saved 1 message in mbox
Held 9 messages in /var/spool/mail/a
smrt:~$ pwd
/home/a
smrt:~$ cd /
smrt:/$ ls
A/           DOS1/        SMEJD/       cestovky/    lib/         proc/        usr/
B/           DOS2/        System.map   dev/         linux@       root/        var/
DISK1/       DOS3/        System.old   down/        lost+found/  sbin/        vmlinuz
DISK2/       DOS4/        bin/         etc/         mnt/         temp@        vmlinuz.old
DISK3/       INCOMING/    boot/        home/        mnt2/        tftpboot/    windows@
DISK4/       README@      cdrom/       home2/       moje/        tmp/
smrt:/$ logout
Jak sami vidite, s shellem se komunikuje textove. Je to znacne neefektivni a uzivatelska pritulnost muze soutezit s teplotou na severnim polu. Nicmene toto rozhrani ocenite, pokud se budete vzdalene pres sit ci modem pripojovat na pocitac a treba si tam cist postu nebo kontrolovat teplotu v jadernem reaktoru kdyz budete zrovna na druhe strane sveta.

Tim, cim je pro ms-dos norton commander, je pro linux The Midnight Commander. Spousti se z normalniho shellu (prikazem mc). Je to takova vizualni nadstavba, da se s nim manipulovat se soubory, spoustet programy (i z menu), pripojovat na ftp servery atd. Umi si i zapamatovat zalozky do vami casto pouzivanych adresaru.



Nejlepsi nadstavbou nad unixy je system X WINDOW. Je to graficke rozhrani, ktere umoznuje spusteni programu na nejakem pocitaci ale zobrazeni i na jinem (vasem) displeji. X WINDOW je prostredi analogicke k Windows , pokud je vubec lze srovnavat. Samotne jadro operacniho systemu linux nevi o grafice vubec nic, o to se stara server X Window. Na snapshotu muzete videt zaroven spusteny emulator dosu s nortonem a emulator amigy. Vsechno bezi, a na pageru muzete videt, ze na dalsich virtualnich obrazovkach bezi dalsi programy. Nahore muzete videt ukazatel zatizeni pocitace.


Kdyz jsme u X Window, jednou jsem potreboval prehrat kamaradovi na jeho pakovany disk pod dosem hru, ktera byla u mne pres sit. Protoze on zrovna obedval, pripojil jsem se na jeho pocitac pod linuxem, pripojil muj disk do jeho systemu pres sit, spustil si u nej emulator dosu, ktery jsem presmeroval na moji obrazovku a vzdalene jsem spustil pod nortonem kopirovani z meho disku na jeho pakovany. Abych se nenudil pustil jsem si dooma. Holt multitasking.



Co se tyce unixu obecne, pocitejte s tim, ze vetsina lidi s nim pracujici je vetsinou z akademickych/studentskych kruhu, ci z prumyslu kde je potreba solidni vykon a hlavne spolehlivost. Proto je pro unix tak malo "kancelarskych" programu, ktere cini velkou cast programu u komercnich systemu zalozenych na kombinaci Micro$oft/Intel. Pro unix je spousta programu, ale jsou spatne dosazitelne (tedy ty komercni), protoze u nas se holt masove podporuje Microshit. Nedivim se tomu, blbci prece musi zaplatit hardware, aby se dalo vyrabet pocitace masove za nizke ceny. Kdyby totiz vsichni presli na unix, nepotrebovali by supervykonna pentia na ucetnictvi.

Pro linux lze zkompilovat spousty programu, ktere muzete najit na Internetu. Existuje pro nej take Motif (GUI v kterem je psan treba Netscape) nebo jeho freewarova verze LessTif, Mesa - freewarova knihovna kompatibilni s OpenGL od SGI, ruzne HTTP servery od freewarovych az po komercni. Nelekejte se toho, ze vetsina programu je treba jen textova a ma textove konfiguracni soubory. Z hlediska uzivatele je to sice pomalu zkonfigurovatelne, ale na druhou stranu kdyz si vezmete ze spousta takovych programu udelalo 2-3 lide misto softwaroveho giganta a jeste to dali volne k dispozici, je to nejlepsi pomer rychlost vyvoje/cena/vykon. Co se tyce serveru, linux ma vyhodu: nevlaci s sebou grafickou nadstavbu, ktera je v pripade serveru na obtiz, protoze zere pamet. Linux je vubec nasazovan hlavne v oblasti sitovani a serverovani. Proto je pro nej tak malo her.

Pokud chcete pouzit linux pro kancelar, muzete na rozumnem (386,>=4MB RAM) stroji rozjet faxovy server co posila i prijima fax, rozesila ho po siti ci posila maily a jeste pritom nechat vasi sekretarku aby na tomto stroji psala agendu (jenom musite zabezpecit, aby po skonceni prace nevypnula pocitac :). K linuxu lze bez problemu pripojit i nekolik tiskaren a linux muze slouzit i jako tiskovy/fileserver pro sit zalozenou na dosu. Pod linuxem samotnym se sice setkate se zpracovanim textu (text processing) spise nez se zpracovanim slov (word processing), ale to neni na skodu. Typicky uzivatel windows je na vetvi z toho, ze na svem pentiu/200 s 32 Mb Ramky napise pod Wordem dopis, pridela k nemu kudrlinky a vytiskne si ho na tiskarne. Kdyz pak zmeni sirku papiru na tiskarne, je v ****li. Hmm. V oblasti unixu se vicemene pracuje s texty, tedy napisete hruby text, reknete kde maji byt odstavce, pripadne co je nadpis a nechate textovy procesor, aby si pohral s rozdelenim slov a vyplnenim stranky. Je to efektivni a rychle. Takze az se vam do ruky pod linuxem dostane treba TeX (coz je dost silny sazeci system) s grafickou nadstavbou LyX, nemusite se bat ze nenaucite vasi sekretarku psat dopisy. Proste ji natahnete template, a reknete ze vsude kde jsou cervena pismenka tak ma napsat adresata a tak kde je <telo dopisu> ze ma napsat to co tam patri. Zadne formatovaci problemy.

Kdyz jsme u zpracovani textu, v unixu je spousta prikazu, ktere na vas udelaji dojem, ze je to straslive rozsahly system. Je. Ale vetsina techto prikazu ma za ukol delat jednoduche veci, jako treba pouze poslat soubor na vytisknuti tiskarnou, nebo vratit jen prvni radku textu, ktery mu poslete. Je to proto, aby slo velice jednoduse delat skripty, coz je silna stranka Unixu. Skripty jsou textove soubory (aka *.bat soubory v dosu) kde jsou prikazy, jez se maji vykonat. Skripty jsou vykonavany shellem (takze v nich muzete pouzit treba vetveni kdyz existuje soubor atd.). Skripty muzete nechat vykonavat i v danou hodinu automaticky, spoustet je na pozadi, ridit s nimi jadernou elektrarnu apod., proste vse, co potrebujete rychle napsat, ma to s necim manipulovat a neni to slozite. Pro programy ktere maji neco vykonavat rychle doporucuji: naucte se C/C++ a pak s pomoci manualu systemovych volani udelate kratke programy, ktere budou hodne umet (treba moje semestralka ma osetreno otevreni zvukove karty vcetne nastaveni frekvence/mono-stereo/8-16b na 4radkach). Na pate radce se uz posilaji data na D/A prevodnik.

V linuxu vubec se pisou programy jednoduse, kdyz to umite. Je to proto, ze ke vsemu je online dokumentace a protoze unix perfektne odstinuje uzivatele od konkretniho hardwaru. Treba vsechny zvukove karty se tvari stejne, tedy pokusite se je otevrit, nastavit jim provozni parametry (kvalitu zvuku) a jen zkontrolujete, jestli se to povedlo (treba takovy SB neumi stereo, ale pracuje se s nim uplne stejne jako s jinou zvukarnou). Stejne tak jednoduse se daji psat programy pracujici pod TCP/IP. S linuxem dostanete spoustu jiz napsanych a funkcnich programu uplne ke vsemu, takze kdyz se budete chtit inspirovat, nebojte se nekomu neco obslehnout. Vetsina autoru totiz uvolnuje sve programy pod tzv copyleftem (GNU GPL), coz znamena ze muzete dle libosti vyuzivat jimi napsaneho software, ale nesmite ho prohlasit za svuj nebo distribuovat za nekrestanske penize. Stejne je distribuovano jadro linuxu (ve zdrojacich).

Linux jako system je vubec zalozen na programech a knihovnach, ktere davaji lide volne k dispozici (a to ve zdrojovem tvaru). Velka vetsina z nich (tedy zivotne dulezitych z hlediska OS) je od FSF (Free Software Foundation). Tyto knihovny se vyvijeji a jsou do nich neustale pridelavany nove funkce a odchytavany chyby. Proto se tyto knihovny neustale 'updatuji', coz vam muze prinest nemale problemy. Nove verze jsou treba i 4-6 krat do roka a nove programy vam nemusi chtit fungovat se starymi knihovnami. Tyto knihovny je mozne sehnat krome zkompilovaneho tvaru i ve tvaru zdrojovem, takze si v nich muzete cokoli zmenit (spise vsak je optimalizovat na cilovy procesor). V linuxu se 'updatuje' na novou knihovnu tak, ze se nakopiruje nova knihovna do spravneho adresare a zavola se skript ldconfig. Pak muzete starou verzi knihovny odmazat.



To bylo tak uvodem. Dalsi je takovy prehled prikazu s priklady, ktere by jste meli znat (jako treba kopirovani souboru, vypis aktualniho adresare atd).

Kapitola 1 - Uzitecne a zakladni prikazy
Kapitola 2 - Filosofie Unixu obecne



Zpatky na hlavni stranku