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!