Kernel - Che cos'è? |
Per kernel si intende il cuore di un sistema
operativo, il codice che gestisce le risorse presenti sul nostro sistema
e le rende disponibili alle applicazioni.
Il kernel si occupa principalmente di gestire:
- le comunicazioni con l'hardware del sistema,
- i file system, la memoria,
- l'accesso a queste risorse da parte dei processi (le applicazioni
che girano sul sistema)... |
Le versioni del kernel Linux sono identificate con
numeri dal significato ben preciso. Per esempio il kernel 2.4.15
ha:
2- Il major number. I kernel della serie 1.x sono ormai
piuttosto vecchi e pochissimo usati.
4- Il minor number. 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.18,
mentre quello in sviluppo è alla 2.5.7 (da cui deriverà
la 2.6.x o direttamente la 3.0.x). Solitamente nei kernel stable si tende
a fare maintenance ed a implementare solo le features 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 Torwalds 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.
Kernel Monolitico Vs Kernel Modulare |
Esistono 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. |
Le distribuzioni |
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 è
veramente un OS 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).
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; fornisce un proprio sistema di pacchettizzazione simile
all'RPM (pacchetti .DEB). Viene considerata per puristi ed esperti
e risulta generalmente meno user-friendly delle altre. |
S.U.S.E. |
Distribuzione più diffusa in Europa, solida
e ben accessoriata, RPM compatibile.
Utilizza un software di gestione e configurazione (YAST) completo,
semplice, ma poco compatibile. |
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. |
|
Quale distribuzione usare? |
E' difficile suggerire una specifica distribuzione da utilizzare
per i propri server.
In questo corso viene utilizzata Red Hat perchè è
la più diffusa, perchè è ben bilanciata
per diversi campi di attività, è ben supportata dalla
casa madre (che offre anche servizi di supporto a pagamento) e generalmente
è ben strutturata.
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à di aggiornamente e manutenzione.
Qualunque sia la distro adottata è sempre consigliabile installarne
l'ultima versione disponibile (contiene pacchetti e kernel
più recenti) e seguirne sul relativo sito la segnalazione
di eventuali aggiornamenti ( "errata"), possibilmente
aspettando alcune settimane prima di metterla in produzione, visto
che ogni nuova distribuzione tende ad avere bug e falle nella sicurezza
che vengono aggiornate dopo l'iniziale diffusione pubblica.
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 non utilizzati;
- Eventuale aggiornamento del kernel;
- Implemementazione di script o configurazioni custom.
|
|