Fundamentos de Software Livre
Prof. M.Sc. Jansen Sena
[email protected]://www.jsena.info
Last revision: 2007, 25th Nov
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 2
Sobre o professor
● Formação acadêmica– Graduação
● Universidade Federal do Amazonas (Manaus, AM)– Mestrado Acadêmico
● Instituto de Computação / Unicamp (Campinas, SP)● Segurança de redes e administração de sistemas Unix
● Revista PC&CIA– Colaborador desde 2001– Coluna Segurança Hightech– http://www.revistapcecia.com.br
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 3
Sobre o professor
● Certificação LPI– Linux Professional Institute (http://www.lpi.org)
● Comunidade SOL Software Livre– ONG sem fins lucrativos para promoção do
software livre na Região Norte– Encontro de Software Livre do Amazonas– http://www.comunidadesol.org
● Outras informações– http://www.jsena.info
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 4
Conteúdo Programático
● Histórico do software livre– Contexto geral da época– O que é um hacker?– A história da impressora...– Free Software Foundation e Projeto GNU– Conceitos básicos de software livre– O surgimento do Linux– Porque GNU/Linux?– Software livre versus open source– O que NÃO é software livre?
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 5
Conteúdo Programático
● Tipos de software● Licenças de software● Distribuições GNU/Linux
– Distribuições majoritárias– Características principais
● Exemplos de outros softwares livres● Custo Total de Propriedade (TCO)● Casos de sucesso
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 6
Conteúdo Programático
● Contexto do software livre no Brasil– Governo e iniciativa privada
● Como se ganha dinheiro com software livre?● Produzindo software livre
– Considerações iniciais– Infraestrutura técnica– Recursos financeiros– Comunicação– Gerenciamento de voluntários
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 7
Histórico do Software Livre
● 1945–1960: quem fazia computação?– Físicos, engenheiros, matemáticos, ...
● 1960–1980: consolidação da área– PDP serie da Digital Corporation– Popularização do hardware
● Várias universidades adquiriram– MIT
● Laboratório de IA destacase no mundo● Foco estava no hardware
– Software não tinha valor de negócio
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 8
Histórico do Software Livre
● Comunidade de desenvolvedores– Colaborativa– Participativa– Surgimento do conceito hacker– Ausência de licenciamentos de software
● Hacker– Considerado um elogio– Utilizado para os melhores programadores
de Standford, Carnigie Mellon, MIT, ...
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 9
Histórico do Software Livre
● Cultura Hacker...– Coleção de subculturas conectadas– New Hacker Dictionary (1983, Eric S. Raymond)
● Mais de 1200 páginas● http://www.ccil.org/jargon/jargon.html
– Hackers (1984, Steven Levy)● Formalizou ética hacker
– Linguagem hacker● Termos próprios para convívio social
– Regras implícitas de comportamento
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 10
Histórico do Software Livre
● O que é, então, um hacker?There is a community, a shared culture, of expert programmers and networking wizards that traces its
history back through decades to the first timesharing minicomputers and the earliest ARPAnet experiments.
The members of this culture originated the term ‘hacker’. Hackers built the Internet. Hackers made the Unix operating system what it is today. Hackers
run Usenet. Hackers make the World Wide Web work. If you are part of this culture, if you have
contributed to it and other people in it know who you are and call you a hacker, you're a hacker.
(Eric S. Raymond)
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 11
Histórico do Software Livre
● O que NÃO é um hacker?– Pessoa que...
● ...invade computadores● ...rouba informações● ...danifica sistemas
– Termo utilizado e popularizado de maneira errada pela imprensa mundial
● Utilização errônea atingiu os grandes meios de comunicação incluindo os não especializados
– Outros termos para classificar “falsos hackers”● Crackers, Black hats, Script kiddies, ...
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 12
Histórico do Software Livre
● A história da impressora...– Richard Stallman, pesquisador do MIT, enfrentou
problemas com uma impressora● Equipamento “engolia” papéis...● Provocava perda de tempo ● Jobs acumulados na fila de impressão
– Qual foi a solução (workaround) ?● Modificou o software da impressora● Notificar o usuário sobre situações de printer jammed
– “The printer is jammed, please fix it.”● Somente usuário com impressão parada, levantavase
para resolver o problema
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 13
Histórico do Software Livre
● A história da impressora... (continuação)– MIT recebeu nova impressora– Doada pela Xerox– Adaptação de uma fotocopiadora– Equipamento mais rápido que os anteriores, mas
tinha o mesmo problema: paper jammed !!!– Stallman descobriu pesquisador da Universidade
de Carnigie Mellon que trabalhava no códigofonte● Robert Sproull não repassou o códigofonte● NDA (Nondisclousure agreement) com Xerox● Quebra da Cultura Hacker !!!
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 14
Histórico do Software Livre
● A história da impressora... (continuação)– Novo contexto: NDA com os desenvolvedores– Desarticulação da comunidade colaborativa– 1984: Stallman deixa seu trabalho no MIT– Objetivo: criar e manter uma comunidade de
software livre que pudesse continuar compartilhando conhecimento
– Foi concecida a possibilidade de continuar utilizando as estruturas do MIT
● Computadores, recursos, ...
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 15
Histórico do Software Livre
● Projeto GNU: GNU's Not Unix (1984)– Manifesto GNU (“Free as in Freedom”)– Criação de um sistema operacional livre (Alix/Hurd)– Programas livres como alternativas aos
proprietários licenciados recentemente– Primeiro desafio: não existia compilador C livre
● Stallman cria o GCC (GNU C Compiler)– Grande projeção do Projeto GNU
● 1984: GNU Emacs– 1985: Primeira versão estável
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 16
Histórico do Software Livre
● Programadores solicitavam softwares desenvolvidos pelo Projeto GNU– Fontes disponíveis e aquisição sem custos
provocou euforia entre desenvolvedores– Internet não estava consolidada mundialmente– Stallman divulgava softwares do Projeto GNU
enviandoos aos interessados● U$ 150,00 pelas fitas e manuais● Estabelecidos os primórdios do modelo de negócios de
software livre● Demandas pelos softwares aumentaram
significativamente conforme sua popularização
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 17
Histórico do Software Livre
● Criação da Free Software Foundation (FSF)– Fundada em 1985 por Richard Stallman– Organização sem fins lucrativos cujo objetivo é
gerenciar o movimento de software livre– Principal patrocinadora do Projeto GNU– Recebe doações de empresas e indivíduos
● Venda de manuais● Camisetas e outros “gifts”● Membros e sócios
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 18
Histórico do Software Livre
● Quais são as liberdades de um software livre?– Executar o software para qualquer propósito– Modificar o software conforme suas necessidades
● Garantia de acesso ao códigofonte– Distribuir o software para terceiros– Redistribuir as versões modificadas do software
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 19
Histórico do Software Livre
● Copyleft– Copyright ® All Rights Reserved– Copyleft (L) All Rights Reversed – Don Hopkins :)– Em outras palavras...
● ... software gerado a partir de software livre também deverá ser de licenciamento livre!
– Utiliza as leis de copyright para garantir as liberdades ao software
● Copyright: criado para restringir acesso e utilização– Conceito fundamental para garantir “carga
genética” do software livre
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 20
Histórico do Software Livre
● GNU GPL (GNU General Public License)– Era necessário criar os mecanismos legais para dar
subsídio aos softwares livres– Primeiro e principal mecanismo de licenciamento
de softwares livres– Outras licenças copyleft foram criadas pela Free
Software Foundation para fins específicos● GNU LGPL (GNU Lesser General Public License)
– Viabiliza o uso de bibliotecas de software livre em outros tipos de software que não sejam livres
● GNU GFDL (GNU Free Documentation License)– Implementa características de software livre para documentos
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 21
Histórico do Software Livre
● Surgimento do Linux– Minix = Minimal + Unix
● Sistema operacional concebido por Andrew S. Tanembaum ● Objetivo: exemplificar conceitos apresentados em seu livro
“Operating Systems: Design and Implementation” (1987)● Aproximadamente, 12.000 linhas de código
– Kernel– Gerenciador de memória– File system
● Autor era constantemente solicitado a incorporar novos recursos e mecanismos
● Unix exigia o pagamento de licenças de uso
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 22
Histórico do Software Livre
● Surgimento do Linux– Linux = Linus + Unix
● Linus Torvalds, aluno de graduação na época, implementou uma versão do Minix● “Just for fun!”
– Linus liberou o códigofonte na Internet para mostrar trabalho e angariar colaboradores voluntários
– 25 de agosto de 1991: post em comp.os.minix– Implementado sobre plataforma 80386– Número elevado de colaboradores fez o sistema
ganhar “vida própria”
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 23
Histórico do Software Livre
● 1991: surge o pingüim...– Setembro/1991: versão 0.01 é liberada
● 10.239 linhas de código– Outubro/1991: versão 0.02 é liberada– Dezembro/1991: versão 0.11 é liberada– Linus licenciou Linux sob os termos da GNU GPL– Características técnicas
● Não possuía suporte à rede e à muitos periféricos● Sistema “conceitual”, acadêmico e muito restrito● Mecanismo de memória virtual era limitado● Minix file system era a única alternativa
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 24
Histórico do Software Livre
● 1992: versão 0.95– Primeira versão a suportar ambiente X
● 1994: lançada a versão 1.0 (14 de março)– Maior release desde o lançamento do sistema– Sistema estava com, 165.000 linhas de código– Outras novidades...
● Novo sistema de arquivos/arquivos mapeados em memória● Suporte à rede (pilha TCP/IP baseada nos sistemas BSD)● Muitos programas Unix foram traduzidos para Linux
– Utilização do GCC● Linus Torvalds passou a coordenar as colaborações
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 25
Histórico do Software Livre
● 1996: liberada a versão 2.0– Sistema passou a ter 470.000 linhas de código em C
e, aproximadamente, 8000 linhas em assembly– Características...
● Suporte a arquitetura de 64 bits● Multiprocessamento simétrico (SMP)● Novos protocolos de rede: AppleTalk, AX.25, ISDN● Montagem remota de Netware e SMB (Samba)● Manipulação de dependências nos módulos de kernel● Threads de kernel● Suporte à vários dispositivos
– Grande parte do código dedicada a device drivers
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 26
Histórico do Software Livre
● Características gerais do Linux– Multiusuário– Multitarefa– Time sharing– Genérico– Conjunto simplificado de idéias
● Objetivos– Simplicidade– Generalidade / Versatilidade– Portabilidade / Adaptabilidade
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 27
Histórico do Software Livre
● Versionamento do kernel– Versões terminadas em número...
● ímpar: instáveis– Não devem ser colocadas em ambientes de produção– Adequada para testes de funcionalidades recémimplementadas– Exemplo: 2.5
● par: estáveis– Testadas e prontas para ambientes de produção– Exemplo: 2.6
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 28
Histórico do Software Livre
● Por que GNU/Linux?– No início da década de 1990, o kernel do GNU/Hurd
não estava pronto e estável– Linux (kernel) foi licenciado sob GNU GPL– Sistema passou a utilizar ferramentas do projeto GNU– Maior contribuição em código vem do projeto GNU– Imprensa convencionou chamar o sistema somente por Linux
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 29
Histórico do Software Livre
● Open source– Movimento fundado por Eric S. Raymond em 1998
● Open Source Initiative (OSI): http://www.opensource.org● Definição: http://www.opensource.org/docs/osd
– Prevê a possibilidade de utilizar um programa cujo licenciamento provê acesso ao códigofonte para tornálo software proprietário
● Não incorpora necessariamente o conceito de copyleft– Permite distribuição em conjunto de softwares de diferentes naturezas
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 30
Histórico do Software Livre
● Software livre versus open source– OSI é muito mais focado no processo de
desenvolvimento distribuído– Recebeu incentivos da indústria por ajudar a
compartilhar soluções de interesse comum● Visto como mais atrativo para a indústria
– OSI desconsidera questões éticas da FSF quanto às liberdades inerentes aos softwares livres
– Comum encontrar confusão entre os termos
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 31
Histórico do Software Livre
● O que NÃO é software livre?– “Free as in freedom, not like free beer” (RMS)– Imprensa mistura conceitos facilmente– Exemplos:
● Microsoft Internet Explorer● Winzip● Acrobat Reader● Skype● MSN● AVG
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 32
Tipos de Software
● Software proprietário– Aquele que não é livre e não possui liberdades– Seu uso, modificação (???), distribuição e
redistribuição são proibidas ou requerem autorização– Microsoft EULA (End User License Agreement)
● Algumas proíbem coexistência com FOSS (Free and Open Source Software) na mesma plataforma
– Exemplos:● Microsoft Windows, Oracle, MS SQL Server, Delphi, Corel
Draw, Adobe Premier, Adobe Photoshop, Skype, ...
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 33
Tipos de Software
● Software comercial– Software desenvolvido com objetivo de lucro por meio
de sua utilização por terceiros– Software comercial NÃO é software proprietário– Lucro não significa somente a venda de licenças de
uso como no modelo proprietário● Serviços podem ser uma alternativa
– Software livre pode ser com finalidade comercial
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 34
Tipos de Software
● Software semilivre– Não é livre, mas possui permissões para utilização,
modificação e distribuição desde que NÃO seja para fins lucrativos
– Não é possível distribuição comercial– Não é possível incluir software semilivre em um
sistema operacional livre, por exemplo– Exemplo: PGP
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 35
Tipos de Software
● Software de domínio público– Software não é protegido por copyright– Termo legal significa “sem copyright”– Não possui, portanto, restrições à sua manipulação– Modificação não requer liberação do códigofonte– Livre??? Disponível para utilização???
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 36
Tipos de Software
● Freeware– Viabilizam distribuição e redistribuição– Modificação não é permitida– Códigofonte não disponível– Estratégia, algumas vezes, utilizada para popularizar
o software perante usuários– Exemplo: StarOffice
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 37
Tipos de Software
● Shareware– Utilização por tempo determinado– Redução dos recursos totais do aplicativo– Na prática, pessoas desrespeitam licenças
● Blablablaware (???)– Tipos de licenciamento variados se confundem– Licenças restritivas com características particulares
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 38
Licenças de software
● Copyright– Software, como toda produção intelectual, é
protegido por copyright que determina o seu dono– Proprietário do copyright determina suas formas de
utilização e distribuição por meio de uma licença– Software livre utilizar modelo de copyright, criado
para restringir acesso, para garantir liberdades– Existem muitas licenças disponíveis...
● Detalhes jurídicos complexos e muito discutidos
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 39
Licenças de software
● GNU General Public License (GNU GPL)– Mais popular licença para software livre– Utilização do copyleft é mandatória
● Primeira licença a implementar o conceito do copyleft● Garante que a “cadeia de liberdade” seja preservada
– Licença utilizada pelo Linux e pelos aplicativos desenvolvidos pelo Projeto GNU (e.g. Emacs)
– O que é necessário para utilizar?● Incluir referência no códigofonte● Adicionar cópia do texto da licença ao pacote
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 40
Licenças de software
● GNU General Public License (GNU GPL)
GNU GPLSource Code
ProprietarySource Code
Código proprietário pode ser relicenciado sob os termos da GNU GPL
Não pode misturarse com código proprietário a menos que haja a concordância de todos os responsáveis e colaboradores do software
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 41
Licenças de software
● GNU Lesser General Public License (GNU LGPL)– Criada para resolver o problema de utilização de
bibliotecas de software livre em aplicativos proprietários
● GNU GPL obriga que todo aplicativo comercial que utilize bibliotecas licenciadas sob seus termos também seja licenciado com a mesma licença
● Também conhecida como Library General Public License– Pemite que software proprietário utilize os recursos
implementados pelo software GNU LGPL...● Desde que não haja modificações no código da própria
bilbioteca... ● ...nesse caso, valem as mesmas condições da GNU GPL
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 42
Licenças de software
● GNU Lesser General Public License (GNU LGPL)– Termos da licença têm provocado confusão– Richard Stallman aconselha a não utilização da GNU
LGPL, sugerindo, ao invés, o uso de uma cláusula especial da GNU GPL
● “As a special exception, if you link this library with other files to produce an executable, this library does not by itself cause the resulting executable to be covered by the GNU General Public License. This exception dos not however invalidate any other reasons why th executable file might be covered by the GNU General Public License”
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 43
Licenças de software
● GNU Lesser General Public License (GNU LGPL)
GNU GPLSource Code
ProprietarySource Code
Aplicação completa(funcional)
Qualquer modificação no código deve ser tornada pública pelos termos da GNU GPL
Qualquer modificação pode permanecer privada e proprietária
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 44
Licenças de software
● GNU Free Documentation License (GNU GFDL)– Aplicar as liberdades de software livre à documentos– Não assume responsabilidade por modificações feitas
por terceiros ao documento– Permite a classificação de seções ou partes que
sejam “invariantes”– Tipos de distribuição
● Cópia opaca: produzidas por softwares que geram formatos proprietários
● Cópia transparente: formato é de conhecimento público● A cada 100 cópias do tipo opaca, uma cópia transparente
deve ser disponibilizada (online, por exemplo)
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 45
Licenças de software
● Apache Software License– Criada para o licenciamento do Apache Web Server
● Solução mais utilizada para servidores Web no mundo– Similar as licenças do MIT e BSD– Maior particularidade é o fato de que a marca
registrada “Apache” não foi licenciada com o software● Se mudanças são feitas ao Apache por terceiros, o
resultado não pode ser chamado de “Apache”– Não utiliza o copyleft
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 46
Licenças de software
● Artistic License– Criada para o licenciamento da linguagem Perl– Licença considera muito confusa e repleta de
contradições entre seus termos e especificações– Novos softwares com código aberto (livres ou não),
evitam o uso dessa licença– Altenativas
● GNU GPL● MIT
– Não utiliza copyleft
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 47
Licenças de software
● BSD License– Acesso ao códigofonte, distribuição e redistribuição
de versões modificadas são permitidas– Código das modificações não precisa ser publicado
● Não possui copyleft● Versões modificadas podem ser distribuídas sob os termos
de uma licença proprietária– Não segue princípios da GNU GPL que favorecem o
desenvolvimento em comunidade– Versões antigas requeriam crédito à Universidade da
Califórnia pelo uso da licença● Cláusula foi removida
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 48
Licenças de software
● Mozilla Public License (MPL)– Criada para o licenciamento da versão open source
do browser Netscape Navigator– Removeu algumas das restrições da NPL (Netscape
Public License)– Utiliza copyleft– Deu origem a muitas outras licenças comerciais para
open source
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 49
Licenças de software
● IBM Public License– IBM vem investindo há anos em iniciativas em
software livre e open source– Licença copyleft comercial baseada na MPL– Colaboradores do software original ou de suas
derivações não podem ser responsabilizados pelos “claims” feitos por terceiros
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 50
Licenças de software
● MIT License– Licença muito simples que não impõe muitas
restrições a respeito da utilização do códigofonte– Requisito: o texto da licença deve estar incluso em
todas as cópias ou “porções substanciais” do software licenciado sob a MIT License
– Usada, geralmente, quando a única intenção é manter a propriedade sobre o código sem importarse muito com a forma de utilização do software
– Não utiliza copyleft
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 51
Licenças de software
● Duallicensing– O detentor do copyright pode selecionar mais de uma
licença para seu software– Permite que o licenciado escolha a licença que
melhor que convir– Duallicensing é uma estratégia para atender clientes
que não desejam participar da reciprocidade das licenças de software livre/open source e estão dispostos a pagar para revogar essa característica
– Exemplos● Sistema de arquivos ReiserFS● KnowledgeTree (DMS)
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 52
Licenças de software
● Duallicensing– Controle do duallicensing requer que
colaboradores repassem direitos autorais para o controle dos mantenedores
● Atividade complicada para gerenciar● Não acontece no caso do Linux● FSF aceita receber o controle do copyright
– Gerenciar direitos autorais é uma das atividades mais complexas de projetos de software livre e open source
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 53
Distribuições GNU/Linux
● Liberdades do software livre viabilizam criação de diferentes “sabores” do sistema operacional
● Quem pode fazer uma distribuição?– Uma empresa, uma instituição de ensino, uma
comunidade de desenvolvedores, um indivíduo, ...● Kernel oficial é mantido por uma organização
única centralizada● O mesmo acontece com outros softwares livres
– Mozilla Firefox, Apache, ...
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 54
Distribuições GNU/Linux
● O que é uma distribuição GNU/Linux?– Encapsulamento do kernel e aplicativos– Mecanismo de instalação – Gerenciador de pacotes– Serviços de suporte– Estrutura interna (arquivos, recursos, ...)– Processo de desenvolvimento próprio
● Regras de conduta– Finalidades específicas
● Desktop, servidor, segurança, desenvolvimento, ...
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 55
Distribuições GNU/Linux
● Red Hat Linux– Nacionalidade norteamericaca– Primeira grande distribuição comercial – Suporte profissional da empresa mantenedora– Desenvolvimento de pacotes e “addons”– Criadora de um dos principais mecanismos de
empacotamento: RPM (Red Hat Packet Manager)– Por ser norteamericana, está sujeita a restrições
para exportação de soluções criptográficas● Adotado por muitas outras distribuições
– Mandriva, YellowDog, Fedora, OpenSUSE, ...
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 56
Distribuições GNU/Linux
● Red Hat Linux (continuação)– Utilizado para certificação de produtos profisionais
● SGDB Oracle– Possui processo de certificação próprio promovido
pela empresa responsável– Abandonou o mercado desktop e concentrase no
ambiente servidor– Bem suportado por fabricantes de hardware
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 57
Distribuições GNU/Linux
● Fedora– Red Hat descontinou a versão voltada para a
comunidade e concentrouse no mundo corporativo● Red Hat Enterprise
– Primeira versão do projeto sucedeu o Red Hat 9.0– Manutenção: Fedora Project / Patrocínio: Red Hat– Julho de 2003: primeira versão de testes– Março de 2004: primeira versão estável– Distribuição amigável
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 58
Distribuições GNU/Linux
● Debian GNU/Linux– Criada por Ian Murdock– Uma das mais comprometidas com software livre
● Preserva a nomenclatura “GNU/Linux” no nome– Ampla comunidade de desenvolvimento– Repositórios oficiais possuem somente software livre– Suporte para, aproximadamente, 10 plataformas
● i386, amd64, alpha, sparc, powerpc, arm, mips, hppa, ...– Mais de 290GB de software disponíveis
● http://www.debian.org/mirror/size
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 59
Distribuições GNU/Linux
● Debian GNU/Linux– Boa quantidade de documentação (livre)– Versões do Debian
● Stable: estrutura amplamente testada e estável● Testing: próxima versão a ser classificada como stable● Unstable: pacotes mais recentes, poucos testes
– Releases mais lentas...● Muitos pacotes disponíveis● Rigor dos testes e da qualidade das versões estáveis
– Comunidade de usuários cresceu ainda mais depois do abandono da versão Red Hat para comunidade
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 60
Distribuições GNU/Linux
● Debian GNU/Linux– Debian CDD
● Custom Debian Distribution● Incentivo a geração de distros baseadas no Debian● Exemplos: Knoppix, Kurumin, Debian CDDBR, Ubuntu(?)
– Aptget: poderoso gerenciador de pacotes● Manipula dependências● Deu origem a outros gerenciadores semlhantes (e.g. yum)
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 61
Distribuições GNU/Linux
● Ubuntu Linux– Baseada no Debian GNU/Linux
● Testing/unstable– Patrocinado pela Canonical Ltd. / Ubuntu Foundation– Uma das distribuições mais populares para desktop
● Comunidade de usuários cresceu rapidamente● Alternativa para utilizar estrutura Debian em desktop
– Mais rapidez no processo de desenvolvimento● Somente três plataformas suportadas
– Estratégia de popularização● Envio de CDs gratuitamente para vários locais no mundo
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 62
Distribuições GNU/Linux
● Ubuntu Linux– Aproveitou desenvolvedores voluntários do Debian– Incorporação de drivers proprietários em repositório
de pacotes específico– Repositórios oficiais...
● main: softwares livres suportados oficialmente pela distro● restricted: softwares fundamentais (drivers) proprietários● universe: restante dos pacotes livres do Debian● multiverse: softwares proprietários “nãofundamentais”● partners: softwares de parceiros da Canonical
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 63
Distribuições GNU/Linux
● Ubuntu Linux– Deu origem a outras distribuições “irmãs”– Edubuntu: voltado para ensino e educação– Kubuntu: ambiente gráfico KDE (ao invés do Gnome)– Xubuntu: ambiente gráfico “leve” (XFCE)– Gobuntu: somente software livre
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 64
Distribuições GNU/Linux
● Slackware– Criado por Patrick J. Volkerding– Uma das primeiras distribuições criadas
● “Todo mundo um dia usou Slackware”● Primeira release foi em 16 de julho de 1993
– Mantém simplicidade e originalidade do sistema– Não era uma distribuição voltada para usuários finais– Projeto oficial suporta somente plataforma i386
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 65
Distribuições GNU/Linux
● Mandriva– Mandriva = Mandrake Linux + Conectiva Linux
● Headquarter em Paris (França) e Centro de Desenvolvimento em Curitiba (Brasil)
– Nome Mandrake foi trocado por litígio judicial– Distribuição voltada para usuários finais– Instalação em ambiente gráfico– Pacotes no formato RPM
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 66
Distribuições GNU/Linux
● Suse / OpenSuse– Empresa Suse foi adquirida pela Novell– Nacionalidade original: alemã
● Distribuição bastante popular na Europa– Suse Linux mais voltado para mercado corporativo– OpenSuse: distribuição voltada pra comunidade
● Baseada inicialmente no Suse Linux 10.0● Primeira release estável lançada em 06/outubro/2005
– Pacotes de software utilizam formato RPM– Desenvolvimento focado em facilitar utilização
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 67
Distribuições GNU/Linux
● Gentoo Linux– Criado por Daniel Robbins
● Batizado inicialmente por Enoch Linux (v. 0.75 , Dez/99)– Objetivo
● Criar uma distro compilada a partir do seu códigofonte– Contendo apenas os componentes básicos
● Extrair bom resultados do hardware– 31/03/2002: Gentoo Linux 1.0– Copyrigths transferidos para Gentoo Foundation– Daniel trabalhou pra Microsoft por quase 2 anos
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 68
Distribuições GNU/Linux
● Gentoo Linux (continuação)– Portage: sistema gerenciador de pacotes
● Baseado no BSD Ports Collections (FreeBSD)● Uma das principais distinções do Gentoo das outras
distribuições GNU/Linux– Portabilidade
● Gentoo/FreeBSD, Gentoo/NetBSD, Gentoo/OpenBSD, ...● Plataformas: x86, x8664, IA64, PARISC; PowerPC,
PowerPC 970, SPARC64, MIPS, DEC Alpha, ARM, System Z/s390, PS3 Cell Processor
– Instalação baseada em estágios
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 69
Distribuições GNU/Linux
● Dawn Small Linux– Distribuição que cabe em 50MB– Disponibilizada em forma de um Live CD– Pode ser instalado no disco rídigo– Também permite sua instalação em um USB key– Possui ambiente gráfico
● Navegador, MP3 player, PDF Reader, Office suite, ...● Utilitários de linha de comando● Servidor HTTP, SSH e FTP
– Pode ser utilizado até com 16MB de RAM
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 70
Distribuições GNU/Linux
● Tom's Root Disk Boot Disk (Tom's RTBT)– Distribuição GNU/Linux em um único disquete– Kernel e utilitários básicos– Pode ser utilizada para fazer manutenção em
sistemas danificados– Possui ferramentas para transferência de dados,
montagem de partições, diagnóstico de discos– Toda documentação é simples (formato ASCII)– Útil em situações críticas
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 71
Distribuições GNU/Linux
● Para conhecer mais distribuições– Distrowatch (http://www.distrowatch.com)– Site mantém um ranking por distribuições mais
requisitadas no site– Apresenta página com resumo da distro e
informações gerais ● Link para download
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 72
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 73
Softwares Livres
● OpenOffice.org– Criado em outubro de 2000 com objetivo de criar um
pacote livre de software para escritório● Baseado no StartOffice
– Escrito em C++– Licenciamento LGPL, SISSL– Mais de 20 milhões de downloads registrados– Roda em várias plataformas
● GNU/Linux, FreeBSD, Mac OS, Microsoft Windows
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 74
Softwares Livres
● Samba– Permitiu grande popularização do GNU/Linux em
ambientes corporativos● Substituição dos servidores de arquivos SMB/CIFS● Recurso para tornarse PDC (Primary Domain Controller)● Integrase com LDAP● Transparente para os usuários finais
– Criado por Andrew Tridgell– Licenciado sob GNU GPL
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 75
Softwares Livres
● Gnome– Ambiente gráfico desktop
● Também funciona em FreeBSD e outros Unixes– Possui aplicativos próprios
● Browser, gerenciador de arquivos e configurações– Um dos ambientes gráficos majoritários junto com o
projeto KDE– Licenciado sob GNU GPL
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 76
Softwares Livres
● KDE– Ambiente gráfico para desktops Linux
● Também funciona em FreeBSD e outros Unixes– 1996: Anúncio oficial do projeto– Também possui conjunto de aplicativos próprios– Interface mais popular para desktops GNU/Linux– Boa quantidade de aplicativos integrados
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 77
Softwares Livres
● Projeto Mozilla– Missão: preservar a escolha e a inovação na Internet– Licenciamento: MPL (Mozilla Public License)– Derivado de soluções criadas pela Netscape– Produtos
● Mozilla Firebird● Mozilla Thunderbird● Bugzilla● Camino● Sunbird
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 78
Softwares Livres
● MySQL– Servidor de banco de dados
● Versátil, ágil e livre!– Financiado pela empresa MySQLAB– Empresa sediada na Suécia– Duallicensed: GNU GPL e MySQLAB license– Faz parte da arquitetura LAMP
● Linux, Apache. MySQL e PHP/Python– Mais de 4 milhões de instalações
● Yahoo, MP3.com, Motorola, NASA, Silicon Graphics, Finance, Texas Instrument, ...
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 79
Softwares Livres
● PostgreSQL– Outra alternativa livre de servidor de banco de dados– Licenciamento BSD (com modificações)– Início do projeto: 1986 na Universidade de Berkeley– Portabilidade para Linux, FreeBSD e mais 34 versões
diferentes de Unix e Microsoft Windows (por meio da utilização do Cygwin)
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 80
Softwares Livres
● Apache– Servidor Web mais utilizado em todo o mundo– Um dos grandes exemplos de software livre de
sucesso no mundo corporativo– Disponibilização de novos módulos e recursos– Interface com linguagens como PHP– Histórico de segurança muito superior ao seu
principal concorrente (Microsoft IIS)
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 81
Softwares Livres
● Outros projetos...– Free Software Directory
● http://directory.fsf.org– SourceForge
● http://www.sourceforge.net– Google code
● http://code.google.com– Savanahh
● http://savannah.gnu.org– Freshmeat.net
● http://www.freshmet.net
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 82
TCO
● Total Cost of Ownership– Custo Total de Proriedade
● Trocando em miúdos...– Mecanismo para mensurar custos do setor de TI– Software, hardware, humanware,
capacitação/treinamento, suporte técnico, infraestrutura de comunicação
– Ajuda a detalhar a eficiência e distribuição dos investimentos em tecnologia
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 83
TCO
● TCO deve ser objeto de análises constantes– Estudo chave para saúde corporativa
● Quem não quer reduzir o TCO?– Redução responsável e planejada
● Redução de custos é uma das maiores motivações para utilização de software livre sob a perspectiva gerencial– Entretanto, o valor do software livre está na liberdade
● Portanto, software livre pode reduzir TCO– Parte significativa do TCO advém das licenças de uso
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 84
TCO
● Um exemplo de redução de TCO– Migração de MSWindows para GNU/Linux– Empresa Cybersource divulgou seu estudo
● Primeiro estudo foi divulgado em 2002– GNU/Linux é 34% mais barato
● Estudo foi atualizado em 2004– GNU/Linux é 36% mais barato
● http://www.cybersource.com.au– Documento é voltado para análise gerencial
● Visão técnica não convence gerentes e diretores!
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 85
TCO
● O que foi considerado no estudo?– Ambiente de uma empresa de médio porte
● 250 computadores● Servidores e estações de trabalho● Conectividade à Internet● Sistema de ebussiness● Cabeamento de rede● Softwares ● Salários dos profissionais● Treinamentos● Consultoria externa
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 86
TCO
● Microsoft Windows x GNU/Linux (standard)
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 87
TCO
● Microsoft Windows x Red Hat Linux
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 88
Produzindo software livre
● Considerações iniciais– “Every good work of software starts by scratching a
developer's personal itch” (Eric S. Raymond)● http://www.catb.org/~esr/writings/cathedralbazaar/● Em outras palavras, Interesse pessoal em ver o problema
resolvido é um ponto chave para iniciar um bom software– A qualidade de um software livre é proporcional ao
interesse dos usuários sobre ele e do compromisso de sua comunidade de desenvolvimento
– Bons softwares sobrevivem... e se adaptam as novas necessidades e requisitos
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 89
Produzindo software livre
● Como iniciar um projeto de software livre?● Etapas iniciais
– “Look Around”– Primeiros passos– Modelo de licenciamento– Anunciando o projeto à comunidade
● Infraestrutura técnica● Recursos financeiros● Gerenciamento de voluntários
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 90
Produzindo software livre
● Etapas iniciais (“Look Around”)– Procure por projetos livres com a mesma finalidade
● Repositórios de software livre conhecidos– SourceForge, Freshmeat, Savannah, Google code, ...
– Inicialmente, não procure “reinventar a roda”● Exceção: projetos de caráter acadêmico / educacional
– Mesmo quando não existe uma solução que tenha exatamente a mesma finalidade, considere a possibilidade de colaborar incluindo novas features
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 91
Produzindo software livre
● Etapas iniciais (Primeiros Passos)– Troque visibilidade privada pela visibilidade pública
● Ou seja, não basta somente sua empresa ou instituição tomarem conhecimento do projeto e de seus objetivos
– Defina os objetivos específicos do projeto junto com os seus outros fundadores
– Identifique suas limitações– Quem irá fazer e quem não irá fazer cada atividade
● Ajuda a detectar possíveis desentendimentos da natureza do projeto e de seus objetivos
● Pode revelar considerações errôneas
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 92
Produzindo software livre
● Etapas iniciais (Primeiros Passos)– Novos colaboradores precisam de subsídios para
iniciar suas atividades no projeto– Cenário ideal para novos colaboradores
● Documentação do design● Manual de usuários completo e atualizado
– Incluindo demandas futuras a serem implementadas● Código apto para trabalhar em várias plataformas
– Realidade● Preparar toda documentação requer muito tempo● O mínimo para prover informações necessárias iniciais
para o engajamento com o projeto
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 93
Produzindo software livre
● Etapas iniciais (Primeiros Passos)– Selecionando um bom nome para o projeto
● Criatividade pode ser um fator decisivo● Um bom nome é suficiente para um bom projeto, mas um
nome ruim não irá colaborar● Deve representar, de alguma maneira, o que o projeto faz● Fácil de memorizar
– “Easy for somebody who can read English” (Karl Fogel)– Evite regionalismos exagerados
● Não possui o mesmo nome de outros projetos● Não infringe marcas registradas● Se possível, com nome de domínio nos top level domains
– gnu.org, openoffice.org, samba.org, ...
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 94
Produzindo software livre
● Etapas iniciais (Primeiros Passos)– Compartilhe publicamente a missão do projeto– Deixe explícita a condição de software livre– Divulgue as features e a lista de requisitos
● Classifique itens futuros como “planned”, “in progress”– Indique o status do desenvolvimento
● Evita frustrações entre o que se pretende e o que tem● Alpha: primeira release com maior parte das features
– Possui bugs conhecidos e limitações a serem resolvidas● Beta: faltam testes para tornarse estável
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 95
Produzindo software livre
● Etapas iniciais (Primeiros Passos)– Software deve estar disponível para download nos
formatos mais comuns– Projetos que estão em seu início, não precisam
disponibilizar versões dos binários● Exceções: processo de build complexo e nãotrivial
– Download é somente para usuários e para os que desejam ambientarse com o software...
– Para novos colaboradores é preciso prover acesso ao serviço de controle de versões e ao bug tracker
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 96
Produzindo software livre
● Etapas iniciais (Primeiros Passos)– Estabeleça os canais de comunicação com os
visitantes e interessados● Como contactar os autores e responsáveis pelo projeto● Espaços separados para desenvolvedores e usuários
– Não é necessário para projetos em fase inicial– Developer Guidelines
● Documento utilizado para orientar novos desenvolvedores quanto as atividades básicas do projeto
– Fórums de interação com outros desenvolvedores– Código de conduta– Instruções para reportar bugs e submissão de patches– Esquema de desenvolvimento
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 97
Produzindo software livre
● Etapas iniciais (Primeiros Passos)– Documentação deve estar, preferencialmente, ...
● online para usuários que estão conhecendo o software;● e no pacote do software.
– Manutenção de FAQs é uma boa alternativa● Documentação de leitura rápida● Focado em dúvidas comuns de usuários e desenvolvedores
– Caso seja possível, disponibilize screenshots– Versões demo online são alternativas que vêm
tornandose comuns a projetos mais recentes● Não requer instalação e download
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 98
Produzindo software livre
● Etapas iniciais (Modelo de licenciamento)– Modelo de licenciamento deve estar de acordo com
os propósitos do projeto– Questões relevantes...
● É aceitável o código ser utilizado para composição de produtos proprietários?
● Existirá tipos de clientes diferentes para justificar um duallicensing para o produto?
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 99
Produzindo software livre
● Etapas iniciais (Anunciando o projeto)– Projeto não precisa estar “perfeito” para ser
anunciado à comunidade– Onde anunciar?
● Exemplo: http://freshmeat.net● Listas de discussão e newsgroups relevantes
– Faça um levantamento das alternativas cabíveis– Como deve ser o anúncio?
● Curto, objetivo e de fácil entendimento– Direcione futuras discussões e mais informações
para as listas, fóruns e documentos do projeto
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 100
Produzindo software livre
● Etapas iniciais (Anunciando o projeto)– Software deve ter versão executável antes do
anúncio à comunidade?● Vantagens
– Separa softwares que possuem iniciativas sérias das “aventuras”– Já existe algo pra mostrar e justificar
● Desvantagem– Não permite o envolvimento da comunidade desde o início da
especificação do software– Projetos lançados sem versão executável
● Subversion e Mozilla– Não espere por muitos colaboradores no início...
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 101
Produzindo software livre
● Infraestrutura técnica– Mailing lists
● Inscrição e remoção por email e por web site● Opção de digest mode● Funcionalidades de moderação● Interface administrativa simplificada● Manipulação do cabeçalho da mensagem
– Configuração do campo “ReplyTo”● Mecanismos de arquivamento de discussões
– Repositório Web é mais simples e intuitivo● Controle de SPAMs● Alternativas: Mailman, Majordomo, Smartlist, ListProc
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 102
Produzindo software livre
● Infraestrutura técnica– Controle de versão
● Mantém controle sobre mudanças nos arquivos do projeto● Histórico de “commits” ● Recupera versões anteriores em caso de necessidade● Controle de acesso configurável● Alternativas: CVS e Subversion
– Ambos possuem interfaces gráficas– Ferramentas de desenvolvimento integradas com CVS/SVN
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 103
Produzindo software livre
● Infraestrutura técnica– Bug tracker
● Novas features também são registradas nos bug trackers● Também conhecidos por issue trackers, defect trackers,
request trackers, ...● Utilizado para gerenciar e documentar bugs encontrados
– Mantémse controle sob o status do problema– Como reproduzilo e qual seu nível de impacto– O estágio da sua implementação– Responsáveis e discussões em torno do assunto
● Alternativas: Bugzilla, Mantis, Gnats
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 104
Produzindo software livre
● Infraestrutura técnica– Chats (IRQ)
● Permitem interação em tempo real● IRQ é o recurso mais utilizado para chat em projetos de
software livre– http://www.freenode.net
● Dependendo do tamanho do projeto, considere o estabelecimento de vários canais para tópicos específicos
● Bots– Membros de chats que podem aprender comandos e encaminhar
respostas baseadas no conhecimento adquirido
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 105
Produzindo software livre
● Infraestrutura técnica– Wiki
● Produção de conhecimento colaborativo● Permite que usuários editem o conteúdo de uma página
Web e adicionem e/ou removam informações● Edições salvas são publicadas no mesmo momento● Fenômeno editorial na Internet nos últimos anos● Wiki: palavra hawaiana que significa “super rápido”● Tecnologia que viabilizou a criação da Wikipedia● Colaborações podem ou não ser controladas por login
– Inscrições podem ou não requerer autorização
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 106
Produzindo software livre
● Infraestrutura técnica– Wiki
● Mantém histórico das versões salvas● Mecanismo permite a rápida criação de novas páginas● Espírito Wiki de colaboração● Ajuda a produzir material colaborativo para o projeto
– Manuais, HOWTOs, FAQs, Man Pages, ...● Alternativas: MediaWiki, Twiki, TikiWiki, ...
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 107
Produzindo software livre
● Infraestrutura técnica– Website
● Representa, em geral, a primeira aparência do seu projeto para novos usuários e potenciais colaboradores
● Projete cuidadosamente o layout do site para que possa causar boa impressão
● Deve promover acesso fácil e rápido às informações de maior interesse do projeto
● Decida melhor alternativa– Hospedar em repositório público (e.g. SourceForge)– Manter em site próprio– Mix de ambas as soluções anteriores
● Alternativas: Mambo/Joomla, Plone, PHP, ...
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 108
Produzindo software livre
● Recursos financeiros– Qualquer trabalho possui custos– Corporações têm compreendido o poder competitivo
do software livre para seus negócios● IBM: U$ 1 bilhão
– Investimento requer gerência para evitar segregação dos desenvolvedores
● Remunerados versus voluntários – Ambientes pagos: novas features podem ser
encomendadas● No desenvolvimento em comunidade é diferente
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 109
Produzindo software livre
● Recursos financeiros– Motivações para financiar projetos de software livre
● Compartilhamento de software comum para um conjunto de corporações (concorrentes ou não)
– Evita duplicidade de esforços e dispêndio de recursos● Venda de serviços/produtos que dependem do sucesso de
soluções livres relacionadas– Exemplo: subversion, Collab net, ...
● Suporte a hardware comercializado● Concorrência para produto proprietário
– Concorrente principal: Microsoft Office– Exemplo: OpenOffice (existem outros motivos, é claro :)
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 110
Produzindo software livre
● Recursos financeiros– Motivações para financiar projetos de software livre
● Marketing ● Dual licensing
– Recebe recursos financeiros das empresas dispostas a pagar pela nãoreciprocidade das licenças de software livre
● Doações– Vendas de “gifts” (e.g. camisetas, chaveiros, ...)
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 111
Produzindo software livre
● Comunicação– Escrever bem é um dos principais requisitos para a
manutenção de um projeto de software livre● Inglês é a “língua oficial” da Internet
– Desenvolvedores e usuários estão remotos● Comunicação é amplamente baseada em informação
escrita: site, emails, fóruns, etc.– Comunicação escrita ruim...
● Malentendidos● Falta de participação internacional
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 112
Produzindo software livre
● Comunicação– Considere alguns aspectos importantes antes de
postar uma mensagem escrita...● “Tons” utilizados: culturas diferentes estão envolvidas● Não utilize regionalismos● Título da mensagem (email, artigo, FAQ, ...)● Estrutura do texto produzido
– Formatos de email● Email em HTML não são práticos na maioria dos casos● Formato ASCII são mais aconselháveis
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 113
Produzindo software livre
● Gerenciamento de voluntários– Uma das tarefas mais complexas no processo de
gerenciamento de um projeto em software livre– Relação de confiança pode ser estabelecida
● Debian utiliza chaves públicas para essa finalidade– Por que voluntários se envolvem em software livre?
● Motivação pessoal por produzir boas soluções● Experiência profissional● Atividade corporativa profissional...
– Entender a motivação é um diferencial importante
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 114
Referências● Organizações e notícias
– Free Software Foundation● http://www.fsf.org
– FSFLA (Fundação Software Livre América Latina)● http://www.fsfla.org
– Comunidade SOL Software Livre● http://www.comunidadesol.org
– Projeto Software Livre Brasil● http://www.softwarelivre.org
– Associação Software Livre● http://associacao.softwarelivre.org
Copyleft (2007) Prof. M.Sc. Jansen Sena Fundamentos de Software Livre http://www.jsena.info 115
Links interessantes● Livros
– Free as in Freedom – Sam Williams (O'Reilly, 2001)– Cathedral and the Bazaar – Eric S. Raymond (O'Reilly, 2001)– Producing Open Source Software Karl Fogel (O'Reilly, 2005)– The Business and Economics of Linux and Open Source –
Martin Fink (Prentice Hall, 2003)– Free Sofware, Free Society Richard M. Stallman, Lawrence
Lessig e Joshua Gay (GNU Press, 2002)