$30 off During Our Annual Pro Sale. View Details »

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.

Senko Rašić

March 31, 2006
Tweet

More Decks by Senko Rašić

Other Decks in Research

Transcript

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

    View Slide

  2. operacijski sustav:
    Dio programske podrške koji služi
    upravljanju resursima sklopovlja i
    brine se za sigurno izvođenje programa.

    View Slide

  3. View Slide

  4. ideja mikrojezgre:
    Upravljački programi sklopovlja i razni
    servisi su obični programi.
    U jezgri ostaviti samo nužnu
    funkcionalnost.

    View Slide

  5. View Slide

  6. View Slide

  7. View Slide

  8. intenzivna komunikacija među procesima
    + velika cijena pojedinog IPC-a
    = loše performanse

    View Slide

  9. današnji sustavi:
    Monolitne jezgre s nekim konceptima
    mikrojezgre
    nastavak istraživanja:
    L4, Exokernel, ...

    View Slide

  10. L4 mikrojezgra

    rekurzivni adresni prostori

    visoko optimirani IPC
    L4Ka::Pistachio – ostvarenje sveučilišta u
    Karlsruheu

    View Slide

  11. View Slide

  12. View Slide

  13. View Slide

  14. View Slide

  15. View Slide

  16. Otvoreni izvorni kôd

    dostupnost

    zajednica

    jednostavnost prilagodbe

    View Slide

  17. Hasenpfeffer

    temeljen na L4 mikrojezgri

    skup poslužitelja koji komuniciraju IPC-om

    korištenje gotovih komponenti sa otvorenim
    izvornim kôdom

    View Slide

  18. View Slide

  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);
    ...
    }

    View Slide

  20. Poziv udaljenih procedura

    View Slide

  21. sposobnost:
    Pravo pozivanja neke usluge u sustavu.

    View Slide

  22. Sustav imenovanja

    View Slide

  23. Sustav imenovanja

    View Slide

  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

    View Slide

  25. Korištene komponente

    pristup IDE diskovima

    ispis na zaslon i ulaz s tipkovnice

    C biblioteka

    TinyScheme interpreter

    TinyBasic interpreter

    View Slide

  26. Podizanje sustava

    View Slide

  27. Razvojni sustav

    Linux sustav

    GNU C/C++ prevodioc

    L4Ka::Pistachio razvojna okolina

    View Slide

  28. Testiranje

    QEMU

    VMWare Workstation

    L4 KDB (Kernel Debugger)
    Testna okolina:
    – slika diskete za podizanje sustava
    – slika čvrstog diska sa ext2 datotečnim sustavom

    View Slide

  29. QEMU i KDB u akciji

    View Slide

  30. Razvoj programske podrške
    #include
    #include
    #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;
    }

    View Slide

  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

    View Slide

  32. Razvoj programske podrške

    View Slide

  33. Zaključak
    izgrađen sustav:
    – rudimentaran
    – prilagodljiv i proširiv
    mikrojezgra:
    – dobra osnova za buduće sustave
    otvoren izvorni kôd:
    – dostupnost
    – prilagodljivost

    View Slide