Old:Virtualizzazione - user mode linux: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
 
(23 versioni intermedie di 5 utenti non mostrate)
Riga 1: Riga 1:
{{Old}}
==Introduzione==
==Introduzione==
Che tipo di modem ADSL bisogna comprare per avere piena compatibilit� con GNU/Linux? E quanto � facile installere onguno di questi modem su Debian?
[http://user-mode-linux.sourceforge.net/ User Mode Linux(UML)] è un metodo sicuro per provare nuove versioni del kernel Linux e processi. Si possono far girare programmi difettosi (buggy), fare esperimenti con kernel nuovi e distribuzioni nuove, si può mettere mano alle parti più "intime" di un sistema Linux senza intaccare il sistema che realmente sta girando sulla macchina.
Questa � l'eterna domanda che tutti gli utenti GNU/Linux in procinto di acquistare uno di questi modem si sono fatti (o hanno fatto ad altri) almeno una volta.


Per rispondere a questa domanda bisogna innanzitutto considerare il fatto che in questo campo le cose cambiano molto rapidamente, quindi un ottimo consiglio sicuramente �:
UML fornisce una macchina virtuale che può avere più risorse fisiche e programmi virtualizzati della macchina-sistema reale. Lo spazio disco delle macchine virtuali è contenuto in singoli file sul disco fisso.


''qualunque informazione troviate in giro, leggete la data in cui � stata riportata!''
Si può assegnare alla macchina virtuale solo l'hardware di cui si ha bisogno. Con accessi limitati, niente di ciò che gira sulla macchina virtuale può cambiare o danneggiare il sistema fisico reale o il suo software.


Detto questo, vediamo cosa offre il mercato.
{{Box | Note |Il tutto è stato eseguito su '''testing/Etch'''. Da adesso in poi mi riferirò a ''user mode linux'' con il nome '''UML''', alla macchina fisica con il nome ''host'' e alla macchina virtuale con ''ospite''}}


Al momento della stesura di questo documento ci sono sostanzialmente tre tipi di prodotti che possono connettere il vostro PC alla linea ADSL e quindi ad internet: i modem ethernet, i modem-router e i modem USB.
==Installazione==
Per avere UML all'opera dobbiamo ricompilare il kernel con la '''SKAS'''(''Separate Kernel Address Space'') patch che si trova già nei [[repository]]:


== Tipi di Modem ==
<pre>
===Modem ethernet===
# apt-get install linux-patch-skas
I modem ethernet sono in pratica dei mini computer che gestiscono autonomamente la connessione alla linea ADSL. Hanno una porta di rete a cui connettere il PC, e una presa telefonica per la linea ADSL.
$ cd /usr/src/linux
$ make-kpkg clean
$ make-kpkg --added-patches skas --rootcmd fakeroot --append-to-version -skas --initrd --config menuconfig kernel_image
</pre>


===Modem-router===
In "''Processor type and feature''" troverete due opzioni in più:
I modem-router sono molto simili ai modem ethernet: anch'essi sono dei mini computer che gestiscono autonomamente la connessione alla linea ADSL, ma sono pi� sofisticati.
Possono avere diverse porte, ethernet, USB e anche wifi, e permettono quindi di condividere un'unica connessione tra pi� PC, ma anche l'interconnessione tra i vari PC di una rete interna.
Di solito implementano anche un firewall (in commercio se ne trovano anche alcuni che contengono un kernel Linux).
===ModemUSB===
I modem USB sono molto diversi. Essi nascono dal principio secondo cui per fabbricare un dispositivo � molto pi� economico implementare delle funzioni via software che inserire dei pezzi di hardware in pi�. Per riprendere una frase letta in rete, questi modem "hanno dentro meno elettronica del mio posacenere", ma non date giudizi affrettati, perch� come vedremo questo fatto non � necessariamente negativo.


===Quale delle tre?===
<pre>
Ora mettiamoci dal punto di vista di un PC che vogliamo connettere ad internet, e che quindi chiameremo interno.
[ ] /proc/mm support
[ ] Make UML childs /proc/<pid> completely browsable
</pre>


Qualunque Sistema Operativo stiamo usando, scartiamo a priori i modem-router con connessioni USB in quanto aggiungono la necessit� di installare un driver senza trarre da ci� il bench� minimo beneficio.
Settateli e compilate il kernel, alla fine della compilazione installate il pacchetto e riavviate.


Poich� i modem-router ethernet (e wifi) e i modem ethernet sono dei mini computer, qualunque PC con qualunque Sistema Operativo li riconosce come tali e li identifica tramite l'interfaccia di rete interna (cio� quella a cui � connesso il nostro PC).
Una volta riavviato installiamo alcuni software:
Per connettersi ad internet sar� allora sufficiente inserire come gateway l'indirizzo ip di questa interfaccia di rete, e poi lanciare il programma che si occupa di stabilire la connessione con il provider, su GNU/Linux di solito pppd.


Questo approccio ha il vantaggio di essere indipendente dal S.O., in quanto il grosso del lavoro viene fatto automaticamente dal modem in questione.
<pre>
Dal punto di vista della sicurezza, per� questi modem presentano qualche problema intrinseco.
# apt-get source user-mode-linux # da utente
# apt-get install user-mode-linux-doc uml-utilities
</pre>


Consideriamo un modem ethernet: dal momento che questi modem non implementano firewall di sorta, potremmo pensare di proteggerci da internet attivando un firewall sul nostro PC. In questo modo, per� il firewall risulta essere tra il nostro PC e il modem, che, come ricorderemo, � un computer connesso a internet e presenta due interfacce: una interna che vediamo solo noi, ed una esterna che noi non vediamo ma che risulta visibile da tutto il resto del mondo.  
Il pacchetto user-mode-linux contiene i sorgenti del kernel patchati per  diventare degli eseguibili UML.
User mode linux ha bisogno di un kernel modificato e patchato per essere eseguibile dall'utente (user-space).
Il kernel che risiede su host sarà un vero e proprio avviabile con opzioni da riga di comando simili a quelle per bootare un kernel, per avere i moduli sulla immagine dovrete montarli con hostfs (il kernel di default è un monolite che boota dando solo qualche warning su moduli non trovati e non ha hostfs attivato).


Quell'interfaccia � identificata dal numero ip che il nostro provider ci ha fornito per la connessione ad internet cio� il numero che al momento rappresenta la nostra identit� in internet. Questo d� la possibilit� a un eventuale malintenzionato di "rubare" la nostra identit� e compiere azioni arbitrarie spacciandosi per noi (per esempio pagare qualcosa tramite addebito in bolletta telefonica, o anche attaccare altri computer in internet).
Da <code>'''/usr/share/doc/user-mode-linux/README.Debian'''</code>:


Un modem-router da questo punto di vista � pi� sicuro, visto che il firewall che implementa protegge anche il numero ip. Sfortunatamente un firewall implementato in questo modo di solito � poco flessibile (oppure molto costoso!) e rende la vita decisamente difficile a chi per esempio vuole usare programmi di file sharing, o a chi vorrebbe utilizzare features avanzate come DNAT o SNAT.  
Compilare un pacchetto kernel UML.


I modem USB, diversamente dagli altri presentati prima, non sono dei computer, ma delle periferiche.  
Devi avere apt configurato per poter scaricare i sorgenti dei pacchetti.<br/>
Ad esempio:
<pre>deb-src http://it.debian.org/debian main contrib</pre>


Questo significa da un lato che sar� indispensabile, per farli funzionare, avere un driver apposito (leggi: un modulo per il kernel), un programma in grado di gestire il modem tramite il driver, e, quasi sempre, anche un firmware, cio� il programma che fa funzionare il modem, e che deve essere reso disponibile per il modem stesso al momento del boot, visto che questo non dispone di una memoria statica interna.
<pre>
# apt-get source user-mode-linux
</pre>


E' evidente che tutto questo si traduce in una procedura di installazione decisamente pi� laboriosa, peraltro possibile solo per quei modem per cui esistono dei driver per Linux.
Puoi farlo con fakeroot la doc originale è sbagliata ;D provare per credere
D'altro canto per�, nel caso il nostro modem sia supportato, potremo godere appieno di tutta la flessibilit� e sicurezza di iptables, il firewall implementato all'interno del kernel Linux. Infatti, dal momento che un modem USB risulta essere una periferica, una volta installato esso diverr� a tutti gli effetti una interfaccia di rete del nostro PC, e pertanto risulter� all'interno del firewall.
<pre>
$ cd user-mode-linux-UMLVERSION
# debian/rules unpack
</pre>


Detto tutto ci�, a voi la scelta!
Oppure, decomprimi un altro sorgente e aggiorna kernel_version in debian/rules
<pre>
# debian/rules patch
</pre>


== Installazione di Debian ==
Oppure, applica UML patch a mano e aggiusta patch-stamp:
<pre>
$ cd kernel-source-KVERSION
</pre>


Una delle modalit� pi� diffuse di installazione di Debian � il net-install (vedere la guida [[Note sull'installazione di Debian]] per ulteriori dettagli). In questo tipo di installazione � preferibile che che il modem sia supportato dal net-install senza bisogno di scaricare pacchetti aggiuntivi. In caso contrario la procedura di installazione diventa pi� laboriosa perch� � necessario disporre di un secondo sistema connesso ad internet per scaricare i pacchetti aggiuntivi necessari, oppure per condividere la connessione tramite una normale scheda di rete (per un esempio pratico vedere: [[Installare i driver eagle-adsl]]).
Potete anche scegliere di fare solo moduli e vmlinux, la immagine bz non mi serve ad altro che backup, sconsiglio di usare initrd.
<pre>
$ make defconfig ARCH=um && make [menu,x]config ARCH=um # make all ARCH=um
</pre>


Nel caso di '''modem-router ethernet''' o di '''modem ethernet''', come visto, la connessione non richiede driver particolari dato che il modem � una interfaccia di rete standard.
Tutti i comandi makefile devono includere ARCH=um
<pre>
$ cd ..
$ dpkg-buildpackage -rfakeroot -nc -uc
</pre>


Nel caso dei modem usb, invece, bisogna stare attenti al particolare tipo di modem usato. Se infatti i driver per il modem non sono inclusi nel net-install bisogner� scaricare i pacchetti aggiuntivi tramite una seconda connessione (e se � richiesta la compilazione di un modulo scaricare tutti i pacchetti necessari � abbastanza scomodo, a meno di non disporre di una connessione ethernet provvisoria).
Bene ora siete pronti a installarlo:
Ultimamente sono stati inclusi nel kernel Linux i driver per alcuni di questi modem, quindi la loro procedura di installazione non necessita di ricompilazione del kernel.
<pre>
Tra i driver gi� inclusi nel kernel Linux c'� quello per l'Alcatel Speedtouch (dal 2.6.8) e quello per i modem che usano il chipset Conexant e che sono supportati dal progetto Accesssrunner (dal 2.6.13). Per vedere se il modem posseduto � supportato e per la procedura di installazione vedere [[Installare i driver conexant accessrunner]]
# dpkg -i ../user-mode-linux_2.n.nn-1um-2_i386.deb
</pre>


Inoltre, qualora fosse necessario reperire il firmware del modem, si potrebbe usare quello presente nel cd dei driver del modem per windows.
Avete la possibilità di montare lo stesso sistema con host fs.
 
Trovate informazioni riguardo il '''net-install tramite connessione ppp(oe)''' nelle [http://wiki.debian.org/DebianInstallerFAQ Faq del Debian Installer] (vedere in particolare: ''Question 26: How do I use netinst over ppp(oe)?'').
[[Categoria:Networking]][[Categoria:Hardware]][[Categoria:Modem ADSL]]

Versione attuale delle 15:32, 7 dic 2019

Emblem-important.png Attenzione. Questa guida è obsoleta. Viene mantenuta sul Wiki solo per motivi di natura storica e didattica.


Introduzione

User Mode Linux(UML) è un metodo sicuro per provare nuove versioni del kernel Linux e processi. Si possono far girare programmi difettosi (buggy), fare esperimenti con kernel nuovi e distribuzioni nuove, si può mettere mano alle parti più "intime" di un sistema Linux senza intaccare il sistema che realmente sta girando sulla macchina.

UML fornisce una macchina virtuale che può avere più risorse fisiche e programmi virtualizzati della macchina-sistema reale. Lo spazio disco delle macchine virtuali è contenuto in singoli file sul disco fisso.

Si può assegnare alla macchina virtuale solo l'hardware di cui si ha bisogno. Con accessi limitati, niente di ciò che gira sulla macchina virtuale può cambiare o danneggiare il sistema fisico reale o il suo software.

Info.png Note
Il tutto è stato eseguito su testing/Etch. Da adesso in poi mi riferirò a user mode linux con il nome UML, alla macchina fisica con il nome host e alla macchina virtuale con ospite


Installazione

Per avere UML all'opera dobbiamo ricompilare il kernel con la SKAS(Separate Kernel Address Space) patch che si trova già nei repository:

# apt-get install linux-patch-skas
$ cd /usr/src/linux
$ make-kpkg clean
$ make-kpkg --added-patches skas --rootcmd fakeroot --append-to-version -skas --initrd --config menuconfig kernel_image

In "Processor type and feature" troverete due opzioni in più:

[ ] /proc/mm support
[ ] Make UML childs /proc/<pid> completely browsable

Settateli e compilate il kernel, alla fine della compilazione installate il pacchetto e riavviate.

Una volta riavviato installiamo alcuni software:

# apt-get source user-mode-linux # da utente
# apt-get install user-mode-linux-doc uml-utilities

Il pacchetto user-mode-linux contiene i sorgenti del kernel patchati per diventare degli eseguibili UML. User mode linux ha bisogno di un kernel modificato e patchato per essere eseguibile dall'utente (user-space). Il kernel che risiede su host sarà un vero e proprio avviabile con opzioni da riga di comando simili a quelle per bootare un kernel, per avere i moduli sulla immagine dovrete montarli con hostfs (il kernel di default è un monolite che boota dando solo qualche warning su moduli non trovati e non ha hostfs attivato).

Da /usr/share/doc/user-mode-linux/README.Debian:

Compilare un pacchetto kernel UML.

Devi avere apt configurato per poter scaricare i sorgenti dei pacchetti.
Ad esempio:

deb-src http://it.debian.org/debian main contrib
# apt-get source user-mode-linux

Puoi farlo con fakeroot la doc originale è sbagliata ;D provare per credere

$ cd user-mode-linux-UMLVERSION
# debian/rules unpack

Oppure, decomprimi un altro sorgente e aggiorna kernel_version in debian/rules

# debian/rules patch

Oppure, applica UML patch a mano e aggiusta patch-stamp:

$ cd kernel-source-KVERSION

Potete anche scegliere di fare solo moduli e vmlinux, la immagine bz non mi serve ad altro che backup, sconsiglio di usare initrd.

$ make defconfig ARCH=um && make [menu,x]config ARCH=um # make all ARCH=um

Tutti i comandi makefile devono includere ARCH=um

$ cd ..
$ dpkg-buildpackage -rfakeroot -nc -uc

Bene ora siete pronti a installarlo:

# dpkg -i ../user-mode-linux_2.n.nn-1um-2_i386.deb

Avete la possibilità di montare lo stesso sistema con host fs.