Macchine Virtuali E Sistemi Operativi

Macchine Virtuali

Cos'è una Macchina Virtuale

Una macchina virtuale è un programma in grado di emulare un computer, consentendo di eseguire e installare sistemi operativi e applicazioni in un ambiente virtuale separato dalla macchina host che lo ospita.
Esistono molti programmi per realizzare macchine virtuali, come, Hyper-V, VMware o VirtualBox, In questo caso ci contrenceremo su quest'ultima.

VirtualBox è un programma Open Source sviluppato da Oracle e distribuito sotto la licenza GPL (GNU General Public License), pertanto può essere utilizzato sia per scopi personali che professionali.
Il programma di Oracle è disponibile per la maggior parte dei sistemi operativi in circolazione: Windows, MacOS, Linux.
VirtualBox offre un'ampia gamma di funzionalità, ma è anche in grado di intregare con altri strumenti esterni, come ad esempio Vagrant: Strumento Open Source che consente di creare, configurare e distribuire facilmente macchine virtuali in modo automatizzato, è particolarmente utile per chi lavora in team.

Vantaggi e Svantaggi delle Macchine Virtuali

Principalmente i vantaggi delle Macchine Virtuali si possono racchiudere in questi punti:

  1. Isolamento: le macchine virtuali offrono un ambiente separato dal sistema operativo host, il che può essere utile per proteggere il sistema operativo host da eventuali problemi o modifiche apportate al sistema operativo ospite.
  2. Utilizzo di sistemi operativi diversi: le macchine virtuali consentono di eseguire sistemi operativi diversi sullo stesso computer fisico, il che può essere utile per eseguire software che funziona solo su determinate versioni di sistemi operativi o per testare software su diverse piattaforme.
  3. Efficienza delle risorse: le macchine virtuali consentono di utilizzare al meglio le risorse del computer fisico, poiché ogni macchina virtuale ha solo le risorse di cui ha bisogno per funzionare, senza sprechi.
  4. Facilità di creazione, distruzione e modifica: le macchine virtuali possono essere create, distrutte e modificate facilmente, il che le rende ideali per l'esecuzione di attività di testing o per la creazione di ambienti di sviluppo sicuri e controllati.

Tuttavia, ci sono anche alcuni svantaggi nell'utilizzo delle macchine virtuali:

  1. Risorse necessarie: le macchine virtuali richiedono risorse del computer fisico per funzionare, il che può causare una riduzione delle prestazioni del sistema operativo host o della macchina virtuale, a seconda delle risorse assegnate.
  2. Costo del software: alcuni programmi di emulazione di macchine virtuali, come ad esempio VMware, possono essere costosi e richiedere l'acquisto di licenze per l'utilizzo a scopi commerciali.
  3. Compatibilità hardware: alcuni hardware, come ad esempio le schede grafiche ad alte prestazioni o le periferiche di input come i joystick, potrebbero non essere supportati o essere molto complicate da far funzionare
  4. Sicurezza: se una macchina virtuale viene compromessa, ciò può potenzialmente mettere a rischio il sistema operativo host. È quindi importante mantenere il sistema operativo ospite e le applicazioni installate all'interno della macchina virtuale aggiornati e sicuri.

Creazione di una Macchina Virtuale Linux

Prendiamo in esempio Ubuntu, una distribuzione di Linux basata su Debian.
Prima della creazione della macchina virtuale dobbiamo procurarci il file ISO del sistema operativo: un tipo di file immagine disco che contiene un'immagine esatta di un disco ottico, come ad esempio un CD o un DVD, spesso utilizzati per distribuire software o sistemi operativi e per creare backup di dischi ottici.
per scaricare il file ISO di Ubuntu dobbiamo andare sul suo sito, nella sezione download.

Una volta in possesso del file ISO si può iniziare con la creazione della macchina virtuale:
Dalle varie versioni del programma per i diversi sistemi operativi le differenze si fermano solo alla parte grafica.

  1. Inizia la creazione di una nuova macchina virtuale andando su "nuova" e successivamente passa alla modalità esperta con l'apposito sulsante.
  2. Nella prima sezione è possibile configurare le informazioni generali della macchina virtuale come il nome, la posizione, il file iso e altre informazioni relative al sistema operativo.
  3. Escludendo la sezione d'installazione non supervisionata, che consente semplicemente di evitare la parte iniziale di configurazione e installazione del sistema operativo, passiamo alla sezione dell'hardware, nella quale ci è possibile configurare il quantitativo di RAM e di CORE da dedicare alla nostra macchina virtuale. La scelta della quantità di risorse da dedicare è basata sulle necessità della macchina virtuale e sull'hardware dell'host. Solitamente una distribuzione linux non ha mai bisogno di un grande quantitativo di risorse per funzionare.
  4. In quest'ultima sezione è possibile configurare il disco fisso della macchina virtuale, scegliendo la posizione (solitamente impostata di default nella cartella della macchina virtuale), la dimensione e la tipologia di file.
    La dimensione del disco è anch esso da basarsi sui requisiti della macchina virtuale, per ubuntu è consigliato avere almeno 25GB di archiviazione.
    La scelta della tipologia di file è da basarsi sulle esigenze, se non abbiamo interesse nel utilizzare questa macchina con altri sistemi di virtualizzazione allora possiamo accontentarci del formato VDI, altrimenti se siamo interessati a poter avviare la macchina virtuale con un altro programma è necessario scegliere un formato del file come VMDK.
    Pre-allocare la dimensione intera del file consente di avere velocità maggiori, anche se non veramente importanti, nella lettura e scrittura del disco, ma appena realizzata la macchina verrà immediatamente creato un file della dimensione prestabilita occupando tutto lo spazio e impiegherà diverso tempo nella sua creazione.
  5. Completata la configurazione si può concludere con "fine".

Configurazione avanzata di una Macchina Virtuale

Conclusa la creazione della macchina virtuale è possibile modificare diverse impostazioni più avanzate andando nella sezione impostazioni con il pulsante apposito:
È inoltre possibile modificare tutte le impostazioni precedentemente impostate, a eccezione dei dischi, che una volta creati non sono ridimensionabili.
una parte di queste impostazioni per funzionare hanno bisogno delle Guest Addition che verranno trattate più avanti.

Avvio della Macchina Virtuale

Conclusa la configurazione è possibile avviare la macchina virtuale con il pulsante "Avvia", è anche possibile scegliere diverse opzioni di avvio: avvio senza finestra e avvio sganciabile, il primo avvierà la macchina senza la finestra, il secondo invece avvierà la macchina normalmente ma darà la possibilità di chiudere la finestra senza terminare il processo della macchina virtuale.

Una volta avviata la macchina ci troveremo davanti a questa schermata, nella quale ci viene chiesta va lingua e se provare o installare direttamente il sistema operativo.

La selezione della lingua è una scelta personale, l'unica differenza che potrebbe dare complicazioni è che il nome delle cartelle del sistema verrà influenzato dalla lingua, quindi la cartella Desktop non si chiamerà in questo modo ma verrà chiamata Scrivania.

La prova del sistema operativo in questo caso non è importante, RItorna utile nel momento in cui si installa veramente il sistema operativo su un computer. In questo caso è buona cosa provare prima il sistema operativo sull'hardware prima di procedere a installarlo, perché non è scontato che il sistema operativo funzioni senza problemi su tutti gli hardware in circolazione. Si potrebbero riscontrare errori per esempio di mancanza di driver.

Installazione delle Guest Additions per Linux

Le Guest Additions di VirtualBox sono un insieme di funzionalità che facilitano l'utilizzo delle macchine virtuali, sono disponibili per Linux, MacOS e Windows e l'installazione è molto semplice.

Prima di procedere all'installazione è necessario inserire il disco con tutti i file necessari, per poterlo fare è sufficente, dalla sezione in alto chiamata dispositivi, selezionare la voce: "Inserisci l'immagine del CD delle Guest Additions".
A questo punto il sistema operativo vedrà un disco inserito, sarà sufficente aprirlo cliccandoci sopra.

Come ultimo passo sarà sufficente cliccare con il tasto destro sul file "autorun.sh" e selezionare l'opzione "Run as a program".
a questo punto sarà sufficente attendere il completamento dell'installazione.

Al riavvio della macchina le Guest Additions inizieranno a funzionare impostando correttamente la risoluzione in base alla dimensione della scheda, se non funziona immediatamente è necessario ridimensionare la scheda.

Installazione Macchina virtuale Windows

Anche per questa macchina virtuale sarà necessario procurarsi l'immagine iso. Nel nostro caso utilizzeremo un'immagine di windows 10, è reperibile tramite il tool di windows che si trova facilmente online.

Una volta in possesso dell'immagine iso basterà creare una macchina virtuale nello stesso identico modo che abbiamo usato per linux. Al contrario di linux, windows ha bisogno di più ram e più spazio di archiviazione, è conveniente usare 4 GB di ram e 50 GB o più di archiviazione.

Una volta avviata la macchina virtuale ci troveremo d'avanti l'interfaccia d'installazione di Windows che ci chiederà d'installare il sistema operativo, Basterà procedere seguendo quello che dice.

Installazione delle Guest Additions per Windows

Similmente a quanto fatto per installare le Guest Additions su Linux, sarà sufficiente aggiungere il disco alla macchina virtuale tramite la sezione dispositivi e avviare l'installer che contiene.

S.O. Linux e Windows

Principali differenze tra i due sistemi operativi

Linux e Windows sono due sistemi operativi completamente differenti, ma le differenze maggiori si possono racchiudere in questi punti:

  1. Proprietario vs. Open Source: Windows è un sistema operativo proprietario sviluppato e commercializzato da Microsoft. Linux, d'altra parte, è un sistema operativo open source, il che significa che il codice sorgente è disponibile per chiunque e può essere modificato e distribuito liberamente.
  2. Interfaccia utente: Windows ha un'interfaccia utente basata su finestre con un menu Start e una barra delle applicazioni. Linux ha diverse opzioni per l'interfaccia utente, come GNOME, KDE e Unity, che possono variare significativamente nell'aspetto e nella funzionalità.
  3. Tipo di piattaforma: Windows è principalmente destinato ai personal computer, mentre Linux è ampiamente utilizzato sui server, sui dispositivi mobili e sui sistemi embedded. Tuttavia, Linux può anche essere utilizzato sui personal computer e ci sono molte distribuzioni Linux progettate specificamente per questo scopo.
  4. Supporto: Uno dei punti più importanti di Linux è la comunity, Microsoft fornisce supporto tecnico a pagamento per Windows, mentre Linux ha una comunità globale di utenti e sviluppatori che forniscono supporto attraverso forum e altre risorse online.
  5. Prezzo: Windows è un prodotto commerciale e deve essere acquistato. Linux, d'altra parte, è gratuito e può essere scaricato e utilizzato liberamente per qualunque scopo.

Windows

Installazione dei programmi essenziali

Su Windows sono già presenti molti programmi installati di default, ma per quello che vogliamo fare ritorna utile avere a disposizione più programmi, per questo installeremo i seguenti programmi:

Aggiunta di MinGW alle variabili d'ambiente

MinGW, programma per la compilazione per processori x86 a 32 bit, è il porting di GCC per Windows, l'abbiamo installato con CodeBlocks.
Nel momento in cui volessimo compilare un codice tramite CodeBlocks non ci sarebbero problemi, ma se al contrario volessimo compilare un codice nel resto del sistema operativo non potremo farlo in quanto non troverebbe MinGW, questo problema è risolvibile aggiungendo il percorso di MinGW alle variabili d'ambiente.

Come prima cosa sarà necessario trovare la posizione di MinGW, se non è stato cambiato nell'installazione sarà il seguente: C:\Program Files\CodeBlocks\MinGW\bin

Ottenuto il percorso dovremo aggiungerlo alle variabili d'ambiente, per fare ciò sarà sufficiente cercare "variabili" nella barra di ricerca di Windows.

Quindi, servirà cliccare sul pulsante "variabili d'ambiente" e poi aggiungere il percorso precedente modificando la variabile "PATH" e aggiungendole il percorso precedente.

Prompt Dei Comandi

Il prompt dei comandi è un'utility del sistema operativo Windows che fornisce un'interfaccia a riga di comando per l'esecuzione di comandi e l'esecuzione di script.
Il prompt dei comandi viene solitamente visualizzato come una finestra con una riga di testo dove l'utente può inserire i comandi. Una volta inserito il comando, premendo il tasto Invio viene eseguito.
Il prompt dei comandi di Windows è uno strumento molto potente e può essere utilizzato per eseguire una varietà di compiti, come la gestione dei file e delle cartelle, la configurazione delle impostazioni di sistema e la risoluzione dei problemi.
Per aprire il prompt dei comandi in Windows, è possibile fare clic su Start, quindi digitare "prompt dei comandi" nella casella di ricerca e selezionare il risultato "Prompt dei comandi" dai risultati della ricerca. Alternativamente, è possibile utilizzare il tasto Windows+R per aprire la finestra Esegui, quindi digitare "cmd" e premere Invio.

Differenze tra Shell e Prompt

  1. Interfaccia utente: il prompt dei comandi di Windows ha un'interfaccia a riga di comando, mentre la shell di Linux può avere diverse interfacce a riga di comando, come Bash, Zsh e tcsh.
  2. Comandi disponibili: il prompt dei comandi di Windows e la shell di Linux hanno comandi simili, ma non sempre identici. Ad esempio, il comando "dir" è disponibile nel prompt dei comandi di Windows per elencare i file in una cartella, mentre in Linux si usa il comando "ls".
  3. Gestione dei permessi: nel sistema operativo Windows, i permessi di file e cartelle sono gestiti in modo diverso rispetto a Linux. In Linux, esistono proprietari dei file e livelli di accesso che determinano chi può leggere, scrivere o eseguire un file. Nel sistema operativo Windows, i permessi sono gestiti attraverso gli utenti e i gruppi di utenti.
  4. Gestione delle applicazioni: il sistema operativo Windows gestisce le applicazioni in modo diverso rispetto a Linux. In Windows, le applicazioni vengono installate in modo tradizionale, con un programma d'installazione che copia i file necessari nella cartella di sistema appropriata. In Linux, le applicazioni vengono spesso installate attraverso il gestore dei pacchetti del sistema operativo, che scarica e installa automaticamente i file necessari.
  5. Architettura: il sistema operativo Windows è progettato per essere utilizzato su architetture x86, mentre Linux può essere utilizzato su diverse architetture, come x86, ARM e PowerPC.

Comandi Principali

Come per la Shell di Linux, i comandi esistenti sono innumerevoli ma possiamo indicare questi come i principali:

Per tutti questi comandi è disponibile una descrizione approfondita nel prompt di Windows, è sufficient digitare il comando "help" seguito dal comando che si vuole approfondire.
Per esempio:
help xcopy

Funzionalità avanzate

Driver, cosa sono e perché servono?

I driver sono dei programmi che permettono al sistema operativo del computer di comunicare con le periferiche hardware, come ad esempio la scheda video, il mouse, la stampante e così via. Se non si ha il driver corretto installato per una periferica, il sistema operativo non sarà in grado di utilizzarla o potrebbero verificarsi problemi di funzionamento. Per questo è importante accertarsi di avere i driver corretti installati per tutte le periferiche in uso. In genere, i driver vengono installati automaticamente insieme al sistema operativo o insieme al software della periferica, ma a volte può essere necessario scaricarli e installarli manualmente.

Strumenti Di Amministrazione

Uno strumento di amministrazione è un software che fornisce un'interfaccia per gestire e configurare un sistema informatico, ad esempio un computer, un server o una rete. Esistono molti strumenti di amministrazione disponibili, ognuno dei quali offre funzionalità specifiche.
Le funzionalità più comuni degli strumenti di amministrazione sono le seguenti: