Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Izgradnja operacijskog sustava uporabom mikrojezgre

Izgradnja operacijskog sustava uporabom mikrojezgre

Diploma thesis presentation, a description of microkernel-based operating system built using open source components. Croatian language.

382b18eebb1386e80ff7e20fd1eb784e?s=128

Senko Rašić

March 31, 2006
Tweet

Transcript

  1. Izgradnja operacijskog sustava uporabom mikrojezgre Senko Rašić

  2. operacijski sustav: Dio programske podrške koji služi upravljanju resursima sklopovlja

    i brine se za sigurno izvođenje programa.
  3. None
  4. ideja mikrojezgre: Upravljački programi sklopovlja i razni servisi su obični

    programi. U jezgri ostaviti samo nužnu funkcionalnost.
  5. None
  6. None
  7. None
  8. intenzivna komunikacija među procesima + velika cijena pojedinog IPC-a =

    loše performanse
  9. današnji sustavi: Monolitne jezgre s nekim konceptima mikrojezgre nastavak istraživanja:

    L4, Exokernel, ...
  10. L4 mikrojezgra • rekurzivni adresni prostori • visoko optimirani IPC

    L4Ka::Pistachio – ostvarenje sveučilišta u Karlsruheu
  11. None
  12. None
  13. None
  14. None
  15. None
  16. Otvoreni izvorni kôd • dostupnost • zajednica • jednostavnost prilagodbe

  17. Hasenpfeffer • temeljen na L4 mikrojezgri • skup poslužitelja koji

    komuniciraju IPC-om • korištenje gotovih komponenti sa otvorenim izvornim kôdom
  18. None
  19. Komunikacija među procesima • procesi poslužitelj (server) i korisnik (client)

    • sučelje (interface) komunikacije • potreban kôd generiran IDL4 alatom interface File { boolean Read(in Capability_t cap,in unsigned long offset, out byteseq_t buffer, inout unsigned long size); unsigned long Size(in Capability_t cap); ... }
  20. Poziv udaljenih procedura

  21. sposobnost: Pravo pozivanja neke usluge u sustavu.

  22. Sustav imenovanja

  23. Sustav imenovanja

  24. Funkcionalnost • učitavanje i izvršavanje programa (ELF) • višezadaćnost, višenitnost

    • dostupna standardna C biblioteka • korištenje čvrstog diska (IDE) • programiranje u TinyScheme i TinyBasic jezicima
  25. Korištene komponente • pristup IDE diskovima • ispis na zaslon

    i ulaz s tipkovnice • C biblioteka • TinyScheme interpreter • TinyBasic interpreter
  26. Podizanje sustava

  27. Razvojni sustav • Linux sustav • GNU C/C++ prevodioc •

    L4Ka::Pistachio razvojna okolina
  28. Testiranje • QEMU • VMWare Workstation • L4 KDB (Kernel

    Debugger) Testna okolina: – slika diskete za podizanje sustava – slika čvrstog diska sa ext2 datotečnim sustavom
  29. QEMU i KDB u akciji

  30. Razvoj programske podrške #include <stdio.h> #include <l4/ipc.h> #define SEKUNDA 1000000UL

    int main(int argc, char *argv[]) { char buf[1024]; L4_Sleep(L4_TimePeriod(4 * SEKUNDA)); printf("Pozdrav, ja sam %s!\nTko ste vi: ", argv[0]); fgets(buf, 1023, stdin); printf("Pozdrav, %s\n", buf); return 0; }
  31. Razvoj programske podrške • Izvorni kôd (standardni C program) •

    Konfiguracijska datoteka za izgradnju – prema predlošku iz izvornog kôda sustava • Izgradnja i kopiranje u sliku diskete • Konfiguracija učitavanja sustava • Pokretanje emulacije računala i testiranje
  32. Razvoj programske podrške

  33. Zaključak izgrađen sustav: – rudimentaran – prilagodljiv i proširiv mikrojezgra:

    – dobra osnova za buduće sustave otvoren izvorni kôd: – dostupnost – prilagodljivost