Download
struktura linux n.
Skip this Video
Loading SlideShow in 5 Seconds..
Struktura LINUX PowerPoint Presentation
Download Presentation
Struktura LINUX

Struktura LINUX

168 Views Download Presentation
Download Presentation

Struktura LINUX

- - - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - - -
Presentation Transcript

  1. Struktura LINUX

  2. Programske plasti LINUX Aplikacije: prevajalniki, urejevalniki, Grafični up. vmesniki AUI LINUX lupine: Bourne Again (bash), ... knjižnice Vmesnik sistemskih klicev API Upravljanje s pomnilnikom Upravljanje z datotekami Upravljanje s procesi Jedro (Kernel) Gonilniki naprav BIOS Računalniška aparaturna oprema

  3. Pomen komponent LINUX (1) • Kernel • Najbolj pomemben del operacijskega sistema • Vmesnik sistemskih klicev • To je skupina funkcij (pogosto jim pravimo tudi API), ki nudijo aplikacijam in knjižničnim rutinam storitve jedra • Application User’s Interface • Vmesnik med jedrom in uporabnikom • Omogoča uporabniku tvorbo ukazov sistemu • Poznamo tekstovno zasnovane in grafično zasnovane vmesnike

  4. Pomen komponent LINUX (2) • Upravljanje z datotekami • Nadzira tvorbo in brisanje datotek ter vzdrževanje direktorijev • Na mnogouporabniškem sistemu mora imeti vsak uporabnik svoje pravice dostopa do datotek in direktorijev • Upravljanje s procesi • V sistemu lahko sočasno teče več programov • Ko program začne teči, postane proces • Če isto programsko kodo izvajamo dvakrat, imamo dva različna procesa • Jedro upravlja s procesi tako, da jih tvori, prekinja in zaključuje • Proces je zaščiten pred drugimi procesi in lahko z njimi komunicira

  5. Pomen komponent LINUX (3) • Upravljanje s pomnilnikom • Podatke, ki jih trenutno ne potrebujemo, moramo shraniti na disk. Tiste podatke, ki jih spet potrebujemo, skopiramo z diska nazaj v RAM. • Temu mehanizmu pravimo Upravljanje s pomnilnikom • Gonilniki naprav • Vmesniki med jedrom in BIOS • Različne naprave imajo različne gonilnike

  6. Podrobna zgradba LINUX Aplikacije Sistemske knjižnice (libc) Vmesnik sistemskih klicev Vhod-izhod Vezano na procese Datotečni sistemi razvrščevalnik Moduli Omreženje Upravljanje s pomnilnikom Gonilniki naprav Medprocesna komunikacija Arhitekturno odvisna koda Aparaturna oprema

  7. Uslužnostni programi, knjižnice Aplikacije Sistemske knjižnice (libc) Vmesnik sistemskih klicev Vhod-izhod Vezano na procese Datotečni sistemi razvrščevalnik Moduli Omreženje Upravljanje s pomnilnikom Gonilniki naprav Medprocesna komunikacija Arhitekturno odvisna koda Aparaturna oprema

  8. Komponente sistema LINUX • Sistemske knjižnice definirajo standardno množico funkcij, preko katerih interaktirajo aplikacije z jedrom. V teh knjižnicah je implementirana tudi tista funkcionalnost operacijskega sistema, ki ne potrebuje privilegijev režima jedra. • Sistemski uslužnostni programi (system utilities) opravljajo posamezne specializirane naloge upravljanja.

  9. Nekateri uslužnostni programi (utilities)

  10. Jedro (kernel) Aplikacije Sistemske knjižnice (libc) Vmesnik sistemskih klicev Vhod-izhod Vezano na procese Datotečni sistemi razvrščevalnik Moduli Omreženje Upravljanje s pomnilnikom Gonilniki naprav Medprocesna komunikacija Arhitekturno odvisna koda Aparaturna oprema

  11. Vhod - izhod

  12. Vhod in izhod • Datotečni sistem dostopa do diskov preko dvojnega vmesnega pomnenja: • Podatki so pomnjeni v “page cache”, ki je del virtualnega pomnilnika • Metapodatke vmesno pomnimo v medpomnilniku (buffer cache), ki je indeksiran glede na fizične diskovne bloke • Linux deli naprave v tri razrede: • Blokovne napraveomogočajo naključni dostop do povsem neodvisnih podatkovnih blokov fiksne dolžine • Znakovne napravevključujejo večino drugih naprav. Ne nudijo podpore funkcionalnosti navadnih datotek • Omrežne napraveso povezane z omrežnim podsistemom jedra Več

  13. Blokovne in znakovne naprave

  14. Blokovne naprave • Nudijo glavni vmesnik do vseh diskovnih pogonov v sistemu • Vmesno pomnenje blokov (buffer cache) ima dva namena: • Deluje kot zaloga vmesnih polj za aktivne vhode oziroma izhode • Služi kot medpomnilnik za zaključene vhodno izhodne operacije

  15. Znakovne naprave • Gonilnik naprave, ki ne nudi naključnega dostopa do fiksnih podatkovnih blokov • Gonilnik znakovne naprave mora registrirati skupino funkcij, ki implementirajo različne vhodno izhodne operacije gonilnika • Jedro samo praktično ne izvede nobenih predelav datotečnih vhodnih/izhodnih zahtevkov, pač pa preprosto posreduje zahtevek napravi • Izjema v tem pravilu je podskupina gonilnikov znakovnih naprav, ki implementirajo terminale (zanje vzdržuje jedro standarden vmesnik)

  16. Medprocesna komunikacija • Linux s pomočjo signalov obvesti procese, da je prišlo do nekega dogodka • Število signalov je omejeno in ne morejo prenašati podatkov: Proces dobi le informacijo, da je prišlo do signala • Jedro ne uporablja signalov za komunikacijo med procesi, ki tečejo v “režimu jedra” Proces A Proces B

  17. Posredovanje podatkov med procesi • Proces-otrok lahko podeduje komunikacijski kanal od svojega očeta. Temu komunikacijskemu mehanizmu pravimo “cevi” (pipes). V en konec cevi pišemo podatke, na drugem jih beremo. • Zelo hiter način podatkovne komunikacije med dvema procesoma predstavlja souporabljen pomnilnik (shared memory); vsak podatek, ki ga en proces v tak del pomnilnika zapiše, je takoj na voljo drugemu procesu. • Vendar za tak način medprocesne komunikacije potrebujemo tudi mehanizem sinhronizacije Proces A Proces B

  18. Omrežna struktura • Omreženje (networking) je pomembna funkcionalnost Linuxa. • Podpira standardne protokole za komunikacijo med sistemi UNIX • Implementirane ima tudi protokole, za omrežja računalnikov PC • Interno v jedru Linux je omreženje, implementirano s tremi programskimi plastmi: • Vmesniki z vtičnicami (socket interface) • Gonilniki protokolov • Gonilniki omrežnih naprav

  19. Moduli jedra Aplikacije Sistemske knjižnice (libc) Vmesnik sistemskih klicev Vhod-izhod Vezano na procese Datotečni sistemi razvrščevalnik Moduli Omreženje Upravljanje s pomnilnikom Gonilniki naprav Medprocesna komunikacija Arhitekturno odvisna koda Aparaturna oprema

  20. Moduli jedraLoadable Kernel Modules (LKM) • Sekcije kode jedra, ki jo lahko prevedemo in naložimo ali odložimo neodvisno od preostanka jedra. • Modul jedra lahko tipično implementira gonilnik naprave, datotečni sistem ali omrežni protokol. • Moduli jedra omogočajo, da vzpostavimo standardno, minimalno jedro brez dodatnih vgrajenih gonilnikov. • Tri komponente, ki podpirajo module Linuxa: • Upravljanje z moduli • Registracija gonilnikov • Reševanje konfliktov

  21. Upravljanje z moduli (Module Management) • Podpira nalaganje modulov v pomnilnik in njihovo interakcijo s preostankom jedra. • Nalaganje modulov je razdeljeno v dve sekciji: • Upravljanje delov kode modula v pomnilniku jedra • Rokovanje s simboli, ki jih lahko naslavljajo moduli • “module requestor” upravlja nalaganje modulov, ki so zahtevani, vendar še niso naloženi; Module, ki jih ne potrebujemo več, spet odloži.

  22. Registracija gonilnikov • Tako lahko preostanek jedra informiramo, da je na voljo nov gonilnik. • Jedro vzdržuje dinamično tabelo vseh znanih gonilnikov in nudi skupino rutin za dodajanje ali odstranjevanje gonilnikov iz teh tabel. • Registracijske tabele vsebujejo naslednje elemente: • Gonilnike naprav • Datotečne sisteme • Omrežne protokole • Binarni format

  23. Reševanje konfliktov • Mehanizem, ki omogoča različnim gonilnikom naprav rezervacijo aparaturnih sredstev in zaščito teh sredstev, da jih ne bi uporabil kakšen drug gonilnik

  24. Osnovni LKM (program) Vsak LKM ima najmanj naslednji dve funkciji: • int init_module(void) /*used for all initialition stuff*/ • { • ... • } • void cleanup_module(void) /*used for a clean shutdown*/ • { • ... • } Nalaganje modula sme izvesti administrator (root) s pomočjo naslednjega ukaza: • # insmod module.o

  25. Ukazi za delo z LKM • insmod • Insert an LKM into the kernel. • rmmod • Remove an LKM from the kernel. • depmod • Determine interdependencies between LKMs. • kerneld • Kerneld daemon program • ksyms • Display symbols that are exported by the kernel for use by new LKMs. • lsmod • List currently loaded LKMs. • modinfo • Display contents of .modinfo section in an LKM object file. • modprobe • Insert or remove an LKM or set of LKMs intelligently. For example, if you must load A before loading B, Modprobe will automatically load A when you tell it to load B.