Il free software
(software libero) e' una realta' che permette di disporre di
software di ottima qualita' praticamente per ogni
applicazione.
Lo scopo di questo documento e' quello di presentare una
panoramica dei software liberi piu' importanti ed utili! Per
rendere un poco piu' organizzata la lettura ho suddiviso il
software libero in gruppi: Sorgenti
principali, Produttivita' personale,
Distribuzioni Linux, Servizi
ed ambienti Web, Programmazione, Giochi, Scambio messaggi e file,
Networking, VOIP, Telefonia, Amministrazione sistemi, Databases,
Multimedia,
MAC,
... L'elenco e' limitato
poiche' ho inserito solo programmi che conosco e che ho avuto
occasione di installare e di provare. Se pensate manchi qualcosa
di importante segnalatemelo!
Se vi interessa non pagare nulla... leggete GRATIS: troverete altri software che non sono
liberi ma che possono essere utilizzati gratuitamente! Se vi
interessa sorbirvi un po' di filosofia sul software libero leggete al fondo.
La rivoluzione del software libero e' iniziata e tutti possono contribuire utilizzando, sviluppando e mantenendo il software libero.
Probabilmente il punto piu' giusto da cui cominciare e' il progetto GNU (acronimo ricorsivo: Gnu is Not Unix!) nato nel 1984 da Richard Stallman per sviluppare una versione di Unix che fosse completamente libera. Al progetto GNU si debbono un'infinita' di software (eg. il compilatore Gcc, ma anche un completo ambiente Unix) e le licenze GNU (eg. GPL: General Public License). E' sempre un progetto di Free Software Foundation (FSF) la Free Software Directory che contiene un catalogo di software in cui tutte le licenze sono state valutate come libere (il progetto e' una collaborazione con l'UNESCO).
Quando nel 1989 Tim Berner Lee propose al CERN il progetto di un servizio per la gestione di documenti che utilizzasse iperlink ed Internet, probabilmente non immaginava quanto questo avrebbe cambiato il mondo: dal primo sito pubblicato nel 1991 la crescita e' stata esponenziale... Il termine WWW indica ora una ragnatela enorme di server e servizi distribuiti in tutto il mondo. Le regole e gli standard vengono definiti dal W3C (World Wide Web Consortium) che ha definito le specifiche dell'HTML, dell'XML, dell'XHTML dei CSS, ... e fornisce tool di validazione per HTML, CSS, ...
Apache HTTPD e' il web Server piu'
diffuso e potente. E' un riferimento anche per i server HTTPD di
ambienti proprietari!
Apache
in realta' e' un'organizzazione che distribuisce anche
altri software fondamentali quali: Ant un tool di compilazione (come
il make), Tomcat un
servlet/JSP container (anzi IL Servlet Container poiche' e'
l'implementazione di riferimento di J2EE...), Jakarta le
TAGLIBS di riferimento per le pagine JSP, Struts una suite che
implementa l'architettura MVC (Model-View-Controller),
Pluto
l'implementazione di riferimento per le Portlet API (JSR-168)
...
Un altro contenitore di software libero, per essere precisi di software Open Source, e' SourceForge su cui vengono ospitati piu' di 100.000 progetti, molti di ottima qualita' ed assai utilizzati. Ancora piu' utilizzato e completo e' GitHub.
Probabilmente la licenza per software libero piu' diffusa e' la GPL ma molte altre sono utilizzate. Creative Common fornisce diversi tipi di licenze per una semplice inclusione in programmi e documenti.
Firefox: e' forse
l'applicazione free piu' scaricata ed utilizzata dagli utenti. Si
tratta di un ottimo web browser disponibile per tutte le
piattaforme.
Sempre piu' diffuso e' anche Chrome di Google.
Open Office e' un
ambiente di Office integrato, molto completo (su alcune
funzionalita' anche piu' di ambienti proprietari),
disponibile su piu' sistemi operativi e,
naturalmente, completamente gratuito.
Con un supporto completo anche in italiano le versioni piu' recenti
sono oggettivamente molto valide ed in grado di sostituire software
a pagamento.
Ottima alternativa e' Libre Office
che ha una comunita' molto attiva ed e' nato in un momento di
"chiusura" di Open Office prima che fosse donato alla Apache foundation.
KOffice e' un'alternativa
per gli amanti dell'interfaccia KDE, meno nota ma molto piu' Linux.
Ma vi sono anche molti altri utili programmi:
7-Zip e' un utility
per la compressione di file che supporta molteplici formati,
PDFCreator
consente la creazione di file PDF in modo molto semplice:
stampando il documento! GanttProject e'
un'applicazione Java per la pianificazione delle attivita',
vim e' un editor molto
potente adatto alla programmazione ma anche alla redazione di
testi e documenti,
GIMP
e' un completo editor grafico.
ClamAV e' un software antivirus (o meglio una suite) free molto completo e sofisticato per gli ambienti Unix. In diverse occasioni si e' dimostrato piu' efficace di prodotti a pagamento. ClamWin Free Antivirus e' la versione MS Windows di ClamAV.
Wikipedia e' una enciclopedia
dai contenuti liberamente pubblicati da un enorme numero di
volontari e basata sul software libero Wiki. Con milioni di
articoli in piu' lingue (e l'italiano e' molto attivo) e' un
punto di riferimento per la ricerca delle
informazioni.
Chi cerca consigli sulla programmazione li trova invece su
stackoverflow.
Da sempre gli standard del TCP-IP si sono evoluti
in modo aperto e disponibile a tutti con
RFC (Request For Comments) come
questa!
Se si vogliono eseguire
applicazioni MS-Windows su un sistema Linux wine consente di eseguire (quasi
tutte) le applicazioni MS-Windows su X. Dal punto di vista
tecnico wine non e' un emulatore ma implementa le librerie
richiamate dalle applicazioni.
Se, al contrario, si
vogliono utilizzare applicazioni Unix in ambiente MS-Windows e'
possibile utilizzare Cygwin che crea un completo
ambiente POSIX (quindi uno Unix Standard) con un'ampia serie di
comandi (eg. diff, grep, find, ...) e le librerie di base per
sviluppare e portare programmi. Tra le molte opzioni presenti sicuramente
da riportare e' un ambiente X-Windows completo che consente di
utilizzare il PC come client di complessi ambienti Unix
(beh ad essere precisi bisognerebbe dire XServer... ma cosi' e'
piu' semplice).
Vi sono altri ottimi programmi di utilizzo personale come il client di posta Thunderbird... ma ne parleremo piu' avanti nella sezione Scambio messaggi e file!
Linux e' un sistema operativo Unix
o, per essere piu' precisi, un kernel di tipo Unix distribuito
con la licenza GNU. Linux e' stato sviluppato da uno studente,
Linus Torvalds, nel 1991. Di enorme diffusione e di ottima
qualita' viene generalmente fornito insieme ad un ambiente Unix
GNU completo (quindi il nome corretto dell'ambiente dovrebbe
essere Linux/GNU) in distribuzioni sia di software libero che a
pagamento.
Le distribuzioni
di Linux comprendono tipicamente un ampio insieme di altri
software e sono innumerevoli (almeno 400 ma ne nascono
continuamente). Quindi citarle tutte non e' possibile...
Debian, Fedora Core, Ubuntu, Slackware, Centos, QiLinux (tutta italiana),
Knoppix (liveDistro),
Knoppix STD (Security Tools)
sono quelle che ritengo piu'
significative.
Con Linux e' possibile utilizzare software libero per ogni necessita'. Ma molti dei software liberi che vedremo possono essere utilizzati anche su sistemi proprietari.
Sono molti gli strumenti utili per la realizzazione e l'utilizzo di pagine web. Firefox l'abbiamo gia' ricordato... della stessa "famiglia" e' NVU un ottimo editor HTML, le cui versioni piu' recenti sono mantenute su Kompozer. Anche FCKeditor e' un editor DHTML che supporta le estensioni per ASP, ASP.NET, ColdFusion, PHP, Java e JavaScript.
Con una gestione da linea di comando, ma non per questo meno utili, sono le utility tidy che corregge l'HTML generando pagine sintatticamente corrette e wget che consente di scaricare l'intero contenuto di un sito in locale.
Le attuali tecnologie
consentono di creare siti altamente dinamici. Tra le piu' diffuse
tecnologie vi sono certamente i Servlet, le pagine JSP e gli
Enterprise Java Bean (EJB) (un'introduzione: Architetture Java). Abbiamo gia' citato
Apache e Tomcat, ora tocca a
JBoss che e' un EJB
Container realizzato in 100% Pure Java e quindi utilizzabile
virtualmente su ogni piattaforma.
Non siete particolarmente
abili nell'installazione e configurazione di un web server? Con
AppServ
si installano in pochi minuti
Apache, PHP, MySQL e PHPMyAdmin gia' correttamente
funzionanti!
Molti sono gli ambienti che consentono la creazione di siti in modo assia piu' semplice fornendo soltanto i contenuti. I Content Management System (CMS), con la diffusione dei blog e, piu' in generale, dello scambio di informazioni su Internet, stanno ricevendo una notevole e crescente importanza. Tra i molti esempi possibili: PHP-Nuke, PostNuke, Dragonfly CMS (ex CPG-Nuke), DotNetNuke, PHP-Fusion, Mambo, Joomla!, Drupal, Alfresco (ECM), ... Gallery e Coppermine Photo Gallery (CPG) sono diffuse ed ottime applicazioni per la condivisione di immagini grafiche. MediaPortal e' una recente evoluzione che consente di pubblicare contenuti multimediali come musica, video, streams, radio... Piu' orientato alla realizzazione di portali e' MDPRO. Rivolto alla commercio on-line (Marketplace) e' Zen Cart. Mentre Pluto e' l'implementazione di riferimento per le Portlet API (JSR-168).
I web server producono ampi file di log con l'elenco di tutti gli accessi effettuati dagli utenti. Analog e' un ottimo strumento per produrre statistiche professionali sugli accessi al web server. Le sue funzionalita' sono molto complete ed e' adatto ad un'analisi batch dei log. Altrettanto utilizzato e' AWStats.
Il web e' importante ma
non vanno dimenticati i
classici servizi Internet!
Il sendmail e' il
piu' diffuso demone per l'invio di posta.
Mailman e' il piu' noto
list manager utilizzabile con un'interfaccia web di
amministrazione.
POPFile e' un
sistema di classificazione delle email con proxy verso i
protocolli piu' diffusi. Utile nella classificazione di grandi
volumi di mail e per l'impostazione di criteri di
anti-spamming.
Come client di posta Thunderbird ma lo vederemo
piu' avanti...
Open LDAP e'
l'ottimo e diffusissimo LDAP Server mentre
JXplorer e' un
LDAP Client 100% java.
Un capitolo a se stante e' quello sulla condivisione e scambio
di file e messaggi.
Innanzi tutto i
linguaggi. Ve ne sono parecchi con licenze libere come:
Gcc il compilatore C di
GNU, Python
(un'introduzione: FAQ), Perl (e le sue innumerevoli
librerie raccolte su CPAN),
PHP,
ZK
un recentissimo framework AJAX,
...
Il numero di librerie specialistiche disponibili come software
libero e' talmente elevato che non ha senso elencarle. A seconda
delle necessita' (eg. sviluppo grafica, gestione multimedia,
crittografia, networking, sviluppo web, ...) ve ne sono
molteplici per tutti i linguaggi. Basta cercarle!
Dal punto di vista dello
sviluppo del software sono molti i tool free utili, anzi sono
quasi necessari.
CVS (Version
Control System) e' un sistema per il controllo delle versioni
come l'SCCS, RCS, ... La sua diffusione, per progetti free source
e non, e' notevolissima. Un'evoluzione e' Subversion che introduce
la gestione delle directory e operazioni di commit atomiche. Con
l'uso dell'interfaccia Web-DAV verso Apache o di client
MS-Windows come
TortoiseSVN
diventa
veramente facile da utilizzare!
Eclipse e' molto
diffuso come IDE (Integrated Development Environments) per Java.
In realta' questo e' solo uno degli ambienti di Eclipse (SDK) ma
Eclipse e' un tool che puo' essere utilizzato per realizzare
ambienti di sviluppo complessi a piacere da integrare su
soluzioni aziendali.
Molto utile e' anche
TRAC
per la gestione dei progetti software. Integrato con Subversion
contiene
un wiki adattato ed ha una gestione flessibile delle segnalazioni/bug
che non richiede adattamenti e puo' essere utilizzata nella
maggioranza dei progetti.
Premesso che personalmente utilizzo solo vi e make,
non avendo ancora imparato neanche il ci...
tuttavia ho sentito dire che un poco piu' recenti ed integrati sono:
Visual Studio Code,
Git e
Source Tree.
Tra i tool di analisi
delle prestazioni Grinder
(un'introduzione: Introduzione a
Grinder) e' un ottimo programma per realizzare benchmark.
Scritto in Java, con un'interfaccia di scripting in Jython ed una
gestione completa dei protocolli HTTP, HTTPS, dei cockies, ... e'
lo strumento ideale per la preparazione di benchmark su
applicationi J2EE e siti web.
JMeter permette la
definizione guidata dei test (eg. ramp-up) ma richiede una certa
conoscenza di Java, e' comunque un'ottima alternativa a Grinder.
Il disegno delle architetture Object Oriented viene descritto con un completo linguaggio di modelizzazione: l'UML. UMLet e' un tool java 100% che consente di disegnare i diversi modelli previsti. DIA e' invece un tool di disegno molto completo che consente di produrre UML ma anche flowcharts, diagrammi di rete, E/R, ...
NSIS (Nullsoft Scriptable Install System) e' un tool professionale open-source per generare wizard di installazione per ambienti Windows.
Gli strumenti per
l'analisi della sicurezza disponibili liberamente sono
moltissimi. Ethereal [NdE link non piu' disponibile]
con i suoi successori
Packetyzer [NdE link non piu' disponibile] e
WireShark
sono ottimi sniffer disponibili su piu' piattaforme. Nell'epoca
degli switch ovviamente il suo uso e' soprattutto quello di analisi e
di debug del traffico di rete ma sul TCP quasi tutto passa in chiaro...
Nessus
e' un programma di analisi
della sicurezza di sistemi che utilizza il port scanner
NMAP. La sua
architettura e' completa e prevede un server per l'esecuzione in
batch degli scan, un'interfaccia grafica per l'amministrazione ed
eventuali plug-in per gli exploit.
John the ripper
e' il piu' famoso password cracker. Modificabile e
personalizzabile e' anche un buon indicatore delle prestazioni
della CPU!
Si tratta di strumenti
potenti e sempre aggiornati. Come tutti gli strumenti possono
essere utilizzati per fini corretti (misurare e migliorare la
sicurezza dei propri sistemi) o meno (attaccare sistemi
altrui).
In ogni caso e' importante rimanere sempre aggiornati ed un
buon elenco e'
questo!
Come strumenti di difesa o comunque utili: TrueCrypt per creare un disco crittografato sul proprio sistema e PasswordSafe per memorizzare le password in modo sicuro.
La sicurezza di sistemi ed applicazioni free e' molto cresciuta in questi anni. Utilizzando distribuzioni aggiornate di Linux vengono automaticamente installate le versioni dei prodotti piu' sicuri con configurazioni, generalmente, gia' corrette.
Per chi vuole cimentarsi nella creazione di giochi in 3D e' disponibile un ambiente completo per la loro realizzazione: Panda3D. Le librerie grafiche, sonore e di gestione delle periferiche sono in C. La programmazione viene invece effettuata con il potente Python. L'ambiente e' molto completo e comprende un editor di scena.
Speravate parlassi di giochi con cui giocare? Mi spiace, sono troppo vecchio e non gioco piu'... L'unico che rimpiango e' il rogue mentre il fortune l'ho gia' riscritto piu' volte! Insomma la directory /usr/games presente nella maggior parte dei Linux/Unix mi e' piu' che sufficiente. Per chi proprio insiste ecco un ricco link su cui trovare ottime cose tra cui un programma, che anche se non e' un gioco, e' comunque molto bello da vedere: Stellarium
Mozilla Thunderbird e' un mail client assai diffuso, completo (eg. news, IMAP, ...) ed estendibile con molti plug-in (Lightning (Calendar), ...).
FileZilla e' un FTP
client for Windows (in realta' supporta: FTP, SFTP, and
FTPS).
WinSCP e' un
client SFTP per MS-Windows.
Gaim e' un client grafico di chat che supporta praticamente tutti i protocolli attuali. La sua diffusione e' notevole e contiene parecchie funzionalita' anche innovative rispetto a programmi commerciali.
Samba e' l'implementazione GNU
del protocollo di condivisione di file/stampanti su sistemi
MS-Windows. Da sempre migliore (opinione personale) del
corrispondente software proprietario e' il capostipite di una
generazione di File Server e di Client specializzati per lo
scambio di file. Bittorrent e' un protocollo
per la condivisione di file che rende notevolmente efficiente il
download anche di file di notevoli dimensioni. L'idea di base e'
quella di dividere il file originale i pezzi (tipicamente da
256K) da scaricare in parallelo da sistemi differenti.
Altri diffusi protocolli/servizi di condivisione/scambio file
sono eDonkey e Gnutella
Per la parte client sono disponibili parecchi programmi:
Azureus e'
un java BitTorrent client, eMule per eDonkey2000,
Ares
Galaxy e Shareaza supportano piu'
protocolli...
Tra gli strumenti per il lavoro di gruppo, di semplice installazione e gestione e' EGroupWare che offre un'insieme di moduli molto utili quali il calendario, la rubrica, un project manager, ... tutti disponibili con una semplice interfaccia web.
Naturalmente un sistema
Linux contiene al suo interno la pila completa dei protocolli
di rete che lo rendono un'ottimo client (abbiamo gia' visto
programmi come
Ethereal...) ma anche
un router, un gateway, un firewall, ...
Per chi volesse un router classico con prestazioni di alto
livello e' disponibile
Vyatta
che presenta tutte le caratteristiche di un router di classe enterprise.
Tra i moltissimi tool
basati sull'SNMP (Simple Network Management Protocol) sicuramente
uno dei piu' utilizzati e' l' MRTG
(Multi Router Traffic Grapher) che consente la realizzazione, in
modo semplice ed efficace, di pagine HTML che presentano il
traffico sulla rete con chiare immagini grafiche. Poiche' via
SNMP e' possibile monitorare un ampio insieme di oggetti, oltre
che router ed interfacce di rete, MRTG e' anche adattissimo per
controllare utilizzo e prestazioni di Web Server, sistemi Unix,
Database, ...
Stesso discorso vale per OpenNMS:
un sistema di controllo delle apparecchiature di rete di classe Enterprise.
Piu' recente di MRTG, ma dello stesso autore, c'e' anche l'ottimo
smokeping,
lo strumento migliore per valutare anche la latenza (fondamentale per
il VOIP).
Per chi programma invece molto utile e' net-snmp che fornisce
ambienti e librerie per utilizzare l'SNMP (Simple Network
Management Protocol)
Il mondo dei PBX (Private Branch Exchange, insomma i centralini telefonici per i profani) e' sempre stato riservato ad apparecchiature proprietarie. Con Asterisk (un'introduzione: Asterisk e dintorni) ora e' possibile realizzare in modo economico e con funzionalita' molto estese un centralino completo utilizzando Linux come sistema ospite. L'architettura modulare e abbondanza dei software di corredo ne fanno uno degli ambienti piu' adatti per l'integrazione della telefonia, del VoIP, della gestione del multimedia, ... freePBX (in precedenza denominato AMP: Asterisk Management Portal) e' un portale che racchiude i migliori strumenti di gestione ed amministrazione di Astersik.
Google ha lanciato un'iniziativa per lo sviluppo di software (ovviamente Open) per il Mobile; l'idea e' molto stimolante... vedremo se avra' successo!
Sono molte le utility per gli amministratori di sistemi disponibili come software liberi o di pubblico dominio.
Putty PuTTY e' un'implementazione
libera di un emulatore di terminale con i client Telnet ed SSH.
La diffusione e' notevole e la qualita' e' ottima.
VNC Virtual Network Computing
utilizza il protocollo RFB (Remote FrameBuffer) per consentire di
controllare in modo remoto un altro computer. E' indipendente dal
sistema operativo e gestisce in modo efficiente la grafica e le
periferiche HW. E' un tool divenuto fondamentale per ogni
sistemista.
I sorgenti originali sono distribuiti sotto la General Public
License e vi sono diverse versioni del software (alcune delle
quali a pagamento ma altre, come TightVNC sono GPL).
Nagios e' un'ambiente per il
monitoraggio di reti, sistemi e servizi. Completamente free
permette la realizzazione di plugin esterni per il controllo di
funzionalita' specifiche. L'interfaccia di amministrazione e
controllo e' web e vi e' la possibilita' di configurare in modo
semplice un'allarmistica (via email, SMS, ...) a fronte della
rilevazione di un problema. Moltissimi i plug-in e componenti
aggiuntivi disponibili (eg. Cacti)
Zenoss
e' piu' recente, molto completo e graficamente molto accattivante.
Zabbix e' altrettanto
completo ed e' utilizzato su ambienti con un numero anche elevatissimo
di sistemi e di controlli attivi.
Hyperic e' altrettanto recente ed interessante.
Ed ovviamente i gia' citati
MRTG
e OpenNMS.
[NdE novita' da tenere in considerazione: sensu, icinga]
Sono abituato all'interfaccia da linea di comando, gia' Gnome e KDE mi sembrano troppo... pero' e' giusto conoscere anche Webmin il piu' utilizzato strumento di amministrazione remota.
Tra i database
relazionali si distinguono, per diffusione e
funzionalita': MySQL
(il piu' diffuso su web:
Introduzione a MySQL),
PostgreSQL
(il piu' completo: Introduzione a
PostgreSQL),
Firebird
(semplice e veloce),
HSQLDB
(embedded in Pure Java 100%),
SQLite
(embedded in C/C++),
...
Distribuiti sotto licenze differenti, ma tutte Open,
hanno in comune la qualita'
che li rende utilizzabili anche su ambienti di
produzione e su sistemi definiti "critici".
Molti i programmi Client per accedere ai dati: SQuirreL per accedere a qualsiasi base dati raggiungibile JDBC; SQLTools un client molto completo per Oracle (che non e' un DB Open Source ma e' il piu' diffuso tra i DB commerciali); per disegnare gli EER: Mogwai; ...
Vi sono anche ottimi strumenti di amministrazione per i database: MySQL Administrator e pgAdmin III sono i tool client/server per amministrare DB MySQL e PostgreSQL rispettivamente; phpMyAdmin e' il tool piu' utilizzato per la gestione di basi dati MySQL, realizzato in PHP si distingue per una semplice e completa interfaccia web; SQLyog e' un tool molto completo per amministrare ed utilizzare MySQL di recente disponibile anche in una versione enterprise; TOra e' uno strumento per l'amministrazione di Oracle; ...
Il mondo del multimedia
e' in continua evoluzione. Moltissimi sono i software
disponibili. Tra i player sicuramente da riportare sono:
VLC,
xine,
MPlayer,
...
CDex
e' un potente CD ripper: in pratica legge il contenuto di un CD e
lo scarica con formati differenti (eg. MP3, WAV, FLAC).
DVDx
fa la stessa cosa... ma partendo da un DVD!
Audacity e'
un editor multitraccia che supporta i formati piu' diffusi. E'
come giocare al diskjokey con un mixer!
Anche se il numero di software liberi e' veramente molto ampio deve pero' essere riportato che molti formati, anche se universalmente utilizzati, sono coperti da licenze e brevetti (eg. MP3, MP4, ...) La Xiph.Org Foundation definisce formati standard free per i dati multimediali come Ogg Vorbis (rispetto al brevettato MP3), Ogg Theora (vs MPEG-4, RealVideo, Windows Media Video) e CODEC (eg. Speex, FLAC).
Questi non ho ancora avuto tempo di descriverli meglio e metterli nel posto giusto: Hadoop (Cassandra, Hive, Pig, ...), MongoDB, ClickHouse, TiDB, Pentaho (PDI/Kettle, BI, ...) Docker, Kubernetes, NoSQLBooster, rrdtool, smokeping, ...
Fino ad ora abbiamo visto programmi per le piattaforme Linux e Windows... ma c'e' anche il mondo MAC: Open Source MAC, MAC OS Forge, MAC Ports, MAC Update, ...
Qualche esempio? Leggete questa pagina.
Il software libero non
impone nessuna restrizione nell'utilizzo e nel miglioramento dei
programmi. E' quindi la scelta migliore, tuttavia a volte
non si trova quello che servirebbe...
Sono pero' disponibili in modo gratuito, anche se non libero,
moltissimi utili software. Le ragioni sono diverse, non e' il
caso di elencarle... ma anche se questa pagina e' dedicata al
software libero mi sembra importante riportare qualche link anche
per questo tipo di licenze.
Alcuni software sono completamente protetti da copyright e non vengono neppure distribuiti. Ma sono liberi i servizi che offrono agli utenti connessi su Internet. Altri sono scaricabili ed utilizzabili tranquillamente, ma hanno licenze non completamente "libere". Gli esempi sono moltissimi ma tra tutti: Google il motore di ricerca piu' utilizzato (ed anche il piu' adatto allo strano mestiere che faccio [l'informatico NdT]), una directory preparata da umani e' invece l'Open Directory Project, The Free Dictionary un dizionario, e non solo poiche' offre anche contenuti liberamenti utilizzabili, De Mauro Paravia un buon dizionario d'italiano, WordWeb un comodo dizionario d'inglese, FRESHMEAT e Download.com ricchi e comodi siti per il download di software free, freeware e shareware, RPMFind per la ricerca di pacchetti precompilati su Linux, PDF Reader e Flash Player due usatissimi plug-in per i browser per leggere documenti PDF e filmati Flash rispettivamente, You Tube un sito per condividere video, Flickr un sito per pubblicazione e condivisione di immagini (con una ricerca molto potente basata su TAG), Eudora un mail client, Hotmail, Yahoo!Mail e GMail tre usatissimi servizi di webmail, NeTools per controllare siti e DNS, Faxator per inviare FAX gratis, AVG, Avira diffusi antivirus e Ad-Aware un ottimo spy remover, Winamp e iTune due tra i piu' diffusi audio player disponibili gratuitamente, Skype per la telefonia VoIP gratuita, SmartFTP un ottimo client FTP, molte sono le utility per la sicurezza disponibili sul sito di Nir Sofer che contiene anche una raccolta ragionata di link, Java il linguaggio che ha rivoluzionato la programmazione su Internet, e' protetto da una licenza SUN ma e' liberamente utilizzabile e disponibile, FrontEnd un Java disassember grafico per windows: comodissimo!, Phrogram un simpatico ambiente didattico per insegnare la programmazione ai ragazzi e non solo... , VMware l'ambiente di virtualizzazione piu' diffuso, VirtualBox un altro ambiente di virtualizzazione molto utilizzato sui PC, Docker l'evoluzione della virtualizzazione su container, Oracle XE la versione gratuita del piu' diffuso RDBMS commerciale ed un comodo ambiente per lo sviluppo SQL Developer, (ominimo dell'ottimo SQL Developer che consente di accedere a piu' DB via JDBC), Daemon Tools che consentono di vedere immagini ISO di CD e DVD come drive, ...
E' difficile riconoscere
quelli che sono cambiamenti storici quando si stanno vivendo. Ma
quello che sta avvenendo con il Software Libero e' una vera
rivoluzione che sta cambiando il modo in cui condividere la
conoscenza.
In questo documento sono stati riportati solo alcuni dei software
liberi disponibili... la rivoluzione e' iniziata: ve ne saranno
sempre di piu'!
Un esempio concreto?
Questo
lungo elenco di software Open Source; non e' completo, sarebbe impossibile,
ma e' in italiano! [NdE il link originale e' stato sostituito: la pagina in italiano
e' stata cancellata in seguito ad una votazione degli utenti, risultava difficilmente
gestibile]
Tornando alle origini il primo a riconoscere l'importanza del Free Software e' stato R. Stallman, ma da allora i contributi sono stati innumerevoli. In questa pagina ne ho ricordati un paio perche' hanno introdotto software fondamentali e... sono europei. Non ci sono confini! Gli inizi sono stati limitati e riservati agli entusiasti... ma oramai la diffusione del software libero ha raggiunto la massa critica. La quantita' e qualita' dei programmi disponibili sono un vantaggio per tutti gli utenti. Anche chi si occupa dello sviluppo riconosce che porre sotto GPL una realizzazione ne permette lo sviluppo piu' rapido grazie all'aiuto della comunita'.
Nella definizione del software libero sono riportate le seguenti liberta':
Come e' ovvio la
liberta' 0 e 3 richiedono, o risultano semplificate con, la
disponibilita' del codice sorgente commentato (naturalmente la
numerazione comincia da 0!).
In inglese free significa sia "libero" che "gratis". Sempre
materialisti questi anglosassoni!
Ma come abbiamo visto non e' detto che un software libero sia
gratuito (anche se poi puo' essere liberamente copiato e
modificato), ne che un software gratuito sia libero (perche'
possono essere presenti limitazioni sul suo utilizzo).
Con il termine Shareware si indica un software distribuibile liberamente ed utilizzabile senza costo per un periodo di tempo limitato o sotto particolari condizioni, terminate le quali viene richiesta la registrazione ed il pagamento di una licenza (tipicamente assai modesta).
Con il termine Freeware si indica un software distribuibile ed utilizzabile gratuitamente ma il cui software e' proprietario o comunque protetto da una licenza.
Con il termine Open Source si indica un software i cui sorgenti sono distribuiti liberamente; in qualche caso sono presenti vincoli di licenza che limitano l'utilizzo a particolari condizioni (eg. uso personale). Tra le licenze Open Source sicuramente molto importanti sono la licenza Apache (molto libera, che consente di riutilizzare il codice anche in prodotti a pagamento), la licenza GNU (che cerca di creare un ecosistema libero con il vincolo copyleft), ... I dettagli sarebbero molti: ad esempio la Apache License 2.0 e' compatibile con la GNU GPL v3 ma non con la v2!
Ma il vero vantaggio del
Free Software e' che ogni rilascio, ogni documento, ogni
correzione arricchisce la comunita' degli utenti. Tutti possono
utilizzare i programmi liberi, e migliorarli.
Contribuire alla crescita del software libero e' facile.
Il primo modo e' quello di utilizzare software libero!
Testo: La rivoluzione del software libero
Per chi vuol fare qualcosa in piu'
vi sono innumerevoli progetti e moltissimi accettano contributi tecnici.
Naturalmente si puo' aiutare a seconda delle proprie capacita' ed
esperienze: sviluppando codice, curando la documentazione,
effettuando traduzioni, gestendo siti e mailing list...
Chi ha una nuova idea puo' condividerla pubblicando il proprio
lavoro con una licenza libera. Il contributo
puo' essere un nuovo software o
un documento (eg. l'ottimo libro in italiano
Libero come un software).
E' anche
possibile contribuire economicamente con una donazione o
acquistando qualcosa.
Le possibilita' sono molte, ma se volete
contribuire comprando qualcosa... il mio personale suggerimento
va per questo
libro.
Data: 1 Gennaio 2006
Versione: 1.0.25 - 1 Aprile 2017
Autore: Meo Bogliolo
Questo documento e' stato rilasciato sotto la licenza CC-Gnu GPL.