33
Izgradnja operacijskog sustava uporabom mikrojezgre Senko Rašić

Izgradnja OS-a uporabom mikrojezgre

Embed Size (px)

Citation preview

Page 1: Izgradnja OS-a uporabom mikrojezgre

Izgradnja operacijskog sustavauporabom mikrojezgre

Senko Rašić

Page 2: Izgradnja OS-a uporabom mikrojezgre

operacijski sustav:

Dio programske podrške koji služiupravljanju resursima sklopovlja ibrine se za sigurno izvođenje programa.

Page 3: Izgradnja OS-a uporabom mikrojezgre
Page 4: Izgradnja OS-a uporabom mikrojezgre

ideja mikrojezgre:

Upravljački programi sklopovlja i razniservisi su obični programi.

U jezgri ostaviti samo nužnufunkcionalnost.

Page 5: Izgradnja OS-a uporabom mikrojezgre
Page 6: Izgradnja OS-a uporabom mikrojezgre
Page 7: Izgradnja OS-a uporabom mikrojezgre
Page 8: Izgradnja OS-a uporabom mikrojezgre

intenzivna komunikacija među procesima+ velika cijena pojedinog IPC-a

= loše performanse

Page 9: Izgradnja OS-a uporabom mikrojezgre

današnji sustavi:Monolitne jezgre s nekim konceptimamikrojezgre

nastavak istraživanja:L4, Exokernel, ...

Page 10: Izgradnja OS-a uporabom mikrojezgre

L4 mikrojezgra

● rekurzivni adresni prostori● visoko optimirani IPC

L4Ka::Pistachio – ostvarenje sveučilišta u

Karlsruheu

Page 11: Izgradnja OS-a uporabom mikrojezgre
Page 12: Izgradnja OS-a uporabom mikrojezgre
Page 13: Izgradnja OS-a uporabom mikrojezgre
Page 14: Izgradnja OS-a uporabom mikrojezgre
Page 15: Izgradnja OS-a uporabom mikrojezgre
Page 16: Izgradnja OS-a uporabom mikrojezgre

Otvoreni izvorni kôd● dostupnost● zajednica● jednostavnost prilagodbe

Page 17: Izgradnja OS-a uporabom mikrojezgre

Hasenpfeffer

● temeljen na L4 mikrojezgri● skup poslužitelja koji komuniciraju IPC-om● korištenje gotovih komponenti sa otvorenim

izvornim kôdom

Page 18: Izgradnja OS-a uporabom mikrojezgre
Page 19: Izgradnja OS-a uporabom mikrojezgre

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

...

}

Page 20: Izgradnja OS-a uporabom mikrojezgre

Poziv udaljenih procedura

Page 21: Izgradnja OS-a uporabom mikrojezgre

sposobnost:

Pravo pozivanja neke usluge u sustavu.

Page 22: Izgradnja OS-a uporabom mikrojezgre

Sustav imenovanja

Page 23: Izgradnja OS-a uporabom mikrojezgre

Sustav imenovanja

Page 24: Izgradnja OS-a uporabom mikrojezgre

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

Page 25: Izgradnja OS-a uporabom mikrojezgre

Korištene komponente

● pristup IDE diskovima● ispis na zaslon i ulaz s tipkovnice● C biblioteka● TinyScheme interpreter● TinyBasic interpreter

Page 26: Izgradnja OS-a uporabom mikrojezgre

Podizanje sustava

Page 27: Izgradnja OS-a uporabom mikrojezgre

Razvojni sustav

● Linux sustav● GNU C/C++ prevodioc● L4Ka::Pistachio razvojna okolina

Page 28: Izgradnja OS-a uporabom mikrojezgre

Testiranje

● QEMU● VMWare Workstation● L4 KDB (Kernel Debugger)

Testna okolina:– slika diskete za podizanje sustava– slika čvrstog diska sa ext2 datotečnim sustavom

Page 29: Izgradnja OS-a uporabom mikrojezgre

QEMU i KDB u akciji

Page 30: Izgradnja OS-a uporabom mikrojezgre

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

Page 31: Izgradnja OS-a uporabom mikrojezgre

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

Page 32: Izgradnja OS-a uporabom mikrojezgre

Razvoj programske podrške

Page 33: Izgradnja OS-a uporabom mikrojezgre

Zaključak

izgrađen sustav:– rudimentaran– prilagodljiv i proširiv

mikrojezgra:– dobra osnova za buduće sustave

otvoren izvorni kôd:– dostupnost– prilagodljivost