1 / 25

Struktura LINUX

Struktura LINUX. Programske plasti LINUX. A plikacije : 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

makaio
Download Presentation

Struktura LINUX

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

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.

More Related