Carlos José Pereiraifspsaocarlos.edu.br/flisol/wp-content/uploads/2012/05/software_livr… ·...
Transcript of Carlos José Pereiraifspsaocarlos.edu.br/flisol/wp-content/uploads/2012/05/software_livr… ·...
Software Livre
Carlos José [email protected]
Professor Ens. Bas. Tecnológico - IFSP - São Carlos, SPDoutor 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ódigo-
fonte;
● É 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:
#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);}
Executável:
01010100100101011010100010110111101010101000010101010111010110010100010101010111010101010101010100001010111101000111101011110000110001011110111101010101000010101010110111010101010101010110101010100101010010010101101010001011011110101010100001010101011101011001010001010101011101010101010101010000101011110100011110101111000011000101111011110101010100
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 decompilação, paraobtermos um novoprograma executável,com as alteraçõesque 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 liberaros seus aperfeiçoamentos, de modoque toda a comunidade se beneficie(acesso ao código-fonte é umrequisito 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çãoFeudalismo
- 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
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 bens 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 infor- maçã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óliosde controle dos meios paraprocessamento e transmissão dessasinformaçõ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]://starfightercarlao.blogspot.com
Imagens (algumas) de TUX:http://tux.crystalxp.net
Star-tux Wars!