Presentazione fatta in occasione del Linux Day 2012 per introdurre gli intervenuti al mondo del software libero con particolare riguardo alle licenze usate
1 of 34
More Related Content
Introduzione al mondo del software libero
1. www.scuolemontorio.org www.lugverona.it
Linux Day 2012
Introduzione al mondo del
Software Libero
Andrea Adami (fol@fulcro.net) 1
2. www.scuolemontorio.org www.lugverona.it
Andrea Adami
Socio del Linux User Group di verona (www.lugverona.it) ho cominciato a interessarmi di
informatica quando ho trovato sotto l'albero di natale un Commodore 64 (primi anni '80).
L'enorme quantit di ram (64k) rispetto al precedente VIC20 (5k) mi entusiasma e mi spinge a
muovere primi passi nella programmazione fino a farne la mia professione nel 1985.
Inizio a lavorare nel mondo dei mainframe e dopo dieci anni fondo la FULCRO s.r.l.
(http://www.fulcro.net) societ di consulenza informatica.
Ho imparato a conoscere sia i sistemi operativi mainframe IBM (DOS, MVS, VM) sia quelli di
rete e dei personal computer (NetWare, Amiga OS, MS-DOS, Windows, Linux e le sue
distribuzioni, *BSD, Mac OS) anche con esperienze su sistemi embedded (Windows CE) e
microcontrollori a 8-bit con programmazione in C senza sistema operativo.
Ho usato molti linguaggi (COBOL, PL / 1, SPF, C, C + +, Visual Basic, Visual Basic.NET, C #) e
strumenti di sviluppo (TSO, CMS, XEDIT, Roscoe, EDIT8, Visual Studio) ho utilizzato diversi
transaction manager (CICS, IMS, TP8, COM+) sia con database a indici (VSAM, DB3, Btrieve)
che gerarchici (DL/1, IDS/II) fino ai moderni database (DB2, MSSQL, PostgreSQL, MySQL).
La necessit di sfruttare l'hardware e il sistema operativo mi porta a sviluppare il mio lato
sistemistico, nel corso degli anni, la programmazione lascia il posto alla consulenza direzionale
e alla progettazione di soluzioni.
Il mio interesse ora 竪 nettamente orientato verso il mondo del software libero, e la mia curiosit
竪 attratta dal mondo della Computer Aided Software Engineering e dalle metodologie Agili.
Nel mio tempo libero mi appassiona costruire e far volare aeromodelli.
Il mio curriculum online 竪 all'indirizzo: http://it.linkedin.com/in/andreaadami
Andrea Adami (fol@fulcro.net) 2
3. www.scuolemontorio.org www.lugverona.it
Parleremo di:
Programmi
Free Software
Software Libero
Open Source
Licenze
Andrea Adami (fol@fulcro.net) 3
4. www.scuolemontorio.org www.lugverona.it
Codice macchina
Sistema numerico Binario
Perch竪 i computer usano il sistema
numerico binario ?
Andrea Adami (fol@fulcro.net) 4
5. www.scuolemontorio.org www.lugverona.it
Codice macchina
Programma che calcola e stampa
la somma dei quadrati dei primi 100 interi
00100111101111011111111111100000
10101111101111110000000000010100
10101111101001000000000000100000
10101111101001010000000000100100
10101111101000000000000000011000
10101111101000000000000000011100
10001111101011100000000000011100
10001111101110000000000000011000
00000001110011100000000000011001
00100101110010000000000000000001
00101001000000010000000001100101
10101111101010000000000000011100
00000000000000000111100000010010
00000011000011111100100000100001
00010100001000001111111111110111
10101111101110010000000000011000
00111100000001000001000000000000
10001111101001010000000000011000
00001100000100000000000011101100
00100100100001000000010000110000
10001111101111110000000000010100
00100111101111010000000000100000
00000011111000000000000000001000
00000000000000000001000000100001
Andrea Adami (fol@fulcro.net) 5
6. www.scuolemontorio.org www.lugverona.it
Assembler
.text
.align 2
.globl main
main:
subu $sp, $sp, 32
sw $ra, 20($sp)
sd $a0, 32($sp)
sw $0, 24($sp)
sw $0, 28($sp)
loop:
lw $t6, 28($sp)
mul $t7, $t6, $t6
lw $t8, 24($sp)
addu $t9, $t8, $t7
sw $t9, 24($sp)
addu $t0, $t6, 1
sw $t0, 28($sp)
ble$t0, 100, loop
la $a0, str
lw $a1, 24($sp)
jal printf
move$v0, $0
lw $ra, 20($sp)
ddu $sp, $sp, 32
jr $ra
.data
.align 0
str:
.asciiz "The sum from 0 .. 100 is %dn"
Andrea Adami (fol@fulcro.net) 6
7. www.scuolemontorio.org www.lugverona.it
C
#include <stdio.h>
int main ()
{
int i;
int sum = 0;
for (i = 0; i <= 100; i = i + 1) sum = sum + i * i;
printf ("The sum from 0 .. 100 is %dn", sum);
}
Andrea Adami (fol@fulcro.net) 7
8. www.scuolemontorio.org www.lugverona.it
Sorgente
Codice eseguibile (esecuzione immediata)
Codice sorgente (deve essere compilato
dal)
Compilatore (che genera ...)
Codice eseguibile
Reverse engineering
Perch竪 il codice sorgente 竪 cos狸
importante ?
Andrea Adami (fol@fulcro.net) 8
9. www.scuolemontorio.org www.lugverona.it
Sistema Operativo
A cosa serve ?
Andrea Adami (fol@fulcro.net) 9
10. www.scuolemontorio.org www.lugverona.it
Sistema Operativo
a NON reinventare la ruota
Andrea Adami (fol@fulcro.net) 10
11. www.scuolemontorio.org www.lugverona.it
Sistema Operativo
System
Device Driver
Bus
Power management
Processing
Processes
Threads
Scheduler
In memory communication
Synchronization
Memory
Memory management
Virtual memory
Storage
Block device
File system
File & Directory access (ACL)
Networking
Sockets
Protocols
Human Interface
Console
GUI
Andrea Adami (fol@fulcro.net) 11
12. www.scuolemontorio.org www.lugverona.it
Sistema Operativo
Da' dipendenza
Andrea Adami (fol@fulcro.net) 12
13. www.scuolemontorio.org www.lugverona.it
Software Gratuito
Free Beer
"Free software is a matter of liberty, not
price. To understand the concept, you
should think of free as in free speech,
not as in free beer."
Richard Stallman
Perch竪 qualcuno lavora gratis ?
Per altruismo
Proof of concept
Perch竪 guadagna in un altro modo:
Hardware
Supporto
Pubblicit
Malvare
Andrea Adami (fol@fulcro.net) 13
14. www.scuolemontorio.org www.lugverona.it
Software Libero
Free Speech
Libert di eseguire il programma, per qualsiasi scopo
(libert 0).
Libert di studiare come funziona il programma, e
adattarlo alle proprie necessit (libert 1).
Libert di ridistribuire copie in modo da aiutare il
prossimo (libert 2).
Libert di migliorare il programma, e distribuirne
pubblicamente i miglioramenti, in modo tale che tutta la
comunit ne tragga beneficio (libert 3).
N.B. L'accesso al sorgente 竪 un prerequisito delle libert 1 e 3
Andrea Adami (fol@fulcro.net) 14
15. www.scuolemontorio.org www.lugverona.it
Free Software
For Free
Gratuito
Il software gratuito non 竪 automaticamente software libero i
due termini non sono sinomini anche se il software libero 竪
gratuito per definizione (in inglese la confusion 竪
accentuata)
n.b.
Il software libero ha comunque costi di:
Implementazione
Personalizazione
Formazione
Gestione
Andrea Adami (fol@fulcro.net) 15
16. www.scuolemontorio.org www.lugverona.it
Free Software
Freely available
Freely downloadable
Disponibile gratuitamente
Scarcabile gratuitamente
Un software 竪 disponibile gratuitamente se chiunque pu嘆
ottenerne una copia gratuitamente.
Pi湛 spesso si intende che il programma si pu嘆 scaricare
gratuitamente ma non che il programma 竪 gratuito.
Ovviamente tutto questo nulla ha a che vedere con il
software libero.
Andrea Adami (fol@fulcro.net) 16
17. www.scuolemontorio.org www.lugverona.it
Open Source
Il Software libero (Free as in free speech) 竪
automaticamente Open Source
Il software Open Source non 竪
automaticamente Software libero (Free as
in free speech)
Perch竪 rendere un software Open ma non
Free:
Controllo
Modifica
Manutenzione
Andrea Adami (fol@fulcro.net) 17
18. www.scuolemontorio.org www.lugverona.it
Linux
Come Nasce Linux ?
Andrea Adami (fol@fulcro.net) 18
19. www.scuolemontorio.org www.lugverona.it
Linux
Linux 竪 una famiglia di sistemi operativi di tipo Unix-like aventi la
caratteristica comune di utilizzare come nucleo il kernel Linux.
Il suo sviluppo 竪 sostenuto da un'associazione senza fini di lucro, ovvero la
Linux Foundation. Linux, in realt, 竪 il nome del kernel sviluppato da Linus
Torvalds a partire dal 1991 che 竪 stato utilizzato come base per la
realizzazione di vari sistemi operativi, in particolare molti progetti open
source hanno scelto di sviluppare sistemi operativi con kernel Linux e
software sviluppato dal progetto GNU, tutti questi sistemi vengono per嘆
comunemente chiamati con il nome del loro kernel (Linux) senza
specificare di che tipo 竪 il resto del software utilizzato.
Con l'evoluzione di ambienti desktop come KDE e GNOME, sono state
sviluppate distribuzioni che offrono un'interfaccia grafica simile a quella di
Microsoft Windows o di Mac OS X, pi湛 vicina alle esigenze degli utenti
meno esperti, rendendo il passaggio da un sistema all'altro meno
traumatico.
Andrea Adami (fol@fulcro.net) 19
20. www.scuolemontorio.org www.lugverona.it
Le Distribuzioni
Una distribuzione Linux, detta gergalmente anche distro, 竪 una distribuzione software
che include un kernel Linux e un insieme variabile di applicazioni software, siano esse
freeware, open source o commerciali, rilasciate sotto forma di pacchetti software inclusi.
Queste distribuzioni includono anche strumenti software che guidano l'utente nel
processo di installazione del sistema ed utility di sistema.
Recentemente hanno cominciato a diffondersi anche distribuzioni cosiddette live, che
non richiedono installazione, e il cui bootstrap pu嘆 avvenire direttamente da un supporto
come CD, DVD o anche pen drive, tipicamente usate anche come testing del sistema
da parte degli utenti.
Societ come Red Hat, Novell (per SUSE), Mandriva e Canonical Ltd (per Ubuntu), e
progetti di comunit come Debian, Slackware e Gentoo, assemblano e testano le varie
componenti software rilasciando distribuzioni personalizzate e variegate, per la maggior
parte gratuite. Ci sono in questo momento pi湛 di 300 progetti di distribuzioni Linux in
attivo sviluppo, revisione e miglioramento che si differenziano per scelte progettuali,
come i vari software di mantenimento del sistema per l'installazione, la rimozione e la
configurazione del software.
Andrea Adami (fol@fulcro.net) 20
21. www.scuolemontorio.org www.lugverona.it
Ubuntu
Ubuntu prende il nome da un'antica parola africana (zulu, ma
anche xhosa) che significa "umanit verso gli altri", oppure "io
sono ci嘆 che sono per merito di ci嘆 che siamo tutti"
una distribuzione GNU/Linux nata nel 2004, basata su Debian,
che si focalizza sull'utente e sulla facilit di utilizzo. Ubuntu pone
una grande attenzione al supporto hardware.
prevista una nuova versione ogni sei mesi.
Finanziato dalla societ Canonical Ltd (registrata nell'Isola di
Man), questo sistema 竪 pubblicato come software libero sotto
licenza GNU GPL ed 竪 quindi gratuito e liberamente modificabile.
L'ideatore dell'iniziativa 竪 Mark Shuttleworth, un giovane
imprenditore sudafricano diventato sostenitore del software libero
al cui servizio ha posto le sue risorse.
Andrea Adami (fol@fulcro.net) 21
22. www.scuolemontorio.org www.lugverona.it
Uno sguardo avanti
Hardware Libero
Andrea Adami (fol@fulcro.net) 22
23. www.scuolemontorio.org www.lugverona.it
Uno sguardo avanti
ARDUINO
http://www.arduino.cc
si tratta di un hardware libero, distribuito
nei termini della licenza Creative
Commons Attribution-ShareAlike 2.5.
Chi lo desidera pu嘆 auto-costruirsi un
clone di Arduino o derivarne una versione
modificata, scaricando gratuitamente lo
schema elettrico e l'elenco dei componenti
elettronici necessari
Andrea Adami (fol@fulcro.net) 23
24. www.scuolemontorio.org www.lugverona.it
Uno sguardo avanti
REPRAR
http://www.reprap.org
Progetto per una stampante 3d in
Hardware Libero utlizzabile con software
libero autoreplicante.
Andrea Adami (fol@fulcro.net) 24
25. www.scuolemontorio.org www.lugverona.it
Uno sguardo avanti
http://www.thingiverse.com
Un mondo da creare
Andrea Adami (fol@fulcro.net) 25
26. www.scuolemontorio.org www.lugverona.it
Uno sguardo avanti
http://www.ted.com
Andrea Adami (fol@fulcro.net) 26
28. www.scuolemontorio.org www.lugverona.it
Conclusioni
Il software libero 竪 migliore
Andrea Adami (fol@fulcro.net) 28
29. www.scuolemontorio.org www.lugverona.it
Il software libero
竪 migliore
per motivi economici
Gratuit delle licenze d'uso
Gratuit degli aggiornamenti
Supporto software pi湛 esteso
Supporto hardware pi湛 esteso
Grande disponibilit di documentazione tecnica
Una comunit online molto disponibile ad aiutare
gratuitamente gli utenti
Andrea Adami (fol@fulcro.net) 29
30. www.scuolemontorio.org www.lugverona.it
Il software libero
竪 migliore
per motivi tecnici
Affidabilit.
Sicurezza.
Longevit.
Documentazione.
Disponibilit di applicativi
Andrea Adami (fol@fulcro.net) 30
31. www.scuolemontorio.org www.lugverona.it
Il software libero
竪 migliore
per motivi etici
Educa infatti alla conoscenza ed al rispetto delle licenze
combattendo l'abitudine assunta da molti utenti di violare le
leggi sul copyright.
Rispetto di criteri di uguaglianza ed equit. Qualunque
utente, su qualunque piattaforma hardware e appartenente
a qualunque strato della societ, potr avere accesso al
software.
Tramite la condivisione del proprio sapere con gli altri si
accresce la solidariet della comunit
Andrea Adami (fol@fulcro.net) 31
32. www.scuolemontorio.org www.lugverona.it
Q&A
Domande
e (si spera)
Risposte
Andrea Adami (fol@fulcro.net) 32
33. www.scuolemontorio.org www.lugverona.it
Bibliografia
http://www.slideshare.net/electrictwister/linux-open-source-lezione-1
http://www.slideshare.net/electrictwister/linux-open-source-lezione-2
http://forum.ubuntu-it.org (forum ufficiale di supporto al progetto)
http://ubuntuforums.org (portale contenente i riferimenti a tutti i siti a supporto del progetto)
http://www.ubuntu-it.org (versione italiana del sito ufficiale di Ubuntu)
http://www.linuxfoundation.org (sito ufficiale della fondazione linux)
http://www.linux.com (sito di supporto alla comunity linux)
http://www.linux.it (come sopra ma in lingua italiana)
http://www.debianizzati.org (sito di supporto alla comunity debian - molto utile anche per utenti ubuntu)
http://www.debianitalia.org (come sopra ma italiano)
http://www.makelinux.net/kernel_map/
http://it.wikipedia.org/wiki/GNU_General_Public_License
Andrea Adami (fol@fulcro.net) 33
34. www.scuolemontorio.org www.lugverona.it
FINE
These slides are
subjected to
Creative Commons
Attribution-
ShareAlike 2.5
version.
You can copy,
modify or sell them.
Please cite your
source and use the
same licence
grazie per l'attenzione!
Andrea Adami (fol@fulcro.net) 34