Software Livre - IFSP São Carlos

Transcrição

Software Livre - IFSP São Carlos
Software Livre
Carlos José Pereira
[email protected]
Professor Ens. Bas. Tecnológico - IFSP - São Carlos, SP
Doutor em Geografia - UNESP - Rio Claro, SP
http://creativecommons.org/licenses/by-nc-sa/2.5/br/
Roteiro
●
“Falácias” sobre Software Livre;
●
●
ou Ideologias? ...
Como é produzido um programa de computador;
●
código-fonte
●
Surgimento da filosofia do Software Livre;
●
Porque isto é importante?
●
●
●
Sociedade da informação
Monopólios sobre a informação
Monopólios sobre as ferramentas
que processam as informações
Falácias
●
“Software Livre é Linux”
Falácias
●
●
“Software Livre é Linux”
Software Livre é muito mais que apenas um único
programa de computador, como por exemplo o
sistema operacional GNU/Linux.
Falácias
●
“Software Livre é Linux”
●
“Software Livre é programa gratuito”
Falácias
●
“Software Livre é Linux”
●
“Software Livre é programa gratuito”
●
●
“Programa gratuito” se chama FreeWare. E não
necessariamente é Software Livre (o leitor de PDF
AcrobatReader é gratuito,
e não é Software Livre);
Software Livre pode não ser gratuito
(a distribuição GNU/Linux Red Hat
é comercializada, não é gratuita).
Falácias
●
“Software Livre é Linux”
●
“Software Livre é programa gratuito”
●
“Usar Linux é muito difícil”
Falácias
“Software Livre é Linux”
“Software Livre é programa gratuito”
“Usar Linux é muito difícil”
●
●
●
–
–
–
–
Ambiente gráfico padrão (janelas, botões, etc...)
As distribuições GNU/Linux da atualidade trazem grandes
facilidades para os usuários (detecção automática de
periféricos, ambientes gráficos amigáveis, grande
variedade de programas aplicativos);
As empresas não fornecem seus produtos com suporte a
Linux (Monopólio de algumas empresas, contratos de
exclusividade, ...);
Resolvido através do trabalho colaborativo e engenharia
reversa.
Como é produzido um programa?
●
●
●
Código-fonte: uma “receita de bolo”, que diz,
passo-a-passo, o que o computador deve fazer para
resolver um problema específico;
O código-fonte é escrito usando-se uma
Linguagem de Programação. Existem várias
linguagens de programação, cada uma com um
objetivo específico bem definido (uso geral, uso
comercial, uso matemático, páginas WEB,
celulares ...);
Geralmente é muito parecida com a língua inglesa;
Receita de bolo
●
Ingredientes
●
●
●
●
●
2 xícaras de farinha de trigo
2 xícaras de açúcar
1 xícara de leite
...
MODO DE PREPARO
●
●
●
●
●
●
●
●
bata as claras em neve
acrescente as gemas
misture mais um pouco
coloque o açúcar
continue misturando
coloque a farinha
...
Untar um tabuleiro e colocar para assar ...
Programa para somar 2 números
●
receba, via teclado, o primeiro número
●
armazene em “A”
●
receba, via teclado, o segundo número
●
armazene em “B”
●
faça a seguinte conta: “ C = A + B “
●
mostre o valor de “C” na tela do computador
●
fim
Programa na linguagem C
●
#include <stdio.h>
int main
{
int A, B, C;
printf(“digite o primeiro numero:\n”);
scanf(“%d”, &A);
printf(“digite o segundo numero:\n”);
scanf(“%d”, &B);
C = A + B;
printf(“o resultado eh %d\n\n”, C);
}
Compilação
●
●
●
O computador não consegue entender o códigofonte;
É preciso transformar o código-fonte em um
programa executável, composto pelos 0s e 1s que
o computador entende;
Esse processo é chamado de compilação.
Código fonte:
Executável:
#include <stdio.h>
int main
{
int A, B, C;
printf(“digite o primeiro
numero:\n”);
scanf(“%d”, &A);
printf(“digite o segundo
numero:\n”);
scanf(“%d”, &B);
C = A + B;
printf(“o resultado eh %d\n\n”,
C);
}
0101010010010101101010001
0110111101010101000010101
0101110101100101000101010
1011101010101010101010000
1010111101000111101011110
0001100010111101111010101
0100001010101011011101010
1010101010110101010100101
0100100101011010100010110
1111010101010000101010101
1101011001010001010101011
1010101010101010100001010
1111010001111010111100001
1000101111011110101010100
Para alterar o programa
●
●
Se quisermos alterar nosso programa apresentado,
para somar 3 números, ao invés de 2 ?
Não é possível alterar diretamente o programa
executável; Precisamos alterar no código-fonte, e
repetir o processo de
compilação, para
obtermos um novo
programa executável,
com as alterações
que queremos.
Software Proprietário
●
●
●
●
●
O que as empresas de software fazem?
● construção do CÓDIGO FONTE de um programa;
● editor textos, planilha, jogo, etc...
● conversão para PROGRAMA EXECUTÁVEL;
● venda do PROGRAMA EXECUTÁVEL;
Só quem pode alterar o programa é a empresa que o
criou, pois só ela tem o CÓDIGO FONTE original;
A empresa altera o CÓDIGO FONTE, adicionando
novos recursos ao programa, novas facilidades...
Converte novamente para PROGRAMA
EXECUTÁVEL, gerando uma NOVA VERSÃO do
programa;
Quem comprou a versão anterior, tem que pagar mais
um valor para ter a nova versão (Licença de uso).
Software Livre
●
●
●
Filosofia de trabalho onde o CÓDIGO FONTE é
DISPONIBILIZADO;
● Qualquer um pode ter acesso a esse CÓDIGO FONTE, e
alterar da forma que quiser;
● Porém, OBRIGATORIAMENTE, essa pessoa deverá
também disponibilizar o CÓDIGO FONTE com as
alterações realizadas;
● Licença de uso
● GPL
Consequências:
● Trabalho colaborativo, um número muito grande de
pessoas, ao redor do mundo (Internet), contribuem para o
avanço dos programas, consertando erros, adicionando
novas funcionalidades, tirando dúvidas de usuários, etc...
Também se usa: CÓDIGO ABERTO (open source).
Software Livre: as 4 liberdades
●
●
●
●
Executar o programa para qualquer propósito;
Estudar como o programa funciona, para adaptá-lo as
suas necessidades (acesso ao código-fonte é um requisito
para esta liberdade);
Distribuir cópias de modo que você
possa ajudar ao seu próximo;
Aperfeiçoar o programa e liberar
os seus aperfeiçoamentos, de modo
que toda a comunidade se beneficie
(acesso ao código-fonte é um
requisito para esta liberdade).
Sistema Operacional
Pequeno resumo histórico
●
●
●
●
●
Invenção do telefone: Graham Bell
American Telephone & Telegraph - AT&T
Bell System
Bell Labs
Massachusetts Institute of Technology - MIT
●
●
1961: sistema operacional CTSS
Bell e MIT
●
●
●
●
Sistemas operacionais:
1963: MULTICS
1965: UNICS
1970: UNIX
UNIX
●
Primeiro momento:
●
●
●
●
acadêmico, código-fonte disponível para estudos,
alterações, etc...
Nesse momento, o foco da indústria era no hardware,
os lucros vinham da construção física do computador.
O software era um mero detalhe
Depois... (1982)
●
●
●
“Caiu a ficha”!
Importância do software
modelo comercial: proprietário,
fechado, patentes,
propriedade intelectual...
Richard Stallman
●
●
●
●
●
a “regra” era o compartilhamento e a distribuição de
software;
Naquela época, ainda não havia o termo "software
livre", mas o conceito já era aplicado;
Segundo Stallman, "quando alguém de outra
universidade ou empresa precisava usar um programa
do Laboratório de Inteligência Artificial, nós
deixávamos com satisfação.”
“E se você visse alguém usando um programa
desconhecido e interessante, poderia pedir para ver o
código dele também.”
“Com isso, você poderia ler o código, alterá-lo e até
aproveitar partes dele para gerar um novo programa".
Richard Stallman
Richard Stallman
●
●
●
●
Os computadores daquela época tinham seu próprio SO
e nenhum era livre. Era necessário assinar um termo de
confidencialidade p/ receber uma cópia do executável;
● Apenas o executável, nada de código-fonte.
Nas próprias palavras de Stallman, "isso significava
prometer não ajudar a quem precisasse; era uma
proibição de uma comunidade colaborativa";
As regras do contrato diziam: "se precisar de alguma
alteração no software, peça-nos para fazê-la para você";
exemplo de programa de computador que ele queria
alterar, para melhorar seu funcionamento, e não foi
permitido (código-fonte fechado).
Solução...
●
●
●
●
Criar um novo sistema operacional, livre!
1984: demissão do MIT, e criação do
projeto GNU - Sistema Operacional GNU,
compatível com o Unix;
GPL - gnu public license;
1985: expansão da idéia, não só um novo Sist.
Operacional - Free Software Foundation.
Sistema operacional GNU/Linux
●
Linux: “kernel” (motor), criado por Linus
Torvalds
Porque isto é importante ?
Qual é o melhor, tecnicamente?
Software Livre ou Software Proprietário ?
Linux ou MS-Windows (r) ?
Qual é o melhor, tecnicamente?
Software Livre ou Software Proprietário ?
Linux ou MS-Windows (r) ?
Sociedade da Informação
Feudalismo
- agricultura como
elemento principal
- produção para a
própria subsistência e
venda do que sobrava
Sociedade Industrial
( Revolução industrial )
- eficiência como
elemento principal
- produzir a maior
quantidade no
menor tempo
- acesso a bens
produzidos por
terceiros
acesso a bens
Sociedade da Informação
- possível através do aumento da
capacidade de processamento e
de transmissão de informações
- setor de serviços, absorve 60%
da mão-de-obra (mais do que a
agricultura e a indústria juntas)
acesso a informações
Exemplos
●
●
●
●
●
●
●
Exemplos da importância da informação na
sociedade atual:
Lista das 500 maiores empresas do mundo,
“Global 500”, jornal Financial Times
Entre as 50 maiores empresas do mundo:
11 são bancos (se o mundo atual funciona tendo por
base o dinheiro - capitalismo - nada mais lógico!)
11 são empresas da área de Tecnologia da
Informação!
(hardware, software, telecomunicações)
Logo, informação = dinheiro!
Outro Exemplo
●
●
●
●
Festival do Software Livre, agosto/2006, relato de
uma índia (projeto “tribos on-line”)
antes, o pessoal da tribo ia na prefeitura para ver se o
dinheiro da merenda escolar já tinha sido liberado.
Geralmente voltavam de mãos vazias, pois a
prefeitura alegava que o dinheiro ainda não tinha sido
liberado;
hoje, eles consultam na Internet se o dinheiro foi
liberado, imprimem a informação, e chegam na
prefeitura dizendo, “está aqui, o dinheiro foi liberado,
viemos buscar”.
Não é mais possível enganar os índios, porque eles
têm acesso à informação!
Sociedade da Informação
●
●
●
●
É muito mais que ter acesso a Internet, ou saber
usar um editor de textos... é entender a
importância que a informação tem para a vida
atual, saber onde está e poder compreendê-la.
Adicionalmente, saber COMO USAR esta informação para realizar mudanças na qualidade de
vida, própria e da comunidade (exercer a
cidadania).
Por isso é tão importante a discussão sobre
“inclusão digital”, inserida no tema maior de
“inclusão social”
Inclusão digital como política pública!
Soc. da Informação e Soft. Livre
●
●
●
●
Informação é essencial na sociedade atual;
Inclusão digital é essencial na sociedade atual.
É prejudicial a existência de monopólios de controle
da informação (por exemplo, empresas de
comunicação influenciando e alterando resultados de
eleições);
Também prejudicial os monopólios
de controle dos meios para
processamento e transmissão dessas
informações (hardware, software,
tecnologia da informação).
Em resumo...
●
Informação essencial na sociedade atual;
●
Informação “mediada” por tecnologia
–
–
●
●
hardware e software
inclusão digital
Software livre, permite o uso e o desenvolvimento
da tecnologia (“software”), de forma livre, sem
forçar a dependência de empresas privadas
estrangeiras (e por consequência, outros países)
Desenvolvimento local da tecnologia
Educação e Adm.Pública...
... grandes beneficiárias do Software livre:
●
●
●
●
Economia: não paga por licenças, mas sim,
trabalho, serviços
Colaboração: promove o espírito de colaboração e
a partilha de conhecimentos, exemplo para a
população
Legalidade: forma de combate a pirataria de
software
Investimento público: investir em S.L. é investir
em algo público, em um bem de acesso livre
continua...
Educação e Adm.Pública...
... grandes beneficiárias do Software livre:
●
●
●
●
Independência: liberta a escola e a adm.pública da
dependência de interesses privados, dá liberdade
de escolha de software e facilita a adoção de
formatos de dados livres;
Qualidade e segurança: defeitos consertados mais
rapidamente; não há risco de se ter “coisas”
prejudiciais (invasão de privacidade) escondidas
no código;
Gerador de empregos;
Desenvolvimento científico e tecnológico local.
No ambiente educacional...
●
●
●
●
Formação mais completa!
Utilizando software proprietário, cria-se meros
usuários daquela ferramenta específica;
Cria-se também, por consequência, novos clientes
para a empresa dona da ferramenta;
Utilizando software livre, pode-se formar
profissionais completos, que não só saberão
manipular uma determinada ferramenta, mas
também terão a possibilidade de ver e estudar
como a ferramenta foi construída e como ela
funciona internamente.
Software Livre e Meio Ambiente
●
●
●
Algumas idéias para discussão...
Quebra do ciclo do sucateamento:
novo software - novos padrões - troca de software
- troca de equipamentos - descarte de
equipamentos antigos em bom estado
Por exemplo, é possível rodar GNU/Linux em uma
máquina com 64 megas de memória, com
ambiente gráfico, acesso a internet, abrindo
arquivos de texto, planilhas, etc...
Montagem de laboratórios, telecentros...
Com software proprietário (sistema operacional
Windows):
●
–
20 computadores completos
●
disco rígido, memória...
Com software livre (qualquer distribuição
GNU/Linux):
●
–
–
–
–
2 computadores completos (com um pouco mais de
memória e disco rígido que os acima descritos)
18 “sucatas”
cada sucata acessa remotamente (via rede) as máquinas
“boas”
todos os recursos disponíveis: edição de textos,
navegação na internet, etc...
Ou melhor ainda...
●
1 computador, 4 telas, 4 terminais, 4 mice...
Diminuição do consumo de energia
“Um estudo da IBM em 2009 demonstrou que
uma série de medidas adotas pelo sistema
operacional GNU/Linux diminuem o consumo de
energia de um computador/Servidor.
Essas e outras medidas também fazem parte de um
projeto internacional, apoiado pela Intel
Corporation, denomindo LessWatts.org.”
Em breve...
●
Grupo de estudos para colaboração com o projeto
GNOME
●
A distância, via blog/moodle
●
http://starfightercarlao.blogspot.com
Video: entrevista Sergio Amadeo
Obrigado pela atenção!
●
Esta apresentação também é livre (Creative Commons
CCNCSA), basta pedir:
[email protected]
http://starfightercarlao.blogspot.com
Imagens (algumas) de TUX:
http://tux.crystalxp.net
Star-tux Wars!