DESCRIPTION | Nel mare delle distribuzioni Linux | Live Discussion - Skill: 1- NOVICE |
Una Distribuzione (distro) è un confezionamento (packaging) di Linux, con procedure che rendono comoda e semplice l'installazione. Si consideri che il "Linux di Linus" non è un OS come comunemente definito, ma il semplice kernel. A questo ogni distribuzione aggiunge tutto il software necessario per avere un sistema operativo completo di software applicativo e di servizio. Anche per questo Stallman insiste nel chiamarlo GNU Linux poiché tutte le utility di base, dal gcc (compilatore) alle utility di gestione file fanno parte del progetto gnu. Notare che essendo queste utility (bash, vi, emacs, awk, gcc ecc.) scritte in tempi successivi rispetto agli equivalenti Unix, sono generalmente più evolute e migliori per l'inevitabile progresso della scienza informatica. Le distribuzioni differiscono per: - Numero e versioni dei programmi installabili; - Versione del kernel utilizzata e modalità di pre-installazione (il kernel solitamente non viene compilato durante una normale installazione); - Procedura di installazione (interfaccia utente e possibilità di definire opzioni e scegliere quale software installare); - Organizzazione di file di configurazione, programmi, log nel file system; - Configurazioni predefinite del software installato. Le distribuzioni più note sono: Red Hat Red Hat è la più popolare distribuzione Linux e si adatta bene ad usi diversi (desktop, server, laptop) pur avendo una storia di sicurezza non certo esemplare. Pioniera nell'includere un meccanismo di update User Friendly e l'aggiornamento automatico tramite il RedHat Network. Ha introdotto il sistema di gestione di pacchetti software con estensione .RPM che facilita installazione e aggiornamento del software. Debian Distribuzione completamente sviluppata da una comunità che consta di centinaia di persone in tutto il mondo è quella che meglio incarna lo spirito del Free Software. Fornisce un proprio sistema di pacchettizzazione simile all'RPM (pacchetti .DEB). Viene considerata per puristi ed esperti e risulta generalmente meno user-friendly e più stabile delle altre. S.U.S.E. Distribuzione più diffusa in Europa, solida e ben accessoriata, RPM compatibile e user-friendly. Utilizza un software di gestione e configurazione (YAST) completo, semplice, ma sgradito a chi ama modificare a mano i file di configurazione. Mandrake In crescente diffusione, usa pacchetti simili a RPM (MDK) che sono aggiornati molto rapidamente. E' molto user friendly e probabilmente è la più adeguata per un sistema desktop. Slackware Slackware è una delle prime distribuzioni. Si differenzia dalle altre per non usare package tipo RPM o DEB e viene generalmente considerata più ostica da installare. Per puristi. Gentoo E' una distro relativamente nuova ma a suo modo rivoluzionaria. E' fatta per essere compilata direttamente sul PC di installazione in ogni sua parte. Si basa su un sistema simile ai ports BSD basati su semplici file di testo con tutti i riferimenti su un programma/pacchetto in termini di nome, descrizione, caratteristiche, dipendenze e url per scaricare i sorgenti e procedure di compilazione. E' decisamente per esperti, ma permette tuning e personalizzazioni notevoli. Lindows E' una delle distribuzioni più "commerciali", espressamente dedicata ad utenti non esperti che sono abituati a Windows. Incorpora e integra Wine e altri strumenti per rendere il sistema il più possibile simile a Windows, prevede un sistema di abbonamento online (Click'n'Run) tramite il quale si possono facilmente installare nuovi programmi. Non include nemmeno il compilatore gcc.
|
DESCRIPTION | Il Kernel - Cosa è? | Live Discussion - Skill: 2- JUNIOR |
Il kernel è il codice che gestisce le risorse presenti in un computer e le rende disponibili alle applicazioni con cui l'utente comunemente interagisce. In un sistema operativo, inteso in senso esteso, come può esserlo Windows completo di programmi accessori (Explorer, Internet Explorer, notepad e via dicendo), il kernel costituisce solo lo strato più profondo, quello che si occupa del "lavoro sporco" di interagire direttamente con l'hardware. Il kernel si occupa principalmente di gestire: - le comunicazioni con le memorie di massa (hard disk, floppy cdrom), - i file system, cioè il modo con cui sono organizzate le informazioni sulle memorie di massa, - la memoria RAM e l'accesso dei singoli programmi alla stessa, - l'utilizzo della CPU e la condivisione della stessa fra i vari programmi, - l'interfacciamento e la comumicazione con hardware vario (schede di rete, porte seriali, USB, parallele, schede audio, schede video ecc. |
||||
Le versioni del kernel Linux sono identificate con numeri a tre cifre separate da un punto (ed: 2.1.45) con una convenzione ben precisa. Per esempio il kernel 2.4.15 ha: 2- Il major number, la serie principale. I kernel della serie 1.x sono ormai piuttosto vecchi e poco usati, quelli della serie 0.x sono ancora più vecchi e ormai rarità da collezionista (si fa per dire, dal sito ufficiale del kernel Linux sono ancora scaricabili. 4- Il minor number, il numero di versione principale. Se è pari il kernel viene considerato stable e pronto per sistemi in produzione, se è dispari lo si considera in development e da usare con cautela o per sperimentazione. Le release stable sono sempre figlie delle devel precedenti. Per esempio al momento in cui si scrive, il kernel stable è alla versione 2.4.19, mentre quello in sviluppo è alla 2.5.30 (alla fine del processo di sviluppo della 2.5 (devel) deriverà la 2.6). Solitamente nei kernel stable si tende a fare maintenance ed a implementare solo le feature strettamente necessarie, lasciando a quello in development lo sviluppo di nuove funzionalità. 15- E' la revisione (patch) corrente. Questo è un numero progressivo che parte da 0. Da una revisione alla successiva possono passare da pochi giorni a varie settimane. Esistono inoltre varie patch temporanee, anche non di Torvalds stesso (comuni sono le -ac patch, di Alan Cox) che rappresentano stadi intermedi prima della release di una revisione definitiva. Ha senso utilizzarle subito solo in caso di utilizzo di kernel con gravi problemi di sicurezza o stabilità (sul proprio sistema) che vengono risolte con le relative patch parziali. Il kernel in development è attualmente composto da sorgenti realizzati da centinaia di programmatori e assemblati da Linus Torvalds che rilascia personalmente le nuove versioni. |
DESCRIPTION | Diversi tipi di kernel | Live Discussion - Skill: 2- JUNIOR |
Il kernel di un sistema operativo può avere diverse strutture di base. Qui si accenna alle caratteristiche dei diversi tipi di kernel. | ||||
Monolitico E' un singolo file binario eseguibile in modalità "kernel" che contiene il gestore del processo, della memoria, del sistema e tutto il resto. Esempi di tali sistemi sono UNIX, Linux, MS-DOS. Microkernel E' un piccolo nucleo ridotto ai minimi termini che ha il compito di gestire le comunicazioni fra i gestori di sistema, processi separati eseguiti al di fuori dal kernel. Esempi di tali sistemi sono BE OS, GNU HURD, MINIX. Modulare Per kernel Modulare si intende un' estensione del kernel monolitico, con la capacità di caricare/scaricare parti di codice (moduli) secondo necessità e richieste. Può esserlo Linux se lo si definisce in fase di configurazione pre-compilazione. Il kernel monolitico è più veloce, poichè tutto il codice è già stato caricato al bootstrap dell'OS, ma di contro occupa maggiori risorse del sistema. Un altro punto a favore è la maggiore stabilità: non richiede moduli evitando così pericolose dipendenze. Il kernel modulare è quello utilizzato da tutte le distribuzioni in fase di installazione di LINUX su una macchina. |
TIPS | Browsare i sorgenti del kernel Linux | Live Discussion - Skill: 2- JUNIOR |
Poter avere accesso completo al codice sorgente del proprio sistema operativo può essere per molti totalmente irrilevante ma per alcuni è una fonte inesauribile di studio, approfondimento e supporto allo sviluppo. | ||||
Esistono in rete progetti che favoriscono la possibilità di lettura ed analisi dei sorgenti di Linux. http://lxr.linux.no/ - Cross-Referencing Linux E' un sito che permette il browsing all'interno dei sorgenti Linux. E' particolarmente affascinante ed utile perchè, tramite una moltitudine di link, permette di correlare funzioni, variabili e strutture risultando piuttosto interessante, anche per il semplice curioso senza particolari cognizioni di programmazione in C.
|
TIPS | Quale distribuzione scegliere? | Live Discussion - Skill: 1- NOVICE |
Scegliere la distribuzione giusta fra le decine (centinaia?) disponibili è impresa ardua, come lo è ottenere una risposta precisa da un "esperto di Linux". Inevitabilmente, da bravo informatico, risponderebbe "dipende". |
||||
Nei corsi OpenSkills viene utilizzata Red Hat fondamentalmente perchè è la più diffusa e quindi quella che più comunemente si può trovare nel proprio lavoro. In genere, la migliore distribuzione da usare è quella che meglio si conosce e se si devono gestire diverse macchine è opportuno averle tutte con la stessa distribuzione e possibilmente versione, per facilità e rapidità di aggiornamente e manutenzione. Qualunque sia la distro adottata è sempre consigliabile installarne l'ultima versione disponibile (contiene pacchetti e kernel più recenti) lasciando possibilmente passare almeno un mese dalla sua release per permettere il fixing dei bug e dei buchi di sicurezza più evidenti. Fondamentale è comunque seguirne sul relativo sito le segnalazioni di aggiornamenti ("errata" o "patch"), possibilmente. Considerare che dopo l'installazione di una qualsiasi distribuzione, se si sta lavorando su un server che deve andare in produzione, sono auspicabili, consigliati e necessari una serie di interventi di post installazione: - Aggiornamento di tutti i pacchetti per i quali esistono degli errata (nuove versioni che aggiornano bug o buchi di quelle rilasciata con il CDROM originale); - Rimozione di tutti i servizi Internet non utilizzati; - Eventuale aggiornamento del kernel; - Implemementazione di script o configurazioni custom. La flessibilità di Linux si presenta anche in forma di Live CD, un sistema operativo Linux che viene caricato direttamente da CDROM, senza dover essere installato sull'hard disk, che risulta direttamente utilizzabile ed ottimo per valutare come si comporta Linux su un proprio computer, senza intaccare il sistema pre-installato. La distribuzione "Live" più evoluta e diffusa è Knoppix. |
DISTRO | Distribuzioni Live CD | Live Discussion - Skill: 1- NOVICE |
Esistono distribuzioni che si presentano come un "LIVE CD" che permette l'esecuzione sul proprio computer di un Linux completo, che viene caricato direttamente dal CD-ROM e non ha bisogno di essere installato su Hard Disk. In questo caso l'hard disk può essere assente o venir utilizzato solo per creare file temporanei, ed eventuali dati dell'utente. Simili Live CD, che ovviamente richiedono l'impostazione del CDROM come device di boot principale, possono essere utili per operazioni di disaster recovery e, soprattutto, per provare sulla propria macchina un Linux senza di fatto doverlo installare sull'Hard Disk. Una interessante applicazione di un LiveCD è quella specificatamente dedicata all'utilizzo di una macchina Linux come firewall. In questi casi basta un Live CD, che viene caricato al boot, e un floppy da cui caricare le impostazioni e le configurazioni specifiche: al termine del caricamento si potrà avere un firewall basato su Linux particolarmente sicuro, in quanto non presenta la possibilità di scrivere file da alcuna parte e, fatte salve adeguate regole di packet filtering, risulta praticamente impermeabile a molti tipi di attacco. |
||||
Fra queste distribuzione una delle più complete, interessanti ed efficaci è Knoppix che condensa in un singolo CD, 2Gb di software compattato che può essere eseguito e scompattato on-the-fly, dopo un rapido boot (nell'ordine di 2 minuti, dal Bios ad un KDE completo) direttamente da CD, senza scrivere un byte su hard disk e con attime capacità di riconoscimento dell'hardware locale. Consigliato a chi vuole provare Linux o deve farne dimostrazioni pubbliche.
|