Fundamentos de Software Livre
Prof. M.Sc. Jansen Sena
[email protected]
http://www.jsena.info
Last revision: 2007, 25th Nov
Sobre o professor
●
Formação acadêmica
–
Graduação
●
–
Mestrado Acadêmico
●
●
●
Universidade Federal do Amazonas (Manaus, AM)
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 High­tech
–
http://www.revistapcecia.com.br
Copyleft (2007) Prof. M.Sc. Jansen Sena ­ Fundamentos de Software Livre ­ http://www.jsena.info
2
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
3
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
4
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
5
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
–
Infra­estrutura 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
6
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
●
–
MIT
●
●
Várias universidades adquiriram
Laboratório de IA destaca­se 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
7
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
8
Histórico do Software Livre
●
Cultura Hacker...
–
Coleção de subculturas conectadas
–
New Hacker Dictionary (1983, Eric S. Raymond)
●
●
–
Hackers (1984, Steven Levy)
●
–
Formalizou ética hacker
Linguagem hacker
●
–
Mais de 1200 páginas
http://www.ccil.org/jargon/jargon.html
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
9
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 time­sharing 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
10
Histórico do Software Livre
●
O que NÃO é um hacker?
–
Pessoa que...
●
●
●
–
Termo utilizado e popularizado de maneira errada pela imprensa mundial
●
–
...invade computadores
...rouba informações
...danifica sistemas
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
11
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, levantava­se para resolver o problema
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... (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ódigo­fonte
●
●
●
Robert Sproull não repassou o código­fonte
NDA (Nondisclousure agreement) com Xerox
Quebra da Cultura Hacker !!!
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)
–
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
14
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
15
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 enviando­os 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
16
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
17
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ódigo­fonte
–
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
18
Histórico do Software Livre
●
Copyleft
–
Copyright ® All Rights Reserved
–
Copyleft (L) All Rights Reversed – Don Hopkins :­)
–
Em outras palavras...
●
–
Utiliza as leis de copyright para garantir as liberdades ao software
●
–
... software gerado a partir de software livre também deverá ser de licenciamento livre!
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
19
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
20
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
21
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ódigo­fonte 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
22
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
23
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
24
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
25
Histórico do Software Livre
●
●
Características gerais do Linux
–
Multi­usuário
–
Multi­tarefa
–
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
26
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ém­implementadas
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
27
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
28
Histórico do Software Livre
●
Open source
–
Movimento fundado por Eric S. Raymond em 1998
●
●
–
Prevê a possibilidade de utilizar um programa cujo licenciamento provê acesso ao código­fonte para torná­lo software proprietário
●
–
Open Source Initiative (OSI): http://www.opensource.org
Definição: http://www.opensource.org/docs/osd
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
29
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
30
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
31
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 co­existê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
32
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
33
Tipos de Software
●
Software semi­livre
–
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 semi­livre em um sistema operacional livre, por exemplo
–
Exemplo: PGP
Copyleft (2007) Prof. M.Sc. Jansen Sena ­ Fundamentos de Software Livre ­ http://www.jsena.info
34
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ódigo­fonte
–
Livre??? Disponível para utilização???
Copyleft (2007) Prof. M.Sc. Jansen Sena ­ Fundamentos de Software Livre ­ http://www.jsena.info
35
Tipos de Software
●
Freeware
–
Viabilizam distribuição e redistribuição
–
Modificação não é permitida
–
Código­fonte 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
36
Tipos de Software
●
●
Shareware
–
Utilização por tempo determinado
–
Redução dos recursos totais do aplicativo
–
Na prática, pessoas desrespeitam licenças
Bla­bla­blaware (???)
–
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
37
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
38
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ódigo­fonte
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
39
Licenças de software
●
GNU General Public License (GNU GPL)
GNU GPL
Source Code
Não pode misturar­se com código proprietário a menos que haja a concordância de todos os responsáveis e colaboradores do software
Proprietary
Source Code
Código proprietário pode ser relicenciado sob os termos da GNU GPL
Copyleft (2007) Prof. M.Sc. Jansen Sena ­ Fundamentos de Software Livre ­ http://www.jsena.info
40
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
41
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
42
Licenças de software
●
GNU Lesser General Public License (GNU LGPL)
GNU GPL
Source Code
Proprietary
Source Code
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
Aplicação completa
(funcional)
Copyleft (2007) Prof. M.Sc. Jansen Sena ­ Fundamentos de Software Livre ­ http://www.jsena.info
43
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
44
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
45
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
46
Licenças de software
●
BSD License
–
Acesso ao código­fonte, 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
47
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
48
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
49
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ódigo­fonte
–
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 importar­se 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
50
Licenças de software
●
Dual­licensing
–
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
–
Dual­licensing é 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
51
Licenças de software
●
Dual­licensing
–
Controle do dual­licensing 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
52
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
53
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
54
Distribuições GNU/Linux
●
Red Hat Linux
–
Nacionalidade norte­americaca
–
Primeira grande distribuição comercial –
Suporte profissional da empresa mantenedora
–
Desenvolvimento de pacotes e “add­ons”
–
Criadora de um dos principais mecanismos de empacotamento: RPM (Red Hat Packet Manager)
–
Por ser norte­americana, 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
55
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 concentra­se no ambiente servidor
–
Bem suportado por fabricantes de hardware
Copyleft (2007) Prof. M.Sc. Jansen Sena ­ Fundamentos de Software Livre ­ http://www.jsena.info
56
Distribuições GNU/Linux
●
Fedora
–
Red Hat descontinou a versão voltada para a comunidade e concentrou­se 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
57
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
58
Distribuições GNU/Linux
●
Debian GNU/Linux
–
Boa quantidade de documentação (livre)
–
Versões do Debian
●
●
●
–
Releases mais lentas...
●
●
–
Stable: estrutura amplamente testada e estável
Testing: próxima versão a ser classificada como stable
Unstable: pacotes mais recentes, poucos testes
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
59
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 CDD­BR, Ubuntu(?)
Apt­get: 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
60
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
●
●
–
Mais rapidez no processo de desenvolvimento
●
–
Comunidade de usuários cresceu rapidamente
Alternativa para utilizar estrutura Debian em desktop
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
61
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ão­fundamentais”
partners: softwares de parceiros da Canonical
Copyleft (2007) Prof. M.Sc. Jansen Sena ­ Fundamentos de Software Livre ­ http://www.jsena.info
62
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
63
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
64
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
65
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
66
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ódigo­fonte
–
●
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
67
Distribuições GNU/Linux
●
Gentoo Linux (continuação)
–
Portage: sistema gerenciador de pacotes
●
●
–
Portabilidade
●
●
–
Baseado no BSD Ports Collections (FreeBSD)
Uma das principais distinções do Gentoo das outras distribuições GNU/Linux
Gentoo/FreeBSD, Gentoo/NetBSD, Gentoo/OpenBSD, ...
Plataformas: x86, x86­64, IA­64, PA­RISC; 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
68
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
69
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
70
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
71
Copyleft (2007) Prof. M.Sc. Jansen Sena ­ Fundamentos de Software Livre ­ http://www.jsena.info
72
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
73
Softwares Livres
●
Samba
–
Permitiu grande popularização do GNU/Linux em ambientes corporativos
●
●
●
●
Substituição dos servidores de arquivos SMB/CIFS
Recurso para tornar­se PDC (Primary Domain Controller)
Integra­se 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
74
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
75
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
76
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
77
Softwares Livres
●
MySQL
–
Servidor de banco de dados
●
Versátil, ágil e livre!
–
Financiado pela empresa MySQLAB
–
Empresa sediada na Suécia
–
Dual­licensed: 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
78
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
79
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
80
Softwares Livres
●
Outros projetos...
–
Free Software Directory
●
–
SourceForge
●
–
http://code.google.com
Savanahh
●
–
http://www.sourceforge.net
Google code
●
–
http://directory.fsf.org
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
81
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, infra­
estrutura 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
82
TCO
●
TCO deve ser objeto de análises constantes
–
●
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
–
●
Estudo chave para saúde corporativa
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
83
TCO
●
Um exemplo de redução de TCO
–
Migração de MS­Windows para GNU/Linux
–
Empresa Cybersource divulgou seu estudo
●
Primeiro estudo foi divulgado em 2002
–
●
Estudo foi atualizado em 2004
–
●
–
GNU/Linux é 34% mais barato
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
84
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 e­bussiness
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
85
TCO
●
Microsoft Windows x GNU/Linux (standard)
Copyleft (2007) Prof. M.Sc. Jansen Sena ­ Fundamentos de Software Livre ­ http://www.jsena.info
86
TCO
●
Microsoft Windows x Red Hat Linux
Copyleft (2007) Prof. M.Sc. Jansen Sena ­ Fundamentos de Software Livre ­ http://www.jsena.info
87
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/cathedral­bazaar/
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
88
Produzindo software livre
●
Como iniciar um projeto de software livre?
●
Etapas iniciais
–
“Look Around”
–
Primeiros passos
–
Modelo de licenciamento
–
Anunciando o projeto à comunidade
●
Infra­estrutura técnica
●
Recursos financeiros
●
Gerenciamento de voluntários
Copyleft (2007) Prof. M.Sc. Jansen Sena ­ Fundamentos de Software Livre ­ http://www.jsena.info
89
Produzindo software livre
●
Etapas iniciais (“Look Around”)
–
Procure por projetos livres com a mesma finalidade
●
Repositórios de software livre conhecidos
–
–
Inicialmente, não procure “reinventar a roda”
●
–
SourceForge, Freshmeat, Savannah, Google code, ...
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
90
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
91
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
92
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
93
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 tornar­se estável
Copyleft (2007) Prof. M.Sc. Jansen Sena ­ Fundamentos de Software Livre ­ http://www.jsena.info
94
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ão­trivial
–
Download é somente para usuários e para os que desejam ambientar­se 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
95
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
96
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 tornando­se 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
97
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 dual­
licensing para o produto?
Copyleft (2007) Prof. M.Sc. Jansen Sena ­ Fundamentos de Software Livre ­ http://www.jsena.info
98
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
–
–
Como deve ser o anúncio?
●
–
Faça um levantamento das alternativas cabíveis
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
99
Produzindo software livre
●
Etapas iniciais (Anunciando o projeto)
–
Software deve ter versão executável antes do anúncio à comunidade?
●
Vantagens
–
–
●
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 ●
–
Separa softwares que possuem iniciativas sérias das “aventuras”
Já existe algo pra mostrar e justificar
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
100
Produzindo software livre
●
Infra­estrutura 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
–
●
Mecanismos de arquivamento de discussões
–
●
●
Configuração do campo “Reply­To”
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
101
Produzindo software livre
●
Infra­estrutura 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
102
Produzindo software livre
●
Infra­estrutura 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ém­se controle sob o status do problema
Como reproduzi­lo 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
103
Produzindo software livre
●
Infra­estrutura 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
104
Produzindo software livre
●
Infra­estrutura 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
105
Produzindo software livre
●
Infra­estrutura 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
106
Produzindo software livre
●
Infra­estrutura 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
107
Produzindo software livre
●
Recursos financeiros
–
Qualquer trabalho possui custos
–
Corporações têm compreendido o poder competitivo do software livre para seus negócios
●
–
Investimento requer gerência para evitar segregação dos desenvolvedores
●
–
IBM: U$ 1 bilhão
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
108
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)
–
●
Venda de serviços/produtos que dependem do sucesso de soluções livres relacionadas
–
●
●
Evita duplicidade de esforços e dispêndio de recursos
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
109
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ão­reciprocidade 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
110
Produzindo software livre
●
Comunicação
–
Escrever bem é um dos principais requisitos para a manutenção de um projeto de software livre
●
–
Desenvolvedores e usuários estão remotos
●
–
Inglês é a “língua oficial” da Internet
Comunicação é amplamente baseada em informação escrita: site, emails, fóruns, etc.
Comunicação escrita ruim...
●
●
Mal­entendidos
Falta de participação internacional
Copyleft (2007) Prof. M.Sc. Jansen Sena ­ Fundamentos de Software Livre ­ http://www.jsena.info
111
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
112
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
●
–
Por que voluntários se envolvem em software livre?
●
●
●
–
Debian utiliza chaves públicas para essa finalidade
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
113
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
114
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)
Copyleft (2007) Prof. M.Sc. Jansen Sena ­ Fundamentos de Software Livre ­ http://www.jsena.info
115
Download

Fundamentos de Software Livre