Archivio | Uncategorized RSS feed for this section

La mia esperienza con gli OS, pionieri della Rivoluzione Digitale

14 Giu

Ciao a tutti i lettori,

Ho deciso di raccontare la mia esperienza con gli OS dal primo computer che ho avuto ed esprimere il mio giudizio su questo affascinante settore dell’informatica. Cercherò di renderlo interessante per voi.

La mia esperienza con i pc è cominciata da piccolo su un computer dotato di MS-DOS e di una versione particolare di Windows: il logo aveva il numero 95, ma non c’erano la barra delle applicazioni e il menu Start, e si accedeva ai programmi da un’unica finestra principale, allo stesso modo di Windows 3.1. Ancora oggi non saprei indicare con certezza quale versione fosse.

Windows 3.1 o 95?

Windows 3.1 o 95?

Il mio interesse per gli OS era scaturito dalla varietà presente di interfacce, che di solito venivano a coincidere con la versione di Windows, ma che a volte potevano subire delle modificazioni (è possibile ad esempio impostare l’interfaccia classica, propria di Windows 95, su Windows 7). Con il passare del tempo ho imparato a distinguere le piccole distinzioni tra le interfacce proprie di ogni versione (inevitabilmente solo di Windows, vista la scarsa diffusione di Linux e Mac negli anni ’90)  e ad apprezzare la lenta ma inesorabile progressione ed evoluzione degli elementi più comunemente utilizzati, come la grafica delle finestre, il tasto Start e persino le barre di scorrimento.

L'evoluzione delle barre di scorrimento (Fonte: Dribbble)

L’evoluzione delle barre di scorrimento (Fonte: Dribbble)

Da ciò deriva il logo che abbiamo scelto per il blog: un Tetrimino (pezzo di Tetris). In una partita di Tetris i pezzi si aggiungono uno per volta per creare la struttura complessiva, così come i sistemi operativi evolvono. Ogni elemento conta allo stesso modo degli altri, e dalla loro unione ordinata si arriva all’eliminazione delle righe complete, per fare spazio alle altre: il vuoto è simbolo di semplicità, qualcosa che si ha solamente quando ogni pezzo è al suo posto.

Gli OS non sono sempre stati semplici da utilizzare come lo sono adesso, tuttavia. I primi OS furono creati dopo l’avvento dei calcolatori a transistor, negli anni 50′, e servivano a non dover dare manualmente ogni comando alla macchina, ma dovevano essere programmati secondo le istruzioni da dare (da Wikipedia). Da allora sono diventati sempre più articolati e plurivalenti. Alcuni degli OS storici più famosi sono OS/360, installato sui primi PC della IBM, e UNIX, progettato dai ricercatori dei laboratori AT&T e Bell, dal quale provengono Linux e Mac OS.

Una finestra sul mondo (Fonte: lonestar.edu)

Una finestra sul mondo (Fonte: lonestar.edu)

Senza gli OS non saremmo mai arrivati ad un così elevato livello di interazione con i computer e con altri dispositivi (ad esempio cellulari) come quello che abbiamo adesso. Possiamo affermare che essi sono la nostra “finestra” (e qui il nome dato da Microsoft ai suoi OS mi sembra azzeccato) sul complesso mondo dell’informatica, permettendoci di capire con facilità cose altrimenti incomprensibili e di interagire con il mondo senza preoccuparci di come funzionano i computer.

 

Cristian Ricardo Quadro

il kernel

10 Giu

Il kernel, termine inglese per nucleo, è la base del sistema operativo. Il suo compito è  quello di gestire i tempi di accesso dei diversi programmi all’hardware e di controllare che il tutto avvenga in sicurezza. Ovviamente  la sua assenza non determina il mancato funzionamento di un computer, ma è certamente importante nell’ottimizzazione dello svolgimento dei vari processi. A seconda del grado di astrazione della parte hardware, resa necessaria per la sua complessità, i kernel si dividono in kernel monolitici, microkernel, kernel ibridi ed esokernel.

schema funzionamento

Il kernel coordina: la memoria, i processi, l’accesso all’hardware del sistema, il file system, l’accesso alle risorse da parte dei processi. Inoltre suddivide la memoria in parti più piccole e “maneggevoli” dette pagine, che vengono scaricate sulla memoria di massa (hardisk) quando non servono più e ricaricate da quest’ultima in memoria centrale quando se ne presenta la necessità (tecnica dello swap) ; si arriva così a creare una memoria virtuale teoricamente illimitata da far vedere alle applicazioni mentre il SO utilizza una contenuta quantità di memoria.

Processi e memoria devono essere coordinati tra loro in modo che le pagine di programma che sono attualmente in esecuzione o che contengono dati attualmente utilizzati, possano risiedere in memoria centrale.  Il processo viene sospeso e passa in stato di attesa se una pagina necessaria ad un processo in esecuzione non si trova in memoria centrale; il processo torna ad essere pronto per l’esecuzione dopo l’operazione di input da memoria di massa della pagina necessaria.

Il kernel può essere considerato la naturale evoluzione dei programmi debugger, cioè di quei software, utilizzati sui primi elaboratori e caricati su una memoria ROM, in grado di resettare il sistema alla fine dell’esecuzione di un programma e di prepararlo ad uno successivo. Il kernel ha il vantaggio di riuscire a gestire in modo efficiente il multitasking,  rendendo possibile la virtualizzazione dei processi: in pratica l’utente percepisce come contemporanee le esecuzioni di due o più programmi, che nella realtà avvengono in modo alternato.

Il concetto di time-sharing è alla base del multitasking e permette la condivisione della CPU tra più processi concorrenti; il tempo di esecuzione del processore è condiviso tra più processi/utenti e ogni processo in esecuzione  ha a disposizione dei quanti di tempo della CPU. Se viene chiesto al sistema di eseguire contemporaneamente due processi A e B, la CPU attuerà un meccanismo di time-sharing, cioè eseguirà per qualche istante (quanto di tempo) il processo A, poi per qualche istante il processo B,poi ritornerà ad eseguire il processo A e così via … Il passaggio dal processo A al processo B e viceversa viene definito cambio di contesto (contest switch).

Le decisioni riguardanti l’esecuzione di un cambio di contesto tra due programmi vengono intraprese da un componente del sistema operativo (software) detto scheduler. Questo programma   stabilisce un ordinamento temporale per l’esecuzione di un insieme di richieste di accesso ad una risposta.

Viene definito scheduling la ripartizione del tempo di CPU tra tutti processi concorrenti . Lo scheduling è un operazione molto importante per il corretto ed efficiente funzionamento del calcolatore consentendo di migliorare l’utilizzo del processore massimizzandone l’utilizzo e la produttività e minimizzando il tempo di attesa e quello di risposta.

Il Kernel è un passaggio fondamentale nell’evoluzione dei sistemi operativi, perché nella sua struttura e funzione ne costituisce l’idea basilare. Come molte altre  invenzioni, il kernel nasce dall’esigenza di agevolare il lavoro dell’uomo: in questo caso migliorare l’operatività dei programmi, lasciando il compito di gestirli ad un altro software. Chiunque può usare il computer adoperando vari programmi contemporaneamente  non preoccupandosi di come il processore debba analizzare le informazioni. Questo rende il pc alla portata di tutti.

Il multitasking, reso fattibile dal kernel, è un fattore determinate nello sviluppo della società perché modifica il nostro accesso all’informazione e quindi la nostra capacità critica. Se possiamo accedere a più notizie contemporaneamente siamo in grado di fare collegamenti tra fatti diversi e avere visione più ampia del mondo. Inoltre il multitasking rende possibile lo svolgimento di più compiti contemporaneamente migliorando l’efficienza.

Ariel Belga Fedeli

Fonti: www.diit.unict.it, http://vandali.org/DanieleMasini/MyLinux/MyLinuxsu93.php, http://it.m.wikipedia.org/wiki/Kernel

RTOS: real time operative system

9 Giu

 Gli RTOS, i sistemi operativi real-time, sono SO  in grado di fornire delle risposte in un tempo determinato. Hanno particolare rilevanza in ambito industriale e hanno la peculiarità di essere deterministici e prevedibili. Si dividono principalmente in due categorie, gli hard e i soft,  in base alla fattibilità di schedulazione di diverse tipologie di task, cioè a seconda della loro capacità di ottimizzare dei processi che qualora non rispettassero dei tempi precisi di esecuzione potrebbero provocare dei danni al sistema.

                                                           

Vxworks e Windows CE due RTOS

I  RTOS sono particolarmente importanti nello sviluppo dei sistemi embedded, cioè apparecchiature elettroniche sviluppate specificatamente per un determinato scopo; ad esempio il computer che gestisce il risciacquo dei piatti in una lavastoviglie o la copia e la stampa su una fotocopiatrice.  Un sistema real time garantisce infatti la realizzazione di sistemi complessi altrimenti irrealizzabili tramite la sola parte hardware. Nel corso del tempo le aziende hanno quindi gradualmente concentrato  quasi la totalità degli sforzi per sviluppare degli RTOS specifici per problemi come il multicolore adottato da varie piattaforme di computing.

Vi sono sistemi operativi real-time  sia open source che closed source e l’uso di uno o dell’altro comporta diverse conseguenze: i primi garantiscono, sopprimi garantisconorattutto per un’azienda , dei vantaggi economici  di spesa contenuta; i secondi, invece, un costante supporto dell’azienda proprietaria dello RTOS alla risoluzione dei problemi . la scelta open source crea sicuramente un’indipendenza da parte dell’azienda verso la produttrice dell’OS e quindi una maggiore libertà di sviluppo; la scelta closed source una sinergia tra due fabbriche che determina una maggiore efficienza del prodotto.

Dal punto di vista economico lo sviluppo di un RTOS può essere costoso; invece da quello pratico un sistema operativo real time  richiede da parte del processore un numero notevole di cicli e causa un sovraccarico del processore. Un thread può sicuramente occupare della memoria aggiuntiva e, se non provvisto di un sistema di priorizzazione, il RTOS può far aspettare un insieme di istruzioni alta priorità svolgendone uno meno importante.

Il  RTOS è un esempio di come un sistema operativo sia determinante non solo per l’utilizzo di software ma anche per il miglioramento dell’hardware e dell’elettronica in generale. Bisognerebbe tuttavia considerane il limite: l’efficienza in tempi precisi e un sistema deterministico richiedono notevoli finanziamenti; inoltre i problemi di sovraccarico del processore possono determinare non solo il danneggiamento di un computer ma comprometterne tutto il contenuto, causando ulteriori e più gravi problemi.

Ariel Belga Fedeli

Fonti:http://robotics.fau.edu/wp-content/uploads/2010/10/Tom-Presentation.pdf , http://it.wikipedia.org/w/index.php?search=&button=&title=Speciale%3ARicerca , http://www.elettronicanews.it/articoli/0,1254,40_ART_4329,00.html

Firefox OS: il nuovo sistema operativo per tablet e smartphone

4 Giu

Annunciato inizialmente sotto il nome di “Boot to Gecko” (B2G) e uscito qualche mese fa, Firefox OS è il nuovo sistema operativo sviluppato da Mozilla, basato sul kernel di Linux, proprio come Android, e creato  per smartphone e tablet . Il nuovo sistema operativo si annuncia essere una possibile apertura del mercato dominato da Apple e Android e, secondo alcune stime, riuscirà a raggiungere entro il 2013 l’1% delle vendite del settore.

File:FirefoxOS Screenshot Development Build 2012-10-23.jpg

schermata di firefox os quando era ancora in sviluppo

Firefox os è stato creato al fine di sviluppare un’alternativa concezione di web, l’open web, dove ognuno possa  pubblicare app secondo un modello di open standard e, inoltre, sia in grado di accedere a e modificare codici che stanno alla base delle application stesse. In pratica, in un mercato mobile e tablet dominato da sistemi operativi proprietari, il S.O. di casa mozilla propone un modello open source radicale in cui il web è concepito principalmente come:

  • fortemente decentralizzato: il web è   un sistema aperto dove chiunque può creare il proprio sito o  servizio web.
  • trasparente: accessibile a tutti i livelli, tramite la possibilità di  leggere il sorgente delle varie pagine web.

Che  dovrebbe consentire:

  • una comunicazione bidirezionale: un open web dovrebbe permettere a chiunque di poter assumere i tre diversi  ruoli di scrittore, lettore e hacker.
  • Innovazioni di terze parti:  ognuno dovrebbe potere apportare innovazioni senza chiedere il permesso a nessuno
  • integrazione di terze parti: chiunque dovrebbe poter connettersi a internet  per creare web server , browser etc

Prendendo esempio dalle aziende concorrenti, Mozilla ha creato il Firefox Marketplace, molto simile come struttura all’apple store e a google play store,dove sarà possibile scaricare le applicazioni per Firefox os. Lo store sarà aperto a chiunque e ognuno potrà pubblicare le proprie app e metterle a disposizioni di altri utenti.

 Mozilla  ha quindi riassunto in Firefox OS quelle caratteristiche che contraddistinguono un sistema operativo mobile e tablet moderno (come lo store) e l’ha coniugata ad una  filosofia  forte come l’open web comprendendo, più di altre aziende concorrenti, il presente e il modo di pensare della nostra società. Attualmente, in un epoca di crisi economica e occupazionale, l’individuo sente il bisogno di avere nuove possibilità, di poter affermarsi e di poter avere quindi accesso a qualunque cosa. Firefox OS potrebbe essere il mezzo.

Ariel Belga Fedeli

Fonti:http://it.wikipedia.org/wiki/Firefox_OS, http://en.wikipedia.org/wiki/Open_Web, http://bit.ly/CGyYF

Il progresso S.O.ciale

5 Mag

Al contrario di quello che accadeva un tempo, quando si acquistava un calcolatore decidendo innanzitutto il marchio (IBM, Honeywell, Digital, HP ecc.), ormai si acquista il computer badando soprattutto all’ambiente software offerto (Windows, Mac, Unix, Linux ecc.) e la scelta dell’hardware è a questo subordinata”(“Capire l’informatica”, Marco Mezzalama, Elio Piccolo).Questo perché è l’architettura  dei nostri sistemi operativi che ci da la possibilità di sfruttare al massimo la caratteristica del pc di macchina general purpose.

La nostra possibilità di creare e di divertirci e di comunicare è determinata  , limitata e molto spesso ampliata  da quello che il nostro computer ci permette di scaricare o istallare.

Microsoft%20Life%20Without%20Walls

(immagine di slogan Windows;   è molto esplicito il concetto di  “ampliamento”  )

Quanto più siamo liberi di usare determinati programmi di lavoro o  giochi, tanto più siamo liberi in quanto persone perché abbiamo molte più scelte. Il nostro sistema operativo rispecchia il nostro modo di pensare e la limitatezza della nostra mente: una sua evoluzione ci permette di maturare intellettualmente scoprendo un altro punto di vista.

D’altra parte il S.O.  ci limita perché ci costringe ad usare determinate applicazioni sia per motivi di “incapacità tecnologica” sia per motivi economici: potrebbe non essere possibile creare il programma o il produttore di Windows, Mac Os, Android..ecc..ecc.. potrebbe aver scelto di non farlo girare perché non redditizio finanziariamente.

 HT5290-MacAppStore-001-en

(Messaggio mandato all’utente di Mac Os in caso di apertura di app non appartente ad app store, esempio di “motivo economico” )

Tutto questo ci permette di riflettere su quanto incosciamente siamo influenzati e di come spesso banalmente accada che quando non siamo in grado di fare qualcosa, pensiamo non sia effettivamente possibile realizzarla. Se comprendiamo tutto cio’, possiamo capire quanto pure battaglie di mercato nell’ambito dei sistemi operativi  determinino il nostro modo di pensare e agire.

L’evoluzione del pensiero e della società , le possibilità del singolo di auto-affermarsi  ed essere ascoltato dagli altri dipendono dalla libertà dell’individuo di agire e autodeterminarsi ; quindi le scelte economiche di un’azienda produttrice di  S.O.  o le innovazioni apportate su questi ultimi sconvolgono la considerazione che ha il singolo di se stesso e di quelli che lo circondano cambiando in modo molto forte la società. Per questo motivo il progresso della comunità di individui può a tutti gli effetti essere definita “S.O.ciale”.

Ariel Belga Fedeli