CORSO BASE DI “TECNICO RIPARATORE HARDWARE” “LINUX” Docente: Dott. Ing. Antonio Pagano DESCRIZIONE: IL KERNEL 1/3 Linux è una famiglia di sistemi operativi di tipo Unix-like aventi la caratteristica comune di utilizzare come nucleo il kernel Linux. Il kernel Linux è un software libero distribuito con licenza GNU General Public License (GPL); è stato creato nel 1991 da Linus Torvalds. Integrato con il Sistema GNU, sviluppato da Richard Stallman, ha dato vita al sistema operativo GNU/Linux (chiamato comunemente con il solo nome Linux). Molte importanti società come: IBM, Sun Microsystems, Hewlett-Packard, Red Hat e Novell hanno sviluppato e sviluppano un sistema Linux. Grazie alla portabilità del kernel Linux sono stati sviluppati sistemi operativi Linux per un'ampia gamma di computer, dai cellulari, tablet computer e console ai mainframe e i supercomputer ed esistono sistemi Linux installabili come server. DESCRIZIONE: IL KERNEL 2/3 Il kernel è il "cuore" di un sistema operativo (nucleo) e fornisce tutte le funzioni essenziali per il sistema, in particolare la gestione della memoria, delle risorse del sistema e delle periferiche, assegnandole di volta in volta ai processi in esecuzione. La controparte del kernel è la shell, ovvero l'interfaccia utente del sistema, la parte più esterna. I programmi chiedono le risorse al kernel attraverso delle chiamate (system call) e non possono accedere direttamente all'hardware. Il kernel si occupa quindi di gestire il tempo processore, le comunicazioni e la memoria distribuendole ai processi in corso a seconda delle priorità (scheduling) realizzando così il multitasking. Come ogni progetto che sia software libero, anche il kernel Linux è in continua evoluzione. La dimensione del kernel Linux cresce in maniera esponenziale, aggiungendo nuovi moduli, hardware supportato ecc. DESCRIZIONE: IL KERNEL 3/3 Linux è un kernel che supporta il multitasking (“multiprocessualità” = più programmi contemporaneamente) ed è multi utente. Ciò permette che diversi utenti (con privilegi differenziati) possano eseguire sullo stesso sistema diversi processi software in simultanea. Attualmente Linux supporta gran parte dell'hardware disponibile per PC e supporta un numero enorme di architetture (tra cui SPARC, PowerPC e le più moderne CPU a 64 bit). Dato che il codice sorgente di Linux è disponibile a tutti, è ampiamente personalizzabile, al punto da rendere possibile, in fase di compilazione, l'esclusione di codice non strettamente indispensabile. La flessibilità di questo kernel lo rende adatto a tutte quelle tecnologie embedded emergenti e anche nei centri di calcolo distribuito (cluster Beowulf) fino ad essere incorporato in alcuni dispositivi digitali e nei cellulari. SCRITTO IN LINGUAGGIO C Linux è scritto nella versione del linguaggio di programmazione C supportata dal compilatore GCC (che ha introdotto numerose estensioni e cambiamenti al C standard), insieme a un certo numero di brevi sezioni di codice scritte in linguaggio assembly. Grazie alle estensioni di C che supporta, GCC per lungo tempo è stato il solo compilatore in grado di compilare correttamente Linux. Nel 2004, Intel asserì di aver modificato il kernel in modo tale che anche il suo compilatore C fosse in grado di compilare Linux.In qualche modo vengono utilizzati molti altri linguaggi, soprattutto nel processo di compilazione del kernel. Questi includono Perl, Python e diversi linguaggi di shell scripting. Alcuni driver possono anche essere scritti in C++, Fortran o altri linguaggi, ma è fortemente scoraggiata come pratica. Il sistema di compilazione di Linux supporta ufficialmente solo GCC come compilatore sia del kernel sia dei driver. PORTABILITA’ Sebbene inizialmente non progettato per essere portabile, Linux è uno dei kernel di sistema operativo maggiormente portabile, in grado di funzionare su un'ampia gamma di sistemi dall' iPAQ (un computer palmare) all' IBM System z9 (un server mainframe in grado di eseguire centinaia o migliaia di istanze Linux contemporanee). Linux è il sistema operativo principale dei supercomputer Blue Gene di IBM. Linux è il sistema operativo di più dell' 85% dei sistemi nella classifica Top 500 dei supercomputer. Inoltre, Linux è stato compilato in numerosi dispositivi portatili come TuxPhone e l'iPod di Apple. Il kernel Linux ha un supporto estensivo e funziona su numerose architetture di macchine virtuali sia come sistema operativo "server" che "client". Le macchine virtuali solitamente emulano la famiglia di processori Intel x86, sebbene in alcuni casi sono emulati anche i processori PowerPC o AMD. DEFINIZIONE 1/2 Il suo sviluppo è sostenuto da un'associazione senza fini di lucro, ovvero la Linux Foundation. Linux, come detto, è il nome del kernel sviluppato da Linus Torvalds a partire dal 1991 che è stato utilizzato come base per la realizzazione di vari sistemi operativi, in particolare molti progetti open source hanno scelto di sviluppare sistemi operativi con kernel Linux e software sviluppato dal progetto GNU, tutti questi sistemi vengono però comunemente chiamati con il nome del loro kernel (Linux) senza specificare di che tipo è il resto del software utilizzato. L'utilizzo della parola Linux è da attribuire a Ari Lemmke, l'amministratore che rese per primo disponibile Linux su Internet via FTP il 17 settembre 1991. In particolare, Linux era il nome della directory, la pub/OS/Linux, in cui risiedevano i file del nuovo sistema operativo. Il nome scelto da Torvalds e che durò per sei mesi era Freax, ovvero Freaks con la x d'ordinanza. DESCRIZIONE 2/2 Secondo alcuni e secondo l'uso della maggior parte degli utenti e degli sviluppatori e delle società coinvolti nello sviluppo del sistema operativo e del software ad esso collegato, il nome Linux è ormai divenuto sinonimo di sistema "Linux based", cioè di sistema basato sul kernel Linux. Sebbene non sia insostituibile per questo scopo, è anche il sistema operativo più comunemente usato per eseguire Apache, MySQL e PHP, i software alla base della maggior parte dei server web di tutto il mondo. Le iniziali di questi tre progetti, insieme all'iniziale della parola Linux, hanno dato origine all'acronimo LAMP. Con l'evoluzione di ambienti desktop come KDE e GNOME, sono state sviluppate distribuzioni che offrono un'interfaccia grafica simile a quella di Microsoft Windows o di Mac OS X, più vicina alle esigenze degli utenti meno esperti, rendendo il passaggio da un sistema all'altro meno traumatico. DISTRIBUZIONI 1/5 Non esiste un'unica versione di Linux ma esistono diverse distribuzioni (chiamate anche distro), solitamente create da comunità di sviluppatori o società, che scelgono, preparano e compilano i pacchetti da includere. Tutte le distribuzioni condividono il kernel Linux (sia pur in versioni diverse e spesso personalizzate), mentre si differenziano tra loro per il cosiddetto "parco software", cioè i pacchetti preparati e selezionati dagli sviluppatori per la distribuzione stessa, per il sistema di gestione del software e per i servizi di assistenza e manutenzione offerti. Esistono distribuzioni eseguibili direttamente da CD senza che sia richiesta l'installazione sul proprio hard disk, come Knoppix e derivate: sono chiamate distribuzioni live o desktop CD. Per altre ancora si può effettuare l'installazione dalla penna USB. DISTRIBUZIONI 2/5 In ordine alfabetico, segue la lista delle distribuzioni più diffuse e conosciute: Arch Linux - È leggera, veloce, estremamente scalabile e adattabile alle proprie esigenze. Ottimizzata per i686 e X86-64. Backtrack - Offre tools per fare test di penetrazione. Fino alla versione 3.0 derivava dalla distro WHAX, dalla versione 4.0 è invece basata su Ubuntu. CentOS - È una distribuzione basata sui sorgenti di Red Hat Enterprise Linux, quindi uguale ad essa in tutto e per tutto se non per i loghi e il nome che vengono cambiati in quanto marchi registrati. È usata per lo più in ambito server. Debian - Offre un ottimo sistema di gestione dei pacchetti software (in formato deb), compilati per 11 architetture differenti: Alpha, AMD64, ARM, HP PA-RISC, Intel x86, Intel IA-64, MIPS (big endian), MIPS (little endian), PowerPC, IBM S/390, SPARC. Viene definita per questo "il sistema operativo universale". Ha un'installazione disponibile sia in modalità testuale che grafica. Fedora - Distribuzione non commerciale sponsorizzata da Red Hat. Piuttosto curata nell'aspetto, viene aggiornata frequentemente con le ultime novità. Il sistema di pacchettizzazione è basato su RPM Package Manager e l'installazione è disponibile sia in modalità testuale che grafica. DISTRIBUZIONI 3/5 Knoppix - La distribuzione live CD più famosa. Nata per uso forense, deriva da Debian. Molto indicata per i principianti, permette di avere un sistema completo avviabile direttamente da CD-ROM o DVD che permette, tra i vari usi, l'utilizzo dimostrativo, come tool di diagnostica, come test di compatibilità hardware, ecc. Presenta alcune varianti come Eduknoppix. Linspire - Era un distribuzione commerciale derivata da Debian che puntava alla facilità d'installazione e d'utilizzo anche da parte di principianti. Mandriva - Conosciuta come Mandrake fino al 2005, anno in cui la Mandrakesoft ha acquisito Conectiva. È una tra le distribuzioni più diffuse e maggiormente orientate all'utente desktop. È distribuita sia in forma gratuita che come prodotto commerciale (in questo caso include alcuni pacchetti proprietari), con nuove release a cadenza approssimativamente annuale. Ha un sistema di pacchettizzazione basato su RPM. Mint - Derivata da Ubuntu, comprende alcuni software personalizzati per installazione e gestione, un menù principale che richiama quello di Windows Vista, e comprende codec multimediali preinstallati per DVD, MP3 ecc. OpenSUSE - È una distribuzione non commerciale nata dall'apertura allo sviluppo comunitario di SuSE. DISTRIBUZIONI 4/5 Puppy - Distribuzione molto leggera, disponibile in versione Live cd, ed adatta a pc poco potenti o datati, occupa poche risorse e spazio su disco. Se la quantità di RAM è sufficiente (256 MB o più), può girare integralmente in memoria. Red Hat Linux Enterprise - È la distribuzione commerciale più diffusa. Leggera, non viene aggiornata alle ultime novità ma predilige versioni di kernel e componenti stabili e collaudate. Gli sviluppatori di Red Hat hanno realizzato il diffuso sistema di pacchetti RPM. Sabayon - Sabayon è una distro basata su Gentoo che si caratterizza per la compresenza di due package manager (binario e sorgente). È disponibile in diverse versioni con KDE, GNOME, XFCE, LXDE, Enlightenment, Fluxbox. Slackware - Viene spesso definita come la distribuzione più "pura" dal punto di vista degli standard GNU Linux. Possiede un sistema di gestione dei pacchetti molto rigido con una relativa scarsità di software precompilato. SLAX - Deriva direttamente da Slackware e ne conserva le caratteristiche di velocità, stabilità, leggerezza e ampia configurabilità in base alle varie esigenze del singolo utente. Adotta un approccio modulare avanzato. DISTRIBUZIONI 5/5 SuSE - Celebre distribuzione europea, molto usata a livello aziendale, ma rivolta anche all'utente Desktop. Anch'essa basata su RPM, è un prodotto commerciale. - Home page. È basata sul lavoro del progetto OpenSUSE. Ubuntu - Distribuzione derivata da Debian, è salita alla ribalta per la facilità d'installazione e d'utilizzo e per la disponibilità di frequenti aggiornamenti della versione stabile. Supporta i pacchetti Debian e il desktop GNOME. Esistono numerose varianti, tra cui Kubuntu, Xubuntu, Lubuntu ed Edubuntu. Secondo una statistica relativa al mese di dicembre 2010 risultava la distribuzione più diffusa. La maggioranza delle distribuzioni Linux non contiene esclusivamente software libero ma anche, in misura ridotta, software proprietario (ad esempio driver, codec codec,, tool e applicazioni), spesso per reale mancanza di software libero corrispondente corrispondente.. La Free Software Foundation 22]], ha stilato una lista di (FSF), sulla base delle Guidelines for Free System Distributions[22 distribuzioni Linux che contengono esclusivamente software libero libero:: gNewSense, gNewSense, BLAG, DRAGORA, Dynebolic Dynebolic,, Kongoni Kongoni,, Musix Musix,, ecc ecc… … UBUNTU 1/5 E’ un sistema operativo GNU/Linux nato nel 2004, basato su Debian, che si focalizza sull'utente e sulla facilità di utilizzo. Ubuntu è orientato all'utilizzo desktop e pone una grande attenzione al supporto hardware. È prevista una nuova versione ogni sei mesi. Finanziato dalla società Canonical Ltd (registrata nell'Isola di Man), questo sistema è rilasciato come software libero sotto licenza GNU GPL ed è gratuito e liberamente modificabile. L'ideatore dell'iniziativa è Mark Shuttleworth, un giovane imprenditore sudafricano diventato sostenitore del software libero al cui servizio ha posto le sue risorse. Ubuntu infatti, prende il nome da un'antica parola africana che significa "umanità verso gli altri", oppure "io sono ciò che sono per merito di ciò che siamo tutti". L'obiettivo è portare questa idea nel mondo del software, dando un grande peso alla comunità di utenti partecipanti nello sviluppo del sistema operativo. UBUNTU 2/5 Ubuntu è progettata per fornire un'interfaccia semplice, intuitiva e allo stesso tempo completa e potente. I punti di forza di questa distribuzione sono l'estrema semplicità di utilizzo, l'ottimo riconoscimento e supporto dell'hardware, il vasto parco software costantemente aggiornato e una serie di strumenti di gestione grafici che la rendono improntata verso l'ambiente desktop. È corredata da un'ampia gamma di applicazioni libere. Esistono vari strumenti di amministrazione del sistema, ed è possibile gestirli sia separatamente che in maniera centralizzata con l'Ubuntu Control Center, paragonabile al pannello di controllo Windows o al Mandriva Linux Control Center o a YaST di OpenSUSE. La versione desktop è stata realizzata per rispondere alle più frequenti necessità di un utente medio, quali navigazione in Internet, gestione dei documenti e delle immagini, svago e comunicazione. UBUNTU 3/5 Il sistema operativo comprende una suite da ufficio (LibreOffice) per creare e stampare documenti o presentazioni, un internet browser (Mozilla Firefox) per navigare su internet, un client BitTorrent (Transmission), un client email (Mozilla Thunderbird), un client di messaggistica istantanea (Empathy), un gestore delle fotografie (Shotwell), un riproduttore musicale (Banshee), un editor video (PiTiVi) e un client per microblogging (Gwibber). Inoltre offre funzioni più basilari come un editor di testi (Gedit), un visualizzatore di documenti PDF (Evince), un lettore multimediale (Totem) e una serie di giochi. È possibile scaricare ed installare gratuitamente e senza alcuna procedura di configurazione oltre 30.000 pacchetti software liberi dell'universo Linux, tramite il semplice ed intuitivo Ubuntu Software Center. UBUNTU 4/5 Alcuni di questi sono: VLC media player, Inkscape (grafica vettoriale), GIMP (fotoritocco), Pidgin (chat), Blender (grafica 3D), Synfig (Tweening), Bluefish (editor HTML), KompoZer (WYSIWYG) e molti altri. Da dicembre del 2011 è possibile cercare i programmi contenuti nei repository ufficiali di Ubuntu ed installarli direttamente dal web, avviando un'istanza di Ubuntu Software Center. Sul sito ufficiale è disponibile una lista di applicazioni che possono rimpiazzare software proprietari usati su altri sistemi operativi, come ad esempio Microsoft Office o Adobe Photoshop. La distribuzione è tradotta in quasi tutte le lingue occidentali (tra cui l'italiano), orientali e africane. I programmi installati vengono gestiti attraverso un sistema centralizzato, detto gestione dei pacchetti, tipica di un sistema operativo Linux. UBUNTU 5/5 Una caratteristica di Ubuntu, dovuta all'architettura Linux, è la sua resistenza a programmi dannosi come virus, adware, spyware o malware. L'architettura di un sistema operativo Linux lascia, infatti, poca o nessuna libertà d'azione ad un programma nocivo. Anche se un programma nocivo sfruttasse una falla, l'architettura del sistema operativo ne impedirebbe l'utilizzo, almeno nella stragrande maggioranza dei casi, e il danno rimarrebbe circoscritto nell'home directory dell'utente che ha causato il danno. Inoltre questi programmi dannosi sono generalmente sviluppati per Windows, che dispone di una più ampia diffusione. L'utente utilizza un account con permessi limitati, ciò riduce la pericolosità dei programmi installati. Per eseguire compiti amministrativi è richiesta la propria password per confermare l'operazione. E’ inoltre, distribuito con un firewall software, Uncomplicated Firewall, e permette di discriminare gli accessi esterni. DISTRIBUZIONI PER BAMBINI Si tratta di distribuzioni che forniscono raccolte preinstallate di giochi educativi in ambienti adatti a bambini a partire dall'età prescolare fino agli inizi dell'adolescenza. Tutte le distribuzioni di questo tipo adattano l'ambiente da un punto di vista grafico, ed alcune semplificano anche in maniera consistente le modalità di utilizzo dell'ambiente. Normalmente vengono fornite anche delle raccolte di giochi ludici, e a volte vengono preinstallati anche dei programmi per sviluppare la creatività. Non di rado vengono integrati dei filtri famiglia per proteggere i bambini dall'ottenimento di pagine inappropriate durante la navigazione in internet. I giochi educativi inclusi non differiscono molto tra una distribuzione e l'altra, e comprendono giochi per l'apprendimento dell'uso del mouse e della tastiera, dell'alfabeto e delle sillabe, dei numeri e delle operazioni, di abilità di memorizzazione e ragionamento, fino ad attività più complesse come scienze. VERSIONI EMBEDDED La possibilità di intervenire sul kernel Linux e la comparsa di molti appassionati ne hanno suggerito l'utilizzo nell'elettronica dei dispositivi integrati. Infatti a partire dal 2009, è possibile reperire apparecchiature commerciali (quali router, smartphone o tablet) dotate di sistemi Linux fortemente ridotti. Esistono anche distribuzioni Linux pensate per essere utilizzate su tali sistemi embedded, ad esempio OpenWRT, Android (sviluppato da Google), MeeGo o Ångström. STABILITA’ Linux non soffre, ad esempio, di problemi di frammentazione del file system, oppure l'installazione o la disinstallazione di applicazioni non sporcano il sistema o ne rallentano l'avvio o la chiusura. Inoltre il blocco di un'applicazione, nella maggior parte dei casi, non blocca l'intero sistema. Attualmente i requisiti minimi di installazione sono: Minimo 300 MHz per Processore x86; 256 MB di RAM (192 con il cd Alternate); Almeno 3-4 GB di spazio libero su disco fisso per un'installazione completa e per la partizione di swap; Scheda video VGA con una risoluzione minima pari a 640*480; REQUISITI RACCOMANDATI Processore 1 GHz x86 1 GB di RAM 15 GB di spazio libero su disco Scheda grafica con una risoluzione minima pari a 800x600 Piastra madre capace di avvio da lettore CD/DVD o USB Scheda audio Connessione Internet I requisiti raccomandati per attivare gli effetti desktop sono, oltre a quelli richiesti per l'installazione base: Minimo 1,2 GHz per Processore x86; Scheda video con accelerazione 3D. Grazie