- microkernelul reprezinta cantitatea minima de software ce poate asigura mecanismele necesare pentru implementarea unui sistem de operare
- functioneaza pe principiul refolosirii si al izolarii componentelor
Manageriaza resursele sistemului si expune interfetele uniform astfel incat aplicatiile la nivel de utilizator ce ruleaza pe masina virtuala sa poata interactiona cu kernelul sistemului
Manageriaza resursele sistemului si expune interfetele uniform astfel incat aplicatiile la nivel de utilizator ce ruleaza pe masina virtuala sa poata interactiona cu kernelul sistemului
VMM( VIRTUAL MACHINE MONITOR) reprezinta o componenta ce ruleaza pe hardware-ul fizic - > ofera mecanisme puternice de izolare a resurselor
- > insarcinat cu partajarea componentei hardware
- > permite multiplexarea mai multor masini virtuale peste un singur set de resurse
fizice
VMM are abilitatea de a suporta executia aplicatiilor “out of the box”
Ultimele cercetari isi propun dezvoltarea functionalitatii VMM peste microkernel
IPC( Inter-Process Communication) –mecanismul ce permite unor procese separate sa comunice intre ele
doua tipuri de mecanisme IPC sincron
asincron
Microkernelul L4
reprezinta a doua generatie de kerneluri, ce isi propunea sa identifice si sa imbunatateasca problemele ce tineau de designul si implementarea IPC si de asemenea sa imbunatateasca indicii de performanta ale acestui mecanism
asigura o securitate si o izolare a componentelor mult imbunatatita, si care nu depinde de platforma pe care ruleaza
Asigura cele 4 mecanisme de baza : spatiile de adrese, firele de executie, planificarea si comunicarea inter-procese sincrona
Evenimentele generate de catre hardware precum exceptiile si intreruperile sunt convertite in mesaje IPC generate de kernel
Cand are loc o intrerupere hardware, kernelul sintetizeaza mesajul intr-un fir de executie care este inregistrat ca fiind manipulatorul acelei intreruperi
Reprezentarea unei masini virtuale presupune indeplinirea urmatoarelor trei cerinte:
Reprezentarea unei masini virtuale presupune indeplinirea urmatoarelor trei cerinte:
“oaspetele” masinii virtuale necesita o duplicare eficienta si de incredere a sistemului masinii fizice
VMM necesita un control complet al masinii virtuale, in special a resurselor fizice alocate si a executiei acestora
Microkernelul are nevoie de o reprezentare a resurselor masinii virtuale pentru a impune anumite constrangeri asupra sistemului precum izolarea si integritatea
Memoria fizica
Memoria fizica
pentru a virtualiza memoria fizica se foloseste memoria virtuala, aceasta permitand controlul complet asupra accesului memoriei fizice a masinii virtuale
intr-un microkernel L4 spatiul memoriei virtuale este reprezentat de un spatiu de adrese - > acesta va fi populat folosind mesaje L4 de mapare, mapand si asigurand parti ale propriului spatiu de adrese catre spatiul masinii virtuale
Memoria virtuala
Memoria virtuala
exista situatii in care sistemul de operare din cadrul masinii virtuale doreste crearea proprie a memoriei virtuale
pentru a mentine “iluzia” de acces catre memoria virtuala, sistemul de masina virtuala trebuie sa transforme adresa virtuala a sistemului oaspete intr-o adresa fizica a sistemului gazda
shadow page-table – tabel ce permite translatarea directa a adreselor virtuale ale guest-ului in adrese fizice ale sistemului gazda
generarea acestui tabel implica toate cele trei componente majore arhitecturale -> microkernelul aplica izolarea si independenta diferitelor spatii de adrese ce contin aplicatiile masinii virtuale
-> VMM necesita control deplin asupra resurselor fizice ocupate de catre masina virtuala
-> sistemul de operare oaspete trebuie sa asigura crearea spatiilor virtuale arbitrare de adrese in propria memorie fizica
Sistemele de operare moderne sunt dependente puternic de mecanismele software ce ajuta la protectia resurselor fata de utilizatori
Sistemele de operare moderne sunt dependente puternic de mecanismele software ce ajuta la protectia resurselor fata de utilizatori
Mecanismele hardware sunt ieftine si eficiente in protejarea interfetelor, insa accesul catre setul bogat de resurse precum fisiere, socketuri sau fire de executie este protejat aproape intotdeauna, prin verificari software
Mecanismele hardware sunt deseori rigide, implicite, imprecise si nu au acelasi grad de optimizare ca si cele software
Mecanisme conditionale – permit un control detaliat al accesului prin intermediul unor declaratii de tip “if” incorporatein codul sursa
Definirea domeniul de date – structuri de date per proces ce impiedica implicit setul de resurse pe care un proces le poate accesa
Protectia memoriei – suport detaliat pentru un control explicit al citirii, scrierii, si executiei accesului catre adrese existente
Sebastian Biemuller, Hardware-Supported Virtualization for the L4 Microkernel, pag. 17-25, Septembrie 2006
Sebastian Biemuller, Hardware-Supported Virtualization for the L4 Microkernel, pag. 17-25, Septembrie 2006
Steven Hand, Andrew Warfield, Keir Fraser, Evangelos Kotsovinos, Dan Magenheimer, Are Virtual Machines Monitors Microkernels Done Right?, 2005
Brian Bershad, Stefan Savage, Przemyslaw Pardyak, David Becker, Marc Fiuczynsky, Protection is a Software Issue, Dept. of Computer Science and Engineering, University of Washington, 2002
Xiaoqi Lu, Scott Smith, A Secure Microkernel Virtual Machine, Department of Computer Science, The Johns Hopkins University, 2005