Linux

Programmazione Input Output Linux con porta parallela

Questa estate, assieme a due compagni di università, abbiamo sviluppato un programma che trasferisce file attraverso la porta parallela sotto linux, come progetto di Sistemi 1.
La porta parallela, come tutti ben sapete, è stata inserita nei personal computer per rendere più veloce l’invio di documenti alle stampanti, e per questo motivo ancora oggi i pin che compongono il cavo sono chiamati secondo le funzioni originali.

Scarica l’articolo:
programmazione_io_linux

Linux on a Compaq 1600 XL HOWTO

This Notebook is fully linux compatible

Here is the specifics of that notebook:

CPU Genuine Intel Celeron Mendocino 466 Mhz (Bogomips 927.33
Memory 64 Mb (I use 8 of this for the videoram)
Floppy Unknown 1.44MB 3.5″
Hard Disk Fujitsu 6Gb ATAPI / IDE
DVD Rom Toshiba DVD-ROM SD-C2302 ATAPI/IDE
Modem Conexant HSP MicroModem 56K pci (Software Modem)
Monitor: XTFT 14″
Video Card Trident Microsystems Cyberblade (generic) Cyberblade i1 pci
Sound Card Via Technologies Inc. VT82C686 pci [Apollo Super Ac97/audio]
Touchpad Synaptic

Thanks to Harddrake for those informations :) ( you can download it at http://www.linux-mandrake.com/harddrake∞ )
Update (27-5-2002): I’ve corrected the Mouse cursor problem with Linux in a Compaq Presario
Sometimes, when the memory is full and linux swaps on hard drive, the mouse cursor leave his correct position and the mouse clicks 1 cm left from the pointer. To correct that problem, insert the line Option “sw_cursor” in the Section “Device” of /etc/X11/XF68Config-4 configuration file. That corrects the problem. I’ve updated the configuration files.

Update: Now also the Conexant winmodem works correctly!
Thanks to Mark Hopkins for this wimodem help
You can find a driver at the location:
http://www.mbsi.ca/hsflinux/
I’ve tested it with Red Hat 7.2, and it works correctly. Because I don’t live on US, after the installation with the rpm of the driver I’ve launched that command:
# hsfconfig –country
And then Selected “Italy”. You can select here your different country.
See those urls to get more information:
http://www.linmodems.org
http://www.geocities.com/SiliconValley/3217/Documents/WinModems.html
http://www.o2.net/~gromitkc/winmodem.html
http://walbran.org/sean/linux/linmodem-howto.html

I’ve installed a Mandrake 7.2 , a Red Hat 7.1 and a Red Hat 7.2 distribution. They don’t recognize our graphic card, but the only thing you have to do is to replace the /etc/X11/XF86Config or /etc/X11/XF86Config-4 with the one provided in this page. (Read the files table). I use the touchpad or an external ps2 mouse, there’s no problem with the configuration.
If you want to use an external ps2 wheel mouse you must disable the gpm daemon on console, because it makes the mouse on console crazy and flipping. If you want to use the wheel, you must edit the section “imputdevice” as follow

Section “InputDevice”
Identifier “Mouse0”
# Modified by mouseconfig
Driver “mouse”
Option “Device” “/dev/mouse”
Option “Protocol” “IMPS/2”
Option “Emulate3Buttons” “no”
Option “ZAxisMapping” “4 5”
EndSection

This notebook has a confortable little display that shows the battery status, so I have not installed any dock to show the apm status in my desktop. Just run “apm” on a console if you want the % of charge.

And here is my configuration files:
Kernel Configuration (version 2.2.4-test11).
The soundcard works with the Via kernel driver, just do a modprobe to load the modules (Red Hat 7.2 does it automatically): .config

Xfree Configuration (for version 3.3.6)

It’s with italian keyboard, so if you want an other country map just modify the keyboard section and substitute the “it” with your keymap.

I used there 8 Mb for the videoram, setted from the bios. To use the mtrr acceleration, execute this command (after recompiling the kernel, with my .config file or with mtrr enabled):

echo “base=0xF5000000 size=8192k type=write-combining” >/proc/mtrr

XF86Config

Xfree Configuration (for version 4.*) (NEW)
The only way to make the new Xfree working with our laptop is to change first the /etc/lilo.conf file, adding a line with the VGA mode. If not, launching the Xfree server you will get working section of video, but not centered and moved on the right (if you can correct this error, send the solution to me). So change the lilo.conf file like this:

boot=/dev/hda
map=/boot/map
install=/boot/boot.b
vga=791 <-------- That line is fundamental lba32 prompt timeout=30 message=/boot/message default=Windows image=/boot/vmlinuz-2.4.2-2 label=linux read-only root=/dev/hda7 append="ide=ata66 idebus=66" vga=788 <--------# That line is fundamental image=/boot/vmlinuz-2.4.2-2 <----- this section is the same # that above, but without the vga line. Add it to be #sure when you will #reboot to have at least one lilo image working. label=linuxtext read-only root=/dev/hda7 append="idebus=66 ide0=ata66 ide0=dma hda=autotune ide0=autotune" other=/dev/hda1 <--- this is not fundamental :) optional label=Windows Then you must be sure to use the Xfree 4 version. In modern distribution (like Mandrake 7.2, 8, Red Hat 7.1 and so on) you have the choice at the installation time. After that, you can change the Xfree version running on your machine by changing the /etc/X11/X simbolic link. If it brings to /usr/bin/X11/XFree86 then you're using the 4.* version. If it link to a /usr/bin/X11/XF86_* then you're using the 3.3.6 one. Just change that link to the one you want!! So now you can put my configuration file XF86Config-4 in your /etc/X11 dir. It's with italian keyboard, so if you want an other country map just modify the keyboard section and substitute the "it" with your keymap. I used there 4 Mb for the videoram, setted from the bios. To use the mtrr acceleration, se the relative documentation in the kernel source tree. Files XF86Config (version 3) # XF86Config auto-generated by XF86Setup # # Copyright (c) 1996 by The XFree86 Project, Inc. # # Permission is hereby granted, free of charge, to any person obtaining a # copy of this software and associated documentation files (the "Software"), # to deal in the Software without restriction, including without limitation # the rights to use, copy, modify, merge, publish, distribute, sublicense, # and/or sell copies of the Software, and to permit persons to whom the # Software is furnished to do so, subject to the following conditions: # # The above copyright notice and this permission notice shall be included in # all copies or substantial portions of the Software. # # THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR # IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, # FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL # THE XFREE86 PROJECT BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, # WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF # OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE # SOFTWARE. # # Except as contained in this notice, the name of the XFree86 Project shall # not be used in advertising or otherwise to promote the sale, use or other # dealings in this Software without prior written authorization from the # XFree86 Project. # # See 'man XF86Config' for info on the format of this file Section "Files" RgbPath "/usr/X11R6/lib/X11/rgb" FontPath "unix/:-1" # FontPath "/usr/X11R6/lib/X11/fonts/75dpi:unscaled,/usr/X11R6/lib/X11/fonts/100dpi:unscaled,/usr/X11R6/lib/X11/fonts/Type1,/usr/X11R6/lib/X11/fonts/URW,/usr/X11R6/lib/X11/fonts/Speedo,/usr/X11R6/lib/X11/fonts/misc,/usr/X11R6/lib/X11/fonts/75dpi,/usr/X11R6/lib/X11/fonts/100dpi" EndSection Section "ServerFlags" EndSection Section "Keyboard" Protocol "Standard" AutoRepeat 250 30 LeftAlt Meta RightAlt Meta ScrollLock Compose RightCtl Control XkbKeycodes "xfree86" XkbTypes "default" XkbCompat "default" XkbSymbols "us(pc105)" XkbGeometry "pc" XkbRules "xfree86" XkbModel "pc105" XkbLayout "it" # XkbSymbols "us(pc101)" # XkbModel "pc101" #"pc104" # XkbLayout "us" #"de" # XkbVariant "nodeadkeys" EndSection Section "Pointer" Protocol "PS/2" Device "/dev/psaux" BaudRate 1200 Emulate3Timeout 50 EndSection Section "Monitor" Identifier "Generic Multisync" VendorName "Unknown" ModelName "Unknown" HorizSync 30-64 VertRefresh 60-60 Modeline "1024x768" 65.00 1024 1032 1176 1344 768 771 777 806 -hsync -vsync EndSection Section "Device" Identifier "Generic VGA" VendorName "Unknown" BoardName "Unknown" Chipset "generic" EndSection Section "Device" Identifier "My Video Card" VendorName "Unknown" BoardName "Unknown" Chipset "cyberblade" EndSection Section "Screen" Driver "Accel" Device "My Video Card" Monitor "Generic Multisync" DefaultColorDepth 32 BlankTime 0 SuspendTime 0 OffTime 0 SubSection "Display" Depth 8 Modes "1024x768" ViewPort 0 0 EndSubSection SubSection "Display" Depth 15 Modes "1024x768" EndSubSection SubSection "Display" Depth 16 Modes "1024x768" EndSubSection SubSection "Display" Depth 24 Modes "1024x768" EndSubSection SubSection "Display" Depth 32 Modes "1024x768" EndSubSection EndSection Section "Screen" Driver "SVGA" Device "My Video Card" Monitor "Generic Multisync" DefaultColorDepth 32 BlankTime 0 SuspendTime 0 OffTime 0 SubSection "Display" Depth 8 Modes "1024x768" EndSubSection SubSection "Display" Depth 15 Modes "1024x768" EndSubSection SubSection "Display" Depth 16 Modes "1024x768" EndSubSection SubSection "Display" Depth 24 Modes "1024x768" ViewPort 0 0 EndSubSection SubSection "Display" Depth 32 Modes "1024x768" EndSubSection EndSection Section "Screen" Driver "VGA16" Device "Generic VGA" Monitor "Generic Multisync" BlankTime 0 SuspendTime 0 OffTime 0 SubSection "Display" Depth 4 Modes "1024x768" ViewPort 0 0 EndSubSection EndSection Section "Screen" Driver "VGA2" Device "Generic VGA" Monitor "Generic Multisync" BlankTime 0 SuspendTime 0 OffTime 0 SubSection "Display" Depth 1 Modes "1024x768" ViewPort 0 0 EndSubSection EndSection XF86Config-4 # XFree86 4.0 configuration generated by Xconfigurator Section "ServerLayout" Identifier "XFree86 Configured" Screen 0 "Screen0" 0 0 InputDevice "Mouse0" "CorePointer" InputDevice "Keyboard0" "CoreKeyboard" EndSection # By default, Red Hat Linux 6.0 and later use xfs Section "Files" FontPath "unix/:7100" EndSection # Module loading section Section "Module" Load "dbe" # Double-buffering Load "GLcore" # OpenGL support Load "dri" # Direct rendering infrastructure Load "glx" # OpenGL X protocol interface Load "extmod" # Misc. required extensions Load "v4l" # Video4Linux # Load "pex5" # PHIGS for X 3D environment (obsolete) # Load "record" # X event recorder # Load "xie" # X Image Extension (obsolete) # You only need the following two modules if you do not use xfs. # Load "freetype" # TrueType font handler # Load "type1" # Adobe Type 1 font handler EndSection Section "InputDevice" Identifier "Keyboard0" Driver "keyboard" Option "XkbLayout" "it" EndSection Section "InputDevice" Identifier "Mouse0" # Modified by mouseconfig Driver "mouse" Option "Device" "/dev/mouse" Option "Protocol" "PS/2" Option "Emulate3Buttons" "no" Option "ZAxisMapping" "4 5" EndSection Section "Monitor" Identifier "CustomConfiguration" VendorName "Unknown" ModelName "Unknown" HorizSync 31.5-57 VertRefresh 50-90 Option "dpms" EndSection Section "Device" Identifier "My Video Card" Driver "trident" BoardName "Unknown" # Use Option "nolinear" if the server doesn't start up correctly # (this avoids the linear framebuffer probe). If that fails try # option "nomemaccess". # # Refer to /usr/X11R6/lib/doc/README.S3, and the XF86_S3 man page. EndSection Section "Device" Identifier "Linux Frame Buffer" Driver "fbdev" BoardName "Unknown" EndSection Section "Screen" Identifier "Screen0" Device "My Video Card" Monitor "CustomConfiguration" DefaultDepth 16 Subsection "Display" Depth 16 Modes "1024x768" EndSubSection EndSection Section "DRI" Mode 0666 EndSection XF86Config-4 Debian ### BEGIN DEBCONF SECTION # XF86Config-4 (XFree86 server configuration file) generated by dexconf, the # Debian X Configuration tool, using values from the debconf database. # # Edit this file with caution, and see the XF86Config-4 manual page. # (Type "man XF86Config-4" at the shell prompt.) # # If you want your changes to this file preserved by dexconf, only make changes # before the "### BEGIN DEBCONF SECTION" line above, and/or after the # "### END DEBCONF SECTION" line below. # # To change things within the debconf section, run the command: # dpkg-reconfigure xserver-xfree86 # as root. Also see "How do I add custom sections to a dexconf-generated # XF86Config or XF86Config-4 file?" in /usr/share/doc/xfree86-common/FAQ.gz. Section "Files" FontPath "unix/:7100" # local font server # if the local font server has problems, we can fall back on these FontPath "/usr/lib/X11/fonts/misc" FontPath "/usr/lib/X11/fonts/cyrillic" FontPath "/usr/lib/X11/fonts/100dpi/:unscaled" FontPath "/usr/lib/X11/fonts/75dpi/:unscaled" FontPath "/usr/lib/X11/fonts/Type1" FontPath "/usr/lib/X11/fonts/Speedo" FontPath "/usr/lib/X11/fonts/100dpi" FontPath "/usr/lib/X11/fonts/75dpi" EndSection Section "Module" Load "GLcore" Load "bitmap" Load "dbe" Load "ddc" Load "dri" Load "extmod" Load "freetype" Load "glx" Load "int10" Load "pex5" Load "record" Load "speedo" Load "type1" Load "vbe" Load "xie" # Load "xtt" EndSection Section "InputDevice" Identifier "Generic Keyboard" Driver "keyboard" Option "CoreKeyboard" Option "XkbRules" "xfree86" Option "XkbModel" "pc105" Option "XkbLayout" "it" EndSection Section "InputDevice" Identifier "Configured Mouse" Driver "mouse" Option "CorePointer" Option "Device" "/dev/psaux" Option "Protocol" "ImPS/2" Option "ZAxisMapping" "4 5" EndSection Section "InputDevice" Identifier "Generic Mouse" Driver "mouse" Option "SendCoreEvents" "true" Option "Device" "/dev/input/mice" Option "Protocol" "ImPS/2" Option "ZAxisMapping" "4 5" EndSection Section "Device" Identifier "Trident Cyberblade i1" Driver "trident" VideoRam 8024 Option "sw_cursor" EndSection Section "Monitor" Identifier "Generic Monitor" HorizSync 30-60 VertRefresh 50-75 Option "DPMS" EndSection Section "Screen" Identifier "Default Screen" Device "Trident Cyberblade i1" Monitor "Generic Monitor" DefaultDepth 24 SubSection "Display" Depth 1 Modes "1024x768" EndSubSection SubSection "Display" Depth 4 Modes "1024x768" EndSubSection SubSection "Display" Depth 8 Modes "1024x768" EndSubSection SubSection "Display" Depth 15 Modes "1024x768" EndSubSection SubSection "Display" Depth 16 Modes "1024x768" EndSubSection SubSection "Display" Depth 24 Modes "1024x768" EndSubSection EndSection Section "ServerLayout" Identifier "Default Layout" Screen "Default Screen" InputDevice "Generic Keyboard" InputDevice "Configured Mouse" InputDevice "Generic Mouse" EndSection Section "DRI" Mode 0666 EndSection ### END DEBCONF SECTION I'm working to use the special internet keys over the keyboard, so stay tuned! Please email me anything you want to add or modify into this page.

Il software è come una torta

Immaginate la vostra nonna, che riceve dalla vicina una ricetta. La mette in pratica, vede che il risultato non è quello sperato, aggiunge un ingrediente, cambia il tempo di cottura, ottenendo un’ottima torta. Una di quelle torte che rientreranno presto nel personale bagaglio di conoscenze che l’aiuterà ad avvicinare i nipoti, avidi di dolci.

Vedete nulla di strano in tutto ciò?

Ora immaginate uno scenario di questo tipo. La nonna ottiene una torta dalla vicina, che le fa firmare un contratto di non diffusione, non modifica, di utilizzo solo personale dello scambio appena avvenuto. Perplessa, la nonna firma, e prende un pezzo di torta: non è perfetta, sa bene che qualcosa nella cottura o negli ingredienti non è stato fatto con la dovuta cura. Ma non può nulla: senza ricetta, non riesce a partire da quella torta per migliorarla, e non la può nemmeno dare ai nipoti.

Il software libero nasce dallo stesso problema, riscontrato da un gruppo di informatici, che erano infastiditi dall’impossibilità di adattare i programmi alle proprie esigenze. In più, i dati digitali hanno un costo di replicazione molto basso, cosa che rende ancora più seccante il divieto di condivisione.
D’altra parte tutta la scienza, prima di incontrare il business e la privatizzazione della ricerca, era basata sulla condivisione delle conoscenze, che permetteva il vero progresso tecnologico.

L’idea di condividere le proprie scoperte ed i propri risultati, quindi, non era affatto nuova.

Così Richard Stallman, un programmatore del MIT, decise di iniziare un nuovo progetto che prevedeva lo sviluppo di tutto un sistema operativo (GNU), che è il programma di base dei computer (due esempi sono Linux e Windows). Per fare questo, però, serviva un modo per favorire e difendere la sua creatura dagli attacchi che avrebbe ricevuto dall’esterno: se avesse lasciato tutti liberi di fare qualsiasi cosa con il programma, qualcuno avrebbe potuto prenderlo e mettervi sopra un Copyright, impedendo la copia agli stessi autori originali. Per questo motivo inventò un Copyright tutto particolare, che per queste peculiarità volle chiamare, con un tipico gioco di parole, Copyleft.

Permessi di autore in opposizione ai diritti d’autore.

In pratica, la licenza d’uso che segue i programmi che si rientrano nel software libero, chiamata General Public License, permette a tutti di copiarli, modificarli e venderli a patto che ogni modifica segua la stessa licenza. Per fare in modo che questo avvenga in pratica è necessario che siano resi sempre disponibili i sorgenti del programma. Tornando all’esempio della torta, la ricetta “sorgente” deve essere sempre fornita quando si vende o si regala il dolce. Se qualcuno decide di modificare la ricetta e quindi il risultato, deve fornire ad ogni persona che riceve la torta, ottenuta con il metodo modificato, la nuova versione della ricetta. In questo modo funziona il software libero: milioni di persone nel mondo si scambiano programmi, scrivendone pezzi o modificandone parti, purché vengano mantenute queste libertà. Nessuno può impedirne la copia, perché gli autori stessi hanno deciso di dare il loro permesso e di ottenere in cambio la stessa possibilità di utilizzo delle modifiche. Così è nato Linux, per mano di Linus Torvalds, che iniziò il progetto, e per mano di tantissimi altri che contribuirono e contribuiscono ad aggiungere pezzi.
Ma con il software libero, non si annulla l’industria dell’informatica? No, come è vero che le pasticcerie sono sempre aperte. Inanzitutto non tutti hanno capacità e tempo di lavorare sui programmi, e la spesa per l’acquisizione dei sistemi informatici si sposta dalla vendita di copie (licenze) alla personalizzazione ed ai servizi di assistenza. Lo spazio è poco, ed il discorso è complesso ed interessante, sia dal punto di vista tecnico che filosofico, tanto che gli stessi discorsi stanno arrivando anche ad altri ambiti della cultura, dalla letteratura alle arti, passando per l’ingegneria e l’architettura. Se vorrete, continueremo il discorso spostandoci inizialmente su un’altro aspetto dei diritti d’autore: i brevetti.

Internet e le nuove tecnologie abbattono le distanze tra le persone, e le persone, a volte, decidono di utilizzare questo vantaggio per collaborare a qualcosa di buono. Sempre che riescano a rimanere liberi di farlo, senza che qualcuno impedisca loro di scambiarsi idee.

Di chi sono le idee?

Nei mesi scorsi si è molto discusso sui problemi di proprietà intellettuale, di come essa vada tutelata dalle leggi, di come realizzare un giusto equilibrio che permetta ai cittadini di rispettarle e trarne giovamento. La comunità europea si è quindi messa al lavoro sulla regolamentazione dei brevetti, con particolare attenzione a quelli riguardanti il software, una delle poche parti non brevettabili secondo le leggi vigenti. Il motivo di questo improvviso interesse si può ricercare nella continua pressione di grosse multinazionali americane, che vogliono creare una uniformità di trattamento tra l’Europa e gli Stati Uniti. Negli States, infatti, è possibile brevettare il software, mentre in Europa è stato espressamente vietato dalla convenzione di Monaco del ’73, e c’è stata una forte attività di lobbying per cercare di espandere questa possibilità anche nel vecchio continente.

Questa decisione porta considerazioni economiche, culturali, politiche ed etiche, ed una trattazione seria di tutto l’argomento richiederebbe una letteratura molto più vasta di un solo articolo, per questo motivo mi limiterò a dare un mio giudizio sulle questioni etiche che stanno alla base del problema dei brevetti sul software, perché lo ritengo particolarmente interessante.

Il software altro non è che l’applicazione pratica di algoritmi e metodi matematici. Partire da un’idea diversa è sbagliato, e potrebbe trarci in inganno. Tutto quello che vediamo, dai programmi di videoscrittura ai programmi per la navigazione, sono dirette o indirette applicazioni di algoritmi matematici e paradigmi di statistica e matematica discreta. A volte lo sono indirettamente, quando il programmatore non ha realizzato l’opera utilizzando formule ed espressioni matematiche, ma in questo caso il suo lavoro poggia su quello di altri, che hanno creato le basi per facilitare il suo compito. Tutto questo è necessario per capire il motivo per il quale non è possibile brevettare il software, ma solamente proteggerlo con il copyright.

I brevetti servono per proteggere le innovazioni tecniche, dove per innovazione viene inteso un miglioramento dello stato dell’arte di un settore finalizzato alla produzione. Se invento un modo per produrre energia dall’acqua, posso proteggerla tramite un brevetto. I brevetti sul software, così come sono intesi in America, sono invece brevetti sulle idee. Un esempio può essere l’idea di barra di scorrimento, quella che utilizziamo per vedere le pagine successive di un documento, oppure l’idea di utilizzare un pulsante che richiami una funzione. Dietro questo tipo di idee non c’è una innovazione che porti alla produzione, soprattutto quando quello che si vorrebbe brevettare riguarda unicamente l’interfaccia con la quale gestiamo alcune delle caratteristiche dei computer.

Molte associazioni, tra le quali anche il Forlì Linux User Group, hanno protestato con tutti i mezzi a loro disposizione contro l’introduzione dei brevetti sul software, non con l’obiettivo di liberalizzare la copia dei programmi, già protetta ad hoc dal Copyright, ma con la viva preoccupazione che si potessero brevettare anche nel nostro paese le idee alla base dell’utilizzo dell’informatica.

Sembrerebbe folle il solo pensiero di brevettare l’idea di un volante per automobili, cosa che impedirebbe ai cittadini di cambiare automobile nel corso degli anni, ma gli analoghi riferimenti nel campo dell’informatica, forse perché ancora lontani dalla cultura popolare, non destano altrettanta preoccupazione.

E’ difficile esprimere un giudizio su chi sia il proprietario di un’idea, e se questa “proprietà” vada tutelata per incentivare l’innovazione. In America i brevetti sul software non hanno funzionato, incentivando direttamente la nascita di monopoli settoriali, a causa delle enormi spese giuridiche alle quali sono continuamente sottoposte le ditte produttrici di software (con una media di 500’000 dollari a causa, per essere precisi).

Le idee sono il frutto di un’opera collettiva, nascono e si riproducono grazie allo scambio di informazioni e all’interazione di idee diverse, che ne procreano altre che saranno alla base delle prossime. Il teorema di Pitagora non è mai stato brevettato, ma non si può dire che la diffusione di questa idea non abbia portato innovazione. Per questo l’impossibilità del libero scambio delle idee non funziona come incentivo alla loro produzione, e quasi sempre accade l’esatto contrario, che queste derivino direttamente dalla possibilità di comunicazione.

Questo è chiaro anche ai legislatori americani, che ora stanno rivalutando il problema, ma che in passato probabilmente hanno pensato più agli interessi di pochi grandi, piuttosto che al bene dei cittadini che dovevano amministrare. In Europa continuiamo a resistere alla tentazione delle grandi multinazionali, impedendo la regolarizzazione dei brevetti software, speriamo che in futuro i cittadini prendano più coscienza e si rendano conto del rischio che corrono quando ignorano questi problemi.

Il rischio di perdere la proprietà e la paternità delle proprie idee.

Che cos’è il software libero

Il software libero (a volte chiamato con il termine inglese Open Source, anche se non sono esattamente sinonimi) è una novità nel campo dello sviluppo dei programmi per computer e del lavoro nel campo della produzione di beni immateriali. Una novità che viene introdotta gradualmente nelle aziende e nelle amministrazioni d’Italia e del Mondo già da qualche anno, ma che solo ultimamente sta riscuotendo la giusta attenzione anche dai non addetti ai lavori.
L’innovazione che porta deriva dalla licenza d’uso che accompagna qualsiasi applicativo che possa definirsi software libero, la General Public License (GPL). Questa licenza d’uso permette la copia e la distribuzione dei sorgenti del programma, che sono il “metodo” con il quale il programma è ottenuto.

Da questa licenza derivano queste immediate conseguenze:
1.Chiunque può modificare un software esistente distribuito con la licenza GPL, e ridistribuirlo anche a pagamento, purché fornisca a sua volta i sorgenti del suo lavoro
2.Chiunque può ridistribuire il software, sia gratuitamente che a pagamento, anche se non ne detiene il Copyright. Il cliente, pertanto, può diventare a sua volta produttore e rivenditore.
Tutto questo, che all’apparenza può sembrare uno svantaggio per lo sviluppatore, che di fatto “dona” il suo lavoro e ne permette la distribuzione gratuita, porta al proprietario del software diversi vantaggi:
1.L’aiuto di altre persone, che avendo a disposizione i sorgenti modificano, aggiornano e migliorano il prodotto iniziale. Queste modifiche sono obbligatoriamente rilasciate con la stessa licenza del prodotto iniziale, ed il primo programmatore gode di tutte le successive modifiche da parte di altri, gratuitamente. Il software ha così uno sviluppo “comunitario”: tutti lavorano assieme per migliorare e creare qualcosa di nuovo.
2.L’avere a disposizione il sorgente porta maggiore sicurezza, perché i problemi sono riconosciuti molto più velocemente. Spesso, quindi, il software libero è più sicuro di quello proprietario (questo termine indica tutto il software non libero).
Dalle “Linee guida del Governo per lo sviluppo della Società dell’ Informazione nella legislatura”:

« I prodotti open source (per caratteristiche intrinseche derivanti dalle stesse modalità di sviluppo e di evoluzione) determinano vantaggi in termini di: contenimento dei prezzi, trasparenza (e quindi sicurezza) , non dipendenza da un singolo fornitore, elevata riusabilità , accessibilità per le piccole realtà di sviluppo (economie locali) .» (1)

L’esempio più famoso di software libero è il sistema operativo Linux, che sta raggiungendo sempre maggiore successo in tutto il mondo. Molte nazioni, nel mondo, stanno programmando il passaggio negli uffici da sistemi Windows a Linux, grazie ai numerosi vantaggi che esso porta.

Grandi aziende multinazionali come IBM, SUN, APPLE, HP e altre ancora stanno investendo milioni di dollari in tecnologie basate sul software libero, consapevoli del ritorno economico in termini di vendita dell’hardware e dei servizi che ne derivano.

Moltissime piccole e medie aziende e cooperative sono nate per vendere servizi e personalizzazioni basate sul software libero. Grazie alla disponibilità dei sorgenti chiunque può basare il proprio business ed offrire servizi, anche in competizione con le grosse multinazionali, che non riescono a coprire tutte le esigenze a basso livello. Questo aspetto positivo è un grosso vantaggio per l’economia locale e le piccole e medie aziende di una realtà provinciale: grazie alla domanda di software libero, si favorisce la nascita di un’offerta locale che sposta completamente il ruolo dei consulenti informatici da semplici rivenditori di prodotti esteri a produttori essi stessi di soluzioni. Soluzioni informatiche che forniscono un grado di soddisfazione del cliente maggiore, grazie all’estrema flessibilità ed adattabilità, nonché vicinanza anche geografica con la domanda. La scelta dell’uso e di acquisto di software libero, quindi, è anche una scelta che favorisce un’economia locale rispetto all’importazione, con una conseguente diminuzione dei costi.
Se da un lato le soluzioni Open Source valorizzano il lavoro locale, dall’altro la possibilità di trasferire i beni immateriali prodotti da una parte all’altra del mondo con spese molto inferiori al valore tramite le reti informatiche rende possibile uno scambio di conoscenze e di lavoro veramente globale. Il lavoro prodotto è di proprietà di tutti, le competenze di ognuno sono a disposizione per risolvere nuovi problemi e necessità. Il business delle aziende legate a questi sistemi, quindi, si sposta dalla vendita di un prodotto all’assistenza per le eventuali personalizzazioni. Un modo diverso di pensare al lavoro che mette sullo stesso piano di fronte al cliente multinazionali del software e liberi professionisti che lavorano come singoli consulenti.

Il software libero viene fornito senza costi di licenza, ed il costo totale di un laboratorio o di un ufficio amministrativo con utilizzo di software libero è di gran lunga minore se confrontato con l’utilizzo di software proprietario. Molto semplicemente, moltissime aziende stanno introducendo Openoffice.org∞ al posto del più costoso Microsoft Office.

Il passaggio può essere svolto anche in maniera graduale, grazie all’interoperabilità delle soluzioni open source.

Una realtà che preveda l’utilizzo di software libero non dipende da un solo fornitore, ed è libera di scegliere l’offerta migliore in ogni occasione. Attualmente accade il contrario, ed i fornitori tendono a legare le aziende ai loro programmi, impedendone l’abbandono ed aumentandone spesso i costi.
Per chi volesse utilizzare software libero, può rivolgersi all’associazione culturale FOLUG (http://www.folug.org) che aiuta gratuitamente gli interessati ad avvicinarsi alle risorse disponibili e riunisce tra i soci molti dei professionisti che lavorano con il software libero tutti i giorni.

Torna su