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
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
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.
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 è 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.
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
(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 |
![]() |
(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.