Capitolo 5. Nozioni di Sistemi Informatici. Costituenti di base di un Computer. Definizione e concetti base dei costituenti Software
Sistema Operativo
Come abbiamo visto il programma di comando di esecuzione di un Computer prende il nome di “linguaggio macchina”. Ogni tipologia di C.P.U. inserita in un computer ha bisogno di uno specifico “linguaggio macchina”. Il concetto di Sistema operativo può essere associato a quello di un’interfaccia che si pone come tramite tra i componenti hardware del computer e l’utente. L’utente, tramite il Sistema operativo, può lanciare delle richieste di esecuzione alla macchina, sia di controllo che di gestione delle periferiche della macchina stessa, sia di controllo e di gestione di altri programmi chiamati “programmi applicativi”. Programmi che, in definitiva, sono i programmi necessari al calcolatore per eseguire le varie tipologie di elaborazione dati richieste dall’utilizzatore. Il Sistema operativo, inoltre, nelle sue funzioni di controllo impedisce al calcolatore di eseguire comandi che potrebbero rivelarsi dannosi per il funzionamento della macchina stessa. Un Sistema operativo, dunque, è scritto in “linguaggio macchina” Si intuisce facilmente che un elaboratore composto di solo hardware è soltanto un ammasso di circuiti praticamente inutili. Solo i primissimi elaboratori erano sprovvisti di sistema operativo e, proprio per questo, il loro utilizzo era laborioso e complicato. Il Sistema operativo, in gergo chiamato SO, è un insieme di programmi, ciascuno con una funzione predefinita, in grado di gestire l’elaboratore seguendo delle routine di esecuzione e rendendo possibile l’ interazione uomo-macchina. Consentendo all’utente una visione astratta delle risorse del sistema hardware generale (ovvero svincolata dalla conoscenza delle caratteristiche fisiche), si occupa della: - Gestione dei Processi: scheduler, che assegna i tempi di esecuzione dei processi; - Gestione della memoria: che controlla i flussi verso la memoria primaria; - Gestione dei files: file systems, per rispondere alle richieste di accesso alle memorie secondaria; - Gestione degli utenti: per fornire la possibilità di processare dati di natura diversa con programmi diversi nella cosiddetta modalità multitask; - Gestione delle periferiche di input ed output: per gestire i flussi “verso e da” le periferiche; - Gestione dei servizi di Rete: per gestire le comunicazioni tra più computer collegati in rete; - Protezione del sistema: fornito dal Kernel, per l’accesso sicuro e controllato all’hardware dei processi in atto; e di - Interpretare i comandi di esecuzione Una delle fondamentali caratteristiche che contraddistingue i sistemi operativi moderni è l’interfaccia utente. Con il termine “interfaccia”, in informatica, si intende qualunque confine condiviso tra più unità di funzione. Una interfaccia è, quindi: un dispositivo in grado di collegare due componenti hardware consentendo il loro collegamento fisico; oppure un sistema software che consente un collegamento logico tra programmi, altrimenti incompatibili, rendendo possibile la conversione del formato dati. La porta che permette di collegare la nostra stampante all’elaboratore è un’interfaccia, ma anche lo stesso Sistema operativo è un’ interfaccia: consente, infatti, all’utente di scambiare informazioni con l’elaboratore. L’interscambio di informazioni può avvenire in due modi: - Utilizzando soltanto i caratteri della tastiera: i comandi vengono impartiti su una cosiddetta “riga di comando” scrivendo, secondo una sintassi predefinita, particolari sequenze di caratteri che devono essere, per questo, non solo digitate ma anche apprese e ricordate. L’interfaccia testuale prende il nome di CLI (Command Line Interface). - Adoperando un’interfaccia grafica: i comandi vengono impartiti mediante la manipolazione di alcuni “oggetti grafici”, le cosiddette “Icone” presenti sullo schermo del monitor, utilizzando il mouse. Questo sistema di interfaccia, la cui sigla è GUI (Graphical User Interface) è stato concepito come la metafora di un piano di lavoro, una scrivania, con le icone che stanno a rappresentare i file di dati, i file di programma o delle directory. Le finestre, sono gli ambienti di lavoro degli applicativi di volta in volta usati per elaborare dati. L’introduzione della GUI, concettualizzato nello Xerox Lab e impiegato commercialmente per la prima volta da Apple, ha significato un’evoluzione energica nell’interazione tra computer e utente: grazie all'interfaccia grafica è possibile compiere molti compiti comuni e complessi senza il bisogno di un'approfondita conoscenza del funzionamento del computer, gettando le basi per lo sviluppo dell’informatica di massa. |
Software applicativi
I software applicativi sono dei programmi che vengono installati dall'utente per svolgere specifiche elaborazioni di dati. Alcuni Sistemi operativi, come Windows o Mac OS, installano automaticamente nel computer dei software applicativi (semplicemente chiamati “applicativi”) come, ad esempio, Internet Explorer e Outlook Express, per il SO Windows, che consentono, rispettivamente, la navigazione in Internet e l’invio e la ricezione di posta elettronica. I programmi applicativi potrebbero anche essere rimossi senza compromettere in alcun modo il funzionamento del computer. Se per assurdo, però, su un computer si trovasse installato esclusivamente il Sistema operativo, senza nessun applicativo, la macchina funzionerebbe perfettamente, ma l'utente non potrebbe farne alcun uso. Anche se esistono classificazioni ufficiali dei software applicativi redatte da specifiche istituzioni (come, ad esempio, sul sito della Free Software Foundation dell’UNESCO http://directory.fsf.org/), riportiamo, di seguito, una sommaria classificazione dei software applicativi di uso più comune. Tralasciando la classificazione dei cosiddetti “sistemi esperti” e dei programmi di intelligenza artificiale, possiamo dividere i programmi applicativi in alcune grandi famiglie: Programmi di utilità di sistema: usati per migliorare le caratteristiche performanti del computer, per ottimizzare la sua gestione o garantirne la sicurezza. Antivirus, programmi per l'ottimizzazione delle risorse e per il controllo dello stato generale del sistema, la gestione dei dati archiviati sull'hard disk sono, ad esempio, applicativi di utilità. Programmi per l’automatizzazione dell’ufficio o di produttività personale: sono applicativi d’uso per il lavoro d'ufficio. Rientrano in questa categoria i programmi di creazione e di elaborazione di testi (word processor), di gestione di basi di dati (database), fogli di calcolo elettronici, di gestione della posta elettronica, di navigazione in Internet. Programmi per la gestione aziendale, contabile e finanziaria: programmi creati per le necessità specifiche delle aziende come, ad esempio, i programmi per la fatturazione o per la gestione del personale, per la gestione dei magazzini, dei processi di automazione produttiva industriale e per il controllo dei macchinari industriali. Strumenti per lo sviluppo di Contenuti digitali per la progettazione assistita, la comunicazione e l’intrattenimento: sono programmi applicativi usati per la creazione di contenuti multimediali, tecnicamente “authoring”, (come, ad esempio, le pagine Web o i CD interattivi), la creazione e/o il trattamento di dati relativi a file audio e video, il trattamento delle immagini digitali, i programmi per la Computer grafica con cui è possibile produrre in base ad opportuni algoritmi raffigurazioni di oggetti bidimensionali o tridimensionali sintetiche, cioè inesistenti nel mondo fisico. Programmi di gioco e per lo svago: quali sono i videogiochi, gli emulatori e i simulatori, i lettori di formati particolari di file audio o video, e così via. È, dunque, più che evidente l’importanza che ricoprono i software applicativi, che sono progettati e sviluppati appositamente per ogni specifico Sistema operativo. Installati su di un computer cercano di assecondare i bisogni di chi ne fa uso. Ogni software applicativo, quando viene messo in funzione (in gergo si suole dire “lanciare” o “aprire” il programma”) assorbe risorse di sistema e una parte della memoria in grado di rallentare il funzionamento generale del calcolatore. Per questo motivo, si sente molto spesso parlare in gergo di “programmi più o meno pesanti”. Si comprende, quindi, che un programma applicativo può funzionare meglio o peggio a seconda delle cosiddette configurazioni hardware del computer che si ha a disposizione, soprattutto in funzione della velocità della C.P.U., della quantità di memoria RAM, della capacità della memoria Video (nel caso soprattutto dei videogiochi). Un altro criterio interviene nella classificazione dei software, siano essi Sistemi Operativi o programmi applicativi. È il criterio che regola lo sfruttamento commerciale del software. A disposizione dei consumatori vi è il software il cui uso è libero da licenze o brevetti perché risultato del lavoro cooperativo e non a scopo di lucro di più persone o gruppi di lavoro; altri il cui uso è semilibero o del tutto libero, ma per i quali viene comunque rivendicata la proprietà intellettuale dai loro creatori. Esiste poi la categoria dei software proprietari il cui uso è vincolato al loro acquisto perché brevettato e soggetto a diritti di copyright. Ogni programma informatico è un insieme di istruzioni elaborate per far funzionare un computer in un determinato modo e scritte in un linguaggio di programmazione. Questo insieme di istruzioni prende il nome di codice sorgente. Il codice sorgente di un software proprietario non diviene solitamente di pubblico dominio in quanto ritenuto segreto industriale, tranne nel caso in cui il proprietario non decida di condividere con altre aziende il “sorgente” allo scopo di far implementare il suo software da altri partner, come nel caso delle aziende che sviluppano plug-in, dei programmi non autonomi che interagiscono con un altro programma principale allo scopo di ampliarne le sue funzioni originali. |
Software Freeware
Il software proprietario che viene rilasciato sul mercato senza scopo di lucro, gratuitamente, viene definito con il termine freeware. Il freeware è distribuito indifferentemente con o senza codice sorgente, a totale discrezione dell'autore e senza alcun obbligo al riguardo. È sottoposto esplicitamente ad una licenza d’uso che ne permette la distribuzione gratuita. Il software freeware viene, dunque, concesso in uso senza alcun corrispettivo ed è liberamente duplicabile e distribuibile. |
Software Shareware
Lo shareware è una tipologia di licenza per software. Vengono distribuiti sotto tale licenza in genere piccoli programmi facilmente scaricabili via Internet. Il software sotto tale licenza può essere liberamente ridistribuito e utilizzato per un periodo di tempo di prova variabile, che generalmente è di 30 giorni. Al termine del periodo di prova è necessario registrare il software presso la casa produttrice pagando l'importo richiesto. All'avvio dell'applicazione shareware generalmente una “finestra di dialogo” informa l'utente su come effettuare la registrazione e sulle condizioni di utilizzo. La versione di prova può avere limitazioni rispetto alla versione completa quali l'impossibilità di stampare o salvare i file, contenere al suo interno meccanismi di protezione tali da impedire di utilizzare il software dopo la scadenza, la mancanza di supporto del produttore e altro. Una volta acquistata la versione completa viene generalmente fornito un codice seriale da inserire nell'applicativo per sbloccarne le funzioni senza dover effettuare una nuova installazione. |
Software Adware
Sono software assimilati ai programmi freeware, ma che richiedono all'utente la visione di messaggi pubblicitari per il loro utilizzo. Il termine nasce da "ADvertising supported softWARE", la cui traduzione significa "software finanziato da annunci pubblicitari". I messaggi pubblicitari vengono normalmente scaricati tramite una connessione internet, e per questo motivo sono applicativi quasi sempre associati ad un uso per la navigazione internet o la gestione di posta elettronica. Per il monitoraggio dell’utente al quale viene proposto l’annuncio pubblicitario, in alcuni casi il software adware può contenere dei programmi spyware. |
Software Open Source
Per Open Source si intende un software rilasciato con un tipo di licenza per la quale il codice sorgente è lasciato alla disponibilità di eventuali sviluppatori, in modo che con la collaborazione cooperativa libera e spontanea il prodotto finale possa raggiungere una complessità maggiore di quanto potrebbe ottenere un singolo gruppo di programmazione. Il concetto di Open-Source è nato con l’informatica stessa e con i primi suoi utilizzatori. È evidente, quindi, che il concetto di software proprietario sia stato poco accettato da molti esponenti della comunità scientifica motivati da solidi principi etici. Per questo motivo Richard Stallman uno scienziato del M. I. T. - Massachusetts Institute of Technology, una delle più importanti università di ricerca del mondo, con sede a Cambridge USA, negli anni Ottanta, quasi contemporaneamente all’affermarsi di aziende come Microsoft e Apple, si fece portabandiera del concetto di Free Software, fondando la Free Software Foudation per lo sviluppo e la distribuzione di software libero. Questo movimento portò alla mobilitazione di molti scienziati e tecnici informatici che hanno sviluppato in questi anni un enorme numero di applicativi, liberi da diritti di sfruttamento. Il software più rappresentativo è il Sistema operativo Linux il cui progetto iniziale è di Linus Torvalds che, da studente al secondo anno di informatica presso l'Università di Helsinki, lanciò il primo vero progetto Open-source dell’informatica moderna, cioè che fa affidamento sulla intelligenza collettiva di più persone al lavoro su un obiettivo comune in maniera cooperativa grazie allo strumento internet. |