# Ambiente desktop

Un ambiente desktop (o ambiente grafico, in lingua inglese desktop environment, abbreviato DE), in informatica, è un'interfaccia grafica di un sistema operativo che permette ad un utente di utilizzare il computer o il software in maniera user-friendly tramite l'interazione con oggetti grafici.
Il concetto richiama la metafora della scrivania e presenta vari oggetti grafici per semplificare l'interazione come icone, finestre, barre di scorrimento, barra delle applicazioni, menù, disegnati sullo schermo del computer, in maniera del tutto simile a quanto accade con le interfacce grafiche delle applicazioni. Storicamente l'introduzione dell'interfaccia grafica a finestra tipica di tali software è dovuta alla Xerox, mentre la diffusione capillare è senz'altro dovuta al Macintosh della Apple e Microsoft Windows.

## Storia

Il primo ambiente desktop è stato creato da Xerox ed è stato venduto con Xerox Alto negli anni 1970. L'Alto era generalmente considerato da Xerox un personal computer da ufficio; ha poi fallito sul mercato. Con Lisa, Apple ha introdotto un ambiente desktop su un personal computer economico, anch'esso fallito sul mercato.
La metafora del desktop è stata resa popolare sui personal computer commerciali dal Macintosh originale di Apple nel 1984, ed è stata resa popolare da Windows da Microsoft a partire dagli anni '90. A partire dal 2014 , gli ambienti desktop più popolari discendono da questi ambienti precedenti, inclusa la shell di Windows utilizzata in Microsoft Windows e l'ambiente Aqua utilizzato in macOS. Se confrontato con gli ambienti desktop basati su X disponibili per sistemi operativi simili a Unix come Linux e FreeBSD, gli ambienti desktop proprietari inclusi con Windows e macOS hanno layout relativamente fissi e funzionalità statiche, con design "senza soluzione di continuità" altamente integrati che mirano a fornire ai clienti esperienze per lo più coerenti tra le installazioni.

## Descrizione e funzionamento

Gli ambienti grafici dei sistemi operativi come Microsoft Windows e macOS impediscono di cambiare totalmente il proprio aspetto, poiché essi sono integrati nel sistema operativo. Quindi tale ambiente grafico tende per il pubblico a rappresentare il sistema operativo stesso. È possibile comunque modificare l'aspetto degli elementi principali dell'interfaccia, come le finestre, i pulsanti e le icone, nonché di modificarne il comportamento, tramite temi e altri software di personalizzazione. Al contrario, nei sistemi basati sull'X Window System (ad esempio i sistemi Unix-like come Linux), il DE consiste di un componente separato dal sistema operativo, che può essere sostituito in modo indipendente dagli altri moduli. Il sistema può quindi presentare interfacce differenti, mantenendo le stesse funzionalità e gli stessi software. Un DE Unix è composto da un window manager, da skin personalizzabili, da programmi e librerie che gestiscono il desktop. Tutti questi moduli tendono ad essere intercambiabili, modificabili e configurabili anche individualmente, al fine di ottenere la combinazione voluta.
Su un sistema che offre un ambiente desktop, un gestore di finestre insieme alle applicazioni scritte utilizzando un toolkit widget sono generalmente responsabili della maggior parte di ciò che l'utente vede. Il gestore delle finestre da essi adottato provvede all'interazione dell'utente, mentre il toolkit fornisce agli sviluppatori una libreria software per applicazioni con aspetto e comportamento unificati. Un sistema a finestre di qualche tipo generalmente si interfaccia direttamente con il sistema operativo e le librerie sottostanti. Fornisce supporto per hardware grafico, dispositivi di puntamento e tastiere. Il window manager generalmente gira su questo sistema a finestre. Sebbene il sistema a finestre possa fornire alcune funzionalità di gestione delle finestre, questa funzionalità è ancora considerata parte del gestore di finestre, che semplicemente è stato fornito dal sistema a finestre.
Le applicazioni create con un particolare gestore di finestre in mente di solito fanno uso di un toolkit di finestre, generalmente fornito con il sistema operativo o il gestore di finestre. Un toolkit a finestre consente alle applicazioni di accedere a widget che consentono all'utente di interagire graficamente con l'applicazione in modo coerente.

## Implementazione e utilizzo
### Nei sistemi operativi

L'ambiente desktop più comune sui personal computer è Windows Shell in Microsoft Windows. Microsoft ha inoltre introdotto il supporto dei temi in Windows 98, i vari stili di visualizzazione di Windows XP, il marchio Aero in Windows Vista, il linguaggio di progettazione Microsoft (nome in codice "Metro") in Windows 8 e Fluent Design System e Windows Spotlight in Windows 10. La shell di Windows può essere estesa tramite le estensioni della shell. Gli ambienti desktop tradizionali per sistemi operativi simili a Unix utilizzano il sistema X Window e includono KDE, GNOME, Xfce, LXDE e Aqua, ognuno dei quali può essere selezionato dagli utenti e non è legato esclusivamente al sistema operativo in uso.
I sistemi operativi Unix-like utilizzano vari ambienti, inclusi (ma non limitati a) Common Desktop Environment, Equinox Desktop Environment, Graphics Environment Manager, FVWM, IRIX Interactive Desktop, Jesktop, Mezzo, Project Looking Glass, ROX Desktop, Sun's Java Desktop System, Unix Desktop Environment, Xito, XFast. Altri esempi includono Openbox, Fluxbox, WindowLab, così come Window Maker e AfterStep, che sia caratteristica la NeXTSTEP GUI look and feel. Tuttavia, le versioni più recenti di alcuni sistemi operativi si auto-configurano.
L'approccio Amiga all'ambiente desktop è stato degno di nota: l'originale ambiente desktop Workbench in AmigaOS si è evoluto nel tempo per dare origine a un'intera famiglia di discendenti e soluzioni desktop alternative. Alcuni di questi discendenti sono Scalos, il desktop Ambient di MorphOS e il desktop Wanderer del sistema operativo open source AROS. WindowLab contiene anche funzionalità che ricordano l'interfaccia utente di Amiga. Software Directory Opus di terze parti, che originariamente era solo un file manager di navigazione programma, si è evoluto per diventare un completo desktop replacement Amiga chiamato Directory Opus Magellan.
OS/2 (e derivati come eComStation e ArcaOS) utilizzano Workplace Shell. Le versioni precedenti di OS / 2 utilizzavano il Presentation Manager. Il progetto BumpTop era un ambiente desktop sperimentale. Il suo obiettivo principale è sostituire il paradigma 2D con un'implementazione 3D "reale", in cui i documenti possono essere manipolati liberamente su una tabella virtuale.

### Sui dispositivi

A partire dagli anni 2000 Microsoft Windows domina nella quota di mercato tra i personal computer con un ambiente desktop. I computer che utilizzano sistemi operativi simili a Unix come macOS, Chrome OS, Linux, BSD o Solaris sono molto meno comuni; tuttavia, a partire dal 2015 esiste un mercato in crescita per i PC Linux a basso costo che utilizzano X Window System o Wayland con un'ampia scelta di ambienti desktop.
Su tablet e smartphone, la situazione è opposta, con sistemi operativi Unix-like che dominano il mercato, inclusi iOS (derivato da BSD), Android, Tizen, Sailfish OS e Ubuntu. Windows Phone di Microsoft, Windows RT e Windows 10 vengono utilizzati su un numero molto inferiore di tablet e smartphone. Tuttavia, la maggior parte dei sistemi operativi simili a Unix dominanti sui dispositivi palmari non utilizza gli ambienti desktop X11 utilizzati da altri sistemi operativi simili a Unix, basandosi invece su interfacce basate su altre tecnologie.

## Ambienti per il sistema X Window

Sui sistemi che eseguono il sistema X Window (tipicamente sistemi della famiglia Unix come Linux, BSD e distribuzioni UNIX formali), gli ambienti desktop sono molto più dinamici e personalizzabili per soddisfare le esigenze degli utenti. In questo contesto, un ambiente desktop consiste tipicamente di diversi componenti separati, incluso un gestore di finestre (come Mutter o KWin), un gestore di file (come Files o Dolphin), una serie di temi grafici, insieme a toolkit (come GTK+ e Qt) e librerie per la gestione del desktop. Tutti questi singoli moduli possono essere scambiati e configurati in modo indipendente per adattarsi agli utenti, ma la maggior parte degli ambienti desktop fornisce una configurazione predefinita che funziona con una configurazione utente minima.
Nel 1996 iniziò lo sviluppo di KDE e XFCE (quest'ultimo un progetto minore che privilegia la velocità e modularità di esecuzione) seguito nel 1997 dall'annuncio di GNOME e successivamente dal LXDE nel 2006. GNOME e KDE sono quelli maggiormente diffusi e considerati come soluzioni dominanti; tuttavia, assieme agli altri ambienti offrono:
* Per i programmatori, una serie di API standard, un ambiente di programmazione e linee guida per l'interfaccia umana.
* Per i traduttori, un'infrastruttura di collaborazione. KDE e GNOME sono disponibili in molte lingue.
* Agli artisti, uno spazio di lavoro per condividere i propri talenti.
* Agli specialisti di ergonomia, la possibilità di contribuire a semplificare l'ambiente di lavoro.
* Agli sviluppatori di applicazioni di terze parti, un ambiente di riferimento per l'integrazione. OpenOffice.org è una di queste applicazioni.
* Per gli utenti, un ambiente desktop completo e una suite di applicazioni essenziali. Questi includono un file manager, un browser web, un lettore multimediale, un client di posta elettronica, una rubrica, un lettore PDF, un gestore di foto e un'applicazione per le preferenze di sistema.
All'inizio degli anni 2000, KDE ha raggiunto la maturità. I progetti Appeal e ToPaZ sono concentrati sul portare nuovi progressi alle prossime versioni principali di KDE e GNOME rispettivamente. Sebbene si sforzino di raggiungere obiettivi sostanzialmente simili, GNOME e KDE differiscono nel loro approccio all'ergonomia dell'utente. KDE incoraggia le applicazioni a integrarsi e interagire, è altamente personalizzabile e contiene molte funzionalità complesse, il tutto mentre cerca di stabilire valori predefiniti ragionevoli. GNOME d'altra parte è più prescrittivo e si concentra sui dettagli più fini dei compiti essenziali e sulla semplificazione generale. Di conseguenza, ognuno attrae una comunità di utenti e sviluppatori diversa. Tecnicamente, ci sono numerose tecnologie comuni a tutti gli ambienti desktop simili a Unix, la maggior parte ovviamente X Window. Di conseguenza, il progetto freedesktop.org è stato istituito come una zona di collaborazione informale con l'obiettivo di ridurre la duplicazione degli sforzi.
Poiché GNOME e KDE si concentrano su computer ad alte prestazioni, gli utenti di computer meno potenti o meno recenti spesso preferiscono ambienti desktop alternativi creati appositamente per sistemi a basse prestazioni. Gli ambienti desktop leggeri più comunemente usati includono LXDE e Xfce; entrambi usano GTK +, che è lo stesso toolkit sottostante utilizzato da GNOME. L'ambiente desktop MATE, un fork di GNOME 2, è paragonabile a Xfce nel suo utilizzo di RAM e cicli del processore, ma è spesso considerato più come un'alternativa ad altri ambienti desktop leggeri. Per un certo periodo di tempo, GNOME e KDE hanno goduto dello status dei più popolari ambienti desktop Linux; in seguito, altri ambienti desktop crebbero in popolarità. Nell'aprile 2011, GNOME ha introdotto un nuovo concetto di interfaccia con la sua versione 3, mentre una popolare distribuzione Linux Ubuntu ha introdotto il proprio nuovo ambiente desktop, Unity. Alcuni utenti hanno preferito mantenere il tradizionale concetto di interfaccia di GNOME 2, risultando nella creazione di MATE come fork di GNOME 2.
Inoltre, alcuni gestori di finestre, come IceWM, Fluxbox, Openbox, OroboROX, Window Maker contengono elementi dell'ambiente desktop relativamente scarsi, come un file manager spaziale integrato, mentre altri come evilwm e wmii non forniscono tali elementi. Non tutto il codice del programma che fa parte di un ambiente desktop ha effetti che sono direttamente visibili all'utente. Alcuni potrebbero essere codici di basso livello. KDE, ad esempio, fornisce i cosiddetti slave KIO che danno all'utente l'accesso a un'ampia gamma di dispositivi virtuali. Questi slave I / O non sono disponibili al di fuori dell'ambiente KDE.

## Software più diffusi

Esempi di ambienti desktop tra i più diffusi e tipici dei sistemi GNU/Linux e Unix-like:
* KDE
* GNOME
* Xfce
* Unity
* Cinnamon
* MATE
* LXQT
* LXDE
* Enlightenment
* JWM
* Budgie
* Trinity Desktop Environment
* arm0nia
* Common Desktop Environment
* Equinox Desktop Environment
* GEM
* IRIX Interactive Desktop
* Lumina
* Mezzo
* Pantheon ambiente desktop di Elementary OS
* PerlTop
* Project Looking Glass
* Razor-qt
* ROX Desktop
* Sugar
* EDE
* Xito
* XPde
* Deepin Desktop Environment
Per Windows XP:
* GreenGnome

## Galleria d'immagini

* Ambient
* Budgie
* CDE
* Cinnamon
* Deepin DE
* EDE
* Elokab
* Enlightenment
* Étoilé
* GNOME Shell
* GNUstep
* Innova
* KDE Plasma 5
* Liri Shell
* Lumina
* LXDE
* LXQt
* MATE
* MaXX
* Maynard
* Mezzo
* Moksha
* Pantheon
* Project Looking Glass
* Razor-qt
* ROX Desktop
* SwayWM
* Sugar
* theShell
* Trinity
* twm
* Unity
* Vera
* Window Maker
* Weston
* Xfce