wiki:WikiStart

Version 37 (modified by monga, 10 years ago) (diff)

--

Laboratorio di Sistemi Operativi

TOC(noheading)?

Lezione 1: Introduzione

Slide

Programmi

nasm -l mioboot.lst -o mioboot.img mioboot.asm
qemu mioboot.img
# con qemu -d in_asm potete vedere (in /tmp/qemu.log) il codice eseguito dalla macchina virtuale: per la maggior parte istruzioni del BIOS 
gcc -o exec exec.c
echo -ne "\xB8\x11\x22\x33\x44" | ./exec
echo -n "ciao" | ./exec
...

Lezione 2

Slide

Esercizi

fork

Esecuzione in sequenza e parallelo

# In sequenza
./hello ; ./hello
# In parallelo
./hello & ./hello
echo $?

Cosa fa?

/usr/bin/touch piripacchio
while /bin/ls piripacchio; do
 /usr/bin/sleep 2
 /bin/echo ciao
done & ( /usr/bin/sleep 10 ; /bin/rm piripacchio )

Consultate il manuale!

man man
man touch
man ls
man 1 sleep # man 3 sleep è il manuale della funzione della libreria C
man echo
man rm

Uso del for e if

for i in dog cat fish; do if ls /bin/$i; then echo Trovato $i; else echo $i non trovato; fi; done
man test
for i in dog cat fish; do if test -f /bin/$i; then echo Trovato $i; else echo $i non trovato; fi; done

Link

Lezione 3

Slide

Materiale

Esercizi online con la shell

Lezione 4

Slide

Programmi

Esempi con la syscall clone, specifica di Linux

nasm -felf enter.asm
cc threads-tsl.c enter.o -o threads-tsl

cc -o threads-sem threads-sem.c -lrt

Esempi in Java

Lezione 5

Slide

find, archivi, segnali

Concorrenza

Programmi

Vedi Lezione 4 -- Turno 1

Lezione 6

Slide

Assembly, primi esperimenti col kernel

Permessi, Make e primi esperimenti con il kernel

Altro materiale

Lezione 7

Slide

Memorie di massa

System e kernel call

Lezione 8

Slide

Aggiunta di una system call a MINIX

diff:tags/minix-3.1.2a//tags/syscall-add-simple-foo