Virtualization and containerization techniques for secure software deployment
Creators: name: Zanichelli, Mattia
Publisher: name: Scuola Universitaria della Svizzera Italiana (SUPSI)
Year: 2022

description: Abstract italiano Ubuntu è un sistema operativo Linux disponibile nella versione desktop e server. La prima caratterizzata da un’interfaccia grafica e la seconda dall’uso esclusivo del terminale per l’esecuzione delle operazioni. Entrambe le versioni condividono, alla base, lo stesso sistema operativo e la stessa struttura dell’immagine ISO con cui vengono distribuite. Quest’ultima non è altro che un contenitore con tutte le istruzioni necessarie all’installazione di un sistema operativo. Ed è tramite la manipolazione di questo file che è possibile personalizzare un sistema operativo. Nel contesto di bachelor in ingegneria informatica, questo lavoro determina la valutazione del modulo finale nel percorso formativo e permette di mettere in pratica le nozioni apprese durante il ciclo di laurea e approcciare un lavoro reale con requisiti concreti. Si vuole sviluppare uno strumento per la creazione e personalizzazione di sistemi operativi finalizzati all’uso come server. Esistono diversi strumenti per la personalizzazione di un sistema operativo. Alcuni permettono, sottoforma di programmi semplificati per l’uso comune, l’aggiunta o la rimozione del software, altri sono tecniche che prevedono l’utilizzo di file da includere nell’immagine ISO e sono atti non solo alla personalizzazione ma anche all’automatizzazione dell’installazione di un sistema operativo. Il lavoro è stato diviso in tre parti: un web server per l’inserimento dei dati relativi alla creazione del sistema personalizzato, una fase centrale di installazione e applicazione delle impostazioni indicate e uno strumento per il monitoraggio e l’esecuzione di comandi da remoto sul sistema creato. Il risultato finale sono tre componenti indipendenti che, unite, generano un sistema operativo personalizzato controllabile da remoto. Ogni singola componente può essere maggiormente sviluppata ed ampliata in futuro grazie alla divisione e separazione delle dipendenze. La possibilità di creare sistemi operativi personalizzati apre la porta a implementazioni future non solo in ambito produttivo ma anche personale. La base di questo lavoro può essere applicata a diverse realtà, come quelle universitarie, che possono trarre beneficio da sistemi di installazione automatici e sicuri. Abstract inglese Ubuntu is a Linux operating system available in desktop and server versions. The first characterized by a graphical interface and the second by the exclusive use of the terminal for the execution of operations. Both versions basically share the same operating system and the same structure of the ISO image with which they are distributed. The latter is nothing more than a container with all the necessary instructions for installing an operating system. And it is through the manipulation of this file that it is possible to customize an operating system. In the context of bachelor's in computer engineering, this work determines the evaluation of the final module in the training path and allows to put into practice the concepts learned during the degree cycle and approach a real job with concrete requirements. It was requested to develop a tool for creating and customizing operating systems for use as a server. There are several tools for customizing an operating system. Some allow, in the form of simplified programs for common use, to add or remove software, others are techniques that involve the use of files to be included in the ISO image and are suitable not only for customization but also for automate the installation of an operating system. The work is divided into three parts: a web server for entering data relating to the creation of the customized system, a central phase of installation and application of the indicated settings and a tool for monitoring and executing commands remotely on the system created. The final result are three independent components that, when combined, generate a customized operating system that can be controlled remotely. Each individual component can be further developed and expanded in the future thanks to the division and separation of dependencies. The ability to create customized operating systems opens the door to future implementations not only in the production but also in the personal sphere. The basis of this work can be applied to different realities, such as universities, which can benefit from automatic and safe installation systems.