Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

Software Livre e Open Source

7,923 views

Published on

Palestra "Software Livre & Open Source", apresentada aos calouros de Engenharia e Ciências da Computação em 13/05/2007 (sexta-feira).

Published in: Technology
  • Be the first to comment

Software Livre e Open Source

  1. 2. Software Livre
  2. 3. Software Livre <ul><ul><li>“ Software Livre” é uma questão de liberdade, não de preço. </li></ul></ul><ul><ul><li>“ Software Livre” se refere à liberdade dos usuários executarem , copiarem , distribuírem , estudarem , modificarem e aperfeiçoarem o software. </li></ul></ul><ul><ul><li>Pense em “liberdade de expressão” , </li></ul></ul><ul><ul><li>não em “boca livre” . </li></ul></ul>
  3. 4. As Quatro Liberdades do S. L. <ul><li>liberdade no. 0: A liberdade de executar o programa, para qualquer propósito. </li></ul><ul><li>liberdade no. 1: A liberdade de estudar como o programa funciona, e adaptá-lo para as suas necessidades. Acesso ao código-fonte é um pré-requisito para esta liberdade. </li></ul><ul><li>liberdade no. 2: A liberdade de redistribuir cópias de modo que você possa ajudar ao seu próximo. </li></ul><ul><li>liberdade no. 3: A liberdade de aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie. </li></ul>
  4. 5. Richard Stallman <ul><li>Criador do conceito de Software Livre e fundador da Free Software Foundation , que busca disseminar os ideais do Software Livre. </li></ul><ul><li>Fundador do Projeto GNU , cujo objetivo é fazer um Sistema Operacional completo totalmente Software Livre. </li></ul><ul><li>Também escreveu vários softwares importantes. </li></ul>
  5. 6. “Com Licença” <ul><li>Todo software possui uma licença associada, que diz o que os usuários podem ou não fazer com o mesmo. </li></ul><ul><li>Licenças são um contrato entre o fornecedor e o usuário do software. </li></ul><ul><li>Você obtém a licença para usar o software desde que concorde com as condições. </li></ul><ul><li>Conceitualmente podemos dividir as licenças em Proprietárias e Livres . </li></ul>
  6. 7. Licenças Proprietárias <ul><li>Com softwares (e outras tecnologias) que usam esse tipo de licença você não pode : </li></ul><ul><ul><li>executar o programa, para qualquer propósito </li></ul></ul><ul><ul><li>estudar como o programa funciona, e adaptá-lo para as suas necessidades </li></ul></ul><ul><ul><li>redistribuir cópias de modo que você possa ajudar ao seu próximo </li></ul></ul><ul><ul><li>aperfeiçoar o programa, e liberar os seus aperfeiçoamentos, de modo que toda a comunidade se beneficie </li></ul></ul>
  7. 8. Exemplo de Licença Proprietária <ul><li>Alguns dos direitos concedidos por uma licença proprietária da Adobe </li></ul><ul><li>“ you may not sublicense or distribute the Software. … You may not modify, adapt, translate or create derivative works based upon the Software. You may not reverse engineer, decompile, disassemble or otherwise attempt to discover the source code of the Software. … You may not install or use the Software on any non-PC device or with any embedded or device version of any operating system.” (*) </li></ul><ul><li>(*) http://diveintomark.org/archives/2007/05/02/silly-season </li></ul>
  8. 9. General Public License (GPL) <ul><li>A GPL protege os direitos dos usuários e do programador/autor: </li></ul><ul><ul><li>usuários – a versão do software lançada sob GPL não pode deixar de ser software livre mais tarde. </li></ul></ul><ul><ul><li>programador – uma empresa não pode tomar seu código e torná-lo proprietário . </li></ul></ul><ul><li>NOTA: O autor ainda tem o direito de lançar o seu software com outras licenças ou uma versão proprietária, mas não pode revogar a versão livre. </li></ul>
  9. 10. Softwares Livres que Necessitam de Softwares Proprietários <ul><li>É o caso de softwares feitos em Flash </li></ul><ul><li>A detentora dos direitos do plugin Flash exige que antes de instalá-lo, cada usuário deve concordar com os termos de uso, que não permite que o mesmo seja redistribuído (além de fazer outras exigências nada amigáveis) </li></ul>
  10. 11. Freeware Não É Free Software <ul><li>Os conhecidos freewares, ou softwares grátis, não são o mesmo que Software Livre. </li></ul><ul><li>Seu criador não se compromete em manter o software grátis, normalmente não oferece o código fonte e não permite a distribuição, ou não deixa claro os termos da mesma. </li></ul><ul><li>Depender de um Freeware pode (e costuma) trazer dores de cabeça quando menos se espera </li></ul>
  11. 12. Open Source “ Open source is a set of principles and practices that promote access to the production and design process for various goods, products, resources and technical conclusions or advice.” (Wikipedia:Open_source)
  12. 13. Free Software x Open Source <ul><li>Free Software </li></ul><ul><ul><li>Filosófico </li></ul></ul><ul><ul><li>Ênfase na liberdade do usuário </li></ul></ul><ul><li>Open Source </li></ul><ul><ul><li>Pragmático </li></ul></ul><ul><ul><li>Ênfase no desenvolvimento aberto e em modelos de negócio </li></ul></ul><ul><li>Discordam em alguns pontos, mas podem ser complementares, e certamente não são antagônicos. </li></ul><ul><li>Não briguem por bobagens! </li></ul>
  13. 14. GNU/Linux
  14. 15. O que é o GNU/Linux? <ul><ul><li>GNU/Linux é um sistema operacional. </li></ul></ul><ul><ul><li>Também é um dos mais famoso exemplos </li></ul></ul><ul><ul><li>de Software Livre e Desenvolvimento de Código Aberto. </li></ul></ul><ul><ul><li>Ao contrário dos sistemas proprietários, este dispõe de seu código fonte e pode ser usado , alterado e distribuído livremente. </li></ul></ul>
  15. 16. Linux linux computador linux computador linux computador
  16. 17. GNU e Linux <ul><ul><li>O Linux é apenas o kernel (núcleo do sistema) . As ferramentas que fazem uso do Kernel foram desenvolvidas pelo projeto GNU. </li></ul></ul>
  17. 18. GNU/Linux
  18. 19. Estrutura (simplificada) de Um Sistema GNU/Linux <ul><ul><ul><li>Intermedia o acesso ao hardware e gerencia os programas em execução. </li></ul></ul></ul><ul><ul><ul><li>Nos permite interagir com os programas usando janelas, ícones e mouse. </li></ul></ul></ul><ul><ul><ul><li>Ferramentas necessárias para construir e utilizar o sistema. </li></ul></ul></ul><ul><ul><ul><li>Aquela coisa física que você chuta quando dá problema. </li></ul></ul></ul>Linux Drivers Ambiente Gráfico Hardware GNU
  19. 20. Distribuição <ul><li>Os componentes mencionados anteriormente estão espalhados pela internet. </li></ul><ul><li>Apesar de serem projetos distintos, podem ser “encaixados” com outros para compor um todo. </li></ul><ul><li>Como Lego! </li></ul><ul><li>Chamamos de distribuição um sistema GNU/Linux “pré-montado”. </li></ul>
  20. 21. O Que Temos Disponível <ul><li>Temos a nosso dispôr todo tipo de Software Livre: </li></ul><ul><ul><li>Processadores de Texto </li></ul></ul><ul><ul><li>Planilhas de Cálculo </li></ul></ul><ul><ul><li>Aplicações Gráficas </li></ul></ul><ul><ul><li>Editores de Áudio </li></ul></ul><ul><ul><li>Navegadores de Páginas Internet </li></ul></ul><ul><ul><li>Sistemas Operacionais </li></ul></ul><ul><ul><li>Softwares Educativos </li></ul></ul><ul><ul><li>Jogos </li></ul></ul>
  21. 22. Em Que Forma Encontramos <ul><li>Normalmente encontramos o software desejado na forma de código fonte. </li></ul>(...) char *category = libhal_device_get_property_string (ctx, udi, &quot;info.category&quot; , NULL); if (category && (!strcmp (category, &quot;net.80203&quot; ) || !strcmp (category, &quot;net.80211&quot; ))) { char *temp = libhal_device_get_property_string (ctx, udi, &quot;net.interface&quot; , NULL); iface = g_strdup (temp); libhal_free_string (temp); } libhal_free_string (category); (...)
  22. 23. Como Se Põe Essa Coisa Para Funcionar? <ul><li>Precisamos compilar o programa, o que significa transformar o código fonte num arquivo executável </li></ul>Colhe informações sobre o computador para compilar o programa de acordo. Avisa se algum pré-requisito não puder ser satisfeito. Chama o compilador para os arquivos de código fonte. Instala o programa em seu devido lugar. $ ./configure (texto rolando tela acima...) $ make (mais texto rolando tela acima...) $ make install (ainda mais texto rolando...)
  23. 24. 1 Desenvolvedor de Aplicações Muitos 'Técnicos' Para Compilar progama.tar.gz Programador Descompacta Compila Executável Executável Executável Executável
  24. 25. 1 Desenvolvedor de Aplicações 1 'Técnico' Para Compilar progama.tar.gz Programador Descompacta Empacotador Compila Executável Menos trabalho pra muita gente.
  25. 26. Repositórios Repositório de Softwares Pré-compilados
  26. 27. Não É Caridade <ul><li>É trabalhar juntos pelo benefício mútuo! </li></ul>E eu faço outra... Eu faço uma pequena parte... E compartilhamos!
  27. 28. Serão Comunistas???
  28. 29. Debian <ul><li>O Debian é uma distribuição produzida por aproximadamente 1000 desenvolvedores ativos espalhados pelo mundo. </li></ul><ul><li>“ O Debian GNU/Linux é mais que um simples SO: ele vem com mais de 15490 pacotes contendo softwares pré-compilados e distribuídos em um bom formato, que torna fácil a instalação deles na sua máquina.” </li></ul><ul><li>O Debian possui um contrato social que se compromete em sempre ser 100% Software Livre. </li></ul>
  29. 30. Desenvolvedores Debian ao Redor do Mundo
  30. 31. Uma Figura Complicada Que Está Aqui Só Para Atrapalhar Processo de desenvolvi-mento do Debian
  31. 32. Ubuntu Derivado do Debian, porém com muitas melhorias na facilidade de uso e velocidade na atualização. Também é uma palavra Africana que significa “humanidade para os outros” ou “ Eu sou o que sou por causa do que todos nós somos” .
  32. 33. O Criador do Ubuntu É Um Cosmonauta! <ul><li>Sul-africano e Desenvolvedor Debian </li></ul><ul><li>Ficou milionário com Software Livre (especificamente com a com a Thawte , especializada em segurança de internet, que foi vendida para a Verisign) </li></ul><ul><li>Viajou para o espaço com os Russos... </li></ul><ul><li>...espere aí!!! Com os Russos?! </li></ul>
  33. 34. O Criador do Ubuntu É Um Cosmonauta! <ul><li>Sul-africano e Desenvolvedor Debian </li></ul><ul><li>Ficou milionário com Software Livre </li></ul><ul><li>Viajou para o espaço com os Russos... </li></ul><ul><li>...espere aí!!! Com os Russos?! </li></ul><ul><ul><ul><ul><li>Serão comunistas ??? </li></ul></ul></ul></ul>
  34. 35. Padrões Abertos
  35. 36. Padrões <ul><li>Formatos de Dados </li></ul><ul><ul><li>Documentos </li></ul></ul><ul><ul><li>Imagens </li></ul></ul><ul><ul><li>Vídeos </li></ul></ul><ul><li>Protocolos de Comunicação </li></ul><ul><ul><li>HTTP (web) </li></ul></ul><ul><ul><li>SMTP/POP/IMAP (email) </li></ul></ul>
  36. 37. Formato de Dados: HTML
  37. 38. Protocolo: email <ul><li>Eu certamente posso mandar um email para um amigo, não importa qual seja meu servidor ou sistema operacional do computador dele. </li></ul><ul><li>E tudo acontece de forma transparente aos envolvidos. </li></ul>email.org.br correio.com.br [email_address] [email_address] tu eu
  38. 39. Intervalo Histórico <ul><ul><li>Na época da guerra civil dos EUA, companhias fabricantes de locomotivas tinham cada uma suas próprias estradas de ferro, com larguras e formas diferentes, feitas para funcionar apenas com seus trens e vagões. </li></ul></ul>
  39. 40. Ilhas de Comunicação Instantânea
  40. 41. Imgine <ul><li>...se isso acontecesse com o email? </li></ul><ul><li>[email_address] só posso mandar emails para usuários cadastrados em @coldmail.com . </li></ul><ul><li>Absurdo? Mas em suas comunicações instantâneas, você deve estar numa dessas ilhas! Normalmente mais de uma... </li></ul><ul><li>Mais que isso: nós ajudamos a criá-las! </li></ul><ul><li>E você provavelmente não pode sair da sua ilha, afinal, seus amigos ainda estão lá... </li></ul>
  41. 42. Jabber <ul><li>Protocolo de comunicação de tempo real. </li></ul><ul><li>A tecnologia Jabber é: </li></ul><ul><ul><li>Aberta e Padronizada </li></ul></ul><ul><ul><li>Descentralizada </li></ul></ul><ul><ul><li>Extensível </li></ul></ul><ul><ul><li>Segura </li></ul></ul><ul><li>Usado pelo Google no GoogleTalk. </li></ul><ul><li>Pode ser usado no seu projeto. </li></ul>
  42. 43. Formatos Para Multimídia <ul><ul><li>Ou: </li></ul></ul><ul><ul><li>“ Por que o Linux que acabei de Instalar não toca meus mp3???” </li></ul></ul><ul><ul><li>Resposta: </li></ul></ul><ul><ul><li>“ Porque tem de pagar playboy!” </li></ul></ul>
  43. 44. Formatos Proprietários <ul><li>Nem sempre a descrição de como exibir o conteúdo (texto, som, vídeo, etc.) está disponível. (Engenharia Reversa é um processo demorado.) </li></ul><ul><li>A implementação de software ou hardware para exibir o conteúdo no formato proprietário requer pagamento de royalities. (WMA? X dólares por unidade de player vendida.) </li></ul><ul><li>A distribuição de software ou hardware capaz de exibir o conteúdo no formato proprietário é controlada. (Por isso que seu Linux não pode tocar mp3.) </li></ul>
  44. 45. Alguns Formatos <ul><li>Formatos Proprietários </li></ul><ul><li>Vídeo </li></ul><ul><ul><li>DivX </li></ul></ul><ul><ul><li>WMV </li></ul></ul><ul><ul><li>QuickTime (.mov) </li></ul></ul><ul><ul><li>RealVídeo </li></ul></ul><ul><li>Áudio </li></ul><ul><ul><li>MP3/MPEG </li></ul></ul><ul><ul><li>WMA </li></ul></ul><ul><li>Formatos Abertos </li></ul><ul><li>Vídeo </li></ul><ul><ul><li>Ogg Theora (.ogg, .ogm) </li></ul></ul><ul><ul><li>Matroska (.mkv, .mka) </li></ul></ul><ul><li>Áudio </li></ul><ul><ul><li>Ogg Vorbis (.ogg) </li></ul></ul><ul><ul><li>FLAC (.flac) </li></ul></ul><ul><ul><li>Speex </li></ul></ul>
  45. 46. Open Document Format <ul><li>É um Formato Aberto para arquivos gerados por aplicações de escritório – processadores de texto, planilhas de cálculo, editores de apresentações e bases de dados. </li></ul><ul><li>Em 3 de maio de 2006, a proposta de tornar o OpenDocument um padrão ISO foi aprovada após um processo de revisão de seis meses, com ampla participação e nenhum voto negativo. </li></ul>
  46. 47. Entidades Que Apóiam o ODF E muitos outros no site da OpenDocument Format Alliance http://www.odfalliance.org/about.php
  47. 48. Alguns Projetos
  48. 49. Plataforma Maemo
  49. 50. Plataforma Maemo (Arquitetura)
  50. 51. UMPC Intel UMPC = Ultra Mobile PC
  51. 52. UMPC Intel
  52. 53. OpenMoko
  53. 54. OpenMoko (Arquitetura)
  54. 55. OLPC <ul><li>Barato </li></ul><ul><li>Baixo consumo </li></ul><ul><li>Grande capacidade de comunicação </li></ul>
  55. 56. GP2X
  56. 57. Me Mostre o Dinheiro
  57. 58. A Pergunta de 1 Milhão de Centavos Programadores de Software Livre passam fome?
  58. 59. Ganhando Dinheiro <ul><li>Prestação de Serviços </li></ul><ul><ul><li>Consultoria </li></ul></ul><ul><ul><li>Instalação </li></ul></ul><ul><ul><li>Manutenção e Suporte </li></ul></ul><ul><ul><li>Executando software como serviço </li></ul></ul><ul><li>Cenário: você avalia que um cliente precisa de um servidor de banco de dados, a opção proprietária custa 1 putilhão de reais, a opção livre 0 reais. </li></ul><ul><ul><li>Quanto o cliente está disposto a pagar? </li></ul></ul><ul><ul><li>Quanto vai sobrar pra você? </li></ul></ul>
  59. 60. Dell <ul><li>Passará a vender computadores com Ubuntu 7.04 pré-instalado. </li></ul><ul><li>Acordo com a Canonical para prestação de suporte aos clientes da Dell. </li></ul><ul><li>(Barulho de dinheiro) </li></ul>
  60. 61. Trabalhando <ul><li>Desenvolvendo... </li></ul><ul><li>pausaparaamensagemsubliminar! </li></ul>
  61. 62. MensagemSubliminar Software Não é Sapato!
  62. 63. “Mãe, eu faço programa.” <ul><li>Programadores de software proprietário </li></ul><ul><ul><li>Ralam o mês todo por salário (ralação de programador é produzir código, ou melhor, “codar”) </li></ul></ul><ul><li>Chefes de programadores de software proprietário </li></ul><ul><ul><li>Investem uma grana no desenvolvimento de um produto de software. Eles investem apenas 1 vez </li></ul></ul><ul><ul><li>A reprodução do produto de software é praticamente 0 </li></ul></ul><ul><ul><li>O produto é vendido muitas e muitas vezes </li></ul></ul><ul><li>O que acontece com o salário dos programadores? </li></ul><ul><li>Que controle eles têm sobre o que criaram? </li></ul>
  63. 64. MensagemSubliminar Software Não é Sapato!
  64. 65. Fazendo Programa com um Monte de Gente <ul><li>Programadores de software Open Source </li></ul><ul><ul><li>Ralam o mês todo por salário </li></ul></ul><ul><ul><li>Colaboram com vários indivíduos (e recebem colaborações de origens inesperadas) </li></ul></ul><ul><ul><li>Aprendem a produzir código legível (por bem ou por mal, outras pessoas estão lendo seu código o tempo todo) </li></ul></ul><ul><ul><li>Freqüentam eventos </li></ul></ul><ul><ul><li>Às vezes viram rockstars! </li></ul></ul>
  65. 66. Possibilidades <ul><li>Criar softwares livres/open source </li></ul><ul><li>Personalizar ou extender SL/OS para necessidades específicas do cliente </li></ul><ul><li>Criar software não livres que rodam sobre plataformas livres </li></ul><ul><ul><li>Licença LGPL </li></ul></ul><ul><ul><li>Licença BSD </li></ul></ul><ul><li>Usar ferramentas livres para criar softwares não-livres (alguém do CiTi aí?) </li></ul>
  66. 67. Ferramentas do Programador Open Source <ul><li>Editor de Texto </li></ul><ul><li>Compilador (ou interpretador, eu ouvi Python na última fila?) </li></ul><ul><li>Email e Listas de Discussão </li></ul><ul><li>IRC </li></ul><ul><li>Controle de Versão </li></ul><ul><li>Bugzilla </li></ul><ul><li>Instant Messenger (com Jabber, por favor) </li></ul><ul><li>Blogs e Planets </li></ul>
  67. 68. Aqui Perto de Você (que mora em Recife)
  68. 69. Aqui Perto de Você (que mora em Recife)
  69. 70. Aqui Perto de Você (que mora em Recife)
  70. 71. Perto de Você (que mora em qualquer lugar) <ul><li>Quatro alunos do CIn participando! </li></ul><ul><li>Prêmios: </li></ul><ul><ul><li>US$ 4.500,00 </li></ul></ul><ul><ul><li>Uma camiseta legal </li></ul></ul><ul><ul><li>Fama, fortuna, mulheres... </li></ul></ul>
  71. 72. Créditos
  72. 73. Apresentação Derivada de Outra, Criada Para O Projeto... http://www.ciencialivre.pro.br
  73. 74. Autores Antonio Josivaldo Marcelo Lira Pegamos alguns slides de Rodrigo Costa Algumas dicas de marciom e dandrader Newton explicou a lei da gravitação O miguxo Tux é bunitinho. Einstein explicou a Relatividade Lauro mandou melhorias
  74. 75. Referências
  75. 76. Referências <ul><li>Free Software Foundation http://www.fsf.org </li></ul><ul><li>Fundação Software Livre América Latina http://www.fsfla.org/?q=pt </li></ul><ul><li>General Public License http://creativecommons.org/licenses/GPL/2.0/deed.pt </li></ul><ul><li>Open Source Initiative http://www.opensource.org </li></ul><ul><li>Creative Commons http://creativecommons.org/ http://www.creativecommons.org.br/ </li></ul>
  76. 77. Referências <ul><li>OpenOffice.org http://www.openoffice.org/ http://www.openoffice.org.br/ </li></ul><ul><li>Tango Desktop Project http://tango-project.org/Tango_Desktop_Project </li></ul><ul><li>OpenDocument Format http://en.wikipedia.org/wiki/OpenDocument </li></ul><ul><li>Formatos Multimídia Abertos http://en.wikipedia.org/wiki/Ogg http://en.wikipedia.org/wiki/Theora http://en.wikipedia.org/wiki/Vorbis http://en.wikipedia.org/wiki/FLAC http://en.wikipedia.org/wiki/Speex </li></ul>
  77. 78. Referências <ul><li>Jabber Software Foundation http://www.jabber.org </li></ul><ul><li>Jabber na Wikipedia http://en.wikipedia.org/wiki/Jabber </li></ul><ul><li>Lista de Servidores Jabber Públicos http://www.xmpp.net/bycountry.shtml </li></ul><ul><li>Debian http://www.debian.org/intro/about </li></ul><ul><li>Ubuntu http://www.ubuntu.com </li></ul>
  78. 79. Referências <ul><li>GNOME Mobile & Embedded Initiative http://www.gnome.org/mobile </li></ul><ul><li>Canonical http://www.canonical.com </li></ul><ul><li>INdT http://www.indt.org.br </li></ul><ul><li>GP2X http://gp2x.com </li></ul>
  79. 80. <ul><li>Atribuição-Compartilhamento pela mesma licença 2.5 ( http://creativecommons.org/licenses/by-sa/2.5/deed.pt ) </li></ul><ul><li>Você pode: </li></ul><ul><ul><li>copiar, distribuir, exibir e executar a obra </li></ul></ul><ul><ul><li>criar obras derivadas </li></ul></ul><ul><ul><li>fazer uso comercial da obra </li></ul></ul><ul><li>Sob as seguintes condições: </li></ul><ul><li>Atribuição. Você deve dar crédito ao autor original, da forma especificada pelo autor ou licenciante. </li></ul><ul><li>Compartilhamento pela mesma Licença. Se você alterar, transformar, ou criar outra obra com base nesta, você somente poderá distribuir a obra resultante sob uma licença idêntica a esta. </li></ul><ul><ul><li>Para cada novo uso ou distribuição, você deve deixar claro para outros os termos da licença desta obra. </li></ul></ul><ul><ul><li>Qualquer uma destas condições podem ser renunciadas, desde que Você obtenha permissão do autor. </li></ul></ul><ul><li>Qualquer direito de uso legítimo (ou &quot;fair use&quot;) concedido por lei, ou qualquer outro direito protegido pela legislação local, não são em hipótese alguma afetados pelo disposto acima. </li></ul><ul><li>Este é um sumário para leigos da Licença Jurídica (na íntegra: http://creativecommons.org/licenses/by-sa/2.5/br/legalcode ). Termo de exoneração de responsabilidade: http://creativecommons.org/licenses/disclaimer-popup?lang=pt </li></ul>

×