Dopo la macchina… Il sistema operativo!

23 05 2010

Iniziamo a parlare di sistema operativo.

“Ok, ora ho capito cos’è un computer. Ma perché prima mi parlavi di Ubuntu? Cos’è? Una CPU? Un tipo di memoria RAM?”

Esistono due grandi insiemi, che, cooperando, fanno vivere un computer. Le macchine e i programmi. In gergo tecnico, hardware e software. Tu stai parlando di hardware. Ed è giusto, io finora ti ho spiegato solo questo, come partenza di un immaginario percorso di informazione; effettivamente, è più facile da pensare una macchina senza programma, che un programma senza macchina. Però, in realtà, avevo già accennato a un software basilare: il BIOS…

Il BIOS è il primo software che si avvia sul nostro marchingegno. Potrebbe sembrare il software fondamentale del pc, se la definizione di “fondamentale” fosse diversa. Invece, se senza BIOS un computer è inutilizzabile, lo è allo stesso modo senza sistema operativo; quindi senza tanto dilungarci andremo ad attraversare gli interessanti mondi (sì, più d’uno) degli OS (dall’inglese: Operating System=sistema operativo), anziché quello abbastanza noioso dei BIOS.

Subito dopo il BIOS, si avvia il bootloader. In poche parole, esso si preoccupa di caricare il sistema operativo. In rari casi I sistemi, ma con calma vedremo tutto.

“Ma un sistema operativo è un Vista?”

Intanto, esistono molti sistemi operativi diversi; e poi non è il SO a essere Vista, casomai il contrario. Anzi, direi che Vista è proprio quello meno amato, tra gli utenti che se ne intendono un pochino. Tanto amato che addirittura gli utenti che da sempre conoscono solo Windows lo etichettano come lento, inaffidabile e instabile.

“Ah, sì, adesso c’è Windows 7 che è una scheggia!”

Allora, Windows 7 è fondamentalmente lo stesso SO di Vista. Ma lasciami spiegare con calma: un sistema operativo può essere visto come un particolare software senza il quale non è possibile l’utilizzo di software più specifici. Esso quindi funge da “base” al quale si appoggiano gli altri software, che dunque dovranno essere progettati per quel particolare sistema operativo, o non verranno riconosciuti.[wiki] Questo significa che il SO mette in stretta comunicazione l’hardware con il software, e che permette all’utente di interagire con la macchina. Ma non solo.

Tutti i sistemi operativi dispongono di un’interfaccia grafica di output, che può essere testuale (a riga di comando) o grafica (GUI).

Confronto tra GUI e interfaccia testuale

Ovviamente, per gli utenti normali c’è bisogno di un sistema piacevole, che invogli all’uso, rilassante e divertente, come quelli a cui tutti siamo abituati. L’interfaccia testuale si utilizza soprattutto per gestire i server, quindi è usato soprattutto (ma non solo) a livello commerciale. Inoltre, per questioni di sicurezza (contro terzi, ma anche contro se stessi) il sistema operativo deve poter gestire i privilegi utente.

Ora invece vediamo un’altro aspetto veramente importante:

Il multitasking.

“Il che?”

Multitasking. “Tenere aperte più applicazioni contemporaneamente”. Potresti pensare di poter usare solo un’applicazione alla volta? In Windows non potresti nemmeno navigare in sicurezza: tenere l’antivirus aperto non ti consentirebbe di aprire il browser. Anche se in realtà non funzionerebbe nemmeno il computer, che di per sé è pieno di daemon (servizi in background) più o meno (in)utili, che in verità sono quelli che rallentano il nostro pc.

“Ma come funziona questo multitasking?”

Non è difficile, ma neanche immediato: ogni processore, per la sua struttura dovrebbe essere in grado di gestire un’applicazione per volta.

“Ah, ma tanto io ho un quad-core”

Allora quattro applicazioni per volta? Musica, posta, browser e antivirus? E poi basta? No, basta anche un singolo processore per avere un ottimo multitasking. In pratica, non c’è sempre bisogno che un’applicazione abbia tutta l'”attenzione” della CPU concentrata su di essa. E grazie a questo, si possono sfruttare i “tempi morti” dei programmi per farne girare altri. Più nel dettaglio, esistono fondamentalmente due tipi di multitasking: cooperative e preemptive. Il primo è quello più vecchio: semplicemente, sono i programmi che, spontaneamente, cedono il controllo al sistema non appena hanno terminato la singola operazione in corso. Questo, capirete, è qualcosa di molto rischioso: basta un errore di un singolo programma per perdere la sessione in corso nel pc. Per questo, è stato ideato il preemptive multitasking: ogni sistema operativo (abbastanza recente, diciamo dopo Windows 3.0 e Mac OS 9) ha un proprio scheduler. Uno scheduler è un programmino che si occupa dell’assegnamento dei tempi della CPU ad ogni singolo programma. Ovviamente è progettato per dei processori abbastanza recenti (parlo di molti anni fa, comunque), in quanto, se il processore è abbastanza veloce, anche se lo scheduler assegna 20 cicli ad ogni programma, l’utente umano non può accorgersene. Questo si può notare quando si tengono aperti molti programmi dispendiosi in termini di prestazioni: i programmi vanno “a scatti”. Si nota facilmente nei video e nei giochi (soprattutto 3D).

Il Kernel.

Questo sconosciuto.

Il kernel è una delle parti meno famose del sistema. Serve ad esso per interfacciarsi pienamente con l’hardware, ed è il cuore del SO.

Esistono vari tipi di Kernel, ma le più grandi differenze sono tra il primo e il secondo tipo:

  • Kernel monolitico: è quello che troviamo più spesso in sistemi operativi differenti, ed un esempio è il famoso Kernel Linux. Definisce un’interfaccia virtuale di alto livello sull’hardware, e non fa affidamento al sistema operativo per altri servizi hardware.
  • Microkernel: fa affidamento al kernel solo per le funzioni basilari del hardware, alle funzioni più strutturate pensa il sistema operativo. Potrebbe essere chiamato “kernel essenziale”, in quanto è progettato per eseguire strettamente le funzioni di un kernel semplificato. Un esempio è il kernel di Mac OS X, anche se è, sotto pochi aspetti, leggermente diverso.
  • Kernel ibrido: è un misto, implementa in un microkernel delle funzioni aggiunte. Potrebbe essere chiamato “microkernel non essenziale”, in quanto ciò che fa è progettato per distribuire equamente le funzioni hardware tra SO e kernel. Un esempio è Microsoft Windows NT.

Esistono poi dei sistemi operativi con kernel EsoKernel, o NoKernel, ma sono dei progetti limitati, e mai lanciati sul mondo dei sistemi operativi.

I vari tipi di sistema operativo.

(Attenzione, qui si potrebbe fare propaganda!)

“Questo del kernel mi sembrava un argomento parecchio articolato, e non ho capito bene: cosa sono Mac OS X e il Kernel Linux?”

Devi sapere che mentre il mercato vorrebbe farti pensare che esista un unico sistema operativo, con le sue versioni (Microsoft Windows), la realtà è ben lontana. Avrai forse sentito parlare di Apple, negli ultimi tempi… Hai presente l’iPhone?

“Sìsì, lo so, cos’è!”

Bene, Apple è l’azienda che produce non solo iPhone, ma anche iPod, e i cosiddetti Mac. Conosci qualcuno che ha i computer con la mela?

“Sì che ne conosco! Quelli bianchi!”

Esattamente. Mac OS è il sistema operativo che gira in quei computer. È una questione curiosa, infatti Apple non permette agli utenti di installare il proprio sistema operativo in altri computer.

“Ma perché non lo fanno? So che i Mac sono fantastici!”

Bisogna rendere atto a Apple di costruire computer molto belli esteticamente e funzionalmente capaci, quanto bisogna rendere atto a Microsoft di aver progettato un sistema operativo ben migliore di Mac. E non parlo di velocità o affidabilità, i Mac da questo punto di vista sono al top del mercato, al momento. Ma parlo di versatilità. Infatti, in qualsiasi computer noi conosciamo, potremmo installare Windows. Anzi, è quasi sempre già installato. Anche sui Mac, volendo. Quindi vuol dire che ha una possibilità di riconoscere hardware enorme, bisogna ammetterlo. Cosa che assolutamente Mac OS non ha. Se noi installassimo Mac OS su un computer non Apple (l’azienda non lo permette, ma i metodi esistono, anche se illegali), non avremmo questo gran computer: periferiche non riconosciute, schede video da buttare, ecc. Il vantaggio di installarlo su un altro computer non esiste: chiunque ci abbia provato dichiara che è meglio Windows. Mentre Apple mira più alla qualità (e quindi al prezzo alto), Microsoft punta alla quantità di vendite. Se Microsoft alleggerisse il suo SO, in modo da essere perfettamente configurato per tre o quattro modelli di computer, sarebbe una forte concorrenza per la gran qualità di Mac OS.

Ma da qualche tempo – probabilmente dal 2004, con l’avvento di Ubuntu (Linux for human beings) – si è inserito nel mercato un altro tipo di sistemi operativi: GNU/Linux e tutti i sistemi alternativi e open source. Probabilmente il loro maggiore punto di forza è la gratuità, che ha invitato gli utenti a provarli; ma non solo: le loro sorgenti aperte hanno attirati miriadi di utenti esperti che si sono subito personalizzati interamente il loro sistema operativo. Anche la mancanza di virus, tanto temuti in Windows, è un punto di forza. Ma la qualità che tutti ritenevano impensabile in un sistema free è la qualità. La qualità, la velocità, la stabilità. Tutte cose che hanno stimolato gli utenti, dopo aver provato GNU/Linux, a non mollarlo più.

Ma non si possono convincere gli utenti solo con le belle parole, bisogna che una persona abbia veramente voglia di cambiamento. Infatti, nel giro di due anni – soprattutto dopo il completo fallimento di Vista – la percentuale di utilizzo (in sistemi non server) di Windows è calata dal 97 al 93.5%, con Linux passato dallo 0.7 all’1.5%, con i restanti Mac. Ovviamente, nei sistemi server il discorso ha un’esatta inversione: intorno al 90% per i sistemi Linux e attorno al 10 per Windows Serve Edition.

Io sto scoprendo GNU/Linux da quasi tre anni, e sono contento che sia diventato il mio sistema operativo principale. Mi piacerebbe condividere con i miei lettori quest’amore, per questo tra poco pubblicherò una guida su come installare sul proprio computer Ubuntu 10.04 Lucid Lynx.

😉

Annunci

Azioni

Information

3 responses

23 05 2010
¬Pontiz

so good 😀
veramente buone queste guide

23 05 2010
martpizz

Hey, aspetta, queste ancora non sono guide 😉 le guide le metterò col prefisso [Guida] davanti al nome 🙂 Grazie comunque 🙂

24 05 2010
[Guida]Installare Ubuntu 10.04 Lucid Lynx con / e /home separate, in dual boot con uno (o più) sistema operativo. « MartPizz Blog

[…] Masterizzata o inserita su USB la nostra ISO, dobbiamo fare in modo che il pc avvii il boot dal bootloader del cd o della chiavetta. Se non sapete cos’è un bootloader, di corsa a leggere questo articolo […]

Rispondi

Inserisci i tuoi dati qui sotto o clicca su un'icona per effettuare l'accesso:

Logo WordPress.com

Stai commentando usando il tuo account WordPress.com. Chiudi sessione / Modifica )

Foto Twitter

Stai commentando usando il tuo account Twitter. Chiudi sessione / Modifica )

Foto di Facebook

Stai commentando usando il tuo account Facebook. Chiudi sessione / Modifica )

Google+ photo

Stai commentando usando il tuo account Google+. Chiudi sessione / Modifica )

Connessione a %s...




%d blogger hanno fatto clic su Mi Piace per questo: