educare:user-mode-linux
Differences
This shows you the differences between two versions of the page.
Both sides previous revisionPrevious revision | |||
educare:user-mode-linux [2014/08/02 10:15] – profpro | educare:user-mode-linux [2020/06/08 22:20] (current) – external edit 127.0.0.1 | ||
---|---|---|---|
Line 1: | Line 1: | ||
+ | ====== User mode linux ====== | ||
+ | * È chiamato anche UML e permette di eseguire un kernel sullo stesso terminale dove si eseguono i normali processi. | ||
+ | * Permette al normale utente di eseguire un sistema Linux all' | ||
+ | * Il sistema operativo non corre alcun rischio di sicurezza perché il guest viene tutto eseguito in user mode, all' | ||
+ | * Permette di studiare il funzionamento del sistema operativo poiché questo sistema avrà le sue chiamate di sistema, la sua paginazione, | ||
+ | * La funzione HostFS permette di usare lo stesso file system del computer host e salvare solo le differenze. | ||
+ | |||
+ | ==== Documentazione ==== | ||
+ | |||
+ | * Lettura: | ||
+ | * documentazione ufficiale: //apt-get install user-mode-linux-doc// | ||
+ | |||
+ | ==== Per gli impazienti ==== | ||
+ | |||
+ | * **Se usi Debian** | ||
+ | - installare il pacchetto // | ||
+ | * < | ||
+ | - eseguire nella shell | ||
+ | * < | ||
+ | - **fine** | ||
+ | * Altrimenti, puoi ricompilare il kernel | ||
+ | |||
+ | ===== UML command line argument ===== | ||
+ | |||
+ | Il comando // | ||
+ | * comando senza argomenti | ||
+ | * < | ||
+ | * argomento //root=// per passare il device dove trovare il kernel da caricare | ||
+ | * < | ||
+ | * argomento //udb0=// per creare un dispostitivo all' | ||
+ | * < | ||
+ | * argomento //rw// per caricare il file system in lettura/ | ||
+ | * < | ||
+ | |||
+ | ===== Esempi ===== | ||
+ | |||
+ | * Si può utilizzare lo stesso file system dell' | ||
+ | * < | ||
+ | * Si può utilizzare un file system contenuto in un disco immagine (private_fs) | ||
+ | * **nota**: questo comando prima trasforma un disco immagine (/ | ||
+ | * < | ||
+ | * Si può condividere un disco immagine (shared_fs) tra più //guest// (in sola lettura) e scrivere le modifiche in un altro file (/ | ||
+ | * A volte il primo è chiamato backfile mentre il secondo COW file (Copy-On-Write) | ||
+ | * < | ||
+ | * configurazione filesystem | ||
+ | * http:// | ||
+ | * http:// | ||
+ | * configurazione rete | ||
+ | * http:// | ||
+ | |||
+ | |||
+ | ===== Compilare il kernel ===== | ||
+ | |||
+ | (Non è sempre necessario) | ||
+ | |||
+ | ==== Fase di download dei sorgenti (80 MB compressi) ==== | ||
+ | |||
+ | * < | ||
+ | * < | ||
+ | * < | ||
+ | * < | ||
+ | * < | ||
+ | * < | ||
+ | |||
+ | |||
+ | ==== Fase di configurazione ==== | ||
+ | |||
+ | * compilare un kernel in un sistema della stessa architettura //uname -a// | ||
+ | * possibilmente compilare in //chroot// sul sistema in cui si vuole compilare e installare il nuovo kernel | ||
+ | * istruzioni per il chroot (editare sdb6) | ||
+ | * < | ||
+ | do mount -B $i /mnt$i; done; sleep 1; chroot / | ||
+ | * dopo | ||
+ | * < | ||
+ | * < | ||
+ | * < | ||
+ | * < | ||
+ | * si può lavorare come utente normale | ||
+ | * < | ||
+ | * The build will use less disk space if the CONFIG_DEBUG_INFO option is disabled | ||
+ | * https:// | ||
+ | |||
+ | ==== Fase di compilazione ==== | ||
+ | |||
+ | * make distclean (necessario perchè ARCH è cambiato) | ||
+ | * make ARCH=um (attendere 15 minuti per la compilazione) | ||
+ | * produce un eseguibile ./linux | ||
+ | * usando //strip// si potrebbe ridurre la dimensione dell' | ||
+ | |||
+ | ==== Fase di utilizzo ==== | ||
+ | |||
+ | * L' | ||
+ | * < | ||
+ | * per conferma eseguire //uname -a; ps ax// | ||
+ | |||
+ | |||
+ | |||
+ | |||
+ | |||
+ | * DA FARE: uno script che monta il file system..... | ||
+ | * DA FARE: eseguire lo script come init | ||
+ | * VEDI: http:// | ||
+ | * http:// | ||
+ | * http:// | ||