INTERFACCE GRAFICHE - GUI: GRAPHICAL USER INTERFACE

(snapshot tratti dal sito: http://www.owoelwo.info/interfacce-grafiche-dagli-anni-80-ad-oggi-parte-prima/ - scritto da Simone Martelli)

Storia delle GUI

L'interfaccia utente grafica, in sigla GUI (dal corrispondente termine inglese graphical user interface), è un paradigma di sviluppo che consente l'interazione utente/computer semplicemente manipolando degli oggetti grafici. Obbiettivo della GUI è eliminare l'obbligo di imparare una serie di comandi da impartire con la tastiera come invece avviene con le interfacce testuali CLI (command line interface). L'interfaccia utente rappresenta lo strato di un'applicazione software che si occupa del dialogo con l'utente del sistema utilizzando un ambiente grafico.

La prima interfaccia grafica è stata sviluppata da ricercatori dell’Università di Xerox Palo Alto Research Center (PARC) negli anni’70. Questa ricerca ha aperto una nuova era di innovazioni nella computer grafica. Il primo personal computer che ha utilizzato un’interfaccia grafica moderna è stata lo Xerox Alto, sviluppato nel 1973. Non è stato un prodotto commerciale ma era destinato soprattutto per le attività di ricerca presso le università.

Nei sistemi operativi moderni l'interfaccia grafica è concepita tramite la metafora di un piano di lavoro rappresentato dallo schermo (detto scrivania o desktop), con le icone a rappresentare i file (di cui alcune a forma di cartellina per le directory) e le finestre a rappresentare le applicazioni (si parla anche di GUI WIMP dove WIMP è acronimo di Window, Icon, Menu e Pointing device). Tale ambiente di lavoro, in cui si opera attraverso il puntatore comandato con il mouse, è stato concettualizzato nei laboratori Xerox (progetto Alto) e commercializzato per la prima volta nel 1981 dalla Xerox stessa con il costoso Xerox Star.

In seguito, tale paradigma venne ripreso da Apple nel 1983, con il poco fortunato Apple Lisa, e nel 1984, con il più fortunato Macintosh.

La prima versione di GUI a colori venne introdotta nel 1985 da Atari con l'Atari 520ST, seguita a distanza di due mesi da Commodore International con l'Amiga 1000.

Nell'1985 microsoft sviluppa la sua interfaccia utente rilasciando Windows 1.0, il suo primo sistema operativo basato su interfaccia grafica. Il sistema è caratterizzato da icone a colori di 32 × 32 pixel. La caratteristica più interessante (che poi fu eliminata) è stato l’icona animata dell’orologio analogico.

GUI Linux


LINUX RED HAT 7.2 - GUI KDE - http://www.redhat.com/

KDE (K Desktop Environment) è, come recita la pagina di benvenuto della sua documentazione, un ambiente desktop grafico per postazioni di lavoro Unix.

È basato sulle librerie Qt di Qt Software (rilasciate con licenza LGPL) e funziona sulla maggior parte dei sistemi operativi di tipo Unix, come GNU/Linux, distribuzioni BSD ed esistono anche delle versioni funzionanti su Microsoft Windows e su Mac OS X che sfruttano un layer di portabilità del toolkit Qt nell'attuale versione 4.

Insieme a GNOME, altro ambiente desktop molto diffuso in ambiente GNU/Linux e Unix-like, KDE è tra i più completi e ricchi di effetti grafici, caratterizzato da un aspetto molto accattivante e da un elevato grado di personalizzabilità. Attualmente, GNOME è l'unica valida alternativa a KDE, e i due progetti sono in diretta concorrenza fra di loro.

KDE (al contrario del rivale GNOME) viene concepito come un Desktop Environment orientato prevalentemente agli utenti medio-avanzati, per via della vasta configurabilità dell'ambiente e dei suoi programmi. Tuttavia, grazie alla sua sostanziale facilità d'uso e alla sua ottima usabilità, questo ambiente viene installato di default da numerose distribuzioni GNU/Linux, soprattutto da quelle orientate all'utenza desktop, come ad esempio Mandriva, SUSE o Kubuntu.

BROWSER KONQUEROR - KCONSOLE - PANNELLO DI CONTROLLO

GESTIONE UTENTI  - GESTIONE SERVIZI - DISPONIBILITA' DISCO

LINUX RED HAT 8 - GUI GNOME

GNOME (GNU Network Object Model Environment) è un Desktop environment creato inizialmente da Miguel de Icaza e Federico Mena nell'agosto del 1997, con l'obiettivo di fornire un ambiente di sviluppo e desktop libero per il sistema operativo GNU/Linux. Grazie a questo e ai risultati raggiunti, è presto stato riconosciuto come il Desktop Environment ufficiale del progetto GNU. Al tempo l'unica alternativa sufficientemente completa era KDE, il quale raccoglieva diverse critiche riguardanti il non essere un ambiente aperto (KDE forniva le api per i soli linguaggi C e C++) e non completamente libero, in quanto le librerie grafiche su cui si basa, le Qt, non erano ancora state rilasciate con una licenza libera (in seguito sono state rilasciate sotto licenza GNU GPL e LGPL -
La principale differenza tra la GNU GPL e la LGPL è che quest'ultima permette al software di essere "linkato" ad altro software con licenza diversa).

Attualmente GNOME è l'ambiente grafico di default di molte distribuzioni Linux, tra le quali Debian, Fedora e Ubuntu.

Il cuore di GNOME è programmato principalmente in C e interamente basato sulle librerie grafiche GTK+; è libero fin dalla sua nascita, essendo pubblicato sotto le licenze GNU General Public License e GNU Lesser General Public License (a seconda dei componenti).
GNOME è stato progettato con un alto livello di astrazione, e proprio questa sua caratteristica ha permesso di poterlo compilare e includere in un gran numero di sistemi operativi unix-like; sono disponibili api e documentazione per lo sviluppo di applicazioni Gnome in diversi linguaggi, tra i quali Ruby, Java, C++, Perl, Scheme, C#, Python e, naturalmente, C. Attualmente il progetto cyGNOME sta tentando di effettuare il porting sul sistema operativo Microsoft Windows appoggiandosi sul sistema cygwin.
 

LINUX RED HAT 7.2 - GUI XWINDOW

X Window System, noto in gergo come X Window o x11 o ancor più semplicemente X, è di fatto il gestore grafico standard per tutti i sistemi Unix (Linux e BSD compresi); è attualmente mantenuto dalla X.Org Foundation e rilasciato sotto una licenza di software libero.

X fornisce l'ambiente e i componenti di base per le interfacce grafiche, ovvero il disegno e lo spostamento delle finestre sullo schermo e l'interazione con il mouse e la tastiera. X non gestisce invece l'interfaccia grafica utente o lo stile grafico delle applicazioni: tutti questi aspetti sono gestiti direttamente da ogni singola applicazione.

X usa un modello client/server: in altre parole, il server X comunica con gli altri programmi (client). Il server accetta richieste per output grafici (finestre) e input dall'utente (dalla tastiera, il mouse o dal touchscreen). Il server X può essere:

- un programma di sistema che controlla l'output video di un PC (oggi è il caso più comune)
- un componente hardware dedicato (i cosiddetti X terminal: calcolatori dotati solo dell'hardware necessario ad eseguire il server X, pensati per visualizzare applicazioni eseguite su appositi server applicativi).
- un'applicazione che mostra dati su una finestra di un altro sistema grafico.
La denominazione client/server spesso confonde i nuovi utilizzatori di X perché i termini sembrano invertiti: sul terminale dell'utente è in esecuzione il "server" che viene utilizzato dai programmi applicativi (client). X fornisce un servizio di visualizzazione ai programmi, in quest'ottica agisce da server, mentre il programma applicativo (che può anche essere remoto) usa i servizi, così agisce come un client.

Il protocollo di comunicazione tra server e client opera in modo trasparente rispetto alla rete: entrambi possono risiedere sulla stessa macchina o su altre, anche con architetture e sistemi operativi differenti; il server ed il client possono anche comunicare in modo sicuro attraverso la rete sfruttando un tunnel cifrato (spesso viene utilizzato SSH).

Le librerie di X (xlibs) erano totalmente inadeguate per usi grafici avanzati, come poteva essere un desktop environment ed erano un incubo per i programmatori che tentavano di metterci mano; da questa necessità nacquero i "toolkit", ossia delle librerie che, appoggiandosi alle xlib, non solo implementavano funzioni mancanti fornendo strumenti aggiuntivi, ma semplificano la programmazione di applicazioni grafiche per X. Il toolkit più famoso di tutti i tempi è probabilmente Motif. Famose sono anche le librerie QT alle quali si appoggia KDE o le GTK (nate da Gimp) ampliate poi in GTK+ su cui si basa GNOME.

Alcune applicazioni presenti nella GUI X: xbiff  (avviso di posta) - xlogo (logo XWin) - xcalc  (calcolatrice) - xclock (orologio) - xeyes (occhi che inseguono il cursore) - xedit  (editor) - xman (help in linea) - xmag. (lente di ingrandimento)

MAC OS X LION - GUI  AQUA - http://www.apple.com/it/macosx/

Mac OS X è il sistema operativo desktop UNIX più usato al mondo.

Include tutte le più comuni utility e shell di comando UNIX, una completa macchina Java implementata nativamente nonché i principali linguaggi di scripting come Perl, PHP, tcl, Ruby e Python, ed è certificato da The Open Group come conforme allo standard UNIX dal suo rilascio 10.5 in poi.

Mac OS X è stato creato combinando:
- Darwin OS: un sistema operativo libero e completo sviluppato da Apple Computer, derivato da Unix, con kernel XNU basato sul microkernel Mach, ispirato e ibridato con il kernel del sistema operativo FreeBSD con ampie porzioni di codice NetBSD
- una serie di I/O kit, Frameworks, un set di librerie ottimizzate che facilitano il porting del codice UNIX e alcuni set di API (carbon e cocoa), sviluppate da NEXTStep e Apple Computer;
- un' interfaccia grafica (GUI), chiamata Aqua, sviluppata da Apple Computer;

Il sistema operativo ha avuto il suo primo rilascio commerciale nel 2001. La versione attuale è la 10.7.2, nome in codice OS X Lion, disponibile per tutti i Macintosh con processore Intel. Mac OS X è in grado di eseguire direttamente molti programmi per BSD e GNU/Linux attraverso la compilazione dei sorgenti (make) e, in alcuni casi, tramite il ricorso al gestore grafico Apple X11, presente di serie nel sistema operativo anche se normalmente non utilizzato dalle applicazioni per OS X che utilizzano nativamente il motore grafico Quartz.

La versione 10.3 è stata la prima che include Apple X11: la versione Apple del gestore grafico X11 per applicazioni Unix. L'Apple X11 si basa sul progetto XFree86 versione 4.3 e X11R6.6 e fornisce un gestore grafico integrato col Mac OS X, dato che condivide lo stesso aspetto delle finestre, utilizza la tecnologia Quartz per il disegno dell'interfaccia grafica e si avvantaggia dell'accelerazione OpenGL. Esempi di applicazioni per Mac OS X che utilizzano server X11 sono OpenOffice.org per Mac e Gimp per Mac.



Vocabolario:
- Darwin: è un sistema operativo libero che utilizza il kernel XNU. Insieme all'interfaccia grafica proprietaria Aqua, forma il sistema operativo Mac OS X.
- XNU: È un kernel ibrido, basato su un'unione del codice del microkernel Mach e del kernel monolitico FreeBSD. XNU deriva da XINU che è l'acronimo ricorsivo di "XINU Is Not Unix" oppure la scrittura capovolta del nome UNIX.
- Mach: Mach è un kernel sviluppato dalla Carnegie Mellon University durante l'attività di ricerca sui sistemi operativi paralleli e distribuiti. È uno dei primi microkernel ed attualmente è anche il più famoso, infatti spesso viene utilizzato come campione di paragone con altri microkernel. L'approccio microkernel consiste nel definire delle macchine virtuali molto semplici sopra l'hardware, con un set di primitive o chiamate di sistema per implementare servizi minimali del sistema operativo quali gestione dei thread, spazi di indirizzamento o comunicazione interprocesso. In XNU il microkernel Mach è responsabile:
>del gestore della memoria,
>della comunicazione tra processi,
>del sistema input/output,
>protezione della memoria,
>pre-emptive multitasking
>una gestione avanzata della memoria virtuale.
- FreeBSD: è un sistema operativo libero di tipo UNIX, derivato dalla Distribuzione Unix dell'Università Berkeley. La parte del kernel XNU, derivata da FreeBSD, gestisce:
>gli utenti e i permessi,
>contiene lo stack di rete,
>offre un virtual file system (VFS)
>osserva la compatibilità con le specifiche POSIX (Portable Operating System Interface for Unix).
- Carbon: è il nome in codice dato da Apple Inc. alle API contenute nel sistema operativo Mac OS X che consentono ai programmi scritti per i sistemi della Apple precedenti a Mac OS X di funzionare sul nuovo sistema operativo tramite piccole modifiche.
- Cocoa: è l'ambiente di programmazione orientato agli oggetti sviluppato da Apple Inc. per il sistema operativo Mac OS X. È il maggiore dei cinque ambienti di programmazione disponibili in OS X. Gli altri quattro sono: Carbon, Classic, BSD, e Java.
- NetBSD: è un sistema operativo Unix-like derivato da BSD UNIX altamente portabile, gratuito, disponibile per molte piattaforme, dai server alpha a 64 bit fino ai dispositivi palmari. Il suo design pulito e le sue caratteristiche avanzate lo rendono idoneo a ambiti sia produttivi sia di ricerca.
- Pre-empitive Multitasking: Esistono due tipologie di multitasking: con prelazione (cooperative) e senza prelazione (pre-empitive).
Nel multitasking cooperative i programmi cedono volontariamente il controllo al sistema operativo una volta finita l'operazione in corso: è il caso di Mac OS fino alla versione 9, o di Windows 3.0 e 3.1. Il vantaggio di questo metodo è che non ha bisogno di supporto hardware e si può implementare su ogni tipo di architettura. Il grave svantaggio è che un singolo programma che si rifiuta di cedere il controllo, o che si ferma per qualche errore, può bloccare l'intero computer in quanto il sistema operativo non ha modo di riprendere il controllo da solo.
Nel multitasking preempitive l'interruzione del programma è attuato a prescindere dalla volontà del programma stesso. Ciò avviene grazie a delle particolari strutture hardware integrate nel microprocessore che automatizzano il cambio di contesto (context switch). Un multitasking con prelazione (preemptive) non può quindi essere implementato se la piattaforma hardware non mette a disposizione gli strumenti necessari, ma in compenso, grazie all'hardware, il cambio di contesto è molto più efficiente favorendo l'adozione di quanti di tempo regolari e una esecuzione più "fluida" dei vari processi. Il preemptive multitask è stato adottato dalla maggior parte dei sistemi operativi moderni.

DAMN SMALL LINUX - GUI JWM: JOE'S WINDOW MANAGER - http://www.damnsmalllinux.org

DAMN SMALL LINUX - GUI FLUXBOX WINDOW MANAGER - http://www.damnsmalllinux.org

Fluxbox è un Window manager basato sul codice di Blackbox versione 0.61.1, ma con un elevato grado di personalizzabilità e funzionalità aggiuntive (come la possibilità di cambiare workspace tramite la mousewheel o di cambiare l'assetto della titlebar delle finestre).

La caratteristica principale di Fluxbox è la sua leggerezza, e di conseguenza la sua buona performance. Chiaramente questo implica che le funzionalità disponibili al momento dell'installazione siano minime. È stata perciò creata una vasta gamma di programmi satellite per FluxBox che permettono di modificarne aspetto e caratteristiche (ad esempio FbDesk permette di mostrare le icone sul desktop).

Il menù di sistema, al quale si accede tramite il tasto destro del mouse, è completamente personalizzabile, le applicazioni possono essere suddivise per categorie e sottocategorie così da limitare l'espansione del menù stesso.

La configurazione di Fluxbox è gestita interamente da semplici file di testo (di default nella directory ~/.fluxbox), anche se è possibile usare FluxConf, disponibile nella homepage di FluxBox.

OPEN OFFICE


OPENOFFICE IN DIVERSE GUI

(Calc - Draw - Impress - Writer - Base) - http://www.openoffice.org/

OpenOffice.org (abbreviato in OOo) è una suite di proprietà Sun Microsystems, dal 20 aprile 2009 acquisita da Oracle, con copyright e licenza LGPL, che può essere classificato come software di produttività personale. Il suffisso ".org" è stato aggiunto dopo una disputa sul marchio con una società olandese, con richiesta che il progetto adotti formalmente OpenOffice.org come suo nome ufficiale.

OpenOffice.org è ora la più importante alternativa all'applicazione per ufficio Microsoft Office, tuttora dominante. La possibilità di leggere e scrivere file anche nei formati Microsoft Office, permette a molti utenti di migrare verso questa piattaforma. OpenOffice.org è in grado di leggere e scrivere i documenti .doc, .xls e .ppt di tutte le versioni di Microsoft Office compresa la 2007

Sono supportate ufficialmente versioni per Linux (la suite è compresa in molte distribuzioni), Microsoft Windows, Solaris e Mac OS X (la versione 2.x su Mac OS richiede l'uso di X11), ma è possibile installarlo anche su altri sistemi operativi.

NeoOffice è un porting di OpenOffice.org per Mac OS X. Esso implementa quasi tutte le caratteristiche della corrispondente versione di OpenOffice.org comprendenti un elaboratore testi, un foglio elettronico, un programma per presentazioni, un programma di elaborazione grafica ed un database relazionale. Viene sviluppato da Planamesa Software ed usa la tecnologia Java per integrare OpenOffice.org (originariamente sviluppato per Solaris e GNU/Linux) con l'intefaccia Aqua di Mac OS X.

OPEN OFFICE

IN AMBIENTE REDHAT GUI KDE

IN AMBIENTE REDHAT GUI GNOME

IN AMBIENTE WINDOWS


KOFFICE  IN AMBIENTE REDHAT 7.2

(KWORD - KRAYON (ora KRITA) - KSPREAD - KPRESENTER - KARBON)

KOffice è una suite di software di produttività personale creata per l'ambiente desktop KDE, ma resa progressivamente disponibile anche per altre piattaforme a partire dalla serie 2. L'intera suite è open source, rilasciata sotto licenza GNU LGPL. Non è compresa nel pacchetto base di KDE in quanto segue un ciclo di rilasci indipendente ed è scaricabile dal sito del progetto.

A partire dalla versione 1.5 permette l'importazione di documenti in formati differenti dai propri, come quelli di OpenOffice.org o di Microsoft Office.