1.1 Lezione 1
Certificazione: |
Linux Essentials |
---|---|
Versione: |
1.6 |
Argomento: |
1 La Comunità Linux e una Carriera nell’Open Source |
Obiettivo: |
1.1 Evoluzione di Linux e Sistemi Operativi più Diffusi |
Lezione: |
1 di 1 |
Introduzione
Linux è uno dei sistemi operativi più popolari. Il suo sviluppo è stato avviato nel 1991 da Linus Torvalds. Tale sistema operativo è stato ispirato da Unix, un altro sistema operativo sviluppato negli anni '70 dai Laboratori AT&T. Unix era pensato per i piccoli computer. In quegli anni i “piccoli” computer erano macchine che non necessitavano di un’intera sala con aria condizionata e costavano meno di un milione di dollari. Successivamente vennero considerate “piccole” le macchine che potevano essere sollevate da due persone. A quel tempo, un sistema Unix economico non era ancora disponibile per computer come quelli da ufficio, che tendevano ad essere basati sulla piattaforma x86. Pertanto Linus, che a quel tempo era studente, iniziò a implementare un sistema operativo di tipo Unix in grado di funzionare su quell’architettura.
Principalmente, Linux usa gli stessi principi e le idee di base di Unix, ma Linux stesso non contiene codice Unix, in quanto è un progetto indipendente. Linux non è supportato da una singola azienda ma da una comunità internazionale di programmatori. Poiché è liberamente disponibile, può essere usato da chiunque senza restrizioni.
Distribuzioni
Una distribuzione Linux è un pacchetto costituito da un kernel Linux ed un insieme di applicazioni che sono mantenute da una azienda o da una comunità di utenti. L’obiettivo di una distribuzione è quello di ottimizzare il kernel e le applicazioni in esecuzione sul sistema operativo per un particolare caso d’uso o gruppo di utenti. Le distribuzioni spesso includono strumenti specifici della distribuzione per l’installazione del software e l’amministrazione del sistema. Questo è il motivo per cui alcune distribuzioni vengono utilizzate principalmente per ambienti desktop dove devono essere facili da usare, mentre altre vengono utilizzate principalmente sui server per utilizzare le risorse disponibili nel modo più efficiente possibile.
Un altro modo per classificare le distribuzioni è quello di fare riferimento alla famiglia di distribuzione di appartenenza. Le distribuzioni della famiglia Debian usano il gestore di pacchetti dpkg
per gestire il software che viene eseguito sul sistema operativo. I pacchetti che possono essere installati con il gestore di pacchetti sono gestiti da membri volontari della comunità della distribuzione. I manutentori utilizzano il formato di pacchetto deb
per specificare come il software debba essere installato sul sistema operativo e come debba essere configurato di default. Proprio come una distribuzione, un pacchetto è un insieme di software con la relativa configurazione e documentazione che semplifica l’installazione, l’aggiornamento e l’utilizzo del software da parte dell’utente.
La distribuzione Debian GNU/Linux è la più grande distribuzione della famiglia Debian. Il progetto Debian GNU/Linux è stato lanciato da Ian Murdock nel 1993; oggi i volontari che lavorano al progetto sono migliaia. Debian GNU/Linux mira a fornire un sistema operativo molto affidabile. Inoltre promuove la visione di Richard Stallman di un sistema operativo che rispetti le libertà dell’utente di eseguire, studiare, distribuire e migliorare il software. Per questo motivo non fornisce di default alcun software proprietario.
Ubuntu è un’altra distribuzione basata su Debian degna di nota. Ubuntu è stata creata da Mark Shuttleworth e dal suo team nel 2004 con l’intento di offrire un ambiente desktop Linux facile da usare. Lo scopo di Ubuntu è quello di fornire un software libero per tutti in tutto il mondo e di ridurre il costo dei servizi professionali. La distribuzione prevede una nuova versione programmata ogni sei mesi con una versione di supporto a lungo termine ogni 2 anni.
Red Hat è una distribuzione Linux sviluppata e mantenuta dall’azienda software che porta lo stesso nome ed è stata acquisita da IBM nel 2019. La distribuzione Red Hat Linux è stata avviata nel 1994 e rinominata nel 2003 in Red Hat Enterprise Linux, spesso abbreviata in RHEL. Viene fornita alle aziende come soluzione di livello enterprise affidabile, supportata da Red Hat e dotata di un software che mira a facilitare l’utilizzo di Linux in ambienti server professionali. Alcuni dei suoi componenti richiedono abbonamenti o licenze a pagamento. Il progetto CentOS utilizza il codice sorgente liberamente disponibile di Red Hat Enterprise Linux e lo compila in una distribuzione che è completamente gratuita, ma che, per contro, non prevede alcun supporto commerciale.
Sia RHEL che CentOS sono ottimizzati per l’uso in ambienti server. Il progetto Fedora è stato fondato nel 2003 e propone una distribuzione Linux rivolta ai computer desktop. Da allora Red Hat ha avviato e mantiene la distribuzione Fedora. Fedora è molto progressista e adotta nuove tecnologie molto rapidamente ed è talvolta considerato un banco di prova per le nuove tecnologie che in seguito potrebbero essere incluse in RHEL. Tutte le distribuzioni basate su Red Hat utilizzano il formato di pacchetto rpm
.
L’azienda SUSE è stata fondata nel 1992 in Germania come fornitore di servizi Unix. La prima versione di SUSE Linux è stata rilasciata nel 1994. Nel corso degli anni SUSE Linux è diventata famosa soprattutto per il suo strumento di configurazione YaST. Questo strumento di configurazione permette agli amministratori di installare e configurare software e hardware, nonchè server e reti. Analogamente a RHEL, SUSE rilascia SUSE Linux Enterprise Server, che ne rappresenta la versione commerciale. È caratterizzata da rilasci poco frequenti ed è adatta per l’implementazione aziendale e di produzione. È distribuita sia come ambiente server che desktop, con pacchetti adatti allo scopo. Nel 2004 SUSE ha rilasciato il progetto openSUSE che ha concesso a sviluppatori e utenti l’opportunità di testare e sviluppare ulteriormente il sistema. La distribuzione openSUSE è liberamente scaricabile.
Nel corso degli anni sono state rilasciate distribuzioni indipendenti. Alcune di queste sono basate su Red Hat o Ubuntu; altre sono progettate per migliorare una specifica caratteristica di un sistema o di un hardware. Esistono distribuzioni costruite con funzionalità specifiche come QubesOS, un ambiente desktop molto sicuro, o Kali Linux, che fornisce un ambiente per testare le vulnerabilità software, utilizzato principalmente da coloro che effettuano test di penetrazione. Recentemente sono state progettate varie distribuzioni Linux leggerissime, per funzionare appositamente in contenitori Linux come Docker. Esistono anche distribuzioni create appositamente per componenti di sistemi integrati e persino dispositivi intelligenti.
Sistemi Integrati
I sistemi integrati sono una combinazione di hardware e software progettati per avere una funzione specifica all’interno di un sistema più grande. Solitamente fanno parte di altri dispositivi e aiutano a controllare i dispositivi stessi di cui fanno parte. I sistemi integrati si trovano in applicazioni di automazione, applicazioni mediche e persino militari. Grazie alla loro vasta gamma di applicazioni, sono stati sviluppati vari sistemi operativi basati sul kernel Linux per essere utilizzati nei sistemi integrati. Una parte significativa di dispositivi intelligenti ha al suo interno un sistema operativo basato su kernel Linux.
Pertanto, con i sistemi integrati viene fornito software integrato. Lo scopo di questo software è quello di accedere all’hardware e renderlo utilizzabile. I principali vantaggi di Linux rispetto a qualsiasi altro software integrato proprietario risiedono nella compatibilità tra piattaforme diverse, nello sviluppo, nel supporto e nell’assenza di costi di licenza. Due dei più popolari progetti di software integrato sono Android, che viene utilizzato principalmente su telefoni cellulari di diversi fornitori, e Raspbian, che viene utilizzato principalmente su dispositivi Raspberry Pi.
Android
Android è principalmente un sistema operativo mobile sviluppato da Google. Android Inc. è stata fondata nel 2003 a Palo Alto, California. L’azienda ha inizialmente creato un sistema operativo pensato per funzionare su fotocamere digitali. Nel 2005, Google ha acquistato Android Inc. e lo ha sviluppato per renderlo uno dei più importanti sistemi operativi mobile.
La base di Android è una versione modificata del kernel Linux con software open source aggiuntivo. Il sistema operativo è sviluppato principalmente per dispositivi touchscreen, ma Google ha sviluppato anche versioni per TV e orologi da polso. Sono state sviluppate diverse versioni di Android per console di gioco, fotocamere digitali e PC.
Android è liberamente disponibile in ambiente open source come Android Open Source Project (AOSP). Google offre una serie di componenti proprietari oltre al nucleo open source di Android. Questi componenti includono applicazioni come Google Calendar, Google Maps, Google Mail, il browser Chrome ed il Google Play Store che facilita l’installazione delle applicazioni. La maggior parte degli utenti considera questi strumenti parte integrante della propria esperienza Android. Pertanto, quasi tutti i dispositivi mobile forniti con Android in Europa e America includono software proprietario di Google.
Android su dispositivi integrati presenta molti vantaggi. Il sistema operativo è intuitivo e facile da usare con una interfaccia utente grafica, ha una comunità di sviluppatori molto ampia, il che rende facile trovare aiuto per lo sviluppo. È inoltre supportato dalla maggior parte dei fornitori di hardware con un driver Android; quindi è facile ed economico creare un prototipo di un sistema completo.
Raspbian e il Raspberry Pi
Raspberry Pi è un computer a basso costo, dalle dimensioni di una carta di credito, che può funzionare come un computer desktop con funzionalità complete, ma che può essere anche utilizzato in un sistema Linux integrato. È sviluppato dalla Fondazione Raspberry Pi, un ente di beneficenza educativo con sede nel Regno Unito. Il suo scopo principale è quello di insegnare ai giovani a imparare a programmare e comprendere il funzionamento dei computer. Raspberry Pi può essere progettato e programmato per eseguire le attività o le operazioni desiderate che fanno parte di un sistema molto più complesso.
Le particolarità di Raspberry Pi includono una serie di pin General Purpose Input-Output (GPIO) che possono essere utilizzati per collegare dispositivi elettronici e schede di estensione. Ciò consente di utilizzare Raspberry Pi come piattaforma per lo sviluppo hardware. Sebbene inizialmente destinato a scopi didattici, Raspberry Pi è oggi utilizzato in vari progetti fai-da-te così come per la creazione di prototipi industriali durante lo sviluppo di sistemi integrati.
Raspberry Pi utilizza processori ARM. Vari sistemi operativi, tra cui Linux, funzionano su Raspberry Pi. Poiché Raspberry Pi non contiene un disco rigido, il sistema operativo viene avviato da una scheda di memoria SD. Una delle più importanti distribuzioni Linux per Raspberry Pi è Raspbian. Come suggerisce il nome, appartiene alla famiglia di distribuzione Debian. È personalizzato per essere installato sull’hardware Raspberry Pi e offre oltre 35000 pacchetti ottimizzati per questo ambiente. Oltre a Raspbian, esistono numerose altre distribuzioni Linux per Raspberry Pi, come, per esempio, Kodi, che trasforma il Raspberry Pi in un centro multimediale.
Linux e Cloud
Il termine cloud computing si riferisce a un modo standardizzato di gestire risorse informatiche, acquistandole presso un fornitore di cloud pubblico o eseguendo una cloud privata. Stando ai report del 2017, Linux gestisce il 90% del carico di lavoro della cloud pubblica. Ogni fornitore di servizi cloud, da Amazon Web Services (AWS) a Google Cloud Platform (GCP), offre diversi sistemi di tipo Linux. Addirittura Microsoft offre macchine virtuali basate su Linux nel suo cloud Azure.
Linux è di solito proposto come parte dell’offerta Infrastructure as a Service (IaaS). Le istanze IaaS sono macchine virtuali che vengono fornite in pochi minuti in cloud. Quando si avvia una istanza IaaS, viene scelta una immagine contenente i dati che verranno caricati sulla nuova istanza. I fornitori di servizi cloud offrono varie immagini contenenti installazioni pronte all’uso sia delle distribuzioni Linux più diffuse sia delle proprie versioni di Linux. L’utente sceglie un’immagine contenente la sua distribuzione preferita e poco dopo accede a una istanza cloud che esegue tale distribuzione. La maggior parte dei fornitori di servizi cloud aggiunge strumenti alle immagini per adattare l’installazione a una specifica istanza. Questi strumenti sono in grado, per esempio, di estendere i file system dell’immagine per adattarsi al reale disco rigido della macchina virtuale.
Esercizi Guidati
-
In che modo Debian GNU/Linux si differenzia da Ubuntu? Indica due aspetti.
-
Quali sono gli ambienti/piattaforme più comuni in cui viene utilizzato Linux? Indica tre differenti ambienti/piattaforme e una distribuzione che è possibile utilizzare per ciascuno di essi.
-
Stai pianificando di installare una distribuzione Linux in un nuovo ambiente. Indica quattro aspetti che dovresti tener presente quando scegli una distribuzione.
-
Indica tre dispositivi su cui è in esecuzione il sistema operativo Android, che non siano smartphone.
-
Spiega i tre principali vantaggi del cloud computing.
Esercizi Esplorativi
-
Considerando costi e prestazioni, quali sono le distribuzioni più adatte per un azienda che mira a ridurre i costi di licenza mantenendo le prestazioni ai massimi livelli? Spiega perchè.
-
Quali sono i principali vantaggi di Raspberry Pi e quali funzioni può avere in ambito lavorativo?
-
Quali distribuzioni offrono Amazon Cloud Services e Google Cloud? Indicane almeno tre in comune e due diverse.
Sommario
In questa lezione hai imparato:
-
Quali distribuzioni ha Linux;
-
Cosa sono i sistemi Linux integrati;
-
Come sono utilizzati i sistemi Linux integrati;
-
Differenti campi di utilizzo di Android;
-
Diversi usi di un Raspberry Pi;
-
Cos’è il Cloud Computing;
-
Quale ruolo riveste Linux nel cloud computing.
Risposte agli Esercizi Guidati
-
In che modo Debian GNU/Linux si differenzia da Ubuntu? Indica due aspetti.
Ubuntu si basa su uno snapshot di Debian, motivo per cui ci sono molte caratteristiche simili tra loro. Tuttavia, ci sono altre differenze significative tra le due distribuzioni. La prima potrebbe essere l’applicabilità per i principianti. Ubuntu è raccomandato ai principianti per la sua facilità d’uso e, di contro, Debian è raccomandato per utenti più avanzati. La differenza principale è la complessità della configurazione dell’utente che Ubuntu non presenta durante il processo di installazione.
Un’altra differenza potrebbe essere la stabilità. Debian è considerato più stabile di Ubuntu. Questo perché Debian riceve meno aggiornamenti che vengono testati in dettaglio e l’intero sistema operativo è più stabile. Invece Ubuntu consente all’utente di utilizzare le ultime versioni di software e tutte le nuove tecnologie.
-
Quali sono gli ambienti/piattaforme più comuni in cui viene utilizzato Linux? Indica tre differenti ambienti/piattaforme e una distribuzione che è possibile utilizzare per ciascuno di essi.
Alcuni degli ambienti/piattaforme più comuni potrebbero essere smartphone, desktop e server. Su smartphone può essere utilizzato da distribuzioni come Android. Su desktop e server, può essere utilizzato da qualsiasi distribuzione adatta alle funzionalità di quella macchina, da Debian, Ubuntu a CentOS e Red Hat Enterprise Linux.
-
Stai pianificando di installare una distribuzione Linux in un nuovo ambiente. Indica quattro aspetti che dovresti tener presente quando scegli una distribuzione.
Quando si sceglie una distribuzione, alcuni degli aspetti principali da considerare sono il costo, le prestazioni, la scalabilità, la stabilità e i requisiti hardware del sistema.
-
Indica tre dispositivi su cui è in esecuzione il sistema operativo Android, che non siano smartphone.
Altri dispositivi su cui è in esecuzione Android sono le smart TV, i tablet, Android Auto e gli smartwatch.
-
Spiega i tre principali vantaggi del cloud computing.
I principali vantaggi del cloud computing sono la flessibilità, la semplicità di ripristino e i bassi costi di utilizzo. I servizi basati su cloud sono semplici da implementare e ridimensionare, a seconda delle esigenze aziendali. Ha un grande vantaggio nelle soluzioni di backup e ripristino, in quanto consente alle aziende di recuperare dai malfunzionamenti più velocemente e con minori ripercussioni. Inoltre, riduce i costi operativi, in quanto consente di pagare solo per le risorse utilizzate da un’azienda in base a un modello di abbonamento.
Risposte agli Esercizi Esplorativi
-
Considerando costi e prestazioni, quali sono le distribuzioni più adatte per un azienda che mira a ridurre i costi di licenza mantenendo le prestazioni ai massimi livelli? Spiega perchè.
Una delle distribuzioni più adatte per essere utilizzate dalle aziende è CentOS. Questo perchè incorpora tutti i prodotti Red Hat, che sono anche utilizzati nel loro sistema operativo commerciale, pur essendo usufruibili gratuitamente. Allo stesso modo, le versioni Ubuntu LTS garantiscono il supporto per un periodo di tempo più lungo. Anche le versioni stabili di Debian GNU/Linux sono spesso utilizzate in ambienti aziendali.
-
Quali sono i principali vantaggi di Raspberry Pi e quali funzioni può avere in ambito lavorativo?
Raspberry Pi è un dispositivo di ridotte dimensioni pur essendo in grado di funzionare come un normale computer. Inoltre è un dispositivo a basso costo ed è in grado di gestire traffico web e molte altre funzionalità. Può essere utilizzato come server, firewall e come scheda principale per robots o molti altri piccoli dispositivi.
-
Quali distribuzioni offrono Amazon Cloud Services e Google Cloud? Indicane almeno tre in comune e due diverse.
Le distribuzioni comuni tra Amazon e Google Cloud Services sono Ubuntu, CentOS e Red Hat Enterprise Linux. Ogni fornitore di servizi cloud offre anche distribuzioni specifiche che gli altri fornitori non offrono. Amazon offre Amazon Linux e Kali Linux, mentre Google offre la possibilità di utilizzare FreeBSD e Windows Servers.