-->

Gimp, prima release della nuova versione 2.6

Modifiche/Changes:
[rev2] eliminazione della cartella gtk-2.0 da %AppData% -Link-
[rev3] eliminazione delle lingue supplementari avviando il programma con l'INI principale
[rev4] a partire dalla versione 2.4.0, le librerie GTK sono integrate nel programma, pertanto in questa versione non sono incluse all'interno della directory \Lib\GTK poichè non necessarie.
[rev5] errore nel caricamento di alcuni componenti del programma -Link- -Link-
[rev6] diversa disposizione delle localizzazioni (in \Bin\Gimp\share\locale) e relativa modifica del file .ini

[rev7] le miniature vengono salvate in una cartella temporanea (%TEMP%\.thumbnails) e di conseguenza non vengono visualizzati i file aperti di recente al successivo riavvio del programma; rimangono tracce in %USERPROFILE% (file .recently-used.xbel) e in %APPDATA% (cartella gtk-2.0) -Link-
[rev8] aggiunto supporto ai file recenti (nota: i file devono essere salvati in \Bin\Gimp, \User\Gimp o Documents\Gimp), eliminazione delle lingue supplementari dell'Help (se installato) utilizzando l'.ini principale italiano -Link-
[rev9] corretto bug file recenti
[rev10] modifiche effettuate in base alla nuova release di The Gimp

Overview of Changes from GIMP 2.6.0 to GIMP 2.6.1

* Bugs fixed:

555587 – PSD file crashes PSD plug-in
555222 – PSD Load Plugin: unsupported compression mode
555362 – gimp-remote is not working properly
555280 – some gif files will not be open
554890 – JPEG Save Options Dialog does not remember
554966 – Gimp crashes creating a new image using a template
554785 – Compile failure on uri-backend-libcurl
554646 – Opening Help crashes GIMP with lqr-plugin installed
553534 – centering issues after image scaling and setting zoom
554898 – Compile failure on uri-backend-wget.c

* Updated translations:

Belarusian (be)
Catalan (ca)
Finnish (fi)
French (fr)
Japanese (ja)
Macedonian (mk)
Punjab (pa)
Brazilian Portuguese (pt_BR)
Romanian (ro)
Slovenian (sl)
Swedish (sv)


FTP and Web Mirrors
Australia
ftp://ftp.planetmirror.com/pub/gimp/
http://ftp.planetmirror.com/pub/gimp/ (web access)
ftp://mirrors.wamug.org.au/gimp/ (WAIX only)
http://mirrors.wamug.org.au/gimp/ (web access, WAIX only)
Austria
ftp://gd.tuwien.ac.at/graphics/gimp/
Finland
ftp://ftp.funet.fi/pub/sci/graphics/packages/gimp/
France
http://ftp.iut-bm.univ-fcomte.fr/gimp/gimp/ (web access)
http://gimp.krecio.pl/gimp/ (web access)
Germany
ftp://ftp.gwdg.de/pub/misc/grafik/gimp/
http://ftp.gwdg.de/pub/misc/grafik/gimp/ (web access)
rsync://ftp.gwdg.de/pub/misc/grafik/gimp/ (rsync access)
http://mirrors.zerg.biz/gimp/ (web access)
Ireland
ftp://ftp.esat.net/mirrors/ftp.gimp.org/pub/gimp/
http://ftp.esat.net/mirrors/ftp.gimp.org/pub/gimp/ (web access)
rsync://ftp.esat.net/mirrors/ftp.gimp.org/pub (rsync access)
ftp://ftp.heanet.ie/mirrors/ftp.gimp.org/pub/gimp/gimp/
http://ftp.heanet.ie/mirrors/ftp.gimp.org/pub/gimp/gimp/ (web access)
rsync://ftp.heanet.ie/mirrors/ftp.gimp.org/pub/gimp/gimp/ (rsync access)
Japan
ftp://SunSITE.sut.ac.jp/pub/archives/packages/gimp/
ftp://ftp.u-aizu.ac.jp/pub/graphics/tools/gimp/
ftp://ftp.ring.gr.jp/pub/graphics/gimp/
http://www.ring.gr.jp/pub/graphics/gimp/ (web access)
Korea
ftp://ftp.kreonet.re.kr/pub/tools/X11/ftp.gimp.org/
Netherlands
ftp://ftp.snt.utwente.nl/pub/software/gimp/gimp/
http://ftp.snt.utwente.nl/pub/software/gimp/gimp/ (web access)
Norway
ftp://sunsite.uio.no/pub/gimp/
Poland
ftp://ftp.tuniv.szczecin.pl/pub/Linux/gimp/
ftp://sunsite.icm.edu.pl/pub/graphics/gimp/
ftp://ftp.piotrkosoft.net/pub/mirrors/ftp.gimp.org
http://piotrkosoft.net/pub/mirrors/ftp.gimp.org (web access)
rsync://piotrkosoft.net/mirrors/ftp.gimp.org (rsync access)
Romania
ftp://ftp.kappa.ro/pub/mirrors/ftp.gimp.org/
ftp://ftp.iasi.roedu.net/pub/mirrors/ftp.gimp.org/
http://ftp.iasi.roedu.net/mirrors/ftp.gimp.org/ (web access)
Russia
ftp://ftp.sai.msu.su/pub/unix/graphics/gimp/mirror/
http://gimp.tsuren.net/mirror/gimp/ (web access)
South Africa
ftp://ftp.is.co.za/mirror/ftp.gimp.org/gimp/
Spain
http://sunsite.rediris.es/mirror/gimp/ (web access)
ftp://ftp.rediris.es/mirror/gimp/
Sweden
ftp://ftp.acc.umu.se/pub/gimp/
ftp://ftp.sunet.se/pub/gnu/gimp/
http://ftp.sunet.se/pub/gnu/gimp/ (web access)
United Kingdom
ftp://ftp.flirble.org/pub/X/gimp/gimp/
ftp://ftp.mirrorservice.org/sites/ftp.gimp.org/pub/gimp/
http://www.mirrorservice.org/sites/ftp.gimp.org/pub/gimp/ (web access)
rsync://rsync.mirrorservice.org/ftp.gimp.org/pub/gimp/ (rsync access)
United States
ftp://ftp.cs.umn.edu/pub/gimp/
http://gimp.mirrors.hoobly.com/gimp/ (web access)
http://gimp.site2nd.org/ (web access)
http://mirror.umoss.org/gimp/ (web access)
rsync://mirror.umoss.org/gimp/ (rsync access)

Ultimi post pubblicati


160x600_kingolotto_auto.gif

Vacanze    TUI.it

Universo Linux




Gimp, nuova libreria GEGL per la gestione delle immagini

Continua l'evoluzione di uno dei migliori editor grafici open source, infatti dopo le numerose richieste degli utenti GIMP ha rilasciato un importante aggiornamento, si tratta di GIMP 2.6 , ultima versione che include una serie di modifiche per l'interfaccia utente ,gli strumenti e plugin ,miglioramenti importanti per un software che era già il mio preferito per quano riguarda la grafica free e ora lo sarà ancor di più .


Il programma per l’editing di immagini e per il fotoritocco, infatti, integra - con il rilascio, appena avvenuto, della versione 2.6 - la nuova libreria GEGL (Generic Graphics Library) per la gestione delle immagini che utilizza 32 bit anziché 8 bit come invece accadeva sinora.

GEGL non è abilitata in modo predefinito: per il momento Gimp continuerà ad utilizzare di default le solite librerie. L’utente è comunque libero di attivare GEGL servendosi del menù Colors, Use GEGL del programma.

GEGL (Generic Graphics Library) is a graph based image processing framework.

GEGL provides infrastructure to do demand based cached non destructive image editing on larger than RAM buffers. Through babl it provides support for a wide range of color models and pixel storage formats for input and output.

Features

* Floating point handling and processing and output of larger 8bit, 16bit integer and 32bit floating point per component buffers larger than RAM.
* C, vala, C#, http:// Python and Ruby interfaces using a consistent DOM like graph API to manage processing graphs.
* Processing
o Iterative chunk-wise processing.
o Processes subregions and dependencies.
o Subgraph caches to aid performance of non-destructive editing.
* GeglBuffer
o Storage of all babl supported formats.
o Tiled sparse buffers (larger than RAM images).
o linear buffers (allocated internally or from external allocation.)
o On demand tiled mipmapping.
o inter process shared storage
* Operations
o PNG, JPEG, SVG, EXR, RAW, ffmpeg, v4l and other image sources.
o Pattern renderers
o Arithmetic operations
o link_operations.html#porter_duff[porter duff compositing]
o SVG filter modes and full set of compositing ops from SVG-1.2 draft.
o Gaussian blur, bilateral-filter, symmetric nearest neighbour, unsharp mask.
o Color correction.
o Text rendering using cairo and pango.
o Most operations operate in scRGB (using 32bit linear light RGBA)
* Bounding box based hit detection.
* XML serialization format (not-finalized)

This gallery shows samples of GEGL output it is used to both document current capabilities, and help spot regressions.

clones
OpenRaster-00
OpenRaster-01

OpenRaster-04










Ultimi post pubblicati


160x600_kingolotto_auto.gif

Vacanze    TUI.it

Universo Linux

Filosofia Open Source, seconda parte

Il permesso d’autore (copyleft) e la GNU GPL
“Lo scopo di GNU consisteva nell’offrire libertà agli utenti, non solo nell’ottenere ampia diffusio-
ne. Avevamo quindi bisogno di termini di distribuzione che evitassero che il software GNU fosse
trasformato in software proprietario. Il metodo che usammo si chiama “permesso d’autore”.

Il permesso d’autore (copyleft)5. usa le leggi sul diritto d’autore (copyright), ma le capovolge
per ottenere lo scopo opposto: invece che un metodo per privatizzare il software, diventa infatti un mezzo per mantenerlo libero.

Il succo dell’idea di permesso d’autore consiste nel dare a chiunque il permesso di eseguire il programma, copiare il programma, modificare il programma, e distribuirne versioni modificate, ma senza dare il permesso di aggiungere restrizioni. In tal modo, le libertà essenziali che definiscono il “free software” (software libero) sono garantite a chiunque ne abbia una copia, e diventano diritti inalienabili.

Perché un permesso d’autore sia efficace, anche le versioni modificate devono essere libere. Ciò
assicura che ogni lavoro basato sul nostro sia reso disponibile per la nostra comunità, se pubblicato.
Quando dei programmatori professionisti lavorano su software GNU come volontari, è il permesso d’autore che impedisce ai loro datori di lavoro di dire: “non puoi distribuire quei cambiamenti, perché abbiamo intenzione di usarli per creare la nostra versione proprietaria del programma”.

La clausola che i cambiamenti debbano essere liberi è essenziale se vogliamo garantire libertà a
tutti gli utenti del programma. Le aziende che privatizzarono l’X Window System di solito avevano apportato qualche modifica per portare il programma sui loro sistemi e sulle loro macchine. Si trattava di modifiche piccole rispetto alla mole di X, ma non banali. Se apportare modifiche fosse una scusa per negare libertà agli utenti, sarebbe facile per chiunque approfittare di questa scusa.

Una problematica correlata è quella della combinazione di un programma libero con codice
non libero. Una tale combinazione sarebbe inevitabilmente non libera; ogni libertà che manchi dalla parte non libera mancherebbe anche dall’intero programma. Permettere tali combinazioni aprirebbe non uno spiraglio, ma un buco grosso come una casa. Quindi un requisito essenziale per il permesso d’autore è tappare il buco: tutto ciò che venga aggiunto o combinato con un programma protetto da permesso d’autore dev’essere tale che il programma risultante sia anch’esso libero e protetto da permesso d’autore.

La specifica implementazione di permesso d’autore che utilizziamo per la maggior parte del
software GNU è la GNU General Public License (licenza pubblica generica GNU), abbreviata in
GNU GPL. Abbiamo altri tipi di permesso d’autore che sono utilizzati in circostanze specifiche. I
manuali GNU sono anch’essi protetti da permesso d’autore, ma ne usano una versione molto più
semplice, perché per i manuali non è necessaria la complessità della GPL.”

La Free Software Foundation
“Man mano che l’interesse per Emacs aumentava, altre persone parteciparono al progetto GNU, e decidemmo che era di nuovo ora di cercare finanziamenti. Così nel 1985 fondammo la Free Software Foundation (Fondazione per il software libero), una organizzazione senza fini di lucro per lo sviluppo di software libero. La FSF fra l’altro si prese carico della distribuzione dei nastri di Emacs; più tardi estese l’attività aggiungendo sul nastro altro software libero (sia GNU che non GNU) e vendendo manuali liberi.

La FSF accetta donazioni, ma gran parte delle sue entrate è sempre stata costituita dalle vendite:
copie di software libero e servizi correlati. Oggi vende CD-ROM di codice sorgente, CD-ROM di
programmi compilati, manuali stampati professionalmente (tutti con libertà di ridistribuzione e modifica), e distribuzioni Deluxe (nelle quali compiliamo l’intera scelta di software per una piattaforma a richiesta).

I dipendenti della Free Software Foundation hanno scritto e curato la manutenzione di diversi
pacchetti GNU. Fra questi spiccano la libreria C e la shell. La libreria C di GNU è utilizzata da
ogni programma che gira su sistemi GNU/Linux per comunicare con Linux. È stata sviluppata da
un membro della squadra della Free Software Foundation, Roland McGrath. La shell usata sulla
maggior parte dei sistemi GNU/Linux è Bash, la Bourne Again Shell67 , che è stata sviluppata da
Brian Fox, dipendente della FSF.

Finanziammo lo sviluppo di questi programmi perché il progetto GNU non riguardava so-
lo strumenti di lavoro o un ambiente di sviluppo: il nostro obiettivo era un sistema operativo
completo, e questi programmi erano necessari per raggiungere quell’obiettivo.”
Il supporto per il software libero “La filosofia del software libero rigetta una diffusa pratica commerciale in particolare, ma non è contro il commercio. Quando un’impresa rispetta la libertà dell’utente, c’è da augurarle ogni successo.

La vendita di copie di Emacs esemplifica un modo di condurre affari col software libero. Quando
la FSF prese in carico quest’attività, dovetti trovare un’altra fonte di sostentamento. La trovai nella vendita di servizi relativi al software libero che avevo sviluppato, come insegnare argomenti quali programmazione di Emacs e personalizzazione di GCC, oppure sviluppare software, soprattutto adattamento di GCC a nuove architetture.

Oggi tutte queste attività collegate al software libero sono esercitate da svariate aziende. Alcune
distribuiscono raccolte di software libero su CD-ROM, altre offrono consulenza a diversi livelli,
dall’aiutare gli utenti in difficoltà, alla correzione di errori, all’aggiunta di funzionalità non banali.
Si cominciano anche a vedere aziende di software che si fondano sul lancio di nuovi programmi
liberi.

Attenzione, però: diverse aziende che si fregiano del marchio “open source” (software aperto)
in realtà fondano le loro attività su software non libero che funziona insieme con software libero.
Queste non sono aziende di software libero, sono aziende di software proprietario i cui prodotti
attirano gli utenti lontano dalla libertà. Loro li chiamano “a valore aggiunto”, il che ri ette i valori
che a loro farebbe comodo che adottassimo: la convenienza prima della libertà. Se noi riteniamo
che la libertà abbia più valore, li dovremmo chiamare prodotti “a libertà sottratta”.

Obiettivi tecnici
“L’obiettivo principale di GNU era essere software libero. Anche se GNU non avesse avuto al-
cun vantaggio tecnico su Unix, avrebbe avuto sia un vantaggio sociale, permettendo agli utenti di
cooperare, sia un vantaggio etico, rispettando la loro libertà.

Tuttavia risultò naturale applicare al lavoro le regole classiche di buona programmazione; per
esempio, allocare le strutture dati dinamicamente per evitare limitazioni arbitrarie sulla dimensione dei dati, o gestire tutti i possibili codici a 8 bit in tutti i casi ragionevoli.
Inoltre, al contrario di Unix che era pensato per piccole dimensioni di memoria, decidemmo di
non supportare le macchine a 16 bit (era chiaro che le macchine a 32 bit sarebbero state la norma quando il sistema GNU sarebbe stato completo), e di non preoccuparci di ridurre l’occupazione di memoria a meno che eccedesse il megabyte. In programmi per i quali non era essenziale la gestione di file molto grandi, spingemmo i programmatori a leggere in memoria l’intero file di ingresso per poi analizzare il file senza doversi preoccupare delle operazioni di I/O.
Queste decisioni fecero sì che molti programmi GNU superassero i loro equivalenti Unix sia in
affidabilità che in velocità di esecuzione.”
Donazioni di computer
“Man mano che la reputazione del progetto GNU andava crescendo, alcune persone iniziarono a
donare macchine su cui girava Unix. Queste macchine erano molto utili, perché il modo più sempli-
ce di sviluppare componenti per GNU era di farlo su di un sistema Unix così da sostituire pezzo per pezzo i componenti di quel sistema. Ma queste macchine sollevavano anche una questione etica: se fosse giusto per noi anche solo possedere una copia di Unix.

Unix era (ed è) software proprietario, e la filosofia del progetto GNU diceva che non avremmo
dovuto usare software proprietario. Ma, applicando lo stesso ragionamento per cui la violenza è
ammessa per autodifesa, conclusi che fosse legittimo usare un pacchetto proprietario, se ciò fosse
stato importante nel crearne un sostituto libero che permettesse ad altri di smettere di usare quello proprietario.

Tuttavia, benché fosse un male giustificabile, era pur sempre un male. Oggi non abbiamo più
alcuna copia di Unix, perché le abbiamo sostituite con sistemi operativi liberi. Quando non fu
possibile sostituire il sistema operativo di una macchina con uno libero, sostituimmo la macchina.”

L’elenco dei compiti GNU
“Mentre il progetto GNU avanzava, e un numero sempre maggiore di componenti di sistema ve-
nivano trovati o sviluppati, diventò utile stilare un elenco delle parti ancora mancanti. Usammo
questo elenco per ingaggiare programmatori che scrivessero tali parti, e l’elenco prese il nome di
elenco dei compiti GNU. In aggiunta ai componenti Unix mancanti inserimmo nell’elenco svariati
progetti utili di programmazione o di documentazione che a nostro parere non dovrebbero mancare in un sistema operativo veramente completo.

Oggi non compare quasi nessun componente Unix nell’elenco dei compiti GNU; tutti questi
lavori, a parte qualcuno non essenziale, sono già stati svolti. D’altro canto l’elenco è pieno di quei
progetti che qualcuno chiamerebbe “applicazioni”: ogni programma che interessi a una fetta non
trascurabile di utenti sarebbe un’utile aggiunta a un sistema operativo.

L’elenco comprende anche dei giochi, e così è stato fin dall’inizio: Unix comprendeva dei giochi,
perciò era naturale che così fosse anche per GNU. Ma poiché non c’erano esigenze di compatibilità per i giochi, non ci attenemmo alla scelta di giochi presenti in Unix, preferendo piuttosto fornire un elenco di diversi tipi di giochi potenzialmente graditi agli utenti.”
La licenza GNU per le librerie “La libreria C del sistema GNU utilizza un tipo speciale di permesso d’autore, la “Licenza Pubblica GNU per le Librerie”8, che permette l’uso della libreria da parte di software proprietario. Perché quest’eccezione?

Non si tratta di questioni di principio: non c’è nessun principio che dica che i prodotti software
proprietari abbiano il diritto di includere il nostro codice (perché contribuire a un progetto fondato sul rifiuto di condividere con noi?). L’uso della licenza LGPL per la libreria C, o per qualsiasi altra libreria, è una questione di strategia.

La libreria C svolge una funzione generica: ogni sistema operativo proprietario e ogni com-
pilatore includono una libreria C. Di conseguenza, rendere disponibile la nostra libreria C solo
per i programmi liberi non avrebbe dato nessun vantaggio a tali programmi liberi, avrebbe solo
disincentivato l’uso della nostra libreria.

C’è un’eccezione a questa situazione: sul sistema GNU (termine che include GNU/Linux) l’u-
nica libreria C disponibile è quella GNU. Quindi i termini di distribuzione della nostra libreria C
determinano se sia possibile o meno compilare un programma proprietario per il sistema GNU.
Non ci sono ragioni etiche per permettere l’uso di applicazioni proprietarie sul sistema GNU, ma
strategicamente sembra che impedirne l’uso servirebbe più a scoraggiare l’uso del sistema GNU che non a incoraggiare lo sviluppo di applicazioni libere.
Ecco perché l’uso della licenza LGPL è una buona scelta strategica per la libreria C, mentre per
le altre librerie la strategia va valutata caso per caso. Quando una libreria svolge una funzione
particolare che può aiutare a scrivere certi tipi di programmi, distribuirla secondo la GPL, quindi
limitandone l’uso ai soli programmi liberi, è un modo per aiutare gli altri autori di software libero,
dando loro un vantaggio nei confronti del software proprietario.

Prendiamo come esempio GNU-Readline, una libreria scritta per fornire a Bash la modificabilità
della linea di comando: Readline è distribuita secondo la normale licenza GPL, non la LGPL. Ciò
probabilmente riduce l’uso di Readline, ma questo non rappresenta una perdita per noi; d’altra
parte almeno una applicazione utile è stata resa software libero proprio al fine di usare Readline, e questo è un guadagno tangibile per la comunità.

Chi sviluppa software proprietario ha vantaggi economici, gli autori di programmi liberi han-
no bisogno di avvantaggiarsi a vicenda. Spero che un giorno possiamo avere una grande raccolta
di librerie coperte dalla licenza GPL senza che esista una raccolta equivalente per chi scrive soft-
ware proprietario. Tale libreria fornirebbe utili moduli da usare come i mattoni per costruire nuovi programmi liberi, e costituendo un sostanziale vantaggio per la scrittura di ulteriori programmi liberi.”

Togliersi il prurito?
“Eric Raymond afferma che ogni buon programma nasce dall’iniziativa di un programmatore che
si vuole togliere un suo personale prurito¨. È probabile che talvolta succeda così, ma molte parti
essenziali del software GNU sono state sviluppate al fine di completare un sistema operativo libero.

Derivano quindi da una idea e da un progetto, non da una necessità contingente.
Ad esempio, abbiamo sviluppato la libreria C di GNU perché un sistema di tipo Unix ha bisogno
di una libreria C, la Bourne-Again Shell (bash) perché un sistema di tipo Unix ha bisogno di una
shell, e GNU tar perché un sistema di tipo Unix ha bisogno di un programma tar 9. Lo stesso vale
per i miei programmi: il compilatore GNU, GNU Emacs, GDB, GNU Make.

Alcuni programmi GNU sono stati sviluppati per fronteggiare specifiche minacce alla nostra
libertà: ecco perché abbiamo sviluppato gzip come sostituto per il programma Compress, che la
comunità aveva perduto a causa dei brevetti sull’algoritmo LZW. Abbiamo trovato persone che
sviluppassero LessTif, e più recentemente abbiamo dato vita ai progetti GNOME e Harmony per
affrontare i problemi causati da alcune librerie proprietarie (come descritto più avanti).

Stiamo sviluppando la GNU Privacy Guard per sostituire i diffusi programmi di crittografia non
liberi, perché gli utenti non siano costretti a scegliere tra riservatezza e libertà.
Naturalmente, i redattori di questi programmi sono coinvolti nel loro lavoro, e varie persone vi
hanno aggiunto diverse funzionalità secondo le loro personali necessità e i loro interessi. Tuttavia
non è questa la ragione dell’esistenza di tali programmi.”

Sviluppi inattesi
“All’inizio del progetto GNU pensavo che avremmo sviluppato l’intero sistema GNU e poi lo
avremmo reso disponibile tutto insieme, ma le cose non andarono così.
Poiché i componenti del sistema GNU sono stati implementati su un sistema Unix, ognuno di
essi poteva girare su sistemi Unix molto prima che esistesse un sistema GNU completo. Alcuni di
questi programmi divennero diffusi e gli utenti iniziarono a estenderli e a renderli utilizzabili su
nuovi sistemi: sulle varie versioni di Unix, incompatibili tra loro, e talvolta anche su altri sistemi.

Questo processo rese tali programmi molto più potenti e attirò finanziamenti e collaboratori al
progetto GNU; tuttavia probabilmente ritardò di alcuni anni la realizzazione di un sistema minimo funzionante, perché il tempo degli autori GNU veniva impiegato a curare la compatibilità di questi programmi con altri sistemi e ad aggiungere nuove funzionalità ai componenti esistenti, piuttosto che a proseguire nella scrittura di nuovi componenti.”
GNU-Hurd
“Nel 1990 il sistema GNU era quasi completo, l’unica parte significativa ancora mancante era il
kernel. Avevamo deciso di implementare il nostro kernel come un gruppo di processi server che
girassero sul sistema Mach. Mach è un microkernel sviluppato alla Carnegie Mellon University e
successivamente all’Università dello Utah; GNU Hurd è un gruppo di server (o “herd of gnus”:
mandria di gnu) che gira su Mach svolgendo le funzioni del kernel Unix. L’inizio dello sviluppo fu
ritardato nell’attesa che Mach fosse reso disponibile come software libero, come era stato promesso.

Una ragione di questa scelta progettuale fu di evitare quella che sembrava la parte più complessa
del lavoro: effettuare il debugging del kernel senza un debugger a livello sorgente. Questo lavoro
era già stato fatto, appunto in Mach, e avevamo previsto di effettuare il debugging dei server Hurd come programmi utente, con GDB. Ma questa fase si rivelò molto lunga, e il debugging dei server multi-thread che si scambiano messaggi si è rivelato estremamente complesso. Per rendere Hurd robusto furono così necessari molti anni.”

Alix
“Originariamente il kernel GNU non avrebbe dovuto chiamarsi Hurd; il suo nome originale era
Alix, come la donna di cui ero innamorato in quel periodo. Alix, che era amministratrice di sistemi
Unix, aveva sottolineato come il suo nome corrispondesse a un comune schema usato per battezzare le versioni del sistema Unix: scherzosamente diceva ai suoi amici: “qualcuno dovrebbe chiamare un kernel come me”. Io non dissi nulla ma decisi di farle una sorpresa scrivendo un kernel chiamato Alix.

Le cose non andarono così. Michael Bushnell (ora Thomas), principale autore del kernel, preferì
il nome Hurd, e chiamò Alix una parte del kernel, quella che serviva a intercettare le chiamate di
sistema e a gestirle inviando messaggi ai server che compongono HURD.

Infine io e Alix ci lasciammo e lei cambiò nome; contemporaneamente la struttura di Hurd ve-
niva cambiata in modo che la libreria C mandasse messaggi direttamente ai server, e così il componente Alix scomparve dal progetto. Prima che questo accadesse, però, un amico di Alix si accorse della presenza del suo nome nel codice sorgente di Hurd e glielo disse. Così il nome raggiunse il
suo scopo.”

Ultimi post pubblicati


160x600_kingolotto_auto.gif

Vacanze    TUI.it

Universo Linux

Filosofia Open Source, prima parte

Dopo aver presentato la storia di UNIX e accennato alla nascita del movimento GNU è sembrato doveroso dare maggiori dettagli sul movimento che ha coinvolto una comunità di sviluppatori molto ampia e ha dato vita tra i numerosi progetti al sistema operativo GNU/Linux.

Proprio per aumentare l’informazione in merito sono stati scelti due documenti autorevoli scritti
da altrettanto autorevoli guru. Il primo documento è di Richard Stallman, l’uomo che ha fondato la Free Software Foundation, considerato per molti un visionario per molti altri un genio. Il testo vuole essere una base da analizzare per creare una propria opinione in merito.
Il secondo documento è di Bruce Perens, il fondatore della distribuzione Debian, ed è una dettagliata analisi delle varie licenze software presenti con relative caratteristiche. Il testo è diretto con particolare cura agli sviluppatori ma può essere un ottimo riferimento per gli utenti finali che utilizzeranno soluzioni software per le proprie esigenze.

Il progetto GNU
di Richard Stallman
La prima comunità di condivisione del software
“Quando cominciai a lavorare nel laboratorio di Intelligenza Artificiale del MIT nel 1971, entrai a
far parte di una comunità in cui ci si scambiavano i programmi, che esisteva già da molti anni. La
condivisione del software non si limitava alla nostra comunità; è un cosa vecchia quanto i computer, proprio come condividere le ricette è antico come il cucinare. Ma noi lo facevamo più di quasi chiunque altro.

Il laboratorio di Intelligenza Artificiale (AI) usava un sistema operativo a partizione di tempo
(timesharing) chiamato ITS (Incompatible Timesharing System) che il gruppo di hacker2 del laboratorio aveva progettato e scritto in linguaggio assembler per il Digital PDP-10, uno dei grossi elaboratori di quel periodo. Come membro di questa comunità, hacker di sistema nel gruppo laboratorio, il mio compito era migliorare questo sistema.
Non chiamavamo il nostro software software libero, poiché questa espressione ancora non esi-
steva, ma si trattava proprio di questo. Quando persone di altre università o di qualche società
volevano convertire il nostro programma per il proprio sistema e utilizzarlo, erano le benvenute.
Se si vedeva qualcuno usare un programma sconosciuto e interessante, si poteva sempre chiedere di vederne il codice sorgente, in modo da poterlo leggere, modificare, o prenderne, cannibalizzarne alcune parti per creare un nuovo programma.”

La comunità si dissolve
“La situazione cambiò drasticamente all’inizio degli anni ’80 quando la Digital smise di produrre
la serie PDP-10. La sua architettura, elegante e potente negli anni ’60, non poteva essere estesa in modo naturale ai più grandi spazi di indirizzamento che si stavano rendendo possibili negli anni
’80. Questo significò che quasi tutti i programmi che formavano ITS divennero obsoleti.
La comunità di hacker del laboratorio di Intelligenza Artificiale si era già dissolta non molto
tempo prima. Nel 1981 la Symbolics, nata da una costola del laboratorio stesso, gli aveva sottratto quasi tutti gli hacker; l’ormai esiguo gruppo rimasto fu dunque incapace di sostenersi (il libro Hackers di Steve Levy narra questi eventi, oltre a fornire una fedele ricostruzione di questa comunità ai suoi inizi). Quando il laboratorio di Intelligenza Artificiale nel 1982 acquistò un nuovo PDP-10, i sistemisti decisero di utilizzare il sistema timesharing non libero della Digital anziché ITS. I moderni elaboratori di quell’epoca, come il VAX o il 68020, avevano il proprio sistema operativo, ma nessuno di questi era libero: si doveva firmare un accordo di non-diffusione persino per ottenerne una copia eseguibile.

Questo significava che il primo passo per usare un computer era promettere di negare aiuto al
proprio vicino. Una comunità cooperante era vietata. La regola creata dai proprietari di software
proprietario era: “se condividi il software col tuo vicino sei un pirata. Se vuoi modifiche, pregaci di
farle”.
L’idea che la concezione sociale di software proprietario - cioè il sistema che impone che il soft-
ware non possa essere condiviso o modificato - sia antisociale, contraria all’etica, semplicemente
sbagliata, può apparire sorprendente a qualche lettore. Ma che altro possiamo dire di un sistema
che si basa sul dividere utenti e lasciarli senza aiuto? Quei lettori che trovano sorprendente l’idea
possono aver data per scontata la concezione sociale di software proprietario, o averla giudicata utilizzando lo stesso metro suggerito dal mercato del software proprietario. I produttori di software hanno lavorato a lungo e attivamente per diffondere la convinzione che c’è un solo modo di vedere la cosa.

Quando i produttori di software parlano di “difendere” i propri “diritti” o di “fermare la pira-
teria”, quello che dicono è in realtà secondario. Il vero messaggio in quelle affermazioni sta nel-
le assunzioni inespresse, che essi danno per scontate; vogliono che siano accettate acriticamente.

Esaminiamole, dunque.

Una prima assunzione è che le aziende produttrici di software abbiano il diritto naturale indi-
scutibile di proprietà sul software, e di conseguenza, abbiano controllo su tutti i suoi utenti. Se
questo fosse un diritto naturale, non potremmo sollevare obiezioni, indipendentemente dal danno
che possa recare ad altri. È interessante notare che, negli Stati Uniti, sia la costituzione che la giurisprudenza rifiutano questa posizione: il diritto d’autore non è un diritto naturale, ma un monopolio imposto dal governo che limita il diritto naturale degli utenti a effettuare delle copie.
Un’altra assunzione inespressa è che la sola cosa importante del software sia il lavoro che con-
sente di fare - vale a dire che noi utenti non dobbiamo preoccuparci del tipo di società in cui ci è
permesso vivere. Una terza assunzione è che non avremmo software utilizzabile (o meglio, che non potremmo mai avere un programma per fare questo o quell’altro particolare lavoro) se non riconoscessimo ai produttori il controllo sugli utenti di quel programmi.

Questa assunzione avrebbe potuto sembrare plausibile, prima che il movimento del software libero dimostrasse che possiamo scrivere quantità di programmi utili senza bisogno di metterci dei catenacci.

Se rifiutiamo di accettare queste assunzioni, giudicando queste questioni con comuni criteri di
moralità e di buon senso dopo aver messo al primo posto gli interessi degli utenti, tenendo conto che gli utenti vengono prima di tutto, arriviamo a conclusioni del tutto differenti. Chi usa un calcolatore dovrebbe essere libero di modificare i programmi per adattarli alle proprie necessità, ed essere libero di condividere il software, poiché aiutare gli altri è alla base della società.
Non c’è modo in questa sede di trattare approfonditamente i ragionamenti che portano a questa
conclusione; il lettore interessato può cercare le informazioni in rete a questo indirizzo:
http://www.gnu.org/philosophy/why-free.html

Una difficile scelta morale “Una volta che il mio gruppo si fu sciolto, continuare come prima fu impossibile. Mi trovai di fronte a una difficile scelta morale. La scelta facile sarebbe stata quella di unirsi al mondo del software proprietario, firmando accordi di non-diffusione e promettendo di non aiutare i miei compagni hacker.

Con ogni probabilità avrei anche sviluppato software che sarebbe stato distribuito secondo accordi di non-diffusione, contribuendo così alla pressione su altri perché a loro volta tradissero i propri compagni. In questo modo avrei potuto guadagnare, e forse mi sarei divertito a programmare. Ma sapevo che al termine della mia carriera mi sarei voltato a guardare indietro, avrei visto anni spesi a costruire muri per dividere le persone, e avrei compreso di aver contribuito a rendere il mondo peggiore.

Avevo già sperimentato cosa significasse un accordo di non diffusione per chi lo firmava, quando
qualcuno rifiutò a me e al laboratorio AI del MIT il codice sorgente del programma di controllo della nostra stampante; l’assenza di alcune funzionalità nel programma rendeva oltremodo frustrante l’uso della stampante. Per cui non mi potevo dire che gli accordi di non-diffusione fossero innocenti.

Ero molto arrabbiato quando quella persona si rifiutò di condividere il programma con noi; non
potevo far finta di niente e fare lo stesso con tutti gli altri.
Un’altra possibile scelta, semplice ma spiacevole, sarebbe stata quella di abbandonare l’informa-
tica. In tal modo le mie capacità non sarebbero state mal utilizzate, tuttavia sarebbero state sprecate.

Non sarei mai stato colpevole di dividere o imporre restrizioni agli utenti di calcolatori, ma queste
cose sarebbero comunque successe.
Allora cercai un modo in cui un programmatore potesse fare qualcosa di buono. Mi chiesi
dunque: c’erano un programma o dei programmi che io potessi scrivere, per rendere nuovamente possibile l’esistenza di una comunità?

La risposta era semplice: innanzitutto serviva un sistema operativo. Questo è difatti il software
fondamentale per iniziare a usare un computer. Con un sistema operativo si possono fare molte
cose; senza, non è proprio possibile far funzionare il computer. Con un sistema operativo libe-
ro, avremmo potuto avere nuovamente una comunità in cui hacker possono cooperare, e invitare
chiunque a unirsi al gruppo. E chiunque sarebbe stato in grado di usare un calcolatore, senza dover cospirare fin dall’inizio per sottrarre qualcosa ai propri amici.
Essendo un programmatore di sistemi, possedevo le competenze adeguate per questo lavoro.
Così, anche se non davo il successo per scontato, mi resi conto di essere la persona giusta per farlo.
Scelsi di rendere il sistema compatibile con Unix, in modo che fosse portabile, e che gli utenti Unix potessero passare facilmente a esso. Il nome GNU fu scelto secondo una tradizione hacker, come acronimo ricorsivo che significa “GNU’s Not Unix” (GNU non è Unix).
Un sistema operativo non si limita solo al suo nucleo, che è proprio il minimo per eseguire altri
programmi. Negli anni ’70, qualsiasi sistema operativo degno di questo nome includeva interpreti
di comandi, assemblatori, compilatori, interpreti di linguaggi, debugger, editor di testo, programmi per la posta e molto altro. ITS li aveva, Multics li aveva, VMS li aveva e Unix li aveva. Anche il sistema operativo GNU li avrebbe avuti.
Tempo dopo venni a conoscenza di questa massima, attribuita a Hillel3:
“Se non sono per me stesso, chi sarà per me?
E se sono solo per me stesso, che cosa sono?
E se non ora, quando?”
La decisione di iniziare il progetto GNU si basò su uno spirito simile.”

“Free” come libero
“Il termine free software” (N.d.T. il termine free in inglese significa sia gratuito che libero) a volte è mal interpretato: non ha niente a che vedere col prezzo del software; si tratta di libertà. Ecco, dunque, la definizione di software libero: un programma è software libero per un dato utente se:
¢ utente ha la libertà di eseguire il programma per qualsiasi scopo;
¢ l’utente ha la libertà di modificare il programma secondo i propri bisogni (perché questa li-
bertà abbia qualche effetto in pratica, è necessario avere accesso al codice sorgente del pro-
gramma, poiché apportare modifiche a un programma senza disporre del codice sorgente è
estremamente difficile);
¢ l’utente ha la libertà di distribuire copie del programma, gratuitamente o dietro compenso;
¢ l’utente ha la libertà di distribuire versioni modificate del programma, così che la comunità
possa fruire dei miglioramenti apportati.
Poiché “free” si riferisce alla libertà e non al prezzo, vendere copie di un programma non contraddice il concetto di software libero. In effetti, la libertà di vendere copie di programmi è essenziale:

raccolte di software libero vendute su CD-ROM sono importanti per la comunità, e la loro vendita è un modo di raccogliere fondi importante per lo sviluppo del software libero. Di conseguenza, un programma che non può essere liberamente incluso in tali raccolte non è software libero.

A causa dell’ambiguità del termine “free”, si è cercata a lungo un’alternativa, ma nessuno ne
ha trovata una valida. La lingua inglese ha, più termini e sfumature di ogni altra, ma non ha una
parola semplice e non ambigua che significhi libero; “unfettered” è la parola più vicina come significato (N.d.T. unfettered è una parola di tono aulico o arcaico che significa libero da ceppi, vincoli o inibizioni). Alternative come “liberated”, “freedom” e “open” hanno altri significati o non sono adatte per altri motivi (N.d.T. rispettivamente, liberato, libertà, aperto).”
Software GNU e il sistema GNU
“Sviluppare un intero sistema è un progetto considerevole. Per raggiungere l’obiettivo decisi di
adattare e usare parti di software libero tutte le volte che fosse possibile. Per esempio, decisi fin
dall’inizio di usare TEX come il principale programma di formattazione di testo; qualche anno più
tardi, decisi di usare l’X Window System piuttosto che scrivere un altro sistema a finestre per GNU.
A causa di questa decisione, il sistema GNU e la raccolta di tutto il software GNU non sono la
stessa cosa. Il sistema GNU comprende programmi che non sono GNU, sviluppati da altre persone o gruppi di progetto per i propri scopi, ma che possiamo usare in quanto software libero.”
L’inizio del progetto
“Nel gennaio 1984 lasciai il mio posto al MIT e cominciai a scrivere software GNU. Dovetti lasciare il MIT, per evitare che potesse interferire con la distribuzione di GNU come software libero. Se fossi rimasto, il MIT avrebbe potuto rivendicare la proprietà del lavoro, e avrebbe potuto imporre i propri termini di distribuzione, o anche farne un pacchetto proprietario. Non avevo alcuna intenzione di fare tanto lavoro solo per vederlo reso inutilizzabile per il suo scopo originario: creare una nuova comunità di condivisione di software.

A ogni buon conto, il professor Winston - allora responsabile del laboratorio AI del MIT - mi
propose gentilmente di continuare a utilizzare le attrezzature del laboratorio stesso.”
I primi passi “Poco dopo aver iniziato il progetto GNU, venni a sapere del Free University Compiler Kit, noto anche come VUCK (la parola olandese che sta per “free” inizia con la V). Era un compilatore progettato per trattare più linguaggi, fra cui C e Pascal, e per generare codice binario per diverse architetture.

Scrissi al suo autore chiedendo se GNU avesse potuto usarlo. Rispose in modo canzonatorio, dicendo che l’università era sì libera, ma non il compilatore. Decisi allora che il mio primo programma per il progetto GNU sarebbe stato un compilatore multilinguaggio e multipiattaforma. Sperando di evitare di dover scrivere da me l’intero compilatore, ottenni il codice sorgente del Pastel, un compilatore multipiattaforma sviluppato ai Laboratori Lawrence Livermore. Il linguaggio supportato da Pastel, in cui il Pastel stesso era scritto, era una versione estesa del Pascal, pensata come linguaggio di programmazione di sistemi. Io vi aggiunsi un frontend per il C, e cominciai il porting per il processore Motorola 68000, ma fui costretto a rinunciare quando scoprii che il compilatore richiedeva diversi megabyte di memoria sullo stack, mentre il sistema Unix disponibile per il processore 68000 ne permetteva solo 64K.

Mi resi conto allora che il compilatore Pastel interpretava tutto il file di ingresso creandone un
albero sintattico, convertiva questo in una catena di “istruzioni”, e quindi generava l’intero file di
uscita senza mai liberare memoria. A questo punto, conclusi che avrei dovuto scrivere un nuovo
compilatore da zero. Quel nuovo compilatore è ora noto come Gcc; non utilizza niente del compi-
latore Pastel, ma riuscii ad adattare e riutilizzare il frontend per il C che avevo scritto. Questo però avvenne qualche anno dopo; prima, lavorai su GNU Emacs.”

GNU Emacs
“Cominciai a lavorare su GNU Emacs nel settembre 1984, e all’inizio del 1985 cominciava a essere utilizzabile. Così potei iniziare a usare sistemi Unix per scrivere; fino ad allora, avevo scritto sempre su altri tipi di macchine, non avendo nessun interesse a imparare vi ne’ ed.
A questo punto alcuni cominciarono a voler usare GNU Emacs, il che pose il problema di come
distribuirlo. Naturalmente lo misi sul server ftp anonimo del computer che usavo al MIT (questo
computer, prep.ai.mit.edu, divenne così il sito ftp primario di distribuzione di GNU; quando alcuni anni dopo andò fuori servizio, trasferimmo il nome sul nostro nuovo ftp server). Ma allora molte delle persone interessate non erano su Internet e non potevano ottenere una copia via ftp, così mi si pose il problema di cosa dir loro.

Avrei potuto dire: “trova un amico che è in rete disposto a farti una copia”. Oppure avrei potuto
fare quel che feci con l’originario Emacs su PDP-10, e cioè dir loro: “spediscimi una busta affrancata e un nastro, e io te lo rispedisco con sopra Emacs”. Ma ero senza lavoro, e cercavo un modo di far soldi con il software libero. E così feci sapere che avrei spedito un nastro a chi lo voleva per 150 dollari. In questo modo, creai un’impresa di distribuzione di software libero, che anticipava le compagnie che oggi distribuiscono interi sistemi GNU basati su Linux.”

Un programma è libero per tutti?
“Se un programma è software libero quando esce dalle mani del suo autore, non significa neces-
sariamente che sarà software libero per chiunque ne abbia una copia. Per esempio, il software di
pubblico dominio (software senza copyright) è software libero, ma chiunque può farne una versione modificata proprietaria. Analogamente, molti programmi liberi sono protetti da diritto d’autore, ma vengono distribuiti con semplici licenze permissive che permettono di farne versioni modificate proprietarie.

L’esempio emblematico della questione è l’X Window System. Sviluppato al MIT, e pubblicato
come software libero con una licenza permissiva, fu rapidamente adottato da diverse società informatiche. Queste aggiunsero X ai loro sistemi Unix proprietari, solo in forma binaria, e coperto dello stesso accordo di non-diffusione. Queste copie di X non erano software più libero di quanto lo fosse Unix.
Gli autori dell’X Window System non ritenevano che questo fosse un problema, anzi se lo aspet-
tavano ed era loro intenzione che accadesse. Il loro scopo non era la libertà, ma semplicemente il
“successo”, definito come “avere tanti utenti”. Non erano interessati che questi utenti fossero liberi, ma solo che fossero numerosi.
Questo sfociò in una situazione paradossale, in cui due modi diversi di misurare la quantità
di libertà risultavano in risposte diverse alla domanda “questo programma è libero”? Giudicando
sulla base della libertà offerta dai termini distributivi usati dal MIT, si sarebbe dovuto dire che X era software libero. Ma misurando la libertà dell’utente medio di X, si sarebbe dovuto dire che X era software proprietario. La maggior parte degli utenti di X usavano le versioni proprietarie fornite con i sistemi Unix, non la versione libera.”

Ultimi post pubblicati


160x600_kingolotto_auto.gif

Vacanze    TUI.it

Universo Linux

Random Posts

I miei preferiti in Instagram

Archivio