Sistemi Operativi Avanzati e Microkernel
Questa e' la home page del corso
"Sistemi Operativi Avanzati e Microkernel". Attualmente la pagina e'
vuota, ma verra' popolata durante il corso con il materiale mostrato
a lezione.
Lezioni:
- Prima Lezione: 2021/03/01, 9:30 -> 12:00 (video della prima parte e seconda parte della lezione)
- Seconda Lezione: 2021/03/08, 9:30 -> 12:00 (video della prima parte e seconda parte della lezione)
- Terza Lezione: 2021/03/15, 9:30 -> 12:00 (video della prima parte, seconda parte e terza partedella lezione)
- Quarta Lezione: 2021/03/22, 9:30 -> 12:00 (video della prima parte e seconda parte della lezione)
- Quinta Lezione: 2021/03/29, 9:30 -> 12:00 (video della prima parte e seconda parte della lezione)
- Sesta Lezione: 2021/04/12, 9:30 -> 12:00 (video della prima parte e seconda parte della lezione)
- Virtualizzazione della tabella delle pagine
- Hardware assisted virtualization (con particolare riferimento ad Intel ed ARM)
- Discussione su bare-metal hypervisor
(esempio) e hosted hypervisor
(esempio basato su Linux)
- Settima Lezione: 2021/04/19, 9:30 -> 12:00 (video della prima parte e seconda parte della lezione)
- Ottava Lezione: 2021/04/26, 10:00 -> 12:30 (video della prima parte e seconda parte della lezione)
- Esempio di hosted hypervisor: come caricare il guest da un eseguibile diverso
- Come virtualizzare l'I/O in un hypervisor
- Eseguibili guest: come parsare i formati eseguibili (cenni ad ELF)
- ELF parser (ed altre funzionalita'): dove implementarlo? Kernel/Hypervisor, eseguibile user-space (VMM), simil-kernel apposito (loader/bootstrap/...), ...
Idee di Progetti per L'Esame
Ecco alcune possibili proposte di progetto
da svolgere per l'esame. La lista non e' esaustiva e qualsiasi idea
di progetto che copra argomenti visti a lezione puo' andare benissimo;
ricordate solo di contattarmi via email prima di iniziare a lavorare
su qualche idea.
Link Utili:
- L'emulatore QEMU, che utilizzeremo in alcune occasioni a lezione. Notare che e' generalmente pacchettizzato dalle maggiori distribuzioni Linux ed e' installabile tramite i package manager standard.
- Il kernel di Linux
- Il patchset Preempt-RT
- Sistemi dual-kernel: Xenomai,
EVL,
RTAI
- Sistemi a microkernel: l4re,
sel4,
Genode,
GNU Hurd (basato su
Mach),
Google Zircon (nota: gli "handle" sono circa equivalenti a capability),
...
- Lo standard ELF,
usato (per esempio) da ukernel ed hypervisor per parsare formati
binari di applicazioni o kernel. Vedere qui
per piu' dettagli sul formato
Slide
Esempi di Codice: