Obsah
2 Základná koncepcia číslicového počítača
2.1 Počítače riadené tokom inštrukcií (von Neumannovské počítače)
2.2 Princetonská a Harvardská architektúra
2.3 Počítače riadené tokom údajov (Data-flow systémy)
2.4 Klasifikácia číslicových počítačov
3 Reprezentácia informácií v počítači
3.1 Analógové zobrazenie informácií
3.2 Číslicové zobrazenie informácií
3.3.2.2 Prevody medzi sústavami
3.3.2.2.1 Prevod celej časti čísla z desiatkovej sústavy do sústavy so základom zą10.
3.3.2.2.2 Prevod desatinnej časti čísla z desiatkovej sústavy do sústavy so základom zą10.
3.3.2.2.3 Prevod celej časti čísla zo sústavy so základom zą10 do desiatkovej sústavy
3.3.2.2.4 Prevod desatinnej časti čísla zo sústavy so základom zą10 do desiatkovej sústavy
3.3.2.2.5 Prevod medzi sústavami so základom rovným mocnine číska 2
3.3.2.3 Dvojková, osmičková a šestnástková aritmetika
3.3.2.4 Kódovanie číselných informácií
3.3.2.4.4 Dvojkovo-desiatkový kód (BCD kód)
3.3.3 Zobrazenie nečíselných údajov
3.3.3.1 Znakové (textové) informácie
4.1 Architektúra operačného systému
4.1.2 Jadro operačného systému
4.1.3 Nadstavby operačného systému
4.3 Zariadenia operačného systému
4.3.3 Organizácia údajov na zariadeniach
4.3.3.2.2 Cesta a úplné meno súboru
5.1 Základné vlastnosti OS UNIX.
5.2 Základné postupy v OS UNIX
5.2.1 Prihlásenie sa, zmena hesla a odhlásenenie sa
5.2.1.1 Prihlásenie sa do systému
5.2.1.3 Odhlásenie sa zo systému
5.2.1.4 Použitie osobného počítača na emuláciu terminálu
5.2.1.5 Automatické odhlásenie
5.2.1.6 Nastavenie osobných údajov a interpretra príkazov.
5.3 Príkazy pre nastavenie a ovládanie terminálu
5.4 Súbory a katalógy v OS UNIX
5.4.1 Princípy výstavby súborového systému
5.4.2 Štruktúra adresárov v OS UNIX.
5.4.3 Mená súborov a adresárov
5.4.4 Pridanie linky na katalóg alebo súbor
5.4.5 Príkazy pre prácu s katalógmi.
5.4.6 Prideľovanie prístupových práv
5.4.6.1 Číselný spôsob zmeny prístupových práv
5.4.6.2 Symbolický mód zmeny prístupových práv
5.4.7 Príkazy pre prácu so súbormi.
5.4.7.1 Príkazy na výpis obsahu súboru.
5.4.7.2 Príkazy pre rušenie, premenovanie a kopírovanie súborov
5.4.7.3 Príkazy pre porovnávanie, triedenie a prehľadávanie súborov
5.4.7.4 Ďalšie používané príkazy
5.4.8 Príkazy pre prácu so systémovými frontami
5.5 Vykonávanie príkazov a správa procesov.
5.6 Príkazy pre komunikáciu medzi používateľmi
5.7 Štandardné sieťové príkazy OS UNIX
5.7.2 Vzdialené vykonanie príkazu a prihlásenie sa
6.1 Štandardy a sieťové modely
6.2 ISO OSI referenčný model sieťovej architektúry
6.2.2 Spojová (linková) vrstva
6.4.1 Opakovač (repeater) a rozbočovač (hub)
6.4.2 Most (bridge) a prepínač (switch)
7.1 Rozdelenie počítačových sietí
7.2 Realizácia sieťovo-závislých vrstiev..
7.2.1 Prenosové médiá počítačových sietí
7.2.2 Metódy prístupu na prenosové médium
7.2.4 Odolnosť voči chybám pri komunikácii
7.3 Realizácia aplikačných vrstiev
7.3.2 Typy služieb na báze modelu klient-server
8 Internet a jeho sieťový model
8.2 Datagramy, segmenty, pakety
8.4 Transmission Control Protocol (TCP)
8.5 User Datagram Protocol (UDP)
9.2 Identifikácia používateľov Internetu
9.3 Elektronická pošta (e-mail)
9.3.1 Procesný model služby e-mail
9.3.3 Program elektronickej pošty PINE
9.8.2 HyperText Transfer Protocol (HTTP)
9.8.3 Jazyk HTML a tvorba WWW stránok
9.8.3.1 Štruktúra HTML dokumentu
9.8.3.2 Základné formátovanie textu v HTML dokumente
9.8.3.4 Zoznamy v HTML dokumente
9.8.3.5 Odkazy v HTML dokumente
9.8.3.6 Grafika a HTML dokument
9.8.3.10 Ďalšie možnosti jazyka HTML a obslužné skripty
9.8.4 Interaktívna tvorba WWW stránok, HTML editory
11.1 Textové editory v OS UNIX
11.1.2.1 Štartovanie editora vi
11.1.2.3 Pohyb kurzora v editore vi
11.1.2.4 Vkladanie, prepisovanie, mazanie, hľadanie, kopírovanie, presun a obnovenie textu
11.1.2.5 Práca so súbormi v editore vi
11.1.2.6 Prostredie editora vi
11.1.3 Niektoré ďalšie editory
11.2.2.1 Interné príkazy vetvenia a cyklov
11.2.2.2 Ostatné interné príkazy shell-u
11.2.5 Generovanie mena súboru, znaky hromadného výberu
11.2.6 Potlačenie špeciálneho významu znakov
11.2.10 Argumenty pri spustení príkazového interpretra
12 Odporúčaná rozširujúca literatúra
Výpočtová technika je jednou z generačných premien v histórii ľudstva. Jej rozvoj je natoľko búrlivý, že od drahých zariadení určených pre vojenské a špičkové priemyselné aplikácie sa behom necelých tridsiatich rokov rozšírila až do škôl a domácností ako výhodné informačné médium a prostriedok poučenia i zábavy; súčasne zaplavila konštrukčné kancelárie, reklamné a filmové štúdiá, nemocnice a svoje uplatnenie si našla aj v móde, automobilizme, letectve, umení.
Ako aj vyplýva z predchádzajúcich riadkov, vývoj ľudstva je zviazaný s procesom získavania, spracovania, prenosu a záznamu informácie. Ak k tomu prirátame, že najviac informácií človek získava zrakom, dnešné počítače tomu už veľmi napomáhajú. Uveďme si krátky historický prehľad, ktorého dôsledkom bol vývoj výpočtovej techniky.
Obr. 1 Čínsky abacus, fragment Babbage-ovho počítacieho stroja
V 4. tisícročí
pred n.l. vzniká prvé ucelené obrázkové písmo v Mezopotámii. O tisíc rokov
neskôr (3. tisícročie pred n.l.), geniálni obchodníci Féničania
zostrojili abakus (mechanické počítadlo). O niekoľko
desaťročí nato, sa objavujú prvé súvislé znakové sady, do tohto
obdobia datujeme vznik abecedy. V slávnom Babylone v rokoch 1800-1600 pred n.l.
uzreli svetlo sveta prvé písomne zachované matematické algoritmy (60-ková
sústava). 570-500 rokov pred n.l. Pytagoras skúma vzťahy geometrických
telies. Približne v roku 300 pred n.l. sú Euklidom vytvorené základy všeobecnej
matematiky. V 8.-9. storočí píše Muhamed ibn Musa ibn Abdallah Al Chorezmi
Al-Majdusi prvú učebnicu aritmetiky, v ktorej sa používa už desiatková
sústava. Johannes Gutenberg v rokoch 1444-1448 objavil a zaviedol základnú technológiu
prenosu informácií ľudstva – kníhtlač. Po abakuse pre ľudí v
roku 1673 Gottfried Wilhelm Leibniz stavia zdokonalený kalkulačný stroj.
Prelom nastáva, keď potom v roku 1725 B. Bouchon vynašiel diernu pásku,
ktorou riadi tkací stroj a 1805-1808 Joseph Marie Jacquard zavádza tkáčsky
stav riadený diernymi štítkami. XIX. storočie je celkovo poznačené
rôznymi technickými objavmi. V roku 1833 Charles Babbage vypracúva projekt
univerzálneho počítacieho stroja, 1854 George Boole utvára dvojstavovú
logiku (tak potrebnú pre dnešné počítače), 1855 James Clerk Maxwell
zostrojuje integrátor, 1876 Graham Bell vynašiel telefón, 1888 Elerman Heller
konštruuje diernoštítkový počítací stroj (dokedy sa používali dierne
štítky ako pamäťové médium?), 1890 Herman Hollerith stavia diernoštítkový
kalkulátor a tabelátor pri prvom sčítaní ľudu v USA.
Obr. 2 Hollerith a jeho kalkulátor
Prichádza slávne XX. storočie, ktoré je predovšetkým vo svojom počiatku poznamenané 1. svetovou vojnou. Až po nej resp. tesne pred druhou svetovou vojnou sa začínajú objavovať prvé typické lastovičky súčasnej výpočtovej techniky. V rokoch 1935-1941 začína priekopnícka práca Konráda Zusa na návrhu elektrického počítača. Táto je korunovaná úspechom a Zuse zostrojuje programovateľný počítač Z3. Ním inšpirovaný Alan M. Turing v roku 1943 zostrojuje elektronický počítač COLLOSSUS.
Obr. 3 Z3, COLLOSUS a ENIAC
Z tohoto obdobia sú známe elektromechanický počítač MARK I (I943), ktorého autorom bol profesor Hardwardskej univerzity Aiken a nadväzný reléový počítač MARK 2. Oba počítače sa programovali pomocou prepojovacieho panelu. V rokoch 1942 až 1946 bol na Pensylvánskej univerzite pod vedením John Von Neumanna vyvinutý prvý elektronický počítač ENIAC (Electronic Numerical Integrator And Calculator), ktorý je považovaný za "praotca" súčasných počítačov.
Obr. 4 (zľava) Konrád Zuse, John von Neumann, Alan M. Turing
V dôsledku ťažkopádneho programovania prostredníctvom prepínačov, práve pri tomto počítači vznikla myšlienka použiť spoločnú pamäť pre inštrukcie programu a údaje a použiť dvojkovú číselnú sústavu namiesto desiatkovej. Niektorí odborníci však považujú za predchodcov súčasných počítačov ale uvádzaný britský Collosus (1943), ktorý začal pracovať vo výskumnom centre v Betchley resp. počítač ABC (Atanasoff - Bessey Computer), ktorý bol vyvinutý v rokoch 1937 až 1942 pod vedením profesora Atanasoffa a jeho doktoranda Bessyho vo vtedajšej College štátu Iowa. Myšlienky von Neumanna boli v plnej miere uplatnené až pri vývoji počítačov EDSAC (Electronic Delay Storage Automatic Calculator) na univerzite v Cambridgi a EDVAC (Electronic Discreate Variable Computer) na univerzite v Pensylvánii v roku 1949, v ktorých sa programy už zapisovali (ukladali) do pamäte. V 50. rokoch je zaznamenaný prudký vývoj elektronických počítačov v celom svete. V bývalej ČSR boli v tomto období vyvinuté počítače: reléový SAPO a elektrónkový EPOS, v ktorých niektoré uplatnené myšlienky, ako napríklad princíp hlasovania na zabezpečenie spoľahlivosti, použitie paritných kódov, použitie dekadickej aritmetiky, kódu zvyškových tried, vnútorného prideľovania času a obvodovými prostriedkami zabezpečené multiprogramovanie predstavovali významné architektonické riešenia, v dôsledku čoho sa tieto počítače, najmä však tranzistorová verzia počítača EPOS, v tom čase zaradili medzi svetovú špičku.
Ďalší vývoj bol pomerne búrlivý a tak ďalší vývoj bude uvedený heslovito vo forme generácií počítačov. Pojem generácia počítačov bol zavedený v 70. rokoch, aby bolo možné odlíšiť jednotlivé stupne vývoja počítačov z hľadiska ich architektonického riešenia, použitej prvkovej základne, používateľského prístupu, programového vybavenia, jazykových prostriedkov a aplikačného určenia.
Nultá generácia (- 1945)
· prvková základňa: elektromechanická, pamäť: mechanická (prepojky v lepšom prípade dierna páska a dierny štítok, nerozlišuje sa vnútorná a vonkajšia pamäť),
· jediná centrálna procesorová jednotka dekomponovaná na riadiacu a aritmetickú jednotku, mnoho funkcií v pevnom tvare,
· aritmetika v pevnej rádovej čiarke, sekvenčný program,
· programovanie: mechanické (prepojky, spínače),
· individuálny prístup používateľa k počítaču.
· predstavitelia: MARK I,II (USA 1943), RMV (ZSSR), SAPO (ČSR)
Obr. 5 Počítač MARK 1
Prvá generácia (1945 - 1950):
· prvková základňa: elektrónky, pamäť: magnetická bubnová (nerozlišuje sa vnútorná a vonkajšia pamäť),
· jediná centrálna procesorová jednotka - procesor (CPU - Central Processor Unit) v dekomponovanom tvare na riadiacu jednotku a aritmetickú jednotku),
· aritmetika v pevnej rádovej čiarke, využívajúca programové počítadlo, inštrukcie vetvenia a akumulátor,
· účasť CPU na všetkých pamäťových a Vstupno/Výstupných operáciách,
· programovanie v strojovom jazyku alebo v assembleri,
· individuálny prístup používateľa k počítaču.
· predstavitelia: ENIAC (USA), IBM650 (USA), URAL (ZSSR), EPOS (ČSR)
Druhá generácia (1950-1960):
· prvková základňa: tranzistory, operačná pamäť: feritová,
· dvojúrovňová pamäť: vnútorná (operačná) pamäť a vonkajšia pamäť,
· aritmetika v pohyblivej rádovej čiarke, multiplexovanie pamäte, indexové registre,
· V/V operácie vykonáva V/V jednotka (V/V procesor),
· programovanie v jazykoch vyššej úrovne (Fortran, Algol, Cobol),
· jazyk medziregistrových prenosov na navrhovanie technických prostriedkov číslicových počítačov,
· vznik jednoduchších operačných systémov, začiatok uplatňovania filozofie prideľovania času a jednoduchých prerušovacích systémov, dávkový spôsob prístupu používateľa k počítaču
· predstavitelia: IBM1401 a Spectra70 (USA), MINSK (ZSSR), ZPA600 a Tesla200 (ČSR)
Tretia generácia (1960 - 1975):
· prvková základňa: tranzistorové mikromoduly a neskôr integrované obvody SSI a MSI, hlavná pamäť: feritová, polovodičová,
· operačná rýchlosť: rádovo 106 op/s (FLOPS – FLoating point Oeration Per Second = operácie v pohyblivej rádovej čiarke za sekundu), kapacita operačnej pamäte: rádovo 0,1 až 10 MB (MegaByte = Megabajt),
· existencia rodín počítačov kompatibilných smerom od jednoduchších k zložitejším modelom,
· mikroprogramové riadenia CPU
· prúdové spracovanie informácií (pipelining),
· vyrovnávacie pamäte typu cache na vyrovnávanie rýchlosti medzi hlavnou pamäťou a CPU,
· ďalší rozvoj vyšších programovacích jazykov, ich rozšírenie o jazyky simulačné
· multiprogramovanie podporujúce viacpoužívateľský prístup prostredníctvom prekrývania činnosti CPU a V/V jednotiek,
· operačný systém na podporu virtuálneho pamäťového priestoru so zdieľaním zdrojov,
· aplikácie v oblasti informačných a riadiacich systémov, pracujúcich v reálnom čase.
· predstavitelia: IBM370 (USA), EC1045 (ZSSR), EC1027 (ČSSR)
Štvrtá generácia (1975 - 1990):
· prvková základňa: integrované obvody LSI, VLSI, mikroprocesory, hlavná pamäť: polovodičová (dynamická), uplatňovanie nových fyzikálnych princípov (holografia, laserová technika a pod.),
· operačná rýchlosť: dosahuje rádovo 1 až l00 MFLOPS, kapacita hlavnej pamäti l0 MB až 100 GB,
· architektúry výkonných paralelných počítačových systémov (multiprocesorových a multipočítačových) so zdieľanou a distribuovanou pamäťou: rozvoj superpočítačov, výkonných personálnych počítačov, pracovných staníc a počítačových sietí, technická podpora riešenia vektorových operácii (vektorové procesory), operačné systémy, jazyky a kompilátory na podporu paralelného spracovania procesov (multiprocessing),
· vysokošpecializované a konverzačné jazyky, maximálne zjednošujúce styk používateľa s počítačom,
· podpora riešenia systémových programov technickými prostriedkami,
· viacprocesorové koncepcie počítačových systémov umožňujúcich paralelný prístup veľkého počtu používateľov (distribuované počítačové systémy),
· rozvoj lokálnych a regionálnych počítačových sietí
· predstavitelia: mikropočítače (IBM PC, Apple Macintosh), minipočítače (DEC (Compaq), Hewlett Packard, Sun), sálové počítače, superpočítače (CRAY), prvé domáce počítače ...
Obr. 6 Sálový počítač IBM ES9000 a prvé IBM PC
Piata generácia (1990 - ):
· prvková základňa: integrované obvody s hustotou rádovo l06 diskrétnych prvkov na čipe, vďaka využívaniu nových technológií (technológia GaAs a optické technológie),
· architektúry nových počítačových systémov v triede paralelných počítačov s extrémnym počtom procesorov resp. procesorových elementov (masívne paralelné počítače), počítačov na logické programovanie, databázových a znalostných počítačov, personálnych počítačov a počítačov sieťových prostredí,
· uplatňovanie princípov skalability pri návrhu architektúr počítačových systémov s dôrazom na dosiahnutie vysokých hodnôt spoľahlivostných parametrov a parametrov výkonnosť/cena,
· heterogénne počítačové systémy na riešenie rozsiahlych problémov (heterogeneous processing),
· inteligentný medztistyk (porozumenie reči, obrazu a prirodzeného jazyka) a dôraz na riešenie úloh umelej inteligencie,
· počítačové systémy integrovaných komunikácií so zdôraznením telekomunikačnej techniky a multimediálnej techniky,
· ciele nových architektúr: dosiahnutie výkonnosti rádovo v TFLOPS-och.
V súvislosti s vývojom počítačom rezonuje v súčasnosti najmä otázka informačných technológií a informačnej spoločnosti. Informačné technológie reprezentujú riešenia technických prístupov na zber, prenos a ukladanie informácii, vrátane prístupov na zabezpečenie procesov ich spracovania a komunikačných procesov pre potreby aplikácií a prípravy ich implementačného prostredia. Medzi najvýznamnejšie z nich patria:
· technológia softvérových produktov,
· počítačové siete: lokálne (LAN - Local Area Network), mestské (MAN - Metropolitan Area Network) a regionálne (WAN - Wide Area Network),
· komunikačné a sieťové prostredia (Internet, Intranet, elektronická pošta),
· optoelektronické pamäťové média (CD ROM - Compact Disk Read Only Memory),
· multimediálne systémy, počítačová grafika a virtuálna realita (Obr. 7),
· elektronické noviny, časopisy a pod.,
· interaktívna televízia.
Vývoj nových výpočtových prostriedkov predstavuje významnú charakteristickú črtu rozvoja VT. Vo vývoji súčasných počítačových systémov sa zdôrazňuje potreba dosiahnuť vysoké hodnoty najmä ich nasledujúcich parametrov: výkonnosť-cena, skalabilita a spoľahlivosť. Podmienky na dosiahnutie týchto cieľov vytvárajú:
·
uplatnenie nových fyzikálnych princípov (optoelektronika,
nové polovodičové materiály, ...),
· technológia výroby stavebných komponentov (vysoký stupeň prvkov na čipe),
· architektonické riešenie (paralelné a špecializované počítačové architektúry, masívne paralelné architektúry, počítačové a telekomunikačné sieťové prostredia).
Obr. 7 Pracovisko virtuálno-realitného systému s detailom datovej prilby a ukážkami virtuálnych modelov (KPI FEI TU Košice)
Číslicový počítač je definovaný ako zložitý univerzálny číslicový systém (automat), určený na samočinné vykonávanie požadovanej postupnosti operácií (výpočtov) nad údajmi, zobrazenými číslicovým kódom, na základe vopred pripraveného a v pamäti uloženého programu.
Okrem toho si tu ešte vysvetlíme ďalšie pojmy, ktoré bude v nasledujúcom výklade používať častejšie:
Výpočtový proces je transformácia vstupných údajov na výstupné. Je to postupnosť operácií, ktoré vedú od počiatočných vstupných údajov ku konečným výsledkom.
Technické prostriedky (hardvér, angl. hardware) sú technické zariadenia číslicového počítača, ktoré umožňujú uchovávanie, spracovanie a prenos binárne kódovaných informácií. Tieto prostriedky sú navzájom poprepájané do určitej architektúry, ktorá charakterizuje spôsob spracovania informácií.
Programové prostriedky (softvér, angl. software) - programy - v užšom význame sú to binárne zakódované informácie o spôsobe spracovania určitých údajov doplnené podľa potreby o binárne zakódované údaje - t.j. program tvorí postupnosť inštrukcií a údajov. Program môže existovať v rôznych formách. Tá forma, ktorá je binárne kódovaná a je priamo vykonateľná na danom číslicovom počítači, sa nazýva vykonateľná forma. Program môže existovať aj v textovom tvare ako tzv. zdrojový text zapísaný v nejakom programovacom jazyku. Programové prostriedky daného číslicového počítača sú programy, ktoré môže daný počítač vykonávať - sú vykonateľné na danej architektúre.
Počítačový systém (výpočtový systém) je systém zahrňujúci číslicový počítač (základné technické vybavenie - technické prostriedky), prídavné technické vybavenie a programové vybavenie (programové prostriedky).
Základný koncept počítača, ktorý vykonáva postupnosť operácií na dosiahnutie konečného výsledku, je známy viac ako 150 rokov. Bol použitý v mechanických dekadických počítacích strojoch, ktoré navrhol a čiastočne zostrojil už v úvode spomínaný Charles Babbage. Jeho analytický stroj (Analytical Engine) z r. 1834 obsahuje centrálnu procesorovú jednotku (mechanickú, s dekadickou aritmetikou), pamäť (mechanickú) a vstupnú a výstupnú jednotku (pre dierne karty), t.j. všetky základné časti moderných počítačov. Program a údaje pre tento stroj sú na diernych kartách. Samozrejme, vtedajšia mechanická technológia nedovolila úspešnú realizáciu funkčných zariadení, takže jeho myšlienky zostali viac ako 100 rokov nevyužité. Až vytvorenie elektronických obvodov v 40. rokoch 20. storočia ich umožnilo zaviesť do praxe. V tomto čase John von Neumann predložil základný princíp počítača riadeného tokom inštrukcií, ktorý sa stal základom jednej triedy súčasných počítačov. Táto trieda počítačov býva tiež označovaná ako von Neumannovské počítače. Vyznačuje sa tým, že jednotlivé inštrukcie programu sa vykonávajú postupne za sebou, tak ako sú uložené v pamäti. V súčasnosti existujú aj výpočtové systémy, v ktorých sa inštrukcie nevykonávajú v poradí, v akom sú uložené v pamäti (napr. počítače riadené tokom údajov, neurónové počítače a iné). V tomto počítači sa vykoná práve tá inštrukcia, ktorá má pripravené údaje, pričom nezáleží od jej poradia
Pre vysvetlenie princípu nám poslúži nasledujúci obrázok. Základné črty von Neumannovského počítača sú:
· Pamäť použitá na uloženie inštrukcií aj údajov
· Riadiaca jednotka použitá na výber inštrukcií z pamäte.
· Aritmeticko-logická jednotka použitá na vykonávanie špecifikovaných operácií nad údajmi.
· Vstupná jednotka použitá na vstup údajov, výstupná jednotka na výstup údajov.
Obr. 8 Analógia a bloková koncepcia von Neumannovského počítača
Pamäť je množina rovnakých buniek, z ktorých každá je samostatne identifikovateľná svojim poradovým číslom-adresou. Inštrukcie a údaje, uložené v pamäti, sú zakódované dvojkovým kódom.
Inštrukcia (príkaz pre riadiacu jednotku) určuje, aká operácia sa má vykonať a s ktorými údajmi. Inštrukcie sa vykonávajú postupne za sebou, tak ako sú uložené v pamäti. Výnimkou sú skokové inštrukcie. Implicitne sa predpokladá pripravenosť údajov, ktoré vykonávaná inštrukcia požaduje. Dvojkovo zakódované inštrukcie sú označované ako strojové inštrukcie. Operácie, špecifikované v strojových inštrukciách, sú obyčajne iba jednoduché, napr. aritmetické a logické operácie, posuvy atď. , čo poskytuje najväčšiu flexibilitu. Zložitejšie operácie potom vytvára používateľ ako postupnosť inštrukcií. Z danej množiny strojových inštrukcií (inštrukčný súbor procesora) používateľ vyberá inštrukcie na vykonanie požadovaného výpočtu. Táto postupnosť vybraných inštrukcií sa nazýva strojový program počítača.
Riadiaca jednotka a aritmetická jednotka sú zvyčajne realizované ako jeden funkčný blok, ktorý sa nazýva centrálna procesorová jednotka (CPU) alebo skrátene procesor. Ak je procesor integrovaný na jedinom polovodičovom čipe, nazýva sa mikroprocesor. Procesor obsahuje niekoľko registrov, ktoré sú použité na uchovávanie špecifických operandov (použitých pri výpočte), adries a riadiacich informácií. Počet registrov a ich funkcia závisí od konkrétneho procesora, ale niektoré registre sú prítomné v každom procesore von Neumannovského počítača. Typickým registrom je programové počítadlo (register PC – Program Counter). Obsahuje adresu nasledujúcej inštrukcie, ktorá sa bude vykonávať
Von Neumannov počítač je predstaviteľom tzv. Princetonskei architektúry počítačov, ktorá sa vyznačuje spoločnou pamäťou pre inštrukcie i údaje. Z tohto vyplýva, že je potrebné zabezpečiť, aby procesor neinterpretoval údaj ako inštrukciu a naopak. Prístup procesora k pamäti je totiž rovnaký, či sprístupňuje inštrukciu alebo údaj - používajú sa tie isté adresné, údajové i riadiace signály. Takéto usporiadanie pamäte potom umožňuje používať aj tzv. samomodifikujúce sa programy. t.j. program počas svojho behu môže meniť sám seba. Je potrebné si však uvedomiť, že takáto situácia môže nastať aj neželane, Či už nesprávnym programom alebo vplyvom poruchy. Niektoré súčasné typy procesorov už vykonávajú kontrolu správnosti prístupu k pamäti vlastnými technickými prostriedkami. V prípade, že sa niektorý prístup k pamäti vyhodnotí ako nesprávny (napr. procesor sa pokúša zapisovať do oblasti pamäte, ktorá je vyhradená na uloženie inštrukcií), automaticky sa generuje výnimka. Túto situáciu potom rieši operačný systém počítača. Príkladom počítačov s Princetonskou architektúrou sú napr. počítače s procesormi rodiny Intel80x86.
Počítače s Harvardskou architektúrou majú oddelený adresný priestor pre program a pre údaje, takže situácia, aby program prepísal sám seba, nemôže nastať. Táto architektúra sa v súčasnosti používa najmä pri niektorých jednočipových mikropočítačoch. Jednočipový mikropočítač sa vyznačuje tým, že všetky štruktúrne prvky počítača (t j. procesor, pamäť a vstupné a výstupné obvody) sú integrované na jedinom polovodičovom čipe. Procesor používa na adresáciu obidvoch pamätí a na prenos údajov a inštrukcií obyčajne spoločné adresné a údajové vodiče, rozlišovanie medzi prístupom k pamäti programu a k pamäti údajov vykoná aktiváciou odlišných riadiacich signálov. Príkladom počítača s Harvardskou architektúrou je jednočipový mikropočítač Intel8051.
Tieto počítače nevykonávajú inštrukcie postupne za sebou, tak ako sú uložené v pamäti, vykoná sa práve tá inštrukcia, ktorá má pripravené údaje. Ak má viac inštrukcií pripravené svoje údaje, tieto inštrukcie sa vykonajú paralelne. Jedná sa teda o paralelné, viacprocesorové počítače. Poznamenajme, že je potrebné vedieť vytvoriť toľko kópií vstupných údajov, koľko je inštrukcií, ktoré ich budú potrebovať. Počítače riadené tokom údajov predstavujú osobitnú triedu paralelných počítačov. Sú to počítače novej generácie s vysokou výkonnosťou. Ďalšou významnou vlastnosťou je, že programu sa prispôsobuje štruktúra technických výpočtových prostriedkov. V pamäti inštrukcií sa nachádzajú všetky inštrukcie programu. Zvláštny prvok počítača tzv. arbitračná sieť zisťuje, ktorá inštrukcia (inštrukcie) je pripravená na vykonanie (t j. ktorá má pripravené všetky svoje vstupné údaje). Túto inštrukciu potom vyberie a pridelí ju na vykonanie niektorému voľnému procesoru z poľa procesorov. Keď procesor vykoná príslušnú inštrukciu, pošle výsledok do distribučnej siete.
S vývojom počítačov sa vyvíjali aj klasifikačné hľadiská, podľa ktorých sa jednotlivé typy číslicových počítačov rozlišovali a zatrieďovali do charakteristických skupín. Medzi najrozšírenejšie kritéria, podľa ktorých sa klasifikujú číslicové počítače patria:
· technické parametre,
· aplikačné určenie,
· používateľský prístup,
· typ spracúvaných informácií,
· architektonická koncepcia,
· perspektívny rozvoj.
Tieto prístupy klasifikácie počítačov do určitej miery odzrkadľujú i historické opodstatnenie používania toho ktorého klasifikačného kritéria. V ďalšom sú uvedené najznámejšie prístupy klasifikácie číslicových počítačov. V prvých fázach vývoja číslicových počítačov sa pri ich klasifikácii vychádzalo z niektorých základných technických parametrov, menovite operačnej rýchlosti R a kapacity C hlavnej pamäte, ktoré boli významným rozlišovacím faktorom v tej dobe. Podľa hodnôt týchto parametrov boli číslicové počítače zatrieďované do nasledujúcich skupín:
· malé počítače (R < 105 op/s, C < 32 KB),
· stredné počítače (105 op/s < R < 106 op/s, 64 KB < C < 512 KB),
· veľké počítače (R > 106 op/s, C > 1024 KB).
Pri vývoj i malých počítačov sa začali uplatňovať snahy, aby nové výpočtové prostriedky boli pri zachovaní pôvodnej funkcie jednoduchšie a lacnejšie. So zdokonaľovaním a zlacňovaním výrobnej technológie integrovaných obvodov sa zvyšovala efektívnosť malých počítačov. Vytvorila sa možnosť pripojenia veľkého počtu periférnych zariadení. Tým na báze konvenčných malých počítačov vznikli nové výpočtové prostriedky, označované ako minipočítače, ktoré sa svojou výkonnosťou a funkčnými možnosťami stále viac začali približovať stredným počítačom.
S ďalším zdokonaľovaním integrovaných obvodov sa v polovici 70. rokov začína prudký vývoj číslicových systémov, označovaných ako mikroprocesory, ktoré sú reprezentované rôznymi architektúrami procesorov, konštrukčne realizovanými jedným integrovaným obvodom (v začiatočných štádiách vývoja – niekoľkými integrovanými obvodmi). Počítač, ktorého základnú jednotku tvorí mikroprocesor, sa nazýva mikropočítač. Hlavný rozdiel medzi mikropočítačmi a minipočítačmi spočíval v ich aplikačnom určení. Zatiaľ čo minipočítače svojimi možnosťami začali plniť úlohu univerzálnych konvenčných počítačov, mikropočítače boli skôr orientované na jednoúčelové využitie ako komponenty v systémoch s lokálnym číslicovým spracovaním informácii a riadením, v univerzálnych počítačových systémoch, vo výkonných viacprocesorových, resp. viacpočítačových systémoch a pod. Vychádzajúc z uvedených súvislostí je možné i v súčasnosti rozlišovať nasledujúce klasické skupiny číslicových počítačov, odvodené od ich aplikačného určenia:
univerzálne, ktoré sa vyznačujú sa spôsobilosťou efektívne riešiť najširšie spektrum úloh: vedecko-výskumných, inžinierskych, ekonomických, ktoré si z druhej strany vyžadujú mať výpočtové prostredie na spracovanie rôznych typov informácií (numerické, nenumerické, a pod., (ich predstaviteľmi sú konvenčné počítače vyšších výkonnostných kategórií),
problémovo orientované, ktoré sa vyznačujú spôsobilosťou efektívne riešiť úlohy v ohraničenej triede aplikácií, avšak s možnosťou hromadného uplatnenia najmä v oblasti tvorby informačných a riadiacich systémov lokálneho významu, systémov počítačom podporovaného navrhovania, diagnostiky, riadenia experimentu a pod., (ich predstaviteľmi boli mikro- a minipočítače, v súčasnosti sú reprezentované širokým sortimentom osobných počítačov a pracovných staníc),
špecializované, ktoré sa vyznačujú spôsobilosťou efektívne riešiť spravidla jednu úlohu, resp. veľmi úzky okruh úloh, podľa vopred určeného algoritmu a najčastejšie predstavujú komponent, ktorý je súčasťou väčšieho automatizačného celku: technologického zariadenia, riadiacich jednotiek, pripadne komplexných riadiacich a informačných systémov a pod. (v súčasnosti sa výpočtové prostriedky s uvedenou koncepciou označujú ako vnorené systémy).
Reprezentuje jednu z najrozšírenejších klasifikácií číslicových počítačov z roku 1966, v ktorej sa uplatňuje hľadisko architektonickej koncepcie počítačov. Podľa Flynna sa architektúry počítačov rozlišujú v závislosti od súčasne spracúvaných údajových a inštrukčných prúdov prenášaných medzi procesorom a pamäťou pri vykonávaní výpočtového procesu. V súvislosti s uvedeným existujú štyri základné typy počítačových architektúr:
· Architektúra SISD (Single Instruction Single Data stream) - reprezentuje konvenčné architektúry von Neumannovského typu, v ktorých inštrukcie jediného prúdu (jediného programu) postupne vykonávajú operácie s údajmi (operandmi) jediného údajového prúdu.
· Architektúra MISD (Multiple Instruction Single Data stream) - reprezentuje tzv. zreťazené (prúdové) počítačové systémy, v ktorých jediný údajový prúd sa spracúva viacnásobným inštrukčným prúdom. Z praktického hľadiska majú v tejto architektúre význam systémy, kde sa jedná o zreťazené spracovanie údajového prúdu v procesoroch dekomponovaných na čiastkové operačné segmenty. V nich sa v každom časovom okamihu vykonávajú príslušné operácie definované viacnásobným prúdom inštrukcií, avšak vždy iba jedného programu. V zmysle Flynnovej klasifikácie v architektúre MISD by sa mali vykonávať súbežne inštrukcie viacerých programov s údajmi jediného údajového prúdu, v dôsledku čoho táto architektúra v pravom zmysle slova predstavuje iba určitú klasifikačnú abstrakciu, ktorá z praktického hľadiska nemá význam.
· Architektúra SIMD (Single Instruction Multiple Data stream) - je architektúra, v ktorej jediný prúd inštrukcií vykonáva operácie nad mnohonásobným prúdom údajov, čo je charakteristické pre paralelné počítačové systémy, v ktorých sa takto realizujú vektorové, maticové manipulačné operácie so štruktúrovanými údajmi. Vzhľadom na uvedené architektúry SIMD reprezentujú špecializované počítačové systémy, určené na efektívne riešenie vybraného okruhu úloh.
· Architektúra MIMD (Multiple Instruction Multiple Data stream) - je architektúra, v ktorej viacnásobný prúd inštrukcií viacerých programov alebo úloh spracúva mnohonásobný údajový prúd. Reprezentuje rôzne typy multiprocesorových a multipočítačových architektúr, ktoré predstavujú najvýkonnejšiu skupinu počítačových systémov univerzálneho typu.
Okrem Flynnovej klasifikácie existuje množstvo ďalších klasifikačných prístupov zameraných na klasifikáciu počítačových architektúr, ktoré majú význam pri klasifikácii paralelných počítačových systémov. Spomedzi nich medzi najvýznamnejšie patria Fengova klasifikácia z roku 1972, podľa ktorej sa počítače zatrieďujú do príslušných skupín z hľadiska počtu slov a bitov spracúvaných paralelne za vopred určenú časovú jednotku a Händlerova klasifikácia z roku 1977, podľa ktorej sa počítače zatrieďujú do príslušných skupín z hľadiska počtu procesorov, aritmeticko-logických jednotiek a elementárnych logických elementov v ich štruktúrnej organizácii.
Obr. 9 Klasifikácia architektúr počítačových systémov podľa Flynna
Informácie sa v počítači reprezentujú (zobrazujú) prostredníctvom hodnôt istých premenných fyzikálnych veličín. V reálnom počítači môžu tieto fyzikálne veličiny nadobúdať hodnoty iba z konečnej množiny hodnôt. Nositeľom hodnoty v elektronických počítačoch je elektrické napätie.
Pri analógovom zobrazení ide o spojité zobrazenie t.j. každej hodnote vstupnej veličiny zodpovedá určitá hodnota fyzikálnej veličiny (ktorá je nositeľom informácie) v počítači. Na nasledujúcom obrázku je naznačené analógové zobrazenie informácií. Vstupnú veličinu predstavujú čísla v rozsahu <-300; +300>. Im zodpovedá hodnota napätia v počítači v rozsahu <0 V. +5 V>. Tak napr. číslu -300 zodpovedá v tomto prípade napätie 0 V, číslu 0 napätie 2,5 V a číslu +300 napätie + 5 V. Uvedený spôsob zobrazenia sa používal pri analógových počítačoch, s ktorými sa už v praxi nestretneme.
Obr. 10 Princíp analógového zobrazenia informácií
Pri číslicovom zobrazení sa údaje v počítači uchovávajú vo vnútorných pamäťových prostriedkoch, ktoré sa nazývajú registre a pamäti.
Register je usporiadaná n-tica základných pamäťových elementov, ktoré sú dvojhodnotové t.j. sú schopné uchovávať jednu z dvoch hodnôt H resp. L, kde H označuje vysokú a L nízku hodnotu fyzikálnej veličiny, ktorá je nositeľom informácie. Týmto dvom hodnotám fyzikálnej veličiny je možné priradiť boolovské (logické) hodnoty 0 a 1 niektorým z týchto spôsobov:
Lŕ0 |
|
Lŕ1 |
|
|||
Hŕ1 |
|
Hŕ0 |
|
|||
|
Pozitívna logika |
|
Negatívna logika |
|||
Jedno pamäťové miesto v registri sa nazýva - bit (skratka z binary digit - dvojková číslica). Jednotlivé bity registra budeme označovať číselne sprava doľava, začíname číslom 0. Tento bit budeme nazývať ako nultý, ďalší v poradí bude prvý atď. Nultý bit je najmenej významný, (n-1)-bit je najvýznamnejší. Na nasledujúcom obrázku je znázornený n-bitový register (register s dĺžkou n) s značením jednotlivých bitov. Ak je počet bitov n=8, potom budeme hovoriť o bajt-e (byte).
Obr. 11 n-bitový register
Pamäť , ako už bolo spomenuté, je množina rovnakých buniek, z ktorých každá je samostatne identifikovateľná svojou pozíciou - adresou. Pre každú bunku pamäte platí rovnaká špecifikácia, aká už bola uvedená pre register.
Pre reprezentáciu informácií v pamäti čislicového počítača sa teda používa kódovanie pomocou postupnosti číslic 0 a 1. Sú to číslice, ktoré používa dvojková (binárna) číselná sústava. Preto uvedené postupnosti 0 a 1 budeme nazývať binárny kód. V tomto zmysle pomocou jednej dvojkovej číslice je možné kódovať nielen elementárnu číselnú (kvantitatívnu) informáciu (množstvo 0 alebo 1), ale ľubovoľnú elementárnu informáciu interpretovateľnú ako logická hodnotu (Boolovkú hodnotu) pravda alebo nepravda, áno alebo nie a pod.
Obr. 12 Ilustrácia binárneho kódovania
Keďže z názvu binárna číslica (binary digit - bit) pochádza aj názov elementárnej jednotky pamäti, potom sa niekedy okrem pojmu binárny kód používa aj označenie bitový kód.
V číslicovom počítači sú binárne (bitovo) zobrazované (kódované) všetky druhy informácií:
údaje (údajové štruktúry) - informácie, ktoré sú predmetom alebo výsledkom spracovania (operandy, výsledky)
inštrukcie - informácie, ktoré definujú spôsob spracovania (operácie s operandami, operácie bez operandov)
Číslicový počítač pracuje s bitovo kódovanými informáciami - informáciami vo vnútornom (strojovom) tvare. Takéto kódovanie má z hľadiska strojového spracovania niekoľko výhod. Pre človeka je ale binárny spôsob ťažkopádny a neprirodzený. Preto vstupné a výstupné údaje sa zobrazujú pre používateľa v prijateľnejšej forme - vo vonkajšom tvare ako:
· logické hodnoty
· čísla v desiatkovej (prípadne osmičkovej a šestnástkovej) sústave
· znaky a texty v národnej abecede
· farebné alebo čiernobiele obrázky
· sekvencie obrázkov (videosekvencie)
· zvuk
Poznať spôsob kódovania informácií v číslicovom počítači, operácie s týmito kódmi a spôsob prevodu - transformácie informácií z vnútorného do vonkajšieho tvaru a naopak je užitočné najmä pre:
programovanie na úrovni strojového kódu: strojovo-orientované jazyky používajú ako operandy binárne kódované informácie, preto programátor pracujúci na úrovni strojového jazyka potrebuje poznať tieto kódy.
pre programovanie vo vyššom programovacom jazyku: programátor sa často musí rozhodnúť pre výber vhodného typu údajových štruktúr z hľadiska rýchlosti operácií, pamäťových nárokov a požadovanej presnosti. Pri tomto rozhodovaní je dobré poznať implementáciu týchto typov v pamäti, t.j. ich kódovanie (vnútorný tvar), pre číselné typy ich presnosť, interval zobrazenia (minimálne a maximálne zobraziteľné čísla), zložitosť operácií (časová náročnosť) a pod.
výber vhodného počítača a programovacieho jazyka pre riešenie danej úlohy.
Problematika kódovania údajov je podstatne širšia ako poskytuje priestor tejto publikácie. Cieľom ale nie je podať veľa alebo všetko, ale iba to, čo je považované z hľadiska základov výpočtovej techniky a programovania za podstatné. Podrobnejšie bude prebraté kódovanie číselných informácií.
Najjednoduchší údajový typ je jednoduchý logický (boolovský) typ, pri ktorom má množina hodnôt iba dva prvky, ktoré označujeme symbolmi T a F (True resp. False) alebo 1 a 0. Tento údajový typ je možné priamo zobraziť (kódovať) do registra s dĺžkou n, pričom bude zaberať iba jediný bit. Ostatné bity by boli nevyužité a tak sa často do registra s dĺžkou n zobrazuje n booleovských premenných, z ktorých každej je priradený jeden bit.
Zložitejším údajovým typom je boolovský vektor s dĺžkou k. Ak je k <n, tento vektor je možné priamo zobraziť do registra s dĺžkou n.
Číselná sústava je systém jednoznačných pravidiel pre zobrazenie číselných hodnôt pomocou konečného počtu znakov (číslic, cifier). Číslo je reprezentované v danej číselnej sústave postupnosťou (reťazcom) číslic (alebo nejakých znakov). Číselnú sústavu charakterizuje z vonkajšieho pohľadu použitá množina znakov - číslic.
Číslo ako abstraktný prostriedok vhodný na vyjadrenie kvantity pri dorozumievaní má svoju hodnotu a zápis. Hodnotou čísla (ďalej len hodnotou) obyčajne rozumieme množstvo, počet, veľkosť alebo inú kvantifikovateľnú vlastnosť.
Hodnota čísla je kvantita, ktorú číslo reprezentuje.
Zápis čísla je postupnosť (reťazec) číslic (cifier, znakov), ktoré predstavujú dohodnutý kód pre danú kvantitu (množstvo) v danej číselnej sústave.
V komunikácii medzi ľudmi sa používajú najčastejšie čísla v desiatkovej (dekadickej) číselnej sústave. Preto pod hodnotou čísla si obyčajne predstavíme zápis tohto čísla práve v desiatkovej sústave. Napr. pod hodnotou čísla VIII (zápis v sústave rímskych číslic) si predstavíme 8, za kladným dvojkovým číslom 1001 si predstavíme hodnotu 9.
Pri zápise čísel v rozličných sústavách budeme ďalej používať (pokiaľ to bude pre zrozumiteľnosť potrebné) zátvorkový zápis s vyznačením základu uvažovanej číselnej sústavy v tvare:
(X…)z ,kde X je číslica v danej sústave a z je základ sústavy.
Pri osmičkových číslach sa používa aj zápis v tvare oXXXX, napr. o27. Pri šestnástkových číslach sa používa aj zápis v tvare XXXXH, napr. 1AH = (1A)16. Ak najľavejšia cifra je reprezentovaná znakom A,B,C,D,E, alebo F, pred číslom sa uvádza znak 0, napr. 0FFH = (FF)16
Rovnaký zápis čísla v rôznych číselných sústavách môže zodpovedať rôznym hodnotám. Napríklad zápis 32 predstavuje v dekadickej sústave hodnotu 32, ale v osmičkovej sústave hodnotu 26. Opačne: rôzny zápis v rôznych číselných sústavách môže predsavovať rovnakú hodnotu. Napr. zápis 12 v osmičkovej sústave a aj zápis 1010 v dvojkovej sústave predstavujú rovnakú hodnotu 10 (v desiatkovej sústave).
Podľa toho, ako ovplyvňuje pozícia číslice v zápise čísla jeho hodnotu, rozdeľujeme číselné sústavy na:
· nepozičné
· pozičné
V nepozičných číselných sústavách nezávisí príspevok každej číslice k hodnote čísla vždy od pozície tejto číslice v zápise. Príkladom nepozičnej sústavy je sústava rímskych číslic. V zápise čísla VIII každý zo znakov ‘I’ prispieva k celkovej hodnote čísla čiastkovou hodnotou 1. Tu pozícia číslice I neovplyvňuje hodnotu, ktorou prispieva táto číslica k celkovej hodnote čísla. Ale v číslach IV a VI je príspevok číslice I závislý od pozície: v prvom prípade číslica I zmenšuje hodnotu V o jedna, v druhom prípade ju o 1 zväčšuje.
Iný príklad: Nepozičnou
sústavou je aj sústava bežne používaná a všeobečne známa v pohostinstvách.
Tam zápis ˝˝˝˝ ˝˝ predstavuje hodnotu sedem.
Z hľadiska výpočtovej techniky majú význam pozičné sústavy, preto sa ďalej budeme zaoberať len pozičnými číselnými sústavami.
Pozičné číselné sústavy sú charakteristické tým, že čiastkové hodnoty, ktorou prispievajú jednotlivé číslice k hodnote čísla, závisia od pozície číslice v zápise čísla (každá pozícia v zápise čísla má iný rád), od základu číselnej sústavy a od hodnoty, ktorú predstavuje číslica. Napr. v desiatkovom čísle 3243.563 najľavejšia číslica 3 prispieva k hodnote tohto čísla čiastkovou hodnotou 3*103 = 3000 a najpravejšia číslica v zápise hodnotou 3*10-3 = 0.003.
Ak základ pozičnej číselnej sústavy je: z
a zápis čísla je v tvare: anan-1 ...a1a0 . a-1a-2...a-m
n m
potom hodnotu čísla môžme vyjadriť: H = S ai zi + S a-j z-j
i=0 j=1
celá desatinná
časť časť
(n+1 rádov) (m rádov)
Pre hodnoty všetkých číslic ai v zápise čísla platí: ai Î { 0,1,..., z-1 }
Jednotlivé pozície, na ktorých sa nachádzajú číslice v zápise čísla, sú jednoznačne definovateľné pomocou tzv. rádu.
Rád je celočíselné jednoznačné označenie každej pozície v zápise čísla. Je zviazaný s indexom (exponentom ) i. Smerom od desatinnej bodky vľavo sú rády celej časti čísla (tieto rády sú nezáporné, označované 0,1,2,...). Napravo od desatinnej bodky sú rády desatinnej časti (rády -1,-2,-3,...).
Každý rád v pozičnej sústave so základom z je charakterizovaný váhou, váha i-teho rádu je zi.
V konkrétnom zápise čísla v pozičnej číselnej sústave so základom z, hodnota číslice v i-tom ráde definuje hodnotu tohto rádu. Napr. pre číslo 324.56 v desiatkovej sústave platí:
číslica 2 je v 1.ráde Ţ váha 1. rádu je 101 Ţ hodnota cifry (číslice) v 1. ráde je 2 Ţ hodnota 1. rádu je 2*10 = 20
V súvislosti s programovaním a výpočtovou technikou vôbec sa najčastejšie stretneme s číslami v sústave:
desiatkovej (dekadickej) - používa sa pre kódovanie vonkajšieho tvaru číselných informácií (napr. pre reprezentáciu číselných údajov na obrazovke alebo v tlačovej zostave)
osmičkovej (oktálovej)
šestnástkovej (hexadecimálnej) - zápis čísel v týchto sústavách slúži hlavne ako sprostredkujúca medziforma medzi strojovým (binárnym) kódom a vonkajším tvarom (napr. dekadickým pre čísla, znakovým alebo reťazcovým pre znakové informácie) napr. pre výpis obsahu pamäte, používajú ju hlavne profesionáli (programátori a iní špecialisti). Oproti dvojkovej sústave má osmičková a šestnástková sústava výhodu v kratšom zápise čísel (napr. je určite jednoduchšie hovoriť o adrese 1F00H ako o adrese 1111100000000.)
dvojkovej (binárnej) - používa sa na kódovanie informácií na strojovej úrovni
Preto sa ďalej budeme zaoberať prevodmi čísel:
· z desiatkovej sústavy do sústavy s iným základom
· zo sústavy s nedsiatkovým základom do desiatkovej sústavy
· medzi sústavami so základom rovným mocnine čísla 2 (praktický význam majú prevody medzi dvojkovou, osmičkovou a šestnástkovou sústavou)
Postupy prevodu pre celú a desatinnú časť čísla sú rozdielne, preto ich uvedieme zvlášť.
Nech hodnota celej časti prevádzaného čísla je Nc a zápis hľadaného čísla v sústave so základom zą10 je:
an-1an-2 ...a1a0 ,
potom platí:
Nc = an zn + an-1 zn-1 + ... + a1 z + a0
Nc = z(an zn-1 + an-1 zn-2 + ... + a1 ) + a0
odtiaľ
a0 = Nc - z Nc1 = Nc mod z (zvyšok po celočíselnom delení)
kde Nc1= an zn-1 + an-1 zn-2 + ... + a1
analogicky
a1 = Nc1 - z Nc2 = Nc1 mod z
kde Nc2= an-1 zn-2 + an-2 zn-3 + ... + a3z + a2
Jednotlivé cifry ai v sústave so základom zą10 vypočítame ako zvyšky po postupnom celočíselnom delení hodnôt Nc ,Nc1 ,Nc2 ,... základom z.
Uvedený výpočet môžeme reprezentovať nasledujúcou tabuľkou:
Celá časť čísla Nc |
Nc |
Nc1 = Nc/z |
Nc2 = Nc1/z |
... |
Ncn-1 |
Ncn |
Celočíselný podiel Nc/z |
Nc/z |
Nc1/z |
Nc2/z |
... |
|
0 |
Zvyšok po delení |
a0 |
a1 |
a2 |
... |
an-1 |
an |
Príklad: Preveďte číslo 39 z desiatkovej do dvojkovej sústavy:
Celá časť čísla 39 |
39 |
19 |
9 |
4 |
2 |
1 |
Celočíselný podiel základom 2 |
19 |
9 |
4 |
2 |
1 |
0 |
|
1 |
1 |
1 |
0 |
0 |
1 |
t.j. (39)10 = (100111)2
Nech hodnota desatinnej časti prevádzaného čísla je Nd a zápis hľadaného čísla v sústave so základom zą10 je:
0.a-1a-2...a-m,
potom platí:
Nd = a-1 z-1 + a-2 z+ ... + a-m+1 z-m+1 + a-m z-m
Nd = z-1 (a-1 + a-2 z-1 + ... + a-m z-m+1)
odtiaľ
a-1 = Nd z - Nd1 (výraz je celá časť súčinu desatinnej časti Nd a základu z)
kde Nd1= a-2 z-1 + ... + a-m z-m+1
analogicky
a-2 = Nd z - Nd2
kde Nd2= a-3 z-2 + ... + a-m z-m+1
Jednotlivé cifry a-i v sústave so základom zą10 vypočítame ako celú časť jednotlivých súčinov pri postupnom násobení desatinnej hodnoty čísla základom z.
Uvedený výpočet môžeme reprezentovať nasledovnou tabuľkou:
Desatinná časť čísla Nd |
Nd |
Nd1= Nd z- a-1 |
|
|
|
Násobenie základom z |
Nd z |
Nd1 z |
|
|
|
Celá časť súčinu |
a-1 = [Nd z]c |
a-2 = [Nd1 z]c |
... |
a-m+1 |
a-m |
Príklad: Preveďte číslo 0.3 z desiatkovej do dvojkovej sústavy:
Desatinná časť čísla 0.3 |
0.3 |
0.6 |
0.2 |
0.4 |
0.8 |
0.6 |
0.2... |
Násobenie základom 2 |
0.6 |
1.2 |
0.4 |
0.8 |
1.6 |
1.2 |
... |
|
0 |
1 |
0 |
0 |
1 |
1 |
... |
t.j. (0.3)10 = (0.010011001...)2
Postupnosť číslic 1001 sa bude pri prevode periodicky opakovať. t.j. uvedené číslo má v dvojkovej sústave neukončený desatinný rozvoj.
Vo všeobecnosti platí, že čísla, ktoré majú v jednej sústave ukončený desatinný rozvoj, v sústave s iným základom môžu mať desatinný rozvoj neukončený. Pretože čísla sú v pamäti počítača reprezentované v binárnom kóde na konečnom počte bitov, môže sa stať, že sú zobrazené s chybou. Táto chyba vzniká preto, že:
· po prevode do dvojkovej sústavy majú čísla neukončený desatinný rozvoj alebo
· po prevode je síce desatinný rozvoj ukončený, ale na zobrazenie čísla je k dispozícii menší počet bitov, ako si vyžaduje desatinná časť.
Nech hodnota celej časti prevádzaného čísla je Nc a zápis hľadaného čísla v sústave so základom z je: an-1an-2 ...a1a0 ,
potom platí:
Nc = an zn + an-1 zn-1 + ... + a1 z + a0
Hodnotu čisla Nc vieme spočítať pomocou uvedeného súčtu súčinov príslušnej mocniny základu a hodnoty cifry v zodpovedajúcom ráde. Takýto spôsob výpočtu môže mať pri strojovom spracovaní dve nevýhody:
· vo výpočte sa používa operácia umocnenia (na rozdiel od operácií súčet a súčin je časovo náročnejšia)
· ak chceme začať počítať hodnotu čísla od najľavejšej cifry an, musíme poznať jej rád n (t.j. počet všetkých cifier v čísle). Pri strojovom čítaní čísla zľava doprava je potom nutné najprv prečítať všetky číslice z čísla a až potom začať s výpočtom hodnoty.
Súčet mocnín je možné upraviť nasledovne:
Nc = (an zn-1 + an-1 zn-2 + ... + a1 )z + a0
odtiaľ postupným vyberaním pred zátvorku dostaneme:
Nc = (...((an z + an-1 )z + an-2 )z + ... + a1 )z + a0
Výsledný zátvorkový výraz je na prvý pohľad zložitejší, ale pre výpočet je výhodnejší, ako pôvodný súčet mocnín, pretože:
· používa len operácie sčítania a násobenia
· nie je potrebné dopredu poznať počet číslic v čísle
Výpočet je možné vykonať pomocou rekurentného vzťahu:
Si = Si+1z + ai , pre i = n, n-1, n-2,..., 1, 0
Sn+1 = 0
Nc = S0
Uvedený postup je známy ako Hornerova schéma. V tabuľkovej forme môže mať nasledujúcu reprezentáciu:
Cifry ai celej časti čísla |
an |
an-1 |
... |
a1 |
a0 |
Si+1z |
0 |
anz |
|
|
|
Si = Si+1z + ai |
an |
anz + an-1 |
... |
|
Nc |
Príklad: Preveďte číslo (100111)2 z dvojkovej do desiatkovej sústavy:
Cifry ai celej časti čísla |
a5 |
a4 |
a3 |
a2 |
a1 |
a0 |
|
1 |
0 |
0 |
1 |
1 |
1 |
Si+1 * 2 |
0 |
2 |
4 |
8 |
18 |
38 |
Si = Si+1*2 + ai |
1 |
2 |
4 |
9 |
19 |
39 |
t.j. (100111)2 = (39)10
Hornerova schéma je postup (algoritmus) vhodný nielen na prevod celých čísel z nedekadickej do dekadickej sústavy, ale aj na prevod celých čísel z vonkajšieho (textového) do vnútorného (binárneho) tvaru. Nech napr. je potrebné previesť celé dekadické číslo 2375 (vo vonkajšom tvare reprezentované postupnosťou kódov znakov 2, 3, 7 a 5 (pre kódovanie znakov sa používa napr. ASCII kód, pozri ďalej)) do vnútorného - binárneho tvaru. Aplikovaním Hornerovej schémy je možné prevod vykonať priebežne počas spracovávania tohto čísla zľava doprava postupným násobením a sčítaním:
( ( ( (0) * 10 + h(2))*10 + h(3))*10 + h(7))*10 + h(5) = ( ( ( 2)*10 + 3)*10 + 7)*10 + 5 = 2375
kde h(c) je hodnota zodpovedajúca zakódovanej čislici c.
Nech hodnota desatinnej časti prevádzaného čísla je Nd a zápis hľadaného čísla v sústave so základom zą10 je:
0.a-1a-2...a-m,
potom platí:
Nd = a-1 z-1 + a-2 z+ ... + a-m+1 z-m+1 + a-m z-m
Nd = (a-1 + a-2 z-1 + ... + a-m z-m+1) z-1
odtiaľ postupným vyberaním pred zátvorku:
Nd = (a-1 + (a-2 + ... (a-m+1 + a-m z-1 ) z-1 ...)z-1) z-1
Výpočet je možné vykonať pomocou rekurentného vzťahu:
S-i = S-i-1/z + a-i ,pre i = m, m-1, m-2,..., 1
S-m-1 = 0
Nd = S-1/z
Tabuľková reprezentácia výpočtu je:
Cifry desatinnej časti čísla |
a-m |
a-m+1 |
... |
a-2 |
a-1 |
|
S-i-1/z |
0 |
a-m /z |
|
|
|
Nd |
S-i = S-i-1/z + a-i |
a-m |
a-m /z + a-m+1 |
... |
|
|
|
Príklad: Preveďte číslo (0.010011)2 z dvojkovej do desiatkovej sústavy:
Cifry desatinnej časti čísla |
a-6 |
a-5 |
a-4 |
a-3 |
a-2 |
a-1 |
|
|
1 |
1 |
0 |
0 |
1 |
0 |
|
S-i-1/2 |
0 |
0.5 |
0.75 |
0.375 |
0.1875 |
0.59375 |
0.296875 |
S-i = S-i-1/2 + a-i |
1 |
1.5 |
0.75 |
0.375 |
1.1875 |
0.59375 |
|
t.j. (0.010011)2 = (0.296875)10
Prevod čísla z jednej nedesiatkovej do inej nedesiatkovej sústavy zrealizujeme buď podľa pravidiel aritmetiky v jednej zo sústav alebo postupným prevodom cez desiatkovú sústavu podľa schémy: (A)z1 = (B)10 = (C)z2 , z1 ą z2, z1 ą 10, z2 ą 10
Nech hodnota čísla je N. Zápis tohoto čísla v sústave so základom z = 2i je:
ajaj-1...a1a0 . a-1a-2...a-k+1a-k
a zápis tohto čísla v sústave so základom 2 je:
bnbn-1...b1b0 . b-1b-2...b-m+1b-m
potom platí:
N = aj zj +aj-1 zj-1 +...+a1 z1 +a0 +a-1 z-i +a-2 z-2 +...+a-m+1 z-m+1 +a-m z-m
N = aj 2ji +aj-1 2(j-1)i +...+a1 2i +a0 +a-1 2-i +a-2 2-2i +...+a-m+1 2(-m+1)i +a-m 2-mi
N = bk 2k +bk-1 2k-1 +...+b1 2k +b0 +b-1 2-1 +b-2 2-2 +...+b-n+1 2-n+1 +b-n 2-n
Pre celú časť Nc:
Nc = aj zj +aj-1 zj-1 +...+a1 z1 +a0 (1)
Nc = aj 2ji +aj-1 2(j-1)i +...+a1 2i +a0
Nc = bk 2k +bk-1 2k-1 +...+b1 21 +b0 (2)
Nech i=3, t.j. chceme previesť číslo z dvojkovej do osmičkovej sústavy. Upravme súčet mocnín (2) tak, že združíme do zátvoriek trojice susedných sčítancov zodpovedajúcich celej časti Nc čísla N smerom od najnižšieho rádu k vyšším rádom:
Nc = (bk 2k+...)+...+(b5 25 + b4 24+b3 23 )+(b2 22 + b1 2+b0)
Vyberme pred zátvorku postupne sprava doľava 20, 23, 26 , 29,...
Nc = ...+(b522+b421+b3)29+(b522+b421+b3)26+(b522+b421+b3)23+(b222+b12+b0)20
Ak nahradíme mocninu 23 základom z=8, potom
Nc = ...+(b522+b421+b3)83+(b522+b421+b3)82+(b522+b421+b3)81+(b222+b12+b0)80 (3)
Porovnaním vzťahov (1) a (3) za predpokladu, že z=8, pre číslice ai platí:
a0 = b222+b12+b0
a1 = b522+b42+b3
a2 = b822+b72+b6
...
aj = b3j+222+b3j+12+b3j
Analogicky pre desatinnú časť čísla bude platiť:
a-1 = b-122+b-22+b-3
a-2 = b-422+b-52+b-6
a-3 = b-722+b-82+b-9
...
a-m = b-3m+222+b-3m+12+b-3m
To znamená, že prevod z dvojkovej do osmičkovej sústavy je možné urobiť tak, že dvojkový zápis čísla sa rozdelí od desatinnej čiarky doľava a doprava na trojice číslic a „hodnota“ každej z týchto trojíc predstavuje osmičkovú číslicu daného čísla v osmičkovej sústave. Napr. prevod čísla 11111101.11001 z dvojkovej do osmičkovej sústavy urobíme rozdelením číslic na trojice:
011|111|101 . 110|010
3 7 5 . 6 2
t.j. (10111011.1101)2 = (375.62)8
Spätný prevod z osmičkovej do dvojkovej sústavy urobíme tak, že jednotlivé osmičkové cifry nahradíme trojicou binárnych číslic reprezentujúcich tú istú hodnotu, ako má daná osmičková cifra.
Platí všeobecne: prevod z dvojkovej sústavy do sústavy so základom 2i (i>0) je možné urobiť nasledovne:
· dvojkový zápis čísla sa rozdelí od desatinnej bodky doľava a doprava na i-tice číslic
· pre každú z týchto i-tic sa vypočíta hodnota zodpovedajúceho čísla v dvojkovej sústave
· vypočítaná hodnota odpovedajúca i-tici predstavuje číslicu daného čísla v sústave so základom 2i.
Jednoduchosť aritmetických operácií v binárnej sústave vyplýva z existencie iba dvoch rôznych číslic v tejto sústave.
Pre aritmetické operácie platia tieto elementárne pravidlá:
+ |
- |
* |
/ |
0 + 0 = 0 0 + 1 = 1 1 + 0 = 1 1 + 1 = 10 |
0 - 0 = 0 10 - 1 = 1 1 - 0 = 1 1 - 1 = 0 |
0 * 0 = 0 0 * 1 = 0 1 * 0 = 0 1 * 1 = 1 |
0 / 1 = 0 1 / 1 = 1 |
Poznámka: 1+1 je 0 s prenosom 1 do vyššieho rádu |
Poznámka: 0-1 je 1 s výpo-žičkou 1 z vyššieho rádu |
|
|
Ako už bolo spomenuté, osmičková a šestnástková reprezentácia čísel sa používajú hlavne pre úsporneší zápis a lepšiu čitateľnosť čísel ako majú zodpovedajúce binárne kódy (strojové kódy).
Elementárne pravidlá pre osmičkovú sústavu:
· pre súčet: prenos do vyššieho rádu je pri „prechode cez“ hodnotu 8
· pre rozdiel: 1 sa „vypožičiava“ z vyššieho rádu, ak od menšej číslice je potrebné odpočítať väčšiu
Analogické pravidlá platia pre šestnástkovú sústavu.
Príklad: V operačnej pamäti počítača je od adresy 0170H smerom k vyšším adresám uložená tabuľka s dĺžkou 420B (B=bajt). Aká je adresa prvej bunky za tabuľkou?
420 = 1A4H |
đ |
170H + 1A4H 314H |
đ |
Adresa prvej bunky za tabuľkou je 314H |
2-4 = 0.0625 |
21 = 2 |
25 = 32 |
29 = 512 |
213 = 8192 |
2-3 = 0.125 |
22 = 4 |
26 = 64 |
210 = 1024 |
214 = 16384 |
2-2 = 0.25 |
23 = 8 |
27 = 128 |
211 = 2048 |
215 = 32768 |
2-1 = 0.5 |
24 = 16 |
28 = 256 |
212 = 4096 |
216 = 65536 |
Tab. 1 Tabuľka najpoužívanejších mocnín 2
Číselné informácie - sú také informácie, ktoré nás zaujímajú v svojej číselnej podobe ako prirodzené, celé a reálne čísla. Informácie takého charakteru sú častým predmetom alebo výsledkom spracovania na výpočtovej technike. Objavujú sa ako vstupy a výstupy v informačných systémoch, riadiacich systémoch, pri riešení numerických úloh, atď. Vzhľadom na strojové spracovanie číselných informácií je potrebné vykonávať prevod (transformáciu, kódovanie) týchto informácií z vonkajšieho tvaru do vnútornej (strojovej) reprezentácie a naopak a tiež vykonávať rozličné aritmetické operácie. Efektívnosť týchto operácií je priamo závislá od spôsobu kódovania číselných informácií.
Výhody použitia binárnej sústavy pre kódovanie číselných informácií sú nasledovné:
· jednoduchosť zobrazenia a technickej realizácie - pre reprezentáciu hodnôt 0 a 1 stačí prvok s dvoma stavmi (táto výhoda sa týka kódovania všetkých druhov informácií)
· jednoduchosť operácií - pre vykonanie operácií + , - , * , / - nad operandami v binárnom kóde stačia operácie sčítania a posuvu
V predošlej kapitole sme sa zaoberali prevodmi celých a desatinných čísel medzi sústavami s rôznymi základmi. Kľúčový význam pre výpočtovú techniku má prevod medzi dekadickou a binárnou sústavou. Vzhľadom na aritmetické operácie so zakódovanými číslami v binárnom kóde je dôležité uvažovať aj o spôsobe kódovania znamienka týchto čísel. V tejto kapitole sa budeme zaoberať spôsobom kódovania čísel so znamienkom, t.j. číselnými kódmi. Použitie týchto kódov pre zobrazenie celých a reálnych čísel bude popísané potom v ďalšej kapitole.
Číslo budeme kódovať ako postupnosť bitov pevnej dĺžky, túto postupnosť budeme nazývať slovom. Jednotlivé bity slova označíme poradovým číslom 0,1,2,...,n sprava doľava.
Existuje mnoho spôsobov kódovania číselných informácií, ktoré zohľadňujú rozličné požiadavky na výsledný kód. My sa oboznámime s najbežnejšími spôsobmi binárneho kódovania, ktoré nejakým spôsobom riešia nasledujúce požiadavky:
· zobrazenie čísel so znamienkom
· jednoduchosť operácií
· možnosť testovania nezobraziteľnosti výsledku operácie
Ďalej bude popísaný priamy kód a modifikované kódy (inverzný, doplnkový a kód s posunutou nulou). Z praktických dôvodov sa v ďalšom výklade a príkladoch obmedzíme len na binárne kódy, hoci uvedené postupy kódovania je možné použiť aj pre sústavy s iným základom ako 2. Binárne kódy budeme v príkladoch zapisovať aj v osmičkovom a šestnástkovom tvare, pretože tento zápis je úspornejší a často sa v programátorskej praxi používa.
Priamy binárny kód (PK) definuje zobrazenie čísel so znamienkom v tvare:
Počet bitov na zobrazenie: m = n + 1
Pre zakódovanie znamienka + alebo - stačí jeden bit.
Používané kódovanie je: + = 0 - = 1
T.j. kódy dvoch navzájom opačných čísel (a, -a) sa líšia len kódom znamienka.
Pri kódovaní celých čísel v priamom binárnom kóde je interval zobrazenia daný minimálnym a maximálnym číslom nasledovne:
Amax = 2n - 1, pre zobrazenie na m = n + 1 bitoch
Amin = -2n + 1
Príklad: Zapíšte čísla -28, 37 v dvojkovej sústave v priamom kóde na 16 bitoch. Zobrazte kód v dvojkovom, osmičkovom a šestnástkovom tvare.
(28)10 = (11100)2
(-28)10 = (1 000 000 000 011 100)2PK » o100034 = 801CH
(37)10 = (100101)2
(37)10 = (0 000 000 000 100 101)2PK » o45 = 25H
(Zápisy za znakom » predstavujú osmičkové a šestnáskové vyjadrenie daného binárneho kódu. Toto vyjadrenie používame len pre stručnejší zápis.)
Vlastnosti priameho kódu:
Nech K je priamy binárny kód čísla A.
· Hodnotou kódu K budeme ďalej rozumieť hodnotu čísla bez znamienka, ktoré postupnosť binárnych číslic kódu predstavuje.
· Hodnotou čísla A v danom kóde K (zobrazené číslo) budeme rozumieť dekadickú reprezentáciu toho čísla so znamienkom, ktore daný kód predstavuje.
Je potrebné si uvedomiť, že smer nárastu kódov (K) a im zodpovedajúcich hodnôt (A) nie je rovnaký:
Zatiaľ čo kódy (interpretované ako čísla bez znamienka) od kódu 00000000 až po kód 11111111 rastú, hodnoty, ktoré tieto kódy reprezentujú, najprv rastú (od 0,1,...,po Amax ) a potom klesajú (od -0 po Amin).
V dôsledku tejto vlastnosti:
· pre kódy K1 a K2, ktorým zodpovedajú postupne hodnoty A1 na zápornej a A2 na kladnej polosi číselnej osi, platí:
A1 < A2 a súčasne K1 > K2
(kódy K1, K2 uvažujeme v tomto porovnaní ako čísla bez znamienka v rovnakej čiselnej sústave) t.j. v postupnosti kódov a im zodpovedajúcich hodnôt sú rôzne relačné vzťahy.
· zvýšením hodnoty kódu o 1 sa hodnota čísla, ktorú kód predstavuje, zvýši alebo zníži o 1 podľa toho, či kód reperezentuje záporné alebo nezáporné číslo (výnimkou sú kódy zodpovedajúce maximálnemu kladnému číslu, t.j. 0111...1 a tzv. zápornej nule 1000...0)
Nevýhody priameho kódu:
· pre rovnomerne rastúce hodnoty kódov zodpovedajúce hodnoty čísel, ktoré kódy reprezentujú, nerastú rovnomerne
· dva kódy pre zobrazenie nuly - viacznačnosť zobrazenia 0 (alebo nevyužitý kód 1000...0000 , t.j. „záporná nula“)
· pre operáciu odčítanie (resp. súčet operandov s rozdielnymi znamienkami) je potrebný iný postup (algoritmus), ako pre sčítanie operandov s rovnakým znamienkom, t.j. pre operáciu súčtu a rozdielu sú potrebné dva algoritmy
Inverzný binárny kód (IK) definuje zobrazenie čísel so znamienkom nasledovne:
Nech B je binárna reprezentácia absolútnej hodnoty dekadického čísla A (hodnoty A), ktoré chceme zakódovať, t.j. B = (|A|)2 .
Potom pre výpočet (A)2IK - binárneho inverzného kódu čísla A platí:
(m=n+1 je
počet bitov zobrazenia (vrátane znamienka))
t.j. pre A<0 je (A)2IK = 10m-1-(|A|)2
Binárny IK sa nazýva aj jednotkový doplnok - kód záporného čísla sa vypočíta ako doplnok absolútnej hodnoty tohto čísla k číslu 2m-1 (v binárnom tvare je táto konštanta reťazec m jednotiek, preto jednotkový doplnok). Výpočet binárneho IK daného záporného čísla je možné urobiť:
· podľa definície odpočítaním absolútnej hodnoty čísla od dvojkovej konštanty 10m-1
· z binárneho zápisu priameho kódu inverziou všetkých bitov okrem znamienkového (ak hľadáme k danému číslu číslo opačné, potom samozrejme invertujeme aj znamienkový bit).
· inverziou binárneho vyjadrenia absolútnej hodnoty čísla na zodpovedajúcom počte rádov
Príklad: Zapíšte čísla -28, 37 v binárnom priamom a inverznom kóde na 16 bitoch. Uveďte tento kód v dvojkovom, osmičkovom a šestnástkovom tvare.
(28)10 = (0 000 000 000 011 100)2 » o34 = 1CH
(-28)10 = (1 000 000 000 011 100)2PK » o100034 = 801CH
(37)10 = (0 000 000 000 100 101)2PK » o45 = 25H
Výpočet IK inverziou PK:
(+28)10 = (0 000 000 000 011 100)2IK » o34 = 1CH
(-28)10 = (1 111 111 111 100 011)2IK » o177743 = 0FFE3H
(+37)10 = (0 000 000 000 100 101)2IK » o45 = 25H
(Kladné čísla v priamom aj inverznom kóde majú rovnaký kód.)
Výpočet IK podľa definície (doplnkom ku konštante 2m-1, m je počet bitov pre kód vrátane znamienkového bitu):
m = 16, 2m-1 = (1 111 111 111 111 111)2 » o177777 = 0FFFFH
Výpočet IK v dvojkovej sústave:
1 111 111 111 111 111
-
0 000 000 000 011 100
1 111 111 111 100 011
Výpočet binárneho IK využitím zápisu v osmičkovej sústave: o177777 - o34 = o177743
Výpočet binárneho IK využitím zápisu v šestnástkovej sústave: 0FFFH - 1CH = 0FFE3H
Vlastnosti inverzného kódu:
Analogicky ako pri priamom kóde, smer nárastu kódov a im zodpovedajúcich hodnôt je síce rovnaký, ale navyše nie je rovnomerný - na rozhraní záporných a nezáporných hodnôt kódy sa líšia o 1 (01111111,10000000) a príslušné hodnoty Amax, Amin sa líšia o veľkosť celého intervalu zobrazenia.
Maximálne a minimálne celé číslo zobraziteľné v IK:
Amax = 2n - 1, pre zobrazenie na m = n + 1 bitoch (n>1)
Amin = -2n + 1
Realizácia operácie odčítania v inverznom kóde:
Nech pre ilustráciu
C>0, D>0 (ďalšie prípady C>0 a DŁ0,
CŁ0 a D>0, CŁ0 a DŁ0 neuvádzame,
vyžadujú viac priestoru na výklad):
D - C = D + (-C) = D + (-|C|) = D + (C)IK – 2m + 1
Pri výpočte sme operand (-|C|) nahradili výrazom (C)IK – 2m + 1, ktorý vyplýva z definície binárneho inverzného kódu. t.j. operáciu odčítania môžme nahradiť operáciou pripočítania čísla opačného v inverznom kóde a vykonaním tzv. kruhového prenosu (opačné číslo k číslu C je číslo -C):
Kruhový prenos je pripočítanie prenosu z najvyšieho rádu po sčítaní operandov (po bitoch od najnižšieho po najvyšší vrátane znamienkového bitu) k najnižšiemu rádu výsledku.V našom prípade je kruhový prenos realizovaný pripočítaním výrazu – 2m + 1, kde m je počet bitov zobrazenia (2m predstavuje jednotku vľavo od najvyššieho rádu).
Výsledkom súčtu operandov v inverznom kóde je po vykonaní kruhového prenosu výsledok v inverznom kóde.
Výhoda IK:
· pre operáciu sčítania operandov s rozdielnymi znamienkami sa používa rovnaký postup ako pre sčítanie operandov s rovnakými znamienkami (t.j. pre operáciu súčtu aj rozdielu sa používa rovnaký algoritmus)
Nevýhody IK:
· dva kódy pre zobrazenie 0 - viacznačnosť zobrazenia 0 (alebo nevyužitý kód 111...11111)
· pre operáciu súčtu je potrebné robiť aj kruhový prenos (predĺženie času vykonania operácie)
· pre rovnomerne rastúce hodnoty kódov zodpovedajúce hodnoty kódovaných čísel nerastú rovnomerne
Príklad: Ukážte spôsob vykonania nasledujúcej operácie v inverznom kóde na 8 bitoch: a) 37-28
b) 28-37
( 28)10 = (00011100)2PK » o34 = 1CH
(-28)10 = (11100011)2IK » o343 = 0E3H
( 37)10 = (00100101)2PK » o45 = 25H
(-37)10 = (11011010)2IK » o332 = 0DAH
a)
|
binárnE |
osmičkovo |
šestnástkovo |
1. operand ( 37)10 |
00 100 101 |
o45 |
25H |
2. operand (-28)10 |
11 100 011 |
o343 |
0E3H |
|
100 001 000 |
|
|
kruhový prenos |
+1 |
+1 |
+1 |
výsledok |
00 001 001 |
o011 |
09H |
b)
|
binárne |
osmičkovo |
šestnástkovo |
1. operand (+28)10 |
00 011 100 |
o34 |
1CH |
2. operand (-37)10 |
11 011 010 |
o332 |
0DAH |
súčet |
011 110 110 |
o366 |
0F6H |
kruhový prenos |
0 |
0 |
0 |
výsledok |
11 110 110 |
o366 |
0F6H |
Doplnkový binárny kód (DK) definuje zobrazenie čísel so znamienkom nasledovne:
Nech B je binárna reprezentácia absolútnej hodnoty dekadického čísla A (hodnoty A), ktoré chceme zakódovať, t.j. B = (|A|)2 . Potom pre výpočet binárneho doplnkového kódu čísla A platí:
(m=n+1 je počet bitov
zobrazenia (vrátane znamienka))
t.j. pre A<0 je (A)2DK = 10m-(|A|)2
Doplnkový kód sa nazýva aj dvojkový doplnok - kód záporného čísla sa vypočíta ako doplnok absolútnej hodnoty tohto čísla k číslu 2m. V binárnom tvare je táto konštanta reťazec začínajúci vľavo 1 a nasleduje m núl. To znamená, že v každom ráde sa robí doplnok k dvojkovému číslu 10 t.j. k hodnote 2 - preto dvojkový doplnok). Výpočet DK daného záporného čísla je možné robiť:
· podľa definície
· z binárneho zápisu čísla v priamom kóde: odpísaním všetkých cifier zprava doľava až po prvú jedničku vrátane nej a inverziou všetkých ostatných bitov zprava doľava okrem znamienkového bitu (ak hľadáme kód čísla opačného k danému číslu, budeme invertovať aj znamienkový bit)
· výpočtom z I daného záporného čísla pripočítaním jednotky k najnižšiemu rádu.
Vlastnosti doplnkového kódu:
Mapovanie hodnôt kódov na hodnoty celých čísel, ktoré DK reprezentujú, je možné povedať, že doplnkový kód má podobné vlastnosti (týkajúce sa smeru a rovnomernosti nárastu hodnôt kódov a zodpovedajúcich hodnôt kódovaných čísel), ako má inverzný kód.
Maximálne a minimálne celé číslo zobraziteľné v DK:
Amax = 2n - 1, pre zobrazenie na m = n + 1 bitoch (n>1)
Amin = -2n
Príklad: Zapíšte čísla -28, 37 v doplnkovom kóde na 16 bitoch. Zobrazte kód v dvojkovom, osmičkovom a šestnástkovom tvare.
(28)10 = (0 000 000 000 011 100)2PK » o34 = 1CH
Určenie DK z PK:
DK čísla (-28)10: 1 111 111 111 100 100
Postup pre prevod z DK do PK a naopak je taký istý:
po prvú jednotku zprava (vrátane) odpíšeme
ostatné bity invertujeme (okrem znamienkového)
Kladné čísla vyzerajú v priamom, inverznom aj doplnkovom kóde rovnako, preto:
(+37)10 =(0 000 000 000 100 101)2IK =(0 000 000 000 100 101)2DK =(0 000 000 000 100 101) 2PK
Výpočet binárneho DK pre číslo -28 podľa definície (doplnkom ku konštante 2m, kde m je počet bitov pre kód vrátane znamienkového bitu):
m = 16 2m = (10 000 000 000 000 000)2 = o200 000 = 10 000H
Nasledujúca tabuľka ukazuje tento prevod so zápisom v dvojkovej, osmičkovej a šestnástkovej sústave.
Výpočet binárneho DK pre číslo -28 |
BINÁRNE |
OSMIČKOVO |
šestnástkovO |
konštanta, ku ktorej sa robí doplnok |
10 000 000 000 000 000 |
o200 000 |
10 000H |
Je potrebné odpočítať |
0 000 000 000 011 100 |
o34 |
1CH |
výsledný kód |
1 111 111 111 100 100 |
o177 744 |
0FFD4H |
Realizácia operácie odčítania v doplnkovom kóde:
Operáciu D-C naznačíme pre operandy C>0, D>0. Na základe definície DK platí:
D - C = D + (-C) = D + (-|C|) = D + (C)DK – 2m
T.j. operáciu odčítania môžeme nahradiť operáciou pripočítania čísla opačného v doplnkovom kóde a zanedbania prípadného prenosu 1 vľavo od najvyššieho rádu (tomuto prenosu zodpovedá hodnota 2m). Výsledkom súčtu operandov v doplnkovom kóde je výsledok v doplnkovom kóde.
Výhody DK:
· pre operáciu sčítania operandov s rozdielnymi znamienkami sa používa rovnaký postup ako pre súčet operandov s rovnakými znamienkami
· jeden kód pre zobrazenie 0 - všetky kódy sú využité jednoznačne
· pre operáciu súčtu nie je potrebné robiť kruhový prenos
Nevýhody DK:
· pre rovnomerne rastúce hodnoty kódov zodpovedajúce hodnoty kódovaných čísel nerastú rovnomerne
· pri prevode do doplnkového kódu (z inverzného kódu) je potrebné pripočítavať jednotku
Príklad: Ukážte spôsob vykonania nasledujúcej operácie v doplnkovom kóde na 8 bitoch: a) 37-28
b) 28-37
( 28)10 = (00011100)2PK » o34 = 1CH
(-28)10 = (11100100)2DK » o344 = 0E4H
( 37)10 = (00100101)2PK » o45 = 25H
(-37)10 = (11011011)2DK » o333 = 0DBH
a)
|
binárnE DK |
osmičkovo DK |
šestnástkovo DK |
1. operand ( 37)10 |
00 100 101 |
o45 |
25H |
2. operand (-28)10 |
11 100 100 |
o344 |
0E4H |
súčet |
100 001 001 |
1o411 |
109H |
výsledok |
00 001 001 |
o011 |
09H |
Kruhový prenos sa pri počítaní v doplnkovom kóde nerobí.
b)
|
binárne DK |
osmičkovo DK |
šestnástkovo DK |
1. operand (+28)10 |
00 011 100 |
o34 |
1CH |
2. operand (-37)10 |
11 011 011 |
o333 |
0DBH |
výsledok |
11 110 111 |
o367 |
0F7H |
Výsledok operácie je v takom istom kóde, ako operandy, t.j. v DK. Zistíme hodnotu výsledku (obráteným prevodom z DK do PK):
(11 110 111)2DK = (10 001 001)2PK = (-9)10
Dvojkovo-desiatkový (binárne-dekadický) kód alebo BCD kód používa binárne kódovanie číslic z dekadického zápisu čísla tak, že pre každú číslicu sa použije štvorica bitov.
napr. (3256)10 = (0011 0010 0101 0110)BCD
Výhoda BCD kódu:
· rýchle kódovanie aj dekódovanie
Nevýhody BCD kódu:
· zložitejšie operácie (je potrebné zvlášť ošetriť prenos do vyššieho rádu podľa dekadickej aritmetiky: prenos jednotky do vyššej štvorice bitov je vtedy, ak súčet v dánom ráde je dekadicky 10 alebo viac)
· neefektívne využite pamäti na zobrazenie čísel (menší interval zobrazenia ako pri DK, IK alebo PK na rovnakom počte bitov)
0 = 0000 |
4 = 0100 |
8 = 1000 |
12 (C) = 1100 |
1 = 0001 |
5 = 0101 |
9 = 1001 |
13 (D) = 1101 |
2 = 0010 |
6 = 0110 |
10 (A) = 1010 |
14 (E) = 1110 |
3 = 0011 |
7 = 0111 |
11 (B) = 1011 |
15 (F) = 1111 |
Tab. 2 Prevodná tabuľka (dec-bin) pre BCD kód
Medzi nečíselné údaje patria textové, grafické, zvukové a iné údaje. Vzhľadom na rozsah problematiky sa tu stručne zmienime len o kódovaní textových a grafických informácií.
Pre zobrazenie textových informácií je potrebné kódovať jednotlivé znaky, postupnosti znakov (reťazce), rozsiahle texty. Základom je kódovanie znakov. Pre kódovanie znakov sa používajú znakové kódy:
· usporiadané (kódy znakov sú usporiadané v analogickom poradí ako zodpovedajúce znaky)
7-bitové kódy (ISO, ASCII-7bit)
8-bitové kódy (Latin2, ASCII-8bit)
16-bitové (Unicode)
· neusporiadané 5-bitový (napr. ďalekopisný kód)
Medzi najdôležitejšie operácie nad textovými informáciami patrí triedenie (usporiadavanie) a vyhľadávanie v utriedených textoch. Elementárnou operáciou je porovnanie dvoch kódov znakov na lexikografické poradie zodpovedajúcich znakov. Takáto operácia je jednoducho realizovateľná v usporiadaných kódoch. V usporiadaných znakových kódoch totiž platí:
ak( kód znaku1 < kód znaku2) potom znak1 je lexikograficky pred znakom2
Vlastnosť usporiadanosti sa dá využiť napr. aj pri prevode čísla z textového tvaru do vnútorného: z hodnoty ISO (ASCII) kódu prečítanej číslice určíme hodnotu tejto číslice odpočítaním kódu nuly.
Pre kódovanie rozsiahlych textových informácií sa často využívajú rozličné metódy komprimácie (zhusťovania).
kód |
0000 (0) |
0001 (16) |
0010 (32) |
0011 (48) |
0100 (64) |
0101 (80) |
0110 (96) |
0111 (112) |
0000 (0) |
NUL |
DLE |
medzera |
0 |
@ |
P |
` |
p |
0001 (1) |
SOH |
DC1 |
! |
1 |
A |
Q |
a |
q |
0010 (2) |
STX |
DC2 |
“ |
2 |
B |
R |
b |
r |
0011 (3) |
ETX |
DC3 |
# |
3 |
C |
S |
c |
s |
0100 (4) |
EOT |
DC4 |
$ |
4 |
D |
T |
d |
t |
0101 (5) |
ENQ |
NAK |
% |
5 |
E |
U |
e |
u |
0110 (6) |
ACK |
SYN |
& |
6 |
F |
V |
f |
v |
0111 (7) |
BEL |
ETB |
‚ |
7 |
G |
W |
g |
w |
1000 (8) |
BS |
CAN |
( |
8 |
H |
X |
h |
x |
1001 (9) |
HT |
EM |
) |
9 |
I |
Y |
i |
y |
1010 (10) |
LF |
SUB |
* |
: |
J |
Z |
j |
z |
1011 (11) |
VT |
ESC |
+ |
; |
K |
[ |
k |
{ |
1100 (12) |
FF |
FS |
, |
< |
L |
\ |
l |
| |
1101 (13) |
CR |
GS |
- |
= |
M |
] |
m |
} |
1110 (14) |
SO |
RS |
. |
> |
N |
^ |
n |
~ |
1111 (15) |
SI |
US |
/ |
? |
O |
_ |
o |
DEL |
Tab. 3 8-bitová ASCII tabuľka kódov
Binárnu hodnotu kódu znaku v ASCII, zistíme z tabuľky tak, že spojíme jemu zodpovedajúce dvojkové číslo z prvého riadku (horné štyri bity) s dvojkovým číslom v prvom stĺpci (dolné štyri bity). Napríklad znaku A zodpovedá 0100 0001. Desiatkovú hodnotu kódu znaku v ASCII zistíme tak, že sčítame dekadické hodnoty (uvedené v zátvorkách) v príslušnom stĺpci a riadku. Napríklad znaku A zodpovedá 64+1=65.
Pre zobrazenie grafických informácií sa v pamäti počítača používajú dva spôsoby:
· rastrové zobrazenie
· vektorové zobrazenie
Pri rastrovom kódovaní grafickej informácie sa vychádza z toho, že táto informácia je tvorená konečným počtom bodov v pravouholníkovom rastri, pričom každý bod je charakterizovaný svojimi atribútmi (napr. farba, jas, blikanie). Napr. pre kódovanie obrazcov v rastri 256 x 256 bodov, pričom každý bod môže mať jednu z 32 farieb, jednu zo 4 úrovní jasu a môže blikať, je potrebných 256 x 256 B = 28 x 28 B = 216 B = 64kB pamäti. Na 1 bajte budú kódované informácie týkajúce sa jedného bodu (farba na 5 bitoch, jas na 2 bitoch a blikanie na 1 bite).
Vektorové kódovanie grafickej informácie vychádza zo skutočnosti, že sa pracuje s vyššími grafickými elementami ako napr. úsečka, kružnica, elipsa, obdĺžnik, krivka a pod, Potom napr. pre zakódovanie polohy a vizuálnych vlastností úsečky nie je potrebné evidovať všetky údaje o každom bode tejto úsečky zvlášť: napr pre určenie polohy úsečky stačí poznať polohu jej krajných bodov. Okrem toho konečný tvar týchto primitív je možné riadiť ich atribútmi. Medzi základné atribúty z pohľadu počítačovej grafiky zaraďujeme: farba, typ (napr. čiar, písma a pod.), hrúbka (napr. čiar, písma a pod.), poloha (napr. písma), smer vykreslenia (napr. horizontálny, vertikálny) atď.
Obr. 13 Ukážka rastrového a vektorového zobrazenia obrázku
Jednou z nevýhod rastrovej reprezentácie je deformácia grafickej informácie resp. dokonca jej strata napr. pri zmenšení a opätovnom zväčšení. Ďalším rozdielom medzi vektorovým a rastrovým objektom je to, že pri výraznom zväčšení si vektorový objekt zachováva svoju kvalitu a tvar. Rastrový objekt pri výraznom zväčšení, síce nestráca svoju pôvodnú informáciu, ako tomu je pri zmenšení, ale stráca „hladkosť“ a tým pádom svoju kvalitu. Niektoré z týchto chýb, je možné u rastrových objektov eleminovať pomocou rozptyľovania a vyhladzovania. Aj tieto rozdiely naznačujú domény použitia jednotlivých typov grafických systémov. Vektorové typy sú výhodné pre technickejšie kreslenie napr. na kreslenie vývojových diagramov, technických výkresov či obchodných grafov. Rastrové typy dominujú pri spracovaní obrazu, digitálnych fotografií čí filmov a pri voľnej grafickej tvorbe. V tomto zmysle je nutné podotknúť, že tu abstrahujeme od typov nástrojov, ktorými disponuje to-ktoré programové vybavenie. Program môže byť rastrový, ale môže disponovať vektorými typmi nástrojov. V úvode práce s nástrojom sa s ním pracuje ako s vektorovým typom, napr. nakrelsenie úsečky, ale po uložení, už to predstavuje len jednotlivé body rastra a pristupovať k nim ako k objektu -úsečka a tým meniť atribúty tohto objektu, už nie je možné. Po „položení“ úsečky je to už len množina bodov. Typickým príkladom je napr. známy grafický editor Paint (Skicár, Malovaní) v MS Windows.
Ďalším dôležitým faktorom, ktorý dominuje pri spracovaní objektov v počítačovej grafike, je ich rozmer. V základe sa v počítačovej grafike pracuje s dvojrozmernými (2D – 2 Dimensional) a s trojrozmernými (3D – 3 Dimensional) objektami. V prípade animácie alebo napr. určitých častí systémov virtuálnej reality sú objekty aj štvorrozmerné, kde štvrtým rozmerom je čas.
Z hľadiska ohodnotenia grafických zariadení a teda ich možností sa z pohľadu počítačovej grafiky sledujú najmä tieto parametre:
· Rozlišovacia schopnosť: definuje koľko obrazových bodov (pixelov) vodorovne (V) a koľko bodov zvislo (Z) je schopný adaptér maximálne zobraziť a udáva sa ako VxZ. Ak sa jedná o textový režim, potom sa neuvádza v pixeloch ale v znakoch.
· Farebná hĺbka (počet naraz zobraziteľných farieb). Počet zobraziteľných farieb je od 16 cez 256, 216 (Highcolor) do 224 (16,7 mil.) resp. až 232. Zariadeniam, ktoré dokážu pracovať s takou paletou farieb hovoríme, že pracujú v móde Truecolor (tzv. pravé farby).
· Kapacita obrazovej pamäti (dnes sa uvádza v MB a je prvým orientačným číslom, pretože od nej závisia predchádzajúce dva parametre. Čím vyššie rozlíšenie tým klesá farebná hĺbka a naopak).
Obrazová informácia je náročná na pamäť. Napríklad jeden snímok veľkosti 640x480, 256 farieb potrebuje 300 kB, čo pri 25 snímkoch za sekundu (PAL) predstavuje prenosovú rýchlosť 7,5 MB/s. Z tohoto dôvodu sa používajú komprimačné algoritmy (stratové čí nestratové), ktoré umožňujú väčšiu hustotu záznamu obrazovej informácie a znižujú nároky na rýchlosť diskov a zbernice. Napríklad komprimačný algoritmus vyvíjaný pre multimédiá - MPEG (Movie Picture Experts Group) dosahuje komprimačný pomer 26:1. Dnes sú rozšírené dva stupne MPEG-u (MPEG I a MPEG II). V súčasnosti sa vyrábajú zariadenia, ktoré umožňujú vykonať túto dekomprimáciu či komprimáciu pomocou technických prostriedkov (špeciálne čipy). Potom pre jeden snímok 640x480, 256 farieb stačí 11,5 kB. Pri tejto veľkosti je prenosová rýchlosť 288 kB/s pri 25 snímkoch za sekundu. Znížením rozlišovacej schopnosti snímku na 320x200 sa dosiahla prenosová rýchlosť približne 72 kB/s, takže je možné použiť pre uloženie obrazovej informácie CD-ROM. Na jeden CD-ROM disk potom môže byť uložená jedna hodina videozáznamu pri MPEG I. Dnes však s použitím MPEG II či MPEG layer4, ktoré sa rozšírili najmä na DVD diskoch, je možné v pomerne kvalitnom rozlíšení, uložiť celovečerný film. Obľúbené formáty pre ukladanie videa sú aj DiVX a XviD.
Operačný systém (OS) je základom činnosti počítača. Operačný systém umožňuje zápis informácie do operačnej pamäte, jej čítanie, monitorovanie klávesnice, zobrazovanie informácie na zobrazovacej jednotke a prepínanie jednotlivých režimov zobrazovania (textový režim, grafika, počet znakov, latinka - azbuka a pod.). Ďalej umožňuje prenos informácie z počítača k pripojeným prídavným zariadeniam, k sériovému a paralelnému rozhraniu a k ďalším komponentom zabezpečujúcim styk počítača s okolím vrátane konektvity do prípadnej počítačovej siete. K nemenej významným činnostiam patrí organizácia prenosu údajov medzi operačnou a vonkajšou pamäťou. Súhrnne povedané, operačný systém predstavuje množinu programov, pomocou ktorých počítač plní svoje funkcie. Operačný systém riadi a kontroluje jednotlivé časti technického vybavenia počítača a zaisťuje pre používateľské programy všetky služby týkajúce sa ovládania technických prostriedkov. V neposlednom rade sprostredkuje operačný systém komunikáciu medzi používateľom a počítačom - vykonáva príkazy používateľa.
Vo svete existuje veľké množstvo operačných systémov. Tieto sú aplikované prakticky na všetkých typoch počítačov, malými 8-bitovými počítačmi (aj v digitálnom diári) počnúc a veľkými sálovými superpočítačmi končiac. Medzi operačnými systémami sa dajú vybrať niektoré, ktoré sa svojím rozšírením stali známe natoľko, že ich môžeme považovať za štandardné (modelové) operačné systémy. Medzi významné operačné systémy patria:
·
CP/M - (Control Program for Microcomputers), ktorý
dominoval na domácich 8-bitových počítačoch a postupne sa preniesol
aj na 16-bitové počítače.
· MS DOS - (Microsoft Disk Operating System) operačný systém pre individuálne osobné počítače, donedávna najviac rozšírený OS.
·
WINDOWS9x/XP – momentálne dominujúci
operačný systém pre osobné počítače. Najmä na starších menej výkonných počítačoch je stále
v prevádzke spomínaný MS DOS (s prípadnou nadstavbou MS Windows 3.1X) a jeho
klony, kde pre niektoré aplikácie výborne vyhovuje a ich majitelia nemajú snahu
ho vymeniť. Príchod Windows95 so svojimi vlastnosťami a
schopnosťami zasadil tvrdý úder konkurencii. Firmou Microsoft ako
konkurent UNIX-ov je vyvíjaný a dodávaný WINDOWS2003 a pomocou tohoto OS sa Microsoft snaží ovládnuť aj trh serverov,
pracovných staníc a výkonnejších PC.
·
UNIX - štandardný operačný systém väčšiny
sálových počítačov a pracovných staníc. S rastúcimi
možnosťami osobných počítačov bol tento implementovaný aj na
nich (XENIX, ULTRIX, QNIX, a v súčasnosti hlavne LINUX). LINUX
je vážnym konkurentom operačným
systémom Microsoft-u. LINUX je v mnohých smeroch kvalitnejší a
stabilnejší ako operačné systémy firmy Microsoft. Tento operačný
systém má aj ďalšiu výhodu, je poskytovaný zdarma a platí sa len za
distribúciu. Najrozšírenejšia distribúciami sú: Debian a Red Hat.
Na báze týchto distribúcií sú často založené rôzne upravené distribúcie
napr. Mandrake LINUX alebo SuSE LINUX.
Ešte predtým jako uvedieme nasledujúce riadky, je nutné poznamenať, že problematika operačných systémov je mimoriadne široká a zložitá. Rozsah tu uvádzaný je výberom pre potreby predmetu Počítače a ich sieťové služby. Detailnejšie sa problematikou OS bude zaoberať na špecializovaných predmetoch.
Delenie operačných systémov je možné podľa viacerých hľadísk. Prvé hľadisko je podľa toho, kde je operačný systém umiestnený a aká je flexibilita jeho aktualizácie. Potom operačné systémy sú:
· ROM-orientované operačné systémy a
· diskovo-orientované operačné systémy (DOS).
Prvý typ je potom umiestňovaný spravidla do pamäti ROM (príp. EPROM, EEROM, Flash-ROM). Má spravidla menší rozsah a schopnosti a aj aktualizácia je zložitejšia. Týmto typom OS sú spravidla vybavované jednoúčelové alebo prenosné typy výpočtových systémov. V súčasnosti prudký rozvoj, najmä s príchodom mobilnej komunikácie, zaznamenávajú palmtopy resp. PDA (Personal Digital Assistant) a samotné mobilné telefóny.
Druhý typ je umiestňovaný na diskové zariadenia výpočtového systému (disketové jednotky, pevný disk príp. CD-ROM). Oproti prvému typu má väčší rozsah a možnosti. Jeho aktualizácia je takisto menej zložitá. Týmto typom sú vybavované osobné počítače, notebooky, pracovné stanice a ostatné vyššie typy výpočtových systémov. Častokrát dochádza ku rozdeleniu DOS tak, že časť sa umiestňuje aj do ROM pamäti výpčtového systému (typické pre PC (BIOS)). V ďalšom výklade sa budeme venovať takmer výhradne diskovo-orientovaným OS, ak nebude uvedené inak.
Druhé hľadisko delenia je spravidla podľa toho, pre koľkých používateľov je OS určený. Potom rozlišujeme OS:
· jednopoužívateľské (single-user)
· viacpoužívateľské (multi-user)
Ak operačný systém zabezpečuje aj komunikáciu výpočtového systému v rámci počítačovej siete a možnosť jej administrácie, hovorí sa aj o sieťovom operačnom systéme.
Tretie hľadisko delenia je podľa počtu úloh, koľko vie operačný systém obsluhovať naraz príp. podľa schopnosti reentrantnosti úloh (viacnásobné spracovanie jednej úlohy, tzv. multihreading). Potom rozlišujeme operačné systémy:
· jednoúlohové (monotasking) a
· viacúlohové (multitasking).
Pri implementácii multitaskingu sa rozlišujú dva druhy: kooperatívny multitasking a preemptívny multitasking. Kooperatívny multitasking predstavuje schopnosť spustiť viac úloh a prepínať medzi nimi, ale kooperatívnosť úloh spočíva práve v tom, že jednotlivé úlohy si podľa požiadavky používateľa poskytovali čas na svoj beh a v prípade, že neboli aktívne, ich činnosť bola pozastavená. Preemptívnosť úloh spočíva v paralelnom vykonávaní úloh, čo pre používateľa znamená, že môže naraz napr. formátovať disketu a pritom sa hrať hru a obidva procesy, z pohľadu používateľa, pracujú paralelne t.j. OS prerozdeľuje čas procesora pre jednotlivé procesy. Spôsobov ako je prideľovaný čas jednotlivým procesom je niekoľko. Najjednoduchší spôsob je príslušné časové kvantum rozdeliť medzi jednotlivé procesy rovnako. Samozrejme, riadiacu úlohu hrá tzv. jadro operačného systému.
Obr. 14 Príklad prideľovania času v operačnom systéme
Súčasné OS predstavujú už komplikované a mohutné programové balíky, ktorých snahou je pokrývať čoraz viac narastajúce nároky používateľov ale aj možnosti výpočtových systémov, na ktorých sú implementované.
Fenoménom, ktorý sa snažia podchytiť súčasné operačné systémy je prístup do celosvetovej počítačovej siete Internet. Podobne je to aj s narastajúcimi požiadavkami na kvalitu aj kvantitu digitálnych informácií či už vo forme videa (DVD) alebo zvuku (MP3) a tým pádom ich podpora v operačných systémoch.
Umiestnenie operačného systému v rámci výpočtového systému ukazuje Obr. 15. Operačný systém teda predstavuje programové vybavenie, pomocou ktorého výpočtový systém plní svoje základné funkcie. Operačný systém riadi a kontroluje jednotlivé časti technického vybavenia počítača (hardware) a zaisťuje pre aplikácie resp. používateľské programy všetky služby týkajúce sa ovládania technických prostriedkov. V neposlednom rade sprostredkuje operačný systém komunikáciu medzi používateľom a výpočtovým systém t.j. definuje používateľské rozhranie.
Obr. 15 Blokové schéma umiestnenia OS v rámci výpočtového systému
Operačný systém má spravidla hierarchickú (vrstevnú) architektúru (viď. Obr. 16). Ako príklad použijeme ukážku implementáce operačného systému na osobný počítač tredy PC, najmä z dôvodu jeho rozšírenia.
Vrstva na najnižšej úrovni zaisťuje priamy styk s technickými prostriedkami (hardware) osobného počítača. Táto vrstva sa nazýva BIOS (Basic Input Output System = základný vstupno/výstupný systém). Služby BIOS-u používa samotné jadro operačného systému. Pri niektorých činnostiach môže jadro OS voliť priamy prístup na technické prostriedky a tým pádom obísť štandardný BIOS. Tento spôsob však môže niekedy viesť ku nekompatibilite jadra OS s hardvérom.
Služby jadra operačného systému následne potom používajú rôzne nadstavby a hlavne aplikácie (programy) spúšťané pod operačným systémom. Častokrát je používateľské rozhranie vo forme nadstavby OS.
Obr. 16 Architektúra operačného systému
Táto vrstva je závislá na technickom vybavení počítača a je nutné ju pre každú inštaláciu systému špeciálne upraviť. Pri realizácii BIOS-u je na druhej strane možné využiť všetky schopnosti konkrétneho mikroprocesora. Tým pádom BIOS nemusí byť napísaný len v kóde mikroprocesora na báze Intel 80x86. Z vonkajšieho hľadiska predstavuje BIOS podsystém fyzického vstupu a výstupu. Skladá sa z dvoch častí:
· pevnej časti,
· variabilnej (premenlivej) časti.
Pevná časť je opäť rozdelená na dve zložky.
· Prvá zložka je umiestnená v pamäti ROM, tzv. ROM-BIOS. Táto zložka okrem iného zaisťuje technické testy (kontrola pamäte RWM, kontrola odozvy mechaník pružných diskov, prístup na pevné disky a pod.) počítača a program na zavedenie ostatných zložiek operačného systému z disku. V súčasnosti sa etablovali na našom trhu snáď najviac dva BIOS-y: AMIBIOS a AWARDBIOS. Okrem uvedených záležitostí je možné vykonať pomocou BIOS-u aj nastavenie (setup) PC vo forme nastavenia disketových mechaník, času a dátumu, pevných diskov, ovládanie čipovej sady, ovládanie parametrov PnP (Plug and Play) a APM (Power management) ako aj ovládanie integrovaných portov.
· Druhá (flexibilnejšia, závislá od verzie operačného systému) zložka je dodávaná s operačným systémom. Táto zložka obsahuje sadu programov pre ovládanie štandardných prídavných zariadení. K pevnej časti je v okamihu štartovania systému doplnená sada ovládačov pre neštandardné prídavné zariadenia (napr. myš). Táto variabilná zložka BIOS-u je používateľsky modifikovateľná. Pri platforme MSDOS/Windows9x/Me na základe obsahu súboru CONFIG.SYS. Tento súbor nie je povinný a pokiaľ neexistuje, operačný systém pracuje s preddefinovanými hodnotami. Vo Windows9x/Me/2000/XP sa navyše ešte zavádzajú ďalšie ovládače častí a zariadení počítača príp. periférií, ktoré sú definované v tzv. hardvérovom profile. Operačné systémy UNIX-ového typu umožňujú pridanie/dobratie tzv. montovanie/odmontovanie ovládačov resp. zariadení aj počas prevádzky bez nutnosti reštartu operačného systému.
Jadro operačného systému tvorí druhá vrstva operačného systému (diskového operačného systém)u. Táto vrstva je už nezávislá na technickom vybavení osobného počítača. Z vonkajšieho hľadiska realizuje jadro logický vstup a výstup (vrátane systémov ovládania súborov tzv. File Manager) a zaisťuje aj ostatné služby poskytované aplikačným programom. Jadro operačného systému môže opäť predstavovať jeden alebo viac súborov. Napr. vo Windows95/98 pre každú činnosť sa v rámci jadra definuje a spúšťa tzv. virtuálny počítač (virtual machine), ktorý môže jednotlivé súčasti používať resp. zdieľať. Z pohľadu tohto virtuálneho počítača sa hovorí o tzv. systémových zdrojoch (vrátane napr. kapacity diskového priestoru alebo kapacity operačnej pamäti). Počet takýchto virtuálnych počítačov v princípe nie je obmedzený. Takýmto spôsobom je potom možné spúšťať viac aplikácií v operačnom systéme súčasne (t.j. každému procesu je v princípe pridelený jeden virtuálny počítač) t.j. je možné dosiahnuť viacúlohovosť (multitasking).
Všetky ďalšie časti operačného systému sú vybudované nad jadrom, podobne ako všetky ostatné aplikačné programy.
Do nadstavby operačného systému zaraďujeme interpreter riadiacich príkazov, tracientné (externé) príkazy, služobné programy a používateľské rozhranie. Všetky ostatné programy budeme zaraďovať medzi aplikácie.
Základný styk s používateľom sprostredkuváva interpreter riadiacich príkazov. Interpreter číta a interpretuje príkazy zadávané operačnému systému používateľom prostredníctvom klávesnice, vopred pripravenej dávky príkazov resp. všeobecne odoslané používateľským rozhraním (aj grafickým). Interpreter je zodpovedný za vonkajšie správanie sa systému a tvar príkazov. Vykonávací kód príkazov je z určitej časti zabudovaný do interpretera príkazov (tzv. interné príkazy). Externé príkazy spôsobia prechodné "natiahnutie" odpovedajúceho kódu z disku. Z tohto dôvodu ľubovoľný zavediteľný program sa dá chápať ako súčasť repertoáru externých príkazov. Sem patria aj všetky tzv. služobné programy (utility) napr. vopred pripravené programy pre určitú rutinnú činnosť.
Kedy dôjde k štartu operačného systému? Je to buď po zapnutí počítača alebo po stlačení tlačidla RESET. Vtedy hovoríme o tzv. "studenom" ("tvrdom") štarte resp. resete. Spustí sa ROM-BIOS, ktorý vykoná potrebné testy technických prostriedkov počítača a potom zavedie do operačnej pamäte ostatné časti operačného systému z disku.
Zavedenie zvyšku OS sa deje zo systémovej (štartovacej) diskety resp. disku. Zavedenie operačného systému sa tiež nazýva aj bootovanie (bútovanie). Pri zavádzaní operačného systému sa systém hľadá najprv v mechanike pružného disku a ak sa tam nenájde, tak potom na pevnom disku (v súčasných BIOS-och je možné nastaviť poradie prehľadávania bootovacích zariadení). Keď je disk systémový, musí mať špeciálny zavádzač v zavádzacom sektore disku (tzv. boot-sektor). Počas štartu OS sa do pamäte načítavajú dané systémové súbory jadra OS a OS sa konfiguruje podľa prípadných konfiguračných súborov. Nakoniec sa spustí používateľské rozhranie, pomocou ktorého je počítač ovládaný.
Jedna z najdôležitejších funkcií operačného systému je organizácia údajov na vonkajších médiách. Pre diskový operačný systém je samozrejme najdôležitejšia organizácia údajov na disku. Operačný systém rozoznáva dva typy zariadení:
· znakové zariadenia,
· blokové zariadenia.
Zariadenia sa navzájom líšia v spôsobe komunikácie (po znakoch alebo po blokoch), ale i v spôsobe identifikácie zariadenia. Niektoré zariadenia v štandardnej podobe vie ovládať operačný systém automaticky, pre niektoré zariadenia je nutný tzv. ovládač (driver), ktorý najčastejšie poskytuje výrobca zariadenia.
Pod znakovými zariadeniami rozumieme všetky zariadenia (vstupné/výstupné), ktorých prenosovou jednotkou smerom od/k operačnému systému je znak. Medzi ne môžeme zaradiť napr. klávesnicu či tlačiareň.
Tieto prenášajú údaje v blokoch (celkoch). V prevažnej miere sú to najmä diskové zariadenia. Na jednom fyzicky existujúcom pevnom disku je možné definovať viac logických diskov tzv. partícií. Napr. jeden fyzický pevný disk 3.2 GB (gigabajtov) je možné rozdeliť na dva logické disky napr. s veľkosťou 2GB a s veľkosťou 1.2GB. Naopak je možné vytvoriť tzv. zväzok, kde jeden logický zväzok 3.2GB bude zložený z dvoch fyzických diskov 2GB a 1.2GB a operačný systém s ním bude pracovať jako s jedným celkom.
Jedná sa o blokové zariadenia, najmä disky. Organizácia údajov na diskoch vytvára hierarchickú stromovú štruktúru. Spôsob organizácie súborov príp. vyšších celkov (napr. adresárov) na blokových zariadeniach sa nazýva súborový systém. V súčasnosti je známych viac súborových systémov (FAT, NTFS, EXT2, EXT3 a pod).
Informačným celkom na disku je logický súbor. Súbor je súhrn logicky k sebe patriacich informácií definovaných svojim menom a príp. inými atribútmi. Súbor (angl. file) môže byť program, mzdové údaje, list a pod. Operačný systém rozlišuje dva typy súborov:
· údajové súbory: sú súbory obsahujúce údaje. Medzi údajové súbory zaraďujeme napr. textové súbory, databázové súbory či súbory s kresbami t.j. obrázky.
· programové súbory: t.j. súbory obsahujúce inštrukcie mikroprocesora. Tieto súbory je možné zaviesť do operačnej pamäte a spustiť.
Súbor je identifikovaný na disku hlavne svojim menom. V základe sa meno súboru skladá znakov. Častokrát sa používa znak >.< (bodka) ako oddeľovač.
Okrem mena súboru sú na disku uchované ďalšie informácie o súbore. Súbor si nesie so sebou svoju veľkosť v bajtoch, dátum a čas vytvorenia resp. aktualizácie. Tieto náležitosti je možné skôr nazvať charakteristikami súboru. Okrem nich má každý súbor ešte svoje atribúty. Podľa typu operačného systému môžu byť definované niektoré z nasledujúcich atribútov:
· Archiv - označuje archívny súbor.
· Executive – spustiteľný súbor.
· Hiden – skrytý súbor.
· Modify/Write enable – modifikovateľný (upraviteľný) súbor resp. možnosť zapisovať do súboru.
· Read Only - ak je tento atribút nastavený, súbor je určený len na čítanie. Zápis, resp. vymazanie je možné po zrušení atribútu.
· System - označuje systémový súbor.
Kvôli prehľadnosti a ľahšej práci so súbormi sú tieto združované do skupín. Tieto skupiny nazývame adresáre alebo tiež katalógy. Názvy adresárov sa tvoria podobne ako názvy súborov. Z hľadiska stromovej štruktúry adresáre tvoria uzly tejto štruktúry. Z toho vyplýva, že súčasťou adresára môžu byť okrem súborov ďalšie podadresáre. Súbory ako také v podstate tvoria listy stromovej štruktúry. Každý disk (alebo zväzok) má vždy základný adresár. Tento sa vytvorí po naformátovaní disku (diskety) a nedá sa zrušiť. V ňom je možné vytvárať ďalšie súbory alebo adresáre. Základný adresár sa tiež nazýva koreňový (angl. root). Označuje sa "\".
Ako už bolo spomenuté, je štruktúra adresárov stromová s tým, že adresáre (podadresáre) tvoria uzly stromu. Majme napríklad disketu s databázovými súbormi s listami posielanými počas roka a štvrťroka. Aby sme si uloženie súborov sprehľadnili, poukladáme ich do adresárov. Potom v hlavnom adresári si vytvoríme podadresáre ROK2003 a ROK2004. Potom napr. v podadresári ROK2003 vytvoríme podadresáre 1Q, 2Q, 3Q, 4Q. V týchto adresároch budú nakoniec príslušné súbory s listami. Potom štruktúra je nasledovná:
Obr. 17 Stromová štruktúra adresárov
Ak máme vytvorenú uvedenú štruktúru, hovoríme, že ROK2003 je otcovský adresár napr. pre adresár 1Q. Hlavný adresár je zas otcovským adresárom adresára ROK2003. Otcovský adresár je v synovskom adresári označený "..". Adresár (katalóg), do ktorého sme sa prepli, nazývame aj aktuálny adresár (katalóg).
Pri definovaní pojmu cesta (path) musíme ísť v štruktúre adresárov (zložiek priečinkov) spätne, t.j. od listov ku koreňu. Potom je možné povedať, že cesta je zoznam všetkých adresárov, cez ktoré musíme prejsť od daného súboru, aby sme sa dostali k hlavnému adresáru. Pri písaní cesty sú jednotlivé mená adresárov oddelené spätným lomítkom. Cesta môže byť zadaná:
· absolútne, vtedy obsahuje názvy všetkých adresárov od hlavného až k určenému adresáru,
· relatívne, vtedy cesta pozostáva len z názvov adresárov, ktoré tvoria cestu od aktuálneho adresára k požadovanému adresáru. Relatívna cesta začína názvom prvého podadresára aktuálneho adresára. Takisto relatívna cesta nezačína spätným lomítkom.
Majme súbory na diskete podľa príkladu z predchádzajúcej podkapitoly. Úplné meno súboru sa potom skladá z troch častí:
1. meno zariadenia (napr. A:, C:),
2. absolútna cesta k uvedenému súboru,
3. meno súboru.
Potom úplné mená súborov z predchádzajúcich príkladov môžu byť (ak je disketa v mechanike A):
A:\ROK2003\1Q\LIST1.TXT
A:\ROK2003\3Q\DOPIS_0210.DOC a pod
Operačný systém UNIX je viacpoužívateľský operačný systém pracujúci na princípe preemptívneho zdieľania času t.j. každý používateľ má opakovane prideľovaný čas procesora, čím sa nemôže stať, aby jeden používateľ obsadil celý procesor a tým blokoval v práci iných používateľov. Systém môže pracovať v jednopoužívateľskom režime (výhradne určeného pre systémového programátora) a v mnohopoužívateľskom režime. Používatelia pritom môžu pracovať úplne nezávisle alebo môžu spolupracovať. Samotný operačný systém sa vyznačuje takými vlastnosťami, akými sú:
· hierarchická výstavba katalógov a súborov,
· jednotný prístup na súbory, katalógy a ovládanie zariadení,
· dynamická správa procesov (jednotlivých odštartovaných programov),
· podpora a sebestačnosť pre údržbu programov, textových dokumentov i celého operačného systému, nezávislosť na technických prostriedkoch zabezpečená službami jadra operačného systému
· ochrana údajov používateľov,
· prostriedky pre správu sieťových služieb,
· možnosť voľby interprétera príkazov,
· vysoká prenositeľnosť atď.
Operačný systém UNIX možno rozdeliť v podstate na tri časti:
· jadro operačného systému,
· súbory predstavujúce prídavné zariadenia,
· ostatné nástroje.
Jadro operačného systému je program, ktorý riadi činnosť jednotlivých prostriedkov počítača. Umožňuje spúšťať programy, ovládať periférne zariadenia a zabezpečovať celú prevádzku operačného systému.
Prídavné zariadenia sú v systéme reprezentované špeciálnym typom súborov, pričom každému pripojenému zariadeniu zodpovedá jeden špeciálny súbor. Z toho plynie jedna dôležitá vlastnosť: používateľ nepotrebuje špeciálne zabezpečovať komunikáciu s prídavnými zariadeniami, pretože tá sa ničím nelíši od spôsobu práce so súbormi.
Ostatné nástroje sú obyčajné programy s rôznorodým zameraním (kompilátory, editory, interprétery príkazov, príkazy pre spracovanie dokumentov atď.). Buď sú súčasťou operačného systému, alebo sú dodávané ako nadstavba nad operačným systémom.
Na to aby operačný systém mohol dostatočne plniť svoju funkciu a v plnej miere využil svoje vlastnosti, potrebuje:
· procesor s mapovanou pamäťou pre obsluhu procesov,
· diskovú pamäť slúžiacu ako pracovný priestor,
· sériové rozhranie ľubovoľného typu na pripojenie terminálov,
· paralelné rozhranie ľubovoľného typu na pripojenie tlačiarní,
· magnetopáskové alebo iné archivačné zariadenie slúžiace výhradne na zálohovanie systému.
Obr. 18 Prepojenie technických prostriedkov
Ako sú jednotlivé časti vzájomne poprepájané znázorňuje Obr. 18. Ako je jadro operačného systému a ďalšie programové vybavenie naviazané na technické prostriedky, t.j. hierarchickú štruktúru, znázorňuje Obr. 19.
Obr. 19 Naviazanie programových prostriedkov na technické
Komunikáciu s technickými prostriedkami zabezpečuje jadro operačného systému. Nad jadrom sa nachádza vrstva systémových prostriedkov, pričom prostriedok, ktorý interpretuje príkazy sa nazýva príkazový interpréter alebo tiež shell (bash, tcsh, zsh).
Ako už bolo uvedené aj v kapitole v všeobecných črtách operačných systémov, pre operačný systém UNIX je jednou zo základných vlastností hierarchická (stromová) výstavba súborov a katalógov. Vrchol celej hierarchie súborov a katalógov je označený znakom "/" a hovorí sa mu "rút" (angl. root), alebo hlavný katalóg. Odtiaľ sa odvíja celá hierarchická výstavba (príklad LINUX, viď Obr. 20).
Obr. 20 Hierarchická výstavba súborov a katalógov
Spravidla sa jadro operačného systému nachádza hlavnom katalógu alebo v katalógu "/boot". Špeciálne súbory sú uložené v katalógu "/dev". Pre chod operačného systému sú nutné ešte ďalšie katalógy ("/etc", "/bin", "/sbin", "/tmp"), v ktorých operačný systém uchováva súbory potrebné k spusteniu operačného systému do jednopoužívateľského režimu a prechod do viacpoužívateľského režimu. Ostatné potrebné nástroje sú uchovávané v ďalších katalógoch. Zvyčajne bývajú uložené v katalógu "/usr", ale je možné, aby správca systému si vybudoval vlastnú hierarchickú štruktúru.
V systéme je plne rozvinutá myšlienka spolupráce jednotlivých úloh. Vykonanie určitej úlohy môže byť preto rozbité na dielčie úlohy, pričom výstup z jednej jednoduchej úlohy je súčasne vstupom do úlohy nasledujúcej. Bolo dokázané, že riešenie zložitého problému pomocou niekoľkých kooperujúcich procesov je jednoduchšie ako pre programátora, tak aj pre používateľa prostriedkov.
Všetky úlohy, ktoré chcú komunikovať s technickými prostriedkami, využívajú k tomu služby jadra operačného systému. Vďaka tomu sa celý systém, samozrejme s výnimkou jadra, stáva nazávislý na technickom vybavení počítača, čím je zabezpečená vysoká prenositeľnosť programov aj na iné typy počítačov.
Väčšina používateľských a systémových príkazov je napísaná v programovacom jazyku C a zostávajúce príkazy v programovacom jazyku interpretačných programov (shell, perl a pod.). Jadro operačného systému je takmer celé napísané v programovacom jazyku C, až na "niekoľko" (rádove stovky) inštrukcií, ktoré sú napísané v jazyku symbolických inštrukcií a zabezpečujú primárne napojenie na technické prostriedky. Vzhľadom na to, že programovací jazyk C je základom celého operačného systému, je zvykom, že je jeho prekladač dodávaný priamo s operačným systémom UNIX. V posledných rokoch však komerčné organizácie (napríklad firma SCO) dodávajú jednotlivé komponenty operačného systému v balíkoch (samozrejme bez zdrojových textov), a preto v štandardnej dodávke operačného systému prekladač programovacieho jazyka C chýba (prevažne sa nachádza v balíkoch s označením "Development ..."). Pokiaľ by používateľ požadoval aj dodávku tohto balíka, musí ho dodatočne objednať a samozrejme aj za neho zaplatiť, pričom suma za tento balík býva často výrazne vyššia ako cena samotného operačného systému.
Operačný systém UNIX je multipoužívateľský operačný systém, to znamená, pod operačným systémom môže pracovať viac používateľov naraz. UNIX využíva používateľské účty na vyriešenie nezávislosti práce používateľov, ochrany ich privátnych informácii a pod..
Používateľský účet vytvára administrátor systému UNIX. Vytvorením účtu pridelí používateľovi jeho meno, pod ktorým bude známy v systéme (tzv. login), pridelí mu domáci adresár - vyhradí mu časť diskového priestoru na uchovávanie dát, môže mu prideliť heslo, pod ktorým sa dá prihlásiť do systému a niektoré ďalšie informácie.
Pod prihlásením sa do systému sa rozumie činnosť, ktorou zahajuje používateľ činnosť v systéme UNIX. Po zapnutí terminálu je potrebné stlačiť kláves <Enter> ako inicializáciu komunikácie s počítačom. Operačný systém ako odpoveď vypíše svoju verziu, meno, terminálovú linku, na ktorej je pripojený terminál a v nasledujúcom riadku vypíše výzvu na napísanie loginu. Napríklad:
Linux hornad 2.1.132 #4 SMP Sun Jan 3 12:36:27 CET 1999 i586 unknown
login:
Ak je danému loginu pridelené heslo, systém si ho v nasledujúcom kroku vyžiada, pričom z bezpečnostných dôvodov sa znaky písané ako heslo nezobrazujú. Po správnom zadaní loginu a hesla je používateľ prihlásený do systému. Operačný systém potom zobrazí výzvu, tzv. prompt (môže mať rôzny textový tvar) na napísanie prvého príkazu. Stav na obrazovke bude napr. nasledovný:
Last login: Fri Jun 24 08:16:53 1999 from kpi1e.fei.tuke.sk
Linux hornad 2.1.132 #4 SMP Sun Jan 3 12:36:27 CET 1999 i586 unknown
login:sobota
password:
... rôzne výpisy (napr. správy od administrátora systému) ...
<hornad[10:06]~>_
Pokiaľ bol zadaný neexistujúci login, alebo chybné heslo, systém vypíše chybovú správu a opätovne žiada login:
Login incorrect.
login:
Ak používateľ nemal zadané heslo, alebo ho chce zmeniť, môže použiť príkaz na nastavenie hesla. Týmto sa zabráni k neoprávnenej manipulácii s privátnymi údajmi používateľa a preto by toto mal byť prvý príkaz po obdržaní používateľského účtu. Príkaz má tvar:
v passwd
Ak používateľ už mal zadefinované heslo a teda heslo mení, operačný systém si vypýta staré heslo. Toto robí na zabránenie zmeny hesla neoprávnenou osobou, ktorá by sa mohla krátkodobo dostať k terminálu, na ktorom je používateľ práve prihlásený. Následne si žiada nové heslo a potom pre zamedzenie preklepu používateľa, opätovné napísanie nového hesla, pretože heslá sa na obrazovku nezobrazujú.
Heslom môžu byť písmená, číslice aj špeciálne znaky, pričom sa rozlišuje veľkosť písmen . Heslo musí mať minimálnu dĺžku hesla danú správcom systému (zväčša 6 písmen). Niektoré systémy UNIX kontrolujú, či heslom nie je postupnosť opakujúcich sa znakov, či heslo nie je zhodné s loginom, poprípade s menom stroja a pod. Pokiaľ je v systéme použitá "vyššia bezpečnosť", môže mať heslo nastavenú životnosť, po uplynutí ktorej používateľ musí svoje heslo zmeniť, poprípade minimálny čas, po ktorom je možné opätovne zmeniť heslo. V niektorých systémoch musí heslo spĺňať určité pravidlá (napr. aspoň jedno písmeno opačnej veľkosti ako ostatné, aspoň jeden znak, ktorý nie je písmenom a pod., tieto pravidlá by mal zverejniť administrátor systému). Pokiaľ sa napíše dlhšie heslo, ako je nastavené (zvyčajne 8 písmen), vypíše upozornenie, že ako heslo bude vždy brať iba prvé písmená. Po ukončení príkazu to môže vyzerať takto:
passwd
Changing password for sobota
(current) UNIX password:
Enter new UNIX password:
Retype new UNIX password
Pokiaľ používateľ zabudne svoje heslo, nebude mu povolené prihlásenie sa do systému. V tomto prípade môže heslo zmeniť iba administrátor systému.
Na každý login sa viažu určité prístupové práva k informáciam, príkazom a podobne. Administrátor systému má špeciálny login, nazývaný root. Pokiaľ sa administrátor prihlási pod týmto loginom, má neobmedzené práva a preto môže zmeniť alebo vymazať heslo ľubovoľnému používateľovi. Nevie ho zistiť, nakoľko je toto uložené v zašifrovanej forme, ktorá sa nedá rozšifrovať. Má samozrejme aj neobmedzený prístup k ľubovoľným údajom v systéme, teda aj k údajom ostatných používateľov.
Existujú rôzne spôsoby na zvyšovanie bezpečnosti systémov, to znamená rôzne systémy na zabránenie preniknutiu nepovolaným osobám do systému. Spôsob ochrany zväčša určuje administrátor systému. Preto iba jedna poznámka k heslám. Vo svete existujú rôzne programy na "dešifrovanie" hesla. Nakoľko neexistuje priamy dešifrovací algoritmus, pracujú na základe toho, že skúšajú rôzne heslá (slová zo slovníka - napr. najfrekventovanejších slov, meno a priezvisko používateľa a pokiaľ je zadané aj rodinných príslušníkov, rôzne dátumy a kombinácie týchto údajov). Pokiaľ by to skúšali pri prihlasovaní, systém by zablokoval linku, poprípade oznámil správcovi systému, že došlo k takejto snahe. Programy ale využívajú k svojej činnosti súbor /etc/passwd, v ktorom sú zakódované heslá. Programy potom iba zakódujú nejaké slovo a výsledok porovnajú so zakódovaným heslom v súbore /etc/passwd. Poznamenajme, že algoritmus kódovania je všeobecne známy. Pokiaľ je v systéme použitá zvýšená bezpečnosť, zakódované heslá nie sú v súbore /etc/passwd , ale v súbore, ktorý obyčajný používateľ nemôže čítať (/etc/shadow), a uvedený spôsob prieniku do systému nie je možný.
Z tohoto vyplýva, že používateľ by si mal voliť heslá také, aby tieto programy neboli úspešné. Tu sú príklady hesiel, ktoré je ťažko dešifrovať:
canis.lupus lat. vlk obyčajný, bodka zťažuje dešifrovanie
smmndrnk spoluhlásky zo slov som mandarinka
tatrsk každé druhé písmeno zo slova traktoristka
Takisto je výhodné používať v heslách čísla, veľké písmená alebo rôzne znaky jako _ - . ; : / \. Je lepšie používať heslá, ktoré na prvý pohľad nedávajú zmysel, alebo použiť nejaké slovo cudzieho jazyka, ktoré pravdepodobne nikto z ľudí z okolia nepozná, aby pri písaní hesla nemohla cudzia osoba odpozorovať heslo z prstov. Pokiaľ by cudzia osoba odpozorovala začiatok hesla tatrsk, nedovtípi sa zvyšok tak, ako by to mohlo byť v prípade nasledovných hesiel:
krokodil keď odpozoruje niekto kroko, zvyšok hesla si domyslí
atobos login odzadu - dešifrovacie programy ľahko odhalia
branislav krstné meno - ľahko odhaliteľné
Zmena hesla môže na niektorých systémoch prebiehať tak, že po zadaní starého hesla sa systém opýta, či nové heslo chce definovať používateľ, alebo ho má vymyslieť operačný systém (LINUX nepodporuje). Pokiaľ sa zvolí možnosť definovania používateľom, pokračuje sa zadávaním hesla (dva krát). Pokiaľ sa definovanie nového hesla prenechá systému, systém náhodne vytvorí niekoľko hesiel a vypíše ich na obrazovku. Používateľ si z nich vyberie jedno a napíše ho na klávesnicu pre kontrolu, že sa ho správne naučil. Definovanie hesla systémom spĺňa podmienky vytvorenia ťažko odhaliteľného hesla. Definovanie hesla systémom je na niektorých systémoch možné dosiahnuť voľbou -a. Na obrazovke to potom vypadá takto:
passwd -a
Here are some suggested passwords:
ryegdi ryeg-di
aswurku a-swurk-u
ryedok reyd-ok
teleccos tel-ec-cos
wahislas wa-hi-slas
Enter new password:
Odhlásenie z operačného systému sa vykonáva stlačením kombinácie klávesov CTRL-D miesto príkazu, po vypísaní promptu. Pokiaľ je takýto spôsob odhlásenia vypnutý, je možné použiť príkaz "logout“ poprípade "exit".
Príkaz logout sa používa pri ukončovaní základného shellu (vytvorený pri prihlásení sa), exit pri ukončovaní shellu, ktorý bol vyvolaný používateľom (napríklad spustením ako príkaz).
Po skutočnom odhlásení operačný systém vypíše výzvu na opätovné prihlásenie sa:
Linux hornad 2.1.132 #4 SMP Sun Jan 3 12:36:27 CET 1999 i586 unknown
login:
Po tejto správe je už možné vypnúť terminál.
Je možné použiť osobný počítač miesto terminálu (napr. typu PC). V tomto prípade potrebujete program na emuláciu terminálu a osobný počítač pripojiť pomocou sériového portu (alebo ethernetu, UTP alebo iným spôsobom) na počítač s operačným systémom UNIX. Pre osobné počítače typu PC existuje veľké množstvo emulátorov terminálu (aj napr. Windows95 obsahujú emulátor terminálu, ale je možné pracovať aj na úrovni DOS-u napr. s emulátorom dodávaným k Norton Commander-u). V emulátore je potrebné nastaviť niektoré základné parametre prenosu. Pre komunikáciu pomocou sériového prenosu je to predovšetkým rýchlosť komunikácie, počet bitov pri prenose, typ použitej parity, typ riadenia prenosu, ak má osobný počítač viac portov, tak číslo portu. Pri ukončovaní práce je taktiež potrebné najprv sa odhlásiť, a až potom ukončiť prácu emulátora terminálu, poprípade vypnúť počítač. Pokiaľ by sa zabudlo na odhlásenie sa, ľubovolná osoba, ktorá by po čase opäť spustila emulátor terminálu, pokračovala by v práci predchádzajúceho používateľa.
V prípade, že osobný počítač je pripojený na UNIX pomocou protokolu telnet (alebo bezpečnejšie SSH), nie je nutné sa odhlásiť, pretože emulátor to vykoná za vás. Ale aj tu je vhodnejšie korektné odhlásenie sa..
Na niektorých systémoch UNIX je nainštalované automatické odhlasovanie (autologout), pokiaľ používateľ nie je aktívny (tzv. idle time, napríklad, pokiaľ nestlačil žiaden kláves za posledných 20 minút). Systém automatického odhlasovania zväčša niekoľko minút pred automatickým odhlásením upozorní používateľa, aby začal pracovať (stačí stlačiť jednu klávesu). Okrem iného je tento systém vhodný na to, aby vykonal automatické odhlásenie namiesto nejakého "zábudlivca", ktorý iba vypol terminál. Znižuje sa tým riziko nepovolaného prístupu k nejakým údajom. Aj pokiaľ je tento systém nainštalovaný, netreba sa naň spoliehať.
Automatické odhlásenie je nepríjemné v tom prípade, keď používateľ používa program, ktorý dlhšiu dobu vykonáva nejakú činnosť bez výzvy stlačenia klávesy (napr. dlhý výpočet, prenos súborov a pod.), môže automatické odhlásenie nechcene odhlásiť používateľa, aj keď sedí za terminálom. V tomto prípade je možné buď stlačiť na klávesnici nejaký znak a potom klávesou back space tento vymazať. Iný spôsob ochrany pred odhlásením je spustiť program na pozadí a nastaviť mu príznak, aby sa proces nerušil pri odhlasovaní sa (príkaz nohup v csh). Ak ani jeden spôsob nie je vhodný, treba sa poradiť s administrátorom systému.
Pokiaľ dôjde k vypadnutiu systému UNIX alebo ukončeniu práce systému v takzvanom "multirežime" na základe príkazu administrátora systému, všetci používatelia sú automaticky odhlásení, takže aj keď systém začne znovu pracovať v "multirežime", musia sa všetci používatelia opätovne prihlásiť.
O používateľovi sa v systéme okrem loginu vedú aj doplnkové informácie, ktoré sa vypisujú pri použití niektorých príkazov (napr. na zistenie, kto je práve prihlásený). Sú to nasledovné informácie:
· reálne meno
· adresa v práci
· telefón do práce
· telefón domov
Používateľ si ich môže zmeniť pomocou príkazu:
v chfn
alebo
v passwd -f
Operačný systém si tieto informácie postupne vypýta, pričom v hranatých zátvorkách uvedie starú hodnotu. Pokiaľ sa iba stlačí <Enter> resp. <CR> bez uvedenia novej hodnoty, ostáva stará hodnota. Pokiaľ má ostať údaj nevyplnený, vypíše sa none. Jednotlivé hodnoty nemôžu obsahovať dvojbodku, čiarku alebo riadiace znaky.
Pokiaľ chce používateľ používať iný interpreter príkazov, ako má nastavené, môže si nastaviť, ktorý interpreter príkazov sa mu spustí pri prihlásení sa do systému. Zmena sa uskutočňuje príkazom:
v chsh
alebo
v passwd -s
Príkaz vypíše staré nastavenie a žiada novú hodnotu. Používateľ môže zadať iba interpreter, ktorý je uvedený v súbore /etc/shells. Po novom prihlásení sa už použije nové nastavenie. Najviac rozšírené shelly sú sh, bash, tcsh, zsh, ash, csh, ksh a iné.
Po zapnutí terminálu prebehne test správnosti terminálu diagnostickými programami, ktoré sú uložené priamo v ROM pamäti terminálu. Ak terminál je v poriadku zobrazí sa na obrazovke prihlasovací reťazec (resp. po stlačení klávesu <Enter>) napr.:
Linux hornad 2.1.132 #4 SMP Sun Jan 3 12:36:27 CET 1999 i586 unknown
login:
Ak sa tento reťazec neobjaví, je potrebné nastaviť parametre terminálu (inák sa tomu hovorí aj nastaviť SETUP terminálu).
Pre nastavenie parametrov terminálu je potrebné prepnúť terminál do režimu nastavovania parametrov. Zvyčajne sa to prevedie buď súčasným stlačením nejakej kombinácie kláves alebo sa na klávesnici nachádza špeciálny kláves (napr. s označením SETUP), ktorý prepne terminál do tohoto režimu. Každý typ terminálu má vlastné ovládanie nastavenia, preto ho tu nebudeme popisovať. Obmedzíme sa len na také parametre, ktoré sú vlastné prevažnej väčšine typov terminálov. Tieto základné parametre popisuje tabuľka Tab. 4.
Parameter |
Význam |
Mód |
Definuje spôsob práce terminálu LOCAL – bez spolupáce s OS ONLINE – napojenie na OS |
Reset terminálu |
Vykoná sa nanovo inicializácia terminálu s nastavenými parametrami |
Zapíš nastavenie |
Do pamäti terminálu sa odpamätá aktuálne nastavenie parametrov terminálu |
Typ kurzora |
Znak podčiarknutia alebo bloku |
Rolovanie obrazovky |
Nastavenie pokračovania zobrazenia príkazu na nasledujúcom riadku resp. jeho orezanie len na jeden riadok. Jump scroll – skokové rolovanie Smooth scroll – priebežné rolovanie |
Typ terminálu |
Každý terminál podporuje niekoľko rôznych typov programového nastavenia napr. vt52, vt100, vt300, ansi a pod. |
Prenosová rýchlosť |
Nastavenie prenosovej rýchlosti osobitne pre príjem a osobitne pre vysielanie (4800Bd, 9600Bd, 19200Bd ap. (Bd=Baud, zvyčajne 1 bit za sekundu = 1bps)) |
Počet bitov |
Nastavuje sa počet bitov při prenose (7 alebo 8) |
Stop bit |
Nastavuje typ ukončovacieho bitu |
Parita |
Zapnutie kontroly parity (párna, nepárna alebo žiadna) |
Typ sériového prepojenia |
Nastavuje sa spôsob, akým je realizované spojenie terminálu s technickými prostriedkami (hardvérom) operačného systému a to prostredníctvom prúdovej alebo napäťovej slučky. |
Tab. 4 Popis základných parametrov terminálu
Zvlášť dôležité sú parametre ak rýchlosť prenosu, počet bitov pri prenose a parita. Tieto parametre musia sedieť s príslušným nastavením v súbore /etc/ttys (resp. /etc/terminfo), z ktorého číta inicializačný program "getty" zabezpečujúci vypísanie prihlasovacieho reťazca a prihlásenie používateľa do systému. Popis informácií v tomto súbore nie je predmetom tejto publikácie, preto sa obmedzíme len na jednoduchý príklad.
Príklad: Majme v súbore /etc/inittab nasledujúci riadok pre popísanie terminálu:
3:23:respawn:/sbin/getty 38400 tty3 vt100
Toto nám vraví, že terminál beží na úrovni (runlevel, priorita prístupu) 2 a 3 a respawn určuje, že proces bude reštartovaný kedykoľvek při ukončení. Ďalej, že terminál je pripojený prostredníctvom terminálovej linky číslo 3 (vygenerovaný špeciálny súbor tty3 v katalógu /dev), má nastavenú prenosovú rýchlosť 38400 baudov, typ terminálu je nastavený na vt100. Úpravy v súbore /etc/inittab môže robiť len privilegovaný používateľ, preto je nutné aby používateľ vedel implicitné nastavenie parametrov v operačnom systéme t.j. v súbore /etc/inittab a tomu prispôsobil nastavenie parametrov na svojom termináli.
Pri prihlasovaní používateľa sa nastavuje premenná TERM, ktorá obsahuje typ terminálu, na taký typ, aký je uvedený v súbore /etc/inittab. Ak v SETUP-e terminálu nie je rovnaký typ, môžu nastať problémy so zobrazením údajov (veľmi často sa to stáva pri vyvolaní editora vi). Táto premenná obsahuje typ terminálu. Podľa nej sa hľadá v katalógu /etc/terminfo zodpovedajúca databáza, ktorá popisuje interpretáciu riadiacich kódov na tom ktorom type terminálu. Vzhľadom na to, že katalóg /etc/terminfo by mal obsahovať popis pre všetky rôzne typy terminálov, zvykne mať preto dĺžku rádove desiatky KB. Tento katalóg udržuje a spravuje privilegovaný používateľ.
Okrem nastavenia parametrov v SETUP-e, umožňuje operačný systém nastaviť charakterisktiky terminálu príkazom "stty". Syntax príkazu je nasledovná:
v stty [-ag] [voľby] ...
Samotný príkaz bez argumentov zabezpečí zobrazenie nastavených charakteristík pre štandradný výstup na štandardnom chybovom výstupe. Ak je špecifikovaný argument "-a" (alebo "everything"), zobrazia sa všetky charakterisktiky, nielen tie, ktoré sú nastavené. Argument "-g" zabezpečí zobrazenie charakteristík v takej forme, aby sa mohli použiť pre ďalší príkaz "stty".
Najviac používané voľby sú (znamienko "-" znamená zrušenie):
[-]echo |
povolí/zakáže zobrazovanie znakov na termináli |
[-]tostop |
povolí/zakáže úlohám na pozadí písať na terminál |
[-]parodd |
nastavenie/zrušenie kontroly párnej parity |
[-]even |
nastavenie/zrušenie kontroly nepárnej parity |
[-]pass8 |
nastavenie/zrušenie 8-bitových znakov |
[-]raw |
nastavenie/zrušenie znakového (nebufrovaného) vstupu a výstupu, v ktorom program dostane všetky znaky tak, ako ich používateľ zadá |
[-]dec |
nastavenie charakteristík ERASE, KILL a INTR. Veľmi často sa používa v spojení s príkazom new. |
[-]lcase |
nastavenie/zrušenie prevodu na malé písmená |
rows i |
nastavenie počtu riadkov na i |
columns i |
nastavenie počtu stĺpcov na i |
50,...,19200 |
nastavenie prenosovej rýchlosti medzi terminálom a operačným systémom |
riadiaci_kod c |
nastavenie riadiaceho kódu na sekvenciu c, napríklad: v stty erase ‘^H’ v stty kill ‘^C’ v stty werase ‘^U’ a podobne |
Ostatné voľby je možné nájsť v používateľskej príručke k operačnému systému, resp. v operačnom systéme zadaním príkazu "man stty".
Ďalšie príkazy, ktoré umožňujú riadiť terminál sú:
v clear
Vymaže obsah obrazovky a kurzor vloží do ľavého horného rohu.
v echo [-n] [argument] ...
Zobrazí špecifikovaný argument. Ak je špecifikované "-n", tak ďalší výpis bude pokračovať v tom istom riadku.
v lockvc
Príkazom je možné uzamknúť terminál (virtuálnej konzoly) bez odhlásenia sa zo systému. Tak si je možné rezervovať terminál. Špecifikovaním parametra "-number" číslo "number" definuje počet minút pre rezeváciu terminálu. Opätovné pokračovanie je možné len po zadaní hesla toho používateľa, ktorý bol na tomto termináli prihlásený.
v printenv [name]
Zabezpeží zobrazenie premenných pracovného prostredia, napr. TERM, USER, PATH, MAIL ap.
v setenv [name value]
Umožní nastaviť premenné pracovného prostredia "name" na hodnotu "value". V súvislosti s terminálom sa používa (v csh, tcsh) na nastavenie premennej TERM (resp. term), ktorá obsahuje reťazec určujúci typ terminálu, napríklad: setenv TERM vt200 alebo set term=vt200
v tty
Zobrazí sa meno špeciálneho súboru, ktorý zodpovedá terminálu, na ktorom je používateľ prihlásený (za ktorým pracuje).
v reset
Vykoná znovuinicializáciu terminálu tak, že nastaví terminálové charakteristiky na implicitné hodnoty resp. podľa hodnôt uvedených v súbore /etc/termcap.
V súborovom systéme UNIXU sa rozlišujú tri základné typy súborov:
· obyčajné súbory
· adresáre (katalógy)
· špeciálne súbory
Obyčajný súbor obsahuje textovú, binárnu, poprípade inú informáciu, pričom jadro operačného systému umožňuje sekvenčný aj priamy prístup k ľubovolnej slabike.
Adresár (katalóg - v nasledujúcom popise sa budú tieto dva názvy používať ekvivalentne) je súbor, ktorý obsahuje zoznam mien a zodpovedajúcich i-uzlov iných súborov. Môžu to byť obyčajné súbory, adresáre aj špeciálne súbory.
Špeciálny súbor je prostriedok na ovládanie periférnych zariadení. Používateľ má týmto umožnené ovládať periférne zariadenia podobne, ako súbory.
Štandardne operačný systém obsahuje sadu príkazov pre prácu nad súborovým systémom. Tieto príkazy budú popísané v nasledujúcich kapitolách. V súčasnosti sú však aj na platforme UNIXu dostupné výkonné a pohodlné súborové manažére určené na túto činnosť. Súborový manažér je program poskytujúci používateľovi jednoduchú a komfortnú obsluhu najpotrebnejších funkcií operačného systému ako sú:
· vytváranie adresárov,
· vytváranie, mazanie, kopírovanie, prezeranie, editácia a zmena atribútov súborov,
· kopírovanie a presun súborov a adresárov
· premenovanie súborov a zložiek,
· vyhľadávanie súborov a zložiek
· zobrazenie stromovej štruktúry zvoleného adresára,
· informácie o stave zariadení OS,
· prehľadávanie zariadení a ich podadresárov a pod. vrátane siete
· získanie niektorých systémových informácií
· prístup na vzdialené počítače napr. aj cez službu ftp.
Jedným z najznámejších v súčasnosti najpoužívanejším súborovým manažérom v UNIXe je Midnight Commander. Pracuje v textovom režime a svojou filozofiou je analogický veľmi populárnemu Norton Commander-u z platformy MSDOS.
Obr. 21 Ukážka Midnight Commander-a (mc)
Súborový systém UNIX-u sa pre používateľa javí ako jeden strom katalógov a súborov. Pokiaľ je v systéme použítých viac fyzických diskov, administrátor systému tieto navzájom pospája do jednej stromovej štruktúry. Jeden fyzický disk je štandardne rozdelený na niekoľko logických partícií. Niekoľko z možných rozdelení a názvy partícií je na Obr. 22.
a |
b |
d |
e |
f |
h |
a |
b |
g |
h |
||
c |
Obr. 22 Rozdelenie disku na logické particie
Rozdelenie partícií môže byť aj iné, ale použité partície sa nesmú navzájom prekrývať. Partícia "a" býva používaná ako bootovacia a potom obsahuje koreň stromovej štruktúry. Partícia "b" potom býva využívaná ako swapovacia partícia (na zväčšenie pracovnej pamäte systému). Partícia "c" má zväčša veľkosť celého disku (pokiaľ je použitá, už nemôže byť použitá iná partícia disku, lebo sa nesmú prekrývať).
Každá partícia má vytvorený vlastný súborový systém. Administrátor systému si rozvrhne jednotlivé partície, ich veľkosť a na aký účel budú slúžiť. Potom k hlavnej partícii pripája ďalšie tzv. montovaním (do prázdneho katalógu sa namontuje koreň stromu inej partície). Táto činnosť sa vykonáva ešte pri bootovaní operačného systému, pri prechode do multirežimu. Po namontovaní jednotlivých partícií má celý súborový systém jednu súvislú stromovú štruktúru.
Rozdelenie celého súborového systému do partícií má niekoľko výhod, resp. nevýhod od nedeleného disku. Nevýhoda je, že pokiaľ sa preplní nejaká partícia, nie je možné do určitej časti súborového systému zapisovať, aj keď zvyšné partície sú poloprázdne. Výhodou je ľahšia údržba pre administrátora (napr. zálohovanie) aj pri veľmi veľkom diskovom priestore, poprípade nevýhoda preplnenia partície môže byť využitá aj na obmedzenie pridelenia diskového priestoru pre určité aplikácie, resp. používateľov. Ale pri účelovom využití sa z tejto nevýhody môže statť pre správcu systému výhoda.
Rozdelenie a obsadenosť súborového systému si môže používateľ zistiť príkazom:
v df [-i] [súborový_systém] [súbor]
Príkaz vypíše použité partície v súborovom systéme, ich veľkosť, zaplnenosť, koľko priestoru je ešte voľného, zaplnenosť v percentách a katalóg, v ktorom sú namontované. Ak zadáme konkrétny súborový systém (napr. /dev/rz0a), vypíše informáciu iba o tomto súborovom systéme konkrétnej partície. Ak zadáme súbor, vypíše informáciu o tej partícii, v ktorej sa súbor nachádza. Voľbou "-i" sa nastaví vypisovanie informácií aj o i-uzloch.
Hodnota 109% je možná tým, že administrátor môže na každej partícii nastaviť časť disku rezervovanú iba pre systém a používateľa root na zabezpečenie činnosti systému aj pri zaplnení disku obyčajným používateľom. Typicky to býva 10%. Informácia, koľko je ešte priestoru voľného a percentuálne zaplnenie disku túto rezervu neobsahujú.
0. sektor |
|
32. sektor |
|
superblok |
datové bloky |
superblok |
datové bloky |
Obr. 23 Rozloženie údajov na disku
Každý súborový systém partície obsahuje tzv. "superblok", ktorý obsahuje i-uzly a dátové bloky, kde sú samotné informácie uložené v súboroch. Pre bezpečnosť je superblok zálohovaný. Počet záloh je závislý od veľkosti partície. Obr. 23 zobrazuje rozdelenie jednej partície aj s prvou zálohou superbloku.
I-uzly sú postupne číslované od 1 v každej partícii. I-uzol obsahuje v sebe informácie o súbore s výnimkou mena. Obsah i-uzla je na nasledovný:
· typ súboru (obyčajný,adresár,špeciálny)
· identifikačné číslo vlastníka
· identifikačné číslo skupiny
· prístupové práva
· čas posledného zápisu do súboru
· čas posledného použitia (čítanie, zápis)
· čas poslednej zmeny i-uzla
· umiestnenie dátových blokov na disku (u špec. i-uzlu určenie perif. zariadenia)
Adresár je potom zoznam mien a prislúchajúcich i-uzlov súborov. Potom k menu je možné priradiť dátové bloky pomocou i-uzlov. Stav je zobrazený na Obr. 24.
Obr. 24 Zaradenie súboru do adresára
I-uzol je jednoznačná identifikácia súboru. Odkaz na i-uzol z položky adresára sa nazýva linka. Linka môže byť viacnásobná, poprípade z rôznych adresárov. To znamená, že tent istý súbor (i-uzol a dátové bloky) môže mať pridelených viac mien súčasne.
V OS UNIX sa hlavný (koreňový) katalóg nazýva ROOT. Označuje sa znakom / (lomítko). V ňom sa nachádzajú súbory a ďalšie katalógy - jeho podkatalógy. Všetky katalógy tak vytvárajú štruktúru - orientovaný strom a na jeho vrchole je koreňový katalóg - ROOT. Na Obr. 20 je ukázaná typická hierarchia adresárov UNIXU (LINUX).
Popis niektorých adresárov:
/ |
obsahuje hlavne súbor s jadrom operačného systému. Toto sa spúšťa pri zavádzaní systému. |
/bin |
obsahuje základné binárne súbory (spustiteľné programy-príkazy OS), ktoré sú dodané s operačným systémom. |
/dev |
obsahuje špeciálne súbory (ovládače) všetkých periférnych zariadení, ktoré vie ovládať operačný systém (ovládače diskových jednotiek, ovládače terminálov, ovládače páskových jednotiek ...) |
/etc |
obsahuje systémové konfiguračné súbory a programy určené pre bootovanie systému a pre údržbu systému administrátorom systému |
/mnt |
katalóg slúžiaci na pripojenie pomocných oblastí operačného systému |
/sys |
obsahuje súbory potrebné pri konfigurácii jadra operačného systému administrátorom systému |
/tmp |
obsahuje dočasné súbory, tu si môžu programy alebo používatelia dočasne odkladať rôzne súbory, katalóg sa zväčša periodicky maže (pri boote, každý týždeň a pod.) |
/var/log |
obsahuje rôzne štatistické súbory (kto bol kedy prihlásený, aké príkazy používal, koľko papiera vytlačil, súbor s chybovými správami a pod.) |
/usr |
obsahuje ďalšie významné katalógy: |
/usr/bin |
obsahuje ďalšiu množinu binárnych programov - príkazov štandardne dodávaných OS UNIX |
/usr/games |
Nemusí sa vyskytovať vždy. Obsahuje štandardné hry dodávané s operačným systémom OS UNIX, sú veľmi jednoduché, určené pre klasické terminály |
/usr/local |
obsahuje stromovú štruktúru podobnú hlavnej (obsahuje katalógy tmp, bin, etc, usr atď.), môžu tu byť uložené programy, ktoré sú na Unix dodatočne inštalované (napr. freeware) |
/usr/lib |
obsahuje knižničné moduly (napríklad pre kompilátor jazyka C) |
/usr/include |
obsahuje hlavičkové súbory jazyka C |
/usr/man |
obsahuje manuálové stránky pre príkazy, konfiguračné súbory, programovacie jazyky, obsahuje 8 párov katalógov s nasledujúcim významom: man1 - používateľské príkazy man2 - volania jadra operačného systému man3 - knižničné funkcie programovacích jazykov man4 - špeciálne súbory pre prídavné zariadenia man5 - systémové tabuľky man6 - príručky pre hry man7 - príručky pre formátovanie textov programom nroff, troff man8 - príkazu pre údržbu operačného systému |
/usr/spool |
katalóg určený pre systémové fronty (tlačiareň, sieť, tlačový front, atď) |
/usr/src |
zdrojové súbory príkazov operačného systému a aj samotného jadra (podkatalóg /usr/src/sys). Nenachádza sa vždy. |
/usr/user /home |
tu je stromová štruktúra domácich katalógov používateľov |
O menách súborov a adresárov už bolo hovorené. V adresári, ako sme už spomínali, sú položky, ktoré sú zložené z mena a odkazu na i-uzol. Toto meno sa nazýva jednoduchým menom. Jednoduché meno môže mať ľubovolnú dĺžku, ktorá je ohraničená iba implementáciou konkrétneho UNIX-u. Môže obsahovať ľubovolné znaky okrem znaku lomítko "/". Meno by nemalo obsahovať aj ďalšie špeciálne znaky, pretože interpretre príkazov ich interpretujú ako príkazy (napr. znaky | & * ? ; " ' ( ) ^ < > a ďalšie). Preto pre jednoduché meno sa odporúča používať iba veľké a malé písmená, číslice, znak bodka, vlnovka, pomlčka a znak podčiarknutia.
G Operačný systém rozlišuje veľkosť písmen, preto meno "Ali_pasa" a meno "ali_pasa" sú dve rôzne mená a v jednom katalógu musí mať každá položka (súbor alebo podkatalóg) iné meno.
V stromovej štruktúre súborového systému jednoduché meno nestačí na identifikáciu súboru. Preto pre určenie súboru alebo katalógu sa používa úplné (absolútne) alebo neúplné (relatívne) meno.
Absolútne (úplné) meno vytvoríme tak, že postupne zapisujeme jednoduché mená všetkých katalógov od koreňového až po katalóg, v ktorom sa nachádza súbor (alebo náš katalóg) a nakoniec zapíšeme jednoduché meno nášho súboru (katalógu). Pri zápise všetky jednoduché mená oddeľujeme znakom / a týmto znakom aj začneme. Napríklad:
/usr/bin/man súbor man v katalógu /usr/bin
/usr/user katalóg /usr/user
Už z príkladu je vidieť, že v mene sa nerozlišuje, či to je katalóg, alebo súbor (samotný katalóg je vlastne chápaný UNIX-om ako súbor).
Pri zavedení používateľa administrátor systému pridelil používateľovi jeho domáci katalóg. Po prihlásení je tento aj pracovným katalógom. Pracovný katalóg si používateľ môže meniť počas práce v operačnom systéme. Pracovný katalóg je dôležitý pri používaní neúplných mien súborov, nakoľko tieto sa vzťahujú práve k pracovnému katalógu.
Existujú dve špeciálne označenia katalógov:
. označuje pracovný katalóg
.. označuje katalóg, ktorému je pracovný katalóg podkatalógom (predch. katalóg)
Napríklad, ak je pracovným katalógom katalóg /usr/bin, tak zápis
. je ekvivalentný zápisu /usr/bin
.. je ekvivalentný zápisu /usr
Relatívne (neúplné) meno vytvoríme tak, že postupne zapisujeme jednoduché mená (poprípade označenia . alebo ..) všetkých katalógov od pracovného katalógu až po katalóg, v ktorom sa nachádza súbor (alebo náš katalóg) a nakoniec zapíšeme jednoduché meno nášho súboru (katalógu). Pri zápise všetky jednoduché mená oddeľujeme znakom / a môžeme použiť špeciálne označenia katalógov . Znak / neuvádzame na začiatku neúplného mena na rozdiel od úplného.
Napríklad, ak je pracovný katalóg /usr, tak zápis
bin je ekvivalentný zápisu /usr/bin
../dev je ekvivalentný zápisu /dev
./bin je ekvivalentný zápisu /usr/bin
bin/man je ekvivalentný zápisu /usr/bin/man
Niekedy potrebuje používateľ pracovať s celou skupinou súborov. Na to sa používajú znaky pre skupinový výber (tzv. "wildcard" znaky). Poznáme dva základné znaky skupinového výberu:
· ? - nahradzuje jeden ľubovoľný znak,
· * - nahradzuje ľubovoľný počet znakov v mene súboru.
Príklad: Majme tieto súbory:
FAKTURA1.DBF, FAKTURA2.DBF, FAKTURY.DAT, FERO.TXT, MZDY.DBF, PERSONAL
Ak napíšeme:
*.* - vyberieme všetky súbory
F*.D* - vyberieme súbory FAKTURA1.DBF, FAKTURA2.DBF, FAKTURY.DAT
*.DBF - vyberieme súbory FAKTURA1.DBF, FAKTURA2.DBF, MZDY.DBF
FAKTURA?.DBF - vyberieme súbory FAKTURA1.DBF a FAKTURA2.DBF
*. - vyberieme súbor PERSONAL
V kapitole 5.4.1 sme sa zaoberali popisom základných princípov výstavby súborového systému. Povedali sme si, že obsah súboru je uložený v zozname údajových blokov, na ktorý ukazuje i-uzol. V tejto kapitole sa budeme zaoberať spôsobom pridania novej linky k i-uzlu za účelom vytvorenia odkazu na daný súbor bez toho, aby sme ho kopírovali.
Pridanie ďalšej linky k i-uzlu sa vytvára pomocou príkazu:
v ln [-f] [-s] staré_meno [nové_meno]
v ln [-f] [-s] staré_meno ... [nový_katalóg]
Príkaz pridá novú linku k i-uzlu, ktorý je určený starým menom. Vznikne nová položka v katalógu, ktorá bude odkazovať na ten istý i-uzol, ako stará. Tento prípad je znázornený na Obr. 25.
Obr. 25 Vznik novej položky katalógu typu linka
Počet liniek ku i-uzlu nie je obmedzený, ale linka môže byť vytvorená iba v rámci súborového systému jednej partície a nemôže byť vytvorená na i-uzol, ktorý je typu katalóg. Pokiaľ existuje viac liniek na i-uzol, pri rušení súboru (príkaz rm) sa ruší linka na súbor. Až pri rušení poslednej linky sa uvoľní obsah súboru a s ním aj i-uzol.
Okrem spomínanej linky, tzv. "hard" linky, existuje ešte symbolická linka. Symbolická linka je vlastne súbor, ktorý obsahuje meno iného súboru, do ktorého referuje. Na Obr. 26 je vytvorená jedna symbolická linka:
Obr. 26 Vytvorenie symbolickej linky
Symbolická linka nemá obmedzenie na súborový systém jednej partície a nemožnosť vytvoriť linku na katalóg. Pri rušení cieľového súboru alebo katalógu sa symbolická linka neruší. Môže existovať aj samostatne, ale pri použití potom operačný systém hlási chybu.
Príkaz má dva tvary, prvý umožňuje vytvoriť novú linku pod novým menom (v tom istom alebo aj inom katalógu). Druhý tvar umožňuje vytvoriť nové linky (nové mená) tak, že pre súbory s menom staré meno vytvorí linky v inom katalógu s rovnakým jednoduchým menom, aké bolo vzorové (staré meno). Voľby:
-f pri vytváraní linky s novým menom zruší súbor, ak už s takým menom existuje
-s vytvorí symbolickú linku, inak vytvorí obyčajnú (hard) linku
Aby bolo možné používať príkazy pre manipuláciu s katalógmi, je potrebné najprv vedieť, čo sa v katalógu nachádza, t.j. vypísať si obsah katalógu. Na to slúži príkaz ls:
v ls [voľby] katalóg ...
Príkaz má celú množinu volieb, preto spomenieme aspoň najvia používané:
-l dlhý výpis obsahu katalógu
-a zobrazenie vštkžch (aj neviditeľných) súborov
-F k menu súboru je pridaný znak, ktorý reprezentuje typ súboru a to:
* vykonateľný súbor
/ katalóg
@ symbolická linka
-g zobrazenie aj skupiny pri zobrazení dlhého formátu
-R vypísanie aj celého podstromu v rámci aktuálneho katalógu
Pri použití príkazu
v ls -l
dostanete dlhý fomát výpisu, jako napríklad:
drwxr-xr-x 1 juro janosik 321 Sep 19 1999 vyplata
ktorý obsahuje nasledujúce časti:
typ práva počet_odkazov vlastník skupina veľkosť dátum meno
ktoré znamenajú:
typ |
Definuje typ súboru a môže byť: d katalóg - súbor l symbolická linka b blokové zariadenie (len pre súbory v katalógu /dev) c znakové zariadenia (lenpre súbory v katalógu /dev) |
Práva |
Definuje prístupové práva k súboru pre vlastníka, skupinu a ostatných. Práva sú zobrazené ako tri trojice znakov r, w a x s nasledujúcim významom: r povolenie pre čítanie w povolenie pre zápis x povolenie pre vykonávanie |
|
Napríklad: rwxr-xr-x Prvá trojica znakov reprezentuje prístupové práva pre vlastníka súboru, druhá trojica pre skupinu a tretia trojica pre ostatných. Na mieste ktoréhokoľvek práva sa môže vyskytovať znak "-", ktorý zakazuje povolenie vykonávania príslušnej činnosti, to znamená, že v našom príklade má skupina a všetci ostatní zákaz zapisovať do súboru. Vlastník súboru má zápis povolený. Na mieste práva "x" sa môže vyskytovať znak "S" alebo "s", ktorý špecifikuje prepožičanie identifikácie na vlastníka súboru, t.j. keď tento znak je na mieste povolenia vykonávania pre skupinu, tak ktorýkoľvek používateľ patriaci do skupiny, do ktorej patrí aj súbor, môže spustiť tento program tak, akokeby ho spustil vlastník súboru. |
počet_odkazov |
Špecifikuje, koľko odkazov je na daný súbor evidvaných, či už priamo, alebo prostredníctvom symbolických liniek |
Vlastník |
Meno vlastníka súboru tak, ako je evidovaný v systéme t.j. login meno. |
Skupina |
Názov skupiny, ktorá má povolený prístup k súboru. |
Veľkosť |
Dĺžka súboru. |
Dátum |
Dátum, kedy bol súbor vytvorený. |
Meno |
Meno súboru. |
Vytvoriť katalóg je možné prostredníctvom príkazu "mkdir". Jeho syntax ja nasledujúca.
v mkdir [-p] katalóg ...
Príkaz umožňuje vytvoriť nový katalóg alebo viac nových katalógov naraz. V prípade, že neexistuje cesta k novému katalógu sa vypíše chyba. Pokiaľ je zadaná voľba -p, chyba sa nevypíše, ale sa vytvoria aj všetky katalógy, ktoré sú obsiahnuté v ceste pre nový katalóg.
Príklad:
Ak chceme vytvoriť katalóg /user/student/prvy/novak a neexistuje katalóg /user/student, vypíše sa chyba. V prípade zadania voľby "-p" sa najprv vytvoria katalógy /user/student, potom /user/student/prvy a až potom žiadaný katalóg.
Príkazom
v rmdir katalóg
je možné zmazať katalóg. Katalóg nesmie obsahovať žiadnu položku (podkatalóg, súbor). Na vymazanie katalógu, ktorý v tomto prípade nemusí byť prázdny je možné použiť aj príkaz:
v rm -r katalóg
Príkaz
v cd [katalóg]
nastaví uvedený katalóg ako pracovný, pokiaľ má k nemu používateľ prístup. Príkaz cd je interným príkazom interpretrov príkazov. Pokiaľ sa neuvedie meno katalógu, nastaví sa ako pracovný katalóg domáci katalóg používateľa (katalóg, ktorý má používateľ nastavený po prihlásení).
Pomocou príkazu
v pwd
je možné vypísať plné meno pracovného katalógu.
Pre prácu s katalógmi je možné použiť aj príkazy mv, cp, chmod, chown, chgrp, poprípade aj ďalšie.
Ako sme už spomínali, v i-uzle sú uložené informácie o prístupových právach k súboru. Jednou z nich je skupina súboru. Čo to znamená ? V operačnom systéme UNIX je možné niekoľkých používateľov združiť do skupiny a potom viazať prístupové práva na túto skupinu, pričom používateľ môže byť členom viacerých skupín. Skupina súboru potom tvoria prístupové práva pre manipuláciu so súborom pre takto zavedenú skupinu. Zmenu skupiny súboru je možné vykonať pomocou príkazu chgrp, ktorý má tvar:
v chgrp [-R] skupina meno ...
Príkaz mení súboru alebo katalógu skupinu. Zmenu môže vykonať iba vlastník súboru (poprípade správca systému). Skupinu je možné zadať číslom (tzv. GID ) alebo menom. Vlastník môže zadať iba skupinu, ktorej je sám členom (môže si to zistiť príkazom groups). Voľbou -R sa príkaz vykoná rekurzívne aj pre podkatalógy.
Skupiny, ktoré sú nadefinované v systéme, a je ich možné použiť, sú uvedené v súbore /etc/group. V tomto súbore je uvedené aj kto sa nachádza v príslušnej skupine. Okrem toho každý má svoju implicitnú skupinu, ktorá je uvedená v súbore /etc/passwd (štvrtý stĺpec). Používateľ si môže zistiť, v ktorých skupinách je zaradený príkazom:
v groups
Vlastníka súboru je možné zmeniť pomocou príkazu:
v chown [-R] login[.skupina] meno ...
Príkaz mení vlastníka súboru (poprípade aj skupinu). Miesto loginu je možné zadať aj UID (identifikačné číslo používateľa) a miesto skupiny je možné zadať aj GID (identifikačné číslo skupiny). Príkaz môže používať iba administrátor systému.
V i-uzle sa nachádzajú ešte prístupové práva k súboru. Tieto je možné meniť príkazom:
v chmod [-R] mód meno ...
Príkaz mení prístupové práva uvedeným súborom a katalógom. Zmenu môže vykonať iba vlastník súboru poprípade administrátor systému.
Prístupové práva sú určené dvanástimi bitmi. Tri trojice prístupových práv určujú, či je možné čítať, meniť alebo spúšťať súbory pre používateľa, skupinu a ostatných používateľov. Zvyšné tri slúžia na prepožičanie prístupových práv vlastníka a skupiny a „sticky“-bit. Prístupové práva (mód) je možné meniť dvomi spôsobmi:
· číselnym spôsobom alebo
· symbolickým spôsobom.
Číselný spôsob zmeny prístupových práv sa vykoná tak, že za parameter mód sa dosadí mód=pxyz.
Pričom p je súčtom čísel, pokiaľ má byť príznak nastavený:
4 prepožičanie ID vlastníkom súboru
2 prepožičanie ID skupinou súboru
1 nastavenie, aby program ostával v pamäti čím dlhšie (tzv. „sticky“ bit).
a x, y aj z sú súčtom čísel:
4 pokiaľ má byť súbor alebo katalóg čitateľný
2 pokiaľ má byť umožnené modifikovať súbor alebo katalóg
1 pokiaľ je súbor spustiteľný, alebo je možné nastaviť katalóg ako pracovný
pričom x platí pre vlastníka súboru, y pre skupinu súboru a z pre ostatných používateľov systému.
Príklad: Mód 4750 pre súbor znamená, že vlastník môže súbor čítať, meniť aj spúšťať, skupina iba čítať a spúšťať a ostatní nemajú žiadny prístup k súboru. Okrem toho počas behu programu je prepožičaná identifikácia vlastníkom súboru.
Pri kontrole prístupových práv pre bežiace programy - procesy sa testujú tzv. efektívne prístupové práva. Nastavujú sa nasledovne:
· EUID=UID_vlastníka programu, ak je nastavené prepožičanie UID, inak UID používateľa, ktorý program spustil
· EGID=GID_programu, ak je nastavené prepožičanie GID, inak GID používateľa, ktorý program spustil
Symbolický mód má nasledovný tvar:
v [kto] operátor právo [operátor právo]
kde "kto" môže byť:
u používateľ
g skupina
o ostatní používatelia
a všetci (zhodné s ugo) implicitná voľba
pričom ich je možné kombinovať, napríklad ug.
Ako "operátor" môže vystupovať:
+ pridanie práva (neuvedené sa zachovávajú)
- odobranie práva (neuvedené sa zachovávajú)
= nastavenie práva
a na mieste "právo" je možné špecifikovať:
r čítanie
w zápis
x vykonanie
s prepožičanie identifikácie (UID, GID)
t sticky bit
u,g,o nastaví práva, ako má uvedená kategória
Napríklad príkaz
v chmod g=u súbor
zmení súboru prístupové práva pre skupinu na rovnaké, ako má vlastník súboru,
v chmod o= súbor
zruší všetky práva pre ostatných používateľov,
v chmod u+w,g=rx súbor
pridá právo zápisu pre vlastníka súboru a nastaví právo čítať a vykonať súbor pre skupinu.
Voľbou -R sa príkaz vykonáva rekurzívne pre všetky podkatalógy.
Už od svojho vzniku OS UNIX obsahuje príkazy na spracovanie textu. Autormi OS bolo vytvorené väčšie množstvo jednoduchých príkazov, kombináciou ktorých je možné riešiť aj zložité spracovanie textu, pričom sa tu s výhodou využívajú základné prostriedky UNIX-u, a to rúra a kolóna na komunikáciu medzi procesmi.
Príkazy na spracovanie textu je možné rozdeliť do nasledujúcich skupín:
· textové editory
· príkazy na spracovanie formátovaného textu nroff, troff
· príkazy na spracovanie všeobecného textu
Textové editory slúžia na písanie, poprípade úpravu textu, podobne ako písacím strojom. Textové editory majú ale mnoho významných vlastností, ako možnosť dodatočnej opravy preklepu, vsúvanie, vymazávanie textu, vyhľadávanie nejakého textu, možnosť automatického formátovania, prácu s blokom textu, možnosť uchovať text na disk a iné možnosti. Podrobnejšie budú popísané v kapitole 11.1.
Druhá skupina príkazov slúži na spracovanie súborov, ktoré obsahujú text v norme nroff/troff.
Tretia skupina príkazov slúži na dávkové spracovanie všeobecných textových súborov. Tieto príkazy je možné rozdeliť do nasledovných skupín:
· prezeranie obsahu súboru
· rozdelenie, spájanie súborov
· triedenie
· porovnanie textových súborov
· vyhľadávanie reťazcov v súboroch
· textové prevody
· preklad, pravopisná kontrola
· tlač textových súborov
· ostatné príkazy
V tejto kapitole sa budeme zaoberať príkazmi, ktoré sa používajú pri manipulácii so súbormi t.j. naučíme sa ako vytvoriť súbor, vytvoriť kópiu súboru, zrušiť súbor, utriediť, prípadne nájsť nejaké špecifikované slovo v súbore a pod.
Vypísať obsah súboru možno niekoľkými možnosťami:
· Výpis obsahu súboru bez pozastavenia.
· Výpis obsahu súboru po stránkach.
· Výpis konca obsahu súboru.
· Výpis obsahu súboru v inej forme než textovej.
Prvá možnosť je zabezpečená príkazom "cat". Syntax príkazu je nasledovná:
v cat [-u] [-n] [-s] [-v] [súbor ...]
Príkaz vypíše obsah špecifikovaného súboru na štandardný výstup t.j. prevažne na obrazovku. Bodky za príkazom znamenajú to, že príkaz "cat" vie naraz vypísať niekoľko súborov, podľa vôle používateľa.
Príklad:
cat aa bb cc dd
vypíše obsahy súborov s menami aa, bb, cc a dd. Ak súbor nie je špecifikovaný, tak sa na výstupe zobrazujú tie znaky, ktoré používateľ zadáva na štandardnom vstupe, ktorým zvyčajne býva klávesnica.
Pokiaľ je v príkaze špecifikovaná voľba "-u", tak sa na štandardný výstup vypíše obsah súboru bez bufrovania t.j. výpis súboru ide priamo na štandardný výstup bez toho, aby sa najprv uložil do pamäti počítača a až potom na výstup.
Ak používateľ špecifikuje voľbu "-n", potom sa na štandardnom výstupe objavia okrem riadkov textu aj poradové čísla riadkov v texte.
Ak je špecifikovaná voľba "-s", potom príkaz viacej prázdnych riadkov idúcich za sebou zhustí do jedného prázdneho riadku a len ten zobrazí na výstupe.
Ak je zadaná voľba "-v", potom sa na štandardnom výstupe budú vo forme zobraziteľných alternatív zobrazovať aj tzv. nezobraziteľné znaky t.j. znaky nový riadok, tabelátor, posun o znak späť sa zobrazia ako "\n", "\t", "\b".
Príkaz "cat" má jednu nevýhodu. Po zadaní a potvrdení príkazu príkaz zabezpečí výpis obsahu špecifikovaného súboru na štandardný výstup od začiatku až po koniec súboru. To znamená, že pokiaľ je štandardným výstupom obrazovka a súbor obsahuje viacej riadkov ako je možné na obrazovke zobraziť, tak po ukončení príkazu vidíme na obrazovke len posledné riadky súboru. Existuje však možnosť pozastaviť výpis príkazom "cat", a to stlačením riadiaceho klávesu na pozastavenie výpisu (prevažne ide o kombináciu klávesov CTRL-S), a potom si prezrieť zobrazenú časť súboru. Vo výpise je možné potom pokračovať stlačením klávesu pre pokračovanie vo výpise (prevačne ide o kombináciu klávesov CTRL-Q).
Aby sme nemuseli používať riadiace kláves boli vytvorené na prezeranie súborov ďalšie príkazy, ktoré zobrazujú špecifikované súbory po stránkach, kde stránkou sa rozumie jedna obrazovka. Tými príkazmi sú príkazy "more" a "page". Ich syntax je nasledovná:
v more [voľby] [súbor ...]
v page [voľby] [súbor ...]
Od seba sa odlišujú tým, že príkaz "more" vypisuje obsah súboru rolovaním obrazovky nahor a príkaz "page" predtým ako zobrazí stránku dokumentu, najprv vymaže obrazovku a výpis sa začne v ľavom hornom rohu obrazovky.
Príkazy teda zobrazujú špecifikovaný súbor, prípadne súbory, po obrazovkách. Po zobrazení každej obrazovky sa na poslednom riadku obrazovky zobrazí text
-- More -- (n%)
kde pod písmenom "n" sa skrýva číslo, ktoré v percentách definuje množstvo vypísaného textu zo súboru.
Pokiaľ nie je súbor špecifikovaný, tak sa vypisuje obsah štandardného vstupu.
Najčastejšie sa príkaz používa bez akejkoľvek voľby, avšak v niektorých prípadoch sú nutné, preto popíšeme aspoň tie najčastejšie používané:
Voľby:
-l ak táto voľba nie je uvedená, výpis sa zastaví pri každom výskyte znaku prechodu na novú stranu
-s zabezpečí sa zhustenie niekoľkých po sebe idúcich prázdnych riadkov do jedného
-n číslo "n" udáva, koľko riadkov vypisovaného textu sa má zobraziť na jednej stránke
+nl číslo "nl" špecifikuje číslo riadku, od ktorého začne výpis na obrazovke
+/vzor výpis sa začne dva riadky pred riadkom, ktorý obsahuje špecifikovaný vzor
Oveľa častejšie ako voľby príkazov "more" a "page" sa používajú vnútorné príkazy, ktoré je možné zadať po výpise stránky, keď na poslednom riadku je text " -- More -- (n%) ". Uvedieme opäť len najčastejšie používané:
i(medzera) vypíše sa ďalších i riadkov
is preskočí sa ďalších i riadkov
if preskočí sa ďalších i obrazoviek
ib preskočí sa predchádzajúcich i obrazoviek (ak i nie je špecifikované je implicitne 1)
q,Q ukončenie programu "more" ( "page" )
h vypíše sa pomoc pre používanie vnútorných príkazov
= vypíše sa číslo pracovného riadku
!príkaz vykoná sa príkaz shell-u
/vzor nájde najbližší ďalší výskyt reťazca vzor.
Kompletný zoznam vnútorných príkazov je možné získať zadaním vnútorného príkazu "h" ( od slova help - pomoc ) alebo "?".
Ak potrebujeme prezrieť obsah súboru, v ktorom máme údaje uložené v binárnej forme, sú nám predchádzajúce príkazy na výpis obsahu súborov zbytočné, pretože každý binárny údaj chápu ako ASCII kód znaku a teda pre nás je to v tomto prípade nepotrebná informácia. Na výpis takýchto súborov sa v operačnom systéme UNIX používa príkaz "od". Jeho syntax je nasledovná:
v od [voľby] [súbor]
kde súbor je zobrazovaný súbor a voľby sú:
-x vypisuje sa obsah súboru v hexadecimálnom tvare
-d vypisuje sa obsah súboru v desiatkovom tvare
-o vypisuje sa obsah súboru v osmičkovom tvare
-b vypisuje sa obsah súboru v dvojkovom tvare
-c vypisuje sa obsah súboru v ASCII tvare
Príklad:
od -cx cc.c
vypíše obsah súboru "cc.c" súčasne v ASCII i v hexadecimálnom tvare.
Príkaz nevie zobrazovať údaje po stránkach, preto je nutné zabezpečiť, aby údaje boli stránkované. Je to možné previesť buď už známou dvojicou CTRL-S a CTRL-Q, alebo je možné použiť metódu presmerovania údajov z jedného programu do druhého.
Príklad:
od -cx data | page
zabezpečí zobrazenie súboru "data" v znakovej a hexadecimálnej forme pričom údaje z príkazu "od" nejdú hneď na obrazovku, ale sú presmerované do programu "page", ktorý síce nemá špecifikovaný argument pre zobrazenie, ale v tomto prípade je jeho argumentom práve výstup z príkazu "od". Tento výstup príkaz "page" zobrazí po stránkach.
Ak chceme vypisovať súbor, ktorý obsahuje veľmi veľa údajov (desiatky až stovky KB) a potrebujeme z neho prečítať informácie uložené na konci súboru, je to síce možné vykonať predchádzajúcimi príkazmi, ale časovo je to dosť náročné. Preto bol vytvorený príkaz "tail", ktorý vypisuje len časť súboru. Jeho syntax je nasledovná:
v tail +-číslo [lbc] [rf] [súbor]
kde
+číslo udáva, koľko riadkov sa má zobraziť zo začiatku súboru, číslo - špecifikuje počet riadkov, ktoré budú zobrazené z konca súboru,
l,b,c určujú, či výpis bude po riadkoch, blokoch alebo po znakoch
r špecifikuje, že výpis bude na obrazovke v obrátenom poradí.
Na zrušenie súboru v operačnom systéme sa používa príkaz "rm". Jeho syntax je nasledovná:
v rm [-f] [-r] [-i] [-] súbor ...
Ak je špecifikovaná voľba "-r", budú rušené súbory rekurentne, t.j. bude zrušený celý podstrom. V tomto prípade však na mieste mena súboru musí byť meno katalógu. Uvedomte si, že katalóg nemusí byť prázdny a systém ho celý zruší. Voľba "-i" zabezpečí interaktívne rušenie súborov t.j. pred rušením každého súboru sa operačný systém opýta používateľa, či špecifikovaný súbor má naozaj zrušiť. Voľba "-f" zabezpečí, že používateľ nedostane žiadnu správu o korektnosti (ale ani o chybe ) rušených súborov.
Príklad: Majme v katalógu päť súborov:
a1.c, a2.c, a3.c, a4.c, a5.c
Ak sa zadá príkaz
rm *.a
operačný systém vypíše
No match.
To preto, že v aktuálnom katalógu nenašiel ani jeden zo špecifikovaných súborov. Ak sa zadá príkaz
rm -f *.a
tak operačný systém nevypíše žiadnu správu. Pritom všetkých päť súborov je prítomných. Až príkazom
rm *.c alebo rm a*
dôjde k ich zrušeniu.
G Po zrušení súboru už nie je možné ho obnoviť !
Na premenovanie mena súboru alebo katalógu slúži príkaz "mv". Jeho syntax je nasledovná:
v mv [-i] [-f] [-] súbor1 súbor2 alebo
v mv [-i] [-f] [-] súbor1 ... súborn katalóg
Prvý tvar príkazu zabezpečí premenovanie mena súboru alebo katalógu "súbor1" na názov "súbor2". Druhý tvar príkazu presunie súbory "súbor1" ... "súborn" do katalógu "katalóg". Voľby príkazu majú ten istý význam ako v predchádzajúcom príkaze "rm".
Ak chceme vytvoriť nový súbor tak, že do existujúceho súboru chceme len pridať nejaké riadky, tak najlepšie je to urobiť nasledujúcim spôsobom:
· vytvoriť kópiu starého súboru,
· v editore potom pridať nové riadky do nového súboru.
Ako v editore pridať riadok bude popísané neskôr. Na tomto mieste uvedieme len príkaz "cp", pomocou ktorého vytvoríme kópiu súboru. Jeho syntax je nasledujúca:
v cp [-ip] súbor1 súbor2 alebo
v cp [-ipr] súbor1 ... súborn katalóg
Prvý tvar príkazu nám zabezpečí vyššie spomínanú akciu, kde starý súbor je "súbor1" a novovytváraný súbor kopírovaním je "súbor2". Druhý tvar príkazu umožňuje skopírovať uvedený zoznam súborov "súbor1 ... súborn" do špecifikovaného "katalógu".
Ak je špecifikovaná voľba "-i" bude program požadovať od používateľa potvrdenie skopírovania interaktívnym spôsobom. Voľba "-p" zabezpečí, že pri kopírovaní sa nebude modifikovať len meno súboru, ale aj údaje o ňom (dátum a čas vytvorenia, prístupové práva). Voľba "-r" v druhom prípade zabezpečí rekurzívne kopírovanie súborov z jedného katalógu do druhého. V tomto prípade môže byť miesto zoznamu súborov, ktoré chceme kopírovať, aj názov katalógu, avšak uvedomme si, že potom je kopírované aj meno tohto katalógu.
Príklad: Majme podstrom zobrazený na Obr. 27. Nachádzame sa v katalógu NAJNOVSI (uzol označený štvoruholníkom). Je potrebné:
· skopírovať súbory nachádzajúce sa v katalógu STARY do katalógu NOVY
· skopírovať celý strom STARY do katalógu NAJNOVSI
Obr. 27 Podstrom pre demonštráciu príkazu cp
Prvý prípad vykonáme príkazom
cp ../STARY/* ../NOVY
čím vznikne podstrom znázornený na Obr. 28.
Druhý prípad dosiahneme príkazom
cp -r ../STARY .
čím vznikne podstrom znázornený na Obr. 29 (vychádzajúc z Obr. 27).
Obr. 28 Demonštrácia príkazu cp prvým spôsobom
Obr. 29 Demonštrácia príkazu cp druhým spôsobom
V niektorých prípadoch sa môže stať, že máme málo priestoru na disku a chceme skopírovať nejaký súbor len na to, aby sme si ho prezerali t.j. nechceme v ňom robiť žiadne zmeny. To sa jednoducho dá vykonať tak, že pre príkazy určené na prezeranie súborov sa ako meno súboru uvedie jeho plná cesta k súboru.
Iným možným spôsobom, ktorý nám naviac umožňuje špecifikovať súbor len jeho menom, je vytvorenie tzv. linky k súboru resp. odkazu na súbor. Čo to znamená. Pri vytváraní linky k súboru sa nám zdá, ako keby súbor, ku ktorému sme linku vytvorili, bol umiestenený v našom katalógu (viď príkaz "cp"). V skutočnosti však je v našom katalógu len nami špecifikované pomenovanie tohto súboru a samotný súbor je uložený niekde inde. Príkaz, ktorý nám umožní vytvoriť takúto odkaz na súbor sa volá "ln". Jeho syntax je nasledujúca:
v ln [-s] zdrojový_súbor nový_odkaz
Voľba "-s" špecifikuje, že sa odkaz vytvára v rámci celého súborového systému t.j. umožňuje vytvoriť odkaz aj medzi jednotlivými partíciami (partícia - jedna oblasť diskového priestoru) - umožňuje vytvoriť tzv. softvérovú linku. Štandardne (bez špecifikovania parametra "-s") sa vytvára tzv. hardvérová linka t.j. len v rámci jednej partície.
Príklad:
Do katalógu LINKA sa príkazom
ln -s ../STARY/s1 ../LINKA
vytvorí v katalógu "LINKA" odkaz na súbor "s1" v katalógu STARY (viď Obr. 30). Odkaz bude uložený v katalógu "LINKA" pod tým istým menom "s1". Pri všetkých operáciach s týmto odkazom sa používateľovi vytvorený odkaz "s1" javí ako skutočný súbor "s1". O tom, že je to naozaj odkaz, sa je možné najlepšie presvedčiť tak, že napríklad v editore "vi" vykonáte zmenu nad odkazom "s1" a potom sa napríklad programom "page" presvedčíte, či táto zmena nastala aj v súbore "s1" uloženom v katalógu "STARY". Samozrejme je potrebné dbať na to, aby ste sa pri práci nachádzali v príslušnom (správnom) katalógu.
Obr. 30 Demonštrácia vytvorenia linky na súbor s1
Ak potrebujete nastaviť dátum a čas vytvorenia pre nejaký súbor (napr. sa to často stáva pri prekladaní programu zloženého z niekoľkých súborov), operačný systém ponúka príkaz "touch". Jeho sysntax je nasledovná:
v touch [-c] [-f] súbor ...
Modifikovať dátum a čas je teda možné pre niekoľko súborov naraz. Zvyčajne sa používajú skrátené mená napr. špecifikácia *.c na mieste súboru znamená, že sa bude modifikovať dátum a čas pre všetky súbory, ktoré majú príponu ".c" a sú uložené v aktuálnom katalógu. Ak súbor v aktuálnom katalógu neexistuje, tak sa vytvorí s nulovou dĺžkou. Ak je však špecifikovaná voľba "-c" tak sa tento súbor nevytvorí. Voľba "-f" zabezpečí, že sa potlačí výpis správy o výsledku príkazu.
Pre porovnávanie dvoch súborov medzi sebou slúži príkaz "cmp". Jeho syntax je nasledovná:
v cmp [-l] [-s] súbor1 súbor2
Príkaz vytlačí informáciu o výsledku porovnávania. Ak je špecifikovaná voľba "-l", tak je vypisovaný tzv. dlhý formát t.j. vypíšu sa čísla rozdielných bajtov (desiatkovo) a rozdielne bajty (osmičkovo). Ak na mieste súboru "súbor1" alebo "súbor2" je špecifikované "-", tak sa tým myslí štandardný vstup. Voľba "-s" zabezpečí potlačenie výpisu o porovnávaní súborov.
Lepšie porovnanie dvoch súborov alebo katalógov poskytuje príkaz "diff". Jeho syntax je nasledovná:
v diff [-biw ] [-c [# ] | -e | -h ] súbor1 súbor2
v diff [-biw ] [-c [# ] | -e | -h ] [-l ] [-r ] [-s ] [-Smeno ] katalóg1 katalóg2
Význam volieb príkazu je nasledovný:
-b nahradí tabelátory ekvivalentným počtom medzier
-i ignoruje rozdiel medzi malými a veľkými písmenami
-w ignoruje všetky medzery a tabelátory
Nasledujúce voľby je možné voliť tak, aby súčasne bola špecifikovaná len jedna z nich. Ich význam je nasledovný
-c[#] Do výstupu produkuje počet "#" riadkov okolo nájdeného kontextu. Implicitne sa produkujú riadky, ale je to možné zmeniť.
-e Produkuje výpis a, c a d príkazov pre editor ed, ktorý bude transformovať "súbor2" podľa súboru "súbor1".
-h Vykonáva rýchle porovnávanie, ale nie veľmi dôkladné. Pracuje len nad krátkymi, dobre oddelenými úsekmi, ale zato nad súbormi nekonečnej dĺžky.
S druhou verziou príkazu je možné porovnávať katalógy, pričom je možné naviac špecifikovať nasledujúce voľby:
-l produkuje sa dlhý formát
-r aplikuje príkaz rekurzívne na podkatalógy
-s vypíše súbory, ktoré sú rovnaké a ďalej ich neuvažuje
-Smeno porovnávanie začína od súboru s názvom "meno"
Na porovnanie troch súborov slúži príkaz "diff3". Jeho syntax je nasledovná:
v diff3 [-exEX3] súbor1 súbor2 súbor3
O porovnaní príkaz podáva správu vo forme:
==== všetky tri súbory sú rozdielne
====1 súbor1 je odlišný
====2 súbor2 je odlišný
====3 súbor3 je odlišný
Informáciu o tom, akého druhu informácie súbor obsahuje, môžeme zistiť príkazom "file". Jeho syntax je masledovná:
v file súbor ...
Príkaz zistí aký je obsah súboru a podľa toho vypíše typ daného súboru. Napríklad: Ak je zadaný príkaz
file *
dostaneme na obrazovke výpis o typoch súborov uložených v aktuálnom katalógu t.j. ak sú tam tri súbory aa (v spustiteľnom tvare), bb (v textovom tvare) a cc (v tvare formátu príkazu nroff), tak výpis je nasledovný
aa - binary file
bb - ascii text
cc - nroff, troff file
Na triedenie obsahov súborov slúži príkaz "sort". Jeho syntax je nasledovná:
v sort [ voľby ] [+č1 [-č2 ] ] ... [-o meno ] [-T katalóg ] [meno ] ...
Príkaz usporiada alebo zlúči špecifikované súbory podľa špecifikovaných volieb. Ak nie je špecifikované "-o meno", kde meno je názov výstupného súboru, tak sa výpis vykoná na štandardný výstup. Postupnosť znakov "+č1 ... -č2" umožňuje špecifikovať triedenie len pre vybraté položky súboru a to spôsobom, že triedenie prebehne od položky "+č1" až po položku, ktorá je pred "-č2". Ako voľby môžeme špecifikovať nasledovné:
-d pri porovnávaní sú významné len ASCII znaky, čísla, medzera a tabulátor
-f veľké písmená budú považované za malé
-b pri porovnávaní sa ignorujú medzery a tabulátor
-r zmysel usporiadania je v opačnom tvare
-tx oddeľovacím znakom slov nie je medzera a tabulátor, ale znak "x"
Príklad: Príkaz
sort -t: +3 /etc/passwd
usporiada vzostupne, od druhej položky (ktorou je identifikačné číslo používateľa - UID) až po poslednú položku riadku, súbor /etc/passwd, pričom oddeľovacím znakom medzi položkami v riadku je znak ":".
Niekedy sa nám stáva, že potrebujeme pozrieť obsah súboru, ale zabudli sme, kde je tento uložený, resp. potrebujeme vedieť, či niekde v súborovom systéme existuje nejaký konkrétny súbor. Na to nám slúži príkaz "find". Jeho syntax je nasledujúca:
v find cesty výraz ... alebo
v find vzorka
Druhý tvar príkazu hľadá a vypíše všetky mená súborov, ktoré obsahujú špecifikovanú vzorku. Súbory sa hľadajú v tých katalógoch, ktoré sú nastavené v premennej prostredia PATH.
Prvý prípad je všeobecnejší. Hľadajú sa špecifikované súbory v katalógoch, ktoré sú špecifikované v "cesty". Ako "výraz" možno uviesť dostatočné množstvo rôznych výrazov, z ktorých najčastejšie používané sú:
-name súbor hľadanie súborov s menom "súbor"
-print vypíše sa plná cesta k nájdeným súborom
-user umeno hľadanie súborov, ktorého vlastníkom je umeno
-links n hľadanie súborov s n odkazmi ( linkami )
-size n hľadanie súborov s veľkosťou n blokov
-inum n hľadanie súborov, s číslom i-uzla n
-exec príkaz vykoná sa príkaz "príkaz" shell-om
Ak potrebujeme nájsť v súbore určité reťazce, príkaz "find" nám to neumožní. Na to slúžia príkazy "grep", "egrep" a "fgrep". Ich syntax je nasledovná:
v grep [voľby] ... výraz [súbor] ...
v egrep [voľby] ... [výraz] [súbor] ...
v fgrep [voľby] ... [reťazec] [súbor] ...
Príkazy vypíšu riadky, v ktorých sa nachádza špecifikovaný reťazec. Ak je špecifikovaná voľba "-c", je vypísaný len počet riadkov (číslom), v ktorých bol výraz nájdený. Ak je špecifikovaná voľba "-b", potom je vypísaný celý blok (cca 10 riadkov) okolo riadku, v ktorom bol výraz nájdený.
Obdobou predchádzajúcich príkazov je príkaz "strings". Tiež hľadá v súboroch špecifikovanú vzorku. Rozdielom však je to, že tento príkaz hľadá špecifikované vzorky v binárnych súboroch t.j. v súboroch, ktoré je možné priamo odštartovať interpréterom príkazov. Jeho syntax je nasledovná:
v strings [-a] [-o] [-n] súbor ...
Ak je špecifikovaná voľba "-a", potom sa prehľadáva komplet celý súbor (štandardne sa prehľadáva len údajová časť). Voľba "-o" zabezpečí, že sa vypíše osmičkové číslo, ktoré reprezentuje posun reťazca v súbore od začiatku súboru. Voľba "-n" špecifikuje novú minimálnu dĺžku hľadaného reťazca (štandardne je 4).
Z ďalších viac používaných príkazov je potrebné spomenúť príkaz "wc", ktorý umožňuje vypísať na štandardný výstup dĺžku súboru v riadkoch, slovách a znakoch podľa špecifikovanej voľby. Jeho syntax je nasledovná:
v wc [-lwc] [meno ...]
Ak je špecifikovaná voľba "-l" (z angl. line - riadok), je vypísaná dĺžka súboru v riadkoch, ak "-w" (z angl. word slovo), tak v slovách, a ak "-c" (z angl. char - znak), tak v znakoch. Štandardne sa vypíšu všetky tri voľby.
Ak chceme tlačiť súbor na tlačiarni a štandardné riadkovanie, ktoré je nastavené systémovým programátorom nám nevyhovuje, môžeme si súbor pripraviť pre tlač príkazom "pr". Jeho syntax je nasledovná:
v pr [voľby] ... [súbor] ...
Voľbami môžeme nadefinovať, ako má náš výstup na tlačiarni vyzerať. Napr.:
voľba "-n" produkuje výstup na tlačiareň v "n" stĺpcoch,
voľba "+n" vykoná formátovanie textu až od n-tej stránky,
voľba "-f" vloží znak posuvu na novú stránku pred zažiatkom tlače,
voľba "-ln" definuje dĺžku stránky na n riadkov, atď.
Veľmi používaným je príkaz "tar". Vo veľa publikáciach je popisovaný ako archivačný program súborv na pásku. Je to však len jeho jedna vlastnosť ( avšak najpoužívanejšia ). Vzhľadom na vlastnosť operačného systému UNIX, ktorý so všetkými súbormi, katalógmi a zariadeniami pracuje ako so súbormi, je možné miesto zariadenia reprezentujúce archivačnú pásku, špecifikovať obyčajný súbor. Potom je týmto spôsobom možné archivovať celé balíky programov významovo patruiace k sebe resp. archivovať programi zložené z niekoľkých súborov. Jeho syntax je nasledovná:
v tar [kľúč] [súbor ...]
Ako kľúč je možné špecifikovať:
r súbory sú zapísané na koniec páskového záznamu
x súbory sú extrahované z pásky
t sú vypisované len mená súborov uložených na páske
c súbory sú zapisované na pásku opd začiatku ako nový záznam
K týmto kľúčom je možné pridať ešte ďalšie voľby napr.:
v dôjde k dlhšiemu výpisu o charaktere akcie
f meno ak je špecifikované f, tak nasledujúci parameter musí byť meno súboru, do ktorého budú súbory archivované tak, akokeby boli archivované na pásku.
Príklad:
Chceme do súboru "archív" uložiť všetky súbory, ktoré sa nachádzajú v katalógu /usr/src/bin. Je to možné nasledujúcim spôsobom:
tar cvf archív /usr/src/bin/*
V náväznosti na tento archivačný príkaz je možné aplikovať komprimáciu údajov príkazom "compress". Jeho syntax je nasledovná:
v compress [-cfv] [-b bits] [súbor...]
Význam volieb je nasledovný:
c nevykonáva zmeny v súbore, ale vykoná výpis na výstup
f upozorní, ak príslušný súbor s príponou ".Z" už existuje
v zobrazuje prercentuálne kompresovanie pre každý súbor
-b bits nastavuje horný limit v počte použitých bitov pre kódovací reťazec. Musí byť medzi 9 a 16. (Implicitne je 16).
Príkaz po vykonaní komprimácie pridá k pôvodnému menu súboru príponu ".Z".
Ak dodržíme túto stratégiu pri archivovaní súborov, potom môžete jednoduchou formou mať poriadok medzi svojimi súbormi a šetriť tak aj pamäťový priestor na disku.
Na rozbalenie je potrebné najpr vykonať dekomprimáciu a potom príkazom "tar" s voľbou "-x" vytvoriť pôvodnú kópiu balíka programov. Dekomprimáciu môžete vykonať príkazom "uncompress" (pokiaľ bola komprimácia vykonaná programom "compress"). Jeho syntax je nasledovná:
v uncompress [-cv] [súbor ...]
Význam špecifikovaných volieb je ten istý ako u príkazu "compress".
Pre názornosť uvedieme jednoduchý príklad:
Majme situáciu podľa Obr. 27. Nachádzajme sa na vrchole nášho podstromu.Uložme podstrom STARY do súboru, ktorý sa volá stary.tar. Je to možné vykonať príkazom
tar cf stary.tar STARY
ktorý hovorí, že sa bude vykonávať balenie (znak "c") do súbory starý.tar (špecifikácia "f stary.tar") a bude sa archivovať katalóg STARY s celým jeho podstromom.
Potom môžeme vykonať komprimáciu príkazom
compress stary.tar
čím vznikne súbor "stary.tar.Z" a uloží sa do aktuálneho katalógu (viď Obr. 31).
Obr. 31 Zbalenie a komprimácia katalógu STARY do súboru stary.tar.Z
Potom môžeme katalóg STARY vymazať napríklad príkazom
rm -r STARY
V prípade, že by sme potrebovali balík rozbaliť, je potrebné vykonať nasledujúcu sekvenciu príkazov:
uncompress stary.tar.Z
tar xf stary.tar
V operačnom systéme UNIX existujú príkazy, ktoré využívajú tzv. systémové fronty. Tieto systémové fronty sú vytvorené k zdieľaniu určitých prostriedkov, napríklad tlačiarní. Táto metóda sa nazýva "spooling". Je založená na tom, že používateľ zaradí svoju úlohu do frontu a potom OS tieto úlohy vyberá z frontu a jeden po druhom vykonáva. Z princípu vyplýva, že skutočné vykonanie môže nastať aj po dlhšom čase, ako sa úloha zaradí do frontu.
Najviac používaným prostriedkom využívajúcim metódu spoolingu je tlačiareň. Je totiž potrebné, aby viac používateľov zdieľalo jednu poprípade viac tlačiarní a aby sa výpisy navzájom nemiešali. To znamená, aby tlač ďalšieho výpisu (napr. iného používateľa) začala až po skončení predchádzajúceho. V tomto prípade je použitý front typu FIFO (First In, First Out), to znamená, že kto prvý zaradí do frontu zostavu, tak tomu sa zostava vytlačí ako prvá. Administrátor systému má ale možnosti toto poradie pozmeniť. Tlačový front býva lokalizovaný v katalógu /usr/spool/meno_tlačov_frontu (dané v konfiguračnom súbore /etc/printcap).
V operačnom systéme môže byť nakonfigurovaná tzv. vzdialená tlačiareň, to značí tlačiareň na inom počítači. Tlačová zostava zaradená do takejto fronty sa najprv pomocou siete prenesie na vzdialený počítač a potom sa na ňom vytlačí. Tento spôsob sa s výhodou využíva pri vytváraní printservrov v sieti.
Na ovládanie tlače poznáme nasledovné príkazy:
lp - zaradenie tlačovej zostavy do frontu
lpq - zistenie stavu tlačového frontu
lprm - vyradenie tlačovej zostavy z frontu
lpc - ovládanie frontu a tlače
Popis príkazov pre ovládanie tlačovej fronty:
Príkaz lpc je určený hlavne pre administrátora systému. Obyčajný používateľ môže použiť nasledovné zápisy:
v lpc restart tlačiareň
v lpc status
Zápis "lpc status" zistí stav tlačiarne, fronty a počet úloh vo fronte pre každú inštalovanú tlačiareň (tlačový front). Tvar "lpc restart" vykoná znovu spustenie tlačového „démona“, pokiaľ sa neodštartoval sám pre nejakú príčinu.
v lpr [voľby] [súbor ...]
Príkaz zaradí súbor do tlačového frontu. Pokiaľ nie je zadaný súbor(y) použije sa štandardný vstup. Pokiaľ sú uvedené voľby, ktoré si odporujú, platí posledná voľba.
Voľby:
-h Netlačí sa hlavička tlače.
-in Celá zostava sa posunie o n znakov vľavo.
-Jjob V hlavičke sa použije job ako názov úlohy. Implicitný názov úlohy je meno súboru.
-m Pošle sa pošta oznamujúca vytlačenie zostavy.
-p Použije sa formátovanie súboru príkazom pr.
-Pprn Tlačová zostava sa zaradí do frontu pre tlačiareň s menom prn. Pokiaľ nie je uvedená táto voľba, použije sa implicitná tlačiareň.
-Ttitul Tlačí titul na každú stránku zostavy. Používa sa s voľbou -p.
-wn Nastavenie šírky papiera v znakoch. Pokiaľ nie je uvedená táto voľba, použije sa implicitné nastavenie.
-zn Nastavenie dĺžky stránky v riadkoch. Pokiaľ nie je uvedená táto voľba, použije sa implicitné nastavenie.
-_#n Tlačí n kópií špecifikovaného súboru.
Ďalšie voľby tu neuvádzame, je ich možné získať pomocou príkazu man lpr.
Príkaz lpq umožňuje zistiť stav tlačového frontu. Používateľ sa takto môže dozvedieť, či sa práve vykonáva tlač, na ktorom mieste v poradí je jeho tlačová zostava, poprípade iné informácie. Príkaz má nasledovný tvar:
v lpq [voľby] [používateľ]
Pokiaľ je udaný používateľ vypíše sa informácia iba o zostavách daného používateľa.
Voľby sú nasledovné:
+n zobrazuje stav frontu každých n sekúnd, pokiaľ nie je front prázdny.
-l dlhý výpis.
-Pprn Vypíše stav frontu pre danú tlačiareň. Pokiaľ táto voľba nie je zadaná, zobrazuje sa stav frontu implicitnej tlačiarne.
Posledným príkazom na ovládanie tlačového frontu, ktorý je potrebný pre obyčajného používateľa je príkaz:
v lprm [-Ptlačiareň] [-] [číslo úlohy]
Príkaz lprm vymaže z tlačového frontu úlohu. Používa sa pokiaľ používateľ zadal úlohu na tlačenie a chce ju zrušiť. Samozrejme, musí príkaz použiť skôr, ako sa začne tlačiť. Pokiaľ sa zadá tlačiareň, maže sa úloha z príslušného frontu. Voľba - spôsobí vymazanie všetkých vlastných úloh. Pokiaľ sa zadá konkrétne číslo úlohy, vymaže sa konkrétna úloha. Čísla úloh je možné získať použitím príkazu lpq.
Aké tlačiarne sú v systéme práve nakonfigurované je uvedené v súbore /etc/printcap. Tento konfiguračný súbor obsahuje pre každú tlačiareň rozličné nastavenia (napr. aký adresár sa použije ako fronta, aké zariadenie pre samotný výstup na tlač, aký program na filtrovanie zostáv, aká hlavička, ako sa stránkuje, aké rozmery má stránka a iné informácie). Význam týchto nastavení si môžete ziskať príkazom man printcap. Do tohto súboru môže zapisovať iba administrátor systém
Ďalší veľmi používaný front je poštový front. Príkazy na ovládanie pošty priamo viditeľné používateľom pracujú s týmto frontom. Pokiaľ chce používateľ poslať poštu, pomocou príkazu mail ( elm, alebo iného dostupného v systéme) zaradí poštu do poštového frontu. Pošta sa potom posiela na určený počítač, pomocou poštového démona (proces na pozadí). Tento, pokiaľ sa nedá pošta doručiť okamžite, napríklad pre chybu v počítačovej sieti, skúša poslať poštu v pravidelných intervaloch. Zväčša po troch dňoch neúspešného posielania vráti poštu odosielateľovi s tým, že pošta sa nedá doručiť.
Tento front obsahuje v sebe úlohy spustenia skriptových súborov. Používateľ pomocou nich môže nastaviť vykonanie nejakých príkazov na určitú dobu. Skutočná doba vykonávania príkazov je daná tým, že front sa prehľadáva v určitých intervaloch (napríklad každých 15 minút). Skutočný čas vykonania je potom najbližší čas prehľadávania frontu po nastavenom čase. Administrátor systému si môže nastaviť frekvenciu prehľadávania frontu v súbore /usr/lib/crontab v riadku pre atrun. Front je lokalizovaný v katalógu /usr/spool/at. V tomto katalógu sú aj súbory at.allow a at.deny na povolenie tejto služby iba pre určitú skupinu používateľov. Tento front má k dispozícii na ovládanie príkaz, ktorý slúži na zaradenie, vyradenie úlohy z fronty, poprípade zobrazenia stavu fronty. Má nasledovnú syntax:
v at čas [deň] [súbor]
v at -r úloha ...
v at -l [úloha ...]
Čas môže mať napríklad takýto tvar:
HHMM - 24-hodinové počítanie
HH:MM - 24-hodinové počítanie
H:MM - 24-hodninové počítanie
Dátum môže mať nasledovný tvar:
jan 24 - 24. januára
fr - piatok
fr week - piatok budúceho týždňa
Voľby:
-r zruší úlohu z frontu.
-l vypíše úlohy vo fronte.
Príkazy v operačnom systéme UNIX možno rozdeliť do niekoľkých skupín:
· jednoduchý príkaz,
· zložený príkaz (kolóna),
· sekvencia (zoznam) príkazov.
Pod jednoduchým príkazom rozumieme ľubovoľný program s jeho argumentami.
Zložený príkaz je zložený z jedného alebo viacerých jednoduchých príkazov, ktoré sú spojené medzi sebou znakom "|".
Pod sekvenciou možno rozumieť jeden alebo viacej zložených príkazov, ktoré sú medzi sebou oddelené znakom ";".
Príklady:
Jednoduchý príkaz:
tar cvf subor.tar *.*
Zložený príkaz:
od -cx text.txt | more
Sekvencia príkazov:
tar cvf subor.tar *.*; od -cx text.txt | more; ls
Každému príkazu po spustení operačný systém pridelí tri základné špeciálne súbory, ktoré sa volajú:
· štandardný vstup,
· štandardný výstup,
· štandardný chybový výstup.
Štandardný vstup je reprezentovaný klávesnicou, štandardný výstup i štandardný chybový výstup obrazovkou. Možno teda povedať, že program je prostriedok, ktorý transformuje, určitým, presne definovaným spôsobom, údaje zo štandardného vstupu na štandardný výstup. Takému prostriedku sa preto hovorí filter.
Štandardný vstup, štandardný výstup i štandardný chybový výstup je možné presmerovať do súborov.
Príklad: Ak používateľ chce poslať poštu používateľovi, môže to vykonať jednoduchým príkazom
Mail <meno používateľa>
pričom samotný text správy v nasledujúcich okamihoch zadáva priamo z klávesnice (t.j. zo štandardného vstupu). Ak používateľ urobí v riadku pošty chybu a riadok odošle, už nie je možné túto chybu opraviť. Preto je vhodné text, ktorý sa má poslať, si pripraviť dopredu do súboru (napríklad "subor.txt") a potom ho poslať príkazom
Mail <meno používateľa> < subor.txt
kde znaky "<<" značia, že vstup z klávesnice je presmerovaný do súboru, t.j. miesto toho, aby program "Mail" čítal údaje z klávesnice, bude ich čítať zo súboru.
Podobne je možné presmerovať štandardný výstup do súboru, pričom v tomto prípade sa používa znak ">".
Myšlienka presmerovania má ďalšiu výhodu. Pri spájaní jednoduchých príkazov do zložitých príkazov dochádza k tomu, že štandardný výstup z jedného príkazu môže byť súčasne štandardným vstupom príkazu nasledujúceho.
Príklad: zložitý príkaz
od -cx text.txt | more
vytvorí na štandardnom výstupe výpis súboru "text.txt" v ASCII a hexadecimálnom tvare. Vzhľadom na to, že nejde o jednoduchý príkaz, ale o zložený príkaz (kolónu), nebude výpis zobrazený na obrazovke, ale bude presmerovaný a bude plniť úlohu štandardného vstupu pre príkaz "more". Výsledný efekt takéhoto spojenia je ten, že výpis, ktorý je produkovaný príkazom "od" bude na obrazovke (príkaz "more" nemá presmerovaný štandardný výstup) zobrazený po stránkach.
V prípade sekvencie príkazov nie je možné v jednej sekvencii medzi príkazmi údaje presmerovať s výnimkou prípadu, keď príkaz je tvorený kolónou (ale aj tu je možné presmerovať údaje len v rámci jednej kolóny). Pokiaľ je potrebné presmerovať údaje medzi prvkami sekvencie, tak buď sa sekvencia nahradí kolónou, alebo sa použije ako prostriedok pre presmerovanie súbor na disku, pričom jeden prvok sekvencie do súboru údaje zapíše a nasledujúci prvok sekvencie z tohto súboru údaje číta.
Pod procesom v operačnom systéme UNIX rozumieme vykonávaný program s jeho údajmi a vlastným zásobníkom. Každému jednoduchému príkazu zodpovedá jeden proces. Názorne je zobrazený na Obr. 32:
Obr. 32 Proces a jeho časti
Každý proces má teda pridelený určitý priestor v operačnej pamäti, volaný tiež adresný priestor procesu, ktorý tvorí vlastný text programu (vykonateľný tvar), údaje, ktoré potrebuje program k svojej činnosti, a zásobník na ukladanie údajov potrebných pri volaní funkcií.
Pri štartovaní operačného systému sa ako prvé do operačnej pamäti zavedia jadro operačného systému. Jadro po inicializácii pripojených prídavných zariadení štartuje jednotlivé procesy potrebné pre činnosť operačného systému. Ako prvý sa štartuje proces pre swapovanie (dočasné odkladanie údajov z vyrovnávacích pamätí na disk jadro mu pridelí číslo procesu 0), ďalej základný inicializačný proces "init" (číslo procesu je 1), ktorý zabezpečí spustenie terminálových procesov, čo sú procesy, ktoré zabezpečujú zobrazenie prihlasovacieho reťazca na termináli (viď Obr. 33).
Po prihlásení sa používateľa do operačného systému sa štartuje program "login", ktorý vyžiada od používateľa jeho prihlasovacie meno a heslo (pokiaľ ho používateľ má definované - je účelné ho definované mať). Po správnom špecifikovaní prihlasovacieho mena a hesla sa štartuje príkazový interpreter, ktorý zabezpečuje vykonávanie programov, ktoré štartuje používateľ z príkazového riadku. Každý program, ktorý používateľ odštartuje z príkazového riadku je vlastne procesom a systém mu pridelí číslo, ktoré jednoznačne chrakterizuje tento program (a aj proces) v systéme.
Obr. 33 Poradie spúšťania niektorých procesov
Zoznam všetkých spustených procesov je možné zobraziť na termináli príkazom "ps". Jeho syntax je nasledovná:
v ps [voľby]
Podľa toho, aké voľby sú špecifikované, sa realizuje zobrazenie o procesoch. Napríklad:
a zobrazí informácie o všetkých procesoch okrem systémových a tých, ktoré nie sú spojené s terminálom
e zobrazí všetky procesy v tvare vhodnom pre použitie do ďalšieho príkazu
l zobrazí dlhý formát výpisu
u zabezpečí zobrazenie len tých procesov, ktorých vlastníkom je používateľ, ktorý spustil príkaz "ps"
x zobrazí tie procesy, ktoré boli spustené z terminálu, na ktorom bol spustený príkaz "ps" a pod.
Pri zobrazení informácií o procesoch majú jednotlivé stĺpce výpisu nasledujúci význam:
USER meno vlastníka procesu
%CPU priemerný čas využitia procesora procesom
SIZE veľkosť údajovej a zásobníkovej časti procesu
RSS veľkosť procesu v pamäti
%MEM percentuálne využitie pamäti procesom
UID identifikačné číslo používateľa, ktorý spustil proces
PPID číslo rodičovského procesu
PRI priorita procesu
START čas alebo dátum spustenia procesu, podľa toho, či bol spustený dnes alebo predtým
TIME doba vykonávania procesu
CMD názov príkazu, ktorý vyvolal spustenie procesu
Ak máte spustený proces, ktorý chcete ho odstrániť z pamäti t.j. zrušiť proces, môžete to previesť príkazom "kill". Jeho syntax je nasledujúca:
v kill [-signál] číslo_procesu
v kill -l
Príkaz "kill" vo všeobecnosti zasiela procesu, ktorý je definovaný parametrom "číslo_procesu" signál. Zoznam signálov, ktoré je možné zaslať procesu možno zobraziť druhým tvarom príkazu (kill -l). Zvyčajne sa používajú nasledujúce signály:
signál "-9", ktorý zabezpečí zrušenie bežiaceho procesu
signál "-HUP" alebo "-1", ktorý zabezpečí zrušenie a znovuodštartovanie procesu (tento signál sa používa hlavne na štartovanie démonov systému t.j. programov trvale bežiacich na pozadí)
signál "-TERM", ktorý pozastaví vykonávanie procesu
signál "-CONT", ktorý zabezpečí pokračovanie vykonávania príkazu , ktorý bol predtým prerušený signálom "-TERM"
Príklad: Ak potrebujete znovuodšartovať terminálové procesy, prevedieme to príkazom
kill -HUP 1
Ak používateľ používa ako príkazový interpreter program "csh", potom môže použiť ďalšie príkazy pre riadenie procesov. Týmito príkazmi sú:
v fg [číslo_úlohy]
v bg [číslo_úlohy]
v jobs [-l]
Ak používateľ špecifikuje príkazový riadok tak, že ako posledný znak uvedie "&", potom sa štartovaný proces spúšťa na pozadí. Znamená to toľko, že používateľ môže zadávať ďalšie príkazy bez toho, aby čakal, kým sa ukončí beh predtým zadaného príkazu so znakom "&" na konci. Príkaz spúšťaný na pozadí sa od procesu na popredí líši len tým, že nemá priradený štandardný vstup. t.j. nie je možné doň vkladať údaje z klávesnice (klávesnica tu vystupuje ako štandardný vstup pre príkazový interpreter).
Výpis úloh, ktoré bežia na pozadí, je možné získať príkazom "jobs". Vo výpise sú jednotlivé úlohy označené poradovým číslom, podľa toho, ako boli úlohy na pozadí štartované. Ak chcete potom zrušiť nejakú úlohu na pozadí, môžete použiť príkaz "kill %c", kde c je číslo úlohy.
Na pozadí môžete spustiť aj tie procesy, ktoré ste prvotne na pozadí nespustili (t.j. zabudli ste v príkazovom riadku špecifikovať znak "&" na konci príkazu). Nič však nie je stratené. Stlačením kombinácie klávesov CTRL-Z prerušíte vykonávanie programu tak, že vykonávanie programu sa síce zastaví, ale program ostáva ešte vždy uložený v pamäti. Zadaním príkazu "fg" proces bude pokračovať vo vykonávaní tak, akokeby ste vôbec nestlačili klávesy CTRL-Z. Ak však miesto príkazu "fg" zadáte príkaz "bg", bude proces pokračovať vo vykonávaní, ale na pozadí. Z toho plynie, že príkazom "bg" môžete procesy pozastavené stlačením klávesov CTRL-Z, spustiť na pozadí a procesy, bežiace na pozadí príkazom "fg" dať na popredie. Upozorňujeme, že nie je možné, aby na popredí bežal viac ako jeden proces .
Príklad: Rozhodnete sa vykonať takúto činnosť: Vytvoriť balík, ktorý bude obsahovať všetky zdrojové texty operačného systému. Na vytvorenie balíka možno použiť príkaz "tar" spôsobom popísaným v kapitole 5.4.7.4. Činnosť, ktorú potrebujete zabezpečiť, možno vykonať nasledovne:
1. možnosť - beh na popredí:
cd /usr/sys
tar cvf zdr_text.tar *
.
. Nasleduje vypisovanie súborov, ktoré sa archivujú
.
2. možnosť - beh na pozadí:
cd /usr/sys
tar cf zdr_text.tar * &
[1] 2345 Číslo úlohy na pozadí a číslo pridelené procesu
(Tu môžete zadávať ďalšie príkazy počas behu programu tar)
Keď úloha skončí (príkaz tar), dostanete výpis
[1] 2345 tar cf zdr_text.tar * Done
G Počas behu príkazu je možné ho vždy prerušiť príkazom
kill %číslo_úlohy
t.j. v našom prípade
kill %1.
3. možnosť - presun behu príkazu z popredia na pozadie:
cd /usr/sys
tar cf zdr_text.tar *
<CTRL-Z> Dôjde k pozastaveniu behu programu
bg Spusti sa pozastavený program na pozadí
[1] 2345
V tejto kapitole popíšeme základné príkazy, ktoré slúžia na komunikáciu medzi používateľmi v rámci jedného počítača. To znamená, že pôjde o príkazy, ktoré používateľovi umožňujú komunikovať z terminálu, na ktorom je prihlásený do operačného systému, s iným používateľom, tiež prihláseným v systéme.
Prvým príkazom je príkaz "mesg". Má nasledujúcu syntax:
v mesg [y|n]
Tento príkaz umožňuje používateľovi zabrániť výpisu správy na terminál, na ktorom pracuje. Ak sa príkaz špecifikuje bez parametrov, zobrazí sa aktuálne nastavenie. Ak je špecifikovaná voľba "y", potom je povolený výpis správ na terminál, ak "n", potom je vypisovanie správ na termináli zakázané. Zákaz vypisovaniu správ na termináli je výhodný vtedy, keď používateľ potrebuje pracovať na danej úlohe bez vyrušovania.
Príkaz "mesg" teda zabraňuje resp. povoľuje zobrazovanie správ na termináli. Na zaslatie správy slúži príkaz "write". Jeho syntax je nasledovná:
v write meno [terminál]
kde "meno" je prihlasovacie meno používateľa, ktorému chcem poslať správu a "terminál" je zariadenie, na ktorom príjemnca správy pracuje. Poslať správu môžeme len tým používateľom, ktorí sú prihlásení v operačnom systéme. Zoznam týchto používateľov môžeme dostať zadaním príkazu "who". Parameter "terminál" nemusí byť špecifikovaný, ak príjemca pracuje len na jednom zariadení (termináli). Ak pracuje napr. na termináli /dev/tty01 a aj na termináli /dev/tty02, potom tento parameter musíme špecifikovať podľa toho, na ktorý terminál chceme, aby sa mu správa vypísala. Aby príjemca správu naozaj obdržal, musí mať nastavené povolenie príjmu správ príkazom "mesg". V prípade, že príjemca má nastavený zákaz príjmu správ, odosielateľovi operačný systém toto indikuje vypísaním chybového hlásenia.
Po zadaní príkazu "write" sa špecifikuje samotný text správy ukončený stlačením kombinácie klávesov CTRL-D.
Príklad:
write jano
Ahoj Jano!
Ako sa mas ?
EOT Znaky EOT znamenajú stlačenie CTRL-D.
Obdobným príkazom ako príkaz "write" je príkaz "wall" Má nasledujúcu syntax:
v wall
Tento príkaz pracuje podobne ako príkaz "write". Rozdiel je len v tom, že sa špecifikovaná správa posiela všetkým prihláseným používateľom naraz. Toto používa hlavne systémový programátor, keď potrebuje reštartovať operačný systém. Príkazom "wall" upozorní používateľov, aby korektne ukončili svoju prácu t.j. odhlásili sa zo systému, aby sa im pri reštartovaní nepoškodili údaje.
Ďalším príkazom, ktorý imituje telefonický rozhovor, je príkaz "talk". Jeho syntax je obdobná ako syntax príkazu "write":
v talk meno [terminál]
Po špecifikovaní príkazu sa program pokúša spojiť s druhou stranou. Ak je špecifikovaný používateľ prihlásený v systéme, tak sa na jeho termináli objaví výpis, ktorý okrem iného obsahuje aj meno toho používateľa, ktorý sa pokúša o spojenie. Aby k spojeniu došlo, musí dotyčný používateľ taktiež zadať príkaz "talk" s menom toho používateľa, ktorý sa o spojenie pokúsil ako prvý (vo výpise oznamu o nadviazovaní spojenia je príkaz, ktorý má používateľ špecifikovať). Pokiaľ používateľ nechce komunikovať, tak sa na strane volaného pravidelne vypisuje ten istý text až do chvíle, kým volajúci "nezavesí" t.j. nezruší príkaz "talk" na svojej strane. Po nadviazaní spojenia, sa obrazovka rozdelí na dve polovice. Horná časť slúži volajúcemu na vypisovanie textu a dolná časť slúži na príjem textu od volaného.
Tento príkaz umožňuje komunikovať nielen v rámci jedného počítača, ale aj v počítačovej sieti. Potom na mieste parametru "meno" je potrebné špecifikovať plné meno volaného účastníka siete a to v tvare:
meno@počítač
Príklad:
Ak chce používateľ jano komunikovať z počítača s menom hornad.fei.tuke.sk s používateľom juro na počítači s menom hron.fei.tuke.sk, musí zadať nasledujúci príkaz:
talk juro@hron.fei.tuke.sk
Na druhej strane bude používateľovi juro "vyzváňať terminál" (pravda, ak používateľ juro je prihlásený na počítači hron.fei.tuke.sk). Aby došlo k spojeniu, musí používateľ juro zadať príkaz:
talk jano@hornad.fei.tuke.sk
Ukončenie spojenia sa realizuje na ľubovoľnej strane stlačením kombinácie klávesov CTRL-C.
Doteraz sme uviedli príkazy, ktoré síce umožňujú vzájomne komunikovať medzi používateľmi, ale len v prípade, že obaja účastníci sú prihlásení do operačného systému. Čo však v prípade, že tomu tak nie je ? Potom je možné použiť systém elektronickej pošty.
Elektronická pošta odpovedá skutočnej pošte v živote. Používateľ špecifikuje list, ktorý odošle. Program, ktorý zabezpečuje činnosť poštára odošle a doručí poštu na určené miesto, kde sa uloží v poštovej schránke používateľa, ktorému bola pošta zaslaná. Odtiaľ si ju príjemca prevezme. Tento systém funguje ako v rámci jedného počítača, tak aj v rámci počítačovej siete.
Na zasielanie a preberanie pošty existuje niekoľko programov, ktoré sa od seba odlišujú v podstate len spôsobom komunikácie s používateľom. Takými programami sú: mail, Mail, elm alebo pine. Vzhľadom na podobnosť programov sa budeme venovať len základnému popisu práce s programom mail.
Poštu je možné zaslať nasledujúcim spôsobom. Po zadaní príkazu
mail juro@hron.fei.tuke.sk
sa vypíše na obrazovke slovo "Subject:", kde je odosielateľovi umožnené v krátkosti (pár slovani) špecifikovať, čo bude pošta obsahovať. Po zadaní popisu sa píše vlastný text pošty. Koniec pošty a súčasne jej odoslanie sa špecifikuje stlačením kombinácie klávesov CTRL-D.
Počas písania textu pošty je možné použiť tzv. vlnovka príkazy. Píšu sa zásadne na začiatku riadku.
~v vyvolá obrazovkový editor vi (poprípade editor podľa premennej prostredia VISUAL)
~r súb. načíta určený súbor do obsahu pošty
~w súb. zapíše obsah pošty do súboru
~! prík. vykoná sa príkaz shellu
~|prík. text správy sa preženie cez filter (príkaz), v prípade chybového ukončenia, ostáva pôvodná správa
~? vypíše pomoc ku vlnovka príkazom
~~ umožňuje zadať riadok začínajúci znakom ~
Poštu si je možné pripraviť aj dopredu do súboru (napr. do súboru posta) a potom zaslať zadaním príkazu
mail -s "Pokusna posta" juro@hron.fei.tuke.sk < posta
kde špecifikácia -s "Pokusna posta" špecifikuje definovanie obsahu pošty (Subject), spojenie juro@hron.ef.tuke.sk špecifikuje príjemcu s prihlasovacím menom "juro" na počítači "hron.fei.tuke.sk" a ostatok riadku zabezpečuje špecifikovanie samotného textu pošty, ktorý je uložený v súbore "posta".
Keď sa používateľ juro prihlási do operačného systému na počítači hron.fei.tuke.sk, pri prihlasovaní sa mu vypíše text
You have mail
alebo
You have new mail
ktorý mu dáva informáciu o príchode pošty.
Pokiaľ je používateľ, ktorý poštu dostáva, už na počítači prihlásený, operačný systém ho o tom informuje vypísaním hlavičky a začiatku pošty. Niekedy však je tento výpis rušivým momentom pri práci. Je preto vhodné vypnúť príjem tejto správy. Na to slúži príkaz
v biff [y|n]
Bez parametra príkaz vypíše aktuálne nastavenie, príslušný parameter znamená zapnutie (y) resp. vypnutie (n) zobrazovania informácie o prijatí pošty.
Prevzatie pošty z poštovej schránky je možné urobiť zadaním príkazu "mail" bez parametrov. Po zadaní sa na obrazovke zobrazí zoznam pošty, ktorá došla, každá v jednom riadku (na tomto mieste ide len o zobrazenie tej časti pošty, ktorá bola odosielateľom špecifikovaná po vypísaní "Subject:").
Aby používateľ mohol manipulovať s poštou. poskytuje príkaz "mail" vnútorné príkazy, ktoré umožňujú:
t vypísanie tej pošty na obrazovku, na ktorú ukazuje kurzor ">" (aktuálnu poštu). Je možné vypísať aj inú ako aktuálnu poštu a to zadaním príkazu "t n", kde n je poradové číslo pošty, ktoré je zobrazené ako druhý stĺpec pošty.
h zobrazí na obrazovke zoznam správ ako na začiatku.
d vymazanie aktuálnej pošty z poštovej schránky, prípadne príkazom "d n" možno zrušiť poštu s poradovým číslom "n".
r odpoveď na aktuálnu poštu. Po zadaní tohto príkazu sa používateľ dostane do editora, v ktorom mu je umožnené napísať odpoveď na poštu. Po vyskočení z editora sa napísaný text automaticky odošle adresátovi.
s príkaz umožní zapísať aktuálnu poštu do súboru "mbox" v aktuálnom katalógu. Príkaz umožňuje zapísať poštu aj do iného súboru a to napríklad príkaz
s aaa
zapíše aktuálnu poštu do súboru "aaa" v aktuálnom katalógu a príkaz
s 4 aaa
zapíše poštu s poradovým číslom 4 do súboru "aaa" v aktuálnom katalógu.
Príkaz "s" umožňuje vytvárať balíky s podobným obsahom pošty tzv. "foldersy". Napríklad príkaz
s 4 +aaa
zapíše poštu s poradovým číslom 4 do súboru "aaa", ale nie do katalógu odkiaľ bol príkaz "mail" odštartovaný, ale do katalógu, ktorý je špecifikovaný premennou "folder". Táto premenná sa prevažne nastavuje príkazom
set folder=$HOME/folders
v riadiacom súbore pre poštu ".mailrc", ktorý sa musí nachádzať v katalógu, z ktorého sme odštartovali príkaz "mail" (prevažne ide o domovský katalóg).
q ukončenie príkazu "mail". Všetka pošta, ktorá ešte ostáva v poštovej schránke sa presunie do súboru "mbox" v aktuálnom katalógu (pokiaľ je v súbore ".mailrc" špecifikovaný príkaz "set save").
Tieto nastavenia pošty môže vykonať globálne administrátor systému v súbore "/usr/lib/Mail.rc". Používateľ si potom môže tieto nastavenia zmeniť pomocou príkazov set alebo unset v súbore ".mailrc.". Najčastejšie príkazy sú nasledovné:
ask pri posielaní každej pošty sa pýta nadpis pošty (Subject:).
askcc na konci posielania pošty sa žiadajú adresy pre zaslanie kópie dopisu (Cc:)
dot bodka na začiatku riadku sa chápe tiež ako koniec pošty
hold prijaté správy sa prenechávajú v systémovej schránke. Poštu ale zväčša nie je vhodné nechávať v systémovej schránke.
metoo pošta sa pošle aj na vlastnú adresu
nosave pri prerušení písania pošty sa neukladá pošta do súboru dead.letter
folder určuje meno katalógu pre ukladanie schránok
Ak má používateľ v počítačovej sieti na viacerých počítačoch pridelené prihlasovacie meno, potom z každého počítača môže posielať poštu. Aby používateľ nemusel zakaždým kontrolovať na každom počítači, či mu neprišla pošta, môže definovať súbor ".forward" v domovskom katalógu na každom z počítačov a v ňom uviesť riadok s meno toho počítača, na ktorom chce poštu preberať.
Príklad:
Nech sú prepojené počítače "hron.fei.tuke.sk", "vah.fei.tuke.sk" a "hornad.fei.tuke.sk". Používateľ sa rozhodne všetku poštu prijímať na počítači "hornad.fei.tuke.sk". Na počítačoch "hron.fei.tuke.sk" a "vah.fei.tuke.sk" vo svojom domovskom katalógu musí definovať súbor ".forward", ktorý obsahuje riadok
hron.fei.tuke.sk
Ak používateľovi príde pošta na jeden z počítačov "hron.fei.tuke.sk" alebo "vah.fei.tuke.sk" automaticky program zabezpečujúci činnosť poštára pošle poštu na počítač "hornad.fei.tuke.sk". Používateľovi sa potom stačí prihlásiť len na počítač "hornad.fei.tuke.sk" a tu prebrať všetku svoju poštu bez toho, aby sa musel prihlásiť aj na počítače "hron.fei.tuke.sk" a "vah.fei.tuke.sk".
v /etc/ping [voľby] počítač [dĺžka [počet]]
Príkaz ping slúži na otestovanie okamžitého spojenia s ľubovoľným počítačom zapojeným do siete INTERNET. Pracuje tak, že vyšle dotazovací paket cieľovému počítaču, ktorý naň odpovie. Vyhodnocuje sa potom čas kedy sa prijme odpoveď, alebo sa len vypíše , či existuje spojenie. Je možné nastaviť dĺžku paketu a počet vyslaných paketov. Štandardná dĺžka paketu je 64 byte. Počítač môže byť určený menom, alebo IP-adresou.
Voľby:
-v rozšírený výstup, vypisuje sa odozva na každý paket, na konci sa vypíše štatistika.
-r obchádza routovacie (smerovacie) tabuľky, je možné použiť iba pri priamo spojených počítačoch.
Pri použití voľby -v a nenastavení počtu paketov, sa príkaz ukončuje stlačením Ctrl-C. V štatistike potom vypíše, koľko je:
paketov poslaných - paketov prijatých - v % paketov stratených
časy odozvy - min/priemer/max.
Príklad:
/etc/ping -v nic.uakom.sk 1024 3
PING nic.uakom.sk (192.108.131.12): 1024 data bytes
1032 bytes from 192.108.131.12: icmp_seq=0. time=968. ms
1032 bytes from 192.108.131.12: icmp_seq=1. time=964. ms
1032 bytes from 192.108.131.12: icmp_seq=2. time=964. ms
----nic.uakom.sk PING Statistics----
3 packets transmitted, 3 packets received, 0% packet loss
round-trip (ms) min/avg/max = 964/965/968
v rsh vzd._počítač [-l login] [-n] príkaz
Rsh vykoná zadaný príkaz na vzdialenom počítači. Pre príkaz vykonávaný na vzdialenom počítači sa použije lokálny štandardný vstup, výstup a chybový výstup príkazu rsh. Signály prerušenia a pozastavenia (Ctrl-C a Ctrl-Z) sa prenášajú príkazu na vzdialenom počítači. Lokálny príkaz rsh končí vtedy, ak skončí aj príkaz na vzdialenom počítači.
Príkaz na vzdialenom počítači je možné vykonať iba vtedy, ak na ňom v súbore /etc/host.equiv alebo v súbore .rhosts v domácom katalógu používateľa je záznam o počítači, resp. používateľovi, ktorý sa snaží využiť túto sieťovú službu (bližšie o súboroch bude popísané v popise príkazu rlogin). Týmto je možné povoliť, kto a z akého počítača môže využívať službu rhosts.
Príkaz má nasledujúce voľby:
-l umožňuje zmeniť používateľa na vzdialenom počítači, inak príkaz sa snaží použiť používateľov login aj na druhom počítači
-n presmeruje všetky príkazové vstupy na /dev/null
Príklad:
rsh kron -l novak ls
rsh vah ls >> lokálny_súbor
rsh ruzin ls ">>" súbor_na_vzdialenom_počítači_ruzin
Nie všetky príkazy je možné spustiť vzdialene, napríklad interaktívny editor vi. V takomto prípade musíte použiť príkaz rlogin.
v rlogin vzdialený_počítač [-ec] [-8] [-l login]
Príkaz spojí používateľa so vzdialeným počítačom. Používateľ má potom predstavu ako keby bol terminál pripojený priamo ku vzdialenému počítaču. Po zadaní príkazu si vzdialený systém pýta heslo. Pri chybnom zadaní hesla si vzdialený systém pýta opätovne heslo už aj s loginom. Pokiaľ je na vzdialenom systéme zapísané meno lokálneho počítača v súbore /etc/hosts.equiv, potom pri prihlasovaní sa naň pod rovnakým loginom prebehne bez vyžiadania hesla. To znamená, že tento súbor obsahuje zoznam tzv. "bezpečných strojov". Aj použivateľ na vzdialenom systéme si môže nastaviť tzv. "bezpečných používateľov", to znamená používateľov, ktorí sa môžu pracovať pod jeho loginom bez udania hesla. Týchto používateľov uvádza aj s menom ich počítača v súbore .rhosts v domácom katalógu. Napríklad používateľ s loginom sobota má na počítači ccsun.tuke.sk v domácom katalógu súbor .rhosts s obsahom:
hron.fei.tuke.sk ferko
Potom pokiaľ používateľ ferko z počítača hron.fei.tuke.sk môže napísať príkaz "rlogin ccsun.tuke.sk -l sobota" pričom nemusí zadávať heslo. Používateľ potom pracuje na vzdialenom počítači až pokiaľ sa z neho neodhlási príkazom logout alebo kombináciou kláves Ctrl-D. Pokiaľ uviazne komunikácia, môže používateľ ukončiť program rlogin na lokálnom počítači pomocou stlačenia klávesov vlnovka a bodka (~.) po stlačení klávesu Enter. Stlačenie klávesu vlnovka nasledované kombináciou kláves Ctrl-Z vykoná prerušenie behu príkazu rlogin na lokálnom počítači. Obyčajné stlačenie kombinácie kláves Ctrl-C alebo Ctrl-Z nemá efekt na lokálnom počítači ale sa prenáša na vzdialený počítač.
Voľby:
-8 povoľuje nepretržitú 8-bitovú vstupnú dátovú cestu.
-ec znak c je použitý miesto znaku vlnovka.
-l login na vzdialený počítač prihlasuje pod uvedeným loginom
Ďalším príkazom na vytvorenie relácie so vzdialeným počítačom je príkaz
v telnet [ vzdialený_počítač [ port ]]
Príkaz telnet používa komunikačný protokol TELNET (na úrovni aplikačnej vrstvy). Ak je príkaz zadaný bez argumentov, vojde sa do príkazového módu, ktorý je indikovaný výzvou telnet>. Pokiaľ sa príkaz zadá s argumentami, vykoná sa činnosť open z príkazového módu. Pokiaľ sa otvorí prenosový kanál, prejde sa do prenosového módu. V tomto móde prenáša údaje buď znak po znaku (znak poslaný okamžite) alebo riadok po riadku (prenášané naraz celé riadky) v závislosti od podpory vzdialeného systému. Riadiace znaky (napr. Ctrl-C) sa prenášajú na vzdialený počítač v prípade nastavenia localchars true. Z prenosového módu je možné prejsť do príkazového stlačením sekvencie znakov Ctrl-] (je možné to zmeniť). V príkazovom móde je možné zadať nasledovné príkazy:
open počítač [port] otvorí spojenie s uvedeným počítačom, pokiaľ sa neuvedie port, použije sa implicitný port pre telnet
close uzatvorí spojenie
quit ukončí program telnet
z preruší beh programu telnet na lokálnom počítači
? krátka pomoc
set arg. hodn nastaví telnet premennú na udanú hodnotu
toggle arg. nastaví príznak
display [arg.] zobrazí nastavenie
send arg. pošle špeciálnu sekvenci znakov do vzdialeného počítača
v finger [voľby] [meno...]
Príkaz finger bez parametrov vypíše na obrazovku o každom, kto v lokálnom systéme pracuje, tieto informácie: login, reálne meno, meno terminálu na ktorom pracuje, čas kľudu (idle),čas prihlásenia sa, miesto a telefón v práci. Pokiaľ sa pred menom terminálu nachádza hviezdička, nie je dovolené príslušnému používateľovi posielať správy na tento terminál (napr. príkazom write alebo talk). Čas kľudu, pokiaľ je uvedený označuje čas od posledného stlačenia klávesu na termináli v minutách. Pokiaľ pri výpise je použitá dvojbodka, je čas vyjadrený v hodinách a minútach, pokiaľ písmeno d, tak v dňoch a hodinách.
Pokiaľ sa zadá konkrétne meno používateľa a to buď login, alebo reálne meno, vypíše systém dlhý (viacriadkový) výpis. V tomto výpise sú zahrnuté aj informácie zo súborov .plan a .project umiestnených v domácom katalógu príslušného používateľa a čas jeho posledného prihlásenia sa do systému.
Príkaz je možné použiť aj na zistenie informácií o používateľoch iných systémov. V tomto prípade má finger dva tvary:
v finger [voľby] meno_vzdialeného_počítača
na zistenie, kto je práve prihlásený v systéme
v finger [voľby] loginmeno_vzdialeného_počítača
na zistenie informácií o používateľovi na vzdialenom systéme.
Administrátor vzdialeného systému môže finger ako sieťovú službu zakázať (nespustiť program servra pre finger). Potom nie je možné použiť finger za účelom zistenia údajov o používateľoch na tomto systéme z iného systému.
Základné voľby:
-l zobrazí výstup v dlhom formáte
Súbory .project a .plan musia byť regulárne súbory, nemôžu byť linkou do iného súboru. Zo súboru .project sa využíva iba prvý riadok súboru. Zmenu reálneho mena, adresy a telefónu v práci je možné dosiahnuť príkazom chfn.
Platforma LINUX svojou stabilitou a cenou v čoraz väčšej miere „presviedča“ už aj veľké podniky či štátne správy.
Z hľadiska histórie sa Linux objavil začiatkom
deväťdesiatych rokov. Fínsky študent Linus Torvalds v roku 1991 na
Helsinskej univerzite vytvoril jadro pre operačný systém. Jeho možnosti sa
zapáčili jeho priateľom a slávna cesta mohla začať. Tak
vznikol projekt, ktorý začal nadobúdať veľké rozmery. Linus
Torvalds vychádzal z vtedy už existujúceho Unixu, ktorého vstup do
počftačového sveta siaha do sedemdesiatych rokov jednou z
najpopulárnejších distribúcií Unixov, Berkeley Software Distribution (BSD
Unix). Táto distribúcia bola používaná v osemdesiatych a deväťdesiatych
rokoch dvadsiateho storočia. V princípe, samotný Linux je iba jadro. Nie
je preto správne používať pojem Linux 4.6 alebo Linux 8.0, pretože príslušná
verzia sa týka verzie jadra. Samotný pojem napr. SuSE Linux 6.4 sa
vzťahuje na verziu 6.4 distribúcie Linux-u firmou SuSE, t. j. na firmu,
ktorá takto pomenovala svoju distribúciu. Medzi najznámejšie distribúcie patria
Debian, RedHat, Mandrake, SuSe a pod. Linux veľa prebral z klasického
UNIXu a v súčasnosti je podporovaný takými svetovými firmami ako sú SUN a
IBM. Okrem toho v súčasnosti v jednotlivých distribúciách Linuxu je
automaticky inštalované aj grafické používateľské rozhranie (GUI), ktoré je
podobné rozhraniu platformy MS Windows (najčastejšie KDE a GNOME).
Veľmi sa dnes do popredia derú a začínajú byť aj
obľúbené inštalácie tzv. live-LINUX. Tieto inštalácie predstavujú
predpripravený t.j. už nainštalovaný LINUX na CD-ROM a postačí len
vložiť takýto CD-ROM do mechaniky CD-ROM a zaviesť operačný
systém z CD-ROM (je nutné v SETUPe počítača nastaviť
poradie bootovacích zariadení tak, aby mechanika CD-ROM bola ako prvá). Takáto
inštalácia LINUXu sa automaticky spustí, nakonfiguruje sa, v prípade pripojenia
do siete nakonfiguruje aj sieťové prostredie a spustí grafické okenné
rozhranie (najčastejšie KDE). Počítač je rovno pripravený na
vrácu vrátane istej sady základných aplikácií (okrem iného napr OpenOffice
či rôzne multimediálne a herné aplikácie). Medzi známe takéto
inštalácie patrí napr. KNOPPIX.
Napriek tomu, že žiaľ inštaláciu LINUXu dnes ešte začiatočník, si myslíme, nemusí zvládnuť, jeho používanie je už najmä prostredím veľmi blízke prostrediu MS Windows. Na obrázkoch tejto kapitoly môžete vidieť ukážky prostredia LINUXu (rozhranie KDE) od pracovnej plochy, hlavného menu cez kancelárske aplikácie po multimédiá. Záverom už len dodajme: neoplatilo by sa to skúsiť?
Rýchlou mierou sa rozrastá rodina programov pre tento operačný systém. Ešte raz zopakujme, vzhľadom na cenu (zdarma) a stabilitu je už v súčasnosti tento operačný systém aj vážnym konkurentom prednedávnom takmer monopolnému MS Windows na desktopovej platforme.
Po stáročia bolo základom pre udržanie komunikácie vo vnútri organizácie a medzi organizáciami hovorené alebo písané slovo. So zavedením automatizovaných informačných systémov bol tento model komunikácie narušený. V dôsledku toho boli vynájdené nové komponenty, aby mohli byť splnené komunikačné požiadavky koncových používateľov. V dnešnej dobe majú koncoví používatelia k dispozícii škálu komponentov, s ich špecifickými výhodami a nevýhodami.
Komunikáciu môžeme rozčleniť do štyroch rôznych typov. Informácie môžu byť prepravované vo forme dát, textu, hlasu a videa. Moderné komunikačné siete sú schopné integrácie a prenosu týchto štyroch typov komunikácie alebo sú optimalizované na prenos jedného alebo viac z týchto typov (či už sú integrované alebo nie).
Obr. 34 Typy komunikácie
V takomto prípade teda môžeme hovoriť o komunikácii. Čo je potom dátová komunikácia? Dátová komunikácia je druh komunikácie, ktorá zahŕňa diaľkový prenos a spracovanie dát. Diaľkový prenos údajov znamená výmenu (vysielanie a prijímanie) údajov na diaľku, často na značnú vzdialenosť. Tieto dáta sú často kódované (menený ich formát). Spracovanie dát chápeme ako spracovanie dát v počítači. Ak obidva popisy skombinujeme, dostávame nasledujúcu definíciu:
„Dátová komunikácia je vysielanie a prijímanie dát, často kódovaných, s cieľom spracovať ich pomocou počítačov.“
Dátová komunikácia môže prebiehať medzi dvomi počítačmi, ale taktiež medzi počítačom a iným technickým zariadením (napr. terminálom). Môžeme teda povedať, že dátová komunikácia prebieha medzi dvomi stanicami, z ktorých aspoň jedna je počítač (v tej, či inej forme).
Rozlišujeme niekoľko skupín systémov dátovej komunikácie na základe ich aplikácií. Môžeme posudzovať komunikačný proces z rôznych hľadísk, napríklad môžeme posudzovať:
· spôsob ako komunikuje používateľ s počítačom (interaktívne alebo neinteraktívne);
· typ vymieňaných dát;
· čas, ktorý je potrebný;
· druh výmeny (iba vysielanie alebo prijímanie, alebo oboje).
Štandardy v oblasti dátovej komunikácie tak ako aj samotných počítačových systémov sú mimoriadne dôležité, nakoľko umožňujú vzájomnú spoluprácu rôznych zariadení od rôznych výrobcov, ich väzbu na prenosové prostriedky. Týkajú sa všetkých aspektov činností sietí od konektorov až po napr. prenos súborov. Umožňujú tak zostavenie otvorených systémov (angl. open systems), ktoré vyhovujú rôznym štandardom. Poväčšine ide o štandardy, ktoré vydávajú rôzne štandardizačné komisie (napr. International Organization for Standardization - ISO) alebo o štandardy niektorých výrobcov (DNA model fy. DEC, SNA model fy. IBM) prevzaté aj inými výrobcami. Systémy, ktoré nedodržujú štandardy a umožňujú prepájať len podsystémy resp. zariadenia jedného výrobcu sa označujú za uzavreté systémy (angl. closed systems). V súčasnosti najmä rozvoj rôznych typov distribuovaných systémov založených na verejných a privátnych dátových sieťach potvrdil výhody a správnosť nasadzovania otvorených systémov.
Na riadenie komunikácie medzi jednotlivými uzlami siete je potrebná celá množina technických a programových prostriedkov. Štruktúru riadenia tejto komunikácie spolu s technickými a programovými prostriedkami definuje sieťová architektúra. Keďže riadenie komunikácie (angl. communication control) predstavuje rozsiahly problém, ako najlepšie riešenie sa ukázalo, dekomponovanie tohoto problému do hierarchicky usporiadaných vrstiev. Boli navrhnuté rôzne dekompozície, ktoré reprezentujú rôzne vrstvové modely sieťovej architektúry. Takto reprezentované modely sú výhodné nielen z dôvodu dekompozície problému riadenia komunikácie, ale poskytujú aj väčšiu flexibilitu vzhľadom na zmeny v sieťovej architektúre.
Každá vrstva má špecifikované funkcie tvoriace časť z riadenia komunikácie, ako aj definovaný spôsob spolupráce so susednou nižšou aj vyššou vrstvou. Tým je špecifikované rozhranie (interface) medzi vrstvami. Vyššia vrstva je vždy žiadateľom o vykonanie nejakej služby od nižšej vrstvy a nižšia vrstva je vždy poskytovateľom služby pre vyššiu vrstvu. Komunikácia v sieti prebieha medzi dvomi uzlami. Je možné povedať, že medzi sebou komunikujú rovnocenné vrstvy t.j. vrstvy na rovnakej úrovni komunikácie (peer-to-peer). Rovnocenné vrstvy komunikujú na základe presne dohodnutých pravidiel, s definovaným formátom vymieňania údajovej entity – protokolovej dátovej jednotky PDU (angl. Protocol Data Unit). Súbor pravidiel, procedúr, formátov pre komunikáciu tvorí komunikačný protokol. Každá vrstva obsahuje aspoň jeden protokol. Jednotlivé časti protokolov popisujú komunikačné funkcie. Príkladom komunikačnej funkcie je funkcia riadenia smerovania v sieti, funkcia detekcie chýb v prenose, komprimácia údajov a pod. Ku každému vrstvovému modelu možno priradiť súbor protokolov, nakoľko tie isté komunikačné funkcie môžu byť implementované rôznymi spôsobmi. Zo súboru protokolov možno vytvoriť protokolový zásobník, v ktorom i-tá položka zodpovedá jednému protokolu na i-tej vrstve modelu. V každom modeli možno vrstvy rozdeliť do skupín:
· Sieťovo-závislé,
· Aplikačno-orientované.
V oblasti počítačových sietí bol prijatý organizáciou ISO (International Organization for Standardization) ako medzinárodný štandard referenčný model sieťovej architektúry prepájania otvorených systémov (štandard ISO 7498). Tento štandard sa označuje RM OSI alebo ISO/OSI. Model je sedem vrstvový, špecifikuje iba činnosti jednotlivých vrstiev a voľne popisuje rozhrania medzi vrstvami. Konkrétne protokoly a služby jednotlivých vrstiev vznikali a vznikajú postupne ako samostatné štandardy ISO resp. iných inštitúcií (IEEE, CCITT,…).
Tok dát medzi vrstvami a označenie vrstiev je na nasledujúcom obrázku.
Obr. 35 Referenčný model OSI a tok dát medzi jeho vrstvami.
Prenos dát medzi dvomi aplikáciami, napr. medzi vysielajúcim procesom A a prijímajúcim procesom B prebieha tak, že na strane vysielača sa postupne v každej vrstve pridáva k údajom z vyššej vrstvy, resp. aplikácie, hlavička obsahujúca riadiace informácie a na strane príjemcu sa postupne hlavičky odoberajú. Riadiace informácie možno rozdeliť do dvoch skupín podľa toho, komu sú určené:
· nižšej vrstve na strane vysielača, ktorá ich odoberie a vykoná požadované činnosti,
· rovnakej vrstve na strane príjemcu.
Na úrovni spojovej vrstvy sa pridáva aj ukončenie, ktoré sa používa na zabezpečenie dát proti prenosovým chybám.
Jednotlivé bloky dát v horných štyroch vrstvách sa všeobecne označujú ako k-PDU, kde k je označenie vrstvy, napr. A-PDU, P-PDU. Pre dolné tri vrstvy (od sieťovej dolu) sa používa označenie paket (datagram), rámec, bitový reťazec.
Do skupiny sieťovo-závislých vrstiev patria dolné tri vrstvy, ich funkcie sú závislé od konkrétneho typu siete. Tieto vrstvy „vidia“ časť alebo celú skutočnú topológiu siete. Do skupiny aplikačno-orientovaných vrstiev patria horné tri vrstvy, pre ktoré je typ siete transparentný a používajú sa ako programová podpora aplikačným procesom. Rozhranie medzi týmito skupinami tvorí transportná vrstva.
Základné činnosti jednotlivých vrstiev stručne približujú nasledujúce podkapitoly.
Poskytuje služby spojovej vrstve, zabezpečuje sériový prenos bitov medzi dvoma uzlami pomocou fyzickej prenosovej cesty. Zaoberá sa rozhraním (mechanické, elektrické parametre, špecifikácia konektorov, káblov a pod.) medzi dvoma sieťovými uzlami. Poskytuje teda nezabezpečené spojenie (nerieši problém výskytu chyby pri prenose) dvoch priamo prepojených počítačov/uzlov.
Využíva služby fyzickej vrstvy na prenos blokov dát – rámcov (frames). Fyzická vrstva prenáša do spojovej vrstvy iba súvislý reťazec bitov, spojová vrstva musí vedieť rozoznať začiatok a koniec rámca, jeho jednotlivé polia. Zabezpečuje tiež detekciu porúch, ktoré sa môžu vyskytnúť na prenosovej ceste a prejavujú sa zmenou hodnôt niektorých bitov. Zodpovedajúcej vrstve na strane vysielača potvrdzuje prijatie rámcov, v prípade chybných rámcov vyžaduje opätovné vysielanie. Riadi tiež tok dát medzi dvoma uzlami, aby nedošlo k lokálnemu stavu uviaznutia komunikácie. Svoje služby zabezpečeného spojenia dvoch priamo prepojených počítačov/uzlov poskytuje sieťovej vrstve.
Využíva služby spojovej vrstvy, poskytuje služby transportnej vrstve. Zabezpečuje jednoznačnú identifikáciu počítačov/uzlov siete a smerovanie v sieti, teda prenos dátových blokov – paketov (datagramov) medzi ľubovoľnými uzlami siete. Sieťová vrstva je jediná, ktorá „vidí“ skutočnú topológiu siete. Taktiež v niektorých prípadoch riadi tok dát a zabezpečuje prenos proti chybám.
Využíva služby sieťovej vrstvy, poskytuje služby relačnej vrstve. Poskytuje päť tried služieb rôznej kvality pre rôzne typy sietí. Trieda 0 je najjednoduchšia, zabezpečuje len základné funkcie potrebné pre vytvorenie spojenia a prenos dát. Predpokladá sa, že sieťová príp. spojová vrstva vie ošetriť prípadné chyby, že chybovosť v sieti je malá. Trieda 4 je najzložitejšia, má naviac funkcie pre riadenie toku a zabezpečenie prenosu proti chybám. Predpokladá sa, že nižšie vrstvy sa nevedia zotaviť z chýb, že sieť môže mať veľkú chybovosť napr. WAN siete. Zaoberá sa komunikáciou len medzi koncovými používateľmi t.j. medzi vysielajúcim uzlom a koncovým uzlom (end-to-end communication). Tu sa vytvára predstava úplnej topológie – predstava, že každý uzol má priame prepojene s ľubovoľným uzlom. Pri vysielaní zabezpečuje segmentáciu dlhých správ do paketov (segmentov) a pri príjme zloženie paketov do pôvodnej správy.
Nadväzuje, udržiava a ruší logické spojenia – relácie medzi koncovými účastníkmi. V prípade poloduplexnej komunikácie riadi smer komunikácie. Zabezpečuje vkladanie bodov návratu do prenášaných blokov dát, ktoré v prípade niektorých komunikačných chýb slúžia na označenie miesta v postupnosti prenášaných dát, odkiaľ sa bude prenos opakovať.
Využíva služby relačnej vrstvy (resp. niekedy priamo transportnej), poskytuje služby aplikačnej vrstve. Stará sa o prezentáciu údajov (formát a štruktúra dát) zrozumiteľnú pre obidvoch komunikačných partnerov, ich bezpečnosť a napr. aj o kryptovanie. Komunikovať v dohodnutom formáte je základným predpokladom úspešnej komunikácie, keďže už aj pri jednoduchých údajových typoch ako sú napr. celé čísla, rôzne platformy používajú rôzne kódovanie (little-endian a big-endian platforiem Intel Pentium a Sun SPARC).
Využíva služby prezentačnej vrstvy, poskytuje služby koncovým používateľom – aplikačným procesom. Zabezpečuje používateľské rozhranie k sieťovým informačným službám, ktoré zahŕňajú napr. prenos súborov, elektronickú poštu, emuláciu terminálu a pod. Aplikačná vrstva v podstate zahŕňa tú časť z používateľských procesov, ktorá používa spoločné resp. všeobecne použiteľné prístupy. Napr. pri prenose súborov ich kódovanie do vhodného prenosového formátu, vytvorenie logického spoja – asociácie s adresátom, zrušenie asociácie apod. Služby poskytované vrstvou vlastne odbremeňujú používateľa od implementácie procedúr prístupu do prostredia siete.
Jednotlivé vrstvy poskytujú rôzne typy služieb, ktoré možno charakterizovať ako:
· služby so spojením (connection oriented)
· služby bez spojenia (connectionless)
· služby s potvrdením (confirmed)
· služby bez potvrdenia (unconfirmed)
· služby spoľahlivé (reliable)
· služby nespoľahlivé (unreliable).
Pri službe so spojením treba najskôr, pred vlastným prenosom dát, nadviazať spojenie s adresátom. Po ukončení prenosu je potrebné spoj zrušiť. Pri službách bez spojenia sa jednotlivé dáta prenášajú ako samostatné jednotky, z ktorých každá má pripojenú adresu konečného príjemcu. Prenášajú sa ako vzájomne nezávislé časti, ktoré môžu po sieti posielať rôznymi smermi. Služby so spojením sú výhodnejšie pre prenos väčšieho množstva dát, pretože réžia na vlastný prenos je pomerne malá v porovnaní s réžiou pri službách bez spojenia.
Služby s potvrdením, kedy príjemca potvrdzuje vysielaču príjem bezchybných alebo chybných dátových blokov, sa vyžívajú v prostrediach s väčšou pravdepodobnosťou rušenia prenosu príp. tam, kde strata niektorých dátových blokov je neprípustná. Služby bez potvrdenia majú nízku réžiu, používajú sa preto tam, kde možno skôr dovoliť príjem chybných blokov než stratu blokov v dôsledku časovej réžie, ktorá je značná pri potvrdzovaní (napr. prenos hlasu či videa).
Spoľahlivá služba zabezpečuje bezstratový prenos, nespoľahlivá služba zaručuje bezstratový prenos iba s určitou pravdepodobnosťou. Za cenu zvýšenia rýchlosti prenosu môže prísť k stratám prenášaných blokov.
Obr. 36 RM OSI a komunikácia cez medziuzol
Pre realizovanie služby je potrebné, aby medzi jej žiadateľom a vykonávateľom bolo realizované určité rozhranie. Toto je vo všeobecnosti vytvorené pomocou štyroch elementárnych operácií:
· požiadavka (request)
· indikácia (indication)
· odpoveď (response)
· potvrdenie (confirm)
Na nasledujúcom obrázku je znázornená časová náväznosť elementárnych operácií a ich vzťah k vrstvám. Pre realizáciu niektorých služieb postačujú iba dve príp. tri operácie.
Obr. 37 Elementárne komunikačné operácie
Podľa počtu žiadateľov a poskytovateľov rozlišujeme v princípe komunikáciu na:
· 1:1
· 1:N
· N:1
· N:N
Kde v prvom stĺpci je počet žiadateľov a v druhom počet poskytovateľov.
V uzloch koncových používateľov je zvyčajne implementovaný celý sedemvrstvový model. Ak títo komunikujú prostredníctvom iných uzlov – medziuzlov, sú v medziuzloch implementované iba vrstvy sieťovo závislé. Fyzická a spojová vrstva sú zvyčajne realizované na úrovni technického vybavenia (hardvér maximálne firmvér) a ostatné na úrovni programového vybavenia. Prepojovacie resp. spájacie medziuzly rozoznávame v princípe nasledujúce (viď nasledujúci obrázok):
· na úrovni fyzickej vrstvy – opakovač (repeater) a rozbočovač (hub)
· na úrovni spojovej vrstvy – most (bridge) a prepínač (switch)
· na úrovni sieťovej vrstvy – smerovač (router)
· na úrovni aplikačno-orientovaných vrstiev – brány (gateways), ktoré spájajú viacero rôznych sietí.
Obr. 38 Umiestnenie prepojovacích prvkov sietí v RM OSI
V dôsledku útlmu na vedení vykazujú spojovacie vodiče stratu signálu. Pokiaľ pracujeme s vyššou rýchlosťou, napríklad 10Mbps, tak použiteľná maximálna vzdialenosť napr. pri koaxiálnom kábli, je približne 500 m. Pri väčšej vzdialenosti musia byť elektrické resp. optické signály rekonštruované pomocou opakovača. Môžeme použiť len obmedzený počet opakovačov, pretože je tiež obmedzená maximálna dĺžka siete.
Opakovač nie je vybavený žiadnou inteligenciou, len zosiluje elektrické signály, ktoré prijal. Vôbec nezávisí na protokoloch, dáta odovzdáva bez zmeny. Tok dát nesleduje.
Používateľ nevidí, že sieť tiež obsahuje nejaké opakovače. Segmenty, ktoré sú spojené do siete sa javia ako jedna veľká sieť. Nedostatok inteligencie určuje umiestenie opakovačov v ISO modeli na fyzickú vrstvu. Vnútorne vykonáva opakovač funkcie zodpovedajúce maximálne fyzickej vrstve. Segmentu, na ktorý je pripojený aspoň jeden uzol siete hovoríme aktívny segment. Segment, na ktorý nie je nič v tomto zmysle pripojené a slúži len na preklenutie vzdialenosti, sa nazýva pasívny segment.
Je celý rad opakovačov. Ten najjednoduchší proste spája dva segmenty v jeden. Najmodernejšie obsahujú dva poloopakovače. Medzi týmito dvoma polovicami môže byť optický spoj o dĺžke aj viac kilometrov. Tým sa výrazne zväčší dosah siete. Keď sa zväčšuje lokálna sieť, prerastie do siete WAN. Nedá sa dosť dobre určiť, v ktorom okamžiku sa to stane.
Na 1. vrstve OSI modelu pracujú aj rozbočovače, ktoré by sa dali stručne charakterizovať ako multiportové opakovače. Tieto môžu byť:
· pasívne - prepájajú viacero počítačov, nemanipulujú s komunikáciou, neregenerujú signál a nie sú napájané z elektrickej siete,
· aktívne – na rozdiel od pasívnych zosilňujú signál a sú napájané z elektrickej siete,
· inteligentné – aktívne rozbočovače obsahujúce mikroprocesor a podporu diagnostiky pre sledovanie prevádzky a riešenie chybových stavov.
Rozbočovač sa niekedy označuje aj ako koncentrátor, lebo v najrozšírenejších lokálnych sieťach typu Ethernet slúži ako centrálny bod pripojenia. Všetky zariadenia pripojené na rozbočovač sledujú prevádzku a tak predstavujú jednu kolíznu doménu.
Spojenie medzi dvoma rovnakými sieťami LAN (napríklad Ethernet s Ethernetom) sa realizuje pomocou mostu. Most rozdeľuje sieť na viacero segmentov a na základe MAC adresy (fyzická adresa sieťovej karty) rozhoduje, ktorá komunikácia sa prepustí ďalej. Most je obdoba opakovača. I tu sú spojené segmenty siete, ale most obsahuje určitú inteligenciu a zaisťuje spojenie dát na 2. vrstve modelu OSI, t.j. na spojovej/linkovej vrstve. To znamená, že celý dátový rámec je prenesený na druhú stranu mostu, pri čom most musí zaistiť vzájomne rozlíšiteľnú adresáciu. Most kontroluje dátový rámec a ak je to potrebné vykonáva potrebné zmeny. Tieto zmeny sú len na úrovni fyzickej vrstvy. Zároveň vytvorené segmenty (t.j. časti siete), na rozdiel od opakovača, predstavujú samostatné kolízne domény.
Most sa používa pre logické oddelenie dvoch segmentov siete. Most môže kontrolovať toky dát na obidvoch segmentoch a prepúšťať len dáta, ktorých adresát je umiestený na druhom segmente. To značne zvýši výkonnosť siete.
Mosty sa niekedy skladajú z dvoch polovíc, ktoré môžu byť spojené optickým káblom a môžu byť od seba vzdialené aj viac kilometrov (desiatky). Programové vybavenie mostu má určitú inteligenciu. Keď je most umiestený do siete, skúma tok dát a ukladá si adresy uzlov, na jednotlivých segmentoch. Môže sa tak naučiť, ktoré adresy sú na ktorej strane. Preto je jeho inštalácia ľahká.
V súčasnosti sa používajú častejšie tzv. prepínače (switch), ktoré môžu pracovať ako na 2., tak aj na 3. vrstve OSI referenčného modelu. Prepínače pracujúce na 2. vrstve OSI modelu môžeme charakterizovať ako multiportové mosty. Na rozdiel od mostov, ktoré majú zvyčajne 2 porty a rozdeľujú tak sieť na 2 segmenty, prepínače majú portov viac – napr. 5, 8, 16, 24,... a rozdeľujú sieť na príslušný počet segmentov.
O krok vyššie v OSI modeli je smerovač. Tiež spája dve resp. viacero sietí LAN, ale na úrovni sieťovej vrstvy. Smerovač je riadený programovo a udržuje si tabuľky obsahujúce aktuálne informácie o sieti. Tieto sa doplňujú buď dynamicky prostredníctvom smerovacích protokolov alebo staticky nastavením údajov administrátorom. Smerovače vedia vyhľadať najvhodnejšiu možnú cestu pre smerovanie paketov v sieti.
Smerovač môže byť tiež použitý v dvoch variantoch:
· V tej prvej je použitý v sieti pre svoju smerovaciu kapacitu. Vďaka smerovacím tabuľkám pozná informácie o cestách a uzloch v sieti.
· Druhá možnosť je použiť ho pre spojenie dvoch sietí s rôznymi linkovými vrstvami. Smerovač môže vykonávať zmeny na úrovni linkovej vrstvy. Môže napríklad vykonávať zmeny medzi dvoma sieťami, ktoré umiesťujú adresu v dátových rámcoch iným spôsobom.
Smerovacie tabuľky môže používať smerovač dvojakého typu: statické a dynamické. Statické smerovacie tabuľky sú dopredu definované resp. naprogramované a počas behu sa dynamicky nemenia. Toto má za následok síce vyššiu rýchlosť smerovania ale menšiu flexibilitu v prípade dynamických rekonfigurácií siete. Dynamické smerovacie tabuľky naproti tomu sa flexibilne prispôsobujú zmenám v sieti, za čo sa ale platí pomalším spracovaním.
Príklad smerovania si ukážeme na nasledujúcom obrázku. Predpokladajme v uzloch smerovače. V smerovacej tabuľke každého smerovača je okrem sieťových adries umiestnená aj tzv. metrika t.j. hodnota udávajúca logickú vzdialenosť medzi jednotlivými uzlami. V najjednoduchšom prípade napríklad vzdialenosť medzi uzlom 1 a 6 je 2 (cez uzol 3 ale aj cez uzol 4), cez uzol 2 je vzdialenosť 3. Vzdialenosť medzi uzlom 1 a 3 je 1, cez uzol 4 je 2. Na základe toho napr. paket od klienta určený pre Server1 pôjde cez uzol 3 alebo uzol 4 podľa ich vyťaženosti. Paket pre Server2 pôjde priamo na uzol 3. V prípade poruchy na linke medzi uzlami 1 a 3 sa vyberie spojenie s ďalšou najbližšou logickou vzdialenosťou t.j. cez uzol 4. Ak je smerovacia tabuľka v uzle 1 statická, potom sa uzol 1 bude aj počas poruchy vždy najprv pokúšať poslať paket priamo a až prípade neúspechu použije záložnú cestu. V prípade dynamickej tabuľky, je krátko po zistení, že cesta 1-3 je nepriepustná, vyradená táto zo smerovacej tabuľky je potom ako prvá hneď používaná cesta cez uzol 4. Akonáhle sa uzol 3 ozve priamo a definuje sa metrika spojenia t.j. 1, je dynamicky zaradená do tabuľky a ďalšie pakety už pôjdu touto cestou. Tento problém je však z hľadiska rozsiahlych sietí vážnym matematickým problémom a preto nech čitateľ berie tento príklad naozaj len ako veľmi zjednodušený prípad.
Obr. 39 Príklad smerovania v dátovej sieti
Smerovače podobne ako prepínače sú schopné rozdeliť sieť na viacero segmentov tvoriacich samostatné kolízne domény, ale navyše umožňujú vytvárať aj samostatné broadcast domény – t.j. logické skupiny počítačov dosiahnuteľných poslaním rámca na úrovni 2. vrstvy OSI.
Najdômyselnejšie spojenie dvoch sietí je použitie brány. Pojem „brána“ sa často nesprávne používa k označeniu akéhokoľvek spojenia dvoch rôznych sietí. Tu bude znamenať brána najmä spojenie na úrovni transportnej vrstvy. Zariadenie na tejto vrstve modelu OSI sa nazýva tiež konvertor protokolov.
Brána je komplexné zariadenie, ktoré obsahuje ako technické, tak programové vybavenie. Umožňuje spojiť dve rôzne siete, ktoré sa od seba významne líšia spôsobom prevádzky a protokolom. Môže simulovať celkom rôzne siete na obidvoch stranách. Brána príliš nezapadá do modelu OSI. Je to preto, že dokáže podporovať i protokoly, ktoré tomuto modelu nezodpovedajú. Sú brány, ktoré spájajú siete DNA (DEC dnes COMPAQ) a SNA (IBM). Obidve tieto siete sa veľmi líšia architektúrou a tiež nezodpovedajú štandardu OSI.
Sú tiež brány, ktoré prevádzajú protokoly OSI na protokoly, ktoré nezodpovedajú OSI štandardu. Výhodou brány je i to, že sieti stačí len jedno spojenie s vonkajším svetom. Všetci používatelia konkrétnej siete používajú tú istú bránu ku kontaktu s okolitým svetom. Tento systém vo veľkej miere zvyšuje bezpečnosť pripojenia danej siete k okoliu.
Z hľadiska komunikácie môže byť snaha o ochranu vnútornej siete napr. podniku pred nepovolanými zásahmi zvonku. Tento problém vo väčšom meradle vyplával na povrch rozsiahlejším používaním Internetu firmami a potrebou používať tzv. Intranet. Za účelom ochrany sa potom oddeľujú lokálne siete od ostatného Internetu pomocou špeciálnych zariadení (firewall), ktoré zabraňujú neautorizovaným používateľom vo vstupe do lokálnej siete. Technológia firewallov nie je zatiaľ štandardizovaná, ale spravidla spočíva v zákaze priamej komunikácie medzi lokálnou a globálnou sieťou. Cieľom je chrániť sieť nielen pred bezprostrednými útokmi, ale aj utajiť jej skutočnú štruktúru. Vedľajším produktom je možnosť použiť v chránenej sieti ‘classless’ adresy, takže sa šetrí adresný priestor. Firewall je spravidla realizovaný kombináciou technických a programových prostriedkov, pričom sa môže jednať o:
· filtrovanie paketov na základe IP adresy (zväčša na úrovni smerovača, t.j. na 3. vrstve OSI),
· brány sledujúce spojenia, pokiaľ je spojenie úspešne vytvorené, jednotlivé pakety tohoto spojenia sa už nesledujú (pracujú na 4. vrstve OSI),
· kombinácia filtrovania paketov a sledovania spojení,
· aplikačné proxy firewally / aplikačné brány – analyzujú sa všetky údaje vrátane aplikačnej vrstvy (pracujú na 7. vrstve OSI, ale každá služba potrebuje vlastné proxy).
Multipočítačový (distribuovaný) systém sa skladá z niekoľkých nezávislých počítačov s možnosťou vzájomnej komunikácie. Typickým predstaviteľom distribuovaných systémov sú napr. informačné systémy pracujúce v reálnom čase, do ktorých je možné súčasne vstupovať z viacerých miest, od seba značne vzdialených. Medzi distribuované systémy patria aj počítačové siete. Počítačové siete slúžia na prepojenie rôznych výpočtových systémov za účelom zdieľania informácií alebo technických prostriedkov.
V princípe môžeme počítačové (resp. dátové siete) rozdeliť podľa niekoľkých hľadísk:
· podľa rozlohy resp. vzdialenosti
· podľa vlastníctva
· podľa štruktúry
· podľa typu počítačov zapojených do siete
· podľa rozloženia a funkcie základných uzlov.
Z hľadiska rozlohy resp. vzdialeností rozoznávame siete:
· LAN (Local Area Network): lokálne počítačové siete,
· MAN (Metropolitan Area Network): mestské počítačové siete
· WAN (Wide Area Network): rozľahlé počítačové siete.
Lokálne siete sú siete napr. inštalované v jednej učebni, medzi viacerými kanceláriami, príp. vnútroprevádzkové (vnútropodnikové) siete. Nasledujúci obrázok ukazuje, že koncepcia zavedenia geografickej rozlohy je príliš široká a že neexistuje jednoznačná definícia lokálnych a rozľahlých sietí, podľa ich rozmerov.
Obr. 40 Rozdelenie počítačových sietí podľa rozlohy (vzdialenosti)
Podľa vlastníctva rozoznávame siete privátne a verejné. Ako bolo uvedené vyššie rozľahlá sieť pokrýva veľkú geografickú plochu a v dôsledku toho jej používatelia spolupracujú s organizáciami, poskytujúcimi služby dátovej komunikácie. Môžu to byť národné telefónne spoločnosti alebo mobilní operátori (najčastejšie GSM), ktoré poskytujú svoje infraštruktúry každému, kto o ne požiada. Tieto infraštruktúry umožnia napr. banke prenájom prenosového média tak, aby sa jej kancelárie mohli medzi sebou prepojiť. Takéto využitie infraštruktúry vytvára rozľahlú sieť. Sieť, ktorá je takto vytvorená sa nazýva privátna. Lokálne siete, ktoré sú vo vnútri budov organizácie, spadajú do „jurisdikcie“ danej organizácie. Používajú sa v úradoch, továrňach, nemocniciach, univerzitách, vládnych budovách a pod. Pri verejných sieťach (napr. Internet) mnohé spoločnosti, aby využili svoje siete, ponúkajú a poskytujú účastníkom celý rad služieb. Takejto spoločnosti často hovorí aj poskytovateľ (provider, čítaj provajder). Koncový používateľ sa môže rozhodnúť, ktoré prostriedky(služby) si vypožičia, aby mohol postaviť rozľahlú sieť. Musí zistiť, či potrebuje získať iba infraštruktúru, alebo infraštruktúru zároveň so servisom. Medzi tieto typy patria aj siete využívajúce technológiu Intranetu.
Tretí spôsob, ako rozdeliť siete, je ich konštrukcia a štruktúra: spôsob, akým sú medzi sebou prepojené jednotlivé zariadenia siete. Aby sme použili technický termín, štruktúra je určená topológiou siete. Topológia je geografická štruktúra, podľa ktorej sú prepojené jednotlivé uzly v sieti. Rozoznávame tieto topológie sietí:
· zbernicová (BUS),
· hviezdicová (STAR),
· kruhová (RING),
· stromová (TREE)
· kombinovaná (HYBRID)
Obr. 41 Topológie počítačových sietí
Mnoho firiem sa zaoberá vývojom sietí. Postupom času sa vyšpecifikovali rôzne typy sietí. Podľa typu konštrukcie rozoznávame siete:
· Ethernet ako predstaviteľa buď v základe bus topológie (typ 10BASE2 a 10BASE5) s hlavným prenosovým médiom koaxiálnym káblom alebo star a tree topológie (typ 10BASE-T, 100BASE-X, 1000BASE-T) na báze štruktúrovanej kabeláže (tzv. krútenej dvojlinky),
· Arcnet ako predstaviteľa tree a star topológie,
· Token Ring ako predstaviteľa kruhovej topológie.
V súčasnej dobe sú najviac rozvíjajú štruktúrované siete. Prenos v týchto sieťach prebieha rýchlosťou 10 Mbps, 100Mbs alebo 1Gbps. Aby sme mohli osobný počítač pripojiť k sieti, musíme doň dokúpiť a inštalovať sieťovú kartu podľa typu siete. Pri štruktúrovanej sieti ešte je potrebné prepojovacie zariadenie – rozbočovač alebo prepínač (viď kapitola 6.4). Z hľadiska priepustnosti aj spoľahlivosti siete sa najmä WAN siete budujú ako polygonálne a možných spojení je potom medzi jednotlivými uzlami viac.
Podľa typu počítačov zapojených do siete rozlišuje počítačové siete:
· homogénne- ak sú všetky počítače rovnakého typu
· heterogénne – prepojenie počítačov rôzneho druhu s rôznymi operačnými systémami.
Tak ako počítač samotný má svoj operačný systém aj činnosť počítačov vzájomne prepojených v počítačovej sieti musí riadiť špeciálne programové vybavenie. Môže to byť:
Schematické znázornenie jednotlivých programových vybavení v počítačových sieťach sa nachádza na nasledujúcom obrázku.
Obr. 42 Typy základného programového vybavenia v počítačových sieťach
Podľa rozloženia a funkcie základných uzlov počítačovej siete delíme ešte počítačové siete na:
peer-to-peer (čítaj pír-tu-pír), čo zhruba znamená od uzla k uzlu. Každý uzol je viac-menej rovnocenný a každý môže v danom čase plniť úlohy ako servera tak aj klienta. Typicky sa takýto typ siete používa v kancelárskej praxi, pretože je lacnejší a jednoduchší a pre základné potreby komunikácie postačuje. Tento typ je charakteristický napr. pre základnú sieťovú komunikáciu na platformr MS Windows.
centralizované, čo znamená existenciu jedného silného servera ako centra a množstva menej vybavených klientov (pracovných staníc). Pre náročnejšie prevádzky sa používa najmä táto silnejšia konfigurácia a je charakteristická pre UNIX.
V centralizovaných sieťach rozlišujeme dva druhy počítačov:
SERVER - počítač, ktorý riadi sieť a poskytuje služby používateľom siete. Je to spravidla výkonný počítač vybavený veľkou pamäťou RWM a veľkokapacitnými diskmi. Okrem toho môže napríklad ponúkať tlač na tlačiarni, ktorá môže byť k nemu pripojená. Podľa typu ponúkaných služieb poznáme aj rôzne druhy serverov napr. tlačový, databázový či komunikačný.
PRACOVNÁ STAMICA - počítač (workstation, klient), ktorý využíva služby servera. Je "chudobnejšie" vybavený, napr. nemusí disponovať ani diskovými jednotkami. V sieti môže byť viac pracovných staníc ale aj viac serverov.
Z hľadiska sieťového operačného systému býva každý používateľ zavedený v služobnej databáze SOS (t.j. má definovaný svoj účet). Pri prihlásení je potrebné najprv zadať prihlasovacie meno (LOGIN NAME) a potom heslo (PASSWORD). Potom ste pustení do siete. Pomocou siete je možné potom prenášať rýchlo údaje medzi počítačmi, zdieľať veľkú databázu príp. využívať služby elektronickej pošty.
Obr. 43 Schematický obrázok počítačovej siete
Spájanie počítačov bolo vždy komplikované. Aby spojenie bolo dokonalé, bolo potrebné dokonale porozumieť technickému aj programovému vybaveniu spájaných počítačov. Oblasti, ktorým je potrebné venovať najväčšiu pozornosť sú:
· fyzické spoje ( kabely, konektory atď.);
· smerovanie (komunikačných jednotiek údajov);
· synchronizácia systémov (napr. čas, transakcie...);
· komunikácia (protokoly, spojenia);
· pomenovanie entít;
· kozistencia a replikácia údajov;
· spoľahlivosť a bezpečnosť.
Tieto body robia zo spájania počítačových komponentov náročnú úlohu, pretože vyžadujú rozsiahle vedomosti. To pochopili tvorcovia sietí a celý problém rozložili do radu dielčích problémov. Rozloženie celkového problému do dielčích sa pri automatizácií používa pomerne často (príkladom tejto techniky je dekompozícia). Tým sa stáva celý problém zvládnutejší a rad špecialistov sa môže podieľať na riešení tak, že každý pracuje na svojom poli. Dôsledkom tejto metódy je problém rozčlenenia do vrstiev: tieto vrstvy musia spolupracovať, ale na druhej strane musia zostať pokiaľ možno nezávislé.
Siete môžu mať celý rad foriem aj kvalít. Ich štruktúra, konštrukcia a rozmery môžu byť rôzne. Avšak môžeme tu nájsť určité podobnosti.
Všetky siete sú postavené z viac alebo menej identických častí (komponentov). Tieto časti sú vlastne stavebné bloky sietí. Z hľadiska vlastností, funkcií a aplikovateľnosti poznáme dva druhy komponentov sietí. Prvá skupina komponentov je umiestnená u používateľa systému. Sú to počítače, terminály, pracovné stanice a modemy. Tieto zariadenia tvoria časť siete, ale sú umiestnené u koncového užívateľa. Druhá skupina komponentov je umiestnená v sieti. Veľa používateľov tieto časti nepozná, alebo ich ani nikdy nevidelo. Sú to opakovače, mosty, smerovače a brány, tie hrajú špeciálnu úlohu vo veľkých a pripojených sieťach (viď kapitola 6.4).
Pretože pri rozsiahlych sieťach, ktoré spájajú počítače v rámci veľkých oblastí, fyzicky nie je možné prepojiť každý počítač s každým, vzniká polygonálna sieť, v ktorej je spojenie sprostredkované - niektoré počítače majú počas spojenia funkciu spojovacích uzlov. Ako fyzické spoje sa používajú buď hlasové kanály telefónnej siete (sú pomalé a málo spoľahlivé) alebo zvláštne dátové linky.
Na sprostredkovanie spojenia sa používajú dva princípy:
· Prepájanie okruhov je analógiou telefónnej siete. Počas celého spojenia je vytvorená cesta medzi koncovými uzlami, ktorá slúži iba pre toto spojenie. Výhodou je minimálne oneskorenie prenášanej informácie, nevýhodou vysoká cena spojenia v prípade, ak nie je využitá plná kapacita spoja. Efektívnejšie využitie je možné dosiahnuť vtedy, ak sieť umožňuje dostatočne rýchle vytvorenie spoja iba pre prenos určitej skupiny správ.
· Prepájanie paketov pracuje s blokmi údajov s minimálnou prípustnou dĺžkou (pakety). Vysielajúca stanica vysiela pakety spolu s cieľovou adresou do komunikačnej siete. V najbližšom prepájacom uzle je paket dočasne uložený, preskúma sa jeho adresa a potom sa vyšle najvhodnejším smerom ďalej. Postupným opakovaním týchto krokov sa dostane paket k adresátovi. Tento typ siete pracuje pri náhodnom rozložení zaťaženia siete efektívnejšie ako predchádzajúci.
Ďalšou funkčnou časťou prepojenia dvoch staníc je prenosová cesta (trasa). Prenosová cesta medzi stanicami sa taktiež nazýva prenosovým médiom alebo dátovým okruhom. Nasledujúci obrázok znázorňuje najjednoduchšie spojenie dátovej komunikácie.
Obr. 44 Prenosová linka
Prenosové médium prenáša dáta medzi stanicami, ktoré spolu navzájom komunikujú. Pretože sa prenosová cesta taktiež nazýva prenosovou linkou, môžeme povedať, že prenosová linka prenáša dáta medzi stanicami.
Teraz sa ponúka otázka, ako môžeme túto prenosovou cestu realizovať? Môžeme vybudovať prenosovú linku s :
· elektrickým spojením: napr. normálny telefónny kábel alebo tiež koaxiálny kábel. Koaxiálny kábel sa používa taktiež na spojenie rádia a televízie s centrálnou anténou.
· optickým spojením napr. kábel s optickým vláknom. Informácie prenášané týmto káblom sú prenášané ako svetelné signály. Pre tieto káble je charakteristická ich schopnosť prenášať enormné množstvo informácie za časovú jednotku a ich výnimočná odolnosť proti rušivým vplyvom.
· elektromagnetickým spojením napr. rádiové a satelitné prenosy. Pri rádiových prenosoch je informácia prenášaná pomocou rádiových signálov vysielaných cielene určitým smerom. Satelitné prenosy sú taktiež realizované pomocou rádiových signálov, ale sú šírené pomocou satelitu, umiesteného vo vesmíre. Technológii spojenia bez drôtov sa hovorí aj wireless technológie (Wifi) a s poklesom cien základných komponentov naberá táto technológia na obľube. Vyrábajú sa ako bezdrôtové spojovacie komponenty externého aj interného charakteru.
V súčasnosti najpoužívanejšie prenosové médiá počítačových sietí sú:
· Telefónne linky - malá prenosová rýchlosť (bežne do 56600 bps, výnimočne až do 512 kbps), malá spoľahlivosť prenosu, prenos na veľké vzdialenosti.
· Symetrické vedenia - rýchlosť prenosu do 1 Gbps. Spojenie na vzdialenosť < 1 km. Sem patria v súčasnosti populárne krútené dvojlinky (twisted pair) UTP resp. STP (UTP kategórií 6 a 7 dokonca umožňujú aj vyššie prenosové rýchlosti ako je 1 Gbps).
· Nesymetrické vedenia (koaxiálny kábel) - rýchlosť prenosu 10 - 20 Mbps (špeciálne typy káblov dosahujú aj 100Mbps), spojenie na vzdialenosť rádovo stovky metrov. Je to typické prenosové médium s dobrou odolnosťou proti rušeniu.
· Optické vlákna – vysoké prenosové rýchlosti (do 1Gbps), spojenie na vzdialenosti rádovo km. Takýto kábel má jadro tvorené skleneným vláknom (stručne nazývaným vlákno) a vďaka jeho optickým vlastnostiam je svetelný signál držaný vo vnútri. Tieto spojenia sú vyrábané zo syntetických materiálov, ktoré veľmi dobre vedú svetlo. Jadro káblu je obklopené izolačnou vrstvou zo skla alebo iného materiálu. Na vonkajšej strane je kábel chránený syntetickou vrstvou chrániacou pred poškrabaním a nárazom.
Obr. 45 Optický kábel
Káble s optickými vláknami majú, v porovnaní s koaxiálnymi káblami bezpochyby výhody a sú v súčasnej dobe stále viac používané. Najdôležitejšie výhody sú:
· väčšie množstvo dát, ktoré môžu byť za jednotku času prenesené káblami s optickými vláknami (vyjadrené v pojmoch telefónneho spojenia toto množstvo predstavuje niekoľko desiatok tisíc hovorov v rovnakom okamžiku),
· zanedbateľná strata signálu,
· prenos káblami s optickými vláknami nie je tak citlivý na rušivé vplyvy,
· prenos je takmer bezchybný,
· vlákna sú pevné, pružné a veľmi tenké, ich priemer býva 0,1 mm,
· je veľmi ťažké napojiť sa na ich signál (tajne).
Majú však aj svoje nevýhody:
· ku konverzii svetelných signálov na dáta je nutné použiť zdokonalené zariadenie,
· jeho nákup je relatívne drahší,
· spájanie káblov s optickými vláknami je oveľa ťažšie a časovo náročnejšie, než jednoduché pájkovanie medených vodičov používaných v galvanických alebo koaxiálnych spojeniach, ťažšia je aj inštalácia zástrčiek optických káblov,
· poškodenie kábla sa dá veľmi ťažko opraviť.
· Pozemné všesmerové rádiové kanály - rýchlosť prenosu do 9600 bps. Používané frekvencie l00 MHz až 2GHz. Používajú sa na pripojení mobilných terminálov, počítačov resp. mobilných telefónov.
· Pozemné smerové rádiové kanály: rýchlosť prenosu do 10Mbps, spojenie do vzdialenosti desiatok km. Používané frekvenčné pásma 4/6GHz a 12/14GHz.
· Satelitné spoje – prenosové rýchlosti a pásma ako v prechádzajúcom prípade. Spojenie na veľmi veľké vzdialenosti (tisícky km). Je tu značné dopravné oneskorenie (rádovo stovky ms), dôvodom ktorého je vzdialenosť družice od povrchu Zeme. Rádiové prenosy a satelitné spojenia patria do skupiny spojení nazývaných bezdrôtové spojenia. Odlišujú sa od spojení elektrických a optických, ktoré spadajú do kategórie drôtových spojov.
Obr. 46 Schematické znázornenie satelitného spojenia
Tieto spojenia sú veľmi výhodné, pretože umožňujú prenos na veľké vzdialenosti, bez problémov súvisiacich s terénom (stromy, hory a pod.). Sú taktiež menej citlivé. Ich nevýhody sú: spojenia sú nákladné, pretože je potrebná infraštruktúra (vo vesmíre musia byť na pevnej pozícii umiestené satelity), spojenia sú dosť citlivé na iné elektromagnetické signály a rušivé vplyvy zemského magnetického poľa. Poruchy zemského magnetického poľa vznikajú predovšetkým pri erupciách na slnku, kedy dochádza k uvolneniu veľkého množstva energie a elektromagnetického žiarenia a nakoniec dochádza k oneskoreniam, pretože signály pokrývajú veľké vzdialenosti. Napr. signál z New Yorku do Amsterdamu sa cez satelit šíri s oneskorením 0,5 sekundy.
Ak je na vytvorenie počítačovej siete použité zdieľané elektrické alebo optické vedenie, pripadne i rádiový kanál, okrem kódovania, je potrebné vytvoriť metódu, ktorá umožní prednášať údaje medzi ľubovoľnými účastníkmi bez toho, aby boli rušení vysielaním inej stanice.
Používajú sa tieto prístupové metódy:
Statické prideľovanie: kapacita prenosového spoja je pevne rozdelená do častí pridelených jednotlivým účastníkom. Rozdelenie môže byť buď frekvenčné alebo časové.
· Frekvenčný multiplex (FDMA) rozdelí celkovú frekvenčnú šírku kanála do niekoľkých pásiem pridelených jednotlivým staniciam. Tento spôsob je skôr typický pre prenos rôznych typov informácie (hlas, údaje).
· Časový multiplex (TDMA) prideľuje prenosový kanál na istý čas jednej stanici. Jeden úsek musí byť venovaný synchronizačnej správe, nutnej k jednoznačnej identifikácii príslušných úsekov pre jednotlivé stanice. Časový multiplex sa využíva napr. aj v komunikácii pomocou satelitov. Obidve metódy nedokážu plne využiť prenosovú kapacitu spoja a vedú k oneskoreniu paketov zúžením šírky pásma jednotlivého kanála pri FDMA alebo nutnosťou čakať na príslušný časový úsek pre TDMA.
Centrálne prideľovanie: Ak existuje v sieti jedna centrálna stanica, táto môže byt' poverená úlohou prideľovať kapacitu prenosových kanálov tým podriadeným staniciam, ktoré ju skutočne potrebujú. Výhodou je celkové lepšie využitie prenosovej cesty, časť kapacity je však potrebné venovať na prenos požiadaviek. Existujú dva typy:
· prideľovanie na žiadosť (request), kedy má každá stanica pre seba vyhradenú malú časť prenosovej kapacity kanála, v ktorej môže kedykoľvek žiadať centrálnu stanicu o pridelenie voľného prenosového kanála. Po potvrdení potom uskutoční prenos údajov, uvoľnenie kanála oznámi opäť centrálnej stanici.
· prideľovanie na výzvu (pooling) plne riadi centrálna stanica, ktorá sa periodicky spytuje všetkých podriadených staníc, či nemajú údaje na vyslanie. Ak áno, dopytovaná stanica ich hneď odošle. Ak nemá údaje pripravené na vysielanie, odpovie iba potvrdzovacím paketom alebo neodpovie vôbec.
Náhodné prideľovanie resp. náhodný prístup: metódy, ktoré využívajú náhodný prístup nepotrebujú činnosť žiadnej centrálnej stanice. Okamih svojho prístupu na kanál určujú všetky stanice samostatne na základe vlastného odhadu. Nedokážu síce vylúčiť situácie, keď je vysielanie jednej stanice znehodnotené súčasným vysielaním inej stanice, ale snažia sa počet týchto kolízií minimalizovať a udržať čo najväčšiu priepustnosť údajov aj pri veľkom zaťažení kanálov. Metóda CSMA (Carrier Sense Multiple Access} znižuje počet kolízii tým, že pred vysielaním testuje stanica obsadenosť kanála. Ak je kanál voľný, začne vysielať, ak nie, čaká na jeho uvoľnenie. Táto metóda náhodného prístupu sa často uplatňuje v lokálnych sieťach, kde je test obsadenosti kanála ľahký (napr. sieť Ethernet). Je zrejmé, že ani tento prístup nemôže vylúčiť vznik kolízie. Tá vzniká ako dôsledok stavu, ak dve stanice testujú stav kanála v časovom odstupe menšom, ako je doba šírenia signálu medzi nimi. Preto sa používajú rozšírenia základnej metódy (CSMA/CA , CSMA/CD).
Distribuované prideľovanie: metódy, ktoré používajú distribuované prideľovanie, zaručujú bezkonfliktné prideľovanie zdieľaného kanála jednotlivým staniciam tak, že je možné zaručiť aj maximálnu dobu oneskorenia paketu. Pritom nie je potrebná existencia centrálnej stanice, ktorej výpadok by spôsobil zrútenie celej siete. Algoritmus prideľovania kanála sa vykonáva na všetkých zúčastnených staniciach súčasne.
Metódy spojenia pri komunikačnom spojení určujú, či spojenie umožňuje prenášať dáta v jednom alebo v oboch smeroch. V prípade spojenia umožňujúceho prenos v oboch smeroch určujeme, či umožňuje prenášať dáta v oboch smeroch súčasne. Možné metódy druhy spojenia prenosov z hľadiska smeru toku dát sú:
· simplexný prenos umožňuje iba jednosmerný prenos dát medzi vysielačom a prijímačom. Okruh je vhodný iba pre jednosmerný prenos a používa sa iba jedno prenosové médium. Príkladom simplexného prenosu je televízne vysielanie. Informácie môžu byť vysielané len z televíznej stanice k televíznym prijímačom. Distribúcia dát je príkladom simplexného prenosu v oblasti dátovej komunikácie, pretože prenos informácií je potrebný práve v jednom smere, konkrétne z centrálneho počítača (servera) k počítačom (klientom) resp. terminálom používateľov.
· poloduplexný prenos. Obvykle ľudia, ktorí pracujú so zariadeniami dátovej komunikácie, musia byť schopní výmeny informácii v oboch smeroch. Presnejšie, každá stanica musí byť schopná vysielať a prijímať dáta. Pokiaľ prebieha prenos dát v obidvoch smeroch po jednej prenosovej linke, označujeme tento prenos ako poloduplexný. Takto komunikovali aj napr. staršie modemy, ktoré obsahovali elektronický prepínač. Poloduplexný okruh potom dovoľuje obojsmernú komunikáciu, ale nie v rovnakom okamihu. Ak vysiela stanica A, potom stanica B vysielať nemôže a naopak. Poloduplexný prenos používajú pri svojich operáciách systémy otázok a odpovedí. Pretože komunikácia sa uskutočňuje prostredníctvom „otázok a odpovedí“, prenos prebieha v obidvoch smeroch, ale nikdy nie súčasne. Ďalším príkladom poloduplexného prenosu je vysielačka.
· plne duplexný prenos stručne označovaný ako duplexný prenos, je ďalšou metódou na prenos dát oboma smermi. Pretože pre tento typ spojenia sa používa dva alebo viac kanálov, môže prebiehať prenos v rovnakom okamžiku oboma smermi. Na duplexné prenosy môžeme pozerať ako na dva simplexné prenosy.
Pri prenose paketov po sieti môže dochádzať v zásade k dvom chybovým situáciám:
· v prvom prípade cieľová stanica síce paket príjme, ale kontrolou kontrolného znaku zistí, že prenos neprebehol správne,
· v druhom prípade cieľová stanica paket vôbec neprijme, a to buď preto, že bolo poškodené jeho adresné pole, alebo počas vysielania cieľová stanica nebola pripravená na príjem.
Ak je požiadavka na zabezpečenie bezchybného prenosu informácií, musí byť vysielacia strana schopná obe tieto chyby detekovať a vyslanie príslušného paketu zopakovať. Pre tento účel sa najčastejšie používa metóda potvrdzovania správ. Existuje niekoľko metód, ktoré sa v praxi môžu kombinovať a modifikovať.
Pozitívne potvrdzovanie: Prijímacia strana v prípade, že prevzala dátový paket bez chyby, vyšle špeciálny potvrdzovací paket. Na chybne prijatý paket (a samozrejme na neprijatý) stanica nereaguje. Vysielacia strana po vyslaní paketu musí čakať istú dobu na potvrdzovací paket. Tento čas sa nazýva timeout. Až po jeho prijatí môže pokračovať vysielaním ďalšieho paketu. Ak nepríde potvrdenie do istého času, opakuje vysielanie predchádzajúceho paketu znovu. Daná metóda dokáže vyriešiť aj stratu paketu. Pri jeho strate dôjde k opätovnému vyslaniu. Pozitívne potvrdzovanie je základom v praxi používaných metód. Vo svojej čistej forme má však nevýhody vo veľkom náraste časových oneskorení pri raste chybovosti prenosu a v relatívne veľkom zaťažení siete pri prenose krátkych paketov.
Negatívne potvrdzovanie: Vysielacia strana je upozornená iba na chybne prijaté pakety prijatím špeciálneho paketu. Tento postup rýchle reaguje na chybne prijaté pakety, nedokáže však vyriešiť stratu paketu, preto sa kombinuje s pozitívnym potvrdzovaním. V tejto kombinácii potom rýchle reaguje na chybne prijatý paket, stratený paket je detekovaný uplynutím časového limitu (timeout). Strata potvrdenia vedie k zdvojeniu paketu na prijímacej strane.
Číslovanie paketov: je mechanizmus, ktorý umožňuje prijímacej strane detekovať zdvojený paket. K tomuto dochádza pri strate potvrdzovacieho paketu. Vysielacia strana nie je schopná rozpoznať, či došlo k strate paketu alebo iba k strate jeho potvrdenia a opakuje vysielanie. Aby prijímacia strana rozpoznala, že ide o už prijatý paket, všetky pakety sú vzostupne očíslované. Z praktických dôvodov sa používa modulárne číslovanie, napr. cyklicky čísla v rozsahu 0 až 127. Potom je možné detekovať nielen opakovanú správu (rovnaké číslo), ale aj stratu správ (vynechané číslo). Stratu je možné detekovať za predpokladu, že prepájacia sieť zaručuje dodržanie postupnosti vysielaných paketov. Okrem vysielaných správ môžu byt' číslované aj potvrdzovacie pakety.
Skupinové potvrdzovanie: Potvrdzovaním každého paketu samostatne môžu značne narastať časové straty, najmä pri väčších oneskoreniach v prenosovej ceste. Preto je výhodnejšie potvrdzovať prijatie celej skupiny paketov. Vysielacia strana očakáva potvrdenie až po odvysielaní n paketov. Prijímacia strana potvrdzuje číslom posledného správne prijatého paketu.
Nesamostatné potvrdzovanie: Ďalšie zvýšenie využiteľnosti prenosovej cesty sa dosahuje tým, že v každom vysielanom rámci sa vyhradí zvláštne pole na informáciu o čísle potvrdzovaného paketu. Ak potom prichádza k obojstrannej výmene správ medzi stanicami, potvrdenie skôr prijatého paketu môže byt' súčasťou aktuálne vysielanej správy. Ak prijímacia strana nemá pripravené vlastné údaje na vysielanie, použije samostatný potvrdzovací paket. Väčšina komunikačných protokolov lokálnych sieti používa niektorú formu skupinového nesamostatného potvrdzovania.
V počítačovej sieti je väčšina sieťových služieb vytvorená pomocou modelu klient-server. Program typu server poskytuje určitú sieťovú službu a program typu klient umožňuje využívať túto službu. Klient zahajuje komunikáciu, požiada server o službu, tento ju vykoná a výsledok pošle klientovi. Samozrejme, že jeden server môže obsluhovať viac klientov (prakticky neobmedzené množstvo). Najjednoduchším príkladom je služba PING, kde klient (príkaz ping) si pomocou siete vyžiada od servera (programu, ktorý iba čaká na požiadavku od klienta) odpoveď. Potom klient vyhodnotí časové oneskorenie príchodu požiadavku. Zložitejším príkladom je napríklad služba WWW. Tu klient podľa voľby používateľa vyšle požiadavku na príslušný server, ktorý podľa požiadavky vyhľadá dokument a pošle ho naspäť, pričom získaný dokument klient spracuje a zobrazí používateľovi. Používateľ opäť podľa potreby vyšle nejakú požiadavku na nejaký server (nemusí to byť stále ten istý). Aby pracoval takýto model sieťových služieb, musí byť server stále pripravený (počítač zapnutý a spustený príslušný program, ktorý očakáva požiadavky klientov).
Aby bol server schopný vytvoriť si na základe komunikácie s klientom určitý jeho profil, sú vytvárané krátke informácie v tvare reťazca meno=hodnota. Týmto informáciám sa hovorí cookies a základe nich môže server reagovať individuálne na každého klienta.
V princípe dnes dominujúcim sieťovým modelom je model klient-server popri ktorom už menej často distribuované aplikácie využívajú aj model peer-to-peer resp. agentový prístup. Dôležité je uvedomiť si, že základnou funkciou každého servera je poskytovanie služieb klientom. Súčasné sieťové technológie, internetové technológie nevynímajúc, pracujú s rôznymi typmi serverov. Medzi najpožívanejšie patria: súborový server, tlačový server, databázový server, WWW/http server, komunikačný server, ftp server, proxy server, poštový server, faxový server a zálohovací server. Tieto servery potom tvoria jednotlivé procesné platformy pre používané služby a technológie.
· Súborový server (file server) patrí medzi najstaršie druhy serverov. V princípe sa jedná o poskytovanie súborov, ich častí alebo celého súborového systému. Základným princípom tejto služby je umožniť používateľom pristupovať k spoločným súborom. Súborové servery využívajú rôzne optimalizačné techniky na to, aby poskytli požadované údaje čo najrýchlejšie. Medzi takéto techniky patria využívanie vyrovnávacej pamäte, optimalizácia prístupu na disky pomocou priorizácie požiadaviek, technológie RAID (diskové polia) a pod. Úlohou a zároveň výhodou súborových serverov je aj to, že umožňujú zdieľať súbory v nehomogénnych prostrediach, napríklad používateľom používajúcim Unix alebo Linux umožnia pristupovať k súborom používateľov používajúcich MS Windows a naopak. Už dlhé roky patrí k najvýkonnejším aj najstabilnejším súborovým serverom a v súčasnosti patrí tiež na špičku súborový server Novell Netware, ktorý zároveň podporuje asi najširšie spektrum klientov, počínajúc DOS-om, Windows 9x/Me/NT/2000/XP, pokračujúc Apple Macintoshom, OS/2 a Unixom končiac. Aj MS Windows NT/2000/2003 je možné použiť ako súborový server (má porovnateľné vlastnosti ako Novell Netware, ale na dosiahnutie rovnakého výkonu potrebuje výkonnejšiu hardvérovú bázu). Požiadavky súčasných používateľov na poskytovanie súborových služieb klesajú, a teda samotný výkon súborového servera nie je primárnym kritériom. Pokles požiadaviek na výkon súborového servera je spôsobený napríklad aj nástupom databázových serverov, ktoré nahrádzajú klasický súborový prístup k databázam (DBF) prístupom na základe požiadaviek (SQL - Structured Query Language). Špeciálnym typom súborového servera je CD-ROM server resp. DVD-ROM server. Najčastejšie ide o samostatné zariadenie obsahujúce niekoľko CD-ROM mechaník (DVD-ROM) a poskytujúce ich obsah príslušnému množstvu klientov. Je vhodné použiť tieto zariadenia v prípade, že používatelia potrebujú veľmi často pristupovať k veľkému množstvu statických informácií, ktoré sú obsiahnuté na niekoľkých CD-ROM médiách.
· Databázové servery postupne nahrádzajú v niektorých typoch aplikácií - najmä v informačných systémoch podnikov - klasický súborový prístup. Dôvodom je to, že údaje sú spravované a spracúvané centrálne, čo zvyšuje ich bezpečnosť a jednoducho umožňuje zabezpečiť integritu. Navyše databázové servery sú optimalizované na manipuláciu s dátami, a teda dokážu efektívnejšie splniť požiadavky. Nakoľko klientovi odosielajú iba dáta, ktoré potrebuje, výrazne znižujú záťaž komunikačného média, napr. počítačovej siete, a tým aj celého systému. Použitím databázového servera sa komunikácia redukuje na odoslanie požiadavky, ktorá je veľká niekoľko sto bajtov a prijatie odpovede, ktorej veľkosť je závislá od podmienky požiadavky. Dnes najčastejšie využívaným typom databázových serverov sú tzv. SQL servery (napr. Oracle, Microsoft SQL Server, InterBase, Sybase, MySQL či PostgreSQL). V poslednom čase sa databázové servery začínajú čoraz častejšie využívať ako zdroje dát pre intranetové a internetové servery. Je to spôsobené tým, že okrem klasických dát typu reťazec, číslo, dátum a pod. pribudla možnosť uchovávať aj multimediálne dáta ako zvuky, obrázky a animácie tzv. blob (binary large objects) dáta.
· Aplikačný server (application server) je pomerne novým typom servera. Na klientovi je prezentačná logika a na serveri je aplikačná logika aplikácie. Oproti súborovému serveru predstavuje aplikačný server rozdiel. Súborový server môže poskytovať miesto pre uloženie aplikácie. V prípade spustenia sa však celá aplikácia vykonáva na strane klienta. Naproti tomu pri aplikačnom serveri sa mnohé časti aplikácie vykonávajú aj na serveri (napr. rôzne výpočty a kontroly). Výhodou tohto usporiadania je ľahká správa aplikácie vrátane konzistentnej správy nových verzií (upgrade). Tieto typy serverov umožňujú resp. by mali umožňovať aj prenájom aplikácií za podstatne nižšiu cenu ako keby si ich mal zákazník celé kúpiť, ak potrebuje príslušnú aplikáciu len dočasne. Z toho vyplýva aj výhoda pri podnikovom nasadení aplikácie.
· Tlačový server (print server) poskytuje ďalšiu často požadovanú službu. Ceny bežných tlačiarní dnes klesajú a je občas diskutabilné, či má zmysel inštalovať spoločnú sieťovú tlačiareň alebo je jednoduchšie kúpiť každému používateľovi vlastnú tlačiareň. Používanie sieťovej tlačiarne je však jednoznačne ekonomickejšie a v konečnom dôsledku aj efektívnejšie. Tlačový server zbiera požiadavky používateľov na tlač a pomocou tlačiarní pripojených k nemu ich vybavuje. Okrem tejto základnej úlohy výhody tlačového servera nekončia. Mal by vedieť obslúžiť niekoľko tlačiarní (často aj niekoľko desiatok), mal by zabezpečiť aby v prípade, keď je tlačiareň obsadená, sa dokument vytlačil na inej, administrátorom definovanej tlačiarni. Ďalej by mal zabezpečiť, aby určité tlačiarne mohli používať iba určití používatelia a vedieť sledovať využívanie jednotlivých tlačiarní používateľmi. Mnoho súčasných tlačových serverov však dokáže omnoho viac. Pri menších sieťach častokrát samotný tlačový server nie je potrebný a postačuje len zdieľanie tlačiarní (podobne ako u platformy Windows 9x/Me/NT/2000/XP alebo Linux s nainštalovanou Sambou).
· Proxy server je špeciálnym typom servera. Aplikuje sa od transportnej vrstvy a svojou účinnosťou patrí do oblastí brán (gateway). Jeho úlohou je vystupovať voči iným serverom v mene klientov. V prípade teda, že klient za proxy serverom chce zo servera ftp.xyz.com prevziať súbor abc.def, potom sa tento klient obráti na svoj proxy server a oznámi mu, že chce daný súbor z daného FTP servera. Proxy server sa potom pripojí na zvolený FTP server a prevezme vybraný súbor a následne ho odovzdá klientovi, ktorý oň žiadal. Tento prístup má viacero výhod. Keďže proxy server „maskuje“ " aktivitu klienta, o klientovi za proxy serverom sa nik nedozvie a tým sa zvyšuje bezpečnosť. Ak zabezpečíme že, všetci klienti pristupujú do vonkajšej siete iba cez proxy server, je možné sledovať, kto a čo robí, prípadne obmedziť prístup na vybrané servery vybraným používateľom, čím sa zlepšuje kontrola. Do proxy serverov sa často zabudováva vyrovnávacia pamäť, ktorá zachytáva najčastejšie navštevované stránky WWW serverov a najčastejšie prenášané súbory z FTP serverov. Keď potom klient požiada o stránku, ktorá sa už medzičasom nahrala do vyrovnávacej pamäte proxy servera, tak proxy server iba skontroluje, či objekty na stránke na WWW serveri sú zhodné s objektmi na danej stránke v jeho vyrovnávacej pamäti a klientovi potom odošle stránku z vyrovnávacej pamäte. To má za následok zníženie záťaže prenosových liniek a zníženie záťaže na často používaných serveroch. Medzi často používané proxy servery v súčasnosti patria Novell Border Manager pre Novell NetWare, Microsoft Proxy Server pre Windows NT a Squid pre Linux. Pri jednoduchších konfiguráciách je možné v prostredí MS Windows použiť program WinProxy.
· FTP server poskytuje súbory. Možno sa niekomu bude zdať, že je to zbytočná činnosť, pretože to isté zabezpečujú aj súborové servery, no nie je to úplná pravda. FTP servery sa používajú predovšetkým v prostredí Internetu, teda vo veľmi heterogénnom prostredí. V tomto prostredí nie je definovaný štandardný protokol, teda okrem HTTP a FTP, ktorý by umožňoval prenášať súbory medzi takými rozdielnymi systémami, ako sú napríklad Unix a Apple Macintosh. FTP má zabudované vlastnosti, ktoré zabezpečia, že FTP server a jeho obsah budú totožné pre všetkých klientov. Najčastejšie využitie dnes nachádzajú FTP servery v spojení s HTTP servermi, ktoré síce tiež dokážu prenášať súbory, no FTP servery to robia efektívnejšie. FTP server je podporovaný všetkými spomínanými platformami OS. Z hľadiska bezpečnosti však častokrát systémoví inžinieri nepovoľujú túto službu.
· HTTP server je spojený s protokolom HTTP. Tento protokol a aplikácie s ním spojené, t. j. WWW servery sú príčinou takého rapídneho rozvoja Internetu. WWW server je vlastne súbor stránok s presne určenou štruktúrou. HTTP server tieto stránky dokáže čítať a poskytovať ich klientom. Jeden HTTP server môže obsluhovať viacero WWW serverov. Medzi najpoužívanejšie HTTP servery patria Apache (najviac používaný), Microsoft Internet Information Server (len Windows platforma) a Netscape Enterprise Server (všetky platformy). HTTP servery sa s výhodou používajú pri budovaní vnútorných, intranetových WWW serverov. Na takýchto serveroch je možné jednoduchým spôsobom sprístupniť všetko od základných informácií, ako sú vnútorný telefónny zoznam, organizačná štruktúra organizácie, organizačné normy podniku, až po komplexné aplikácie pracujúce s databázovými servermi poskytujúcimi informácie napr. o finančnej situácii a pod.
· Poštový server (mail server) zabezpečuje najvyužívanejšiu službu Internetu a to elektronickú poštu. V súčasnosti sa bežne používajú tri základné protokoly na prenos elektronickej pošty: SMTP, POP a IMAP. SMTP je protokol, ktorý sa používa na odosielanie správ a na ich doručenie do používateľských poštových schránok. POP vo verziách POP2 a POP3 a IMAP vo verziách IMAP3 a IMAP4 sa používajú na čítanie správ z používateľských poštových schránok. Z poštových serverov sa dnes vyvinuli tzv. groupware servery podporujúce skupinovú prácu. Tieto servery dokážu udržiavať skupinové kalendáre, sledovať plnenie úloh jednotlivých používateľov, manažovať stretnutia a pod. Príkladmi takýchto serverov môžu byť Novell GroupWise, Microsoft Exchange, ako aj Netscape Collabra a Messaging server. Skupinové nástroje nie sú zatiaľ prístupné zadarmo, no jednoduchým poštovým serverom pre Windows je aj už spomínaný WinProxy.
· Faxový server sa používa na manažovanie faxových správ v organizácii. Popularita faxových serverov dnes postupne klesá, pretože ich nahrádza elektronická výmena dokumentov, napr. pomocou už spomenutej elektronickej pošty, no sú prípady, keď je kvalitný faxový server veľkým skvalitnením práce. Bežný prístup k faxovaniu je: vytlačiť alebo inak prichystať stránku a potom odfaxovať. V prípade obsadenosti volaného čísla sa faxovaním zaoberá používateľ pomerne dlho. Takisto nastávajú problémy ak sa podarí odfaxovať len časť dokumentov alebo neúplné strany a pod. Faxové servery odstraňujú potrebu manuálnej manipulácie s dokumentmi. Dokument sa jednoducho priamo z aplikácie pošle na faxový server, čo je úkon podobný zaslaniu elektronickej správy alebo tlače. Navyše je potrebné zadať len adresáta alebo skupinu adresátov a faxový server sa postará o odoslanie dokumentu. Častokrát navyše je možné nastavovať také parametre ako napr. koľkokrát sa má pokúšať odoslať dokument, aké časové intervaly musia uplynúť medzi týmito pokusmi, či má odoslať iba neodoslaný zvyšok alebo celý dokument a pod. Tieto funkcie dokážu však aj inteligentné faxy, no faxový server môže byť užitočný aj pri prijímaní faxov. Na základe ID odosielateľa alebo na základe zadaného kódu (pomocou DTMF), prípadne na základe iných znakov dokáže faxový server prijaté dokumenty priamo smerovať k príjemcovi, a to napríklad vo forme správy v elektronickej pošte, prípadne sa mu dokument vytlačí na tlačiarni. Takýmto spôsobom možno ušetriť prácu napr. sekretárke, ktorá by musela došlé taxy rozniesť po kanceláriách, a zabezpečí sa aj to, že fax si prečíta iba oprávnená osoba.
· Zálohovací server umožňuje bezproblémovo zálohovať všetky potrebné údaje na všetkých počítačoch v príslušnej sieti, či už sú to servery, alebo klientské stanice. So zálohovaním je často spojený tzv. recovery plan, teda plán obnovy, ktorého základ tvorí snaha o obnovenie prevádzky kritických častí informačného systému podniku v istom stanovenom časovom limite. Aj keď je možné pomocou zálohovacích serverov zálohovať aj klientské stanice, najčastejšie sa zálohujú iba disky serverov, keďže sa nedá zaručiť, že používateľ napríklad nevypne počítač. Problémom je aj, ako zálohovať. Tento problém zahŕňa voľbu technológie záložného média a aj voľbu metódy zálohovania. Podľa rozsahu je možné použiť CD médiá, magnetické alebo magnetooptické médiá alebo najlepšie magnetické pásky. Výhodou magnetických pások je, že ich možno použiť namiesto jednoduchej mechaniky tzv. changer - výmenníkový automat, ktorý sa stará o automatické zakladanie pások v prípade, že práve používaná páska sa naplní. Takýto "vymieňač" bežne obsluhuje do 10 pások.
Iným príkladom pre model distribuovaného systému sú tzv. agentové resp. multi-agentové systémy (MAS). Pojem multi-agentový systém je v súčasnosti chápaný ako systém skladajúci sa z viacerých autonómnych komponent majúcich nasledovné vlastnosti:
Multi-agentové systémy (MAS) sa stávajú základnou technológiou v systémoch, kde hrajú dôležitú úlohu vzájomné závislosti komponent, dynamické prostredie, neurčitosť a sofistikované riadenie, pričom ponúkajú možnosť pre modelovanie a teoretickú reprezentáciu týchto systémov.
Samotné programové agenty môžeme rozdeliť do viacerých skupín, pričom si uvedieme aspoň niektoré:
Z pohľadu počítačových sietí sú najzaujímavejšou skupinou mobilné agenty. Ako už bolo spomenuté, základnými vlastnosťami mobilných agentov je autonómnosť a mobilita. Autonómnosť preto, že po svojom vzniku majú schopnosť samostatného rozhodovania, t.j. ktoré miesta - lokácie - navštívia v rámci svojho prostredia (počítačová sieť) a ktoré akcie budú na týchto lokáciách vykonané. Toto správanie je implicitne definované v zdrojovom texte agenta, alebo prostredníctvom v čase existencie agenta modifikovateľného „cestovného plánu“ (itinerary) agenta. Mobilita je teda charakteristickou vlastnosťou pre schopnosť mobilných agentov premiestňovať sa medzi lokáciami, ktoré predstavujú základné prostredie pre ich vykonanie a zároveň reprezentujú abstrakciu použitej počítačovej siete a operačného systému.
Životný cyklus agenta spravidla obsahuje nasledovné udalosti: vznik a zánik, príprava na premiestnenie na novú lokáciu (dispatch), príchod na novú lokáciu (arrival) a komunikáciu, v rámci ktorej mobilný agent obsluhuje prichádzajúce správy od iných agentov.
Mobilita samotná však nie je ani nutnou, ani postačujúcou vlastnosťou charakterizujúcou agenta. Mobilné agenty však tvoria samostatnú skupinu a oblasť výskumu v rámci programových agentov z dôvodu svojej autonómnosti a schopnosti spolupracovať na inom princípe, odlišnom od skupiny spolupracujúcich agentov. Samozrejme použitie stacionárnych alebo mobilných agentov závisí v prvom rade od aplikácie, pre ktorú sú určené.
K motiváciám použitia mobilných agentov patria:
Všeobecnú architektúru systému pre mobilných agentov predstavuje nasledujúci obrázok:
Obr. 47 Všeobecná architektúra systému pre mobilných agentov
Systémy na báze mobilných agentov sa využívajú hlavne pri správe inteligentných sietí, vyhľadávaní informácií a pri tvorbe sieťových služieb novej generácie pre používateľov mobilných zariadení (mobilné telefóny, PDA, laptopy...), ktorým tradičný model klient-server neumožňuje využiť všetky možnosti.
Internet je obrovský fenomén dneška. Svoj raketový nástup medzi verejnosť datuje do roku 1995, aj keď existoval aj predtým. Názvom Internet sa označuje spojenie všetkých počítačov, ktoré spolu komunikujú cez protokol (predpis komunikácie resp. je to množina všeobecne platných pravidiel komunikácie) TCP/IP. V roku 1969 ministerstvo obrany USA vytvorilo počítačovú sieť s názvom ARPANET, ktorá spájala štyri počítače. Táto sieť bola verejne predstavená v roku 1972. Vtedy sa na ňu pripojili mnohé univerzity aj výskumné organizácie. Špecifikovanie a programovanie druhej generácie sieťového programového vybavenia prebiehalo až do roku 1982, kedy sa aj prvý krát použil pojem Internet pre označenie siete fungujúcej na báze dohodnutých protokolov. Dva hlavné prvky tejto generácie, Transmission Control Protocol (TCP) a Internet Protocol (IP), sa potom použili na pomenovanie celej rodiny protokolov. Protokol TCP/IP sa rozšíril veľmi rýchlo, koncom 80-tych rokov už bolo pripojených 100.000 počítačov a sieť ARPANET sa oficiálne premenovala na Internet. Internet sa dnes prezentuje ako „sieť sietí“ - spojenie mnohých čiastkových sietí, o ktoré sa starajú rôzne organizácie a je to vlastne WAN sieť. Hoci niektoré organizácie plnia úlohy pre celý Internet, predsa len nejestvuje žiadna organizácia, kompetentná a zodpovedná za Internet ako celok. Všetky dôležité štandardy týkajúce sa Internetu sú publikované vo forme voľne dostupných RFC dokumentov (Request For Comments), takže ich môže ktokoľvek implementovať.
Čo sa týka sieťového modelu, predpokladalo sa, že koncepcia sieťovej architektúry daná referenčným modelom OSI bude vo svete dominantná. V súčasnosti však dominantným zostáva model TCP/IP, a to vďaka celosvetovej sieť INTERNET, v ktorej sa používa. Veľmi často sa označenie TCP/IP chápe iba ako označenie dvoch sieťových protokolov TCP a IP používaných v sieťach s počítačmi s operačným systémom UNIX. V skutočnosti však TCP/IP označuje model sieťovej architektúry, ktorému je priradený súbor protokolov, ktoré nie sú viazané iba na operačný systém UNIX. Model je štvorvrstvový a na nasledujúcom obrázku je porovnanie vrstiev TCP/IP a RM OSI.
Obr. 48 Porovnanie TCP/IP a RM OSI
Pre jednoduchší ďalší výklad pod označením TCP/IP budeme v ďalšom rozumieť množinu protokolov (napr. TCP, UDP, IP, ICMP, RIP, ARP ale najviac používané sú práve TCP a IP), pomocou ktorých sa uskutočňuje prenos v počítačovej sieti. TCP/IP je vrstvená sada protokolov, všeobecne používa 4 vrstvy:
· aplikačný protokol,
· transportný protokol (TCP resp. UDP),
· sieťový protokol IP (poskytujúci základné sieťové služby),
· protokol na riadenie prenosového média (napr. Ethernetu).
Napríklad pre posielanie pošty je existuje protokol aplikačnej vrstvy SMTP (Simple Mail Transfer Protokol) obsahujúci príkazy, v ktorých sa určuje odosielateľ pošty, príjemca, záhlavie pošty, začiatok a koniec tela pošty a pod. SMTP predpokladá, že existuje spoľahlivé spojenie – teda využíva transportný protokol TCP, ktorý má za úlohu v prípade dlhej pošty túto rozdeliť do tzv. segmentov, prenášať po častiach, na druhej strane spojiť a v prípade neprenesenia niektorého segmentu vyžiadať opätovný prenos. Protokol IP (na úrovni sieťovej vrstvy) má za úlohu samotný prenos datagramov, smerovanie (určenie cesty, kadiaľ má datagram prejsť), udržiavanie smerovacích tabuliek. Posledný protokol je závislý od typu použitého prenosového média a má za úlohu iba preniesť datagram po tom ktorom médiu (vo forme rámcov príslušnej LAN technológie). Každá vrstva si k údajom pridá vlastnú hlavičku, ktorú na druhej strane použije a odstráni.
Každé sieťové rozhranie počítača (sieťový adaptér) zapojeného v sieti má pridelenú adresu. V IP protokole verzie 4 má adresa 32 bitov a symbolicky sa označuje pomocou štyroch čísel v rozmedzí 0 až 255 oddelených bodkou, napríklad "147.232.1.11" .
Obr. 49 Príklad lokálnej siete spolu s IP-adresami.
IP-adresa je v skutočnosti rozdelená na adresu siete (Network ID) a číslo počítača v rámci siete (Host ID). Adresa siete zaberá začiatočné bity adresy. Počet bitov určujúcich sieť je daný triedou
Obr. 50 Rozdelenie adries na jednotlivé triedy
sieťovej adresy, ktorá bola organizácii pridelená. Zvyšné bity určujú adresu počítača v rámci danej siete. Napr. ak organizácia získa sieťovú adresu triedy C, môže na ňu pripojiť maximálne 254 počítačov (Host ID 0 a 255 majú špeciálny význam). Rozdelenie do jednotlivých kategórií znázorňuje predchádzajúci obrázok. V súčasnosti sa pre možnosť flexibilného vytvárania sietí rôznych veľkostí a lepšieho využitia množiny adries využíva mechanizmus vytvárania podsietí v rámci jednej siete, kedy správca siete môže aplikovaním príslušnej sieťovej masky vytvárať podsiete bez nutnosti získať ďalšiu sieťovú adresu. Adresa počítača sa potom skladá z identifikátora siete (Network ID), identifikátora podsiete (Subnet ID) a identifikátora počítača v rámci podsiete (Host ID). Samotná sieťová maska je 32-bitové binárne číslo s jednotkami na mieste čísla siete a podsiete (napr. 255.255.224.0) a nulami na mieste čísla počítača, čo spolu s informáciou o triede sieťovej adresy jednoznačne identifikuje podsieť.
Pre jednoznačné určenie každého sieťového rozhrania každého počítača v Internete je teda administratívne zabezpečené, že každá adresa identifikuje nanajvýš jedno sieťové rozhranie hostiteľského počítača. Komunikácia potom s ľubovoľným počítačom je uskutočňovaná za pomoci týchto adries. Každý počítač, ktorý má viac ako jedno sieťové rozhranie, musí vykonávať aj službu prenášania datagramov, ktoré mu síce nepatria, ale musia ním prejsť, aby dosiahli svoj cieľ. Medzi takéto zariadenia patria most (bridge), prepínač (switch) a smerovač (router) - viď kap. 6.4. Spojovacie miesto, ktoré spája sieť Internet s inou sieťou sa nazýva brána– gateway. V Internete sa používajú aj špecializované mosty a smerovače určené iba na túto činnosť, čím sa zvyšuje spoľahlivosť a rýchlosť takýchto uzlov siete.
Oproti kapitole 6 rozšírime svoje znalosti o pojem, ktorý budeme pri vysvetľovaní TCP/IP používať. V sieti sa informácie neprenášajú v celku (napríklad 1MByte naraz), ale prenos je rozdelený do tzv. datagramov. Datagram sme si síce už skôr definovali, ale zopakujme si. Teda datagram je séria bajtov opatrených hlavičkou. Hlavička obsahuje informácie typu:
· zdrojová adresa
· cieľová adresa
· poradové číslo datagramu
· identifikačné číslo protokolu
a iné.
Obr. 51 Štruktúra datagramu
Pokiaľ má správa na aplikačnej vrstve väčšiu dĺžku ako je datagram, je rozdelená do niekoľkých datagramov. V cieli sa informácia poskladá naspäť podľa poradového čísla datagramu. Datagram je teda protokolová dátová jednotka (PDU) na sieťovej vrstve a označuje samostatné množiny údajov, ktoré si komunikační partneri posielajú. V Internete sa týmto pojmom označujú aj PDU nespojovaného transportného protokolu UDP. Protokolové dátové jednotky spojovaného transportného protokolu TCP sa označujú ako segmenty, keďže predstavujú časť „prúdu“ údajov, ktoré si komunikační partneri vymieňajú v rámci jedného spojenia. Pojem paket sa používa väčšinou všeobecne na označenie ľubovoľnej protokolovej dátovej jednotky, niekedy v užšom význame ako PDU transportného protokolu UDP.
IP protokol je sieťovým protokolom v rodine internetovských protokolov (špecifikuje ho RFC 791) a dá sa v stručnosti charakterizovať ako nespojovaná a nepotvrdzovaná datagramová služba. Prvá vlastnosť znamená, že každý datagram je smerovaný nezávisle od ostatných. Z druhej vlastnosti zasa vyplýva, že IP protokol nezaručuje spoľahlivé doručenie datagramu. Hlavnými úlohami IP protokolu sú definovanie základnej prenosovej údajovej jednotky použitej pri prechode Internetom, smerovanie datagramov a špecifikovanie pravidiel pre prenos datagramov. Formát IP datagramu (IP protokol verzia 4) predstavuje nasledujúci obrázok.
Obr. 52 Formát IPv4 datagramu
TCP je transportným protokolom v rodine internetovských protokolov (špecifikuje ho RFC 793), ktorý by sa dal v stručnosti charakterizovať ako spojovaný a spoľahlivý protokol. Prvá vlastnosť znamená, že pred samotným prenosom údajov sa medzi komunikačnými partnermi vytvorí spojenie, ktoré sa zruší až po ukončení prenosu. Keďže transportné protokoly v Internete predstavujú prepojenie aplikačnej vrstvy so sieťovým podsystémom, musí byť pre správne doručenie údajov riešená otázka rozlišovania jednotlivých aplikácií. Na to slúžia tzv. porty. Sú to čísla prideľované operačným systémom pre komunikačné akcie jednotlivých procesov. Situáciu prehľadne znázorňuje nasledujúci obrázok.
Obr. 53 Komunikačné spojenie dvoch procesov pomocou protokolu TCP
Spojenie je dvojica koncových bodov. Koncový komunikačný bod je reprezentovaný dvojicou IP adresa a číslo TCP portu a cez neho majú aplikácie prístup k sieťovým službám. Na identifikovanie portu je vyhradených v TCP segmente 16 bitov (takže ich máme k dispozícii 65536), pričom prvých 1024 je tzv. vyhradených, ktoré sa jednotlivým službám priradzujú dokumentom RFC 1340 („well known“ služby ako e-mail, ftp, telnet, echo, time...). Komunikácia je podobná telefonickému rozhovoru. Jedna strana požiada o spojenie a povie, že je pripravená, pričom je zatiaľ blokovaná. Druhá strana výzvu na spojenie akceptuje alebo zamietne. Do komunikácie s cieľom vytvoriť spojenie sú zapojené obidve jadrá operačných systémov hostiteľských počítačov. TCP udržiava zoznam spojení. Keď sa komunikácia ukončí, obidve strany musia spojenie uzavrieť. Komunikácia je prúdová a obojsmerná.
Druhou vlastnosťou protokolu TCP je spoľahlivosť. Znamená to, že protokol garantuje správne doručenie dát – t.j. poslané údaje komunikačnému partnerovi prídu a to v poradí, v akom boli posielané, resp. protokol vyhlási chybu sieťového podsystému. Teda ak údaje pošleme prostredníctvom protokolu TCP a sieťový podsystém nevyhlási chybu, je doručenie dát v správnom poradí zaručené. Táto vlastnosť sa dosahuje značkovaním jednotlivých segmentov a tzv. pozitívnym potvrdzovaním (obdržanie každého správneho segmentu sa potvrdzuje vysielajúcej stanici, ak takéto potvrdenie nepríde, vysielanie sa opakuje).
UDP je transportným protokolom v rodine internetovských protokolov (špecifikuje ho RFC 768), ktorý by sa dal v stručnosti charakterizovať ako nespojovaný a nespoľahlivý protokol. Na rozdiel od protokolu TCP sa pre posielanie údajov spojenie nevytvára a každý datagram obsahuje informácie o koncových komunikačných bodoch obidvoch partnerov. Koncový komunikačný bod je opäť charakterizovaný IP adresou a 16-bitovým číslom portu, pričom UDP porty a TCP porty sú navzájom nezávislé. Situáciu prehľadne znázorňuje nasledujúci obrázok.
Obr. 54 Komunikácia pomocou protokolu UDP
Konceptuálne poskytuje UDP službu posielania datagramov aplikačným programom. Datagramy sú po prijatí uložené do vyrovnávacej pamäte, pokým ich odtiaľ neprečíta prijímajúci proces. UDP datagramy majú zdrojovú a cieľovú adresu. Zdrojová adresa sa využije v prípade, ak je potrebná odpoveď. Keď dorazí cez sieťový podsystém rámec, sieťové rozhranie ho prijme, odstráni hlavičku a doručí ho najbližšej vyššej vrstve (IP). IP odstráni svoju hlavičku a doručí paket ďalšej vrstve (UDP). UDP odstráni svoju hlavičku a rozhodne, na ktorý port bude správa doručená. Keď bude používateľský proces čítať z vyrovnávacej pamäte, buď sa zablokuje alebo mu bude nejaká správa z frontu doručená.
Nespoľahlivosť znamená, že odosielateľovi nie je garantované poradie doručenia za sebou odoslaných datagramov a ani samotné doručenie datagramov. Logickou analógiou takéhoto typu komunikačného spojenia je posielanie listov prostredníctvom klasickej pošty. Nespoľahlivosť protokolu UDP je pri porovnaní s TCP kompenzovaná výrazne nižšou réžiou, keďže nie je nutné vytvorenia spojenia a potvrdzovanie správ. Takže ak to povaha distribuovanej aplikácie dovolí (nižšie nároky na spoľahlivosť) resp. ak je sieťový systém vysoko spoľahlivý (napr. lokálne siete), UDP umožňuje vytvárať komunikačne rýchle riešenia.
Doteraz bolo popísané, čo to je Internet a akým spôsobom sa v ňom počítače identifikujú a spájajú. Teraz bude povedané, čo s Internetom vo všeobecnosti je možné robiť, t.j. aké služby ponúka. Niektoré z týchto služieb sú už historické, napriek tomu tu majú svoje miesto. Medzi základné služby patria: menná služba (DNS), elektronická pošta (e-mail), vzdialený terminál (telnet), prenos údajov (ftp), diskusné fóra (netnews), distribuované informačné centrum (gopher), prehľadávanie údajov podľa obsahových kritérií (wais), priama komunikácia používateľov v reálnom čase (irc, mud, icq) a hlavne najrozsiahlejšia informačná služba sprístupňujúca hyper-textové/mediálne dokumenty (www). V nasledujúcich kapitolách v krátkosti budú popísané niektoré z nich.
V súčasnosti je jednoznačne najviac používaný systém elektronickej pošty. Prakticky každý používateľ Internetu má svoju e-mailovú schránku a je teda možné sa s ním spojiť prostredníctvom e-mailu. Druhý najviac používaný systém je systém World Wide Web (WWW), ktorý za posledných pár rokov zaznamenal fenomenálny nárast a v podstate naštartoval záujem o Internet pre bežného človeka. Veľká väčšina virtuálnych systémov na Internete dnes pracuje práve prostredníctvom WWW rozhrania. Jednoduchosť použitia tohoto rozhrania spočíva v tom, že samotná aplikácia zabezpečujúca služby beží na WWW serveri a WWW klientom môže byť ľubovoľný prezerací program (tzv. browser) zodpovedajúci príslušným štandardom. Okrem týchto dvoch je veľmi silne používaným systémom je aj systém diskusných skupín NET News. Tento systém umožňuje voľné zdieľanie informácií a ideí v rámci diskusných fór na rôzne témy. V poslednej dobe získava popularitu aj ďalší komunikačný systém - ICQ, čo je v princípe kombinácia elektronickej pošty a priamej komunikácie. S rozširovaním kapacity sieťových spojov narastá tiež používanie audio a video programov pre telefonovanie cez Internet
Jednotlivé služby budeme charakterizovať z pohľadu distribuovanej štruktúry, použitých protokolov a používateľského rozhrania.
Jedným zo základných problémov distribuovaných systémov je problém pomenovania. IP protokol verzie 4 identifikuje ľubovoľný počítač (resp. jeho sieťové rozhranie) pomocou 32-bitového čísla. Keďže takýto spôsob identifikácie je vhodný pre strojové spracovanie, ale nevhodný pre ľudí, pre identifikáciu počítačov sa používajú tzv. „ľudsky čitateľné mená“. Tieto mená v Internete majú tvar doménových mien, keďže použitý menný priestor je organizovaný ako strom s jedným koreňom. Názvy uzlov v tomto strome sú obmedzené na dĺžku 63 bajtov a celková dĺžka mena nesmie presiahnuť 255 bajtov. Podstromy sa nazývajú domény a meno obsahujúce názvy všetkých uzlov až ku koreňu sa nazýva doménové meno. Domény sú rozdelené do neprekrývajúcich sa zón (viď Obr. 55). Doména môže byť implementovaná pomocou viacerých zón.
Obr. 55 Menný priestor DNS rozdelený na jednotlivé zóny
Každý štát má pridelenú vlastnú top-level doménu (Slovensko SK, Čechy CZ, Rakúsko AT ...) iba USA z historických dôvodov má pridelených viac top-level domén podľa oblasti (komercia COM, školstvo EDU, vojsko MIL, štátna správa GOV...).
Príkladom doménového mena počítača je meno "hornad.fei.tuke.sk".
sk určuje najvyššiu doménu (top-level) pre Slovensko
tuke.sk určuje meno domény pre TU Košice
fei.tuke.sk určuje meno subdomény pre FEI TU Košice
hornad je samotné meno počítača.
Vždy, keď existujú paralelne dva prostriedky na identifikáciu tej istej entity, musí existovať spôsob, ako udržať konzistentný stav – t.j. aby zvolené meno a IP adresa označovali to isté sieťové rozhranie. Tento problém v Internete rieši menná služba DNS - Domain Name System. Úloha mennej služby je vo svojej podstate veľmi jednoduchá – odpovedá na dotazy typu: „Aká adresa zodpovedá tomuto doménovému menu?“. Nakoľko sieť nadobúda obrovské rozmery, nie je možné na každom počítači udržiavať tabuľky na prevod mena na adresu. Preto sú tieto tabuľky udržiavané iba na tzv. menných serveroch (name server), ktoré majú na starosti jednotlivé zóny. Udržiava ich správca zóny, ktorý súčasne tieto mená prideľuje a stará sa o to, aby nevznikla nejednoznačnosť v mennom systéme v rámci jeho zóny. Tabuľky jednotlivých domén obsahujú informácie o vlastnej doméne a ak je doména implementovaná prostredníctvom viacerých zón, tak aj odkaz na menné servery týchto subdomén. Menný server odpovedá hlavne na dotazy ohľadom adries počítačov a serverov elektronickej pošty. Štandardnou implementáciou služby DNS na unixovských systémoch je tzv. Berkeley Internet Named Domain (BIND).
Prevod doménového mena na IP-adresu sa potom vlastne vykonáva buď iteratívne alebo rekurzívne. Procese iteratívneho rozlíšenia doménového mena prebieha nasledovne:
Požiadavka na prevod sa prenechá tzv. "resolveru", t.j. sieťovej službe, ktorá túto požiadavku predá mennému serveru svojej domény. Tento potom sám zistí adresu a túto vráti resolveru a ten príslušnému programu. Zistenie adresy sa vykoná tak, že meno sa rozloží na domény a najprv sa menný server opýta hlavného menného servera (root servera), ktorý menový server zodpovedá za príslušnú top-level doménu. Potom menný server dá priamo otázku zistenému mennému serveru, ktorý zodpovedá za jeho subdoménu. Toto sa prípadne opakuje pre ďalšie subdomény. Posledný menný server odpovie už konkrétnu hľadanú adresu počítača. Menný server, ktorý sa pýtal, si potom túto informáciu uloží na určitý čas do svojej "cache" pamäte, aby pri opakovanej požiadavke nemusel znovu vykonať celú procedúru.
Obr. 56 Proces iteratívneho rozlíšenia doménového mena na IP adresu
Pri procese rekurzívneho rozlišovania mien sa nedotazuje stále resolver klienta, ale jednotlivé menné servery komunikujú medzi sebou a resolveru odpovedá koreňový menný server s konečnou adresou a nie len s adresou menného servera príslušnej top-level domény.
Pre zabezpečenie spoľahlivosti sú menné servery zálohované (tzv. sekundárnym serverom), to značí, že pri výpadku jedného, ho zastane druhý.
V rámci svojej domény nie je nutné používať úplné doménové meno, stačí použiť jednoduché meno počítača.
Nakoľko priradenie adresy menu počítača sa vykonáva za pomoci komunikácie s tzv. root menovým serverom (v skutočnosti je ich viac - sú tiež zálohované), pokiaľ tento nie je komunikačne dostupný, menná služba prestáva fungovať. V takom prípade je možné používať iba číselné IP-adresy (samozrejme že pôjdu iba počítače, ku ktorým nie je prerušené spojenie).
Vieme už, čo je IP adresa, doménové meno počítača a portové číslo sieťovej služby. Nevieme zatiaľ označiť používateľa v sieti. Na tento účel existuje tzv. komunikačná adresa. Komunikačnú adresu je možné vytvoriť z loginu používateľa a doménového mena, poprípade IP adresy počítača. Napríklad používateľ s loginom t.j. prihlasovacím menom "sobota" bude mať na počítači "hron.fei.tuke.sk" nasledovnú adresu:
sobota@hron.fei.tuke.sk
Pokiaľ používateľ pracuje na počítači v tej istej doméne, nie je potrebné túto uvádzať:
sobota@hron
Pokiaľ používateľ pracuje na tom istom počítači, stačí uviesť iba jeho login.
sobota
Pre špecifickú komunikáciu prostredníctvom služby elektronickej pošty sa používajú tzv. e-mail adresy. Tie na rozdiel od komunikačných adries nemusia mať odraz v logine a mene počítača, ktorý prevádzkuje príslušný poštový server. Na účel zistenia zodpovedného počítača s nainštalovanou službou elektronickej pošty sa využíva menná služba DNS. Po názve schránky (identifikuje používateľa) nasleduje doménové meno. Napríklad pre vyššie uvedený príklad by to mohlo byť:
sobota@tuke.sk
Z takejto adresy je známe iba reálne meno používateľa a doména tuke.sk, čo vlastne označuje Technickú univerzitu v Košiciach. Pre zistenie adresy počítača obhospodarujúceho schránky v doméne tuke.sk ide najskôr dotaz do mennej služby a až následne po získaní odpovede je k dispozícii jednoznačná identifikácia počítača, kam sa má poslať správa. Takáto e-mail adresa je "bezpečnejšia" pred snahami o prienik do operačného systému. Má to aj ďalšiu výhodu. Ak dôjde k zmene poštového servera (napr. z hron.fei.tuke.sk na posta.tuke.sk), nie je nutné meniť adresy jednotlivých schránok, ktoré ostávajú v forme menoschránky@tuke.sk. Takže používateľ nemusí pri takejto zmene meniť vizitky a ani pracne oznamovať túto zmenu svojmu okoliu.
Elektronická pošta (e-mail) umožňuje posielanie správ cez počítačové siete. Správy môžu byť zadávané z klávesnice, ako aj súbory uložené na disku. Väčšina mainframe počítačov, minipočítačov a počítačových sietí má e-mail systém. Niektoré e-mail systémy sú obmedzené na jeden počítač alebo sieť, ale mnohé majú brány do iných počítačových systémov umožňujúce používateľom posielať elektronickú poštu kamkoľvek na svete. Firmy, ktoré sú plne vybavené výpočtovou technikou, využívajú elektronickú poštu veľmi silne kvôli jej rýchlosti, flexibilite a spoľahlivosti. Elektronická pošta bola jednou z prvých služieb implementovaných na Internete.
Väčšina e-mail systémov zahŕňa bežný textový editor na písanie správ, ale mnohé umožňujú editovať správy v ľubovoľnom používateľom zvolenom editore. Správy sa posielajú príjemcovi na jeho adresu elektronickej pošty, ktorá je najčastejšie totožná s jeho úplnou adresou (xx@yy.zz). Je možné poslať tú istú správu naraz viacerým používateľom (tzv. carbon copy (cc)) alebo všetkým v určitej sieti (tzv. broadcast). Doručenie elektronickej pošty zvyčajne trvá iba pár sekúnd až minút. Preto je to aj veľmi efektívna cesta na oslovenie celej skupiny používateľov, lebo správa alebo dokument môže byť poslaný každému v skupine naraz a veľmi rýchlo.
Prijaté správy sú uložené v elektronickej poštovej schránke, pokým si ich príjemca nevyzdvihne. Aby bol používateľ informovaný, či má novú poštu, musí periodicky kontrolovať svoju e-mail schránku. Mnohé systémy však upozorňujú používateľa na príchod novej pošty. Po prečítaní pošty je možné poštu uložiť, posunúť ju ďalšiemu používateľovi (tzv. forward) alebo zmazať. Ak je k dispozícii tlačiareň, je možné správu vytlačiť na papier.
Princípe elektronická pošta slúži na komunikáciu medzi používateľmi Internetu. V rámci príkazov UNIXu sem patrí príkaz mail. Tento príkaz bol podrobnejšie popísaný skôr. Teraz si najskôr uvedieme procesný model fungovania služby elektronickej pošty v Internete a základné protokoly, ktoré sa na službe podieľajú. Na záver si uvedieme jeden zo spôsobov práce s elektronickou poštou v prostredí OS Unix a to pomocou programu pine. Okrem toho v súčasnosti sa hojne používajú prepracované a používateľsky veľmi príjemné poštové programy na napr. Microsoft Outlook alebo Netscape Messenger.
Procesný model fungovania služby je typu klient-server a zahŕňa v sebe 4 komunikačných partnerov. Klientmi sú odosielateľ a prijímateľ posielanej správy, ktorí používajú niektorý z programov pre prácu s elektronickou poštou. Stranu servera zastupujú programy serverov elektronickej pošty, ktoré majú na starosti schránky odosielateľa a prijímateľa. Situáciu znázorňuje nasledujúci obrázok:
Obr. 57 Procesný model pre službu elektronickej pošty
Pre komunikáciu medzi jednotlivými stranami sa v službe elektronickej pošty používajú nasledujúce protokoly:
Pôvodná verzia protokolu rodiny TCP/IP pre službu elektronickej pošty SMTP je definovaná dvojicou dokumentov RFC 821 a 822. Každá správa elektronickej pošty sa skladá z dvoch častí – hlavičky obsahujúcej adresy a administratívne údaje a tela, ktoré obsahuje samotnú správu. Údaje v hlavičke majú presný formát definovaný v RFC 822. Formát tela správy je pomerne voľný. Hlavička musí byť oddelená od tela aspoň jedným prázdnym riadkom.
Najdôležitejšie polia hlavičky sú nasledovné:
From: e-mailová adresa odosielateľa, poprípade aj jeho meno,
To: e-mailová adresa prijímateľa, poprípade aj jeho meno,
Reply-To: adresa, na ktorú má prijímateľ poslať prípadnú odpoveď,
Subject: stručný popis obsahu správy,
Date: dátum odoslania správy vrátane údaja o časovom posune vzhľadom
k svetovému času,
Organization: organizácia, ktorá vlastní počítač, z ktorého bola správa odoslaná,
Message-ID: poštovým softvérom automaticky generovaný reťazec identifikátora správy,
Received: každý poštový server na ceste medzi odosielateľom a prijímateľom
(vrátane), ktorý sa danou správou zaoberal, pripojí pod týmto poľom
svoje služobné údaje,
Return-Receipt-To: ak hlavička obsahuje toto pole, pošle sa po úspešnom doručení do
schránky adresáta potvrdenie na uvedenú adresu.
Pôvodný dokument RFC 821 obsahoval iba rámcové smernice pre formát tela poštovej správy: znaková sada bola obmedzená na sedembitový ASCII kód a počet znakov na riadok na 1000. Iné znakové sady resp. rôzne binárne súbory museli byť prenášané prostredníctvom externého kódovania do vyhovujúceho tvaru (napr. v prostredí Unixu sa na to používali programy uuencode/uudecode).
Systémovým riešením bola až špecifikácia tzv. rozšírení – Multipurpose Internet Mail Extensions (MIME) definovaná dokumentmi RFC 1521 a 1522. Tieto zavádzajú nové hlavičkové polia, z ktorých najdôležitejšie sú:
Content-Type: identifikuje obsah správy v tvare typ/subtyp (viď Tab. 5),
Content-Transfer-Encoding: identifikuje akým algoritmom bol obsah správy
spracovaný do podoby vyhovujúcej RFC 821 (napr. 7-bit,
8-bit, binary, quoted-printable, base64).
Typ |
Subtyp |
Popis |
Text |
Plain |
Neformátovaný text |
HTML |
Text obsahujúci HTML príkazy |
|
XML |
Text obsahujúci XML príkazy |
|
Image |
GIF |
Obrázok vo formáte GIF |
JPEG |
Obrázok vo formáte JPEG |
|
Audio |
Basic |
Audio, 8-bit PCM vzorkované na 8000 Hz |
Tone |
Špecificky počuteľný zvuk |
|
Video |
MPEG |
Video v MPEG formáte |
Pointer |
Reprezentácia prezentačného zariadenia |
|
Application |
Octet-stream |
Neprerušená bytová postupnosť |
Postscript |
Tlačiteľný dokument v postscripte |
|
|
Tlačiteľný dokument v PDF |
|
Multipart |
Mixed |
Nezávislé časti v špecifikovanom poradí |
Parallel |
Časti musia byť zobrazené súčasne |
Tab. 5 MIME – príklady možných typov a subtypov
Príkladmi programov realizujúcich prácu poštového servera v prostredí Unixu sú sendmail a postfix.
Pre prístup používateľa k správam v schránke, ktorú spravuje poštový server sa využívajú už spomenuté protokoly POP a IMAP. Procesný model fungovanie pre prístup k schránke pomocou protokolu POP je znázornený na nasledujúcom obrázku.
Obr. 58 Procesný model pre prístup k schránke protokolom POP
Nevýhodu protokolu POP pri správe schránky z viacerých počítačov odstraňuje komplexnejší protokol IMAP, ktorý okrem prístupu ku schránke poskytuje prostriedky aj na jej štruktúrované udržiavanie, čo v konečnom dôsledku umožňuje konzistentný prístup z viacerých počítačov (napr. pri cestách, z domu, z práce, ...). Podporuje prácu v troch prístupových režimoch:
- offline – podobný fungovaniu prístupu u protokolu POP,
- online – prístup, správa a narábanie s poštou na serveri, kde správy aj ostávajú,
- disconnected – po pripojení sa klienta sa vytvorí kópia vybratých správ a spojenie sa preruší, klient pracuje s kópiami správ, po ich spracovaní sa znovu pripojí a prebehne resynchronizácia so stavom uloženým na serveri.
Niektoré z výhod protokolu IMAP oproti protokolu POP:
- umožňuje prácu so vzdialenými priečinkami/zložkami (foldrami),
- podpora hierarchických vzdialených priečinkov,
- selektívne sťahovanie jednotlivých MIME častí správ,
- štandardizované stavové príznaky (seen, answered, draft...),
- určenie štruktúry správy bez jej stiahnutia.
Rozhranie klienta POP resp. IMAP sa nachádza vo väčšine dostupných grafických klientských programoch, akými sú napr. MS Outlook Express, Netscape Messenger alebo Mozilla Thunderbird.
V prostredí operačného systému Unix sú ešte stále obľúbené textové verzie klientských programov elektronickej pošty. Jedným z nich je aj program PINE, ktorému sa budeme v tejto kapitole venovať. Oproti skôr popisovanému programu mail, umožňuje program pine pohodlnú interaktívnu správu elektronickej pošty pomocou menu v pomerne komfortnom celoobrazovkovom režime.
Z hľadiska základného ovládania, ak vám program pine po zadaní určitej požiadavky položí nejakú otázku, môžete na ňu odpovedať buď Y (áno), N (nie) alebo Ctrl-C (zrušenie, stornovanie operácie). V popise bude použitý pojem zložka, v anglickom originály je použitý termín folder.
Spustenie a ukončenie pine
Program pine, slúžiaci najmä na čítanie elektronickej pošty sa spúšťa príkazom pine a stlačením klávesu Enter.
v pine
Po spustení sa zobrazí nasledujúca obrazovka.
Obr. 59 Úvodná obrazovka programu pine.
Ak chcete program pine ukončiť stlačte v hlavnom menu Q (QUIT) alebo vyberte v hlavnom menu voľbu Q (QUIT). Potom potvrďte Y (yes).
Hlavné menu programu pine
Hlavné menu (Main menu) sa zobrazí po spustení a jeho vzhľad vidíte na predchádzajúcom obrázku. Jednotlivé položky hlavného menu môžete vybrať buď stlačením príslušného klávesu alebo výberom pomocou kurzorových šípiek a potvrdením Enter. Ak sa chcete vrátiť do hlavného menu z podmenu stlačte kláves M.
Vytvorenie správy
Stlačte kláves C a dostanete sa do prostredia Vytvárania správy (Compose Message). Najprv je potrebné vyplniť nasledujúce položky (pohyb kurzorovými šípkami):
To: - do tohto políčka napíšte e-mailovú adresu adresáta, a potom stlačte Enter.
Cc: - sem napíšte adresu človeka, ktorému chcete poslať kópiu správy; inak rovno stlačte Enter. Pokiaľ chcete, môžete v predchádzajúcich prípadoch napísať do jednotlivých položiek aj viac adries, oddelených čiarkou.
Attchmnt: - toto pole sa používa v prípade, že chcete do správy vložiť určitý súbor (v tom prípade napíšte jeho názov); stlačte Enter
Subject: - sem napíšete názov posielanej správy (napr. Otázka pre Mira) a stlačte Enter. Toto políčko by nemalo zostať nevyplnené.
Message Text: - samotný text správy.
Poslanie správy
Po napísaní správy stlačte Ctrl-X. Program sa vás opýta, či chcete správu odoslať. Pokiaľ odpoviete áno, správa je odoslaná a jej kópie sa uložia do zložky sent-mail.
Neodoslanie správy
Pokiaľ si vaše rozhodnutie, že chcete správu poslať, rozmyslíte, je možné ju zrušiť pomocou stlačenia Ctrl-C. Stlačenie Ctrl-O naproti tomu rozpísanú správu uloží a vy ju môžete neskoršie dokončiť pomocou voľby C hlavného menu.
Zoznam správ
Pine uchováva došlé správy v zložke INBOX. Tam zostávajú do tej doby, pokým ich zmažete alebo presuniete do inej zložky.
Čítanie došlej pošty
Do zoznamu došlých správ sa dostanete tak, že v hlavnom menu stlačíte I. Vyberaná správa je zvýraznená. Správy bývajú uvedené písmenom, a to nasledovne:
N - nový
+ - správa prišla priamo vám, nešlo o kópiu, alebo hromadne rozosielanú správu
A - na správu je už odpovedané pomocou príkazu Reply
D - správa je prichystaná na vymazanie
K textu správy sa dostanete tak, že si ju pomocou šípiek označíte a stlačíte Enter. Mimo bežného posúvania textu pomocou šípiek môžete použiť aj tieto klávesy:
P - presunúť sa na predchádzajúcu správu
N - presunúť sa na nasledujúcu správu
I - návrat do zoznamu
Odpoveď na správu
Na správu, ktorú si práve prezeráte, je možné odpovedať pomocou príkazu R (Reply). Program sa vás opýta, či chcete do odpovedi vložiť pôvodný text. Vyberiete áno (Yes) alebo nie (No) a napíšete odpoveď. Pomocou Ctrl-X odošlete.
Zložky
Prichádzajúce správy sa ukladajú do zložky INBOX. Tieto správy je možné si roztriediť do viacerých rôznych zložiek podľa obsahu, odosielateľa a pod. Automaticky pine vytvára tri zložky - INBOX, saved-messages, sent-mail. Nie je dobré mať príliš preplnený INBOX, lepšie je poštu po prečítaní presúvať do iných zložiek alebo mazať.
Pohyb medzi zložkami
Keď spustíte pine a v hlavnom menu zvolíte I (Folder index), objavíte sa v zložke INBOX. Keď ale stlačíte L (Folder list), program vám ponúkne zoznam zložiek: INBOX, saved-messages, sent-mail. Medzi nimi sa pohybujete pomocou šípiek.
Vymazanie zložky
Vo Folder list si vyberiete danú zložku. Stlačíte D (delete) a pine sa vás opýta, či ju naozaj chcete zmazať. Vyberiete áno (Yes) alebo nie (No).
Premiestnenie správy do inej zložky
Keď správu premiestňujete, máte dve možnosti:
· uložiť ju do saved-messages
· vytvoriť si pre ňu vlastnú zložku
Premiestnenie správy do saved-messages
Na obrazovke Folder index šípkou vyberte správu, ktorú chcete premiestniť a stlačte S (save). Program sa vás opýta, či ju chcete uložiť do zložky saved-messages a vy stlačte Enter.
Premiestnenie správy do inej zložky
Postupujte rovnako ako v predchádzajúcom prípade, ale keď sa objaví SAVE to folder ... [Saved-messages] napíšte meno novej zložky a stlačte Enter. Pokiaľ zložka neexistuje, Pine sa ešte opýta, či ju má vytvoriť.
Preposlanie (forwarding) správ
Správu, ktorá vám prišla, môžete tiež preposlať niekomu ďalšiemu (forwardovať). Na obrazovke Folder index vyberieme šípkou správu, ktorú chceme preposlať a použijeme príkaz F (forward). Program sa vás opýta na rovnaké údaje, ako pri vytváraní novej správy: To:, Cc:,... . K preposlanej správe môžeme pripísať aj vlastný komentár.
Mazanie správ
Vo Folder index vybranú správu označíme klávesom D (delete). Správa sa zmaže, akonáhle opustíme pine.
Použitie adresnej knižky (Adress book)
Niekedy je obtiažne si určitú adresu zapamätať a preto si ju môžete uložiť do adresára (adresnej knižky) a označiť vhodným názvom (alias-om). Do poľa To: potom stačí napísať len alias a program si adresu automaticky doplní. Do adresára sa dostanete tak, že v hlavnom menu stlačíte A (Address Book) a potom @ (add).
Ak chcete poslať správu niekomu zo zoznamu v adresári, vyberiete ho pomocou šípiek a stlačíte C (Compose). Dostanete sa do procesu už skôr popísaného vytvárania správy, len s tým rozdielom, že položka TO: …. Je už vyplnená zvoleným menom.
Nastavenie konfigurácie (Setup)
Setup sa používa na nastavovanie parametrov programu a jeho konfiguráciu. Môžete si tu aj zmeniť prihlasovacie heslo (password) na prihlásenie.
G Pokiaľ používate pine z emulátora terminálu (napr. PC) podľa možnosti nepoužívajte diakritiku. Adresát by správu potom nemusel byť schopný zrozumitelne prečítať.
Ďalšia služba počítačovej siete je obojsmerný prenos súborov medzi počítačmi. Protokol rodiny TCP/IP, ktorým sa tento prenos uskutočňuje je File Tranfer Protocol (FTP) a jeho špecifikácia sa nachádza v dokumente RFC 859. Potom, čo si najskôr uvedieme procesný model tejto služby sa budeme venovať základným príkazom, ktorými používateľ interaktívne riadi prenos súborov. Pri prenose súborov je vhodné použiť archivačné a kompresné programy na zjednodušenie a zrýchlenie prenosu po sieti. Samozrejme dochádza k tým aj k menšej záťaži siete.
Obr. 60 Procesný model služby FTP
Procesný model služby FTP je opäť typu klient-server, pričom po nadviazaní spojenia medzi klientom a serverom sa používajú dve TCP spojenia. Jedno je riadiace pre prenos príkazov a odpovedí služby FTP, druhé je dátové, ktorým sa realizuje samotný prenos súborov.
Základný príkaz na prenos súborov je príkaz ftp, ktorý má tvar
v ftp [vzdialený_počítač]
Príkaz umožňuje používateľovi na jednom počítači získať súbor z druhého počítača alebo poslať vlastný súbor na druhý počítač. Ochrana je zabezpečená vyžiadaním mena používateľa a hesla na druhom počítači. Po zadaní príkazu sa prejde do príkazového režimu, ktorý je indikovaný výzvou
ftp>
Pokiaľ sa pri zadávaní príkazu zadá vzdialený_počítač, vykoná sa na začiatku aj otvorenie komunikácie s daným počítačom. Otvorenie komunikácie je spojené s vyžiadaním mena a hesla používateľa na vzdialenom počítači. Ftp pozná nasledovné interné príkazy:
? [prík] vypíše pomoc na obrazovku.
! vyvolá shell na lokálnom počítači
! prík vykoná príkaz na lokálnom počítači
quit ukončenie práce v ftp
open vzd._počítač [port] otvorí komunikáciu so vzdialeným počítačom. Automaticky sa vyžiada login a heslo k prístupu na vzdialenom počítači (je to možné vypnúť)
user meno_používateľa prihlásenie sa na vzdialený počítač, vykonáva sa automaticky po príkaze open
close uzatvorenie komunikácie so vzdialeným počítačom
ascii nastaví textový prenos súborov (implic.)
binary nastaví binárny prenos súborov
hash nastaví vypisovanie znaku # po každom prenose 1024 byte
prompt zapne-vypne potvrdzovanie prenosu súborov pri príkazoch mget a mput (impl. zapnuté)
pwd vypíše meno pracovného katalógu na vzdialenom počítači
cd vzd._katalóg zmena pracovného katalógu na vzdialenom počítači
lcd zmena pracovného katalógu na lokálnom počítači
dir vzd._katalóg [lok._súb.] vypísanie obsahu katalógu na vzdialenom počítači, prípadne presmerovanie výpisu do lokálneho súboru
ls vzd._katalóg [lok._súbor] ako dir
mkdir vzd._katalóg vytvorí katalóg na vzdialenom počítači
rmdir vzd._katalóg zmaže katalóg na vzdialenom počítači
get vzd._súbor [lok._súbor] kopíruje súbor zo vzdialeného počítača na lokálny
put lok._súbor [vzd._súbor] kopíruje súbor z lokálneho počítača na vzdialený
mget vzd._súbor kopíruje súbory zo vzdialeného počítača na lokálny, je možné použiť znaky * a ?
mput lok._súbory kopíruje súbory z lokálneho počítača na vzdialený, je možné použiť znaky * a ?
mdelete vzd._súbory zmaže súbory na vzdialenom počítači, je možné použiť znaky * a ?
Počas prenosu súboru je možné prerušiť prenos stlačením kombinácie kláves Ctrl-C. Vysielanie je prerušené okamžite, prijímanie až po zaregistrovaní prerušenia na vzdialenom počítači. Na určitých počítačoch je vytvorený tzv. anonymný ftp server. Pri prihlasovaní sa na takýto ftp server je možné zadať miesto mena používateľa meno anonymous alebo ftp. Ako heslo sa potom zadáva buď znova anonymous alebo ftp alebo vlastná e-mail adresa, podľa výzvy ftp servera. Po prihlásení sa sprístupni časť disku vzdialeného počítača, kde bývajú uložené voľne šíriteľné súbory s programami, informáciami a pod. FTP protokol je protokol aplikačnej vrstvy.
Prenos súborov je možné uskutočniť aj pomocou pošty. K počítačovej sieti Internet sú pripojené aj iné siete, ktoré nemusia poskytovať služby ftp, no prenos pošty zväčša každá poskytuje. Samotný prenos pošty je štandardne zabezpečený pomocou sedem bitového kódu, to znamená, že prenos binárnych súborov priamo nie je možný. V súčasnej dobe síce sa už vytvárajú poštové servery, ktoré sú osem bitové a tieto problémy nie sú. V súčasnosti je možné spolu okrem textu elektronickej pošty poslať aj obrázok, zvuk či animáciu. Takisto pribudla požiadavka posielania bezpečných správ t.j. šifrovaných (PGP) a elektronicky podpísaných. Správy podobného formátu nepoužíva len elektronická pošta ale aj napr. protokol HTTP. Tým pádom sa používajú rôzne normy, ktoré rozširujú pôvodný štandard. Tieto rozšírenia sa označujú MIME (Multipurpose Internet Mail Extension).
Preto, pokiaľ by ste však mali problémy preniesť poštou binárny súbor, musíte tento zakódovať na sedem bitový kód. Využívame na to príkazy:
uuencode - na zakódovanie správy
uudecode - na dekódovanie správy
v uuencode [súbor] vzdialený_súbor
Príkaz uuencode zakóduje binárny súbor (8 bitový) do súboru, ktorý je zložený iba z ASCII znakov (7 bitový), ktorý je už možné prenášať pomocou pošty. Príkaz číta štandardný vstup, pokiaľ nie je zadaný vstupný súbor. Parameter vzdialený_súbor určuje meno súboru na vzdialenom systéme po dekódovaní. Výsledok zakódovania príkaz posiela na štandardný výstup. Zakódovanie súboru zapríčiní expanziu súboru o 35% (3 byte na 4 a kontrolnú informáciu).
Príklad:
Používateľ chce poslať binárny súbor abc poštou na vzdialený systém hornad používateľovi mrkva s tým, že na vzdialenom systéme bude mať súbor názov xyz:
uuencode abc xyz | mail mrkva@hornad.fei.tuke.sk
Vzdialený používateľ potom po príjme pošty a jej uložení do súboru, musí zakódovaný súbor vrátiť do pôvodnej podoby pomocou príkazu:
uudecode [súbor]
Príkaz dekóduje zadaný súbor, poprípade štandardný vstup. Výstupom príkazu je súbor, ktorého meno bolo zadané pri kódovaní príkazom uuencode. Toto meno je možné zmeniť v zakódovanom súbore pomocou editora, pretože toto nie je kódované.
Prístup k súborom na inom počítači je možné riešiť aj inými, ďalšími spôsobmi, ktoré sú zväčša obmenami predchádzajúcich príkazov. Jeden odlišný a celkom zaujímavý spôsob prístupu k súborom na inom počítači je systém NFS (networking file system - sieťový súborový systém). NFS umožňuje vytvoriť tzv. sieťové disky. Jeho bližšiemu popisu sa však venovať nebudeme.
Interaktívnu prácu so vzdialeným terminálom umožňuje z rodiny aplikačných protokolov Internetu protokol Telnet definovaný dokumentom RFC 854. Základné použitie služby Telnet už bolo uvedené v kapitole unixovských sieťových príkazov - 5.7. Na tomto mieste ešte doplníme základný procesný model a stručnú charakteristiku tejto služby.
Obr. 61 Procesný model služby Telnet
Služba Telnet sa okrem základného použitia na prístup ku vzdialenému systému využíva aj ako jednoduché rozhranie k informačným službám – katalógy, databázy... Zároveň je možné využiť túto službu pri procese ladenia textových protokolov (napr. HTTP, SMTP, NNTP, POP...). Nevýhodou služby Telnet je posielanie nešifrovaných údajov (vrátane mena a hesla pri prihlasovaní) a neefektívne využitie TCP spojenia (1 stlačenie klávesy spôsobí poslanie 3 TCP segmentov).
Sieťová služba irc (Internet Relay Chat) je systém pre konverzáciu v reálnom čase. Na rozdiel od príkazu talk umožňuje komunikáciu po viacerých "kanáloch" a viacerých používateľov naraz v jednom kanály (irc je činnosťou podobný občianskym rádiostaniciam). Pokiaľ jeden používateľ niečo napíše, prenesie sa jeho správa všetkým ostatným používateľom, ktorí sú práve na tom istom kanály (zobrazí sa im aj od koho prišla správa). Na jednotlivých kanáloch sú diskusie z rôznych oblastí (technických, humanitných, politických atď.), zväčša v angličtine, ale existujú aj kanály, kde sa hovorí v nejakom inom jazyku. Mnoho používateľov prepadne "čaru" tejto sieťovej služby pre možnosť si "poklebetiť" s druhými, nadviazať kontakty a podobne.
Po spustení klienta služby irc sa klient snaží napojiť na implicitný server. Klient prevezme login používateľa ako prezývku, pod ktorou bude známy, pokiaľ nemá nastavenú systémovú premennú IRCNICK. Premenná IRCNAME nahradí reťazec z full-name (reálne meno). Pokiaľ práve na serveri pracuje iný používateľ s rovnakou prezývkou, server si vyžiada novú prezývku. Po prihlásení server žiada od používateľa príkazy (v spodnom riadku). Všetky príkazy začínajú znakom "/". Bez tohoto znaku sa napísaný riadok považuje za text, ktorý sa má poslať do aktuálneho kanálu. Každá prijatá správa má hlavičku, od koho prichádza. Prvý príkaz, ktorý je potrebné zadať, je prihlásenie sa do nejakého kanálu. Kanály s rovnakým menom na rôznych serveroch sú navzájom prepojené a správy sú medzi servermi vymieňané (nemusí to platiť, ak sa prerušilo spojenie medzi servermi).
Niektoré najdôležitejšie príkazy:
/join kanál prihlásenie sa na príslušný kanál (napr. #CS) meno kanálu vždy začína znakom "#". Pokiaľ je zadané meno neexistujúceho kanálu, vytvorí sa.
/leave kanál opustenie kanálu
/server vypíše zoznam pre klienta známych irc serverov
/server číslo zmena servera podľa zoznamu z príkazu /server
/help vypíše pomoc
/nick prezýv. zmena prezývky
/who kanál zobrazí, kto je na zadanom kanáli prihlásený
/names zobrazí zoznam aktívnych kanálov na serveri a prezývky práve prihlásených používateľov. Používateľ so znakom "" je administrátor kanálu.
/whois prez. zistí podrobnejšie informácie o používateľovi
/msg prezývka správa zaslatie správy iba určenému používateľovi
/msg kanál text zaslatie správy do príslušného kanála
/quit ukončenie činnosti v programe IRC
V súčasnosti najmä v prostredí MS Windows sú programy tohto typu pekne spracované a rozhovor s priateľmi je zábavný. Okrem IRC je veľmi populárny ICQ prípadne iné typy priameho napr. akustického (internetová telefónia) aj video-spojenia (internetové videokonferencie).
Obr. 62 Ukážka aplikácie jednoduchého video-spojenia
Jednou zo zaujímavých služieb Internetu je služba GOPHER. Služba GOPHER je sieťová služba typu klient-server s distribuovanou databázou rôznych informácií na viacerých serveroch, ku ktorým majú klienti prístup, môžu ich čítať, kopírovať, vyhľadávať. Dnes sa používa už veľmi riedko, pretože ju vytlačilo používanie WWW, avšak si ju uvedieme. Syntax je nasledovná:
v gopher [-s] [-t titulok] [-p katalóg] [server [port]]
S tejto službe je štruktúra informácií podobná stromovej štruktúre katalógom, preto aj ovládanie klienta je veľmi jednoduché (systém do seba vnorených menu-ponúk). Rozloženie informácií po rôznych serveroch je používateľovi čiastočne skryté. V GOPHER-i obdobne ako pomocou WWW je možné nájsť informácie vo forme textového súboru, binárneho súboru, katalógu (podmenu), obrazu alebo zvuku, telefónneho zoznamu (poprípade iného štruktúrovaného súboru). GOPHER umožňuje vyhľadávanie niektorých informácií, poprípade môže byť bránou do iných informačných systémov (WWW,WAIS,ARCHIE,WHOIS) alebo sieťových služieb TELNET a FTP. Každý typ položky je označený na konci názvu. Napríklad "<?>" znamená vyhľadávanie v texte, "/" znamená podmenu, "<Picture>" znamená obraz a "." textový súbor. Aj keď jednotlivé informácie sú na rôznych serveroch, klientovi sa javí, ako keby boli všetky informácie uložené v jednom jednoduchom menu systéme. Základné ovládanie GOPHER-a je nasledovné:
šípka hore pohyb kurzorom hore
šípka dole pohyb kurzorom dole
j pohyb kurzorom hore
k pohyb kurzorom dole
Enter potvrdenie voľby príslušnej položky
u návrat do predchádzajúceho menu
= poskytne systémové informácie o položke
a zapíše položku do zápisníka
A zapíše aktuálne menu do zápisníka
d zmaže položku zo zápisníka
Ctrl-G prerušenie činnosti - uzavretie niektorých okienok pri spracovaní, poprípade chybe
q ukončenie práce v programe
Ctrl-C ukončenie práce v programe
Spracovanie položky je dané podľa typu položky:
menu zobrazí sa obsah tohoto menu.
textový súbor pomocou zobrazovacieho programu (danému pri preklade, často page alebo more) je možné prezerať obsah súboru. Po ukončení prezerania je možné klávesom:
m - poslať súbor ako poštu
p - súbor vytlačiť na lokálnej tlačiarni
s - súbor uložiť do súboru
D - súbor preniesť cez terminálovú linku
Enter - vrátiť sa do menu
Pri použití lokálneho prezeracieho programu, tieto klávesy sú aktívne už pri prezeraní.
binárny súbor súbor sa prenesie do súboru na lokálnom počítači.
zvukový súbor ak to počítač dovoľuje, prehrá sa zvuk.
obrazový súb. ak to dovoľuje počítač, zobrazí sa obrázok.
telef. zoznam po zadaní vyhľadávacieho reťazca sa prehľadáva databáza.
vyhľadávanie po zadaní vyhľadávacieho reťazca (ktorý môže obsahovať logické operátory or, and, not a iné) sa vyhľadáva textový dokument, ktorý obsahuje príslušný text. Výsledkom je menu, ktoré obsahuje zoznam vyhovujúcich dokumentov.
relácia telnet Pomocou služby telnet sa prejde do iného informačného systému. Zobrazí sa okno, v ktorom je používateľ upozornený, na aký počítač bude prihlásený a aký login má použiť
Systém World Wide Web (WWW, v preklade celosvetová pavučina) je systém Internet serverov, ktoré poskytujú špeciálne formátované dokumenty v jazyku HTML (HyperText Markup Language, súbory s príponou .HTM resp. .HTML). Tento jazyk podporuje odkazy ma iné dokumenty, ako aj grafické, zvukové a video súbory. To znamená, že môžete prechádzať z jedného dokumentu na iný jednoduchým klikaním myšou na aktívne miesta (hyperlinky).
WWW tiež podporuje formuláre, pomocou ktorých je možné zaslať dáta späť na WWW server. Server tieto dáta spracuje a na ich základe môže dynamicky generovať stránky s požadovanými informáciami alebo vyplniť informácie v databáze.
Existuje niekoľko aplikácií nazývaných Web prehliadače (WWW browser), ktoré uľahčujú prístup na World Wide Web. Dva najpopulárnejšie sú Mozilla FireFox a MS Internet Explorer (popísaný ďalej). Okrem sa používajú ďalšie prehliadače ako Opera, Netscape Navigator či na platforme Linux-u Galeon alebo Conqueror.
Obr. 63 Ukážky obrazoviek prehliadačov Opera a Netscape Navigátora
Web prehliadače sa zvyčajne dajú rozšíriť o ďalšie vlastnosti pomocou tzv. plugg_in-ov. Tie sú osobitnými programami komunikujúcimi s používateľom priamo v okne Web prehliadača. Sú pomocou nich implementované napríklad prehrávače video súborov, prehliadače cudzích formátov (PostScript, PDF, DOC, ...) ale aj komplexnejšie aplikácie ako napríklad VRML prehliadač pre zobrazovanie scén virtuálnej reality. Takisto na prezeranie správ v diskusných skupinách pôvodne slúžili špecializované programy, dnes sú však čítače diskusných skupín aj súčasťou bežných prehliadačov (napríklad Netscape Communicatora).
Obr. 64 Ukážka obrazovky Mozilla FireFox
S úspechom služby WWW sa presadila aj koncepcia jednotný a jednoznačný popis Internetových zdrojov. Ide o Uniform Resource Locator, skrátene URL. Na identifikovanie určitej informácie v Internete je potrebné vedieť: o aký druh informácie ide, na ktorom počítači sa informácia nachádza a kde je na tomto počítači informácia uložená. URL kombinuje tieto tri prvky do usporiadanej podoby a tak umožňuje jednotný popis informačného zdroja. Koncepciu URL je najlepšie vysvetliť na príklade. Zoberme si ho napríklad z predchádzajúceho obrázku (editovací rámec Netsite): http://www.kosice.sk/indexsk.htm
Prvá časť http: označuje druh prenosového protokolu. V tomto prípade je to HTTP (HyperText Transfer Protocol) prenosový protokol pre World Wide Web. Tento protokol je na úrovni aplikačnej vrstvy. Okrem tohto protokolu sa dnes pre zabezpečenie vyššej bezpečnosti používa aj protokol HTTPS – zabezpečený HTTP. Druhá časť ://www.kosice.sk definuje meno servera, na ktorom sa dokument nachádza a teda je potrebné ho osloviť. Tretia časť /indexsk.htm popisuje cestu k príslušnému súboru. Táto časť začína lomítkom a aj jednotlivé časti popisu cesty sa oddeľujú lomítkami (analogicky popisu cesty v operačnom). Tento príklad sa teda odkazuje na súbor indexsk.htm v hlavnom adresári servera www.kosice.sk a na súbor je potrebné sa obrátiť prostredníctvom http prenosového protokolu WWW. Pri použití dnešných WWW prehliadačov postačuje aj napísanie len mena servera (napr. www.kosice.sk) a http protokol sa použije automaticky a takisto sa hľadá implicitný inicializačný súbor index.htm, ak sa tam nenachádza alebo chceme presne špecifikovaný súbor, musí sa napísať aj celá tretia časť URL.
Celkovú organizáciu služby WWW z procesného hľadiska zachytáva nasledujúci obrázok:
Obr. 65 Procesný model služby www
WWW prezerač Microsoft Internet Explorer umožní prezerať a tým preskúmavať čarovný svet Internetu najmä na báze služby WWW. Internet Explorer je v prvom rade WWW prezerač (WWW browser. Ak ste si Internet Explorer nainštalovali (resp. bol automatický nainštalovaný) a máte prístup do siete Internet, potom ho môžete spustiť a prezerať si WWW stránky po celom svete.
Do editovacieho rámca Adresa vložíte URL (pozri predchádzajúcu kapitolu) a stlačíte kláves Enter. V stavovom riadku okna Internet Explorer-a sa vypisujú informácie o stave načítavania želaného dokumentu (niekedy to môže aj dosť dlho trvať podľa priepustnosti Internetu). Po ukončení prenosu sa v stavovom riadku vypíše Hotovo (Done) a želaná WWW stránka sa zobrazí v hlavnom zobrazovacom okne Internet Explorer-a. Potom už len klikaním na hypertextové odkazy (nad hypertextovým odkazom sa kurzor zo šípky zmení na ukazujúci ruku) môžeme prechádzať „pavučinou“ WWW stránok a zbierať a zbierať a zbierať informácie. Na nasledujúcom obrázku vidíme príklad stavu Internet Explorer-a, keď sa ako URL zadalo www.kosice.sk.
Obr. 66 Ukážka obrazovky Microsoft Internet Explorer-a
Podobne ako Prieskumník (Windows Explorer) aj Internet Explorer disponuje panelom nástrojov, ktoré sa nachádzajú hneď pod hlavným menu. Niektoré nástroje sú podobné nástrojom Prieskumník-a (Windows Explorer), iné sú špecifické pre Internet Explorer. Pomocou tlačidiel Dopredu (Forward) a Dozadu (Back), môžete postupne prechádzať jednotlivými WWW-stránkami z hľadiska histórie ako ste ich prezerali. Ak sa Vám stane, že komunikácia so serverom pri načítavaní stránky je priveľmi dlhá a už nechcete viac čakať a ukončiť komunikáciu, stlačte tlačidlo Stop. Stlačením tlačidla Domov (Home) sa okamžite vrátite na Vašu domovskú stránku. Ak chcete niečo vyhľadať stlačte tlačidlo Hľadať (Search). Ak máte množinu pre Vás zaujímavých a často navštevovaných adries, máte možnosť si ich uložiť a potom zrýchlene k nim pristupovať pomocou tlačidla Obľúbené položky (Favorites). Ak si chcete obsah načítanej WWW stránky vytlačiť, stlačte tlačidlo Tlačiť (Print). Okrem iného môžete aj riadiť (t.j. posielať a prijímať) elektronickú poštu (e-mail).
Na komunikáciu medzi klientom a webovým serverom sa využíva protokol HTTP. Tento aplikačný protokol internetovského sieťového modelu je vo svojej momentálne najpoužívanejšej verzii 1.1 definovaný dokumentom RFC 2616. Tak ako to naznačuje procesný model služby WWW je HTTP vo svojej podstate jednoduchý protokol typu klient-server: klient posiela správu so žiadosťou serveru a čaká na správu s odpoveďou.
HTTP protokol využíva spojenie TCP. Vždy, keď klient posiela žiadosť o dokument, vytvorí sa TCP spojenie so serverom na poslanie tejto žiadosti. To isté spojenie sa využíva na prenos odpovede servera. V HTTP protokole verzie 1.1 je spojenie perzistentné, čo znamená, že jedno TCP spojenie môže byť využité klientom pre viac komunikačných výmen žiadosť-odpoveď.
Protokol HTTP bol navrhnutý ako všeobecný klient-server protokol pre účely obojsmerného prenosu dokumentov. Typ operácie, ktorú klient požaduje je uvedený v správe obsahujúcej žiadosť posielanú strane servera. Najpoužívanejšie operácie, ktoré môže klient požadovať sú uvedené v nasledujúcej tabuľke.
Operácia |
Popis |
Head |
Žiadosť o vrátenie hlavičky dokumentu |
Get |
Žiadosť o vrátenie dokumentu klientovi |
Put |
Žiadosť o uloženie dokumentu |
Post |
Poskytuje údaje, ktoré sa majú pridať k dokumentu (kolekcii) |
Delete |
Žiadosť o zmazanie dokumentu |
Tab. 6 Operácie podporované protokolom HTTP
Protokol HTTP predpokladá, že s každým dokumentom môžu byť spojené meta-údaje (napr. čas poslednej zmeny dokumentu), ktoré sú uložené v samostatných hlavičkách posielaných spolu so žiadosťami resp. odpoveďami. Operácia head sa využíva vtedy, keď klient nechce samotný dokument, ale len meta-údaje s ním spojené.
Najdôležitejšou operáciou je get, ktorá sa využíva na samotné získanie dokumentu od servera. HTTP zároveň umožňuje definovať aj isté podmienky (týkajúce sa meta-údajov), za ktorých sa prenos dokumentu zrealizuje alebo nie.
Opačnou operáciou ku get je operácia put, pomocou ktorej môže klient žiadať uloženie dokumentu na strane servera pod definovaným menom, ktoré je prenášané spolu so žiadosťou o uloženie. Táto operácia je však umožnená len autorizovaným klientom.
Operácia post je podobná operácii put s tým rozdielom, že touto operáciou klient požaduje, aby boli posielané údaje pridané k dokumentu alebo kolekcii dokumentov (a nie uložené pod menom, ktoré je posielané spolu s údajmi ako je to u operácie put).
Nakoniec operáciou delete môžu klienti žiadať zmazanie dokumentu na strane servera. Samozrejme takéto žiadosti budú akceptované opäť iba v prípade, že sa jedná o autorizovaných klientov.
Všetky žiadosti o vykonanie týchto operácií a následné odpovede sú posielané prostredníctvom správ. Protokol HTTP pozná iba dva typy správ - žiadosť (request) a odpoveď (response). Žiadosť pozostáva z troch častí (viď nasledujúci obrázok):
Obr. 67 Štruktúra správy obsahujúcej žiadosť protokolu HTTP
Správa odpovede je štrukturovaná analogicky ku žiadosti s tým rozdielom, že povinnou prvou časťou je stavový riadok pozostávajúci z verzie HTTP protokolu, trojciferného kódu odpovede a krátkej textovej frázy vysvetľujúcej stavový kód (napr. kód 200 znamená, že požadovaný dokument bol nájdený a vysvetľujúca fráza je „OK.“).
Obr. 68 Štruktúra správy obsahujúcej odpoveď protokolu HTTP
Obidva typy správ (žiadosti i odpovede) HTTP protokolu môžu obsahovať prídavné hlavičky, z ktorých niektoré vo forme názvu, identifikácie odosielateľa a stručného popisu obsahu uvádza nasledujúca tabuľka.
Hlavička |
Zdroj |
Obsah |
Accept |
klient |
Typ dokumentu, ktorý vie klient spracovať |
Accept-Charset |
klient |
Znaková sada akceptovateľná klientom |
Accept-Encoding |
klient |
Kódovanie akceptovateľné klientom |
Accept-Language |
klient |
Jazyk podporovaný klientom |
Authorization |
klient |
Zoznam oprávnení klienta |
WWW-Authenticate |
server |
Bezpečnostná výzva, na ktorú musí klient odpovedať |
Date |
obidve |
Dátum a čas poslania správy |
ETag |
server |
Tagy asociované s vráteným dokumentom |
Expires |
server |
Čas, ako dlho ostane odpoveď platná |
From |
klient |
E-mail adresa klienta |
Host |
klient |
TCP adresa servera dokumentu |
If-Match |
klient |
Tagy, ktoré má mať dokument |
If-None-Match |
klient |
Tagy, ktoré nemá mať dokument |
If-Modified-Since |
klient |
Dokument má byť vrátený iba ak bol modifikovaný od špecifikovaného času |
If-Unmodified-Since |
klient |
Dokument má byť vrátený iba ak nebol modifikovaný od špecifikovaného času |
Last-Modified |
server |
Čas poslednej zmeny vráteného dokumentu |
Location |
server |
Adresa kam má klient presmerovať svoju žiadosť |
Referer |
klient |
Odkazuje na posledný žiadaný dokument |
Upgrade |
obidve |
Aplikačný protokol na ktorý chce odosielateľ prejsť |
Warning |
obidve |
Informácia o stave údajov v správe |
Tab. 7 Niektoré hlavičky správ protokolu HTTP
Ako už bolo v predchádzajúcej kapitole povedané základom WWW služby sú WWW stránky, ktoré sú definované pomocou hypertextového jazyka HTML. Prvá verzia HTML vznikla v roku 1989 v stredisku CERN v Ženeve. Od toho roku jazyk HTML prešiel dlhým vývojom. O štandardizáciu jazyka HTML sa snaží WWW konzorcium, ale mnohé firmy (napr. Netscape či Microsoft) zapracovávajú do jazyka rôzne rozšírenia. Potom nie všetky prehliadače vedia takéto rozšírenia spracovať a neznáme príkazy v rámci jazyka sú ignorované. Pre tvorbu HTML dokumentov existuje celý rad podporných prostriedkov a napr. koniec-koncov aj Microsoft Word 2000 používa tento jazyk ako jeden zo štandardných formátov pre uloženie svojich dokumentov. Podporné prostriedky pre tvorbu WWW stránok môžeme rozdeliť do dvoch typov:
· špeciálne textové editory umožňujúce okrem písania a editovania textu vkladať celé HTML príkazy.
· interaktívne grafické editory, ktoré umožňujú priame vkladanie jednotlivých komponentov a tým vizuálnu kompozíciu stránky (napr. FrontPage firmy Microsoft).
Jazyk HTML rozoznáva dva druhy príkazov:
· Riadiace: tieto majú tvar <príkaz> prípadne príkaz s parametrami, ktoré sú uvedené tiež medzi znakmi <>. Pri písaní príkazov sa nerozlišujú veľké a malé písmená.
· Formátovacie: tieto sú párované a majú tvar <príkaz> pre počiatok a </príkaz> pre koniec.
Celý dokument sa začína príkazom <HTML> a končí párovým príkazom </HTML>. Dokument sa delí na dve časti: hlavičku a telo dokumentu. Hlavička je ohraničená párovým príkazom <HEAD> a telo párovým príkazom <BODY>. Hlavička dokumentu obyčajne obsahuje názov dokumentu, ktorý je definovaný párovým príkazom <TITLE>. Názov dokumentu sa spravidla zobrazí v priehliadači v záhlaví okna a takisto identifikuje dokument v zozname adries pre hypertextové skoky. Hlavným formátovacím prvkom v rámci tela je odstavec. Pri zobrazovaní HTML dokumentu sa totiž medzery a nové riadky, ktoré idú za sebou, zobrazia ako jediná medzera. Preto, ak je potrebné členiť text na odstavce, potom sa tieto uzavrú do párového príkazu <P>.V otváracom príkaze môžu byť uvedené aj parametre predpisujúce zarovnanie okrajov odstavca. Ako už bolo uvedené, znak nového riadku je prehliadačom ignorovaný. Ak je potrebné v rámci odstavca zalomiť riadok zadá sa príkaz <BR>. Keď je potrebné zabániť zalomeniu textu na konci riadku, potom príslušný riadok sa uvedie v tele párového príkazu <NOBR>. Na vloženie tzv. pevnej medzery sa vloží špeciálny znak  . Na nasledujúcich riadkoch je zobrazený jednoduchý HTML dokument.
<HTML>
<HEAD>
<TITLE>Pokusny dokument</TITLE>
</HEAD>
<BODY>
<P>Toto je prvy odstavec pokusneho dokumentu v HTML. Za prvym odstavcom bude nasledovat druhy odstavec.</P>
<P>Toto je druhy odstavec pokusneho dokumentu v HTML. Za tymto odstavcom bude nasledovat uz koniec dokumentu.</P>
</BODY>
</HTML>
Ak je potrebné do HTML dokumentu vložiť úsek textu so zachovaním jeho pôvodného formátovania s akceptovaním viac medzier po sebe, tabelátorov resp. nových riadkov potom pre tento účel sa použije párový príkaz <PRE>. Potom v takomto texte je všetko skôr uvedené akceptované, ale použije sa neproporcionálne písmo. Ak je potrebné vložit do textu komentár, ktorý sa nemá zobraziť, použije sa nasledujúca konštrukcia:
<! ... tu sa uvedie komentár ...>
Prvým formátovacím prvkom HTML dokumentu je schopnosť vystrediť určitý text. Na to sa použije párový príkaz <CENTER>. Ďalej je možné text v rámci odstavca zarovnať vpravo, na stred alebo vzhľadom na obidva okraje. To je možné dosiahnuť pomocou parametra ALIGN v párovom príkaze <P>. Parameter ALIGN môže potom nadobúdať hodnoty right (vpravo), center (na stred) a justify (na obidva okraje). Príklad je na nasledujúcom riadku:
<P ALIGN="RIGHT">Tento dokument je zarovnany vpravo</P>
Text je možné v rámci HTML dokumentu zvýrazniť, čo sa častokrát týka najmä rôznych nadpisov a pod. Nadpis sa definuje párovým príkazom <H#>. Znak # je parameter a je to celé číslo z intervalu 1-6. Potom <H1> predstavuje najvýraznejšie zvýraznenie. Ak je potrebné meniť typ písma ako tučné (bold) alebo kurzívu (italics) HTML nám to umožní. Vo všetkých prípadoch sa použijú príslušné párové príkazy. Niektoré základné z nich sú uvedené v nasledujúcej tabuľke:
Typ písma |
Príkaz HTML |
Ukážka |
Tučné (bold) |
<B>text</B> |
text |
Kurzíva (italics) |
<I>text</I> |
text |
Prešktnutie |
<S>text</S> |
|
Horný index |
<SUP>text</SUP> |
texttext |
Dolný index |
<SUB>text</SUB> |
texttext |
Veľké písmo |
<BIG>text</BIG> |
text |
Malé písmo |
<SMALL>text</SMALL> |
text |
Neproporcionálne písmo |
<TT>text</TT> |
text |
Blikajúce písmo |
<BLINK>text</BLINK> |
text |
Tab. 8 Základné typy písma v dokumente HTML
Veľkosť písma je možné meniť párovým príkazom <FONT SIZE=#>. Znak # je číslo, ktoré reprezentuje veľkosť písma. Keď je potrebné meniť veľkosť fontu nezávisle na použitom prehliadači, použijú sa relatívne rozmery t.j. číslu # sa predradí plus alebo mínus. V nasledujúcom si uvedieme jednoduchý príklad.
<HTML>
<HEAD>
<TITLE>Pokusny dokument</TITLE>
</HEAD>
<BODY>
<B><FONT SIZE=4><P ALIGN="CENTER">Pokusny dokument</P></B>
<I><P>Tento text je zarovnany vlavo a je pisany kurzivou.</P></I>
<B><FONT SIZE=2><P ALIGN="CENTER">Tento text je centrovany a je pisany tucnym pismom</P></B>
<STRIKE><FONT SIZE=2><P ALIGN="RIGHT">Tento text je zarovnany vpravo a navyse presktnuty</P></STRIKE>
</BODY>
</HTML>
Takýto dokument v prehliadači Microsoft Internet Explorer bude vyzerať nasledovne:
Obr. 69 Ukážka pokusného dokumentu HTML s typmi a zarovnaním písma
Jazyk HTML bol pôvodne navrhnutý pre popis štruktúry WWW stránok. Preto do neho neboli implementované technológie zaoberajúce sa formou výsledného zobrazenia dokumentu. Postupom času sa však používanie Internetu rozšírilo z vedeckých centier a univerzít, a grafická podoba stránok začala mať väčšiu váhu. HTML bolo obohatené o príkazy a atribúty sledujúce tento trend (príkaz <FONT> apod.), avšak toto riešenie sa ukázalo ako nedostatočné a nesystematické. V současnej dobe je propagováné oddelenie obsahu stránky od definície formy jeho zobrazovania. Doporučovanou technológiou pre úpravu grafického vzhľadu sú kaskádové štýly CSS (Cascading Style Sheets).
Umožňujú pre každý príkaz nastaviť mnoho atribútov ovplyvňujúcich jeho vizuálnu podobu. Niektoré z nich sú podobné štandardným atribútom príkazov jazyka HTML (napr. ALIGN pre definovanie spôsobu zarovnania), iné sú však dostupné len použitím štýlu (napr. BORDER-STYLE pre definíciu štýlu ohraničujúcej čiary pri tabuľkách). Naviac je možné definovať niekoľko rôzne pomenovaných variantov jedného príkazu a pri zápise stránky si vybrať, který z nich chceme použiť.
Zápis definície štýlu sa vykonáva buď priamo do zdrojového textu stránky ako obsah príkazu <STYLE>, alebo do zvláštneho súboru, ktorý sa príkazom <LINK> pripojí ku stránke.
<LINK REL="stylesheet" TYPE="text/css" HREF="styly.css">
Druhý uvedený spôsob je používaný častejšie, pretože umožní využiť jednu definíciu štýlu pre niekoľko dokumentov. Tak je možné jednoducho dosiahnúť jednotného designu celej WWW prezentácie.
Naučiť sa používať CSS nie je príliš zložité. Niektoré programy pre návrh HTML stránok majú integrované nástroje pre tvorbu štýlu, takže si používateľ nemusí pamätať všetky vlastnosti príkazov, len si vyberie zo zoznamu. Príklad obsahu súboru so štýlmi je uvedený v nasledovnom:
P { background-color : Green; }
H1 { font-size : xx-large; font-family : sans-serif; color : Blue; text-align : center; background-color : Black; }
A { font-size : x-small; }
A:Hover { font-size : small; }
BODY { background-color : Fuchsia; }
.menu { font-family : sans-serif; color : Blue; font-style : normal; font-weight : normal; text-decoration : none; font-size : medium; } |
.nadpis { font-family : sans-serif; font-weight : bold; color : Black; font-size : medium; }
.malynadpis { font-family : sans-serif; font-weight : bold; color : Black; font-size : small; } |
V HTML dokumente môžem vytvoriť priamo tri typy zoznamov položiek. Každá položka je odsadená od ľavého okraja každá ďalšia položka začína na novom riadku. Jednotlivé riadky zoznamu sú označené podľa typu zoznamu napr. pomlčkou, krúžkom, číslom a pod. Podľa toho teda môžeme rozlišovať nasledujúce typy zoznamov:
· nečíslovaný zoznam (označenie znakom napr. pomlčka, krúžok a pod. Takýto zoznam vyzerá podobne ako táto časť textu)
· číslovaný zoznam (označenie poradovým číslom položky)
· hlavičkový zoznam (označenie hlavičkou t.j. krátkou charakteristikou položky. Text položky začína v riadku pod hlavičkou a je odsadený)
Zoznamy môžu byť vnárané do seba.
Nečíslovaný zoznam sa definuje párovým príkazom <UL>. Každá položka sa uvádza príkazom <LI>, za ktorým nasleduje text položky. Hodnotou parametra TYPE v párovanom príkaze <UL>. Je možné definovať typ označenia položiek napr. TYPE=CIRCLE. V zásade môžu byť použité nasledujúce typy: circle = prázdny krúžok, disc = plný krúžok, square = plný štvorček.
Číslovaný zoznam sa definuje párovým príkazom <OL>. Potom, podobne ako u nečíslovaného zoznamu, každá položka sa uvádza príkazom <LI>, za ktorým nasleduje text položky. Takisto hodnotou parametra TYPE v párovanom príkaze <OL>. Je možné definovať typ označenia položiek napr. TYPE=1. Môžu byť použité nasledujúce typy: 1 = arabské čísla, I = veľké rímske čísla, i = malé rímske čísla, , A = veľké písmená, a = malé rímske čísla. Okrem toho sú tu navyše dva parametre START a VALUE. START definuje od akej hodnoty sa začne číslovať a pomocou parametra VALUE (v príkaze <LI>) je možné meniťaktuálnu hodnotu číslovania položiek.
Hlavičkový zoznam sa definuje párovým <DL>. Každá hlavička položky sa uvádza príkazom <DT>, za ktorým nasleduje text hlavičky položky. Potom nasleduje príkaz <DD>, za ktorým už je samotný text položky. V nasledujúcich riadkoch je ukážka časti HTML textu a vedľa výzor takéhoto zoznamu.
<DL> <DT>LX100 <DD>Ihličková tlačiareň <DT>DJ610 <DD>Trysková tlačiareň <DT>LJ6L <DD>Laserová tlačiareň </DL> |
LX100 Ihličková tlačiareň DJ610 Trysková tlačiareň LJ6L Laserová tlačiareň |
Jazyk HTML je predovšetkým, ako to už z názvu vyplýva, hypertext t.j. môže obsahovať odkazy na iné dokumenty alebo objekty. Typy odkazov môžu byť externé a interné. Externé sú odkazy na iné dokumenty alebo objekty mimo aktuálneho dokumentu. Interný odkaz je odkaz v rámci aktuálneho dokumentu. Ak je potrebné vložiť do HTML dokumentu odkaz, použije sa párový príkaz <A> s nasledujúcou syntaxou:
<A HREF=”adresa”>text odkazu</A>
alebo
<A HREF=”adresa”><IMG SRC=”obrazok”></A>
Adresa, ktorá definuje hodnotu parametra HREF je vlastne odkazom na napr. iný dokument. Text odkazu je úsek textu, ktorý sa vzťahuje na tento iný dokument (pri zobrazení je odlíšený od okolitého textu). Okrem tohto textu môže byť použitý aj obrázok, ako ukazuje druhý príklad syntaxe.
Či bude odkaz externý alebo interný, zavisí od toho, kam odkazuje adresa.
Zadanie interného odkazu sa vykoná tak, že návestie, kam sa má v rámci aktuálneho dokumentu skočiť sa definuje parametrom NAME v párovom príkaze <A>.
<A NAME=”navestie”>Sem sa má skočiť</A>
Potom na mieste, odkiaľ sa má skočiť t.j. na mieste odkazu sa vloží
<A HREF=”#navestie”>text odkazu</A>
Zadanie externého odkazu sa vykoná tak, že hodnota parametra HREF definuje názov iného html-dokumentu alebo iného objektu, na ktorý sa má skočiť.
<A HREF=”druhy_dokument.html”>text odkazu</A>
Adresa je v tvare URL. Objektom môže byť napr. aj súbor na lokálnom disku, e-mailová adresa, ftp servra alebo informácie z Gophera. Príklad začlenenia e-mailovej adresy vidíme na nasledujúcom riadku:
Akceptáciu podmienok prijíma<A HREF=”mailto:sobota@tuke.sk”>predseda</A>výboru.
Z hľadiska použitia grafiky a tým pádom obrázkov HTML jazyk podpuruje vkladanie obrázkov do dokumentu. Obrázky je možné do dokumentu uložiť jednak do pozadia, ako podklad dokumentu alebo do popredia ako klasický obrázok. Okrem toho je možné v dokumente použiť jednoduché vodorovné čiary na názornejšie oddelenie odstavcov textu.
Vloženie čiary do dokumentu sa dosiahne príkazom <HR>.Tento môže mať niekoľko parametrov. Parametrom WIDTH sa udáva dĺžka čiary. Hodnotu je možné zadať v bodoch alebo v percentách. Parameter SIZE definuje šírku čiary v bodoch. Parametrom ALIGN (=right alebo = left) sa definuje zarovnanie čiary vpravo alebo vľavo. Uvedením parametra NOSHADE je možné vypnúť tieňovanie čiary.
Nastavenie farby pozadia príp. vloženie obrázku do pozadia dokumentu sa vykoná definovaním parametrov BGCOLOR a BACKGROUND párového príkazu <BODY>. Hodnota farby pozadia pre parameter BGCOLOR sa zadáva v tvare #RRGGBB, kde RR, GG a BB sú hexadecimálne hodnoty jednotlivých zložiek R (červenej), G (zelenej) a B (modrej). Maximálna hodnota každej zložky je FFh t.j. 255 dekadicky. Potom napr. tyrkysová sa zadá ako #00FFFF. Základné farby sa môžu zadávať aj slovne napr. red, yellow, blue ...
Black = #000000 |
Green = #008000 |
Red = #FF0000 |
Blue = #0000FF |
White = #FFFFFF |
Yellow = #FFFF00 |
Gray = #808080 |
Purple = #800080 |
Silver = #C0C0C0 |
Lime = #00FF00 |
Olive = #808000 |
Maroon = #800000 |
Navy = #000080 |
Aqua = #00FFFF |
Teal = #008080 |
Fuchsia = #FF00FF |
Tab. 9 Tabuľka základných farieb
Pri defnovaní podkladového obrázku sa parameter BACKGROUND naplní názvom súboru s obrázkom. Obrázok môže byť väčšinou vo formáte GIF alebo JPEG. Ak chceme dať do pozadia napr. obrázok pieskovca, zadá sa
<BODY BACKGROUND=”pieskovec.gif”>
Na nasledujúcom obrázku vidíme vľavo originál obrázku a vpravo náš pokusný dokument s týmto obrazkom umiestneným v pozadí.
Obr. 70 Ukážka umiestnenia obrázku do podkladu dokumentu HTML
Ak chceme do dokumentu vložiť obrázok použijeme príkaz <IMG>.Parameter SRC udáva adresu dokumentu resp. zdroja obrázku. Potom výsledok bude nasledovný
... tu bude vložený obrázok<IMG SRC=”obrazok.gif”>a tu pokračuje text ...
Šírku a výšku obrázku môžu definovať parametre WIDTH a HEIGHT. Pre prípad použitia len textového prehiadača HTML dokumentov (napr. LYNX) je výhodné, keď sa definuje alternatívne meno obrázku (parameter ALT), ktoré sa vo forme textu v týchto typoch prehliadačov zobrazí namiesto obrázku. Ak sa použije príkaz na vloženie obrázku, ako bolo uvedené vyššie, potom sa obrázok vloží na dané miesto tak, že spodný okraj obrázku je na tej istej úrovni ako spodný okraj textu pred a za ním. Riadkovanie textu je potom dočasne rozšírené na celú výšku vloženého obrázku. Základné umiestnenie obrázku voči textu definuje parameter ALIGN príkazu <IMG>.Hodnoty parametra ALIGN môžu byť rôzne. V nasledujúcej tabuľke budú uvedené len základné z nich.
Hodnota parametra ALIGN |
Umiestnenie obrázku |
TOP |
Text pred a za obrázkom je na úrovni horného okraja obrázku. |
BOTTOM |
Text pred a za obrázkom je na úrovni dolného okraja obrázku. Implicitná hodnota. Rovnaký efekt ako bez uvedenia parametra ALIGN. |
CENTER |
Text pred a za obrázkom je na úrovni stredu obrázku. |
LEFT |
Obrázok sa zobrazí úplne vľavo a priestor vedľa neho sa vyplní textom bez zmeny riadkovania. |
RIGHT |
Obrázok sa zobrazí úplne vpravo a priestor vedľa neho sa vyplní textom bez zmeny riadkovania. |
Tab. 10 Hodnoty a ich význam parametra ALIGN pre obrázok
Štandardne je text „prilepený“ tesne k obrázku. Na definovanie medzery medzi textom a obrázkom sa použujú parametre HSPACE (medzera vodorovne) a VSPACE (medzera zvslo). Hodnoty parametrov sa udávajú v bodoch. Ak je okolo obrázku požadovaný rámček, je možné použiť parameter BORDER, ktorého hodnota definuje šírku rámčeka. Napríklad
<IMG SRC=”obrazok.gif” ALIGN=”LEFT” BORDER=5>
Teraz si ešte ukážeme jeden príkladový HTML dokument s obrázkami naprv ako vyzerá po zobrazení prehliadačom:
Obr. 71 Príkladová ukážka zložitejšieho HTML dokumentu s obrázkami
A tak vyzerá jej zdrojový tvar:
<HTML>
<HEAD>
<TITLE>Slniečko</TITLE>
</HEAD>
<BODY BACKGROUND="mraky.jpg">
<IMG SRC="slniecko.gif" ALIGN=LEFT>
<IMG SRC="slniecko.gif" ALIGN=RIGHT>
<HR SIZE=6>
<H1><B><FONT SIZE=6><P ALIGN=CENTER>SLNIEČKO</P></H1>
<HR SIZE=6>
<B><FONT FACE="Times New Roman" SIZE=4><P ALIGN="CENTER">Takto vyzerá slniečko<BR>
a skladá sa z týchto častí</P></B>
<FONT SIZE=5>
<TT>
<OL TYPE=1><LI><P ALIGN=LEFT>Modré očičká</P>
<LI><P ALIGN=CENTER>Ružový noštek</P>
<LI><P ALIGN=RIGHT>Červené ústočká</P>
</OL>
</TT>
<HR SIZE=2>
<FONT SIZE=2>
<BLINK>
<A HREF="mesiacik.htm">Ak chceš vidieť ako vyzerá mesiačik klikni sem</A>
</BLINK>
</BODY>
</HTML>
Tabuľka sa do HTML stránky vkladá pomocou párového príkazu <TABLE>. Vnútri tohto párového príkazu potom postupne definujeme a zapisujeme jednotlivé bunky tabuľky. Názov resp. označenie tabuľky sa udáva vo vnútri párového príkazu <TABLE> pomocou párového príkazu <CAPTION>. To, kde bude názov tabuľky uvedený, definuje parameter ALIGN prikazu <CAPTION> (ALIGN=TOP nad tabuľkou, ALIGN=BOTTOM pod tabuľkou). Tabuľka sa definuje najprv po riadkoch a potom po stĺpcoch. Riadok tabuľky je definovaný párovým príkazom <TR>. Jednotlivé bunky v riadku, t.j. vlastne stĺpce, sa definujú párovými príkazmi <TD> alebo <TH>. Párový príkaz <TD> sa používa pre normálnu bunku a príkaz <TH> sa používa pre bunky v hlavičke tabuľky. Bunky hlavičky sa zobrazujú tučným písmom a sú centrované. Zápis jednoduchej tabuľky je nasledovný:
<TABLE>
<CAPTION ALIGN=BOTTOM>Vesmírne telesá</CAPTION>
<TR>
<TH>Teleso</TH>
<TH>Veľkosť</TH>
<TH>Svietivosť</TH>
</TR>
<TR>
<TD>Slniečko</TD>
<TD>veľká</TD>
<TD>350</TD>
</TR>
<TR>
<TD>Mesiačik</TD>
<TD>stredná</TD>
<TD>230</TD>
</TR>
<TR>
<TD>Hviezdička</TD>
<TD>malá</TD>
<TD>150</TD>
</TR>
</TABLE>
Tak bude potom tabuľka takto definovaná vyzerať:
Teleso |
Veľkosť |
Svietivosť |
Slniečko |
veľká |
350 |
Mesiačik |
stredná |
230 |
Hviezdička |
malá |
150 |
Vesmírne telesá |
Obr. 72 Príklad jednoduchej tabuľky v HTML
Zjednodušene je možné tú istú tabuľku zapísať aj nasledovne:
<TABLE>
<CAPTION ALIGN=BOTTOM>Vesmírne telesá</CAPTION>
<TR><TH>Teleso <TH>Veľkosť <TH>Svietivosť
<TR><TD>Slniečko <TD>veľká <TD>3
<TR><TD>Mesiačik <TD>stredná <TD>2
<TR><TD>Hviezdička <TD>malá <TD>1
</TABLE>
Pokiaľ chceme mať v tabuľke mriežku (okraj) oddeľujúcu jednotlivé bunky uvedie sa v príkaze <TABLE> parameter BORDER. Navyše je možné definovať aj hrúbku tohto okraja uvedením jeho veľkosti v bodoch t.j. napr. BORDER=6. Vzdialenosť jednotlivých buniek v tabuľke sa riadi hodnotou parametra CELLSPACING=“X“, kde X predstavuje vzdialenosť buniek v bodoch. Vzdialenosť obsahu bunky od jej okraja je definovaná parametrom CELLPADDING. Definuje sa obdobne predchádzajúcemu atribútu.
V prípade, že je potrebné zlúčiť niekoľko buniek dokopy (napr. spoločný nadpis pre viac stĺpcov alebo riadkov), potom sa v príkaze <TH> alebo <TD> uvedie parameter COLSPAN="X", kde X znamená počet následne zlúčených stĺpcov. V prípade zlučovania riadkov sa použije parameter ROWSPAN=“X“.
Zarovnanie textu bunky sa dosahuje parametrami ALIGN (LEFT, CENTER, RIGHT pre vodorovné zarovnanie) alebo VALIGN (TOP, MIDDLE, BOTTOM pre zvislé zarovnanie). Obsahom bunky môže byť aj obrázok. Umiestnenie resp. zarovnanie celej tabuľky v rámci textu je takisto riadené hodnotou parametra ALIGN ale v príkazu <TABLE>. Veľkosť tabuľky je možné riadiť parametrami WIDTH a HEIGHT v rámci príkazu <TABLE>.
V nasledujúcom uvedieme príklad HTML kódu tabuľky
<HTML>
<HEAD>
<TITLE>Tabuľka vesmírnych telies</TITLE>
</HEAD>
<BODY>
<TABLE BORDER=5 ALIGN=CENTER WIDTH=50% CELLSPACING="8" CELLPADDING="5">
<CAPTION ALIGN=BOTTOM>Vesmírne telesá</CAPTION>
<TR>
<TH>Teleso</TH>
<TH>Tvar</TH>
<TH COLSPAN="2">Veľkosť a svietivosť</TH>
</TR>
<TR>
<TD>Slniečko</TD>
<TD ALIGN=CENTER><IMG SRC="slniecko.gif" WIDTH=30 HEIGHT=30></TD>
<TD>veľká</TD>
<TD>350</TD>
</TR>
<TR>
<TD>Mesiačik</TD>
<TD ALIGN=CENTER><IMG SRC="mesiac.gif" WIDTH=30 HEIGHT=30></TD>
<TD>stredná</TD>
<TD>230</TD>
</TR>
<TR>
<TD>Hviezdička</TD>
<TD ALIGN=CENTER><IMG SRC="hviezda.gif" WIDTH=30 HEIGHT=30></TD>
<TD>malá</TD>
<TD>150</TD>
</TR>
</TABLE>
</BODY>
</HTML>
a takto bude uvedená tabuľka vyzerať:
Obr. 73 Ukážka zobrazenia HTML tabuľky
Technika rámcov umožňuje rozdeliť okno prehliadača na niekoľko častí a v každej časti potom môže byť zobrazená iná stránka. Navyše je možné definovanie odkazu v jednom rámci tak, aby vykonalo načítanie stránky do iného rámca. Týmto spôsobom je možné napríklad umiestniť na stránku napr. navigačnú ponuku. Rámce sú dnes už podporované spravidla väčšinou prehliadačov. Nakoľko je táto problematika obtiažnejšia, bude jej tu venované širšie miesto.
Definovanie rámcov a ich rozloženie na stránke sa vykoná v jednom HTML dokumente. Tento následne bude odkazovať na ďalšie dokumenty, ale už príslušne zobrazené do definovaných rámcov. Dokument resp. stránka obsahujúca definíciu a rozloženie rámcov musí obsahovať klasický párový príkaz <HEAD> a potom samotnú definíciu rozloženia rámcov pomocou párových príkazov <FRAMESET>. Párové príkazy <FRAMESET> môžu byť do seba vnárané. Telo stránky definované párovým príkazom <BODY> nemusí byť uvedené a je zobrazované len v tých prehliadačoch, ktoré rámce nepodporujú. Sem je potom možné umiestniť odkaz napr. na alternatívnu verziu dokumentu, ktorá rámce neobsahuje.
Pri použití príkazu <FRAMESET> sa používajú dva parametre: ROWS (riadky, vodorovne) a COLS (stĺpce, zvisle). Hodnoty týchto parametrov sú zoznamy veľkostí jednotlivých vodorovných alebo zvislých rámcov oddelených čiarkami. Počet položiek v danom zozname určuje počet rámcov, ktoré sa vytvoria. Obvykle sa používa len jeden z parametrov a pokiaľ sa použijú obidva, vytvorí sa vlastne matica rámcov, ktorých počet odpovedá súčinu počtu vodorovných a zvislých častí. Hodnoty jednotlivých prvkov zoznamu môžu byť zadané absolútne v bodoch, percentuálne alebo je možné použiť dvojznak X* (kde X je číslo, ak nie je uvedené je X=1). Potom pri rozdeľovaní voľnej plochy sa najprv priradí priestor rámcom definovaných bodovo alebo percentuálne. Zvyšná plocha sa rozdelí medzi rámce definované *. Plocha je rozdelená proporcionálne podľa čísel uvedených pred príslušnými hviezdičkami.
<FRAMESET ROWS=50%,50%> definícia rámca A definícia rámca B </FRAMESET> |
<FRAMESET COLS=*,40%,*> definícia rámca A definícia rámca B definícia rámca C </FRAMESET> |
<FRAMESET ROWS=50,*> definícia rámca A <FRAMESET COLS=20%,*> definícia rámca B definícia rámca C </FRAMESET> </FRAMESET> |
<FRAMESET ROWS= *,2*,50 COLS=50%,50%> definícia rámcov A-F </FRAMESET> |
Obr. 74 Príklady definovania rámcov
Samotná definícia jednotlivých rámcov sa vykoná pomocou príkazu <FRAME>. Tento príkaz má nasledujúce parametre:
Parameter |
Význam |
SRC |
Definuje stránku, ktorá sa prvotne zobrazí v príslušnom rámci napr. <FRAME SRC=”stranka. html”> |
NORESIZE |
Zabraňuje používateľovi meniť veľkosť rámca |
SCROLLING |
jeho hodnota rozhoduje o tom, či rámec bude doplnený o posúvač (posuvnú lištu) umožňujúci používateľovi pohyb po dlhších stránkach zobrazených v rámci. Implicitne je hodnota = AUTO. Hodnotou YES je posúvač vnútený, hodnotou NO zakázaný. |
FRAMEBORDER |
definuje okolo rámca orámovanie. Ak nechceme orámovanie nastavíme tento atribút na 0. Toto je však nutné vykonať aj pre všetky susedné rámce. |
MARGINWIDTH |
definuje vzdialenosť obsahu rámca vľavo a vpravo od jeho okraja. Udáva sa v bodoch (pixeloch) |
MARGINHEIGHT |
definuje vzdialenosť obsahu rámca hore a dolu od jeho okraja. Udáva sa v bodoch (pixeloch) |
NAME |
definuje meno rámca. Je to dôležitý parameter. Na toto meno je možné sa potom odvolávať napr. v hypertextovom odkaze. Tým sa dosiahne to, že aktivácia odkazu v jednom rámci, vykoná načítanie stránky v inom rámci. Meno rámca môže byť ľubovoľné, malo by však začínať písmenom. |
Tab. 11 Parametre príkazu <FRAME>
Následne je možné meno využiť v jednotlivých stránkach pomocou parametra TARGET. Jemu priradíme meno rámca, v ktorom chceme zobraziť stránku, ktorá je definovaná odkazom alebo inak, vlastne definujeme, do ktorého rámca podľa jeho mena sa má daná stránka zobraziť. Parameter TARGET sa najčastejšie používa s <A REF=....>. Ak sa budeme odkazovať na ten istý rámec v dokumente, je možné definovať v časti záhlavia stránky (<HEAD>) bázický rámec a potom už nie je nutné pri všetkých odkazoch implicitne definovať hodnotu parametra TARGET. Definovanie bázického cieľového rámca sa dosiahne príkazom <BASE> s následne uvedením cieľa TARGET napr. <BASE TARGET=ramecA>. Okrem takto definovaných mien rámcov je možné použiť pre hodnotu TARGET aj niektoré preddefinované možnosti, ako ukazuje nasledujúca tabuľka:
Hodnota |
Význam |
_blank |
Stránka (dokument) sa zobrazí v novom nepomenovanom okne. |
_top |
Stránka (dokument) sa nahrá do celého okna prehliadača a všetky rámce sa zrušia |
_self |
Stránka (dokument) sa zobrazí v rovnakom okne. To je možné s výhodou využiť v prípade, že v dokumente (stránke) je použitý príkaz: <BASE TARGET=meno_rámca> |
_parent |
Stránka (dokument) sa nahrá do rámca alebo okna, ktoré obsahuje najbližší nadradený príkaz <FRAMESET> |
Tab. 12 Niektoré preddefinované hodnoty parametra TARGET
Záverom ešte niečo k prehliadačom, ktoré nepodporujú rámce. Okrem už spomínaného spôsobu (v tele dokumentu) je možné ešte použiť aj párový príkaz <NOFRAMES>. Jeho obsah sa zobrazí len v prehliadačoch, ktoré rámce nepodporujú.
Príklad: Aby bola táto problematika jasnejšie pochopená uvedieme si zložitejší príklad s použitím rámcov. Predpokladajme, že chceme vytvoriť katalóg nebeských telies a to tak, že vľavo bude menu s ponukou jednotlivých telies a v pravej časti sa nám majú tieto telesá zobraziť. Vhodné je využiť rámce. Vytvoríme si teda nasledujúcu štruktúru:
Obr. 75 Príkladová štruktúra HTML dokumentov
Potom jednotlivé zdrojové kódy budú vyzerať nasledovne:
súbor KATALOG.HTM <HTML> <HEAD> <TITLE>Katalóg nebeských telies</TITLE> </HEAD> <FRAMESET COLS="30%,*" > <FRAME SRC="zoznam.htm" NAME="LAVE"> <FRAME SRC="hlavicka.htm" NAME="PRAVE"> </FRAMESET> <NOFRAMES> Tato stranka je pisana pre prehliadac podporujuci ramce </NOFRAMES> </HTML> |
|
súbor ZOZNAM.HTM <HTML> <HEAD> <TITLE>Zoznam nebeských telies</TITLE> </HEAD> <BODY TEXT="#000000" BACKGROUND="mraky.jpg" BGCOLOR="#78ADD5"> <B><P ALIGN="CENTER">Zoznam</P></B> <HR SIZE=3> <UL> <LI><A HREF="slnko.htm" TARGET="PRAVE"><FONT SIZE=4>Slniečko</FONT></A></LI> <LI><A HREF="mesiac.htm" TARGET="PRAVE"><FONT SIZE=4>Mesiačik<BR></FONT></A></LI> <LI><A HREF="hviezda.htm" TARGET="PRAVE"><FONT SIZE=4>Hviezdička<BR></FONT></A></LI> </UL> <CENTER><IMG SRC="mrakico.gif" ALIGN=CENTER WIDTH=60 HEIGHT=50></CENTER> </BODY> </HTML> |
|
súbor HLAVICKA.HTM <HTML> <HEAD> <TITLE>Hlavička</TITLE> </HEAD> <BODY BACKGROUND="mraky.jpg" BGCOLOR="#78ADD5"> <HR SIZE=6> <IMG SRC="mrakico.gif" ALIGN=LEFT > <H6><B><FONT SIZE=8><P ALIGN=CENTER>Nebeské<BR>telesá</P></H6> <HR SIZE=6> <FONT SIZE=2><P ALIGN=CENTER>Prekvapujúco dobrý katalóg nebeských telies</P></FONT> </BODY> </HTML> |
|
súbor SLNKO.HTM <HTML> <HEAD> <TITLE>Slnko</TITLE> </HEAD> <BODY BACKGROUND="mraky.jpg" BGCOLOR="#78ADD5"> <B><FONT SIZE=5><P><HR SIZE=6><CENTER>SLNIEČKO</CENTER><HR SIZE=6></P> </FONT></B> <CENTER><IMG SRC="slniecko.gif" WIDTH=40% HEIGHT=50%></CENTER> </BODY> </HTML> |
|
súbor MESIAC.HTM <HTML> <HEAD> <TITLE>Mesiac</TITLE> </HEAD> <BODY BACKGROUND="mraky.jpg" BGCOLOR="#78ADD5"> <B><FONT SIZE=5><P><HR SIZE=6><CENTER>MESIAČIK</CENTER><HR SIZE=6></P> </FONT></B> <CENTER><IMG SRC="mesiacp.gif" WIDTH=40% HEIGHT=50%></CENTER> </BODY> </HTML> |
|
súbor HVIEZDA.HTM <HTML> <HEAD> <TITLE>Hviezda</TITLE> </HEAD> <BODY BACKGROUND="mraky.jpg" BGCOLOR="#78ADD5"> <B><FONT SIZE=5><P><HR SIZE=6><CENTER>HVIEZDIČKA</CENTER><HR SIZE=6></P> </FONT></B> <CENTER><IMG SRC="hviezda.gif" WIDTH=40% HEIGHT=50%></CENTER> </BODY> </HTML> |
|
Potom celkovo bude stránka v úvode vyzerať tak ako ukazuje nasledujúci obrázok vľavo. Ak napríklad klikneme v prehliadači na položku Hviezdička v zozname v ľavom rámci, potom to bude vyzerať tak, ako je zobrazené na nasledujúcom obrázku vpravo.
Obr. 76 Ukážka zobrazenia stránky s rámcami
Formuláre predstavujú pokročilejšiu technológiu na internetových stránkach. Pomocou formulárov môže používateľ vyplniť určité údaje a tieto sú potom následne odoslané serveru na ďalšie spracovanie. Odpoveďou servera môže byť napr. ďalšia stránka. Typickým a častým prípadom využitia formulárov je vkladanie registračných údajov na serveroch, ktoré poskytujú zdarma kontá elektronickej pošty. Komplexné spracovanie tvorby a vyhodnocovania formulárov je pomerne rozsiahla záležitosť a tak sa v nasledujúcom budeme venovať len základom.
Formuláre môžu obsahovať niekoľko typov objektov. Najpoužívanejšie objekty sú:
· textové pole – objekt obsahujúci jedno- (text) alebo viacriadkové (textarea) textové pole pre zadávanie údajov.
· tlačidlo – výkonný objekt, ktorý má pre svoju následnú činnosť buď preddefinovaný význam (napr. odoslanie alebo resetovanie obsahu formulára), alebo mu môže byť jeho činnosť naprogramovaná.
· zaškrtávacie políčka - predstavujú typ objektov, ktoré umožňujú vybrať z daných možností buď práve jednu (radio) (napr. pri pohlaví), alebo niekoľko (checkbox)(napr. výber koníčkov).
· zoznam (menu) – ponúka voľby, z ktorý môže používateľ vyberať (napr. výber dosiahnutého vzdelania).
·