Upravljački programi za mrežnu karticu u operacijskom sustavu Benu
|
|
- Eugene Sparks
- 6 years ago
- Views:
Transcription
1 SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA ZAVRŠNI RAD br Upravljački programi za mrežnu karticu u operacijskom sustavu Benu Antun Kukolja Zagreb, lipanj 2017.
2
3
4 Sadržaj 1. Uvod Mrežna kartica RTL Komponente operacijskog sustava PCI podsloj Sučelje za mrežne uređaje net_dev Jezgrin međuspremnik za mrežne pakete sk_buff Inicijalizacija kartice Slanje Okvira Prihvat Okvira Prikaz rada ostvarena sustava na primjeru Zaključak Literatura Sažetak Summary... 26
5 1. Uvod Stalna povezanost postala je jedan od najvažnijih dijelova javnog i privatnog života ljudi. Za održavanje komunikacije računalnih sustava, a time i ljudi, odgovoran je pretežito internet. Računala se u internetsku mrežu spajaju preko komunikacijskih uređaja koji najčešće dolaze u obliku mrežnih kartica. Te kartice mogu se pojaviti kao diskretni elementi koji se dodaju računalnom sustavu ili češće kao integrirani element računalnog sustava. Uz sklopovlje koje se dodaje računalu proizvođač obično isporučuje i upravljački program koji je zadužen za ispravnu komunikaciju sklopovlja i operacijskog sustava koji upravlja računalom. Kako upravljački program ne ovisi samo o arhitekturi sustava nego i o operacijskom sustavu proizvođači će razviti upravljačke programe samo za najkorištenije operacijske sustave. Oni korisnici koji koriste manje poznate operacijske sustave prisiljeni su upravljački program potražiti od drugih izvora. Oni korisnici koji razvijaju vlastit operacijski sustav primorani su sami ostvariti upravljačke programe za nadogradnje koje dodaju na osnovno sklopovlje računala. Cilj ovog završnog rada je ostvarenje komunikacije dva ili više emuliranih računalnih sustava kojima upravlja operacijski sustav Benu. U tu svrhu potrebno je odabrati prikladnu mrežnu napravu te ostvariti upravljački program za istu. U poglavlju Mrežna kartica RTL8139 objašnjene su osnovne značajke mrežne kartice. Dan je tablični popis registara, i njihovih pomaka, koje koristi ostvareni upravljački program. U poglavlju Komponente operacijskog sustava dan je detaljan opis komponenti koje su dodane operacijskom sustavu u sklopu ovog završnog rada. Osim opisa ponuđeni su razlozi izgradnje proširenja i opisan je načina na koji ona pojednostavljuju razvoj i učinkovitost upravljačkog programa. 1
6 U poglavlju Inicijalizacija kartice detaljno je objašnjen postupak prvog pokretanja kartice. Objašnjeni su svi koraci inicijalizacije te uporabe pojedinih registara kartice na primjerima. U poglavljima Slanje Okvira i Prihvat Okvira dan je detaljan opis mehanizama kojima se kartica koristi za slanje i primanje Ethernet okvira. Uz mehanizme kartice objašnjeni su koraci koje upravljački program poduzima kako bi osigurao pravilan rad mrežne kartice. U poglavlju Prihvat Okvira dana je dodatna argumentacija za ostvarenje jezgrinog međuspremnika za mrežne pakete opisane u drugom poglavlju. Poglavlje Prikaz rada ostvarena sustava na primjeru ukratko objašnjava demonstracijski primjer razvijen u sklopu završnog rada i način povezivanja emuliranih računalnih sustava u virtualnu lokalnu mrežu. 2
7 2. Mrežna kartica RTL8139 Za emuliranje računalnog sustava koristi se emulator QEMU. Potrebno je odabrati mrežnu karticu koju QEMU može emulirati i kojom se što lakše upravlja budući da je operacijski sustav prilično jednostavan. Mrežna kartica koja odgovara opisu, podržana od strane emulatora, jednostavna i dobro dokumentirana je RTL8139 koju proizvodi Realtek Semiconductor Corp baziran u Tajvanu. Kartica se u računalni sustav spaja preko PCI sabirnice i nakon pravilnog podešenja omogućava prijenos podataka putem Ethernet veze (IEEE 802.3u 100Base-T i IEEE 802.3x Full Duplex Flow Control) do susjednog čvora u mreži tj. omogućava slanje i primanje podataka na razini podatkovne poveznice. [1] Dodatne mogućnosti kartice uključuju sučelja za upravljanje potrošnjom energije kao što su Advanced Configuration Power management Interface (ACPI), PCI power management za operacijske sustave koji podržavaju Operating System Directed Power Management (OSPM). [1] Budući da je cilj ovog rada samo ostvariti komunikaciju dva ili više emuliranih računala ta se svojstva zanemaruju. Sama kartica je dobro dokumentirana od strane proizvođača. Dokumentacija je ponuđena u obliku vodiča za programiranje i tehničkog lista (eng. datasheet). Oba dokumenta dostupna su na engleskom jeziku na mrežnom sjedištu proizvođača Iz dokumentacije doznajemo da kartica koristi mehanizme prstenastog međuspremnika (eng. ring buffer) za slanje i primanje Ethernet okvira. Budući da je kartica prilično jednostavna, u usporedbi sa sličnim sklopovskim rješenjima, međuspremnik se ne nalazi na kartici. Upravljački program mora od operacijskog sustava osigurati izravan pristup spremniku kako bi kartica mogla pravilno pisati dolazeće okvire i čitati one koji se trebaju poslati. Spomenuti mehanizmi bit će detaljnije opisani u vlastitim poglavljima. Osim adresnog prostora za postavke PCI uređaja koji ima svaki uređaj koji se spaja na sabirnicu kartica RTL8139 sadrži još i 86 registara [1] kojima se pristupa I/O instrukcijama koje su specifične za arhitekturu računala na koje se 3
8 kartica spaja. Ti registri koriste se za primanje i slanje okvira, postavke izazivanja zahtjeva za prekidom, postavke potrošnje energije, itd. Budući da je potrebno razviti jednostavan upravljački program većina tih registara se ne koristi. Korišteni registri navedeni su u tablici 1.1. Pomak označava vrijednost koja se dodaje osnovnoj adresi dodijeljenoj kartici MMIO (eng. Memmory Mapped I/O). Zbroj te dvije vrijednosti je adresa registra koja se koristi za čitanje vrijednosti i upisivanje novih vrijednosti u iste. Tablica 2.1 Korišteni registri [2] Oznaka Pomak Opis IDRx 0x00 MAC adresa kartice, x [0,5] TSDx 0x10-0x1F Statusni registri opisnika za slanje, 4B, x [0,3] TSADx 0x20-0x2F Početna adresa međuspremnika za slanje, 4B, x [0,3] RBSTART 0x30-0x33 Adresa međuspremnika za prihvat okvira CR 0x37 Omogućuje slanje, primanje i ponovno pokretanje IMR 0x3C - 0x3D Dozvoljava/zabranjuje prekide za određene uvjete ISR 0x3E - 0x3F Zastavice uzroka prekida TCR 0x40-0x43 Parametri slanja okvira RCR 0x44-0x07 Paramteri primanja okvira CONTROL1 0x52 Programsko pokretanje kartice MULINT 0x5C - 0x5D Upravljanje uzastopnim prekidima 4
9 3. Komponente operacijskog sustava Operacijski sustavi na upravljačke programe gledaju kao na svojevrsne crne kutije, a operacijski sustav Benu nije iznimka. Benu definira sučelje za pisanje upravljačkih programa koje ima sljedeću strukturu: struct _device_t_ { char int dev_name[dev_name_len]; irq_num; int (*irq_handler) ( int irq_num, void *device ); /* interrupt handler function (test if device is * interruptsource and handle it if it is) */ int (*callback) ( int irq_num, void *device ); /* callback function (to kernel) - when event require * kernel action */ /* device interface */ int (*init) ( uint flags, void *params, device_t *dev ); int (*destroy) ( uint flags, void *params, device_t *dev ); int (*send) ( void *data, size_t size, uint flags, device_t *dev ); int (*recv) ( void *data, size_t size, uint flags, device_t *dev ); }; int (*status) ( uint flags, device_t *dev ); /* various flags and parameters specific to device */ int void flags; *params; Kod 3.1 Struktura sučelja upravljačkog programa [7] Upravljački program ostvaruje funkcije sučelja kako bi osigurao pravilan rad uređaja. Svaki upravljački program dužan je ostvariti funkcije init, destroy i status. Funkciju recv npr. nije potrebno ostvariti ako uređaj ne nudi mogućnost 5
10 čitanja ili ako pozivanje funkcije za čitanje nema smisla. [6] Primjer takvog uređaja je mrežnia kartica jer se primanje okvira obično obavlja tijekom obrade prekida. Jezgra operacijskog sustava poziva funkcije sučelja kada je potrebno izvesti neku operaciju. Pri podizanju sustava jezgra će pokušati osigurati pravilnu inicijalizaciju svih uređaja tako da prolazi kroz sve poznate uređaje i poziva funkciju init. [6] Isto se događa pri gašenju jezgre kada ona ponovo iterira kroz uređaje i poziva funkciju destory. Član irq_num označava broj prekida koji uređaj izaziva. Ako uređaj izaziva prekid tj. irq_num je različit od -1 dužan je ostvariti funkciju irq_handler. Uspješna inicijalizacija uređaja od strane jezgre uključuje registraciju prekidne rutine za uređaj. [7] 3.1 PCI podsloj Upravljački program za RTL8139 razvija se na inačici operacijskog sustava Benu za arhitekturu i386. PCI (eng. Peripheral Component Interconnect) omogućuje potpuno programsku inicijalizaciju svakog uređaja spojenog na sabirnicu. Svaki uređaj koji se spaja na sabirnicu dužan je podržati najmanje 256B adresnog prostora za PCI postavke u obliku bitna registra. Pristup adresnom prostoru za PCI postavke uređaja različit je od platforme do platforme. Arhitektura i386 koristi dvije 32-bitne I/O lokacije za pristup adresnom prostoru PCI postavki. [8] Za čitanje i pisanje PCI postavki uređaja arhitektura i386 koristi dvije I/O adrese: CONFIG_ADDRESS (0xCF8) i CONFIG_DATA (0xCFC). Kod pristupanja adresnom prostoru za PCI postavke potrebno je na I/O CONFIG_ADDRESS upisati vrijednost sljedećeg formata: 6
11 Tablica 3.1 Struktura 32-bitovne adrese prostora za PCI postavke Enable Reserved Bus Device Function Register 00 Prvi bit adrese je Enable i njega uvijek postavljamo na 1. Polja Bus i Device označavaju sabirnicu i uređaj na toj sabirnici respektabilno. Polje Function označava funkciju PCI uređaja. Svaki uređaj mora podržati barem prvu funkciju (vrijednost 0), ako podržava više funkcija svaka će funkcija imati vlastiti adresni prostor za PCI postavke. Polje Register označava registar u adresnom prostoru tj. ono predstavlja pomak (eng. offset) registra adresnog prostora za konfiguraciju kojemu želimo pristupiti. Posljednja dva bita adrese uvijek moraju biti 0 zato što PCI dozvoljava samo 32-bitno poravnati pristup (eng. aligned). Nakon što je pravilna PCI adresa upisana u CONFIG_ADDRESS I/O adresu CONFIG_DATA koristimo za pristup registrima adresnog prostora za PCI postavke. Kod čitanja nakon unošenja adrese sa CONFIG_DATA jednostavno čitamo vrijednost. Kod pisanja nakon unošenja adrese u CONFIG_DATA upisujemo vrijednost koju treba unijeti u registar prostora za PCI postavke. Budući da je dozvoljen samo 32-bitni pristup kod pisanja i čitanja, vrijednosti moramo maskirati konstantom željene širine te posmaknuti vrijednost u desno. Ako je došlo do greške pri čitanju registra iz adresnog prostora za PCI postavke pročitana vrijednost bit će 0xFFFFFFFF. Do grešaka dolazi ako se pokušava čitati s nepravilne adrese, npr. sabirnice na kojoj nema uređaja ili adresnog prostora za postavke funkcije različite od 0 na uređaju koji podržava samo jednu funkciju. 7
12 Slika 3.1 Skica generičkog adresnog prostora za PCI postavke [8] Slika 3.1 prikazuje generički adresni prostor za PCI postavke. Adresni prostor za postavke svih uređaja mora biti identičan barem do pomaka 0x10 kako bi operacijski sustav mogao pravilno pretražiti uređaje koji su spojeni u sustav. Kartica RTL8139 poštuje to pravilo te je adresni prostor identičan generičkom samo u prve četiri 32-bitne lokacije, tj. do adrese pomaka (eng. offset) 0x10. Jezgri operacijskog sustava dodana je struktura prikazana kodom 3.2 s ciljem izdvajanja logike upravljanja PCI uređajima u posebno sučelje. Nusprodukt takvog dizajna je jednostavniji postupak inicijalizacije u upravljačkom programu. Prije inicijalizacije uređaja jezgra će proći kroz sve kombinacije polja Bus, Device i Function (samo nulta funkcija). Za svaku kombinaciju izgradit će pravilnu adresu adresnog prostora za postavke i s te adrese pokušat će pročitati 32-bitnu vrijednost s pomakom 0x00 tj. vrijednost DeviceID i VendorID. Ako je pročitana vrijednost različita od koda greške to znači da je na toj adresi prisutan PCI uređaj, tada jezgra zauzima prostor u spremniku za jedan primjerak strukture prikazane kodom 3.2 i sprema je u listu spojenih PCI uređaja. 8
13 typedef struct kpci_device_t { pci_device dev; id_t k_id; list_h node; } kpci_device; Kod 3.2 Jezgrina struktura za PCI uređaj typedef struct _pci_device_t_ { uint8 bus; uint8 slot; uint8 func; uint16 vendor; uint16 device;... uint16 status;... enum header_type type; } pci_device; Kod 3.3 Struktura PCI uređaja za upravljački program Kod 3.3 prikazuje strukturu na koju jezgra daje pokazivač onim upravljačkim programima koji traže uređaj s DeviceID i VendorID identičnom onome pronađenog uređaja. 9
14 int pci_read_config_byte(pci_device *dev, uint8 where, uint8 *val); int pci_read_config_word(pci_device *dev, uint8 where, uint16 *val); int pci_read_config_long(pci_device *dev, uint8 where, uint32 *val); int pci_write_config_byte(pci_device *dev, uint8 where, uint8 value); int pci_write_config_word(pci_device *dev, uint8 where, uint16 value); int pci_write_config_long(pci_device *dev, uint8 where, uint32 value); Kod 3.4 Funkcije kojima upravljački program komunicira s uređajem 3.2 Sučelje za mrežne uređaje net_dev Za kontrolu mrežnih uređaja u računalnom sustavu, operacijskom sustavu dodajemo strukturu prikazanu kodom 3.5. Struktura predstavlja jezgrin pogleda na mrežne uređaje. Za zauzimanje strukture net_dev upravljački program za vrijeme inicijalizacije mora pozvati jezgru funkcijom alloc_init_ndev kojoj predaje niz znakova koji predstavlja ime uređaja. Jezgra će zatim potražiti generički uređaj s istim imenom te dodati pokazivač na isti u zauzetu strukturu, na posljetku se inicijaliziraju podaci o mrežnom uređaju i pokazivač na njega se vraća upravljačkom programu. Za vrijeme rada upravljački program će bilježiti statističke podatke o broju poslanih i primljenih paketa, broju pogrešaka itd. U funkciji destory upravljački program poziva jezgru funkcijom free_net_dev kojom oslobađa resurse zauzete strukturom mrežnog uređaja. 10
15 typedef struct _k_net_dev_ { net_dev n_dev; /*network device interface(set by the driver)*/ the } knet_dev; kdevice_t *p_dev; /*kernel device which is an interface to network device driver*/ list_h node; list_t *list; Kod 3.5 Jezgrina struktura za mrežne uređaje typedef struct _net_dev_t_ { char *name; /*device name*/ char mac[max_mac_len]; /*devices MAC address*/ char b_mac[max_mac_len]; /*broadcast MAC for this device*/ unsigned char mac_len; /*len of devices MAC address*/ unsigned int max_buff_len; unsigned int mtu; net_dev_stats stats; } net_dev; net_dev *alloc_init_ndev(char *name); void free_net_dev(net_dev *dev); Kod 3.6 Pogled upravljačkog programa na mrežni uređaj Nakon što jezgra upravljačkom programu vrati pokazivač na strukturu mrežnog uređaja koji mu pripada on popunjava članove strukture MAC adrese, MAC adrese za razašiljanje, maksimalnu veličinu međuspremnika za slanje i MTU (eng. maximum transmission unit). Te podatke jezgra koristi pri slanju podataka na mrežni uređaj, npr. pri fragmentaciji ako je potrebna. 11
16 3.3 Jezgrin međuspremnik za mrežne pakete sk_buff Nakon što je operacijskom sustavu dodana sposobnost rada s mrežnim uređajima potrebno je dodati i kvalitetan način za rad s podatcima koji su primljeni s mreže ili koje treba na mrežu poslati. Ostvarena je struktura sk_buff koja je inspirirana sličnom strukturom u Linux jezgri pod imenom SKB (eng. Socket Kernel Buffer). [4] Struktura je prikazana kodom 3.7 i omogućava jezgri operacijskog sustava da smanji broj kopiranja podataka iz jednog međuspremnika u drugi što se vidi na primjeru ostvarenog upravljačkog programa. typedef struct _sk_buff_t_ { list_t *list; /*list which currently holds this skb*/ net_dev *dev; /*pointer to device which sent/got this skb*/ list_h node; /*node of this skb*/ union { /*protocol header pointers*/ struct eth_hdr *eth_h; unsigned char *raw; } header; union { unsigned char *raw; } mac; unsigned char *head, *data, *tail, *end; unsigned int len, tot_len, mac_len, csum; unsigned short protocol; } sk_buff; Kod 3.7 Struktura jezgrinog međuspremnika za mrežne podatke 12
17 Prednost strukture sk_buff je u tome što se jednom zauzima, jednom oslobađa, jednom se podatci kopiraju u nju i jednom se podatci kopiraju iz nje. [4] Unija header je skup pokazivača na sve jezgri poznate mrežne protokole. Članovi head, data, tail i end svi pokazuju na podatke koji se trebaju poslati na mrežu ili koji su s nje primljeni. Head uvijek pokazuje na početak podataka, end uvijek na kraj. Pokazivači data i tail mijenjaju poziciju ovisno o tome koji protokol trenutno modificira sadržaj međuspremnika. Kako se primjerak strukture sk_buff s podatcima prenosi kroz mrežni stog svaki bi sloj pomaknuo tail ili data po potrebi kako bi nadodao vlastiti opisnik na podatke koje je primio od višeg sloja. Kada niži sloj prosljeđuje međuspremnik višem sloju on pomiče data ili tail kako bi sakrio svoje zaglavlje od višeg sloja. Struktura sadrži pokazivač na mrežni uređaj s kojeg su podatci primljeni ili na koji se trebaju poslati. Dodatno sadrži i pokazivač na listu u kojoj se trenutno nalazi. Liste u kojima bi se strukture sk_buff trebale nalaziti su liste redova za čekanje na obradu raznih slojeva mrežnoj stoga, npr. red za obradu protokola UDP, red za obradu protokola IP gdje je možda potrebno čekati fragmente IP datagrama. Kako je izgradnja mrežnog stoga van opsega ovog završnog rada ostvaren je samo iznimno jednostavan Ethernet sloj s funkcijom koja ispisuje primljene podatke na serijski izlaz. Slika 3.2 Skica elemenata operacijskog sustava u radu 13
18 4. Inicijalizacija kartice Inicijalizaciju mrežne kartice u cijelosti obavlja upravljački program, točnije funkcija rtl_8139_init upravljačkog programa. Tu funkciju poziva jezgra pri iteraciji kroz sve poznate uređaje. [6] Prvi korak inicijalizacije je od jezgre zatražiti pokazivač na pci_dev strukturu koja predstavlja mrežnu karticu kao PCI uređaj. To se radi pozivom funkcije pci_get_device s argumentima 0x10EC i 0x8139, tj. VendorID i DeviceID vrijednostima iz adresnog prostora za PCI postavke. [1] Jezgra će zatim iterirati kroz listu pronađenih PCI uređaja i ako kartica uistinu postoji u sustavu upravljačkom programu vraća se pokazivač na strukturu preko koje može pisati i čitati iz adresnog prostora za postavke. Nakon što je osiguran pristup PCI postavkama potrebno je podesiti nekoliko registara. Prvi registar čija se vrijednost podešava je naredbeni registar (eng. command register), 16-bitni registar s pomakom 0x04. Kako bi kartica pravilno prenosila okvire sa žice u spremnik i iz spremnika na žicu potrebno joj je dozvoliti direktan pristup spremniku (eng. direct memory access, DMA), tj. dozvoliti da slobodno piše i čita iz spremnika koji će joj kasnije biti dodijeljen. Prvo čitamo vrijednost registra, toj vrijednosti treći bit postavljamo u 1 te novu vrijednost upisujemo u isti registar. Sada kartica može direktno pristupati međuspremniku. [5] Sljedeći registar je BAR (eng. base address register) s pomakom 0x10. To je 32-bitni registar koji označava početnu I/O adresu za pristup registrima kartice spomenutim u drugom poglavlju. Vrijednost koja se čita iz BAR registra postavljena je od strane BIOS-a (eng. Basic Input/Output System) pri podizanju sustava. Ako je potrebno operacijski sustav može promijeniti početnu adresu za I/O pristup registrima kartice. Međutim vrijednosti koje odabire BIOS emulatora QEMU sasvim su adekvatne. U privatne parametre upravljačkog programa upisana je pročitana I/O adresa što znači da je moguće pristupati registrima mrežne kartice. Upravljački program zatim od jezgre traži zauzimanje prostora u spremniku za strukturu net_dev koja pripada ovom uređaju. Zatim upravljački program upisuje vrijednost 14
19 0x00 u registar CONTROL1 i tako pokreče mrežnu karticu. [2] Sljedeći korak inicijalizacije je programsko ponovno pokretanje kojim se svi registri kartice postavljaju na pretpostavljene, početne, vrijednosti. Postavljanje registara u početne vrijednosti postiže se upisivanjem 0x10 u naredbeni registar (CR). Za inicijalizaciju prstenastog međuspremnika za slanje okvira upravljački program mora od jezgre operacijskog sustava osigurati kontinuirani dio spremnika veličine 4x1536B, poravnat na 4B. Budući da će se zauzeti dio spremnika koristiti kao međuspremnik kojem kartica pristupa direktno operacijski sustav mora vratiti pokazivač sa stvarnom vrijednosti spremničke lokacije. Međuspremnik se zatim dijeli na četiri dijela i u registre TSAD0 do TSAD3 se upisuje početna adresa svakog dijela. Pri slanju okvira kartica čita podatke iz zadanog međuspremnika i prosljeđuje ih na žicu. [2] Upravljački program ponovno zauzima kontinuirani dio spremnika veličine 32KB+2048B poravnate na 4B. Ponovno operacijski sustav mora vratiti stvarnu adresu spremnika koju zatim upisujemo u registar RBSTART. Mrežna kartica u taj spremnik upisuje okvire koje je primila. Nakon što smo kartici dali adresu međuspremnika moramo joj reći kakve okvire želimo prihvaćati. U registar RCR upisujem vrijednost 0x178E. Tako kartici dajemo do znanja da prihvaća okvire čija je odredišna adresa odgovara MAC adresi kartice, je višeodredišna ili adresa razašiljanja. Kartici također dajemo do znanja da je međuspremnik veličine 32KB s dodatnim prostorom za preljev te da se okviri koji bi izašli iz međuspremnika ne prenose na njegov početak. [1] Kako bi kartica pravilno radila mora moći izazivati prekide. U registar IMR upisujemo vrijednost 0x7F kojom kartici dozvoljavamo izazivanje prekida za pravilno prenesene okvire, pravilno i pogrešno primljene okvire, preljev međuspremnika za primanje okvira, itd. [1] Nakon ponovnog pokretanja vrijednost naredbenog registra je nula. U naredbeni registar se upisuju vrijednosti 0x04 i 0x08 čime omogućujemo prihvat i slanje okvira. Time završava proces inicijalizacije. Mehanizmi slanja i primanja okvira objašnjeni su u sljedećim poglavljima. 15
20 5. Slanje Okvira Mrežna kartica RTL8139 za slanje okvira koristi prstenasti međuspremnik kojem ima direktan pristup. U procesu inicijalizacije u registre TSADx upisali smo adrese međuspremnika i u privatne parametre upravljačkog programa upisali smo da je trenutno zauzeto 0 izlaznih opisnika. Slanje okvira počinje pozivom funkcije send upravljačkog programa. Upravljački program očekuje da je argument data pokazivač na pravilno strukturirani Ethernet okvir. Zadatak funkcije send je kopirati podatke iz spremnika na koji pokazuje argument u sljedeći slobodni dio međuspremnika za prijenos. Ako je veličina okvira manja od minimalne, tj. manja od 60B. Okvir će se u međuspremniku dopuniti bajtovima vrijednosti 0 kako zahtjeva Ethernet protokol. Ako u trenutku poziva funkcije send ne postoji niti jedan slobodan opisnik funkcija vraća kod greške EBUSY. Nakon što je okvir kopiran u međuspremnik i po potrebi dopunjen nulama, potrebno je kartici signalizirati da postoji okvir kojeg treba prenijeti na žicu, upisom veličine okvira u registar TSDx, gdje x označava prvi slobodni opisnik. Osim veličine okvira u registar se upisuju zastavice koje specificiraju uvijete prijenosa okvira na žicu, npr. polje praga za rani početak prijenosa (eng. EarlyTxTreshold). Za uspješno prenesene okvire RTL8139 izaziva prekid. Upravljački program u obradi prekida mora ažurirati pokazivače na opisnike u svojim privatnim parametrima. Mrežna kartica može izazvati jedan prekid za više uspješno poslanih okvira. To znači da upravljački program mora iterirati po svim zauzetim opisnicima i za svaki ažurirati pokazivače. [2] 16
21 Slika 5.1 Skica međuspremnika i registara za prijenos [2] Slika 5.1 prikazuje međuspremnik zauzet u postupku inicijalizacije. Kartica podatke iz međuspremnika na koji pokazuje prvi zauzeti opisnik prebacuje u registar TxFIFO a zatim iz registra na žicu. Nakon što su podatci iz međuspremnika preneseni na žicu RTL8139 će nadodati izračunatu FCS (eng. Frame Check Sequence) vrijednost. Zaštitna suma računa se dok kartica prebacuje podatke na žicu. Automatsko računanje zaštitne sume može se onemogućiti postavljanjem šesnaestog bita registra TCR u vrijednost 1, no zbog jednostavnosti upravljačkog programa i brzine prijenosa računanje zaštitne sume ostavljamo kartici. [1][3] 17
22 6. Prihvat Okvira Svaki primljeni okvir sprema se u međuspremnik čiji je početak u procesu inicijalizacije upisan u registar RBSTART. Osim okvira u međuspremnik je spremljen i opisnik za primljeni okvir. Opisnik okvira dolazi prije okvira u međuspremniku i velik je 4B. [2] Prva dva bajta su statusne zastavice za Ethernet okvir a druga dva bajta su veličina okvira i opisnika. Oba polja zapisana su u Little Endian obliku. Budući da je arhitektura i386 također Little Endian nije potrebno raditi pretvorbe nad vrijednostima. Nakon što je spremila barem jedan cijeli okvir i njegov opisnik u međuspremnik mrežna kartica će izazvati prekid kako bi upravljački program preuzeo primljene okvire i ažurirao pokazivače. [1] Ako je u registru ISR postavljena zastavica RxOK prekidna rutina će ući u petlju u kojoj preuzima sve primljene okvire i predaje ih jezgri. Upravljački program u privatnim parametrima drži pokazivač na međuspremnik koji pokazuje gdje se nalazi prvi novi okvir i njegov opisnik. Iz opisnika čita veličinu okvira i funkcijom alloc_skb poziva jezgru da zauzme mjesto u spremniku za jednu strukturu sk_buff. Nad dobivenom strukturom poziva se funkcija skb_put koja pomiče pokazivač tail strukture sk_buff za broj bajtova zadan u argumentu. Sljedeći korak je kopiranje okvira u zauzeti jezgrin međuspremnik. Pozivom funkcija eth_copy_sum i eth_type_trans okvir se kopira u strukturu sk_buff, pokazivač header pokazuje na početak okvira, a vrijednost člana protocol postavlja se na konstantu ETHERNET. Time je okvir kopiran iz međuspremnika i spreman za predaju jezgri. Pozivom funkcije netif_rx upravljački program predaje strukturu sk_buff jezgri. Nakon što je okvir preuzet potrebno je o tome obavijestiti mrežnu karticu. Poziciju u međuspremniku gdje se već nalazi ili će se nalaziti sljedeći okvir koji treba preuzeti računamo na sljedeći način. Trenutnoj poziciji zbrojimo veličinu okvira kojeg smo preuzeli, zbrojimo konstantu četiri (veličina opisnika) i konstantu 18
23 tri. Ako je nova pozicija veća od 32K zamjenjujemo ju ostatkom cjelobrojnog dijeljenja njene vrijednosti s 32K. Konačnu vrijednost upisujemo registar CAPR. Nakon što je nova pozicija upisana u CAPR mrežna kartica je uspoređuje s vrijednosti u registru CBR. [1] Ako su te vrijednosti jednake to znači da su iz međuspremnika preuzeti svi primljeni okviri. Mrežna kartica će u prvi bit kontrolnog registra (CR) postaviti vrijednost 1 i time signalizirati upravljačkom programu da je preuzeo sve okvire. Upravljački program prije svake iteracije petlje čita vrijednost registra CR i ako je prvi bit postavljen izlazi iz petlje. Nakon što su preuzeti svi primljeni okviri i prije izlaska iz prekidne rutine upravljački program poziva povratnu (eng. callback) funkciju jezgre kako bi obavijestio jezgru da ima okvire koje mora obraditi. U sklopu ovog završnog rada ostvarena je jednostavna povratna funkcija koja provjerava vrijednost člana protocol strukture sk_buff te ako je vrijednost jednaka konstanti ETHERNET poziva funkciju ethernet podsloja za obradu okvira. Paketi nepoznatih protokola se odbacuju. Slika 6.1 Skica registara i međuspremnika za prihvat okvira [2] 19
24 Slika 6.1 prikazuje registre mrežne kartice čije vrijednosti upravljački program može mijenjati te kako oni pokazuju na međuspremnik za primanje okvira. Važno je primijetiti kako se nigdje u procesu preuzimanja okvira sa žice ne spominje funkcija recv sučelja device_t. Ona nije ostvarena budući da je kartica dizajnirana tako da se primanje okvira obavlja u prekidnoj rutini. Ostvarenjem jezgrenog međuspremnika za mrežne pakete (sk_buff) izbjegli smo potrebu za korištenjem dodatnog međuspremnika za funkciju recv koja bi držala preuzete okvire. Jedno od razmatranih rješenja bilo je i to da prekidna rutina za svaki primljeni okvir obavještava upravljački program i ne miče okvire i opisnike iz međuspremnika. Takva funkcija recv obavljala bi posao preuzimanja okvira i pomicanja pokazivača kartice. Konačno rješenje koristi jezgrin međuspremnik za prijenos okvira zato što smanjuje broj kopiranja podataka za razliku od rješenja koja ostvaruju funkciju recv. Rješenja s jezgrinim međuspremnikom pokazala su se iznimno fleksibilnim u primjeni u drugim operacijskim sustavima poput Linuxa. [4] 20
25 7. Prikaz rada ostvarena sustava na primjeru Nakon uspješnog ostvarenja upravljačkog programa i proširenja operacijskog sustava preostaje provjeriti funkcionalnost. Emulator QEMU nudi mogućnost spajanja emuliranih računalnih sustava na virtualne lokalne mreže. Kroz virtualnu lokalnu mrežu promet se prenosi TCP transportnim -e $(QEMU) $(QFLAGS) -kernel $(BINFILE) -net nic,vlan=1,model=rtl8139,macaddr=52:54:00:12:34:56 -net socket,vlan=1,listen=localhost:1234 -e $(QEMU) $(QFLAGS) -kernel $(BINFILE)2 -net nic,vlan=1,model=rtl8139,macaddr=52:54:00:12:34:57 -net socket,vlan=1,connect=localhost:1234 &... Kod 7.1 Isječak Makefile datoteke Kod 7.1 je isječak iz Makefile datoteke koji pokreće dva procesa QEMU gdje svaki dobiva vlastiti xterm terminal i sliku (eng. image) operacijskog sustava Benu s upravljačkim programom za RTL8139. Argumenti -net predani QEMU-u pri pokretanju govore da se u emulirani sustav doda mrežnu karticu modela RTL8139. Osim modela zadane su i MAC adrese te virtualna lokalna mreža na koju je kartica spojena. Drugi po redu -net argument je tipa socket i govori QEMUu da promet kartice koja je spojena na virtualnu mrežu jedan preusmjeri na localhost:1234. Važno je primijetiti razliku između poziva s argumentom listen i connect. Obično je na jednoj virtualnoj lokalnoj mreži samo jedan proces pozvan s argumentom listen. To je poslužiteljski proces i on upravlja prometom na toj virtualnoj mreži. Nakon što je pokrenut poslužiteljski proces ostali se emulirani računalni sustavi pokreću s argumentom listen tj. spajaju se na prvi pokrenuti QEMU proces. QEMU virtualne lokalne mreže ne omogućavaju odabir topologije mreže međutim za primjer komunikacije bitno je samo da računalni sustavi mogu razmjenjivati podatke preko mrežnih kartica. 21
26 Slika 7.1 Primjer sadržaja Ethernet okvira Slika 7.2 Primjer primljenog Ethernet okvira Slika 7.1 prikazuje izgradnju poruke koja se zamata u Ethernet okvir i preko mrežne kartice RTL8139 šalje na emulirani računalni sustav koji je spojen na virtualnu lokalnu mrežu 1. Slika 7.2 prikazuje izlaz računalnog sustava koji je primio poslane podatke. Crvena boja teksta označava ispis jezgre operacijskog sustava. Primljene Ethernet okvire jezgra prosljeđuje Ethernet sloju na obradu što je u ovom slučaju samo ispis na serijski izlaz. 22
27 Zaključak Cilj zadatka završnog rada bio je ostvariti mrežnu komunikacija dva ili više emuliranih računalnih sustava kojima upravlja operacijski sustav Benu. Za emulaciju koristi se QEMU emulator. Za mrežnu komunikaciju koristi se mrežna kartica RTL8139 koja je u računalni sustav spojena preko PCI sabirnice. U sklopu završnog rada ostvaren je upravljački program za mrežnu karticu. Upravljački program ostvaren je prema sučelju device_t koje definira operacijski sustav. Osim upravljačkog programa ostvarena su tri proširenja za operacijski sustav čiji je cilj jednostavniji upravljački program i olakšanje daljnjeg razvoja operacijskog sustava. Ostvarena proširenja su PCI podsustav koji olakšava rad s PCI uređajima, sučelje za mrežne uređaje net_dev koje operacijskom sustavu omogućuje da mrežne uređaje tretira različito od ostalih i jezgrin međuspremnik za mrežne pakete sk_buff. Kao dokaz funkcionalnosti rješenja pripremljen je jednostavan primjer koji demonstrira komunikaciju dva sustava preko mreže kartice RTL8139. Umreženim računalnim sustavima upravlja operacijski sustav Benu, a mrežne kartice kontrolira ostvareni upravljački program. 23
28 Literatura [1] Realtek RTL8139 Data Sheet, [2] Realtek, RTL8139 Programmingguide, [3] Mohan Jal Jangir, Writing Network Drivers for Linux, studeni [4] JonathanCorbet, Alessandro Rubini, GregKroah-Hartman, Linux DeviceDrivers, O'Reilly Media, SAD veljača, [5] OSDev Wiki, RTL8139, [6] Leonardo Jelenković, operacijski sustav Benu, [7] Leonardo Jelenković, skripta predavanja predmeta OSUR, [8] OSDev Wiki, PCI, 24
29 Sažetak Naslov: Upravljački programi za mrežnu karticu u operacijskom sustavu Benu Ključne riječi: upravljački program, Realtek, RTL8139, mrežna kartica, operacijski sustav, Benu, Ethernet, mreža, QEMU, PCI, SKB Cilj završnog rada bio je ostvarenje upravljačkog programa za mrežnu karticu koju QEMU može emulirati te izraditi demonstracijski primjer rada upravljačkog programa. Osim upravljačkog program ostvarena su tri proširenja izvornog operacijskog sustava s kojima je osigurana lakša izvedba upravljačkog programa. Proširenja i upravljački program pisani su programskim jezikom C kao i operacijski sustav Benu. Upravljački program je ovisan o arhitekturi sustava i ostvaren je samo za arhitekturu i386. Demonstracija funkcionalnosti sastoji se od pokretanja dva procesa QEMU gdje svaki emulira jedan računalni sustav s mrežnom karticom RTL8139 i različitim MAC adresama. Procesi međusobno komuniciraju TCP protokolom na adresi i portu
30 Summary Title: NIC drivers for Benu OS Keywords: driver, Realtek, RTL8139, network interface card, NIC, operating system, Benu, Ethernet, network, QEMU, PCI, SKB The goal of this work was the implementation of a driver program for a NIC which can be emulated in QEMU. Along with the driver three major additions to the operating system were developed. These additions used to simplify the implementation of the driver. The driver program and the developed additions were written in the C programming language, same as the Benu operating system. Since the driver program is architecture dependent it was implemented only for the i386 architecture. The demonstration of the driver program consists of two emulated computer systems where each uses RTL8139 NIC for communication. Emulated systems communicate through the TCP protocol on address and port
Programiranje Programski jezik C. Sadržaj. Datoteke. prof.dr.sc. Ivo Ipšić 2009/2010
Programiranje Programski jezik C prof.dr.sc. Ivo Ipšić 2009/2010 Sadržaj Ulazno-izlazne funkcije Datoteke Formatirane datoteke Funkcije za rad s datotekama Primjeri Datoteke komunikacija između programa
More informationVDSL modem Zyxel VMG1312-B10A/B30A
VDSL modem Zyxel VMG1312-B10A/B30A Default Login Details LAN IP Address http://192.168.2.1 User Name user Password 1234 Funkcionalnost lampica Power lampica treperi kratko vrijeme nakon uključivanja modema,
More informationMicrosoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb,
Microsoft Hyper-V Server 2016 radionica EDU IT Pro, Zagreb, 13.04.2017. Podešavanje Hyper-V Servera 2016 za RSAT upravljanje Dario Štefek Lokacije za preuzimanje: Microsoft Hyper-V Server 2016 https://www.microsoft.com/en-us/evalcenter/evaluate-hyper-v-server-2016
More informationSberbank Business Online na Mozilla FireFox
Sberbank Business Online na Mozilla FireFox Verzija 1.6 Srpanj 2016. Sberbank d.d. Stranica 1 SADRŽAJ 1 INSTALACIJA... 2 2 POKRETANJE MOZILLE FIREFOX... 3 2.1 IMPORT SECURITY MODULA... 4 2.2 AUTOMATSKI
More informationRačunarske osnove Interneta (SI3ROI, IR4ROI)
Računarske osnove terneta (SI3ROI, IR4ROI) Vežbe MPLS Predavač: 08.11.2011. Dražen Drašković, drazen.draskovic@etf.rs Autori: Dražen Drašković Naučili ste na predavanjima MPLS (Multi-Protocol Label Switching)
More informationUputa za instaliranje programske potpore za operativni sustav WINDOWS
ZABA SignErgy Desktop aplikacija Uputa za instaliranje programske potpore za operativni sustav WINDOWS SADRŽAJ 1. UVOD 3 2. PODRŽANI OPERATIVNI SUSTAVI 3 3. PROGRAMSKI PREDUVJETI ZA INSTALACIJU PROGRAMSKE
More informationUpute za postavljanje Outlook Expressa
Upute za postavljanje Outlook Expressa Prije postavljanja klijenata morate obavezno obaviti prvu prijavu na web mail kako bi aktivirali vaš račun na novom sustavu. Ukoliko niste obavili prvu prijavu, nećete
More informationPARALELNO PROGRAMIRANJE
Predavanje 09 Odjel za matematiku 1 PARALELNO PROGRAMIRANJE POSIX threadovi za C++ Predavanje 09 Odjel za matematiku 2 Programske niti (thread) unutar procesa Danas ćemo se upoznati s POSIX thread bibliotekom
More informationVRIJEDNOSTI ATRIBUTA
VRIJEDNOSTI ATRIBUTA Svaki atribut (bilo da je primarni ključ, vanjski ključ ili običan atribut) može i ne mora imati ograničenja na svojim vrijednostima. Neka od ograničenja nad atributima: Null / Not
More informationTP-LINK TL-WPA4220 strujni prijenosnik Internet ili IPTV signala s bežičnim modulom. Priručnik za korištenje i brzu instalaciju
TP-LINK TL-WPA4220 strujni prijenosnik Internet ili IPTV signala s bežičnim modulom Priručnik za korištenje i brzu instalaciju Sadržaj ŠTO JE TP-LINK TL-WPA4220... 3 KAKO KORISITI TP-LINK TL-WPA4220...
More informationPKI Applet Desktop Application Uputa za instalaciju programske potpore
1 SADRŽAJ 1. UVOD 3 2. PODRŽANI OPERATIVNI SUSTAVI 3 3. PROGRAMSKI PREDUVJETI ZA INSTALACIJU PROGRAMSKE POTPORE 3 4. INSTALACIJA PROGRAMSKE POTPORE 3 5. DEINSTALACIJA PROGRAMSKE POTPORE 6 2 1. Uvod PKI
More informationETHERNET LOKALNA MREŽA. I. Podešavanje mrežnih postavki računala u Linux operacijskom sustavu
ETHERNET LOKALNA MREŽA I. Podešavanje mrežnih postavki računala u Linux operacijskom sustavu Za umrežavanje računala potrebno je: - imati ugrađenu i podešenu Ethernet mrežnu karticu (instaliran pogonski
More informationPREDMET. Osnove Java Programiranja. Čas JAVADOC
PREDMET Osnove Java Programiranja JAVADOC Copyright 2010 UNIVERZITET METROPOLITAN, Beograd. Sva prava zadržana. Bez prethodne pismene dozvole od strane Univerziteta METROPOLITAN zabranjena je reprodukcija,
More informationUputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj list.
Ime i prezime: Asistent: Predava : Programiranje (C) 1. kolokvij 14. 4. 2003. 1. 2. 3. 4. 5. 6. 7. Uputa: Zabranjeno je koristiti bilo kakva pomagala. Rje²enja pi²ete desno od zadatka. Predajete samo ovaj
More informationCSS CSS. selector { property: value; } 3/20/2018. CSS: Cascading Style Sheets
CSS CSS CSS: Cascading Style Sheets - Opisuje izgled (appearance) i raspored (layout) stranice - Sastoji se od CSS pravila, koji defini[u skup stilova selector { property: value; 1 Font face: font-family
More informationVHDLPrimeri Poglavlje5.doc
5. VHDL opis kola koja obavljaju osnovne aritmetičke funkcije Sabirači Jednobitni potpuni sabirač definisan je tablicom istinitosti iz Tabele 5.1. Tabela 5.1. cin a b sum cout 0 0 0 0 0 0 0 1 1 0 0 1 0
More informationOsnove programskog jezika C# Čas 4. Nasledjivanje 2. deo
Osnove programskog jezika C# Čas 4. Nasledjivanje 2. deo Nasledjivanje klasa Modifikator new class A { public virtual void F() { Console.WriteLine("I am A"); } } class B : A { public override void F()
More informationNaredbe za kontrolu toka
Naredbe za kontrolu toka Naredbe za kontrolu toka Nakon odslušanog bit ćete u stanju: objasniti semantiku naredbi za kontrolu postupaka navesti sintaksu naredbi if, if-else i case u programskom jeziku
More informationWindows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje. Office 2013 / Office 365
Windows 8 Licenciranje, razlike u verzijama Windows Server 2012, VDI Licenciranje najprodavanijeg servera, što je novo, VDI licenciranje Serverski proizvodi Server 2012, System centar 2012, SQL 2012, Sharepoint
More informationVB komande. Programiranje 1
VB komande Programiranje 1 Zadatak 1: Sastaviti program koji se sastoji iz jedne ListBox kontrole, jedne Textbox kontrole i dva komandna dugmeta. Klikom na prvo komandno dugme umeće se u ListBox sadržaj
More informationUNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET
UNIVERZITET U BEOGRADU ELEKTROTEHNIČKI FAKULTET Katedra za elektroniku Računarska elektronika Grupa br. 11 Projekat br. 8 Studenti: Stefan Vukašinović 466/2013 Jelena Urošević 99/2013 Tekst projekta :
More informationInformatika Uvod u C#,.NET Framework i Visual Studio... nastavak...
Informatika Uvod u C#,.NET Framework i Visual Studio... nastavak... Prof. dr. sc. Tomislav Pribanić Izv. prof. dr. sc. Vedran Podobnik Doc. dr. sc. Marija Seder Sveučilište u Zagrebu Fakultet elektrotehnike
More informationUputstvo za podešavanje mail klijenta
Uputstvo za podešavanje mail klijenta 1. Podešavanje Thunderbird mail klijenta 1.1 Dodavanje mail naloga Da biste podesili Vaš mail klijent (u ovom slučaju Thunderbird) da prima i šalje mail-ove potrebno
More informationProgramiranje III razred
Tehnička škola 9. maj Bačka Palanka Programiranje III razred Naredbe ciklusa for petlja Naredbe ciklusa Veoma često se ukazuje potreba za ponavljanjem nekih naredbi više puta tj. za ponavljanjem nekog
More informationOsnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi
Osnove programskog jezika C# Čas 5. Delegati, događaji i interfejsi DELEGATI Bezbedni pokazivači na funkcije Jer garantuju vrednost deklarisanog tipa. Prevodilac prijavljuje grešku ako pokušate da povežete
More informationSveučilište u Zagrebu PMF Matematički odsjek. Mreže računala. Vježbe 08. Zvonimir Bujanović Slaven Kožić Vinko Petričević
Sveučilište u Zagrebu PMF Matematički odsjek Mreže računala Vježbe 08 Zvonimir Bujanović Slaven Kožić Vinko Petričević Uvod: (X)HTML i CSS Na ovim i idućim vježbama naučit ćemo osnove jezika za opisivanje
More informationMrežni koncepti (koncept, skica, nacrt, plan) o Pregled na najvažnije koncepte mreže. Slanje paketa sa Argon-1 prema Neon-u
Mrežni koncepti (koncept, skica, nacrt, plan) Arhitektura tu protokola o Pregled na najvažnije koncepte mreže Protokol slojevi Encapsulation Uvod u mreže. Mrežna apstrakcija Ova prezentacija koristi primjer
More informationModbus TCP i dva PLC S7 1200
Industrijski sistemi i protokoli Modbus TCP i dva PLC S7 1200 1 Modbus TCP i dva PLC S7 1200 Laboratorijski deo - obavezno: Detaljno proučiti i testirati već napravljeni projekat za PLC-ove, koji se nalazi
More informationIzrada VI laboratorijske vježbe
Izrada VI laboratorijske vježbe 1. Programirati proceduru koja se aktivira sa Standard palete alatki klikom na button Fajlovi. Prilikom startovanja procedure prikazuje se forma koja sadrži jedan list box
More informationBinarne hrpe. Strukture podataka i algoritmi VJEŽBE 26. siječnja / 133
Binarne hrpe Potpuno binarno stablo binarno stablo u kojem svaki čvor koji nije list ima točno 2 nasljednika. Binarna hrpa potpuno binarno stablo u kojem svaki čvor koji nije list ima veću ključnu vrijednost
More informationSveučilište u Zagrebu Fakultet strojarstva i brodogradnje. WEB programiranje HTML & CSS
Sveučilište u Zagrebu Fakultet strojarstva i brodogradnje WEB programiranje HTML & CSS Autor/i: Juraj Benić 2018 1. Zadatak Kreirati stranicu kojoj će naslov biti Zadatak 1. i veličina teksta 20px te staviti
More informationUPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a
UPUTSTVO ZA KORIŠĆENJE NOVOG SPINTER WEBMAIL-a Webmail sistem ima podršku za SSL (HTTPS). Korištenjem ovog protokola sva komunikacija između Webmail sistema i vašeg Web čitača je kriptovana. Prilikom pristupa
More informationvar Form1: TForm1; implementation {$R *.dfm} procedure TForm1.Button1Click(Sender: TObject); begin ListBox1.Items.LoadFromFile('d:\brojevi.
1 PANEL komponenta kontejnerska, slična GropBox. Roditeljska komponenta za komp. postavljene na nju. Zajedno se pomeraju. Caption svojstvo za naziv; Alighment pomera svojstvo Caption levo i desno; Align
More informationUpute za pristup bežičnoj mreži Medicinskog fakulteta u Splitu (MS Windows XP) ver 1.1, lipanj 2010.
Upute za pristup bežičnoj mreži Medicinskog fakulteta u Splitu (MS Windows XP) ver 1.1, lipanj 2010. Upute za pristup bežičnoj mreži Medicinskog fakulteta u Splitu na Microsoft Windows XP operativnom sustavu
More informationSvi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući Java konstrukt
Funkcionalno programiranje Interoperabilnost jezika Scala i Java Prevođenje u Java bajt kod Svi Java tipovi imaju ekvivalentan tip u jeziku Scala Većina Scala koda se direktno preslikava u odgovarajući
More informationVežbe - XII nedelja PHP Doc
Vežbe - XII nedelja PHP Doc Dražen Drašković, asistent Elektrotehnički fakultet Univerziteta u Beogradu Verzija alata JavaDoc za programski jezik PHP Standard za komentarisanje PHP koda Omogućava generisanje
More informationPROGRAMIRANJE. Amir Hajdar
PROGRAMIRANJE Amir Hajdar Teme 2 Klase i objekti u Javi Primjer kroz klasu Krug Atributi i metode Inicijalizacija objekata (konstruktori) Polymorphism Statičke varijable i metode This Klase i objekti u
More informationSVEUČILIŠTE U ZAGREBU FAKULTET PROMETNIH ZNANOSTI
SVEUČILIŠTE U ZAGREBU FAKULTET PROMETNIH ZNANOSTI Mateja Jasak USPOREDBA PROTOKOLA IPv4 I IPv6 ZAVRŠNI RAD Zagreb, 2016. Sveučilište u Zagrebu Fakultet prometnih znanosti ZAVRŠNI RAD USPOREDBA PROTOKOLA
More informationPrva recenica. Druga recenica.
Algoritmi i programiranje Predavanje 4 METODE LOKALNE, GLOBALNE VARIJABLE I KONSTANTE METODA je imenovani izdvojeni slijed naredbi koji rješava određeni zadatak i po potrebi se poziva jednom ili više puta
More informationUputstvo za korišćenje logrotate funkcije
Copyright AMRES Sadržaj Uvod 3 Podešavanja logrotate konfiguracionog fajla 4 Strana 2 od 5 Uvod Ukoliko je aktivirano logovanje za RADIUS proces, može se desiti da posle određenog vremena server bude preopterećen
More informationJavaScript i HTML DOM
4. vježbe iz WEB programiranja četvrtak, 22. ožujka 2012. JavaScript 1. dio JavaScript i Što je DOM? Kako JS koristi DOM? Pristup elementima dokumenta Promjena i učitavanje vrijednosti tagova Primjer 1.
More informationNASLOV SEMINARSKOG RADA (16 pt, Bold) Seminarski rad. (16 pt, Bold)
Sveučilište u Zagrebu (12 pt, Bold) Ekonomski fakultet (12 pt, Bold) Naziv diplomskog studija (12 pt, Bold) NASLOV SEMINARSKOG RADA (16 pt, Bold) Seminarski rad (16 pt, Bold) Ime i prezime studenta/studentice,
More informationSistemska programska podrška. Programska podrška. MS Windows. MS Windows NT
Programska podrška Sistemska Namijenjena je pokretanju računala i zatim što djelotvornijem iskorištenju. Aplikativna Namijenjena je rješavanju konkretnih korisničkih poslova Sistemska programska podrška
More information1. Uvod. Evolucija Interneta.
Sadržaj 1. Uvod...2 2. Ethernet...3 2.1.Osnove Ethernet mreža...4 2.1.1. Adresiranje u Ethernet mrežama...4 2.1.2. Ethernet okviri...5 2.1.3. Pretvaranje IP adresa u Ethernet adrese...6 2.2.Topologije
More informationSveučilište Jurja Dobrile u Puli. Odjel za informacijsko-komunikacijske tehnologije KRISTIJAN BABIĆ. USPOREDBA IPV4 I IPV6 PROTOKOLA Završni rad
Sveučilište Jurja Dobrile u Puli Odjel za informacijsko-komunikacijske tehnologije KRISTIJAN BABIĆ USPOREDBA IPV4 I IPV6 PROTOKOLA Završni rad Pula, rujan 2017. Sveučilište Jurja Dobrile u Puli Odjel za
More informationUputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0
POM - Pomoć korisnicima Uputstva za instaliranje čitača Datalogic Skorpio u operativnom sistemu Windows 7 i višim POM-NA-XX-46, V3.0 IZUM, 2016 COBISS, COMARC, COBIB, COLIB, IZUM su zaštićeni znaci u posedu
More informationpojedinačnom elementu niza se pristupa imeniza[indeks] indeks od 0 do n-1
NIZOVI Niz deklarišemo navođenjemtipa elemenata za kojim sledi par srednjih zagrada[] i naziv niza. Ako je niz višedimenzionalni između zagrada[] se navode zarezi, čiji je broj za jedan manji od dimenzija
More informationb) program deljiv3; uses wincrt; var i:integer; begin i:=3; while i<100 do begin write(i:5); i:=i+3; end; end.
NAREDBA CIKLUSA SA PREDUSLOVOM WHILE 1.Odrediti vrednosti s i p nakon izvrsenja sledecih naredbi za dato a=43, a=34, a=105 program p1; var a,s,p:integer; write('unesite a:');readln(a); p:=a; s:=0; while
More informationOperacijski sustavi. Laboratorijska vježba 2. Petra Lončar, mag. ing. el., asistent FESB, 2016.
Operacijski sustavi Laboratorijska vježba 2 Petra Lončar, mag. ing. el., asistent ploncar@fesb.hr FESB, 2016. Linux procesi procesi su programi koji se izvršavaju i pritom zauzimaju sredstva sustava (spremnik,
More informationLab. vježba PROGRAMIRANJE ZA INTERNET. Upute za laboratorijske vježbe. (izradio: Marin Bugarić) CSS3
Lab. vježba 6 PROGRAMIRANJE ZA INTERNET Upute za laboratorijske vježbe (izradio: Marin Bugarić) CSS3 P R O G R A M I R A N J E Z A I N T E R N E T Općenito Posljednja verzija Cascading Style Sheetsa, verzija
More informationFAKULTET ELEKTROTEHNIKE I RAČUNARSTVA
FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA Sustavi za praćenje i vođenje procesa Seminarski rad LOGIČKI ANALIZATOR (PC kao instrument) 26. svibnja 2007. Ivan Grubišić 0036404380 1. Logički analizator Logički
More informationCase Study Hrvatska pošta: Korisničko iskustvo iz snova. Tomislav Turk Samostalni sistem inženjer, Combis d.o.o. Zagreb,
Case Study Hrvatska pošta: Korisničko iskustvo iz snova Tomislav Turk Samostalni sistem inženjer, Combis d.o.o. Zagreb, 27.12.2018. Sadržaj Hrvatska pošta prije projekta Izazovi projekta Tehnologije korištene
More informationSMARTPHONE TO MICROCONTROLLER COMMUNICATION ANDROID FRAMEWORK FOR STUDENTS
DOI: 10.19279/TVZ.PD.2016-4-3-11 SMARTPHONE TO MICROCONTROLLER COMMUNICATION ANDROID FRAMEWORK FOR STUDENTS SUSTAV ZA IZRADU ANDROID APLIKACIJE ZA KOMUNIKACIJU S MIKROUPRAVLJAČEM NAMIJENJEN STUDENTIMA
More information/*#include <iostream> // Prvi zadatak sa integralnomg ispita
/*#include // Prvi zadatak sa integralnomg ispita 27.01.2015 #include using std::setw; using std::cout; const int red(5), kolona(4); void unos(int[]); void ispis(int[][kolona]); float
More informationQRadar & StealthINTERCEPT
QRadar & StealthINTERCEPT Windows Security Intelligence Nađa Halebić security Sadržaj QRadar QRadar arhitektura StealthINTERCEPT Scenariji zaštite 8.6.2015 security 2 QRadar SIEM nove generacije Prije
More informationRačunarske mreže treći razred
Tehnička škola 9. maj Bačka Palanka Računarske mreže treći razred I P a d r e s e IP adresa IP adresa predstavlja jedinstveni identifikator određenog čvora ili uređaja u IP mreži. IPv4 adresa ima dužinu
More informationUčitati cio broj n i štampati njegovu recipročnu vrijednost. Ako je učitan broj 0, štampati 1/0.
Kontrolne naredbe Primjeri: Opšti oblik razgranate strukture (if sa ) if (uslov) Naredba 1 ili blok naredbi1 Naredba 2 ili blok naredbi2 Učitati broj x i štampati vrijednost double x, z; Scanner in=new
More informationVežba 3 Mrežni protokoli
Računarska tehnika i računarske komunikacije Osnovi računarskih mreža 1 2017-2018 Vežba 3 Mrežni protokoli Mrežni protokoli definišu format i redosled poruka koje se razmenjuju između dva ili više komunikacionih
More informationGeant2 - JRA1. Upravljanje mjerenjem i performansama mreža (perfsonar, baza multi-domain nadzorne usluge) Danijel Matek (Srce)
Geant2 - JRA1 Upravljanje mjerenjem i performansama mreža (perfsonar, baza multi-domain nadzorne usluge) Danijel Matek (Srce) 21.11.2007, CUC2007, Rijeka Što je to JRA1? Glavni zadatak JRA1 (Performance
More information9. RAD S DATOTEKAMA PODATAKA
Rad s datotekama 7-1 9. RAD S DATOTEKAMA PODATAKA U programiranju se često radi sa skupovima podataka koji se čuvaju na jedinicama perfernih memorija, a koji se organizuju u posebne cjeline koje nazivamo
More informationRačunalne mreže 5. LOKALNE MREŽE
5. LOKALNE MREŽE Povijest lokalnih mreža (engl. LAN - Local Area Network) počinje 1973.g. razvojem lokalne mreže Ethernet u kompaniji Rank Xerox i od tada je njihov razvoj veoma brz. Lokalna mreža je komunikacijska
More informationFAT32 datotečni sustav
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA Seminarski rad u okviru predmeta Računalna forenzika 2016/2017 FAT32 datotečni sustav Ivan Blažeković Zagreb, siječanj, 2017. Sadržaj 1. Uvod...
More informationu Zagrebu PMF Matematički odjel Sveučilište Mreže računala Vježbe 01 Matko Botinčan Zvonimir Bujanović Igor Jelaska Maja Karaga
Sveučilište u Zagrebu PMF Matematički odjel Mreže računala Vježbe 01 Matko Botinčan Zvonimir Bujanović Igor Jelaska Maja Karaga Osnovne informacije o kolegiju Termini predavanja: PON 08-10h [Luka Grubišić]
More informationSadržaj. Verzija 03/2017 Primjenjuje se od 20. novembra godine
Sadržaj 1 Web hosting 3 2 Registracija domena 3 3 Internet marketing 3 4 E mail paketi 4 5 Virtuoz 4 6 Internet Security servis 5 7 Kolokacija servera 6 8 Cloud usluge 6 9 Aktivni servisi koji nijesu u
More informationCjenovnik usluga informacionog društva
Cjenovnik usluga informacionog društva Verzija: 01/2018 Sadržaj 1 Web hosting 3 2 Registracija domena 3 3 Internet marketing 3 4 E mail paketi 4 5 Virtuoz 4 6 Internet Security servis 5 7 Kolokacija servera
More information2. Linijska algoritamska struktura
Univerzitet u Nišu Građevinsko-arhitektonski fakultet Informatika 2 2. Linijska algoritamska struktura Milica Ćirić Blokovi za prikaz algoritma Algoritam se vizuelno može prikazati pomoću blok dijagrama,
More informationGUI - događaji (Events) i izuzeci. Bojan Tomić
GUI - događaji (Events) i izuzeci Bojan Tomić Događaji GUI reaguje na događaje (events) Događaj je neka akcija koju korisnik programa ili neko drugi izvrši korišćenjem perifernih uređaja (uglavnom miša
More informationRačunarska tehnika i računarske komunikacije Osnovi računarskih mreža 1. Vežba 7 Wireshark
Računarska tehnika i računarske komunikacije Osnovi računarskih mreža 1 2017-2018 Vežba 7 Wireshark Za bolje razumevanje mrežnih protokola, najbolje je posmatrati protokol u akciji, odnosno posmatrati
More informationKINEMATIČKA ANALIZA MEHANIZAMA INDUSTRIJSKIH ROBOTA KORIŠTENJEM PROGRAMSKOG JEZIKA MATLAB
10 th International Scientific Conference on Production Engineering DEVELOPMENT AND MODERNIZATION OF PRODUCTION KINEMATIČKA ANALIZA MEHANIZAMA INDUSTRIJSKIH ROBOTA KORIŠTENJEM PROGRAMSKOG JEZIKA MATLAB
More informationUpute za VDSL modem BiPAC 8700VNXL R3
Upute za VDSL modem BiPAC 8700VNXL R3 Default Login Details LAN IP Address User Name Password http://192.168.2.1 user user Funkcionalnost lampica LED Stanje Opis Power LAN 1-4 WLAN WPS USB Crvena svijetli
More informationFRAME RELAY komunikacijski protokol
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA FRAME RELAY komunikacijski protokol Barbara Šmit 0036391196 Sadržaj 1. UVOD 2 2. FRAME RELAY KOMPONENTE..3 3. VIRTUALNE VEZE.3 4. MEHANIZMI KONTROLE
More informationdr. sc.. Josip Musić Originalne slideove izradio:
Uvod u programiranje Programiranje 1 (450) Poglavlje 1 Uvod u računala, Microsoft.NET i VB.NET (dio 2 od 2): Pregled.NET platforme dr. sc.. Josip Musić jmusic@fesb.hr 1 Originalne slideove izradio: Teo
More informationSingle Sign-On s Officeom 365 na Kineziološkom fakultetu Sveučilišta u Zagrebu
Single Sign-On s Officeom 365 na Kineziološkom fakultetu Sveučilišta u Zagrebu Stipe Gorenjak, Kineziološki fakultet Sveučilišta u Zagrebu e-mail: stipe.gorenjak@kif.hr Sponzori Ugasite mobitele. Hvala.
More informationza praćenje i vođenje procesa
Sustavi za praćenje i vođenje procesa Branko Jeren i Predrag Pale Fakultet elektrotehnike i računarstva Zavod za elektroničke sustave i obradbu informacija Internet Što je Internet? nije organizacija infrastruktura
More informationSVEUČILIŠTE U MOSTARU FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI BAZE PODATAKA 2. Doc.dr.sc. GORAN KRALJEVIĆ BAZE PODATAKA 2 1
SVEUČILIŠTE U MOSTARU FAKULTET PRIRODOSLOVNO-MATEMATIČKIH I ODGOJNIH ZNANOSTI BAZE PODATAKA 2 Doc.dr.sc. GORAN KRALJEVIĆ BAZE PODATAKA 2 1 Baze podataka 2 Web: http://www.fpmoz.ba/gkraljevic Pitanja, primjedbe,
More informationRačunalne mreže. Lokalne mreže: zahtjevi. Lokalne mreže: arhitektura. Lokalne mreže: zahtjevi. Upravljanje logičkom vezom, LLC (Logical Link Control)
2 Lokalne mreže: definicija i osnovne funkcije Računalne mreže Arhitektura računalnih mreža Lokalna mreža komunikacijska mreža koja omogućava međusobno povezivanje različitih uređaja koji razmjenjuju podatke
More informationPLANIRANJE MIGRACIJE S PROTOKOLA IPv4 NA IPv6
SVEUČILIŠTE U ZAGREBU FAKULTET PROMETNIH ZNANOSTI Lidija Belužić PLANIRANJE MIGRACIJE S PROTOKOLA IPv4 NA IPv6 ZAVRŠNI RAD ZAGREB, 2017. Sveučilište u Zagrebu Fakultet prometnih znanosti ZAVRŠNI RAD PLANIRANJE
More informationUvod u računarstvo. Preddiplomski studij elektrotehnike 2008/2009. prof.dr.sc. Ivo Ipšić UUR 2008/2009
Uvod u računarstvo Preddiplomski studij elektrotehnike 2008/2009 prof.dr.sc. Ivo Ipšić 1 Saržaj kolegija Uvod u Uvod i razvoj računala računarstvo Zapis podataka i kodiranje informacija u računalu Građa
More informationUvod u programiranje - vežbe. Kontrola toka izvršavanja programa
Uvod u programiranje - vežbe Kontrola toka izvršavanja programa Naredbe za kontrolu toka if, if-else, switch uslovni operator (?:) for, while, do-while break, continue, return if if (uslov) naredba; if
More informationPROTOKOLI ZA NADZOR I KONFIGURACIJU MREŽE RAČUNALA
SVEUČILIŠTE U ZAGREBU PRIRODOSLOVNO MATEMATIČKI FAKULTET MATEMATIČKI ODSJEK Marko Stojanović PROTOKOLI ZA NADZOR I KONFIGURACIJU MREŽE RAČUNALA Diplomski rad Voditelj rada: prof. dr. sc. Robert Manger
More informationJezik Baze Podataka SQL. Jennifer Widom
Jezik Baze Podataka SQL SQL o Jezik koji se koristi u radu sa relacionim bazama podataka o Nije programski jezik i manje je kompleksan. o Koristi se isključivo u radu za bazama podataka. o SQL nije case
More informationANALIZA KORIŠTENJA REDUNDANTNIH POVEZNICA SA SVRHOM POVEĆANJA UKUPNOG KAPACITETA
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA DIPLOMSKI RAD br. 3032 ANALIZA KORIŠTENJA REDUNDANTNIH POVEZNICA SA SVRHOM POVEĆANJA UKUPNOG KAPACITETA Ivan Sokol Zagreb, rujan 2008. Mentor
More informationVisoka tehnička škola strukovnih studija Novi Sad. seminarski rad na temu: Modbus protokol. dr. Velibor Pjevalica
Visoka tehnička škola strukovnih studija Novi Sad seminarski rad na temu: Modbus protokol Mentor: dr. Velibor Pjevalica Student: Ivica K Zadatak Napisati Windows aplikaciju u programskom jeziku Python,
More informationprogecad NLM Korisničke upute
progecad NLM Korisničke upute Sadržaj Uvod... 2 Kako započeti... 2 progecad NLM Server instalacija... 2 progecad NLM Server registracija... 2 Dodavanje licenci i aktivacija... 3 progecad instalacija i
More informationFAKULTET ELEKTROTEHNIKE I RAČUNARSTVA. SMTP autentikacija
SVEUČILIŠTE U ZAGREBU FAKULTET ELEKTROTEHNIKE I RAČUNARSTVA SEMINARSKI RAD IZ PREDMETA SUSTAVI ZA VOĐENJE I UPRAVLJANJE PROCESIMA SMTP autentikacija Dejan Božić 0036376981 Zagreb, 05.06.2005. SADRŽAJ 1.
More informationPITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I POLIMORFIZAM
PITANJA ZA II KOLOKVIJUM NASLJEĐIVANJE, VIRTUELNE FUNKCIJE I 1. Definicija svake klase sadrzi kljucnu rec iza koje se navodi ime klase: class public extends 2. Kada je funkcija clanica definisana izvan
More information16. Sigurnije programiranje
16. Sigurnije programiranje 16.1 Pretvorba tipova Pretvorba realnog broja u cijeli broj se može izvršiti naredbama: int i; double d; ili: i = (int) d; i = int(d); U cilju bolje kontrole pretvorbe tipova
More informationRačunalne mreže. Analiza Grafičkog mrežnog simulatora GNS3
Sveučilište u Zagrebu Fakultet prometnih znanosti Vukelićeva 4, Zagreb Programski zadatak iz predmeta: Računalne mreže Tema: Analiza Grafičkog mrežnog simulatora GNS3 Mentor: Ivan Grgurević, dipl. ing.
More informationMašinska vizija. Dr Nenad Jovičić tnt.etf.rs/~mv
Mašinska vizija Dr Nenad Jovičić 2017. tnt.etf.rs/~mv Linearne 2D geometrijske transformacije 2D geometrijske transformacije Pretpostavka: Objekti u 2D prostoru se sastoje iz tačaka i linija. Svaka tačka
More informationFcheck IDS alat CCERT-PUBDOC
Fcheck IDS alat CCERT-PUBDOC-2000-11-06 Sigurnosni problemi u računalnim programima i operativnim sustavima područje je na kojem CARNet CERT kontinuirano radi. Rezultat toga rada ovaj je dokument koji
More informationPredavanje 10. Odjel za matematiku 1 IP NETWORKING. Detaljnije o domenama, hostovima, socketima, TLSu, SSLu
Predavanje 10 Odjel za matematiku 1 IP NETWORKING Detaljnije o domenama, hostovima, socketima, TLSu, SSLu Predavanje 10 Odjel za matematiku 2 Imena hostova (posluţitelja) i imena domena Top-level domain
More informationnamespace spojneice { public partial class Form1 : Form { public Form1() { InitializeComponent(); }
Spojnice using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Text; using System.Windows.Forms; using System.IO;
More informationNumeričke metode i praktikum
Numeričke metode i praktikum Aleksandar Maksimović IRB / 23/03/2006 / Str. 1 vektori Vektor u 3D prostoru. C: int v1[3]; v1[0]=a;v1[1]=b;v1[2]=c; Fortran: INTEGER V1(3) V1(1)=a V1(2)=b V1(3)=c Skalarni
More informationfor i:=2 to n do if glasovi[i]>max then begin max:=glasovi[i]; k:=i {*promenljiva k ce cuvati indeks takmicara sa najvise glasova *} end;
{*Na Evroviziji je ucestvovalo n izvodjaca. Koji od njih je osvojio najvise glasova publike?*} program Evrovizija; glasovi:array[1..50] of integer; max,k:integer; writeln('unosi se broj izvodjaca:'); writeln('unose
More informationVII Lokalne mreže LAN SNA Digital
VII Lokalne mreže Sigurno najpoznatiji i najrašireniji način povezivanja više računara u jednu celinu predstavlja lokalna mreža - LAN (Local Area Network). One omogućavju brze mreže za razmenu podataka
More informationProgramska podrška
Programska podrška Sadržaj operativni sustav (OS) pojmovi komponente os-a tipovi os-a datotečni sustav organizacija podataka Stranica 2/53 Operativni sustav Operativni sustav je svojevrsna baza na kojoj
More informationUsmjeravanje na Internetu
Usmjeravanje na Internetu Stjepan Groš 1 Sadržaj Temeljni pojmovi iz mrežnog sloja Interneta Pojam i namjena usmjernika Proces proslijeđivanja Izrada tablica proslijeđivanja Podešavanje tablica proslijeđivanja
More informationKomunikacije i mreže
Komunikacije i mreže MARIJANA ZEKIĆ-SUŠAC EKONOMSKI FAKULTET U OSIJEKU 8-1 Što ćete naučiti u ovom poglavlju? Što su računalne mreže i kako su nastale Koji su načini klasifikacije računalnih mreža Koje
More informationUvod u računarstvo. Preddiplomski studij elektrotehnike 2009/2010. prof.dr.sc. Ivo Ipšić UUR 2009/2010
Uvod u računarstvo Preddiplomski studij elektrotehnike 2009/2010 prof.dr.sc. Ivo Ipšić 1 Saržaj kolegija Uvod u Uvod i razvoj računala računarstvo Zapis podataka i kodiranje informacija u računalu Građa
More informationLab. vježba PROGRAMIRANJE ZA INTERNET. Upute za laboratorijske vježbe. (izradio: Marin Bugarić) HTML5
Lab. vježba 5 PROGRAMIRANJE ZA INTERNET Upute za laboratorijske vježbe (izradio: Marin Bugarić) HTML5 P R O G R A M I R A N J E Z A I N T E R N E T Općenito HTML5 je posljednja verzija HyperText Markup
More information