Che cos’è CentOS?

I sistemi operativi Enterprise, ideati quindi per le aziende, devono soddisfare alcuni criteri importanti: per esempio è essenziale che il relativo software per la gestione del sistema sia collegato a un supporto completo offerto dal team degli sviluppatori, perché solo così vengono garantiti permanentemente i miglioramenti del software e la risoluzione degli errori a intervalli di tempo regolari, oltre che gli aggiornamenti per la sicurezza per la protezione da nuovi malware e per la chiusura delle falle di sicurezza scoperte.

Ugualmente importante per il funzionamento costante delle applicazioni aziendali è la garanzia della stabilità delle interfacce tra il sistema operativo e i programmi utilizzati (compatibilità retroattiva). Una soluzione Enterprise particolarmente amata nel web e anche open source è la distribuzione Linux CentOS.

CentOS: la storia del derivato di RHEL

Community Enterprise Operating System, abbreviato in CentOS, è una distribuzione Linux rilasciata a marzo 2004. Il progetto open source, sviluppato e supportato da un’enorme community, si basa sui pacchetti sorgente di Red Hat Enterprise Linux (RHEL), cioè una distribuzione commerciale che può essere utilizzata solo in combinazione con contratti di supporto a pagamento. Da parte sua, Red Hat, il fornitore di RHEL, è tenuto a rendere pubblico il codice sorgente per soddisfare le varie licenze gratuite dei componenti software integrati. Nell’ambito del progetto CentOS gli sviluppatori hanno perciò potuto basarsi facilmente sul codice sorgente di RHEL per la programmazione di un equivalente utilizzabile gratuitamente.

Tutte le versioni di CentOS rilasciate finora si ispirano alle relative release di RHEL e hanno impostato anche la compatibilità binaria con il prodotto Red Hat. Tutte le applicazioni disponibili per il sistema Enterprise commerciale funzionano quindi anche senza compilatore aggiuntivo e senza limitazioni di sorta. All’inizio del 2014 i dipendenti di Red Hat e gli sviluppatori del progetto CentOS, rimasto indipendente, si unirono nel cosiddetto “Governing Board”. Da allora questo team è responsabile principalmente per lo sviluppo della distribuzione e la gestione dei diversi gruppi di lavoro (core del sistema, supporto, design, ecc.).

Cosa contraddistingue la distribuzione CentOS

Come il suo modello RHEL, CentOS è una piattaforma Enterprise che è adatta prima di tutto per l’uso nelle aziende e nelle grandi organizzazioni. In linea di principio la distribuzione Linux può essere anche usata nel settore privato, malgrado gli sviluppatori non si concentrino affatto su questo ambito. Inoltre la distribuzione Linux gode di una grande popolarità come sistema operativo per il web server, infatti, secondo le statistiche di w3techs.com (aggiornato a gennaio 2017) Ubuntu e Debian sono i sistemi operativi utilizzati maggiormente.

Come distribuzione Enterprise CentOS è contraddistinto dalle stesse proprietà che, agli occhi delle aziende, rendono prezioso anche RHEL:

  • Stabilità: CentOS viene sviluppato continuamente per poter offrire anche ai software attuali la piattaforma perfetta. Così l’aspetto della compatibilità delle applicazioni più vecchie viene sempre trattata con accortezza. I passaggi di sviluppo per il futuro vengono così sempre eseguiti di modo che anche la stabilità dei componenti attivi sia garantita. Inoltre il sistema convince per le sue elevate prestazioni nei settori della virtualizzazione (sulla base di una macchina virtuale basata sul kernel, KVM) e dell’elevata disponibilità, motivi per cui la distribuzione fa una bella figura anche nell’ambito del funzionamento dei server cloud e virtuali.
  • Sicurezza: il tema sicurezza oggi è più importante che mai, perciò CentOS come soluzione Enterprise con base RHEL rappresenta un’ottima scelta. Infatti il codice sorgente alla base di Red Hat è già ad un alto livello per quanto riguarda la sicurezza, grazie alla scoperta proattiva di vulnerabilità da parte del team di sicurezza dell’azienda di software americana. Inoltre per ogni aggiornamento CentOS e per l’integrazione dei nuovi programmi viene data massima priorità alla verifica della sicurezza e degli errori. In più la distribuzione Linux supporta l’estensione kernel SELinux (Security-Enhanced Linux), un prodotto open source che deriva dalla collaborazione tra Red Hat e l’NSA. Questo programma implementa i controlli dei permessi per l’utilizzo delle risorse del computer e in questo modo protegge dagli accessi non autorizzati.
  • Cicli di supporto e gestione nel lungo periodo: a partire dalla prima versione di CentOS sia grandi sia piccole release sono strettamente collegate alle relative pubblicazioni di RHEL. Per mettere in moto il processo per l’adattamento del codice, il team di sviluppo prevede un arco di tempo dalle 2 alle 6 settimane (o anche di poche ore nel caso di piccoli aggiornamenti). I numeri della versione vengono così semplicemente mantenuti (ad esempio RHEL 6.2 à CentOS 6.2). A partire dalla versione 7, in aggiunta viene allegata una marca temporale che rimanda alla pubblicazione del codice di base, ad esempio la versione 7.0-1406 fa riferimento al rilascio del codice sorgente a giugno 2014. Oltre al numero delle versioni, CentOS ha anche ripreso le stesse linee guida per i periodi di gestione: così ora sono previsti fino a 7 anni per il supporto generale e fino a 10 anni per l’ottenimento degli aggiornamenti di sicurezza (fino alla versione 5.0 erano ancora rispettivamente fino a 4 e 7 anni). 

L’installazione avviene, come anche su RHEL, tramite il manager grafico e user-friendly Anaconda e anche per quanto riguarda il gestore di pacchetti (RPM) e la gestione del software (yum) CentOS si serve di componenti affermati di Red Hat. Ma anche quando di solito i programmi RHEL funzionano sul suo derivato gratuito, spesso gli mancano le certificazioni, oltre che il supporto del rispettivo produttore, perciò non è sempre garantito che funzionino correttamente su CentOS. 

CentOS: quali requisiti di sistema valgono per la distribuzione?

A seconda della rispettiva versione di CentOS, logicamente l’hardware deve soddisfare diversi requisiti. CentOS 5 se la cava ancora ad esempio con 512 MB di RAM se volete utilizzare un’interfaccia utente grafica, e con dei parsimoniosi 128 MB se vi accontentate dell’uso tramite riga di comando. Inoltre sono consigliati 5 GB di memoria (minimo 1 GB).

Invece per la versione a riga di comando, che non esiste più come opzione separata su CentOS 7, la versione 6 prevede già 392 MB di RAM e necessita di 1 GB sulle architetture non di tipo x86. La già nominata versione 7 della distribuzione Linux prevede solitamente 1 GB di RAM così come 20 GB di spazio su disco fisso (minimo 10 GB).

Le diverse release del derivato di RHEL si differenziano anche per quanto riguarda le architetture hardware supportate. Molte delle portabilità per la versione 7 vengono così eseguite dal gruppo di lavoro Alternative Architecture Special Interest Group” (AltArch SIG) e aggiunte successivamente. La seguente tabella fornisce una panoramica sulle possibili architetture di sistema:

Archittetura CentOS 4 CentOS 5 CentOS 6 CentOS 7  
Sistemi i386 (AMD, Via, 32-bit Pentium)  
Sistemi x86_64 (AMD64/EM64T)  
Sistemi ia64 (Itanium2) No No No  
Sistemi s390/s390x (IBM zSeries & IBM S/390) No No No  
Sistemi ppc/ppc64 (IBM Power, Mac) No No No  
Sistemi SPARC (processori Sun SPARC) No No No  
Sistemi Alpha (processori DEC Alpha) No No No  
Sistemi armhfp (arm32) No No No  
Sistemi aarch64 (arm64) No No No  

Le funzioni che offre il sistema operativo Linux

La versione attuale 7.0 di CentOS (aggiornata a gennaio 2017) si basa sul kernel Linux 3.10.0, comprensivo della già nominata estensione di sicurezza SELinux, e ha implementato GCC (GNU Compiler Collection). Questa collezione comprende il compilatore per i linguaggi di programmazione più importanti, come C, C++ e Java. La distribuzione Linux supporta inoltre l’Hyper-Threading, ovvero una tecnologia che prevede la divisione di un processore in due processori virtuali per aumentare la performance, Plug and Play, il Bluetooth e la versione 6 del protocollo Internet (IPv6). Per le versioni più datate di CentOS 5 e 6 esistono le librerie di compatibilità. Il pacchetto standard della distribuzione comprende inoltre i seguenti componenti software:

  • Web server: httpd 2.4.6 (Apache)
  • Gestore di rete LAN: Samba-4.1.x
  • Database: MariaDB 5.5.x, PostgreSQL 9.2.x
  • Linguaggi di scripting: PHP 5.4, Python 2.7, Perl 5.16.3
  • Interfaccia desktop: Gnome 3.14, KDE 4.14
  • Server grafico: X.org 7.7
  • Client di posta elettronica: Evolution 3.12, Thunderbird 45
  • Browser: Firefox 45
  • Suite di Office: LibreOffice 4.3.7

Special Interest Groups: i gruppi di lavoro della community CentOS

Con la fondazione del Governing Board è stata creata una struttura per lo sviluppo del sistema Linux. A partire da quel momento diversi team (composti da membri dell’ampia community) lavorano in diversi gruppi di lavoro che hanno l’obiettivo di ampliare la distribuzione CentOS o di ottimizzare gli aspetti funzionali del progetto CentOS (infrastruttura, documentazione, ecc.).

Per via del codice sorgente aperto è perciò anche possibile apportare le modifiche al sistema senza appartenere a uno di questi Special Interest Groups (SIG), anche se poi non potranno essere rilasciati con il brand “CentOS”. I singoli SIG dispongono di un certo grado di autonomia e sono principalmente responsabili per il processo di sviluppo. Prima che il risultato possa essere segnalato e rilasciato, serve però l’approvazione del Governing Board.

I tre tipi dichiarati di Special Interest Groups sono i seguenti:

  1. Core SIG: i Core SIG elaborano contenuti che sono rilevanti per la versione principale della distribuzione Linux. Questi gruppi devono armonizzare il processo di sviluppo su altri aggiornamenti di RHEL e occuparsi infine della firma e del rilascio. Inoltre nelle licenze e nei post devono sviluppare le linee guida per la pubblicazione tramite Git.

  2. Variant SIG: se il core delle versioni CentOS deve essere modificato o ampliato indipendentemente dalla serie di release ufficiali, ciò avviene nei Variant SIG. Il prerequisito per un simile progetto è che presenti un uso concreto per un gruppo della community. Tutti i pacchetti software aggiuntivi utilizzati devono essere conformi alle licenze del progetto CentOS e devono poter essere decompressi ed emessi in base allo stato attuale. Inoltre è compito del gruppo di lavoro controllare il codice aggiuntivo scritto da altri utenti per la variante in questione e pubblicato tramite un repository git, e includerlo se necessario

  3. Functional SIG: i Functional SIG hanno l’incarico di creare e gestire i componenti importanti del progetto CentOS. L’obiettivo di questi gruppi di lavoro è quello di rendere il più facile possibile la collaborazione dello sviluppo per gli utenti interessati. Inoltre il senso di questo SIG è quello di rafforzare la community, distribuendo tra i membri attivi la responsabilità e il carico di lavoro in modo mirato e secondo le rispettive abilità.

Uno dei gruppi di lavoro più importanti è il già nominato AltArch SIG che ha già rilasciato diversi programmi della versione 7 di CentOS. La prima reale variante è però quella rilasciata da CentOS Atomic SIG, ovvero CentOS Atomic Host. Questa si basa sul costrutto core ed è creata specificamente per l’uso dei container Docker. Tra gli altri progetti che si trovano in fase di pianificazione o sviluppo vi sono:

  • Public CI: infrastruttura per test pubblici.
  • Hardening: variante con focus su un core del sistema e del codice sorgente sicuro e rafforzato.
  • Cloud Instance: distribuzione che CentOS Linux ottimizza per cloud pubblici o privati.
  • PaaS: Platform-as-a-Service sulla base di CentOS.
  • NFV: Network Functions Virtualization mette a disposizione uno stack di software che serve come struttura di base per la distribuzione e la verifica delle funzioni di rete virtuale.
  • Promo: gruppo di lavoro che si occupa del design esteriore di CentOS.

Come funziona l’installazione di CentOS

Per installare il sistema operativo open source sul vostro computer o server, scaricate prima di tutto la giusta architettura e variante nel download center ufficiale di CentOS. Oltre alle release attuali, trovate anche i file di installazione e i repositories delle vecchie versioni di CentOS. In alcuni casi tra le immagini offerte, che dopo il download dovete trasferire su CD, DVD o un altro supporto di memoria portatile come una penna USB, avete a disposizione tre diverse varianti, a parte la consueta installazione completa:

  • LiveCD: un’immagine simile può essere avviata dal boot e mette a disposizione un ambiente di runtime che parte direttamente dal supporto di memoria, senza che sia necessaria un’installazione.
  • ServerCD: con questa immagine avete tra le mani una variante installabile che dispone di una varietà limitata del pacchetto per le installazioni server.
  • NetInstall: l’immagine NetInstall, che in alcuni casi è elencata anche con la denominazione “Minimal” nella lista di download, vi consente un’installazione di rete minimalista, collegata alla rispettiva release. Con l’ISO NetInstall di CentOS 6.2 non potete, ad esempio, installare la versione 6.3. 

Una volta creato il supporto boot desiderato, avviate l’installazione di CentOS direttamente da questo. Scegliete semplicemente l’interfaccia “Install CentOS” e per concludere confermate la vostra selezione con il tasto Invio. Dopo venite guidati nel passaggio successivo nella variante minimale di NetInstall dal wizard di installazione grafico. Di default è impostata la lingua e la tastiera inglese, ma è possibile impostare entrambe in italiano.

In sintesi

Molto spesso CentOS non rientra tra gli esponenti che vengono nominati per primi nell’elenco dei derivati di Linux più performanti. Ciò non toglie però che la distribuzione per il suo settore di riferimento, ovvero nell’ambito server ed Enterprise, disponga di tutto il necessario. Quindi chi è alla ricerca di un sistema stabile da poter utilizzare per un arco di tempo più lungo, non rischia di sbagliare ricorrendo alla variante di RHEL. CentOS non può offrire il supporto esclusivo del modello commerciale e non presenta neanche una certificazione per tutti i software, com’è il caso nel sistema Red Hat. Anche sul sistema open source, grazie alla compatibilità binaria, funzionano però diverse applicazioni e funzioni di sicurezza, offrendo inoltre il vantaggio di essere utilizzabili in modo completamente gratuito.