Che cos’è Linux? Il sistema operativo open-source che sta cambiando il mondo
Linux è un collaudato sistema operativo open-source rilasciato nel 1991 per i computer, ma il suo uso si è espanso per sostenere sistemi per automobili, telefoni, server web e, più recentemente, apparecchiature di rete.
La sua longevità, maturità e sicurezza lo rendono uno dei sistemi operativi più affidabili oggi disponibili, il che significa che è ideale per i dispositivi di rete commerciali così come per le imprese che vogliono usarlo e le sue periferiche per personalizzare la propria rete e l’infrastruttura del data center.
Questo a sua volta rende le competenze di Linux molto ricercate dai responsabili delle assunzioni IT. Per esempio, molte delle nuove tecnologie associate a DevOps, come container, infrastrutture e controller SDN, sono costruite su Linux.
Cos’è Linux?
Linux è un sistema operativo simile a – anche se, come vedremo, non discende direttamente da – Unix. Come la maggior parte dei sistemi operativi Unix-like, Linux è costituito da diversi componenti.
Il kernel
Questo è il nucleo del sistema e invia istruzioni alla CPU, alle periferiche e alla memoria.
Il bootloader
I processi che gestiscono l’avvio del sistema. Su un computer l’utente lo riconoscerebbe dallo splash screen che appare. Su un dispositivo di rete c’è uno stato che indica il processo di avvio.
Demoni
Servizi in background che partono all’avvio o dopo che il sistema è completamente attivo. Per esempio, il demone di rete attiva tutte le interfacce di rete all’avvio. Altri demoni sono cose come il tempo e il DNS.
La shell
Questa è la linea di comando di Linux. Può intimidire le persone che sono abituate a lavorare in ambienti grafici, ma la maggior parte dei professionisti della rete sono abituati ad operare in una shell.
Comandi Linux
L’interfaccia a riga di comando (CLI) della shell offre una serie di potenti capacità – incluse quelle cruciali per il networking e l’amministrazione del sistema – per utenti esperti che hanno familiarità con l’interfaccia basata sul testo.
Ambienti desktop Linux
Oltre alla shell, ci sono un certo numero di ambienti desktop per Linux, che funzionano come le GUI a finestre familiari di Windows e macOS. A differenza di quei sistemi operativi, Linux può essere equipaggiato con uno dei tanti ambienti desktop per soddisfare le esigenze e i gusti dell’utente.
Gestori di pacchetti Linux e applicazioni
Mentre molti programmi – specialmente quelli guidati dalla riga di comando – sono inclusi nella maggior parte delle installazioni del sistema operativo Linux, ovviamente vorrete installarne altri per ottenere le funzionalità di cui avete bisogno, e molti di questi programmi saranno applicazioni grafiche basate su GUI più familiari di quelle guidate da una CLI. Generalmente si usa un gestore di pacchetti, un programma che scarica pacchetti software da librerie di software liberamente disponibili, per questo scopo. Alcune applicazioni di rete per Linux, come quelle che si concentrano sull’analisi del traffico, la sicurezza e la gestione della rete, hanno interfacce grafiche, ma sono molto meno numerose di quelle per server e desktop.
Linus Torvalds e la storia di Linux
Come già detto, Linux è uno dei molti sistemi operativi che rientrano nella categoria “Unix-like”. La storia di Unix è estremamente intricata, ma Linux, pur fornendo molte delle sensazioni di Unix, in realtà non riutilizza alcun codice sorgente di Unix.
Linux potrebbe effettivamente essere considerato un nipote di Unix. Il suo immediato predecessore era MINIX, un piccolo sistema operativo simile a Unix creato alla fine degli anni ’80 per illustrare agli studenti i principi di progettazione dei sistemi operativi.
Il codice MINIX era disponibile per scopi educativi ma non poteva essere riutilizzato per applicazioni commerciali. Nel 1991, un ventunenne studente di informatica di nome Linus Torvalds annunciò che avrebbe creato un nuovo sistema operativo, ispirato a MINIX ma scritto da zero in modo che il codice potesse essere rilasciato come open source sotto la GNU GPL. Combinò il nome MINIX con il suo nome e chiamò il nuovo sistema operativo Linux.
Il kernel Linux
Il kernel Linux è il nucleo del sistema operativo. Rappresenta anche la differenza chiave tra Linux e MINIX (il che è un po’ ironico, visto che Torvalds è stato accusato di aver rubato il codice da MINIX per creare il suo sistema operativo). Mentre MINIX è basato su un microkernel che contiene la quantità minima di codice necessaria per far funzionare un sistema operativo, Linux ha un kernel monolitico, il che significa che funzioni come il file system, la memoria virtuale e varie chiamate di sistema hanno luogo nello spazio privilegiato del kernel.
Uno dei vantaggi di questo – che è anche uno dei vantaggi chiave di Linux nel suo complesso – è che, mentre il funzionamento interno del sistema operativo può evolvere nel tempo, l’interfaccia tra il kernel e lo spazio utente – la parte del sistema dove le applicazioni dei singoli utenti vengono eseguite – rimane molto stabile, il che significa che l’aggiornamento di Linux non vi costringerà ad aggiornare i vostri programmi.
Comunità Linux
Come detto, il codice di Linux è open source – in particolare, il suo codice è rilasciato sotto la permissiva GNU Public License. Questo significa:
- Il sistema operativo Linux può essere scaricato e installato gratuitamente.
- Gli amministratori possono studiare il sistema operativo e personalizzarlo.
- Ci sono privilegi illimitati di ridistribuzione delle versioni originali o modificate del sistema operativo.
Uno dei segnali più chiari che Linux è un progetto basato sulla comunità è che il kernel non è mantenuto in segreto in un laboratorio aziendale, ma piuttosto attraverso una lista di posta elettronica pubblica, dove tutti gli aggiornamenti proposti e i dibattiti sull’opportunità di adottarli nel sistema operativo sono disponibili per chiunque. Chiunque può unirsi alla comunità di Linux partecipando e contribuendo a questa mailing list.
Torvalds presiede la lista come un dittatore non particolarmente benevolo – era famoso per aver scatenato diatribe oscene sul codice che trovava particolarmente problematico – ma ultimamente sta cercando di ravvedersi un po’.
La comunità Linux va ben oltre il solo kernel, però. La natura aperta di Linux significa che c’è un enorme gruppo di professionisti e appassionati attivamente coinvolti nel trovare nuovi modi di usarlo. Per esempio, i container si sono ampiamente evoluti grazie al coinvolgimento della comunità.
E il fatto che Linux sia un progetto comunitario non significa che una piattaforma basata su Linux sia un dispositivo “minore”. Linux ha un eccellente ecosistema con API mature e un agile stack di rete ottimizzato per il data center modernizzato. Per esempio Linux è progettato con piani di controllo e di inoltro dati separati che lo rendono facile da inserire in architetture di rete definite dal software, perché la separazione di questi piani è la base di SDN.
Distribuzioni Linux
Perché Linux è open source, non c’è un solo fornitore che lo vende; teoricamente, si potrebbe scaricare il kernel, un ambiente desktop e varie altre utilità e applicazioni, e installarle tutte da soli. In pratica, questi componenti del sistema operativo sono impacchettati insieme in quella che viene chiamata una distribuzione – fondamentalmente, un sistema operativo Linux modificato in un modo particolare che è pronto all’uso fuori dalla scatola.
Ancora una volta, in teoria chiunque potrebbe mettere insieme una distribuzione Linux, ma la maggior parte è offerta da aziende e organizzazioni non profit. I distributori commerciali possono far pagare la loro distribuzione, o offrire servizi di supporto opzionali a pagamento. Alcune delle distribuzioni Linux più note sono:
- Ubuntu
- SuSE
- Debian
- Red Hat
- Fedora
- Oracle Linux
- CentOS
- Arch Linux
- Mandriva
L’elenco cambia continuamente; DistroWatch tiene traccia dei principali attori e valuta i pro e i contro di ciascuno.
Linux contro Windows
L’inizio del millennio è stato un periodo d’oro per le guerre Microsoft contro Linux, con utenti Linux compiaciuti sicuri della superiorità del loro sistema operativo scelto su basi ideologiche e tecniche, e Microsoft che rispondeva con la stessa passione. Molti dei più accesi sostenitori di Linux sostenevano che il giorno in cui Linux sarebbe diventato un sistema operativo desktop dominante era proprio dietro l’angolo. Questo ovviamente non è mai accaduto. Come sistema operativo commerciale per l’utente finale, Linux non si è mai diffuso oltre una piccola nicchia, e i giorni di queste battaglie sono in gran parte passati (anche se troverete ancora persone disposte a combattere).
Ma quando si tratta di server Linux, questa è una storia diversa. Linux è ampiamente visto come un giocatore importante nel mercato dei server alla pari con Microsoft e altri fornitori. E nel mercato tecnologico più lucrativo emerso in questo secolo, Linux ha, in un certo senso, assolutamente schiacciato Redmond. Il sistema operativo mobile Android è, in fondo, un derivato di Linux, e Android è il top player nel mercato mobile dove, nonostante ripetuti tentativi, Microsoft non è riuscita a prendere piede.
Per cosa viene usato Linux?
Grazie alla sua flessibilità, Linux ha trovato la sua strada in una serie di nicchie, dai prodotti embedded ai server di supercomputing. Nell’ultimo decennio c’è stata un’esplosione nel numero di prodotti basati su Linux che hanno avuto un grande impatto nello spazio IT, tra cui:
- Kubernetes: Gestore di cluster di container di Google
- OpenStack: Piattaforma software per l’infrastruttura come piattaforma cloud di servizio
- Open Daylight: Progetto basato su java della Linux Foundation per accelerare l’adozione di SDN e Network Functions Virtualization (NFV)
- Docker: Programma software per container
- Open vSwitch (OVS): Switch virtuale multistrato distribuito per fornire uno stack di commutazione all’interno di ambienti di virtualizzazione. OVS è particolarmente interessante perché offre un insieme più ricco di funzionalità di rete rispetto alle capacità di base del kernel Linux. Se OVS ha anche solo un moderato successo, potrebbe essere un eccellente precursore della forma delle cose a venire nel networking.
Il networking è stato lento ad abbracciare Linux, ma più le aziende diventano dipendenti dalla rete, più i domini del networking e del server vengono spinti insieme. Per gli ingegneri di rete, essere in grado di accedere alla shell nativa di Linux permette loro di utilizzare strumenti e software che una volta erano disponibili solo per i server. Questo rende molto più facile orchestrare i servizi di rete con le modifiche ai server e alle applicazioni.
Perché Linux ha così tanto successo nell’impresa?
Nel suo sguardo indietro su Linux per il suo 25° anniversario, Paul Venezia di InfoWorld ha riflettuto sul perché questo nuovo sistema operativo progettato da hippy e idealisti piuttosto che da uomini d’affari ha finito per avere tanto successo nel mondo aziendale. La sua opinione è che il fascino di Linux era duplice.
In primo luogo, Linux è adattabile, con diverse distribuzioni che lo portano su quasi tutte le piattaforme informatiche che si possono nominare.
E in secondo luogo, Linux è economico. Non era il tipo di Linux gratuito a cui le aziende erano interessate – francamente non si fidavano del gratuito – ma il Linux commerciale a basso costo con il supporto disponibile era difficile da rifiutare. E forse ancora più importante, Linux poteva essere eseguito su hardware commodity – le scatole economiche per PC x86 che la maggior parte delle aziende aveva già in abbondanza – in un’epoca in cui altri venditori Unix come Sun usavano il loro sistema operativo per integrare il loro hardware di fascia alta.
Questi fattori manterranno Linux nelle imprese per gli anni a venire. Quindi, che siate un sysadmin o un amministratore di rete, vorrete familiarizzare con esso.