I sistemi operativi per il server: storia e situazione attuale
Il sistema operativo è un componente indispensabile del computer che gli permette di utilizzare le risorse hardware a disposizione e che svolge la funzione di intermediario tra le risorse materiali, l’utente e le rispettive applicazioni. Non esistono soluzioni alternative per utilizzare le macchine fisiche. Per questo motivo ogni sistema operativo comprende una serie di programmi, grazie ai quali vengono gestite le interazioni con i singoli componenti hardware. Tre elementi fondamentali si basano su questi programmi:
- il kernel,
- l’interprete dei comandi
- e il file system
Il kernel, chiamato anche core, racchiude tutte le funzioni principali del sistema ed è, ad esempio, responsabile per la gestione della memoria e dei singoli processi, l’interprete dei comandi consente agli utenti di comunicare con il sistema operativo tramite comandi e il file system rende possibile salvare i file usando una struttura ad albero. I compiti di un sistema operativo risultano perciò molteplici, anche se nel tempo la sua importanza è molto cambiata: inizialmente non erano contemplate funzioni di protezione come lo sfruttamento controllato della RAM da parte delle risorse o la limitazione dei permessi utente, che oggi contribuiscono notevolmente a garantire la sicurezza del sistema, evitando crash generali o dei programmi e difendendo il computer da attacchi esterni.
Sin dall’inizio i sistemi operativi sono stati necessari anche per l’amministrazione dei server, come file server, database o web server, che si sono sviluppati sempre più data la crescente interconnessione tra i computer. Per via delle richieste che questi server pongono al sistema operativo, alcuni sistemi erano più adatti di altri e per questo si è iniziato ad indicarli come sistemi operativi per il server. Nei paragrafi successivi vi forniamo maggiori informazioni sulla nascita dei sistemi operativi, vi indichiamo quali sono stati utilizzati per primi nei server e quali sono quelli che predominano sul mercato oggi.
Da interfacce utente testuali a programmi complessi
Nel 1974 è stato rilasciato da Gary Kildall il sistema operativo CP/M sviluppato su un floppy, che è considerato oggi il primo sistema operativo per il computer di casa, perché UNIX, rilasciato solo qualche anno prima, è stato utilizzato inizialmente solo in settori molto specializzati, soprattutto nelle università e negli istituti di ricerca. CP/M, originariamente l’acronimo di Control Program/Monitor (in italiano “programma di controllo/supervisore“), disponeva di un’interfaccia hardware standardizzata grazie al Basic Input/Output System (BIOS) e veniva perciò utilizzato per diversi computer. Tramite l’interprete della riga di comando CCP (Console Command Processor), il sistema poteva ricevere i comandi dell’utente ed eseguirli. Inoltre CP/M è l’unico Disc Operating System (DOS) degno di nota per i microcomputer prima del 1980 e usato come modello per l’idea del sistema, che avrebbe dovuto trasformarsi negli anni seguenti nella soluzione amministrativa predominante.
Per molto tempo DOS non è stato un sistema operativo unitario, ma più che altro un concetto adottato da diversi servizi e realizzato in modi diversi. Alla fine però si è imposto il meglio conosciuto MS-DOS di Microsoft, che ha giocato un ruolo importante anche in molte altre versioni di Windows (fino a Windows 98). Infatti, DOS rappresentava per i computer IBM dell’epoca, ciò che “System” era per i computer Apple, che hanno cambiato nome nel 1996 in Mac OS. Questo sistema operativo è stato rilasciato dalla Apple Macintosh nel 1984 con un’interfaccia utente grafica, utilizzabile con il mouse. Un anno prima Apple aveva lanciato un sistema operativo simile, chiamato Lisa OS, in uso su Apple Lisa, che si rivelò però un flop per via del prezzo di vendita elevato di 10.000 dollari.
Microsoft primeggia con Windows tra i computer di casa, Linux si afferma nell’ambiente server
Si è dovuto aspettare fino al 1993 per ricevere una risposta adeguata ai balzi in avanti di Apple da parte di Microsoft, che ha rilanciato con il sistema operativo per il server Windows NT 3.1 (fino a quel momento il produttore di software aveva riscosso un relativo successo solo con l’interfaccia utente Windows 3.0 per MS-DOS). Anche se il sistema NT, rilasciato in una variante workstation e in una server, non si è affermato sul mercato, Microsoft ha utilizzato il kernel in uso come base per la maggior parte delle versioni successive (2000, XP, Vista, 7, 8, 10). L’unica eccezione, prodotta solo per uso privato, è rappresentata dalla serie Windows 9x, basata sempre su MS-DOS, che ha implementato un proprio kernel a 32 bit e nel 1995 è stato rilasciato ufficialmente con il famoso nome di Windows 95 grazie al quale ha raggiunto un successo senza eguali tra gli altri sistemi Windows creati per uso privato. A questo sono seguiti Windows 98 e Millenium Edition, divenuti a loro volta molto famosi, che hanno allo stesso tempo segnato la fine di questa serie di sistemi Microsoft.
Improvvisamente tra i sistemi operativi per il server è comparsa un’altra alternativa, ispirata all’antenato UNIX: Linux. Offerto per un breve periodo come sistema operativo proprietario, il kernel di Linux è stato rilasciato nel 1992 con licenza libera GPL e ciò ha contribuito a renderlo interessante per gli sviluppatori, oltre che a favorirne la diffusione. Insieme ad altri software di supporto, sono nate anche diverse distribuzioni, come Yggdrasil Linux o Slackware, utilizzate come sistemi operativi completi e offerte gratuitamente come il kernel. Le distribuzioni di Linux risultavano così gratuite e applicabili in maniera flessibile, perché potevano essere adattate e ampliate a seconda delle proprie esigenze. Queste proprietà, unite ad un’ottima gestione del sistema e dei permessi, ha fatto diventare Linux in poco tempo la soluzione server preferita da molti amministratori, soprattutto nell’ambito dello sviluppo web, aspetto che gli ha permesso di mantenere la sua posizione privilegiata fino ad oggi.
Il sistema operativo per i server di oggi: una scelta difficile
Con l’avvento del web 2.0, la ricerca del sistema operativo più appropriato per il server si è trasformata in un affare di pubblico dominio. Se inizialmente il web era ancora un luogo dove la maggior parte degli utenti consumava i contenuti unici presenti in rete, negli ultimi anni è diventato sempre più una fucina di progetti web di ogni tipo, che vengono creati e modellati attivamente dalla community su Internet. Indipendentemente si gestisca un blog, si curi un sito semplice o si offra un’applicazione web, dietro tutti questi progetti si nasconde un web server, che funziona e viene gestito grazie ad un sistema operativo. Di conseguenza bisogna scegliere se gestire in autonomia un hosting o se si preferisce affidarsi ad un provider, ma di certo rimangono moltissime possibilità da poter prendere in considerazione.
Linux ricopre ancora oggi il ruolo principale: oltre la metà dei sistemi basati su UNIX, utilizzati dai due terzi di tutti i progetti web secondo la statistica di W3Techs, sono distribuzioni di Linux. Molto amate sono le distribuzioni Ubuntu e Debian, seguite da CentOS; meno usate, ma che meritano comunque di essere menzionate, sono Red Hat, Gentoo, Fedora e SUSE. Il maggiore concorrente dei sistemi operativi per i server Linux è sempre la Microsoft, che a partire dal 2003 ha ampliato la sua offerta della serie NT con l’edizione specifica Windows Server.
Come potete leggere anche nel nostro articolo sul tema Linux vs. Windows, si riscontrano poche differenze a livello qualitativo tra gli attuali sistemi e spesso i costi o le preferenze personali dell’utente rientrano tra i fattori decisivi della scelta. Nella tabella seguente vi indichiamo le similitudini e le differenze dei sistemi operativi più conosciuti per i server.
Parte 1:
Windows Server | Ubuntu | Debian | CentOS | |
Sito | microsoft.com | ubuntu.com | debian.org | centos.org |
Sviluppatore | Microsoft | Canonical | Debian-Projekt | CentOS-Projekt |
Rilasciato per la prima volta nel | 2003 | 2004 | 1993 | 2004 |
Derivazione | Windows NT | Debian | Linux | RHEL |
Licenza | Microsoft-EULA | GPL e altre | GPL e altre (conformi alla linee guida DFSG) | GPL e altre |
A pagamento | sì | no | no | no |
UI standard utilizzata | ModernUI | Unity | - | Gnome |
Architetture supportate | AMD64, IA-64, IA-32, x86 | i386, AMD64, x86 | Alpha, AMD64, ARM, HPPA/PA-RISC, i386, IA-64, MIPS, MIPSel, PPC, S/390, SPARC | AMD64, ARM, Intel 64 |
Frequenza degli aggiornamenti | - | ca. 6 mesi | ca. 24 mesi | Ogni 6–12 mesi |
Supporto nel lungo periodo | sì | sì | sì | sì |
Gestione dei pacchetti standard | OneGet (solo per le versioni più recenti) | Dpkg, APT | Dpkg, APT | RPM, yum |
Versioni | 2016, 2012 R2, 2012, Essentials,2008 R2, 2008 | Desktop, Server, Cloud, Core, Kylin (creata appositamente per gli utenti cinesi) | - | - |
Target | Gli utenti che prediligono i sistemi operativi Windows e i suoi tipici software, come Exchange o Sharepoint, e che non vogliono rinunciare ad usare Windows nella gestione del server. | I principianti o gli utenti abituati con Windows, che vorrebbero passare ad utilizzare Linux come sistema operativo per il server. | Debian è una “meta distribuzione“ interessante per diversi target e adatta quindi sia per utenti privati che professionisti. | Adatto per tutti quelli che cercano un’alternativa gratuita a Red Hat Enterprise di Linux. |
Parte 2:
Sito | Red Hat Enterprise Linux (RHEL) | Gentoo | Fedora |
Sviluppatore | redhat.com | gentoo.org | getfedora.org |
Rilasciato per la prima volta nel | Red Hat | Gentoo Foundation Inc. | Fedora-Projekt |
Derivazione | 2002 | 1999 | 2003 |
Licenza | Red Hat Linux / Fedora | Linux | Red Hat Linux |
A pagamento | GPL e altre | GPL e altre | GPL e altre |
UI standard utilizzata | sì | no | no |
Architetture supportate | - | - | Gnome |
Frequenza degli aggiornamenti | i386, IA-64, PowerPC, AMD64 | Alpha, AMD64, ARM, HPPA, IA-64, M68k, MIPS, PPC, S/390, SH, SPARC, x86 | i386, AMD64, PowerPC, ARM, s390x |
Supporto nel lungo periodo | Ogni 6–12 mesi | Ogni settimana | Ogni 6 mesi |
Gestione dei pacchetti standard | sì | no | no |
Versioni | RPM, yum | Portage | DNF, yum |
Target | Desktop, Workstation, Server | - | Workstation, Server, Cloud |
Le aziende che vogliono utilizzare una soluzione Linux professionale. | Gli utenti che vogliono personalizzare il sistema Linux secondo le proprie esigenze. | Gli sviluppatori che hanno bisogno sempre di avere l’ultima versione disponibile del software. |
La tabella mostra che la scelta del sistema operativo da utilizzare per il server non si limita solo a Linux o Windows, ma se si opta per Linux, è necessario valutare quale distribuzione sia la più adatta per le proprie esigenze. Il derivato di Debian Ubuntu non dispone ad esempio dell’ampia varietà di funzioni del suo modello di riferimento, ma proprio per questo motivo è configurabile in modo facile e veloce, senza dimenticare che presenta anche opzioni utili per agevolare il passaggio da Windows o da altri sistemi operativi. Anche Debian è utilizzabile in maniera flessibile, supporta diverse architetture ed essendo stata una delle prime distribuzioni rilasciate, può contare sull’aiuto di una community molto competente.
Red Hat Enterprise Linux (RHEL), il sistema commerciale sviluppato da Red Hat, si indirizza specificamente alle esigenze delle aziende, offre stabilità e viene supportato da diversi produttori di software indipendenti. Al contrario di RHEL, la versione Fedora e il derivato CentOS possono essere utilizzati gratuitamente, ma non dispongono ovviamente dello stesso supporto e dei medesimi standard di sicurezza. Fedora si contraddistingue soprattutto per i frequenti update del software, aspetto particolarmente importante per molti sviluppatori. Chi volesse comporre in maniera personalizzata il proprio sistema con Linux, fa la scelta giusta con Gentoo, che ha un occhio di riguardo per gli aggiornamenti. Tuttavia, il sistema si adatta solo limitatamente ai progetti di lunga durata, vista anche la mancanza di supporto nel lungo periodo, uno svantaggio che ha in comune con Fedora.