Introduzione a Linux
Linux è una famiglia di sistemi operativi open source simile a Unix basata sul kernel Linux e il kernel del sistema operativo è stato pubblicato per la prima volta il 17 settembre 1991 da Linus Torvalds . Tipicamente, Linux è confezionato come distribuzione Linux, che contiene le librerie di supporto, il software di sistema e il kernel, molti dei quali sono offerti dal progetto GNU. Diverse distribuzioni Linux usano il termine 'Linux' nel titolo, ma la Free Software Foundation utilizza l'estensione 'GNU/Linux' titolo si concentra sulla necessità del software GNU, causando alcune controversie.
Famose distribuzioni Linux sono Ubuntu, Fedora Linux e Debian, quest'ultima composta da diverse modifiche e distribuzioni, tra cui Xubuntu e Lubuntu. Le distribuzioni commerciali sono SUSE Linux Enterprise e Red Hat Enterprise Linux. Le distribuzioni desktop di Linux sono sistemi a finestre come Wayland o X11 e ambienti desktop come KDE Plasma e GNOME.
- Originariamente, Linux è stato progettato per personal computer basati sull'architettura Intel x86, ma da allora è stato spostato in più ambienti rispetto ad altri sistemi operativi.
- Includendo Android, Linux ha la base installata più grande di ogni sistema operativo generico grazie al controllo di Android basato su Linux sugli smartphone a partire da maggio 2022.
- Tuttavia, a novembre 2022, Linux è utilizzato solo dal 2,6% circa dei computer desktop.
- Inoltre, Linux viene eseguito su molti sistemi embedded, ovvero dispositivi il cui sistema operativo è tipicamente progettato nel firmware ed è estremamente personalizzato per il sistema.
- Comprende veicoli spaziali (rover Perseverance, capsula dell'equipaggio Dragon e razzo Falcon 9), automobili (Toyota, Hyundai, Mercedes-Benz, Audi e Tesla), televisori (LG e Samsung Smart TV), console per videogiochi, dispositivi domestici intelligenti, controlli di automazione e router.
Linux è uno degli esempi più eccezionali di collaborazione tra open source e software libero. Il codice sorgente può essere distribuito, modificato e utilizzato a scopo non commerciale o commerciale da chiunque nelle condizioni delle rispettive licenze, come la GNU GPL (General Public License). Ad esempio, il kernel Linux è concesso in licenza con GPLv2.
Storia del sistema operativo Linux
Il sistema operativo basato su Unix è stato implementato e concepito nel 1969 a La campana di AT&T laboratori di Joe Ossanna, Douglas Mcllroy, Dennis Ritchie e Ken Thompson negli Stati Uniti. Pubblicato per la prima volta nel 1971, Unix era interamente scritto in linguaggio assembly, come era la pratica di base dell'epoca. È stato aggiornato nel linguaggio C da Dennis Ritchie in modo pionieristico nel 1973. La disponibilità di un'implementazione del linguaggio Unix di alto livello ha reso conveniente il suo porting su piattaforme informatiche distinte.
Torvalds si iscrisse ad un corso Unix mentre visitava l'Università di Helsinki nell'autunno degli anni '90. Il corso utilizzava un minicomputer MicroVAX che eseguiva Ultrix e uno dei testi necessari era Sistemi operativi: progettazione e implementazione di Andrews S. Tanenbaum. Il libro di testo conteneva una copia del sistema operativo MINIX di Tanenbaum. Fu insieme a questo corso che Torvalds si aprì inizialmente a Unix. Si interessò ai sistemi operativi nel 1991. Frustrato dalla licenza MINIX, che all'epoca la limitava al solo uso didattico, iniziò a lavorare sul kernel del suo sistema operativo, che alla fine divenne il kernel Linux.
Torvalds iniziò lo sviluppo del kernel Linux su MINIX e il software scritto per MINIX fu utilizzato anche su Linux. Successivamente fu coltivato Linux e poi lo sviluppo del kernel Linux apparve sui sistemi Linux. Inoltre, le applicazioni GNU hanno sostituito ogni componente MINIX perché era vantaggioso utilizzare il codice libero attraverso il progetto GNU con il nuovo sistema operativo; il codice concesso in licenza con la GNU GPL può essere riapplicato in altre funzioni del computer purché anch'esse siano pubblicate con una licenza compatibile o uguale.
Torvalds iniziò il passaggio dalla sua licenza attuale, che vietava la distribuzione commerciale, alla GNU GPL. Gli sviluppatori hanno operato per sviluppare elementi GNU con il kernel Linux, creando un sistema operativo gratuito e completamente funzionale.
Il principale manutentore del kernel Linux è Greg Kroah-Hartman che ne guida lo sviluppo. Il direttore esecutivo della Free Software Foundation è William John Sullivan , che a sua volta supportava i componenti GNU. Aziende e individui finalmente sviluppano componenti di terze parti non GNU.
I componenti di terze parti sono composti da un ampio corpus di lavoro e possono contenere sia librerie e applicazioni utente, sia moduli del kernel. La comunità Linux e i fornitori distribuiscono e combinano il kernel, i componenti non GNU e i componenti GNU con software di gestione dei pacchetti extra alla moda delle distribuzioni Linux.
Negli ambienti di produzione, l’adozione di Linux cominciò a decollare inizialmente a metà degli anni ’90 nella comunità dei supercalcoli invece di essere utilizzata solo dagli hobbisti, dove organizzazioni come la NASA iniziarono a sostituire sempre più le loro macchine costose con cluster di computer economici che eseguivano Linux. L'uso commerciale iniziò quando IBM e Dell, perseguite da Hewlett-Packard, iniziarono a fornire supporto Linux per sfuggire al monopolio di Microsoft nel mercato dei sistemi operativi desktop.
I sistemi Linux sono oggi completamente utilizzati nell'informatica, dai sistemi embedded a praticamente ogni supercomputer, e si sono assicurati una posizione nelle installazioni server come il famoso stack di applicazioni LAMP. L'utilizzo delle distribuzioni Linux nei desktop aziendali e domestici si è sviluppato.
Inoltre, le distribuzioni Linux sono diventate famose nel mercato dei netbook, con diversi dispositivi che si spostano con distribuzioni Linux personalizzate installate e Google pubblica il proprio ChromeOS sviluppato per i netbook.
Progettazione del sistema operativo Linux
Vari sviluppatori open source ammettono che il kernel Linux non è stato sviluppato ma si è invece evoluto dalla selezione naturale. Un sistema basato su Linux è un sistema operativo compatibile simile a Unix, che deriva gran parte del suo design comune dai principi realizzati in Unix negli anni '70 e '80. Un sistema di questo tipo applica il kernel Linux, un kernel monolitico che gestisce file system, accesso alle periferiche, rete e controllo dei processi. I driver del dispositivo sono direttamente integrati con il kernel o inclusi come moduli caricati mentre il dispositivo è attivo.
I componenti del sistema Linux installati includono quanto segue:
- UN boot loader , ad esempio systemd-boot, SYSLINUX, LILO e GNU GRUB. È un programma che può caricare il kernel Linux nella memoria principale del computer essendo eseguito dal computer dopo aver effettuato l'accesso al firmware e quando è acceso.
- UN entrare nel programma , come il tradizionale sysvinit e i più recenti Upstart, OpenRC e systemd. È il primo processo annunciato dal kernel Linux e dalla radice dell'albero dei processi. In altre parole, ogni processo viene aperto da init. Avvia processi come richieste di accesso e servizi di sistema (sia in modalità terminale che grafica).
- La libreria standard C è necessaria per eseguire programmi C su un sistema che utilizza la libreria GNU C come standard. Sono state sviluppate alternative come uClibc (sviluppato per uClinux), EGLIBC (fork glibc utilizzato una volta da Debian) e musl. Tuttavia, i primi due non vengono mantenuti ora. Android utilizza la sua libreria C, nota come Bionico .
- Le shell GUI sono le interfacce utente più famose sui sistemi desktop, confezionate con ampi ambienti desktop come Xfce, Pantheon, LXDE, Cinnamon, MATE, GNOME e KDE Plasma, sebbene sia disponibile una gamma di diverse interfacce utente.
- Le interfacce utente più famose funzionano con il concetto del sistema X Window, noto come 'X' .
- Offre trasparenza alla rete e consente a un'applicazione grafica attiva su un sistema di essere mostrata su un altro in cui un utente può collaborare con l'applicazione.
- Tuttavia, alcune estensioni del sistema X Window non sono in grado di funzionare sulla rete.
- Molti server di visualizzazione X sono disponibili con X.Org Server e l'implementazione di riferimento è la più famosa.
Inoltre, l'interfaccia utente è chiamata shell. Si tratta di una GUI (interfaccia utente grafica), di una CLI (interfaccia della riga di comando) o di controlli collegati al relativo hardware, il che è normale per i sistemi embedded. L'interfaccia utente predefinita è grafica per i sistemi desktop. Tuttavia, la CLI è disponibile tramite le finestre dell'emulatore di terminale o su una console virtuale isolata.
Le shell dell'interfaccia della riga di comando sono interfacce utente basate su testo, che utilizzano il testo sia per l'output che per l'input. La shell dominante è la bash (Bourne-Again Shell) utilizzata in Linux, originariamente progettata per il progetto GNU. Quasi tutti i componenti di basso livello di Linux, comprese diverse parti dello spazio utente, utilizzano esclusivamente la CLI. In particolare, la CLI è compatibile con l'automazione di attività ritardate o ripetitive e offre una comunicazione tra processi molto semplice.
Attualmente, Linux ha due API kernel-userspace per gestire i dispositivi di input video: API DVB per la ricezione TV e API V4L2 per flussi radio e video.
Questa infrastruttura deve evolversi per adattarsi meglio ad altri dispositivi a causa della diversità e della complessità dei diversi dispositivi e a causa del gran numero di standard e formati gestiti da tali API. Una migliore libreria di dispositivi in spazio utente è anche la chiave del successo per avere applicazioni in spazio utente che possano funzionare con ogni formato supportato dai dispositivi.
Usi del sistema operativo Linux
Diversi studi quantitativi sul software open source/libero si concentrano su argomenti come l'affidabilità e la quota di mercato, con molti studi che esaminano specificamente Linux. Il mercato Linux è in fase di sviluppo e le dimensioni del mercato dei sistemi operativi Linux dovrebbero registrare uno sviluppo del 19,2% entro il 2027, raggiungendo i 15,64 miliardi di dollari, rispetto ai 3,89 miliardi del 2019. I sostenitori e gli analisti attribuiscono il successo associativo di Linux alla sua libertà, al basso costo , affidabilità e sicurezza grazie al vincolo del fornitore.
W3Cook pubblica statistiche che utilizzano i primi 1.000.000 di domini Alexa, che stimano che il 96,55% dei server web utilizza Linux, l'1,73% utilizza Windows e l'1,72% utilizza FreeBSD a partire da maggio 2015.
A partire da maggio 2022, la quota di mercato stimata di Linux sui computer desktop è di circa il 2,5%, secondo le statistiche dei server web. Microsoft Windows detiene una quota di mercato di circa il 75,5%, mentre macOS ha circa il 14,9%.
Android è diventato il sistema operativo principale per smartphone basato sul kernel Linux. Nel luglio 2022, il 71,9% degli smartphone in tutto il mondo che utilizzavano Internet utilizzavano Android. Inoltre, Android è un famoso sistema operativo per tablet, responsabile di oltre il 60% delle vendite di tablet nel 2013.
Linux è da anni la piattaforma preferita nell'industria cinematografica. Il primo grande film pubblicato su un server Linux è stato Titanic del 1997. Da allora, i grandi studi cinematografici, tra cui Industrial Light & Magic, Weta Digital, Pixar e DreamWorks Animation, si sono trasferiti su Linux.
Le distribuzioni Linux hanno guadagnato popolarità anche in diversi governi nazionali e locali. Il Kerala è arrivato al punto di imporre che ogni scuola superiore statale utilizzi Linux sui propri sistemi. La Cina utilizza Linux esclusivamente come sistema operativo per la sua famiglia di processori Loongson per raggiungere l'indipendenza tecnologica.
Alcune regioni hanno integrato la loro distribuzione Linux in Spagna, che è ampiamente utilizzata nelle istituzioni ufficiali ed educative. Inoltre, Germania e Francia hanno fatto passi avanti verso l'adozione di Linux. Il sistema operativo Red Star della Corea del Nord è basato su una versione Fedora Linux sviluppata a partire dal 2002.
Sistema operativo Linux funzionante
Il sistema operativo Linux segue un design standard che è la chiave delle sue numerose distribuzioni e varianti. Ogni distribuzione Linux è basata sul kernel Linux ma può differire in base a fattori come:
- Driver di dispositivo, che utilizzano codice che gestisce il funzionamento dei dispositivi collegati.
- Driver del file system, che utilizzano codice che gestisce il modo in cui il kernel funziona con file system distinti.
- Chiamate di sistema, che utilizzano codice che gestisce il modo in cui i programmi richiedono i servizi attraverso il kernel.
- Avvio e caricamento del kernel Linux.
- Il kernel gestisce ogni output e input del sistema una volta avviato. Il sistema viene avviato e i processi possono essere inizializzati.
- Il sistema può essere utilizzato per processi che contengono comandi immessi in modo interattivo dalla riga di comando, funzioni del server di rete, applicazioni desktop o qualsiasi programma o applicazione durante l'avvio dei processi di sistema.
Il kernel è l'unica cosa che ogni sistema ha in comune con Linux. Linux opera tramite:
L'esperienza dell'utente può variare ampiamente, a seconda di come viene utilizzato il sistema Linux, mentre il kernel può essere quasi identico con alcune differenze di compilazione e divergenze per la configurazione. Ad esempio, alcuni casi d'uso di Linux con esperienze utente distinte sono:
Linux funziona in modo molto simile a qualsiasi sistema operativo basato su GUI quando lo si utilizza come GUI con un ambiente desktop. Le applicazioni e molte altre risorse possono essere avviate premendo le icone e i file possono essere eliminati, copiati o spostati utilizzando il trackpad o il mouse.
Distribuzioni Linux
Linux ha accettato le disposizioni sul copyleft della Free Software Foundation, che ha prodotto la GNU GPL sin dal suo sviluppo iniziale. La GPL descrive che qualsiasi cosa modificata e gratuita deve essere distribuita liberamente.
Sono disponibili centinaia di versioni Linux, chiamate anche distro o distribuzioni. Di solito, le distribuzioni si differenziano attraverso il pacchetto definendo un obiettivo, un mercato target, una funzione o una filosofia specifici.
Esistono molte distribuzioni realizzate per funzioni target particolari, come sicurezza, giochi, desktop, server o dispositivi incorporati, come i sistemi Raspberry Pi. Quasi tutte le distribuzioni moderne sono pronte per l'uso e precompilate, mentre altre, come Gentoo Linux, sono composte da codice sorgente che qualsiasi utente può compilare localmente durante l'avvio dell'installazione per utilizzare la configurazione del proprio sistema.
Pro e contro del sistema operativo Linux
Alcuni vantaggi derivanti dall'utilizzo di Linux sono elencati e spiegati di seguito:
Alcuni svantaggi di Linux sono: