<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>SoLiRa &#187; Articoli</title>
	<atom:link href="http://www.solira.org/category/articoli/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.solira.org</link>
	<description>Associazione Software Libero Ragusa</description>
	<lastBuildDate>Thu, 19 Jan 2012 17:31:28 +0000</lastBuildDate>
	<language>en</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.3.1</generator>
	<atom:link rel='hub' href='http://www.solira.org/?pushpress=hub'/>
		<item>
		<title>Cos&#8217;è uno Linux User Group?</title>
		<link>http://www.solira.org/2006/09/linux-user-group/</link>
		<comments>http://www.solira.org/2006/09/linux-user-group/#comments</comments>
		<pubDate>Wed, 06 Sep 2006 16:45:28 +0000</pubDate>
		<dc:creator>mario</dc:creator>
				<category><![CDATA[Articoli]]></category>

		<guid isPermaLink="false">http://solira.is-a-geek.org/?p=85</guid>
		<description><![CDATA[&#8220;Un Linux User Group (LUG) e&#8217; una libera associazione di utenti Linux che intende promuovere l&#8217;utilizzo del sistema operativo Linux e approfondirne la conoscenza dei propri membri attraverso la loro mutua collaborazione.&#8221; Il lug di Ragusa si muove in questa direzione dal 2001, ed e&#8217; proprio da queste attivita&#8217; che nasce l&#8217; Associazione Software Libero [...]]]></description>
			<content:encoded><![CDATA[<p><em>&#8220;Un <a href="http://www.linux.it/LUG/">Linux User Group</a> (<strong>LUG</strong>) e&#8217; una libera associazione di utenti Linux che intende promuovere l&#8217;utilizzo del sistema operativo Linux e approfondirne la conoscenza dei propri membri attraverso la loro mutua collaborazione.&#8221;</em></p>
<p>Il <strong>lug di Ragusa</strong> si muove in questa direzione dal 2001, ed e&#8217; proprio da queste attivita&#8217; che nasce l&#8217; <a href="http://www.solira.org/">Associazione Software Libero Ragusa</a> che, approvando pienamente le idee del LUG, decide di ampliarle e concretizzarle con uno statuto e un&#8217; associazione legalmente riconosciuta.<br />
Per collaborare alle iniziative del lug non e&#8217; necessaria nessuna iscrizione, nessuna quota associativa. Chiunque ne condivide le idee e si impegna per la sua crescita, puo&#8217; benissimo considerarsi parte attiva di esso.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.solira.org/2006/09/linux-user-group/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Il collegamento ad Internet e Linux</title>
		<link>http://www.solira.org/2006/06/il-collegamento-ad-internet-e-linux/</link>
		<comments>http://www.solira.org/2006/06/il-collegamento-ad-internet-e-linux/#comments</comments>
		<pubDate>Fri, 09 Jun 2006 17:20:17 +0000</pubDate>
		<dc:creator>massimo</dc:creator>
				<category><![CDATA[Articoli]]></category>

		<guid isPermaLink="false">http://solira.is-a-geek.org/?p=115</guid>
		<description><![CDATA[Dal momento in cui avviamo la connessione ad Internet sulla nostra macchina abbiamo la sensazione di essere collegati a tutte le macchine e le risorse disponibili nel mondo. Questo e&#8217; vero solo in parte, in quanto in realta&#8217; la sola connessione esistente dalla nostra macchina verso l&#8217;esterno e&#8217; diretta al server del nostro ISP, e [...]]]></description>
			<content:encoded><![CDATA[<p>Dal momento in cui avviamo la connessione ad Internet sulla nostra macchina abbiamo la sensazione di essere collegati a tutte le macchine e le risorse disponibili nel mondo. Questo e&#8217; vero solo in parte, in quanto in realta&#8217; la sola connessione esistente dalla nostra macchina verso l&#8217;esterno e&#8217; diretta al server del nostro ISP, e sara&#8217; esso a sua volta a restituirci quello che chiediamo attraverso il nostro browser o i vari client che abbiamo installati. Non si tratta dunque, a differenza di quanto avviene nelle comuni LAN (ad esempio di tipo Ethernet), di un collegamento diretto con il resto della rete, ma si tratta di un collegamento seriale tra due nodi (peer). Occorre quindi che per la trasmissione si utilizzi un protocollo che permetta di incapsulare pacchetti TCP, per trasmetterli attraverso una linea seriale come e&#8217; quella tra il nostro modem e quello del nostro ISP.<span id="more-115"></span><br />
Il protocollo in questione e&#8217; il PPP (protocollo punto a punto), che sostituisce da tempo il vecchio SLIP. Sul server remoto (quello dell&#8217;ISP) e&#8217; installato un server PPP che gestisce le richieste di connessione provenienti da un client PPP, occupandosi di effettuarne l&#8217;autenticazione e di configurare la connessione. In realta&#8217; non ci sono un programma client e un programma server, in quanto il programma che si occupa della trasmissione PPP puo&#8217; benissimo fare sia da client che da server. Sulla macchina locale sara&#8217; installato un programma che si occupera&#8217; di fare da client nella comunicazione PPP; in ambiente Linux questo programma si chiama <span style="text-decoration: underline;">pppd(8)</span>.<br />
Esistono vari strumenti per configurare facilmente una connessione ad Internet in un sistema Linux (Kppp, Wvdial, ecc.), e tutti questi utilizzano pppd per raggiungere il loro scopo, tuttavia e&#8217; possibile configurare la connessione anche senza l&#8217;ausilio di questi intervenendo manualmente nella configurazione di pppd.</p>
<h3>Pppd</h3>
<p>Per invocare pppd occorre lanciare il comando &#8220;<em>pppd [ opzioni ]</em>&#8220;. Le opzioni accettate dal comando sono veramente numerose, ed e&#8217; in base a queste che pppd impostera&#8217; il proprio funzionamento. Le opzioni, oltre che essere specificate sulla linea di comando, possono essere scritte su una serie di file di configurazione facilmente modificabili per poterli adattare alle proprie esigenze. All&#8217;avvio pppd legge le opzioni da, nell&#8217;ordine, i seguenti file: /etc/ppp/options, ~/.ppprc, /etc/ppp/options.&lt;dispositivo&gt; e, eventualmente, /etc/ppp/peers/*. I file /etc/ppp/options.&lt;dispositivo&gt; rappresentano dei file contenenti opzioni specifiche da usare con &lt;dispositivo&gt;, dove con dispositivo si intende il file del terminale seriale presente in /dev al quale pppd deve collegarsi, o il nome dell&#8217;interfaccia Ethernet (nella forma ethX) nel caso in cui si usi una versione recente di pppd e si abbia un modem adsl di tipo Ethernet collegato a quella interfaccia. I file /etc/ppp/peers/* sono invece file contenenti opzioni da utilizzare quando pppd viene invocato con l&#8217;opzione &#8216;call&#8217; seguita dal nome del peer (il quale e&#8217; un nome arbitrario) corrispondente al nome del file in /etc/ppp/peers/. Infine verranno lette le opzioni impostate sulla linea di comando. La maggior parte delle distribuzioni forniscono un file di esempio in /etc/ppp contenente varie opzioni debitamente commentate, da poter prendere come riferimento per la creazione di uno o piu&#8217; file personalizzati.<br />
Perche&#8217; pppd possa svolgere il suo compito e&#8217; necessario che vengano soddisfatti alcuni requisiti. Prima di tutto il kernel deve avere i driver/supporti necessari, e in particolare:<br />
- Supporto per protocollo IP<br />
- Supporto per protocollo PPP<br />
- Supporto per i sistemi di compressione dei dati che verranno usati durante la connessione (deflate e bsd)<br />
Altri driver che potrebbero essere necessari in taluni casi (linea ADSL, tunnel PPTP):<br />
- Supporto per &#8220;PPP over Ethernet&#8221; (PPPOE)<br />
- Supporto per protocollo Packet<br />
- Supporto per compressione MPPE<br />
Nel caso (frequente) in cui i suddetti driver siano disponibili come moduli esterni anziche&#8217; essere compilato dentro il kernel e&#8217; opportuno verificare che il file di configurazione dei moduli del kernel (/etc/modules.conf o /etc/modprobe.conf)3 sia in grado di istruire il sistema su quali moduli caricare all&#8217;arrivo di alcune richieste da parte dei programmi. In genere e&#8217; sufficiente inserire, nel caso in cui non vi siano gia&#8217;, queste righe nel file:<br />
alias net-pf-2 ipv4<br />
alias net-pf-17 af_packet<br />
alias net-pf-24 pppoe<br />
alias ppp0 ppp<br />
alias tty-ldisc-3 ppp_async<br />
alias tty-ldisc-14 ppp_synctty<br />
alias ppp-compress-18 ppp_mppe<br />
alias ppp-compress-21 bsd_comp<br />
alias ppp-compress-24 ppp_deflate<br />
alias ppp-compress-26 ppp_deflate<br />
Inoltre, dovendo pppd essere in grado di gestire direttamente i dispositivi seriali, i dispositivi di rete e le tabelle di routing, e&#8217; necessario che pppd giri con i privilegi dell&#8217;utente root. E&#8217; sufficiente per questo che si imposti il flag suid sull&#8217;eseguibile /usr/sbin/pppd.<br />
Pppd puo&#8217; benissimo essere usato per stabilire una connessione tra due macchine collegando le loro porte seriali attraverso un cavo seriale di tipo null-modem, realizzando in questo modo una piccola rete locale a bassa velocita&#8217;. In tal caso e&#8217; sufficiente che entrambe le macchine abbiano installato pppd, e ognuna di esse potra&#8217; richiedere un collegamento all&#8217;altra. L&#8217;utilizzo tipico di pppd e&#8217; pero&#8217; quello di utilizzare un modem per connettersi al proprio ISP. Nel caso in cui si abbia a disposizione una normale linea telefonica con modem analogico sara&#8217; necessario utilizzare anche un programma che si occupi di interagire con il modem per far si&#8217; che questo componga il numero di telefono del computer remoto ed avvii la procedura cosiddetta di &#8220;handshaking&#8221; per negoziare i parametri della connessione. Questo programma si chiama <span style="text-decoration: underline;">chat(8)</span>.</p>
<h3>Chat</h3>
<p>Chat viene normalmente invocato da pppd stesso tramite l&#8217;opzione &#8216;connect&#8217;. Lo scopo di questa opzione e&#8217; appunto quello di eseguire i compiti necessari per instaurare fisicamente la connessione prima che pppd si occupi del resto. Normalmente l&#8217;argomento dell&#8217;opzione &#8216;connect&#8217; e&#8217; uno script o una linea di comando per invocare chat, ad esempio &#8220;<em>connect &#8216;/usr/sbin/chat -f /etc/ppp/chat-isp&#8217;</em>&#8220;. In questo esempio viene invocato chat passandogli come argomento dell&#8217;opzione -f il nome del file contenente il relativo script (per comodita&#8217; tale file si colloca nella stessa directory contenente gli altri file di configurazione di pppd).<br />
Infatti occorre che tutte le operazioni che chat deve eseguire vengano inserite in un apposito file, lo script di chat appunto, contenente una serie di comandi che ne specificano le azioni da intraprendere, fra cui la stringa di inizializzazione da inviare al modem, il numero di telefono da comporre, opzioni relative a timeout di connessione e cose simili, ed eventualmente una o piu&#8217; coppie nel formato &#8220;stringa_ricevuta: stringa_da_inviare&#8221; che istruiscono il programma su come reagire nel caso riceva una stringa (o sottostringa) cosi&#8217; formata, e cioe&#8217; quale stringa di risposta dovrebbe inviare. L&#8217;utilizzo di questa funzionalita&#8217; e&#8217; in genere quello di rispondere alle richieste di immissione username e password del computer remoto, ma e&#8217; in realta&#8217; utilizzabile solo quando il protocollo di autenticazione utilizzato dall&#8217;ISP e&#8217; il PAP. Inoltre per poter utilizzare chat per l&#8217;autenticazione sarebbe necessario indagare preliminarmente, tramite un emulatore di terminale, per sapere il formato dei prompt che l&#8217;host remoto ci invia per richiederci di autenticarci. Per ragioni di comodita&#8217; e&#8217; quindi preferibile evitare che l&#8217;autenticazione venga effettuata da chat, delegando direttamente pppd a questo che si occupera&#8217; di svolgere il compito in modo totalmente trasparente all&#8217;utente.<br />
Se chat avra&#8217; avuto successo nell&#8217;instaurazione della connessione esso uscira&#8217; restituendo il controllo delle operazioni a pppd.</p>
<h3>Protocolli d&#8217;autenticazione</h3>
<p>Vi sono vari protocolli alternativi per l&#8217;autenticazione, di cui i piu&#8217; comuni sono il PAP ed il CHAP con le sue varianti MSCHAP80 e MSCHAP81. La pricipale differenza fra questi e&#8217; che mentre PAP si avvale dell&#8217;uso di credenziali in chiaro, gli altri prevedono l&#8217;uso di qualche forma di cifratura per le password da inviare. Per sapere gli username e le password da utilizzare in una certa sessione, pppd legge il contenuto di due file che andra&#8217; a cercare nella directory /etc/ppp/. I nomi di questi file sono rispettivamente pap-secrets e chap-secrets, ed il loro formato e&#8217; praticamente identico. Questi file sono praticamente composti da righe successive contenenti ognuna le informazioni relative ad una specifica sessione suddivise in tre campi: il primo contiene lo username, il secondo contiene il nome del server remoto (di solito al suo posto viene specificato il jolly &#8220;*&#8221;), il terzo contiene la password. In realta&#8217; ci sarebbe un quarto campo opzionale che puo&#8217; contenere una lista di indirizzi IP validi per raggiungere il server, ma nei collegamenti via modem questo campo e&#8217; naturalmente inutilizzato. Per consentire a pppd di sapere quale password utilizzare e&#8217; sufficiente utilizzare nel corrispondente file in /etc/ppp/peers l&#8217;opzione &#8216;name&#8217; seguita dal nostro username per quella connessione. In questo modo pppd cerchera&#8217; nei file contenenti i &#8216;segreti&#8217; la stringa contenente quello username e ne utilizzera&#8217; la password relativa.<br />
Terminata la fase di autenticazione pppd informera&#8217; il kernel dell&#8217;indirizzo IP assegnatogli dall&#8217;host remoto e dell&#8217;indirizzo IP dello stesso host, impostando, nel caso una delle opzioni passategli all&#8217;avvio sia stata &#8216;defaultroute&#8217;, la tabella di routing in modo che l&#8217;host remoto venga riconosciuto come gateway predefinito, ossia che qualunque richiesta diretta ad indirizzi IP non contemplati nel file /etc/hosts venga instradata verso l&#8217;host remoto. Verra&#8217; inoltre letto il file /etc/resolv.conf per conoscere gli indirizzi IP dei server DNS da interrogare per la risoluzione degli URL; e&#8217; comunque possibile fare in modo che pppd ottenga l&#8217;indirizzo IP di un server DNS direttamente dall&#8217;host remoto, basta specificare l&#8217;opzione &#8216;usepeerdns&#8217;.<br />
Da questo momento in poi sara&#8217; disponibile un&#8217;interfaccia di rete denominata &#8220;pppX&#8221;, dove X e&#8217; un numero che parte da 0 e si incrementa di una unita&#8217; per ogni eventuale interfaccia creata successivamente. A tale interfaccia verra&#8217; connesso il dispositivo seriale specificato fra le opzioni di pppd.</p>
<h3>ADSL</h3>
<p>Vi sono vari protocolli di trasporto per quanto riguarda la connessione a linee ADSL a banda larga, quindi per questo tipo di connessioni occorre accertarsi di quali siano i rpotocolli supportati dal nostro provider. Il caso piu&#8217; semplice, ma purtroppo anche quello meno diffuso, prevede una connessione di tipo bridged dove la nostra macchina diventa a tutti gli effetti un nodo della sottorete del provider, e in questo caso non serve nessun tipo di software di collegamento.<br />
Nel caso di collegamento a linea adsl con protocollo PPPoE (PPP over Ethernet), avendo a disposizione una versione sufficientemente recente di pppd e i necessari moduli di cui abbiamo accennato sopra, all&#8217;interfaccia pppX verra&#8217; connessa la scheda di rete alla quale e&#8217; collegato il modem. E&#8217; importante, in quest&#8217;ultimo caso, che si sia provveduto precedentemente a caricare il driver relativo alla scheda di rete in oggetto, ma allo stesso tempo e&#8217; necessario che l&#8217;interfaccia ethX corrispondente non sia stata configurata con un indirizzo IP, o al massimo che le sia stato assegnato un indirizzo appartenente alla stessa sottorete dell&#8217;interfaccia Ethernet del modem ADSL (utile in seguito per poter sfruttare le funzionalita&#8217; di configurazione remota del modem); e&#8217; sufficiente tirare su l&#8217;interfaccia con un comando del tipo &#8220;<em>ifconfig ethX &lt;indirizzoIP&gt;</em>&#8221; (oppure, se non si vuole assegnare l&#8217;indirizzo, &#8220;<em>ifconfig ethX 0.0.0.0</em>&#8220;).<br />
Il terzo protocollo utilizzato sulle linee ADSL e&#8217; il PPPoATM (PPP over ATM). In questo caso, a differenza di PPPoE, l&#8217;incapsulamento dei dati non viene effettuato da programmi in user space ma direttamente dall&#8217;hardware (e in questo caso abbiamo un guadagno in termini di prestazioni) o dal driver di periferica.<br />
In linux esistono due possibilita&#8217; per poter utilizzare questo protocollo: la prima riguarda l&#8217;acquisto di una scheda ATM e l&#8217;utilizzo del supporto di pppd per PPPoATM e del relativo supporto a livello kernel. Occorre pero&#8217; notare che potrebbe non essere semplice reperire in commercio una di queste schede a causa della loro scarsa diffusione, e inoltre il driver PPPoA del kernel e&#8217;, al momento in cui scriviamo, ancora in fase sperimentale.<br />
La seconda possibilita&#8217; riguarda l&#8217;acquisto di un modem (generalmente con interfaccia USB) per il quale vengano sviluppati i necessari driver per Linux. Il sito di riferimento in questo caso e&#8217; quello del progetto eciadsl (<a href="http://eciadsl.flashtux.org%29/">http://eciadsl.flashtux.org)</a>, un progetto che si occupa appunto dello sviluppo di driver per modem che supportano PPPoATM.<br />
Vi sono poi casi particolari, come ad esempio quello del modem Alcatel Speedtouch Home. Questo particolare modem consente di utilizzare sia PPPoE che PPPoATM, ma mentre nel primo caso occorre configurarlo come bridge e utilizzarlo come qualunque altro modem Ethernet, nel secondo caso occorre configurarlo come server PPtP (Point to Point tunneling Protocol, un protocollo ideato da Microsoft) e installare sulla macchina un client PPtP (<a href="http://pptpclient.sourceforge.net%29/">http://pptpclient.sourceforge.net)</a>. Successivamente occorre configurare pppd perche&#8217; utilizzi questo client per la connessione all&#8217;internet; si rimanda alla documentazione del pacchetto pptpclient per ulteriori dettagli sulla configurazione di pppd.</p>
<h3>Script accessori</h3>
<p>Oltre ai file che abbiamo gia&#8217; menzionato esistono anche vari script che vengono invocati da pppd in diverse fasi della procedura di connessione. Fra questi vi sono, ad esempio, /etc/ppp/ip-up e /etc/ppp/ip-down, che vengono eseguiti rispettivamente nel momento in cui e&#8217; disponibile il collegamento e nel momento in cui questo cessa di esistere. Questi script vengono eseguiti in un ambiente impostato specificamente per essi e contenente solo le variabili necessarie piu&#8217; altre variabili contenenti parametri relativi al collegamento in funzione.<br />
Mediante questi file possiamo automatizzare lo svolgimento di alcuni compiti, come ad esempio il prelevamento di posta da un server pop3 remoto, lo svuotamento della coda di messaggi del nostro server di posta, la sincronizzazione dell&#8217;orologio di sistema con un time server, e cosi&#8217; via. E&#8217; sufficiente creare questi file e scriverci dentro tutti i comandi che vogliamo vengano eseguiti.<br />
Le funzionalita&#8217; di pppd lo rendono un software veramente molto flessibile, in grado di soddisfare praticamente qualsiasi nostra esigenza. E&#8217; possibile ad esempio sfruttare la funzionalita&#8217; di multilink moltiplicando la larghezza di banda a nostra disposizione tramite lo sfruttamento contemporaneo di piu&#8217; modem, o utilizzare la capacita&#8217; di pppd di avviare autonomamente una connessione solo quando viene richiesto un accesso all&#8217;esterno, salvo poi interromperla nel caso che non venga utilizzata per un certo periodo di tempo.<br />
Se si sono creati i file necessari in /etc/ppp/peers, e si sono inserite tutte le necessarie opzioni nei vari file di configurazione, per lanciare la connessione ad Internet sara&#8217; sufficiente utilizzare il comando &#8220;<em>pppd call nome_connessione</em>&#8220;, dove nome_connessione deve corrispondere al nome di un file presente in /etc/ppp/peers. Naturalmente potremo facilmente associare il comando ad un&#8217;icona sul desktop, o ad una voce nel menu dell&#8217;ambiente grafico preferito. Nel momento in cui vorremo fermare il collegamento dovremo semplicemente &#8220;uccidere&#8221; il processo relativo al demone con il comando &#8220;killall pppd&#8221;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.solira.org/2006/06/il-collegamento-ad-internet-e-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>No Brevetti</title>
		<link>http://www.solira.org/2006/06/no-brevetti/</link>
		<comments>http://www.solira.org/2006/06/no-brevetti/#comments</comments>
		<pubDate>Sat, 03 Jun 2006 16:56:37 +0000</pubDate>
		<dc:creator>mario</dc:creator>
				<category><![CDATA[Articoli]]></category>

		<guid isPermaLink="false">http://solira.is-a-geek.org/?p=89</guid>
		<description><![CDATA[Tanti anni fa, in un&#8217;epoca lontana, c&#8217;erano dei re violenti e malvagi. Avevano potere di vita e di morte su tutti, e lo esercitavano con la polizia, le guardie armate, persino i preti che erroneamente sostenevano che questi tiranni erano legittimati da Dio in persona. Poi fu scoperto un nuovo continente. Uno spazio immenso, e [...]]]></description>
			<content:encoded><![CDATA[<p>Tanti anni fa, in un&#8217;epoca lontana, c&#8217;erano dei re violenti e malvagi. Avevano potere di vita e di morte su tutti, e lo esercitavano con la polizia, le guardie armate, persino i preti che erroneamente sostenevano che questi tiranni erano legittimati da Dio in persona.</p>
<p>Poi fu scoperto un nuovo continente. Uno spazio immenso, e poco popolato. C&#8217;erano coloni, c&#8217;erano pacifici abitanti originari, c&#8217;erano assemblee e decisioni comuni di buon senso. I coloni non avevano nè polizia nè esercito. Ma sapevano scrivere&#8230;<br />
<span id="more-89"></span><br />
Mandarono lettere in Europa, raccontando com&#8217;era la loro vita. E un giovane svizzero, dal cuore ardente, ne lesse molte. Si chiamava Jean-Jacques Rousseau. Si mise a scrivere un libro, stampato dai liberi editori svizzeri.</p>
<p>Inventò, scrisse e riscrisse un concetto eretico, il più rivoluzionario mai scritto: &#8220;il diritto naturale dei popoli e delle genti&#8221;.</p>
<p>Il nostro nuovo continente, per noi che abitiamo anche il cyberspazio, è Internet. Qui finora non c&#8217;è stata troppa polizia, pochi i reati, minima la violenza e la prevaricazione. In rapporto a ciò che abbiamo fatto e costruito.</p>
<p>Abbiamo colonizzato in dieci anni uno spazio per mezzo miliardo di esseri umani (e più). Senza una vittima, senza una strage, senza nemmeno una guerra: un record millenario! Mai era successo nella storia conosciuta. E continua tuttora&#8230;</p>
<p>Siamo la generazione della pace, della trasformazione non violenta. Spostiamo bit e non atomi</p>
<p>Qualcuno però impose leggi ingiuste a quegli antichi coloni di allora. Se volevano bere una tazza di tè dovevano pagare una tassa a un re lontano, indifferente e sconosciuto&#8230;.</p>
<p>Si ribellarono. Rifiutarono l&#8217;ingiusta legge. Si liberarono.</p>
<p>Oggi un legge ingiusta, cresciuta sulle trame e sul potere occulto di alcune multinazionali, ci impone tagliole su tutto lo scibile umano delle conoscenze, dell&#8217;arte e della cultura.</p>
<p>Ci marchia come pirati, come malfattori, come disonesti. In nome di norme contrarie a qualsiasi diritto naturale.</p>
<p>Questo scempio si chiama copyright per 175 anni filati, si chiama brevettazione anche di oggetti e fenomeni naturali, del nostro stesso codice genetico.</p>
<p>Questo scempio ci impone di pagare tasse anche se vogliamo condividere liberamente e gratuitamente ciò che è nostro, la nostra musica, le nostre fotografie, filmati, il nostro software.</p>
<p>Noi invece affermiamo il nostro diritto inalienabile a vivere serenamente la rete, senza manette, senza sorveglianti pubblici o privati</p>
<p>A non essere costretti a pagare per ciò che è abbondante come l&#8217;aria, e che è nostro.</p>
<p>Ad apprendere, sperimentare e crearci un futuro</p>
<p>A vincere sulla nostra qualità, la nostra firma</p>
<p>A cercare la nostra felicità, come dissero allora quegli uomini liberi&#8230;.</p>
<p>Colonizzando in pace il cyberspazio noi abbiamo fatto un favore a noi stessi, agli altri e al mondo. Anche a coloro che vorrebbero vederci in prigione o soggetti di leggi e tasse assurde.</p>
<p>Con internet abbiamo sviluppato un gioco di libertà reciproca, e di mutuo arricchimento (materiale e non) quale non si era mai visto negli ultimi cento anni.</p>
<p>Nessuno Stato, potere o impresa l&#8217;ha creato. L&#8217;ha creato invece prima la comunità scientifica, poi quella tecnica, quindi cittadini e utenti come Noi. Insieme.</p>
<p>Noi intendiamo andare avanti su questo cammino di Pace e vantaggioso per tutti. E rifiutiamo gli ostacoli artificiali che ci vengono imposti.</p>
<p>Questo cammino sta già cambiando la vita di un terzo degli italiani. Quando mai una trasformazione tanto vasta è stata tanto pacifica e silenziosa nel nostro Paese?</p>
<p>Quante le proteste contro internet? Oggi è divenuta persino invisibile, tanto è naturale usarla. E sono passati solo sei anni dalla sua partenza di massa qui da noi&#8230;</p>
<p>Oggi l&#8217;80% delle imprese italiane usa la rete. E&#8217; diventato il sistema nervoso del lavoro del Paese.</p>
<p>E&#8217; diventato lo strumento degli studenti, e di chi impara, di qualsiasi età egli sia.</p>
<p>Internet vale un milione di posti di lavoro in Italia e almeno dieci milioni in Europa. E&#8217; il maggiore datore di lavoro per le nuove generazioni del continente.</p>
<p>Invece di punire e di mettere tasse ingiuste perchè i nostri politici non cercano di capire Internet e di facilitarci il cammino?</p>
<p>Cercano di bloccare qualcosa che è nei fatti: la condivisione della conoscenza e del sapere dell&#8217;umanità. Ormai nelle cose, nella tecnica, nell&#8217;infrastruttura. Vogliono far girare all&#8217;indietro la ruota della storia?</p>
<p>Beppe Caravita</p>
]]></content:encoded>
			<wfw:commentRss>http://www.solira.org/2006/06/no-brevetti/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Operare con Software Libero</title>
		<link>http://www.solira.org/2005/02/operare-con-software-libero/</link>
		<comments>http://www.solira.org/2005/02/operare-con-software-libero/#comments</comments>
		<pubDate>Sat, 26 Feb 2005 16:58:58 +0000</pubDate>
		<dc:creator>mario</dc:creator>
				<category><![CDATA[Articoli]]></category>

		<guid isPermaLink="false">http://solira.is-a-geek.org/?p=93</guid>
		<description><![CDATA[Nei mesi di febbraio/marzo dell&#8217;anno 2005, l&#8217;associazione SOLIRA ha tenuto un corso di avviamento all&#8217;uso del software libero, per i dipendenti del comune di Ragusa. In quella occasione sono stati forniti ai partecipanti tre documenti, sull&#8217;uso dei software trattati nei vari incontri, raggruppati in questa pagina. Linux &#38; KDE tratta una introduzione a Linux e [...]]]></description>
			<content:encoded><![CDATA[<p>Nei mesi di febbraio/marzo dell&#8217;anno 2005, l&#8217;associazione SOLIRA ha tenuto un corso di avviamento all&#8217;uso del software libero, per i dipendenti del comune di Ragusa. In quella occasione sono stati forniti ai partecipanti tre documenti, sull&#8217;uso dei software trattati nei vari incontri, raggruppati in questa pagina.</p>
<p><strong><a href="http://ennebi.solira.org/LUG/linuxkde.pdf">Linux &amp; KDE</a></strong> tratta una introduzione a Linux e illustra le operazioni fondamentali per l&#8217;uso quotidiano. Si parla di utenti, diritti, permessi, gestione di file e directory, supporti di memorizzazione esterni (floppy, cd/dvd-rom), personalizzazioni dell&#8217;ambiente.</p>
<p><strong><a href="http://ennebi.solira.org/LUG/writer.pdf">OpenOffice Writer</a></strong> tratta dell&#8217;uso del programma di word processing del progetto OpenOffice.org. Vengono trattati: formattazione di selezione, paragrafi, pagine, controllo ortografico, ricerca e sostituzione, tabulazioni, tabelle, immagini, stampa in serie, personalizzazioni, formati aperti, stampe.</p>
<p><strong><a href="http://ennebi.solira.org/LUG/firethunder.pdf">Firefox &amp; Thunderbird</a></strong> tratta dell&#8217;uso del browser e del client di posta elettronica del progetto Mozilla. Tratta di come muoversi nel web, segnalibri, cronologia, navigazione per schede, difesa della privacy, impostazione account di posta elettronica, ricezione e composizione/invio di messaggi, allegati, uso della rubrica, contatti, liste, filtri.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.solira.org/2005/02/operare-con-software-libero/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Tecnologie e Programmazione Web: HTML, JavaScript, PHP</title>
		<link>http://www.solira.org/2005/01/tecnologie-e-programmazione-web-html-javascript-php/</link>
		<comments>http://www.solira.org/2005/01/tecnologie-e-programmazione-web-html-javascript-php/#comments</comments>
		<pubDate>Tue, 11 Jan 2005 17:08:17 +0000</pubDate>
		<dc:creator>mario</dc:creator>
				<category><![CDATA[Articoli]]></category>

		<guid isPermaLink="false">http://solira.is-a-geek.org/?p=106</guid>
		<description><![CDATA[In queste pagine sono pubblicati tutti i materiali concernenti la serata sulle Tecnologie e Programmazione Web, organizzata da Solira presso il Centro di Servizi Culturali del Comune di Ragusa il 16 Dicembre 2004. Il materiale comprende la versione PDF delle slide presentate nella serata, tre pagine di codice, rispettivamente di HTML, JavaScript e PHP e [...]]]></description>
			<content:encoded><![CDATA[<p>In queste pagine sono pubblicati tutti i materiali concernenti la serata sulle <em>Tecnologie e Programmazione Web</em>, organizzata da Solira presso il Centro di Servizi Culturali del Comune di Ragusa il 16 Dicembre 2004.</p>
<p>Il materiale comprende la versione PDF delle slide presentate nella serata, tre pagine di codice, rispettivamente di HTML, JavaScript e PHP e tre pagine contenenti i commenti alle pagine suddette. In realta&#8217;, nella logica temporale degli argomenti, le pagine HTML (codice e commenti) andrebbero lette dopo la slide 8, le pagine JavaScript dopo la slide 12 e, infine, le pagine PHP dopo la slide 17.<span id="more-106"></span></p>
<p>Chi e&#8217; interessato puo&#8217; scaricare da <a href="http://ennebi.solira.org/tepweb/tepweb-pdf.zip">http://ennebi.solira.org/tepweb/tepweb-pdf.zip</a> un file compresso contenente due file PDF: uno con le slide ed uno con le parti commentate.</p>
<h3>Materiali per la consultazione</h3>
<p>Innanzi tutto da <a href="http://ennebi.solira.org/LUG/tecweb.pdf">http://ennebi.solira.org/LUG/tecweb.pdf</a> si possono consultare le slide che costituiscono l&#8217;ossatura dell&#8217;intervento.</p>
<p><a href="http://www.solira.org/ListHTML">ListHTML</a><br />
Questa e&#8217; la pagina che contiene un esempio di esecuzione e il listing della prima pagina di esempio che tratta le caratteristiche principali di HTML.</p>
<p><a href="http://www.solira.org/CommHTML">CommHTML</a><br />
La pagina contiene i commenti sul codice della pagina HTML di esempio precedente</p>
<p><a href="http://www.solira.org/ListJS">ListJS</a><br />
Questa e&#8217; la pagina che contiene un esempio di esecuzione e il listing della seconda pagina di esempio che tratta le caratteristiche principali di JavaScript<a href="http://www.solira.org/JavaScript/edit">?</a></p>
<p><a href="http://www.solira.org/CommJS">CommJS</a><br />
Pagina contenete commenti sul codice JavaScript<a href="http://www.solira.org/JavaScript/edit">?</a> inserito nella seconda pagina di esempio</p>
<p><a href="http://www.solira.org/ListPHP1">ListPHP1</a><br />
La prima pagina contenete codice PHP. La pagina prepara i dati per l&#8217;interrogazione del database</p>
<p><a href="http://www.solira.org/CommPHP1">CommPHP1</a><br />
I commenti al codice della pagina di preparazione dei dati</p>
<p><a href="http://www.solira.org/ListPHP2">ListPHP2</a><br />
La seconda pagina contenete codice PHP. La pagina effettua l&#8217;interrogazione e costruisce l&#8217;HTML da restituire al client</p>
<p><a href="http://www.solira.org/CommPHP2">CommPHP2</a><br />
I commenti al codice della seconda pagina PHP</p>
]]></content:encoded>
			<wfw:commentRss>http://www.solira.org/2005/01/tecnologie-e-programmazione-web-html-javascript-php/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Il Sistema Operativo Linux</title>
		<link>http://www.solira.org/2004/11/struttura-di-un-sistema-operativo/</link>
		<comments>http://www.solira.org/2004/11/struttura-di-un-sistema-operativo/#comments</comments>
		<pubDate>Sun, 28 Nov 2004 17:05:20 +0000</pubDate>
		<dc:creator>massimo</dc:creator>
				<category><![CDATA[Articoli]]></category>

		<guid isPermaLink="false">http://solira.is-a-geek.org/?p=102</guid>
		<description><![CDATA[Struttura dei sistemi operativi Un sistema operativo non e&#8217; un singolo software, anche se di solito chi utilizza un computer da poco tempo ha la tendenza a vederlo come tale, ma e&#8217; bensi&#8217; una collezione di software che consentono di utilizzare un computer. Non e&#8217; detto che questi software siano scritti da un unico soggetto, [...]]]></description>
			<content:encoded><![CDATA[<h1>Struttura dei sistemi operativi</h1>
<p>Un sistema operativo non e&#8217; un singolo software, anche se di solito chi utilizza un computer da poco tempo ha la tendenza a vederlo come tale, ma e&#8217; bensi&#8217; una collezione di software che consentono di utilizzare un computer. Non e&#8217; detto che questi software siano scritti da un unico soggetto, anzi, solitamente e&#8217; vero il contrario, sia che si parli di sistemi proprietari o di sistemi liberi; basti pensare ad esempio alle aziende produttrici di hardware che producono i driver necessari per l&#8217;utilizzo dei loro prodotti. I software che costituiscono il sistema operativo possono essere rappresentati in gruppi, detti livelli, in funzione della loro collocazione logica; si va in questo caso dal livello piu&#8217; alto rappresentato dall&#8217;utente scendendo fino ai componenti elettronici della macchina.<br />
<span id="more-102"></span><br />
Al livello piu&#8217; basso, quindi piu&#8217; vicino all&#8217;hardware della macchina, troviamo il kernel. Il kernel, come indica lo stesso termine nella sua traduzione letterale dall&#8217;inglese, e&#8217; il nucleo del sistema operativo, e da esso dipende il funzionamento di tutta la macchina. In pratica si tratta dello strato software presente fra le applicazioni che girano nello spazio utente e la parte hardware composta dall&#8217;unita&#8217; centrale e dalle varie periferiche installate nella macchina. Si occupa della gestione dei processori, della gestione della memoria, dell&#8217;assegnazione delle risorse ai vari processi in esecuzione. Il kernel si occupa anche della gestione di ogni periferica installata sulla macchina, in modo diretto se il codice necessario e&#8217; stato incluso all&#8217;interno del kernel stesso, o indirettamente occupandosi del caricamento del codice esterno contenente i driver necessari al loro funzionamento.</p>
<p>I kernel possono essere di due tipi: parleremo di kernel monolitici, e Linux e&#8217; uno di questi, se ci riferiamo ad un unico programma che si occupa di tutti gli aspetti relativi alla gestione della macchina e dei processi. Anche se alcune funzioni di questi possono essere incluse in moduli esterni da caricare all&#8217;occorrenza, di fatto poi questi moduli andranno comunque a costituire parte integrante del kernel stesso. L&#8217;alternativa e&#8217; rappresentata dai cosiddetti microkernel, che delegano invece la maggior parte delle funzioni a programmi separati limitando al minimo le proprie funzionalita&#8217;. Questi ultimi, teorizzati da <a href="http://it.wikipedia.org/wiki/Andrew_S._Tanenbaum">Tanenbaum</a>, dovrebbero rappresentare la concezione piu&#8217; moderna di kernel, ma non hanno avuto in pratica, almeno fino ad ora, quel seguito che Tanenbaum si sarebbe aspettato. Lo stesso Tanenbaum bollo&#8217; come gia&#8217; obsoleto il kernel Linux fin dalla sua nascita, soltanto per il fatto che era stato concepito come monolitico: i posteri gli hanno evidentemente dato torto.</p>
<p>Al di sopra del kernel troviamo le librerie di sistema, le quali sono composte da codice contenente le chiamate di sistema necessarie per interagire con il kernel e tutte quelle funzioni di cui ha bisogno ogni programma per svolgere il suo compito. In questo modo il programmatore che va a scrivere un&#8217;applicazione non dovra&#8217; inserire direttamente all&#8217;interno della stessa tutto il codice necessario, ma si limitera&#8217; a scrivere le funzioni specifiche dell&#8217;applicazione facendo in modo che vengano incluse le funzioni rese disponibili dalle librerie condivise a tutti i programmi che ne hanno bisogno, riducendo cosi&#8217; drasticamente il carico del sistema e lo spazio occupato sul disco.</p>
<p>Salendo piu&#8217; in alto troviamo tutti quei programmi di utilita&#8217; necessari alla gestione della macchina. In questa categoria ricadono programmi che vengono avviati contestualmente all&#8217;avvio della macchina, e che quindi non vengono utilizzati spesso dall&#8217;utente ma funzionano in modo autonomo dopo essere stati appositamente configurati. Si tratta prevalentemente di software che provvedono al monitoraggio del sistema stesso o all&#8217;esecuzione di compiti ben determinati, come ad esempio l&#8217;avvio di operazioni a cadenza prestabilita o l&#8217;inizializzazione della coda di stampa.</p>
<p>Infine, al livello piu&#8217; vicino all&#8217;utente, troviamo tutti quei programmi che presuppongono una stretta interazione con l&#8217;utente e che spesso costituiscono la dotazione dei comandi del sistema. Infatti i comandi di uso comune non sono altro che dei semplici programmi installati nel sistema al pari di qualunque altro software, e che invochiamo semplicemente, almeno nell&#8217;uso da linea di comando, chiamandoli per nome. Qui troviamo principalmente l&#8217;interfaccia utente, sia essa a linea di comando o grafica, tutti quei comandi e/o interfacce che ci permettono di interagire con il <a href="http://it.wikipedia.org/wiki/Filesystem">filesystem</a>, varie utilita&#8217; per la configurazione della macchina, programmi che ci permettano di editare file di testo, e cosi&#8217; via.</p>
<p>Con questo avremmo gia&#8217; un sistema funzionante, ma qualunque sistema operativo non puo&#8217; non essere affiancato da una collezione di software per l&#8217;uso produttivo della macchina, e questa dotazione di software variera&#8217; in funzione dell&#8217;utilizzo al quale e&#8217; destinato quel sistema. Se ad esempio dobbiamo utilizzare la macchina come server da collegare ad internet, installeremo un server web, un server di posta, e cosi&#8217; via. Se invece la macchina sara&#8217; destinata a fare da workstation in un ufficio, dovremo installare un word processor, un gestionale, magari un software di disegno tecnico, eccetera.</p>
<h1>POSIX</h1>
<p>Linux e&#8217; un moderno sistema operativo basato su UNIX. UNIX e&#8217; forse il sistema operativo piu&#8217; longevo, visto che venne introdotto nel 1970 quando ancora la diffusione dei computer presso l&#8217;utenza domestica e nei piccoli uffici era ancora (relativamente) lontana. UNIX ha conosciuto nel corso degli anni diversi cambi di proprietario e di licenza. Da UNIX vennero derivati diversi sistemi proprietari e non, e ad un certo punto si penso&#8217; di fare in modo che lo sviluppo di questi sistemi cosi&#8217; simili fra di loro non procedesse percorrendo strade lontane le une dalle altre. In particolare le case produttrici di software non volevano correre il rischio di dover creare vari rami di sviluppo troppo differenti tra loro per i prodotti che commercializzavano, in modo da farli funzionare su ognuna di queste piattaforme che di fatto avevano piu&#8217; o meno tutte lo stesso target, erano cioe&#8217; destinate alla stessa tipologia di utenza. Se da un lato UNIX rappresentava gia&#8217; uno standard di per se&#8217;, dall&#8217;altro pero&#8217; occorreva pagare per poter commercializzare un sistema come UNIX-compliant, e molti sistemi liberi nati nei momenti in cui parti di codice di UNIX erano state rilasciate con licenza libera, i cosiddetti sistemi UNIX-like, non potevano certo permettersi di pagare delle royalty.</p>
<p>Per questo motivo naquero due processi di standardizzazione, ad opera di due diversi enti, che poi confluirono in un unico standard: <strong>POSIX</strong>. Lo standard POSIX si occupa di definire alcuni concetti di base da seguire nella realizzazione del sistema operativo, in modo da garantire la portabilita&#8217; delle applicazioni da un sistema all&#8217;altro con il minimo sforzo. La conseguenza di questo e&#8217; una sostanziale uniformita&#8217; di molti aspetti dei sistemi operativi, come ad esempio l&#8217;utilizzo di chiamate di sistema simili, la struttura dell&#8217;albero delle directory, i nomi dei comandi basilari ed il modo per invocarli con delle opzioni, il funzionamento di base dell&#8217;interprete dei comandi, e altre cose. In pratica, chi e&#8217; abituato a utilizzare qualunque sistema conforme alle specifiche POSIX, si trovera&#8217; a suo agio davanti ad un altro sistema POSIX.</p>
<p>La famiglia dei sistemi POSIX e&#8217; piuttosto ampia e comprende diversi sistemi commerciali, per lo piu&#8217; derivati direttamente da UNIX, (AIX, SunOs<a href="http://www.solira.org/SunOs/edit">?</a>, IRIX, ecc.) e molti sistemi a codice aperto come le diverse varianti di BSD e, naturalmente, Linux. In tempi relativamente recenti alla famiglia si e&#8217; aggiunta anche Apple, che ha basato il suo sistema operativo MacOS<a href="http://www.solira.org/MacOS/edit">?</a> su BSD a partire dalla versione 10 (assumendo il nome di MacOS<a href="http://www.solira.org/MacOS/edit">?</a> X).</p>
<h1>Linux</h1>
<p>Linux ha un ruolo trainante nel mondo POSIX. L&#8217;espansione di Linux nei suoi 14 anni di vita, e l&#8217;interesse da parte di una folta schiera di programmatori e di software house che lo supportano, ha fatto si&#8217; che venisse sviluppata una quantita&#8217; non indifferente di software, e questo, unito alla facilita&#8217; nel portare il software verso altri sistemi POSIX, ha contribuito indirettamente in modo positivo all&#8217;arricchimento della dotazione di questi. Ove vi fossero incompatibilita&#8217; di licenza, o altre cose che non permettessero il porting diretto delle applicazioni, si e&#8217; provveduto a realizzare uno strato di emulazione che permettesse di eseguire direttamente binari compilati per Linux; data la grande somiglianza fra questi sistemi, i programmi che mettono a disposizione questi ambienti emulati risultano estremamente efficienti. FreeBSD<a href="http://www.solira.org/FreeBSD/edit">?</a> e MacOSX<a href="http://www.solira.org/MacOSX/edit">?</a> traggono giovamento da questo sistema.</p>
<p>Il supporto hardware di Linux non e&#8217; assolutamente inferiore alla dotazione di applicativi. Oggi il kernel Linux supporta direttamente gran parte dell&#8217;hardware disponibile sul mercato. Molte case produttrici hanno contribuito a far si&#8217; che il loro hardware venisse supportato, o fornendo le specifiche che permettessero lo sviluppo dei driver, oppure rilasciando esse stesse i moduli binari da caricare all&#8217;interno del kernel.</p>
<p>Linux, inoltre, e&#8217; il sistema operativo che supporta il piu&#8217; alto numero di piattaforme. Sebbene sia nato e si sia sviluppato su piattaforma x86, alla quale appartengono la grande maggioranza delle macchine che utilizziamo, Linux e&#8217; stato in seguito portato anche su altre piattaforme. Al giorno d&#8217;oggi e&#8217; disponibile una versione del kernel Linux per circa 20 diverse architetture, comprese le ultime architetture a 64 bit prodotte da AMD e Intel e derivate direttamente dall&#8217;originale x86 a 32 bit. Un settore nel quale Linux sta ultimamente riscuotendo un discreto successo e&#8217; quello dei dispositivi <em>embedded</em>, sistemi che sono caratterizzati dal fatto di dover funzionare in ambiti ben specifici, la maggior parte delle volte senza dispositivi di memorizzazione di massa. Il fatto di poter compilare, grazie alla disponibilita&#8217; del codice sorgente, una versione del kernel personalizzata che includesse solo le caratteristiche effettivamente necessarie, ha fatto si&#8217; che sempre piu&#8217; aziende produttrici di tali sistemi scegliessero Linux come base per lo sviluppo di sistemi operativi dedicati alla gestione di prodotti digitali. Fra questi sistemi troviamo ricevitori satellitari per la TV, video registratori digitali, computer palmari, telefoni cellulari multiuso.</p>
<p>Linux e&#8217; un sistema operativo <strong>multitasking</strong> e <strong>multiutente</strong> estremamente stabile e performante. La gestione della memoria da parte del kernel di Linux e&#8217; molto efficace. La memoria del sistema viene suddivisa in tante piccole parti chiamate pagine di memoria. Ogni programma venga lanciato sotto Linux da&#8217; vita ad almeno un processo, il quale verra&#8217; trasferito in un determinato spazio di memoria, e li&#8217; verra&#8217; eseguito. Altre aree di memoria conterranno parti di codice condiviso tra diverse applicazioni, verosimilmente librerie condivise, e aree destinate all&#8217;immagazzinamento temporaneo di dati. L&#8217;esecuzione contemporanea di vari processi e&#8217; garantita dallo scheduler, una parte del kernel che si occupa di distribuire i cicli di CPU fra i processi che li richiedono prestando attenzione alla priorita&#8217; di un processo rispetto ad un altro e al suo effettivo bisogno della CPU in quel dato istante. Inoltre, a differenza di altri sistemi operativi, gli applicativi in Linux, come negli altri POSIX, generalmente non accedono direttamente all&#8217;hardware. Mentre altrove questo, per ragioni architetturali, e&#8217; quasi una prassi, l&#8217;architettura di Linux scoraggia di fatto il programmatore che delega, salvo quando effettivamente necessario, per queste operazioni il kernel.</p>
<p>Per tutti questi motivi, se un processo si blocca, non solo non causa il blocco di altre applicazioni che girano ognuna nel loro spazio di memoria, ma soprattutto non blocca il sistema operativo. Questo e&#8217; vitale per qualunque sistema, come praticamente tutti i sistemi POSIX, che sono nati per essere installati su server di produzione; e&#8217; semplicemente impensabile che una macchina che gestisca, ad esempio, il funzionamento di un&#8217;intera rete aziendale, fornendo servizi ai vari client, si blocchi improvvisamente paralizzando l&#8217;intera struttura.</p>
<p>Ma oltre ad essere un sistema stabile e performante Linux e&#8217; anche un sistema con una particolare inclinazione alla sicurezza. La multiutenza in Linux, a differenza di altri sistemi che si spacciano per multiutente per il solo fatto di cambiare lo sfondo del desktop in funzione di chi ha effettuato il login, e&#8217; realmente tale. Qualunque utente puo&#8217; autenticarsi nel sistema anche quando vi sono altri utenti gia&#8217; presenti, e per ogni utente vengono stabilite a priori le operazioni che si possono eseguire. Grazie alle caratteristiche dei file system utilizzati in Linux e&#8217; possibile limitare gli accessi ai file, alle directory, e ai file eseguibili, ed inoltre il sistema operativo e&#8217; in grado di assegnare ad ogni utente una determinata quantita&#8217; di spazio sul disco e perfino un limite all&#8217;utilizzo delle risorse del sistema.</p>
<p>Ogni programma che viene eseguito sotto Linux eredita i privilegi dell&#8217;utente che lo ha lanciato, e da questo consegue che solo i programmi lanciati con l&#8217;identificatore dell&#8217;amministratore del sistema (che nei sistemi POSIX si chiama <span style="text-decoration: underline;">root</span>) possono realmente essere pericolosi per l&#8217;integrita&#8217; del sistema stesso. Fortunatamente pero&#8217; in pratica l&#8217;amministratore non si autentica mai nel sistema come tale, ma piuttosto assume i privilegi necessari ai compiti che intende svolgere solo quando occorre. Inoltre pochi programmi vengono lanciati in esecuzione con l&#8217;identificatore di root, e si tratta per lo piu&#8217; di programmi noti per la loro sicurezza, e questo consente a chi amministra un sistema Linux di poter andare a dormire la sera con relativa tranquillita&#8217;.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.solira.org/2004/11/struttura-di-un-sistema-operativo/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Il Kernel di Linux</title>
		<link>http://www.solira.org/2004/09/il-kernel-di-linux/</link>
		<comments>http://www.solira.org/2004/09/il-kernel-di-linux/#comments</comments>
		<pubDate>Tue, 28 Sep 2004 16:44:01 +0000</pubDate>
		<dc:creator>massimo</dc:creator>
				<category><![CDATA[Articoli]]></category>

		<guid isPermaLink="false">http://solira.is-a-geek.org/?p=83</guid>
		<description><![CDATA[Il kernel Linux Quando ci si riferisce a Linux si pensa spesso ad uno dei tanti CD che si possono facilmente trovare allegati ad una rivista di informatica e che contengono una distribuzione Linux completa e pronta da usare. In realta&#8217;, il nome Linux designava in origine il kernel scritto da Linus Torvalds sulla base [...]]]></description>
			<content:encoded><![CDATA[<h1>Il kernel Linux</h1>
<p>Quando ci si riferisce a Linux si pensa spesso ad uno dei tanti CD che si possono facilmente trovare allegati ad una rivista di informatica e che contengono una distribuzione Linux completa e pronta da usare.<br />
In realta&#8217;, il nome <span style="text-decoration: underline;">Linux</span> designava in origine il kernel scritto da Linus Torvalds sulla base di Minix, un sistema operativo creato a fini didattici da Tanenbaum, e venne in seguito esteso, nel gergo popolare, per definire anche il sistema operativo GNU/Linux e le sue varie distribuzioni.<br />
<span id="more-83"></span><br />
Il Kernel e&#8217; lo strato software piu&#8217; basso del sistema, a diretto contatto con l&#8217;hardware, e si occupa di gestire i processori, di assegnare le risorse ai vari processi che vengono eseguiti, della gestione della memoria, del caricamento dei driver per le periferiche, i protocolli di rete, e cosi&#8217; via.<br />
In questo modo i programmi che girano nello spazio utente non hanno bisogno di sapere quale particolare periferica e&#8217; installata fisicamente sulla macchina, possono concentrarsi esclusivamente sul loro lavoro, poiche&#8217; ogni istruzione che dovra&#8217; essere inviata all&#8217;hardware verra&#8217; gestita dal kernel insieme a quelle di tutte le altre applicazioni e del kernel stesso.</p>
<p>Appare evidente che per poter svolgere il suo compito e permettere alle applicazioni di essere eseguite, il kernel deve essere caricato prima di ogni altra cosa. A questo pensano il BIOS della macchinae il bootloader. Il BIOS, dopo aver eseguito le inizializzazioni di base e aver testato la memoria, cerchera&#8217; di eseguire il codice contenuto nel primo settore di ognuno dei dispositivi a blocchi in cui gli abbiamo detto di cercare (dischi fissi, floppy o CD-ROM), fermandosi appena ne avra&#8217; trovato uno valido. Nel caso in cui avremmo installato Linux sul disco fisso, sul primo settore di quel disco si trovera&#8217; un bootloader (di solito lilo o grub) che si occupera&#8217; di caricare il kernel.</p>
<h3>Struttura del kernel</h3>
<p>La forma in cui si trova il kernel Linux e&#8217; quella di un file, detto <em>immagine del kernel</em>, solitamente contenuto nella directory /boot. Se abbiamo compilato il kernel includendo i vari driver direttamente al suo interno, allora diremmo che abbiamo creato un kernel monolitico.<br />
Nei sistemi desktop questa pratica e&#8217; poco seguita in quanto un kernel del genere, dovendo necessariamente includere il supporto a tutto quello che intenderemo usare, finisce per raggiungere dimensioni considerevoli. Inoltre, ogni singolo driver verrebbe caricato in memoria anche quando non ci serve realmente, e questo comporta un aumento della memoria allocata per il kernel a danno di quella a disposizione dei programmi che girano nello spazio utente.</p>
<p>I kernel monolitici vengono utilizzati generalmente su macchine che svolgono compiti specifici, di solito quindi dei server, i quali non hanno bisogno di caricare all&#8217;occorrenza dei driver perche&#8217; quello che hanno installato gli serve solitamente fin dall&#8217;inizio, e non gli serve null&#8217;altro. In questo modo si puo&#8217; evitare il rischio che dei malintenzionati dall&#8217;esterno possano sfruttare una debolezza nel meccanismo di caricamento dei driver, potendo cosi&#8217; dare qualche dispiacere all&#8217;amministratore del sistema.</p>
<p>Nell&#8217;uso comune, invece, si preferisce creare dei kernel modulari, in modo che le specifiche funzionalita&#8217; vengano caricate in memoria solo quando occorrono, senza caricare inutilmente il sistema. Inoltre, possiamo in questo modo cambiare la configurazione di un driver semplicemente scaricandolo e ricaricandolo con parametri diversi.<br />
Questo e&#8217; ancor piu&#8217; vero se si deve preparare un kernel che debba poter funzionare su diverse configurazioni hardware, come quelli che vengono inclusi nelle comuni distribuzioni del sistema GNU/Linux. In tal caso il kernel non si limita a risiedere nel file immagine, ma ad esso vanno affiancati i moduli da caricare a runtime, che possiamo trovare nella directory /lib/modules/&lt;numero_versione&gt;. Si capisce che in questo modo possiamo tenere sulla nostra macchina diversi kernel, purche&#8217; ognuno di essi abbia un numero di versione diverso dall&#8217;altro, in quanto in /lib/modules avremo una directory per i moduli di ogni kernel; l&#8217;unico limite e&#8217; rappresentato dalla capienza del disco fisso.</p>
<h3>Ricompilazione del kernel</h3>
<p>Nel momento in cui installiamo una distribuzione qualunque ci viene fornito un kernel generico, funzionante di solito in tutte le configurazioni hardware, dotato di tutti i moduli che potrebbero servire, e a volte con qualche piccola modifica rispetto al kernel originale per implementare qualche funzionalita&#8217; aggiuntiva. Nella maggior parte dei casi questo kernel svolge egregiamente il suo compito, ma a volte e&#8217; necessario dover compilare un kernel personale per poter sfruttare appieno tutte le potenzialita&#8217; del nostro sistema, o anche per poter sfruttare un particolare dispositivo, o infine per poter semplicemente avere un kernel scaricato di tutto quello che sappiamo non potra&#8217; mai servirci, aumentando cosi&#8217; l&#8217;efficienza globale del sistema.</p>
<p>Per poter compilare un kernel occorre avere detrminati requisiti di base:<br />
- il compilatore C di GNU, &#8216;gcc&#8217;<br />
- il pacchetto &#8216;make&#8217;, sempre di GNU<br />
- una serie di pacchetti generalmente inclusi in ogni distribuzione, come ad esempio le binutils e le util-linux<br />
- vari pacchetti in funzione dei supporti che si desidera includere (ad esempio e2fsprogs se si vuole includer il supporto per ext2)<br />
- eventualil tool per la gestione dei moduli (modutils per i kernel fino al 2.4.x, module-init-tools per quelli della serie 2.6.x)<br />
- pacchetti necessari ai tool di configurazione (vedi piu&#8217; avanti)</p>
<p>La versione corretta di ogni pacchetto e una lista completa dei requisiti minimi e&#8217; contenuta nel file Documentation/Changes all&#8217;interno dei sorgenti del kernel.</p>
<p>Per quanto riguarda i sorgenti abbiamo due possibilita&#8217;: installare il pacchetto contenente i sorgenti del kernel della nostra distribuzione, oppure scaricare i sorgenti &#8216;vanilla&#8217;, quelli originali di Linus, dal sito <a href="http://www.kernel.org/">http://www.kernel.org</a> . Questi ultimi si presentano sotto forma di archivio compresso, per cui occorrera&#8217; copiarli nella directory scelta e scompattarli con un &#8216;tar xzvf &lt;nome_pacchetto&gt;&#8217;.<br />
La directory standard per i sorgenti del kernel e&#8217; /usr/src/linux, ma si puo&#8217; optare per una directory qualsiasi purche&#8217; si faccia un collegamento simbolico /usr/src/linux che punti a quest&#8217;ultima (di solito si usa /usr/src/linux che punta a /usr/src/linux-&lt;versione&gt;).</p>
<h3>Configurazione dei sorgenti</h3>
<p>Una volta scompattato il file contenente i sorgenti, prima di iniziare la compilazione vera e propria dovremo configurarli. Esistono diversi metodi per la configurazione del kernel, e per usare ognuno di essi sara&#8217; necessario aver installato determinati software, in modo che sia possibile al programma di configurazione creare l&#8217;interfaccia per interagire con l&#8217;utente.<br />
L&#8217;unica eccezione in questo senso e&#8217; rappresentata dal comando &#8216;make config&#8217;; per configurare i sorgenti con questo comando non e&#8217; necessario nessun software aggiuntivo, in quanto questi ci presentera&#8217; una semplice interfaccia testuale, ponendoci una domanda per ogni voce di configurazione. Per ogni domanda possiamo rispondere con uno di quattro possibili tasti: &#8216;y&#8217; dira&#8217; al configuratore di includere il relativo driver/supporto nell&#8217;immagine del kernel, &#8216;n&#8217; gli dira&#8217; di non includerlo, con &#8216;m&#8217; (presente solo se avremo risposto affermativamente alla domanda che ci chiede se vogliamo abilitare il supporto ai moduli) si fara&#8217; in modo che il driver/supporto venga compilato come modulo esterno, e con &#8216;?&#8217; otterremo un messaggio di aiuto che ci spiega nei dettagli a cosa si rifersce quella particolare opzione. Il difetto principale di &#8216;make config&#8217; e&#8217; che non si puo&#8217; tornare indietro per correggere gli eventuali errori, per cui e&#8217; necessario ripetere l&#8217;intera procedura se abbiamo un ripensamento. Questo lo rende effettivamente poco usato da chiunque.</p>
<p>In alternativa si possono configurare i sorgenti con &#8216;make menuconfig&#8217;, una simpatica interfaccia a menu in modalita&#8217; semigrafica (utilizzabile quindi da console o da terminale) che utilizza le librerie ncurses (che dovremo avere installate). Con &#8216;make menuconfig&#8217; il lavoro e&#8217; decisamente piu&#8217; facile. Le opzioni di configurazione sono raggruppate in vari menu che potremo navigare semplicemente con i tasti freccia su/giu. Nella parte bassa della finestra ci sono tre pulsanti, selezionabili con i tasti freccia dx/sx, che rispettivamente ci fanno entrare in un sottomenu, ci fanno tornare al menu precedente, o visualizzano il testo di aiuto. Posizionati su ciascuna opzione possiamo selezionarla, deselezionarla o marcarla per essere compilata come modulo, rispettivamente con i tasti &lt;invio&gt;, &lt;n&gt; e &lt;m&gt;.<br />
Purtroppo al momento la lingua utilizzata per i nomi delle opzioni e per i testi di aiuto e&#8217; l&#8217;inglese, ma esiste un progetto per la traduzione di questi testi in italiano mantenuto dal sottoscritto, quindi state sintonizzati <img src='http://www.solira.org/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
<p>Esistono inoltre altre due possibilita&#8217; di configurazione, che utilizzano delle finestre in modalita&#8217; grafica e che quindi hanno bisogno del server X per poter funzionare.<br />
La prima e&#8217; &#8216;make xconfig&#8217;, per la quale avremo bisogno di installare le librerie grafiche QT (quelle che usa KDE, per intenderci). La seconda e&#8217; &#8216;make gconfig&#8217;, che invece richiede le librerie GTK utilizzate dall&#8217;ambiente grafico GNOME.<br />
Entrambi i comndi ci presentano un&#8217;interfaccia a menu molto simile a quella di &#8216;make menuconfig&#8217;, quindi la scelta di una di queste e&#8217; puramente una questione di preferenza estetica.</p>
<p>Possiamo fare in modo che il nostro kernel abbia un numero di versione diversa da quello che abbiamo gia&#8217;, pur trattandosi degli stessi sorgenti, semplicemente editando il file &#8216;Makefile&#8217; presente nella directory radice dei sorgenti stessi.<br />
Nelle prime righe di questo file vengono definite le variabili che identificano il numero di versione, ma mentre le prime tre (VERSION, PATCHLEVEL e SUBLEVEL) non vanno toccate, la quarta (EXTRAVERSION) puo&#8217; essere modificata a piacimento. Questo potra&#8217; esserci utile nel momento in cui dovremo avviare il nuovo kernel senza per questo eliminare il vecchio.</p>
<h3>Compilazione e installazione</h3>
<p>Una volta configurato i sorgenti possiamo passare alla compilazione vera e propria. Qui si tratta solo di pazienza, in quanto bastera&#8217; dare semplicemente il comando &#8216;make bzImage&#8217;. Se abbiamo scelto di compilare dei moduli occorrera&#8217; dare anche il comando &#8216;make modules&#8217; per compilarli, e &#8216;make modules_install&#8217; per installare i moduli nella directory /lib/modules/&lt;versione&gt;, creando inoltre dei file contenenti le dipendenze tra i vari moduli. E&#8217; possibile dare questi comandi tutti insieme, con una stringa come &#8216;make bzImage &amp;&amp; make modules &amp;&amp; make modules_install&#8217;, in modo da non doverci preoccupare di essere presenti nel momento che uno dei comandi avra&#8217; terminato il suo compito.<br />
Dopo un po&#8217; di tempo, dipendente dalle prestazioni della macchina sulla quale stiamo compilando e dal numero di funzionalita&#8217; incluse in fase di configurazione, se tutto va per il verso giusto avremo il nostro nuovo kernel.</p>
<p>Per poter avviare la macchina con il nuovo kernel dovremo copiare l&#8217;immagine, e preferibilmente anche la mappa dei simboli, e reinstallare il boot-loader. La mappa dei simboli e&#8217; il file &#8216;System.map&#8217; che si trova nella directory radice dei sorgenti (verosimilmente /usr/src/linux), l&#8217;immagine del kernel si puo&#8217; invece trovare nella directory /usr/src/linux/arch/&lt;tipo_architettura&gt;/boot/ con il nome &#8216;bzImage&#8217;. La destinazione di questi file dovrebbe essere la directory /boot. Se in /boot e&#8217; gia&#8217; presente il file &#8216;System.map&#8217; del vecchio kernel conviene rinominare entrambi i file in &#8216;System.map-&lt;versione&gt;&#8217;.</p>
<p>Fatto questo si va ad editare il file di configurazione del bootloader (qui si assume che come loader si utilizzi lilo, quindi il file relativo e&#8217; /etc/lilo.conf) aggiungendovi, insieme alla voce per l&#8217;avvio del vecchio kernel, anche una voce anche per il nuovo kernel. Si puo&#8217; prendere spunto dalla voce gia&#8217; presente per la composizione della nuova, tenendo presente che una voce per l&#8217;avvio di un kernel Linux inizia con la riga &#8216;image = /boot/&lt;file_immagine&gt;&#8217; ed e&#8217; seguita da varie righe per la definizione della modalita&#8217; di avvio del kernel. Se tra le opzioni generali, all&#8217;inizio del file, non e&#8217; presente una riga contenente la parola &#8216;prompt&#8217; (che indica al loader di chiederci con quale kernel avviare la macchina), occorrera&#8217; aggiungerla.</p>
<p>Dopo aver salvato il file sara&#8217; sufficiente lanciare il comando &#8216;lilo -v&#8217; per installare il nuovo loader. Al prossimo avvio potremo scegliere di partire con il nostro nuovo kernel, e se tutto e&#8217; andato per il verso giusto, e il kernel funziona senza problemi, potremo editare (se lo vogliamo) nuovamente il file di configurazione di lilo rimuovendo il riferimento al kernel che non usiamo piu&#8217;, e ridare nuovamente il comando &#8216;lilo -v&#8217;. Potremo ovviamente rimuovere anche i file relativi al kernel in disuso (l&#8217;immagine del kernel, la mappa dei simboli, e la directory con tutti i moduli) e goderci appieno il nostro kernel personalizzato.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.solira.org/2004/09/il-kernel-di-linux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Direttiva Stanca</title>
		<link>http://www.solira.org/2004/03/direttiva-stanca/</link>
		<comments>http://www.solira.org/2004/03/direttiva-stanca/#comments</comments>
		<pubDate>Tue, 02 Mar 2004 16:30:20 +0000</pubDate>
		<dc:creator>mario</dc:creator>
				<category><![CDATA[Articoli]]></category>

		<guid isPermaLink="false">http://solira.is-a-geek.org/?p=59</guid>
		<description><![CDATA[PRESIDENZA DEL CONSIGLIO DEI MINISTRI DIPARTIMENTO PER L&#8217;INNOVAZIONE E LE TECNOLOGIE DIRETTIVA 19 dicembre 2003 Sviluppo ed utilizzazione dei programmi informatici da parte delle pubbliche amministrazioni. (G.U. n. 31 del 7-2-2004) IL MINISTRO PER L&#8217;INNOVAZIONE E LE TECNOLOGIE Visto il regio decreto 18 novembre 1923, n. 2440, recante «Nuove disposizioni sull&#8217;amministrazione del patrimonio e sulla [...]]]></description>
			<content:encoded><![CDATA[<p>PRESIDENZA DEL CONSIGLIO DEI MINISTRI DIPARTIMENTO PER L&#8217;INNOVAZIONE E LE TECNOLOGIE</p>
<p>DIRETTIVA 19 dicembre 2003</p>
<p>Sviluppo ed utilizzazione dei programmi informatici da parte delle pubbliche amministrazioni.</p>
<p>(G.U. n. 31 del 7-2-2004)<br />
<span id="more-59"></span><br />
IL MINISTRO PER L&#8217;INNOVAZIONE E LE TECNOLOGIE</p>
<p>Visto il regio decreto 18 novembre 1923, n. 2440, recante «Nuove disposizioni sull&#8217;amministrazione del patrimonio e sulla contabilita&#8217; generale dello Stato»;<br />
Visto il regio decreto 23 maggio 1924, n. 827, recante «Regolamento per l&#8217;amministrazione del patrimonio e per la contabilita&#8217; generale dello Stato»;<br />
Visto il decreto legislativo 24 luglio 1992, n. 358, recante «Testo unico delle disposizioni in materia di appalti pubblici di forniture, in attuazione delle direttive 77/62/CEE, 80/767/CEE e 88/295/CEE», e successive modificazioni (con particolare riguardo al decreto legislativo 20 ottobre 1998, n. 402, in attuazione delle direttive 93/36/CEE e 97/52/CE);<br />
Vista la legge 7 agosto 1990, n. 241, recante «Nuove norme in materia di procedimento amministrativo e di diritto di accesso ai documenti amministrativi»;<br />
Visto l&#8217;art. 12 del decreto legislativo 12 febbraio 1993, n. 39, recante «Norme in materia di sistemi informativi automatizzati delle amministrazioni pubbliche, a norma dell&#8217;art. 2, comma 1, lettera mm), della legge 23 ottobre 1992, n. 421»;<br />
Visto il decreto del Presidente del Consiglio dei Ministri 6 agosto 1997, n. 452, recante «Regolamento recante approvazione del capitolato di cui all&#8217;art. 12, comma 1, del decreto legislativo 12 febbraio 1993, n. 39, relativo alla locazione e all&#8217;acquisto di apparecchiature informatiche, nonche&#8217; alla licenza d&#8217;uso dei programmi»;<br />
Visto l&#8217;art. 6 della legge 24 dicembre 1993, n. 537, recante<br />
«Interventi correttivi di finanza pubblica», come modificato dall&#8217;art. 44 della legge 23 dicembre 1994, n. 724;<br />
Visto il decreto del Presidente della Repubblica 18 aprile 1994, n. 573, recante «Norme per la semplificazione dei procedimenti di aggiudicazione di pubbliche forniture di valore inferiore alla soglia di rilievo comunitario»;<br />
Visto il decreto legislativo 17 marzo 1995, n. 157, recante<br />
«Attuazione della direttiva 92/50/CEE in materia di appalti pubblici di servizi», e successive modificazioni (con particolare riguardo al decreto legislativo 25 febbraio 2000, n. 65, in attuazione delle direttive 97/52/CE e 98/4/CE);<br />
Visto il decreto legislativo 17 marzo 1995, n. 158, recante<br />
«Attuazione delle direttive 90/531/CEE e 93/38/CEE relative alle procedure di appalti nei settori esclusi», e successive modificazioni (con particolare riguardo al decreto legislativo 25 novembre 1999, n. 525, in attuazione delle direttive 94/22/CE e 98/4/CE);<br />
Visto l&#8217;art. 20, comma 8, allegato 1, punto 12 della legge 15 marzo 1997, n. 59, recante «Delega al Governo per il conferimento di funzioni e compiti alle regioni ed enti locali, per la riforma della pubblica amministrazione e per la semplificazione amministrativa»;<br />
Visto l&#8217;art. 24 della legge 24 novembre 2000, n. 340, recante<br />
«Disposizioni per la delegificazione di norme e per la semplificazione di procedimenti amministrativi &#8211; legge di semplificazione 1999»;<br />
Visto il decreto del Presidente della Repubblica 28 dicembre 2000, n. 445, di approvazione del «Testo unico delle disposizioni legislative e regolamentari in materia di documentazione amministrativa (Testo A)»;<br />
Vista la legge 27 dicembre 2002, n. 289, (legge finanziaria 2003), ed in particolare l&#8217;art. 26, comma 2, lettera a);<br />
Visto il decreto del Presidente della Repubblica in data 10 giugno 2001, di nomina del Ministro senza portafoglio per l&#8217;innovazione e le tecnologie;<br />
Visto il decreto del Presidente del Consiglio dei Ministri in data 9 agosto 2001, concernente delega di funzioni del Presidente del Consiglio dei Ministri al Ministro senza portafoglio per l&#8217;innovazione e le tecnologie;<br />
Visti i significativi sviluppi delle tecnologie dell&#8217;informazione e della comunicazione ed in particolare il processo di produzione, distribuzione ed evoluzione di programmi informatici che si basa sulla disponibilita&#8217; del codice sorgente aperto;<br />
Considerati gli esiti dell&#8217;indagine conoscitiva sui programmi informatici a codice sorgente aperto svolta dalla Commissione appositamente istituita e composta da numerosi e qualificati esperti delle pubbliche amministrazioni, del mondo accademico e del settore delle imprese;<br />
Ritenuto di dover fornire un indirizzo univoco relativo alle scelte delle soluzioni per la predisposizione e per l&#8217;acquisizione dei programmi informatici da parte delle pubbliche amministrazioni;</p>
<p>Emana</p>
<p>la seguente direttiva in materia di sviluppo e utilizzazione dei programmi informatici da parte delle pubbliche amministrazioni.</p>
<p>1. Finalita&#8217;.</p>
<p>Con la presente direttiva si forniscono alle pubbliche amministrazioni indicazioni e criteri tecnici e operativi per gestire piu&#8217; efficacemente il processo di predisposizione o di acquisizione di programmi informatici. In particolare, nella presente direttiva si indica come le pubbliche amministrazioni debbano tener conto della offerta sul mercato di una nuova modalita&#8217; di sviluppo e diffusione di programmi informatici, definita «open source» o «a codice sorgente aperto». L&#8217;inclusione di tale nuova tipologia d&#8217;offerta all&#8217;interno delle soluzioni tecniche tra cui scegliere, contribuisce ad ampliare la gamma delle opportunita&#8217; e delle possibili soluzioni, in un quadro di equilibrio, di pluralismo e di aperta competizione.</p>
<p>2. Definizioni.</p>
<p>Ai fini della presente direttiva si intende:<br />
a) per «formato dei dati» la modalita&#8217; con cui i dati vengono rappresentati elettronicamente in modo che i programmi informatici possano elaborarli. Il formato specifica la corrispondenza fra la rappresentazione binaria e i dati rappresentati (testo, immagini statiche o dinamiche, suono, ecc.).<br />
Esempi di formati sono Bitmap, GIF, JPEG, ecc.;<br />
b) per «formato aperto», un formato dei dati reso pubblico e documentato esaustivamente;<br />
c) per «tecnologia proprietaria», una tecnologia posseduta in esclusiva da un soggetto che in genere ne mantiene segreto il funzionamento;<br />
d) per «formato proprietario» un formato di dati utilizzato in esclusiva da un soggetto che potrebbe modificarlo a proprio piacimento;<br />
e) per «standard» una specifica o norma condivisa da una comunita&#8217;. Lo standard puo&#8217; essere emanato da un ente di standardizzazione oppure essersi imposto di fatto (industry standard). Nel caso dei formati dei dati o dei documenti, un formato e&#8217; standard quando e&#8217; definito da un ente di standardizzazione (per esempio, il formato XML), o e&#8217; di fatto condiviso da una comunita&#8217; (per esempio, il formato PDF);<br />
f) per «interoperabilita» la capacita&#8217; di sistemi informativi anche eterogenei di condividere, scambiare e utilizzare gli stessi dati e funzioni d&#8217;interfaccia;<br />
g) per «programmi informatici ad hoc o custom» applicazioni informatiche sviluppate o mantenute da un fornitore per soddisfare specifiche esigenze di uno o piu&#8217; clienti. Normalmente questo tipo di sviluppo viene eseguito all&#8217;interno di un contratto di servizio per il quale il cliente corrisponde al fornitore un compenso;<br />
h) per «programmi a licenza d&#8217;uso», o «pacchetti», applicazioni informatiche che vengono cedute in uso (e non in proprieta) dal fornitore al cliente. Tale cessione d&#8217;uso e&#8217; regolata da opportune licenze che indicano i vincoli e i diritti che sono garantiti al titolare della licenza stessa;<br />
i) per «programmi di tipo proprietario», applicazioni informatiche basate su tecnologia di tipo proprietario, cedute in uso dietro pagamento di una licenza, che garantisce solo la fornitura del codice eseguibile e non del codice sorgente. Esempi di tali prodotti sono MS Windows, IBM DB2, Oracle DB;<br />
j) per «programmi a codice sorgente aperto» o «open source», applicazioni informatiche il cui codice sorgente puo&#8217; essere liberamente studiato, copiato, modificato e ridistribuito;<br />
k) per «costo totale di possesso», l&#8217;insieme dei costi che nel corso dell&#8217;intera vita operativa di un sistema informativo e&#8217; necessario sostenere affinche&#8217; esso sia utilizzabile proficuamente dall&#8217;utenza;<br />
l) per «costo di uscita», l&#8217;insieme dei costi da sostenere per abbandonare una tecnologia o migrare verso una tecnologia o soluzione informatica differente. Comprende i costi di conversione dati, di aggiornamento dell&#8217;hardware, di realizzazione interfaccia e di formazione;<br />
m) per «piattaforma», infrastruttura informatica, comprendente sia hardware che software, su cui vengono elaborati i programmi applicativi;<br />
n) per «portabilita», possibilita&#8217; di trasferire un programma informatico da una piattaforma a un&#8217;altra.</p>
<p>3. Analisi comparativa delle soluzioni.</p>
<p>1. Le pubbliche amministrazioni, nel rispetto della legge 7 agosto 1990, n. 241 e del decreto legislativo 12 febbraio 1993, n. 39, acquisiscono programmi informatici a seguito di una valutazione comparativa tra le diverse soluzioni disponibili sul mercato.<br />
2. In particolare, valutano la rispondenza alle proprie esigenze di ciascuna delle seguenti soluzioni tecniche:<br />
a) sviluppo di programmi informatici ad hoc, sulla scorta dei requisiti indicati dalla stessa amministrazione committente;<br />
b) riuso di programmi informatici sviluppati ad hoc per altre amministrazioni;<br />
c) acquisizione di programmi informatici di tipo proprietario mediante ricorso a licenza d&#8217;uso;<br />
d) acquisizione di programmi informatici a codice sorgente aperto;<br />
e) acquisizione mediante combinazione delle modalita&#8217; di cui alle lettere precedenti.<br />
3. Le pubbliche amministrazioni valutano quale soluzione, tra le disponibili, risulta piu&#8217; adeguata alle proprie esigenze mediante comparazioni di tipo tecnico ed economico, tenendo conto anche del costo totale di possesso delle singole soluzioni e del costo di uscita. In sede di scelta della migliore soluzione si tiene altresi&#8217; conto del potenziale interesse di altre amministrazioni al riuso dei programmi informatici, dalla valorizzazione delle competenze tecniche acquisite, della piu&#8217; agevole interoperabilita&#8217;. La prospettazione degli elementi di cui sopra e&#8217; peraltro oggetto di valutazione da parte del Centro nazionale per l&#8217;informatica nella pubblica amministrazione in sede di rilascio del parere di cui all&#8217;art. 8 del decreto legislativo 12 febbraio 1993, n. 39. La suindicata valutazione va inclusa nell&#8217;ambito dello studio di fattibilita&#8217; prescritto dall&#8217;art. 13 del decreto legislativo 12 febbraio 1993, n. 39, allorche&#8217; si tratti di contratti di grande rilievo.</p>
<p>4. Criteri tecnici di comparazione.</p>
<p>Le pubbliche amministrazioni, nella predisposizione o nell&#8217;acquisizione dei programmi informatici, privilegiano le soluzioni che presentino le seguenti caratteristiche:<br />
a) soluzioni informatiche che, basandosi su formati dei dati e interfacce aperte e standard, assicurino 1&#8242;interoperabilita&#8217; e la cooperazione applicativa tra i diversi sistemi informatici della pubblica amministrazione, salvo che ricorrano peculiari ed eccezionali esigenze di sicurezza e segreto;<br />
b) soluzioni informatiche che, in assenza di specifiche ragioni contrarie, rendano i sistemi informatici non dipendenti da un unico fornitore o da un&#8217;unica tecnologia proprietaria; la dipendenza e&#8217; valutata tenendo conto dell&#8217;intera soluzione;<br />
c) soluzioni informatiche che, con il preventivo assenso del C.N.I.P.A. ed in assenza di specifiche ragioni contrarie, garantiscano la disponibilita&#8217; del codice sorgente per ispezione e tracciabilita&#8217; da parte delle pubbliche amministrazioni, ferma la non modificabilita&#8217; del codice, fatti salvi i diritti di proprieta&#8217; intellettuale del fornitore e fermo l&#8217;obbligo dell&#8217;amministrazione di garantire segretezza o riservatezza;<br />
d) programmi informatici che esportino dati e documenti in piu&#8217; formati, di cui almeno uno di tipo aperto.</p>
<p>5. Proprieta&#8217; dei programmi software.</p>
<p>Nel caso di programmi informatici sviluppati ad hoc, l&#8217;amministrazione committente acquisisce la proprieta&#8217; del prodotto finito, avendo contribuito con proprie risorse all&#8217;identificazione dei requisiti, all&#8217;analisi funzionale, al controllo e al collaudo del software realizzato dall&#8217;impresa contraente. Sara&#8217; cura dei committenti inserire, nei relativi contratti, clausole idonee ad attestare la proprieta&#8217; dei programmi.</p>
<p>6. Trasferimento della titolarita&#8217; delle licenze d&#8217;uso.</p>
<p>Le pubbliche amministrazioni si assicurano contrattualmente la possibilita&#8217; di trasferire la titolarita&#8217; delle licenze d&#8217;uso dei programmi informatici acquisiti, nelle ipotesi in cui all&#8217;amministrazione che ha acquistato la licenza medesima ne subentri un&#8217;altra nell&#8217;esercizio delle stesse attivita&#8217;; parimenti va contrattualmente previsto l&#8217;obbligo del fornitore di trasferire, su richiesta dell&#8217;amministrazione, senza oneri ulteriori per l&#8217;amministrazione stessa, e salve eccezionali cause ostative, la licenza d&#8217;uso al gestore subentrante, nel caso in cui l&#8217;amministrazione trasferisca a terzi la gestione di proprie attivita&#8217;, ovvero l&#8217;obbligo di emettere, laddove possibile, nuova licenza d&#8217;uso con i medesimi effetti nei confronti del nuovo gestore.</p>
<p>7. Riuso.</p>
<p>1. Al fine di favorire il riuso dei programmi informatici di proprieta&#8217; delle amministrazioni, nei capitolati o nelle specifiche di progetto dovra&#8217; essere previsto, ove possibile, che i programmi sviluppati ad hoc siano facilmente portabili su altre piattaforme.<br />
2. Nei contratti di acquisizione di programmi informatici sviluppati per conto e a spese delle amministrazioni, le stesse includono clausole, concordate con il fornitore e che tengano conto delle caratteristiche economiche ed organizzative di quest&#8217;ultimo, volte a vincolarlo, per un determinato lasso di tempo, a fornire, su richiesta di altre amministrazioni, servizi che consentono il riuso delle applicazioni. Le clausole suddette definiscono le condizioni da osservare per la prestazione dei servizi indicati.</p>
<p>8. Supporto alle amministrazioni.</p>
<p>Il Centro nazionale per l&#8217;informatica nella pubblica amministrazione promuove l&#8217;attuazione della presente direttiva e fornisce alle amministrazioni adeguato supporto.</p>
<p>Roma, 19 dicembre 2003</p>
<p>Il Ministro: Stanca</p>
<p>Registrato alla Corte dei conti il 23 gennaio 2004</p>
<p>Ministeri istituzionali &#8211; Presidenza del Consiglio dei Ministri, registro n. 1, foglio n. 129</p>
]]></content:encoded>
			<wfw:commentRss>http://www.solira.org/2004/03/direttiva-stanca/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Le licenze Creative Commons</title>
		<link>http://www.solira.org/2004/02/le-licenze-creative-commons/</link>
		<comments>http://www.solira.org/2004/02/le-licenze-creative-commons/#comments</comments>
		<pubDate>Sun, 08 Feb 2004 17:24:25 +0000</pubDate>
		<dc:creator>mario</dc:creator>
				<category><![CDATA[Articoli]]></category>

		<guid isPermaLink="false">http://solira.is-a-geek.org/?p=120</guid>
		<description><![CDATA[Sta assumendo sempre più rilievo in Internet l&#8217;utilizzo delle licenze Creative-Commons. Si tratta di undici diversi tipi di licenze create da una equipe di giuristi dell&#8217;Università di Standford, di Harvard e del MIT sul modello della licenza open-source GNU-GPL. L&#8217;obiettivo è quello di consentire agli autori di testi (articoli, saggi, racconti o romanzi), di brani [...]]]></description>
			<content:encoded><![CDATA[<p>Sta assumendo sempre più rilievo in Internet l&#8217;utilizzo delle licenze Creative-Commons.</p>
<p>Si tratta di undici diversi tipi di licenze create da una equipe di giuristi dell&#8217;Università di Standford, di Harvard e del MIT sul modello della licenza open-source GNU-GPL.</p>
<p>L&#8217;obiettivo è quello di consentire agli autori di testi (articoli, saggi, racconti o romanzi), di brani musicali e di filmati di qualunque tipo di diffondere in rete le proprie opere permettendone lo scambio e la riproduzione a condizione che vengano rispettate le limitazioni previste dalla specifica licenza Creative Commons adottata.<br />
<span id="more-120"></span><br />
Gli elementi che compongono ciascuna singola licenza sono:</p>
<p>1) Attribuzione &#8211; l&#8217;autore può consentire la diffusione e la riproduzione della propria opera a condizione che venga sempre inserita l&#8217;indicazione dell&#8217;autore stesso;</p>
<p>2) uso non-commerciale &#8211; l&#8217;autore può scegliere di consentire la diffusione e la riproduzione dell&#8217;opera a condizione che non siano effettuate a scopo di lucro;</p>
<p>3) utilizzabilità in un&#8217;opera derivata &#8211; l&#8217;autore può scegliere se consentire l&#8217;utilizzo della propria opera per la creazione di un&#8217;opera derivata o, invece, ammettere la riproduzione o la diffusione dell&#8217;opera originaria a condizione che ad essa non venga apportata alcuna modifica e che non venga inserita in un opera derivata (ad esempio un&#8217;antologia);</p>
<p>4) conformità della licenza dell&#8217;opera derivata &#8211; l&#8217;autore può scegliere di consentire l&#8217;uso della propria opera in un&#8217;opera derivata a condizione che quest&#8217;ultima venga rilasciata sotto lo stesso tipo di licenza.</p>
<p>In Italia il progetto di traduzione ed adattamento delle licenze all&#8217;ordinamento comunitario e nazionale è guidato dal Dipartimento di Scienze Giuridiche dell&#8217;Università di Torino.</p>
<p>This work is licensed under the Creative Commons Attribution-No Derivs-Non Commercial License. To view a copy of this license, visit <a href="http://creativecommons.org/licenses/by-nd-nc/1.0/">http://creativecommons.org/licenses/by-nd-nc/1.0/</a> or send a letter to Creative Commons, 559 Nathan Abbott Way, Stanford, California 94305, USA.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.solira.org/2004/02/le-licenze-creative-commons/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
		<item>
		<title>Distribuzioni GNU/Linux</title>
		<link>http://www.solira.org/2003/01/distribuzioni-gnulinux/</link>
		<comments>http://www.solira.org/2003/01/distribuzioni-gnulinux/#comments</comments>
		<pubDate>Tue, 14 Jan 2003 17:04:00 +0000</pubDate>
		<dc:creator>massimo</dc:creator>
				<category><![CDATA[Articoli]]></category>

		<guid isPermaLink="false">http://solira.is-a-geek.org/?p=65</guid>
		<description><![CDATA[Il concetto di distribuzione è strettamente legato al sistema operativo Linux, e dipende intrinsecamente dal suo modello di sviluppo. Gli altri sistemi operativi vengono in genere distribuiti da chi li sviluppa, siano essi dei sistemi commerciali come Windows, Macintosh e i vari Unix proprietari, oppure dei sistemi aperti come i vari *BSD, ed hanno quindi [...]]]></description>
			<content:encoded><![CDATA[<p>Il concetto di distribuzione è strettamente legato al sistema operativo <span style="text-decoration: underline;">Linux</span>, e dipende intrinsecamente dal suo modello di sviluppo. Gli altri sistemi operativi vengono in genere distribuiti da chi li sviluppa, siano essi dei sistemi commerciali come <em>Windows</em>, <em>Macintosh</em> e i vari <em>Unix</em> proprietari, oppure dei sistemi aperti come i vari <em>*BSD</em>, ed hanno quindi una unica distribuzione. Nello sviluppo di Linux invece vengono coinvolti tre diversi soggetti.<br />
<span id="more-65"></span><br />
Il <strong>primo soggetto</strong> è il team che sviluppa il kernel di Linux, il cuore del sistema operativo, il programma che si occupa di gestire i vari processi e di interfacciarli all&#8217;hardware installato sulla macchina, ma che da solo non potrebbe mai essere un sistema operativo.<br />
Il nome di questo programma è appunto <span style="text-decoration: underline;">Linux</span>, sebbene nel lessico comune questa denominazione venga utilizzata per indicare l&#8217;intero sistema operativo.<br />
Il <strong>secondo soggetto</strong> è rappresentato da vari sviluppatori, in testa a tutti il <a href="http://www.gnu.org/">progetto GNU</a>, i quali si occupano di scrivere il software necessario perchè si possa utilizzare la macchina. Questo software si compone dei vari filesystem per l&#8217;organizzazione dei dati sui dischi, delle shell per l&#8217;interazione con la macchina, dei compilatori, delle librerie di supporto, dei vari comandi per effettuare operazioni sui file, di programmi di utilità e interfacce grafiche.<br />
GNU ha il peso maggiore tra i vari team di sviluppo perchè si occupa di sviluppare le librerie di base che consentono di dare una certa omogeneità all&#8217;intero sistema, includendovi all&#8217;interno anche il kernel ideato da <a href="http://it.wikipedia.org/wiki/Linus_Torvalds">Linus Torvalds</a>, anche se in effetti l&#8217;inclusione del kernel Linux avvenne solo in un secondo tempo. Potremmo tranquillamente affermare che il vero padre del sistema operativo sia proprio il progetto GNU, e non a caso <a href="http://it.wikipedia.org/wiki/Richard_Stallman">Richard Stallman</a>, ideatore e leader del progetto, non esita a rivendicarlo ricordando a tutti che quando ci si riferisce al sistema operativo nella sua globalità, non quindi al solo kernel, occorre usare il termine &#8220;<strong>GNU/Linux</strong>&#8221; (e direi che non ha neanche tanto torto <img src='http://www.solira.org/wp-includes/images/smilies/icon_smile.gif' alt=':-)' class='wp-smiley' /> .</p>
<p>A questo punto il sistema operativo potrebbe essere completo, dispone di tutti i programmi che ci servono per poter lavorare, abbiamo editor di testo, programmi di disegno, suite per l&#8217;ufficio e, perchè no, giochi e passatempi, quindi possiamo subito accingerci alla sua installazione. Facile a dirsi, ma all&#8217;atto pratico ci si presentano subito i primi scogli.<br />
In primo luogo tutto il software che abbiamo menzionato è distribuito in <em>formato sorgente</em>. Questo significa che dobbiamo compilare uno ad uno tutti i programmi, dal kernel all&#8217;ultimo tool, e questa operazione, oltre che presumere una certa competenza ed una dimestichezza con i vari compilatori a disposizione, ci porterebbe via un mare di tempo. In seguito, una volta che avremmo compilato tutto e messo ogni cosa al suo posto, ci troveremmo a dover configurare il sistema, scrivendo i file di configurazione per l&#8217;inizializzazione del sistema e per tutti i programmi che abbiamo installato, ed anche questa operazione ci porterebbe via parecchio tempo.</p>
<p>É a questo punto che ci viene in aiuto il <strong>terzo soggetto</strong> impegnato nello sviluppo di <span style="text-decoration: underline;">GNU/Linux</span>: il distributore.<br />
In principio fu <a href="http://www.slackware.com/">Slackware</a>. Già ai tempi in cui il sistema operativo cominciava ad assumere le proprie sembianze si presentò il problema di dare a chi avesse voluto installarlo sulla propria macchina gli strumenti adeguati per farlo, ed il team capitanato da <a href="http://it.wikipedia.org/wiki/Patrick_Volkerding">Patrick Volkerding</a> si occupò di risolverlo. Venne creato un sistema che chiunque (o quasi) avrebbe potuto installare. Era sufficiente effettuare l&#8217;avvio della macchina con l&#8217;apposito floppy di installazione e seguire la procedura rispondendo a qualche semplice domanda. Inserendo in successione i dischetti il programma di installazione si sarebbe occupato di copiare sul disco fisso i pacchetti precompilati dei programmi che si avrebbe richiesto, comprensivi dei relativi file di configurazione già redatti, ed infine si sarebbe occupato di installare il <em>loader</em> che avrebbe permesso il caricamento del sistema operativo &#8220;<strong>Slackware GNU/Linux</strong>&#8221; (che nel frattempo ha allungato ulteriormente il suo nome).</p>
<p>Successivamente si assistette al moltiplicarsi delle distribuzioni di <span style="text-decoration: underline;">GNU/Linux</span>, per la maggior parte ad opera di società commerciali che vedevano nel software libero una concreta possibilità di guadagno. L&#8217;azienda che riuscì a catalizzare la maggior parte del mercato del software libero fu <a href="http://www.redhat.com/">Red Hat</a>, ideatrice tra le altre cose del sistema di gestione dei pacchetti software chiamato <a href="http://www.rpm.org/">Red hat Package Manager</a> (rpm). I pacchetti <strong>rpm</strong> potevano essere installati mediante un apposito tool che si preoccupava di vedere se nel sistema fosse già installata una versione diversa di quel particolare programma, se il funzionamento del programma fosse subordinato alla presenza di altri pacchetti come librerie e ulteriori programmi, e se l&#8217;installazione poteva dar luogo a conflitti tra diversi programmi che potessero pregiudicare il funzionamento dello stesso, se non addirittura il funzionamento dell&#8217;intero sistema.</p>
<p>Ma non erano solo le aziende ad interessarsi a GNU/Linux. Intorno al software libero nacque un vero e proprio movimento ideologico, ed alcuni seguaci di questo movimento stabilirono alcuni concetti fondamentali per la classificazione del software libero, coniando di fatto la definizione &#8220;Open Source&#8221;: si trattava del gruppo <a href="http://www.debian.org/">Debian</a>.<br />
La distribuzione &#8220;<strong>Debian GNU/Linux</strong>&#8221; si contraddistingue dalle altre perchè sviluppata appunto da un&#8217;intera comunità sparsa in tutto il pianeta, e per la particolare attenzione che viene prestata alla classificazione del software in base al tipo di licenza che lo accompagna ed in base al livello di stabilità. Anche <span style="text-decoration: underline;">Debian</span> sviluppa un proprio sistema di pacchettizzazione del software, per molti versi più avanzato di quello di Red Hat, per mezzo del quale è possibile tenere costantemente aggiornato il sistema operativo senza bisogno di fare ricorso ad aggiornamenti radicali ogni volta che viene rilasciata una nuova versione.</p>
<p>In seguito altre aziende seguirono le orme di Red Hat sfornando ognuna la propria distribuzione, sviluppando la propria interfaccia grafica per l&#8217;installazione e i propri tool per agevolare la prima configurazione del sistema e la sua successiva manutenzione. Al susseguirsi delle versioni il software a corredo di ogni distribuzione migliorava costantemente, e l&#8217;obbiettivo che tutti cercavano di raggiungere era principalmente uno: realizzare un sistema con delle interfacce amichevoli e delle procedure di installazione sempre più automatizzate, in grado di rilevare l&#8217;hardware installato sulla macchina ed installare gli appositi driver, in modo che qualunque utente si fosse avvicinato al mondo del software libero non avrebbe avuto particolari difficoltà nella sua installazione e nella sua gestione.<br />
Non vi è ombra di dubbio che il risultato sia stato tutt&#8217;altro che deludente. Tutte le moderne distribuzioni sono facilmente installabili, e qualunque utente alle prime armi non troverà nessuna difficoltà ad effettuare l&#8217;installazione, o quantomeno non troverà più difficoltà di quelle che si possono incontrare anche installando i più blasonati sistemi operativi commerciali.</p>
<p>Ogni distribuzione differisce dalle altre per molti aspetti quali la struttura del filesystem, la quantità e varietà del software fornito a corredo, la tipologia di utenza alla quale si orienta. In questo senso noteremo che alcune saranno più orientate al mercato dei server come <a href="http://www.redhat.com/">Red Hat</a> e <a href="http://www.debian.org/">Debian</a>, mentre altre saranno più orientate al desktop come <a href="http://www.mandrakelinux.com/it/">Mandrake</a> e <a href="http://www.novell.com/linux/suse/">Suse</a>, ma tutte avranno lo stesso sistema operativo alla base e di tutte, come stabilito dalla <a href="http://www.fsf.org/licenses/gpl.html">licenza GPL</a>, saranno disponibili i sorgenti.</p>
]]></content:encoded>
			<wfw:commentRss>http://www.solira.org/2003/01/distribuzioni-gnulinux/feed/</wfw:commentRss>
		<slash:comments>0</slash:comments>
		</item>
	</channel>
</rss>

