GNOME (GNU Network Object Model Environment) è un ambiente desktop Free e open source per Linux e altri sistemi operativi Unix-like nato nel 1997 con l'obiettivo di fornire sia un ambiente desktop che un ambiente di sviluppo libero per i sistemi operativi basati su Linux. Gli ideatori sono stati i programmatori messicani Miguel de Icaza e Federico Mena e attualmente è sviluppato dalla comunità del Progetto GNOME.
Storia
Prima della nascita di GNOME, l'unica alternativa sufficientemente completa era KDE, il quale però 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 basava, le Qt, non erano ancora state distribuite con una licenza libera (in seguito sono state distribuite sotto licenza GNU GPL e LGPL).
La prima versione di GNOME, la 1.0 per la quale occorsero due anni, fu distribuita il 3 marzo 1999 insieme al toolkit GTK+ e GIMP. La versione 2.0, la versione più apprezzata del progetto, risale al 26 luglio 2002 e propose sedici release, terminando con la 2.32, fino alla nascita di GNOME 3.0 nel 2011. La versione 3.0 del desktop environment venne ufficialmente annunciata nel corso dell'edizione 2008 di GUADEC, tenutasi a Istanbul nel mese di luglio. La pubblicazione però, inizialmente programmata per settembre 2010, fu posticipata a marzo 2011, in sostituzione della versione 2.32 del ramo precedente. L'uscita ufficiale è infine avvenuta il 6 aprile 2011. Anche se il desktop da tale ultima versione è stato oggetto di un'importante revisione, le modifiche previste finora sono per lo più di tipo incrementale.
Descrizione
Il progetto GNOME fornisce due cose: Lambiente desktop di GNOME: un'interfaccia utente grafica intuitiva; La piattaforma di sviluppo di GNOME: un ampio framework per costruire applicazioni che si integrino con il resto dell'interfaccia utente desktop e mobile.
Il progetto GNOME pone molta enfasi sulla libertà, sulla facilità d'uso, sull'usabilità, e sul fare le cose "semplici" (vedi il principio KISS).
Gli obiettivi del progetto sono: Libertà: GNOME è software libero e fa parte del Progetto GNU; il codice sorgente è distribuito con una licenza di software libero (GNU GPL) ed è quindi disponibile per il riutilizzo. Usabilità: ovvero creazione di software facile da usare per chiunque; gli esperti di usabilità della comunità di GNOME hanno creato le Human Interface Guidelines del software libero, e tutti i software di base di GNOME adottano di questi principi. Accessibilità: al fine di garantire che l'ambiente desktop possa essere utilizzato da chiunque, indipendentemente dalle abilità tecniche o dal grado di disabilità. Internazionalizzazione e localizzazione: GNOME è usato, sviluppato e ha documentazione in molte lingue; al momento GNOME è tradotto in 183 lingue. Facilità di sviluppo (Developer-friendliness): garantire agli sviluppatori facilità di scrittura di software e la libera scelta del linguaggio di programmazione da usare per la realizzazione di applicazioni che si integrano facilmente con il resto del desktop; è possibile usare C, C++, Python, Perl, Java e C#. Organizzazione: GNOME mantiene una comunità organizzata con una base di parecchie centinaia di membri, team di usabilità, accessibilità e QA e un consiglio eletto; adotta un ciclo di rilascio regolare semestrale. Supporto: Al di là della comunità mondiale, GNOME è sostenuto da aziende leader in GNU/Linux e Unix tra cui Canonical, IBM, Intel, Red Hat, SUSE e Igalia.
Come con la maggior parte dei progetti di software libero, il progetto GNOME è gestito liberamente: le discussioni si verificano principalmente su una serie di mailing list pubbliche. Gli sviluppatori e gli utenti di GNOME si riuniscono in una riunione annuale conosciuta come GUADEC per discutere lo stato attuale del progetto e gli sviluppi futuri.
Caratteristiche
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, Vala, Rust e, naturalmente, C. Attualmente il progetto Cygwin Ports sta tentando di effettuare la portabilità sul sistema operativo Microsoft Windows appoggiandosi sul sistema cygwin.
L'uso di GTK+ permette a GNOME di sfruttare alcune sue caratteristiche: gestione dei temi (possibilità di cambiare look and feel al volo), grafica anti-aliased (grazie a Cairo) e la possibilità di portare le applicazioni su diverse piattaforme, quali Windows e Mac OS X (come Gimp ed Inkscape).
Componenti
GNOME è costituito da molti elementi. Alcuni di essi sono: GNOME Display Manager - programma per il login nell'ambiente desktop; GNOME Shell — l'interfaccia utente di GNOME 3; ATK — libreria per l'accessibilità; Bonobo — una tecnologia per gestire documenti (deprecato); dconf — sistema di gestione della configurazione delle applicazioni (sostituisce GConf); GLib — funzioni per la programmazione in C; GObject — un framework per la programmazione orientata agli oggetti in C; GVFS — file system virtuale per la gestione di SFTP, FTP, WebDAV, SMB, ecc GNOME Keyring — gestione di chiavi per la crittografia; GNOME Panel — un pannello con funzioni di barra delle applicazioni e di lanciatore (deprecato a partire da GNOME 3); GNOME Print — sistema di stampa; GNOME Translation Project — per la traduzione della documentazione e delle applicazioni in varie lingue; GTK — un toolkit per la creazione di interfacce grafiche che supporta nativamente l'ambiente grafico X Window System e Wayland; Human Interface Guidelines — linee guida per la creazione di applicazioni GNOME facili da usare; LibXML — libreria XML; Mutter — il window manager predefinito del progetto (ha sostituito Metacity a partire da GNOME 3); Pango — libreria per disegnare il testo sullo schermo in diverse lingue.
Le estensioni
A partire dalla versione 3.0 (2011) sono disponibili le estensioni che consentono di personalizzare GNOME Shell nonché l'ambiente desktop, aggiungendo nuove funzionalità e strumenti utili; esse possono essere gestite tramite GNOME Tweaks e possono essere scaricate e installate nel sito web ufficiale dedicato.
Infatti, se si usa GNOME sulla propria distribuzione GNU / Linux, oltre a ciò che consente l'ambiente desktop di base, si possono aggiungere funzionalità installando estensioni per questo desktop, personalizzandolo. Con loro, nuove funzioni appaiono nell'interfaccia grafica e possono essere più pratiche per il lavoro quotidiano, semplificando in molte occasioni le operazioni che si fanno quotidianamente. In modo che se ne conoscano alcune delle più pratiche, si aggiunge qui una lista semplificata:
ImageMagick, Timer Podomoro, Progetto Hamster, Caffeina, Aggiorna le connessioni WiFi, Screencast facile, OpenWeather, Gestore degli appunti, Angoli caldi personalizzati, Sfondo casuale, Scatta per attraccare, Temi degli utenti.
Applicazioni e sviluppi
GNOME Core Applications La seguente lista include le applicazioni considerate essenziali per il desktop GNOME, caratterizzate da un design uniforme e da un’integrazione diretta con le API della piattaforma. Alcune di esse sono state sviluppate ex novo, mentre altre sono state oggetto di un processo di redesign.
Sul sistema operativo tali applicazioni apperiranno con nomi comuni come "Visualizzatore d'immagini" al posto di Loupe, questo per rendere più immediata la comprensione della funzione dell’applicazione.
Settings — gestore delle impostazioni; Contacts — gestore dei contatti; Simple Scan — strumento per la scansione di documenti; Loupe — visualizzatore d'immagini (ha sostituito Eye of Gnome); Papers — lettore di documenti Portable Document Format (PDF) e PostScript (ha sostituito Evince); GNOME Files (ex Nautilus) — un file manager utilizzabile anche come client FTP; Decibels — un semplice riproduttore di file audio; Showtime — un semplice riproduttore video (ha sostituito Totem aka GNOME Videos); Connections — uno strumenti per gestire i desktop remoti, Disks — un'utilità per formattare e gestire partizioni; Disk Usage Analyzer (Baobab) — un analizzatore grafico di uso del disco, Extensions — un gestore delle estensione per GNOME Shell; Fonts — un visualizzatore di tipi di carattere; Logs — un visualizzatore di log di sistema; Yelp — un navigatore della documentazione software; Software — un'utilità per l'installazione, aggiornamento e rimozione di applicazioni; System Monitor — un'utilità per visualizzare i processi attivi e le risorse del compurer utilizzate; Terminal — un emulatore di terminale; GNOME Web (ex Epiphany) — un web browser; GNOME Clocks — visualizzazione orari, timer e allarmi; GNOME Maps — visualizzatore di mappe; Weather — visualizzazione di previsioni meteo; Calculator — una calcolatrice; Calendar — un calendario, Characters — selettore di simboli e emoji, Snapshot — un programma per scattare foto e riprendere video (ha sostituito Cheese); GNOME Tour — un programma per illustrare le caratteristiche di GNOME al primo accesso; Text Editor — un editor di testo (ha sostituito Gedit); Boxes — un gestore di macchine virtuali; GNOME Builder — un ambiente di sviluppo integrato; D-Spy — uno strumento per il debug di D-Bus; Dconf Editor — uno strumento per visualizzare e modificare le configurazioni delle applicazioni; Devhelp — un navigatore della documentazione delle API delle librerie software; Sysproof — uno strumento per la profilazione delle applicazione
Altre applicazioni La seguente lista include applicazioni che utilizzano tecnologie del progetto GNOME e che sono spesso incluse in un desktop GNOME: AbiWord — un programma di videoscrittura; Alexandria — programma per la gestione di biblioteche; Banshee — un programma per riproduzione di file multimediali; Brasero — un programma per masterizzare su CD e DVD; Dia — programma per la creazione di grafici; Ekiga — un programma per la telefonia e il voice over IP; Evolution — un gestore avanzato della posta elettronica, rubrica e impegni; GNOME Activity Journal — GUI che si appoggia a Zeitgeist per l'acquisizione dei dati di log delle attività; GNOME Archive Manager (ex File Roller) — un front-end per la gestione di file compressi; GIMP — un programma per modificare o creare immagini; GNOME Dictionary — un dizionario software GNOME Screenshot — strumento per catturare screenshot (funzionalità integrata in GNOME Shell 42) Gnumeric — un foglio elettronico; Glade — un designer di interfacce GTK+ (GUI Builder); Glom — un front end database RAD, basato su PostgreSQL, per la creazione di database in un unico file, come FileMaker Pro; Inkscape — una applicazione per il disegno vettoriale; Mono — un ambiente di sviluppo basato su Microsoft .NET Framework; Orca — una suite assistiva ai non vedenti/ipovedenti comprendente ingranditori schermo, sintesi vocale, barra Braille... Pidgin — un programma di messaggistica istantanea; Pitivi — editor video; Rhythmbox — un gestore di musica simile a iTunes; Scacchi – interfaccia per giocare a scacchi Screem — un editor HTML/CSS/PHP; Sushi – permette la visione dell'anteprima dei file in Nautilus; Tomboy — uno strumento per appunti per il Desktop;
Nelle distribuzioni GNU/Linux Attualmente GNOME (con la sua interfaccia GNOME Shell) è l'ambiente grafico predefinito di molte distribuzioni GNU/Linux, tra le quali Debian e Fedora