1 OPERACIJSKI SISTEMI 1.1 Vrste operacijski sistemov Po številu uporabnikov: • enuporabniški (single user) • vecuporabniški (multi user) Po številu hkratnih procesov, ki jih laho izvaja: • enoopravilni (single tasking) • vecopravilni (multi tasking) Po uporabniškem vmesniku • tekstovni • graficni (graphical user interface – GUI) Po podpori navideznega pomnilnika • podpira • ne podpira Primeri operacijskih sistemov: • DOS – enopuporabniški, enoopravilni, s tekstovnim up. vmesnikom • Windows 3.x, 95, 98, ME – enopuporabniški, vecopravilni, GUI • VAX VMS - vecuporabniški, vecopravilni, s tekstovnim up. vmesnikom Vecina današnjih operacijskih sistemov pa je vecuporabniških, vecopravilnih z GUI in podporo za navidezni pomnilnik: • raznie distribucije Linux-ov (RedHat, SuSE, Debian, ...) • Unix-i (HP-UX, IRIX, Solaris, IBM AIX, ... • Windows NT, 2000, 2003, XP, Vista • Mac OS 9, X 1.2 Nivoji operacijskega sistema koncni uporabnik .... Uporabniški programi, aplikacije (application programs) Podsistem Izvršni servisi Jedro OS (kernel) Strojna oprema (hardware) Jedro je osrednji del OS. Upravlja z izvajanjem procesov in izvršnih servisov. Prilagojen je posameznemu tipu procesorja. Naloži se po zagonu racunalnika. Je vez med strojno in programsko opremo. Slika 2: Jedro operacijskega sistem Med izvršne servise spadajo gonilniki, podsistemi za uporavljanje s pomnilnikom, navideznim pomnilnikom, datotecnim sistemom, ... Podsistem zajema vmesnike za aplikacije kot so graficne knjižnice, ipd. 1.3 Jedro operacijskega sistema Jedro (kernel) je osrednji del vecine OS. Predstavlja vez med strojno in programsko opremo. Zagonski nalagalnik (boot loader) po vklopu racunalnika naloži jedro v glavni pomnilnik in ga zažene. Jedro se ne izvaja tipicno, ampak se odziva na zunanje dogodke: . sistemske klice aplikacij (system calls) in . prekinitve (interrupts) s strani strojne opreme. Kadar se noben proces ne izvaja na CPE, izvaja jedro zanko imenovano idle process. Pri nacrtovanju jedra OS so razširjeni trije pristopi: . Monolitno jedro (monolithic kernel) – vsi servisi OS tecejo v eni sami niti. Monolitno jedro ima bogato podporo strojni opremi, zato je relativno obsežen. Posledicno ga je težje nadzorovati. Razvoj in implementacija sta lažji kot pri drugih pristopih. Ker se vsi servisi OS nahajajo v istme pomnilniškem prostoru, je izvajanje ucinkovitejše. . Mikro jedro (microkernel) – v jedru so implementirani le osnovni servisi kot so upravljanje s procesi, upravljanje pomnilnika in medprocesno komuniciranje (inter process comunication – IPC). Ostali servisi tecejo kot programi v uporabniškem nacinu imenovanem strežniki (servers). Lažje ga je nadzorovati kot monolitno jedro, je pa zaradi množice sistemskih klicev delovanje sistema pocasnjejše. . Hibridno jedro (hybrid kernel) je kombinacija zgornjih dveh. Nekateri servisi (npr. omrežni protokoli) so vkljuceni v jedro, nakateri pa kot strežniki (npr. gonilniki). Primeri: Jedro OS Razvijalec Tip jedra Amiga Exec Amiga Commodore International mikro Minix 3 Minix 3 Andrew S. Tanenbaum mikro Mach1 Komponente v DEC OSF1, IBM OS/2, NeXT OS Carnegie Mellon University mikro Linux kernel Linux Linus Torvalds monolitno FreeBSD Kernel FreeBSD, ... The FreeBSD Project monolitno Solaris kernel Solaris OS Sun Microsystems monolitno Windows NT kernel Windows NT, 2000, 2003, XP, Vista Microsoft hibridno XNU (Darwin) Mac OS X, Open Darwin, GNU Darwin Apple Computer hibridno 1.4 Naloge operacijskega sistema 1 Razvoj jedra Mach nadaljujejo na nekaj projektih kot npr. GNU/Hurd. 3 Opercijski sistem nadzoruje delovanje celotnega racunalnika, strojne opreme, programske opreme in omogoca delo koncnemu uporabniku. Negove naloge so: . upravljanje s procesi . upravljanje pomnilnika . nadzor dostop anja do virov (CPE, pomnilnik, V/I enote) . nadzor dostopa do datotek . ugotavljanje napak in nepravilnosti 1.4.1 Upravljanje s procesi Proces je posel, ki se izvaja na racunalniku in za svoje izvajanje potrebuje vire. OS za vsak program, preden se lahko zacne izvajati, kreira svoj proces (ali vec procseov) in mu dodeli zahtevane vire. Procesi lahko: . kreirajo druge procese . unicijo druge procese . odvzamejo vire drugim procesom . spremenijo prioriteto procseov . zbudijo procese . omogocajo komunikacijo med procesi Proces ja lahko v enem od naslednjih petih stanjih: Slika: Stanje procesov Vsak proces je opisan v tabeli procesov (Process control block). Implentacije tabele procesov se razlikuje med razlicnimi OS. Vsebujejo naslednje informacije: . identifikator procesa (procses identifier – PID) . vsebino registrov, ki ji proces uporablja, posebej stanje programskega števca . del pomnilnika rezerviranega za proces . prioriteto . kazalce na starše, otroke . informacije o V/I enotah Ker so v tabeli procesov shranjeni kriticni podatki o procesih, mora biti tabela shranjena na varnem mestu v pomnilniku, kamor durgi uporabniki ne morajo dostopati, npr. na zacetku sklada, ki pripada jedru OS. Razvršcenje procesov Ker v OS hkrati tece vec programov, ki izvajajo vsaj en (ali vec) proces, mora OS zagotavljati, da je vsem procesom na voljo del procesorskega casa, da se ne ustavijo. V odvisnosti od OS in vrste programov je odvisno, kateremu procesu bo namenjenega vec procesorskega casa in se bo zato hitreje izvedel. Slika: Izvajanje procesov v vecopravilnem okolju OS uproabljajo razlicne tipe razvršcenja: . FIFO (First-In First-Out) - “kdor prvi pride prvi melje” . . . p1 p2 p3 p4 p5 pn . po casu izvajanja procesa: • najkrajši posel najprej (Shortest Job First) p1 p2 p3 p4 p5 . . . pn • najdaljši posel najprej (Largest Job First) p1 p2 p3 p4 p5 . . . pn . krožno dodeljevanje procesov (Round Robin) – vsak proces dobi na voljo dolocen cas za izvajanje, po poteku tega casa se prekine in se postavi na konec vrste. . po prioriteti: • prioriteta se doloci staticno • prioriteta se doloci dinamicno Pomanjkljivost prvih treh metod je, da posli s konca cakalne vrste lahko cakajo precej dolgo, preden pridejo na vrsto za izvajanje. Posebej to velja za LJF razvršcanje, kjer se lahko posli z daljšim casom sproti vrinejo pred kratke. Zato se te metode danes manj uporabljajo. FIFO se uporablja npr. pri razvršcanju tiskalniških poslov. Današnji operacijski sistemi ponavadi uporabljajo kombinacijo krožnega dodeljevanja in dodoljevanja s prioriteto. Vsak proces dobi na voljo procesor in vire za vnaprej dolocen cas (npr. za 1 ms) – casovno razvršcanje (time sharing), nato razvršcevalnik (scheduler) doloci, kateri proces bo naslednji na vrsti za izvajanje. Sistemski procesi imajo ponavadi višjo prioriteto kot procesi uporabniških programov. Kratek casovni interval za izvajanje posameznih procesov zagotavlja “pošteno” razporeditev procesorskega casa med procesi in ucinkovito izvajanje. Vendar ce bi pretiravali, bi se OS ukvarjal le z razvršcanjem procesov in sami procesi se ne bi mogli izvajati. 1.4.2 Upravljanje pomnilnika ... 1.4.2.1 Upravljanje pomnilnika v UNIX sistemih Unix-i in drugi OS, ki temeljijo na njih, uporabljajo sofisticiran algoritem za upravljanje s pomnilnikom. Ti sistemi uporabljajo 3 tipe pomnilnikov, katere OS uporablja na 3 nacine in na 3 nacine jih lahko uporabljajo posamezni procesi. Tipi pomnilnika: . glavni pomnilnik (main memory) . datotetcni sistem (file system) . izmenjevalni pomnilnik (swap) Uporaba pomnilnika s strani OS: . jedro (kernel) – lastni pomnilški prostor OS-a, nahaja se vedno v glavnem pomnilniku; . cache – prostor v glavnem pomnilniku, ki se vsebuje podatke o datotecnem sistemu in drugih V/I operacij, ne smemo je zamenjevati s cache-om CPE-ja ali trdega diska, ki nista del glavnega pomnilnika; . navidezni pomnilnik (virtual memory) – celotni naslovljivi pomnilniški prostor na racunalniku, fizicno se lahko razprostira skozi vse (zgornje) tri tipe pomnilnikov. Pomnilniki, kakor jih uporabljajo procesi: . podatki – pomnilniški prostor alociran v casu izvajanja programa (s klicem funkcij malloc, new ali podobne) . sklad (stack) – uporablja se pri izvajanju programov, za staticno deklarirane sprmemenljivke in klicih podprogramov, uproavlja ga OS, . mapiran (mapped) - vsebine datotek naslovljivih v pomnilniškem prostoru procesa. Izmenjevanje Navidezni pomnilnik je razdeljen na strani (pages) velikosti ponavadi 4096 ali 8192 B. Za upravljalca pomnilnika (memory manager) je stran nedeljiv del pomnilnika. Za boljšo zmogljivost sistema bi bilo idealno, ce bi bila stran vedno v glavnem pomnilniku, ko jo CPE potrebuje. Ko se stran ne uporablja, je vseeno ,kje se nahaja. Postopek premika strani iz glavnega pomnilnika in naložitev drugih strani se imenuje izmenjevanje (swapping). Napaka strani (page fault) se pojavi, ko želi CPE dostopati do strani, ki je ni v glavnem pomnilniku. Takrat mora CPE pocakati, da se stran naloži (swapped in). Ker prenos podatkov s trdega diska v glavni pomnilnik zhateva relativno veliko casa, je naloga upravljalca pomnilnka, da se pojavi cim manj napak strani. Kam se stran premakne, kadar se ne uporablja, je odvisno od njene uporabe: . jedro – nikoli ni premaknjen, vedno je naložen v glavnem pomnilniku, . cache – stran se unici, . podatki – premakne se v izmenjevalni prostor, . sklad – premakne se v izmenjevalni prostor, . mapiran – premakne se v originalno datoteko, ce je spremenjen in jo uporablja vec procesov (shared), oz. v izmenjevalni prostor, ce je tipa privat. Izmenjevanje samo po sebi ne upocasnjuje racunalnika. Zmogljivost pade le, ko se pojavi napaki strani in ce je na voljo premalo pomnilnika. Takrat se mora sprostiti toliko strani kot potrebno. Ce so se podatki v neki strani spremenili potem, ko je bila nazadnje zapisana na disk, jo je potrebno pred izmenjavo zapisati in šele nato se lahko ta del pomnilnika sprosti. Mapirane datoteke Ko proces mapira datoteko, se del navideznega pomnilnika organizira kot vsebina pripadaojece datoteke. Do teh podatkov v pomnilniku se dotopa na enak nacin kot do klasicne datoteke, vendar pa je dostop hitrejši. Ce vec procesov uporablja in mapira isto datoteko, si delijo isti del realnega pomnilnika in izmenjevalnih strani. Primarno se mapiranje datotek uporablja za nalaganje izvedljive kode. Ko se program zacne izvajati, se najprej mapirajo njegova izveljiva koda in dinamicne knjižnice v na navo kreiran navidezni pomnilniški prostor. Pri ponovnem klicu programa ali knjižnice pa se uporabijo že pripravljene strani pomnilnika. 2 Datotetcni sistemi Datotetcni sistem (file system) je skupek metod za shranjevanje in organizacijo podatkov v datotekah. Za fizicno shranjevanje podatkov datotetcni sistemi uporablajo pomnilniške naprave kot trdi diski, CD/DVD ipd. Lahko pa omogocajo tudi dotop do podatkov na datotecnih strežnikih (file server) kot odjemalci (clients) preko mrežnih protokolov (network protocol) kot so NFS, SMB ipd. 2.1 Zgradba datecnega sistema Datotecni sistemi vsebujejo naslednje elemente: . blok (block) . ime datoteke (file name) . metapodatke (metadata) . super blok (super block) 2.1.1 Blok DS dostopajo do zaporedja polj (array) fiksne velikosti imenovanem blok ali sektor. Blok je velik 512, 1024, 2048 ali 4096B. V blokih so dejansko zapisani podatki. DS mora omogocati organizacijo teh blokov v datoteke in direktorije. Najmanjša enota podatkov, ki jo DS uporablja za alokacijo datoteke, se imenuje gruca ali grozd (cluster). Gruca je sestavljena iz 2n sektorjev trdega diska (ponavadi od 1 do 64). Slika: Gruce in sektorji na trdim disku 2.1.2 Ime datoteke Sodobni DS so hierarhicno organizirani. Vsaka zakljucena skupina podatkov je shranjena v datoteki s pripadajocim imenom. "Prostor", kjer so datoteke shranjene, se im. direkotriji. Direktorij je posebna oblika datotek. Lokacija datotek se vodi v seznamu kot je alokacijska tabela (file alocation table) v primeru FAT datotecnega sistema ali v inodah (inode) v OS tipa Unix. V nekaterih DS je ime datoteke zapisano v strukturi, pri drugih pa je enostaven niz, imenu pripadajoci metapodatki pa so shranjeni posebej. 2.1.3 Meta podatki O datoteki se poleg imena vodijo tudi drugi podatki: dolžina datotek (število blokov, ki jih zaseda ali število byte-ov), cas kreiranja oz. zadnje spremebe, ID lastnika in skupine, podatki o dovoljenjih ipd. 2.1.4 Super blok V super bloku sje zapisana struktura datotecnega sistema, kakor je zapisana na mediju: velikost in število blokov, število inodov, kazalec na 1. inodo. Zaradi varnosti je na disku zapisanih vec kopij superbloka na tocno dolocenih mestih. 2.2 Vrste datotecnih sistemov OS ponavadi uporabljajo in podpirajo lastne datotecne sisteme (Windows), nekateri pa lahko uporabljajo vec DS (Linux). 2.2.1 Datotecni sistemi v Windows OS 2.2.1.1 FAT FAT je bil razvit za MS DOS. Z nekaterimi izboljšavami (FAT16, VFAT, FAT32) je bil uporabljen v preteklih verzijah MS Windows-ov, vkljucno Windows ME. Ima precej pomanjkljivosti, vendar je zaradi preprostosti zelo razširjen. Podpirajo ga prakticno vsi OS za namizne racunalnike, zato se pogosto uporablja za prenos podatkov med razlicnimi OS, ki se zaganjajo na istem racunalniku (multiboot) in durgih prenosnih medijih (diskete, USB kljuci, spominske kartice, ...). Slabosti: . nezanesljivost – ce se poškoduje FAT tabela, lahko zgubimo vse shranjene podatke na mediju, . ne podpira zašcite datotek in direktorijev, . fragmentacija – ce datoteko zbrišemo in na isto mesto shranimo drugo, se ta fragmentira (razkosa in razmece) po celotnem mediju, Zgradba FAT Zagosnki sektor (Boot sector) Vec reserviranih sectorjev (opcijsko) FAT #1 FAT #2 Korenski direkotrij (Root directory) (samo FAT12 IN FAT16) Podatki (datoteke in direktoriji) 1. Reservirani sektorji se nahajo na zacetku particije. Prvi sektor je zagosnki sektor (boot sector ali partition boot record). Vsebuje podrocje imenovano parameter BIOS-a (BIOS parameter block) in v primeru 1. particije kodo zagonskega nalgalnika . 2. FAT obmocje vsebuje dve kopiji FAT tabele. V FAT tabeli se nahaj seznami datotek in direkotrih, ki so shranjeni na podatkovnem podrocju. Dve kopiji sta zaradi redundance, ceprav se druga redko uporablja, tudi pri orodjih za obnovitev podatkov. 3. Korenski direkotrij je tabela v kateri so shranjeni podatki o datotekah in direktorijih, ki se nahaja na korenskem direktoriju. (npr. C:\). Ker je pri FAT12 in FAT16 korenski direktorij fiksne velikosti, je število datotek in direktorij na korenskem direktoriju omejena. Pri FAT32 se nahaja v podatkovnem podrocju, tako da pri tej verziji ni te omejitve. 4. Podatkovno podrocje obsega vecji del particije. Tu so shranjene datoteke in direktoriji. 2.2.1.2 NTFS NTFS (New Technology File Syem) je nasledil FAT v OS Windows NT od verzije 3.51 naprej. V primerjavi s FAT ima precej izboljšav: . vecja podpora za metapodake, . uporaba naprednejših podatkovnih struktur za povecanje ucunkovitosti in varnosti, . uporaba dnevnika (journal), . podpora alternativnim podatkovnim tokovom (alternate data streams – ADS), . uvedba kvot (quotas), . podpora kompresiji (stiskanje datotek), . podpora enkripciji (šifriranje datotek in direktorijev) itd. Dnevnik Uporaba dnevnika povecuje zanesljivost vodenja zasedenosti particije npr. pri izpadih sistema. Vsaka sprememba datotek se najprej vpiše v dnevnik – posebno datoteko. V dnevnik se vpiše le, kaj se je z datoteko pocelo (npr. da je bila zbrisana) in ne celotni podatki vsebovani v datoteki. Tako se journal ne more uporabljati za obnavljanje podatkov. Primer: Brisanje datoteke poteka v dveh korakih: 1.Izbriše se vnos direktorija. 2.Oznacitev prostora, ki jo je datoteka zasedala, kot prosta. Ce pride do izpada med orakoma 1 in 2, je prostor na disku, ki jo je datoteka zasedala, še vedno oznacena kot zasedena, ceprav vec ne obstaja. Ce pa bi se koraka izvedla v obratnem vrstnem redu, bi sprostili prostor nezbrisane datoteke in po možnosti jo lahko zapolnili z drugimi podatki. Ce je prišlo do izpada, sistem preveri, ce so se vse spremembe navedene v dnevniku tudi dejansko izvedle. Ce ne, opravi potrebne popravke. Alternativni podatkovni tokovi (ADS) ADS omogoca, da ima datoteka vec kot en alternativni podatkovni tok z imenom imedatoteke:imepodatkovnegatoka. Npr. datoteka z imenom tekst.txt ima lahko ADS z imenom tekst.txt:skrit.txt. Velikost ADS ni zaznavna (z ukazom dir ali v raziskovalcu, tudi nekateri programi ne znajo z njim operirati, npr. type), prav teko ne vidimo njegovega imena. Prisotnost ADS se pozna le pri zasedenosti celotne particije. ADS se izbriše, kadar se zbriše originalna datoteka (v našem primeru tekst.txt), zgubimo ga tudi, ce originalno datoteko prenesmo na datotecni sistem, ki ne podpira ADS (npr. na FAT). Ce nismo pozorni, lahko hitro zapolnimo disk, saj lahko datoteki veliki nekaj B lahko prilepimo ADS velik vec GB. V ADS se lahko skrijejo tudi škodljivi programi! 3 HTML HTML (HyperText Markup Language) je oznacevalni jezik za izdelavo spletnih strani. Zacetki HTML segajo v leto 1980. Tim Berners-Lee je tega leta predlagal in definiral ENQUIRE, sistem za izmenjavo dokumentov med raziskovalci na inštitutu CERN. Prvi javno dostopni dokument z opisom je objavil leta 1991. HTML in druge s spletom povazane standarde razvija World Wide Web Consortium (www.w3.org). 3.1 HTTP HTTP (HyperText Transfer Protocol) je protokol, ki je bil prvotno namenjen za prenos spletnih dokumentov po internetu. HTTP je standard med strežniki in odjemalci. Odjemalec (ponavadi brskalnik) pošlje zahtevo (request) na spletni spletni strežnik (npr. GET /index.html HTTP/1.1). Strežnik se odzove (response) na zahtevo z vsebino zahtevane datoteke, sporocilom o napaki ali drugimi informacijami. HTTP uporablja privzeto vrata (port) št. 80. Verzije: . HTTP/0.9 – podpiral je le ukaz GET, . HTTP/1.0 – še vedno pogosto uporabljen, posebno s strani spletnih posrednikov (proxy servers) omogoca en zahtevek z odgovorom na povezavo, . HTTP/1.1 – trenutna razlicica – omogoca trajne povezave (persistent connections imenoven tudi keep-alive) z vec kot enim zahtevkom z odgovorom na povezavo, s cimer se poveca odzivnost in uncinkovitost, . HTTPS – zavarovana razlicica, za kodiranje podatkov uporablja SSL in TSL. Privzeta so vrata št. 443. 3.2 Struktura dokumenta HTML dokument je preprosta tekstovna datoteka, kar pomeni, da ga lahko urejamo z najbolj preprostim urejevalnikmom besedil (npr. beležnico). Dokument vsebuje besedilo, ki ga brskalnik prikaže tj. dejansko vsebino spletne strani in oznake (tags). Oznake so navodila, ki dolocajo kako naj brskalnik prikaže vsebino. HTML dokument je sestavljen iz dveh glavnih delov, glave (head) in telesa (body). Glava dokumenta vsebuje naslov in druge meta podatke, ki opisujejo dokument, v telesu pa je zapisana vsebina dokumenta. Standardna struktura je naslednja:
(paragraph) ali
za prelom
vrstice,
. veckratne oznake
, . neprepoznavne oznake brskalniki lahko prikažejo kot vsebino dokumenta ali pa ne prikažejo nicesar, . znaka oznacujeta komentar, komentar se lahko razteza cez vec vrstic, ne smemo pa gnezditi. 3.4 Oblikovanje besedila 3.4.1 Naslovi in odstavki Naslovi
...
Dele besedila med oznakamin
obravnavajo brskalnikki kot odstavek. Uporaba te oznake je priporocljiva, še posebej v kombinaciji s CSS (Cascading Style Sheets). Nova vrsticabesedilo se v brskalniku prikaže natanko tako kot je bilo natipkano, vkljucno z znakomza skok v naslednjo vrstico in veckratnimi presledki. Uprabljamo jo za izpis izvorne programske kode, tabelaricni prikaz podatkov, ipd. Slabost je, da se blok predoblikovanega besedila prikaže s sistemsko pisavo (npr. Curier). Primer: Model dolžina [m] motor [KM] jadra [m2] Elan 514 15,70 110 146 Grand Soleil 56 16,90 100 190 Hanse 540e 16,08 110 154Model dolžina [m] motor [KM] jadra [m2] Elan 514 15,70 110 146 Grand Soleil 56 16,90 100 190 Hanse 540e 16,08 110 154 3.5 Barve HTML gradnikom (ozadje, besedilo, ...) lahko dolocamo barve na dva nacina: • z imenom barve • s šestnajstiško vrednostjo v 24 bitni RGB paleti Imena 140-ih barv so prevzeta iz X/Windows sistema. Starejši 8-bitni prikazovalniki so bili sposobni prikazati le 10 barv, ostale pa so prilagodili na najbližjo iz 10 barvne palete. Bolj natancno se barve dolocajo v 24 bitni RGB paleti. Naslednja tabela prikazuje 16 osnovnih barv (po abecedi) in njihove vrednosti: Ime barve RGB vrednost Šestnasjtiška vred. Barva aqua 0 – 255 – 255 00FFFF black 0 – 0 – 0 000000 blue 0 – 0 – 255 0000FF fuchsia 255 – 0 – 255 FF00FF gray 128 – 128 – 128 BEBEBE green 0 – 128 – 0 008000 lime 0 – 255 – 0 00FF00 maroon 128 – 0 – 0 800000 navy 0 – 0 – 128 000080 olive 128 – 128 – 0 808000 purple 120 – 0 – 128 800080 red 255 – 0 – 0 FF0000 silver 192 – 192 – 192 C0C0C0 teal 0 – 128 – 128 008080 white 255 – 255 – 255 FFFFFF yellow 255 – 255 – 0 FFFF00 HTML gradnike, katerim lahko dolocamo barve, so prikazani naslednji tabeli. Oznaka Atribut Opis bgcolor=barva barva ozadja spletne strani text=barva barva besedila link=barva barva povezave vlink=barva barva obiskane povezave alink=barva barva aktivne povezave color=barva barva izbranega besedilabgcolor=barva barva ozadja vrstice tabele bgcolor=barva barva ozadja celice tabele bgcolor=barva barva ozadja naslovne vrstice tabele 3.6 Tabele HTML oznake za kreiranje tabel so bil prvotno namenje prikazu tabelaricnih podatkov, vendar je mogoce te oznake uporabiti za organizacijo in oblikovanje cele spletne strani (poravnavo besedila, izdelavo predlog, ...). Glavne oznake za izdelavo tabel so: 16 . – oznaka vsebino tabele, .
(table row) – oznaka vrstice in . (table data) – oznaka celice. V celico lahko vstavimo katerikoli element, ki ga lahko HTML dokument prikaže (besedilo, slike, multimedijske elemente, celo tabele). Primer tabele z dvema vrsticama in tremi stolpci: Atributi tabele Pri tabeli (atributi oznake
1. celica 2. celica 3. celica 4. celica 5. celica 6. celica ) lahko dolocimo: . debelino obrob (border=vred), . širino tabele (width=vred), širino lahko podamo v pikslih ali procentih širine zaslona, . poravnavo tabele (align=left | center | right), . razmik med celicami (cellspacing=vred) in . razmik med oborbo celice in njeno vsebino (cellpadding=vred). Atrubuti vrstice Pri vrsticah (atributi oznake
) lahko dolocimo le: . horizontalno (align=left | center | right) in vertikalno (valign=top | midle | bottom | baseline) poravnavo vsebin celic in . barvo ozadja vseh celic v vrstici (bgcolor=barva). Nastavitve vrstice imajo prednost pred nastavitvami tabel. Atributi celice Pri celicah ( in – table header cell) lahko dolocimo: . horizontalno in vertikalnoi poravnavo vsebine celice, . barvo ozadja celice, . višino (height=vred) in širino celice (width=vred) in . spajanje celic. Spajanje celic Celice lahko spojimo po horizontali (colspan=vred) ali vertikali (rowspan=vred). Primer: 3.7 Grafika in spletne strani Na spletu prevladujejo trije formati bitnih slik (GIF, JPEG in PNG) in vektorska slika v formatu SVG. Za vse je znacilno, da zasedajo relativno malo prostora zaradi kompresije, zato se hitro prenesejo po mreži. GIF (Graphic Interchange format) GIF format lahko prikazuje sliko najvec v 8 bitni barvni paleti, tj. naenkrat lahko prikaže 256 barv. Barve so shranjene v tabeli barv, zato pravimo tudi, da GIF uporablja indeksirane barve (indexed color). Zaradi tega je primerna za prikaz preprostih slik kot so logotipi, risbe, ikone, ilustracije, neprimerna pa je za prikaz fotografij. Dobra lastnost formata GIF je, da podpira prosojnost. V GIF-u lahko izdelamo tudi preproste animacije, saj lahko v eno datoteko shranimo vec slik (okvirjev). JPEG (Joint Fotographic Expert Group) JPEG (pogosto JPG) podpira 24 bitno barvno paleto (true color). Uporablja algoritem za stiskanje podatkov z izgubo. Pri nizki stopnji kompresije se “izgubijo” barve, ki so za cloveško oko neopazni, velikost datoteke pa je kljub temu relativno majhna. Pri vecji stopnji kompresije so izgube seveda vidne. JPEG je zelo razširjen pri digitalni fotografiji. Zaradi izgube podatkov pa je neprimerna v aplikacijah, kjer si izgub ne smemo privošciti (medicina). V primerjavi z GIF se bolje obnese pri fotografijah, slabše pa pri slikah z le nekaj barvami. PNG (Portable Network Graphics) Format PNG so razvilli leta 1995 kot posledica patentiranega algoritma LZW za stiskanje podatkov uporabljenega v GIF-u. PNG uporablja odportokodni algoritem, ki je pvrhu za 5 do 25% bolj ucinkovit od LZW uporabljenega v GIF-u. Ker uporablja algoritem brez izgube, so datoteke fotografij nekoliko vecje kotv JPEG-u. PNG je primeren tako za prikaz fotografij kot tudi prikaz slik v le nekaj barvah. SVG (Scalable Vector Graphics) Pri bitni grafiki je slika sestavljena iz množice pik. Pri vektorski grafiki pa je risba sestavljena iz osnovnih gradnikov kot so crta, pravokotnik, elipsa, poligon, krivulja ipd. Prednost vektorske grafike je, da lahko sliko poljubno povecujemo ali zmanjšamo ne da bi izgubili na kvaliteti. Tudi velikost datoteke se pri tem (bistveno) ne spreminja. Vektorska grafika je primerna za skice, nacrte, diagrame ipd. SVG je odprtokodni standard, ki so gazaceli razvijati pri W3C (World Wide Web Consortium) leta 1999. SVG je XML tekstovna datoteka, kar pomeni, da ga lahko urejamo z urejevalniki besedil. SVG lahko vsebuje tri vrste graficnih elementov, vektorsko grafiko, bitno grafiko in besedilo. Podpira, ga vecina brskalnikov razen MS Internet Explorer-ja, ki potrebuje vticnik (plugin). SVG format podpira tudi veliko risarskih programov (Adobe Ilustrator, CorelDraw, OpenOffice.org Draw itd.). SVG je privzeti format za odprtokodno risarsko orodje Inkscape. 3.7.1 Vkljucevanje slik
Za vkljucevanje slik uporabimo oznako
, z atributom src pa podamo ime (in pot do) slike:
Ce se slika ne nahja na trenutnem direktoriju, moramo navest pod do slike. Pot je lahko: . absolutna, npr.
ali . relativna, npr.
Uporabi absolutnih poti se izogiobajmo, saj se verjetno slika na strežniku ne bo na istem direktoriju kot na racunalniku, kjer stran pripravljamo. 3.7.1.1 Oblivanje besedila Sliko lahko oblivamo z besedilom za oblivanje uporabimo atribut align, ki mu lahko priredimo naslednje vrednosti: . top | middle | bottom – v vseh treh primerih besedilo obliva sliko z desne v eni vrstici, privzeta poravnava je spodaj, . left | right – besdilo obliva sliko z desne oz. leve in v vec vrsticah. Primer:
3.7.1.2 Velikost slik Ne glede na fizicno velikost slik, lahko v HTML dokumentih dolocimo, v kakšni velikosti se bo slika prikazala. Velikost prostora za prikaz dolocimo s številom pikslov po horizontali (width) in vertikali (height):
Atributa za dolocitev velikjosti uporabljajmo le pri vektorskih slikah. Rasterskim pa raje priredimo velikost s kakšnim graficnim programom, sicer lahko dobimo popacene slike oz. zgubimo na kvaliteti. Prav tako je nesmiselno fotografijo v najvecji locljivosti prikazati kot ikono. 3.7.1.3 Alternativno besedilo Ce se slika iz kakršnegakoli razloga ne more naložiti, brskalniki prikažejo ikono v obliki praznega okvira. V takih primerih je prirocno izpisati besedilo (atribut alt), ki opisje manjkajoco sliko:
Alternativno besedilo je koristno navsti, kadar sliko uporabljamo kot povezavo na kako drugo stra. V primeru, da se slika ne prikaže, lahko uporabnik sledi povezavi. 3.7.2 Povezave Za povezave uporabimo oznako (anchor). Besedilo, ki ga obdaj sidro, je obcitljivo na klik. Povezavo lahko ustvarimo do razlicnih ciljev. Cilj navedemo z atributom href=cilj. Cilj povezave je lahko: . lokalna datoteka (pazimo na relaticne in aboslutne poti): Na drugo stran . oddaljena spletna stran: Na stran ŠCP . na del besedila v trenutni datoteki; pred besedilo, kamor se želimo postaviti, postavimo sidro z atributom name: nato pa sidro uporabimo kot cilj: Na besdilo na tej strani . elektronska pošta: Pošlji elektronsko pošto . datoteka na ftp strežniku Pretoci si 3.7.2.1 Slike kot povezave Povezavo lahko ustvarimo tudi preko slike. To storimo tako, da sliko obdamo s sidrom:
![]()