2. Agenda
Uma história do Software Livre
Software livre como Inovação
– Modelos de Desenvolvimento
– Modelos de Negócio
Aceitação do mercado
A IBM e o software livre
2
3. O que é software?
“Hardware é tudo aquilo que você chuta.
Software é tudo aquilo que você xinga…”
3
4. O valor do software
• Até a década de 70, o valor de um computador (basicamente mainframes
e minicomputadores) estava contido essencialmente no hardware. A
maioria dos fabricantes fornecia o código fonte de seus sistemas
operacionais e aplicativos e, embora as licenças não explicitassem
claramente a liberdade, a redistribuição do software era comum e vista
como ação positiva.
IBM System 360
Burroughs Datatron 220
DEC PDP 8
4
5. Compartilhamento de software
• Havia um grande compartilhamento de software entre os participantes
dos grupos de usuários de computadores, exemplos:
– SHARE (sistemas IBM)
– DECUS (sistemas DEC)
– CUBE (sistemas Burroughs)
– Etc.
Grupo de Usuários IBM
(Fundado em 1955)
• Os fabricantes até estimulavam o compartilhamento de informações e
melhorias de software produzidas entre seus usuários como forma de
diminuir os custos de suporte. Assim o software era, em geral,
desenvolvido de forma cooperativa e aberta.
• Ou seja, ainda que não houvesse esse termo, o software era livre...
5
6. A indústria de Software
A partir da década de 70 o cenário começou a mudar:
●
Surgiram mais fabricantes de hardware
(minicomputadores e microcomputadores);
●
O software começou a ser comercializado em
separado do hardware;
●
O software deixou de ser específico de cada
fabricante de hardware;
●
Surgiram as empresas especializadas em
desenvolver e comercializar software;
●
Surgiram novos modelos de licenciamento, uso e
propriedade intelectual dos códigos (programas).
6
7. O (re) surgimento do Software Livre
• Como “ressurgiu” o movimento do software livre?
• Quem iniciou? Como? E por qual motivo?
• Software livre tem licenciamento? Como funciona?
• Software livre = software aberto?
• Onde entra o Linux nessa história?
Essas e outras respostas a seguir...
7
8. O último hacker (“do bem” )
Richard Stallman era um hacker que trabalhava no laboratório de
Inteligência Artificial do MIT (AI Lab), desde 1971, como analista de
suporte e desenvolvimento.
OBS: O termo hacker havia sido criado no próprio MIT, na década
anterior e designava as pessoas que buscavam incansavelmente
conhecer cada vez mais dos computadores e que acreditavam no livre
intercâmbio de informações.
8
9. Stallman e o início do
movimento do software livre
Em 1974, o AILab do MIT iniciou o projeto LispMachine, um sistema
operacional monousuário especializado para rodar programas em Lisp,
linguagem de programação voltada para a Inteligência Artificial
Esse projeto, no início da década de 80, deu origem a duas empresas
(Symbolics e Lisp Machines Inc.), que acabaram por contratar
todos os outros hackers do AI Lab e comercializar versões dos
programas que ali haviam sido criados, impondo restrições de uso e
de acesso ao código fonte.
Em 1982 também chegaram ao AILab os novos computadores DEC
VAX, com sistema operacional sem código fonte.
Esses fatos ( principalmente) motivaram Stallman a lançar o
Manifesto GNU e criar o movimento do Software Livre...
9
10. O Manifesto GNU
Em 1983, Stallman divulgou o Manifesto GNU, que
anunciava a intenção da criação de um novo sistema
operacional completo, utilizando-se única e exclusivamente
programas livres (Free Software).
Nesse manifesto Stallman convocava pessoas e empresas a
investirem nessa idéia contribuindo com dinheiro, máquinas
e/ou tempo. As doações serviriam para desenvolver software
totalmente livre.
10
11. A Free Software Foundation
Em 1984, Stallman deixou seu emprego no MIT e deu início a
criação dos programas do Projeto GNU.
Em 1985, como mais pessoas já estavam envolvidas no projeto,
era hora de buscar mais investimentos a fim de poder manter
um grupo permanente de desenvolvimento. Foi então criada a
Free Software Foundation (FSF).
11
12. Definição de Software Livre (segundo a FSF)
“Software Livre é uma questão de liberdade”
Liberdade de executar um programa, para qualquer propósito;
Liberdade de estudar como um programa funciona, e adaptá-lo para as suas
necessidades;
Liberdade de redistribuir cópias de modo que você possa ajudar aos demais;
Liberdade de aperfeiçoar um programa, e liberar os seus aperfeiçoamentos, de
modo que toda a comunidade também se beneficie;
12
13. GPL (General Public License)
– Em 1989 a FSF criou a licença GPL;
– Em 1991 a GPL evoluiu para a segunda versão;
– Em Junho de 2007 foi lançada a GPL v3.
Se
Software proprietário Não
GPL
contiver Se
Software livre GPL
então
Não distribuir Remover Distribuir
código Sob
GPL GPL
13
14. Mas o que significa GNU?
GNU significa “Gnu is Not Unix”. É o nome de
um sistema operacional completo, compatível
com o UNIX. Esse projeto representa a
concretização da filosofia Software Livre.
14
15. E por que o GNU não poderia ser o UNIX?...
Marcelo Sávio
Uma história do UNIX...
Arquiteto de Software
IBM Brasil
msavio@br.ibm.com
15
16. Uma pequena história da Informática “moderna”…
As raízes frias da informática
16
17. No início houve uma grande explosão...
Deserto em Alamogordo, Novo México, EUA (1945)
17
18. Seguida de outras duas...
Bomba em Hiroshima, Bomba em Nagasaki,
Japão (1945) Japão (1945)
.. que terminaram um conflito (II Guerra Mundial)
18
20. Teste de Bomba Atômica Teste de Bomba Atômica
no Atol de Bikini, em Semipalatinsk
Ilhas Marshall, EUA Cazaquistão, URSS
(1946) (1948)
Bombas nucleares
Teste da Bomba-H
Teste da Bomba-H, em Semipalatinsk
no Atol de Enewetak, Cazaquistão, URSS
Ilhas Marshall, EUA (1955)
(1952)
As bombas eram lançadas por aviões especiais...
20
21. TU-4
B-29
B-36 TU-16
Aviões
Bombardeiros
TU-20
B-52
Como se proteger de ataques aéreos?...
21
26. Avanços tecnológicos
Apesar de ter se tornado obsoleto no momento em que ficou
totalmente pronto – em 1962 as principais ameaças já não eram
mais os aviões, mas sim os mísseis balísticos intercontinentais,
contra os quais o sistema era inútil – o SAGE trouxe uma série de
inovações que, em forma de idéias ou tecnologias, abasteceram a
nascente indústria de informática:
• Multiprocessamento
• Sistema de tempo compartilhado (timesharing)
• Processamento distribuído
• Memória de núcleos magnéticos
• Modem (conversão Analogico/Digital)
• Gerenciamento de banco de dados em tempo real
• Terminais gráficos interativos e Light pen
• Redes
• Correção automática de erros
• I/O “bufferizado”
• Engenharia de Software (500 mil linhas de código)
• Alta disponibilidade
26
27. 1957
A largada da corrida espacial
A União Soviética lançou os satélites
Sputnik 1 e 2 e saiu na frente na
corrida espacial.
27
28. 1957
Acelerando as pesquisas
Os EUA criaram em seguida, dentro do
Departamento de Defesa, a agência ARPA
(Advanced Research Project Agency)
para reconduzir o país à liderança
tecnológica.
Bitmap5
• No ano seguinte criou a NASA (National Aeronautics and
Space Administration) para coordenar a cuidar
especificamente da corrida espacial.
• A ARPA quase foi desfeita, mas se reposicionou como fomentadora de diversas
tecnologias de longo prazo, sem necessariamente ter um objetivo militar
específico.
28
29. 1962
As pesquisas em computação
Na ARPA foi criada a divisão IPTO (Information Processing Techniques Office).
O objetivo original do IPTO era incentivar a pesquisa em tecnologias de computadores
– redes, sistemas multiusuário (timesharing), interfaces homem-máquina, etc.,
estendendo a experiência feita no SAGE.
As Instituições inicialmente agraciadas:
MIT (Massachussets Institute of Technology)
Carnegie-Mellon University
RAND Corporation
Stanford Research Institute (SRI)
System Development Corporation
University of California at Berkeley (UCB)
University of California at Santa Barbara (UCSB)
University of California at Los Angeles (UCLA)
University of South Carolina
University of Utah
29
30. O projeto mais famoso do IPTO
SDS 940 IMP
Stanford (SRI)
IMP
DEC PDP 10
1º Out 1º Dez
Utah (UU)
1969
IMP
IBM S/360-75 1º Set
Santa Barbara (UCSB)
IMP
1º Nov
SDS Sygma 7
Los Angeles (UCLA)
30
31. 1968 Outro projeto bancado pelo IPTO:
NLS (On-Line System)
Stanford Research Institute
NLS
Mouse
Douglas Engelbart
31
32. 1963
O Projeto MAC
Massassuchetts Institute of Technology
O IPTO patrocinou o Projeto MAC (Multiple Access
Computers que visava desenvolver sistemas de uso
compartilhado (time sharing)
Este projeto inicialmente criou o
sistema operacional CTSS
(Compatible Time Sharing System)
para o computador IBM 7094 que
suportava 30 usuários on-line
simultaneamente.
.
32
33. 1964
O Sistema Operacional MULTICS
No Projeto MAC, o MIT começou o desenvolvimento de um novo sistema
operacional multiusuário que fosse capaz de suportar mais de 300 usuários
simultâneos on-line.
Este sistema chamava-se MULTICS (Multiplexed Information and Computing
Service)
A General Electric e a Bell Laboratories se juntaram ao MIT neste projeto e cada
um tinha um objetivo:
O MIT queria desenvolver pesquisas
em sistemas operacionais (time
sharing);
A GE queria vender computadores com
o novo Sistema Operacional;
A Bell Labs queria um bom sistema
para usar no ambiente administrativo.
33
35. A Reação da IBM
A IBM estava perdendo prestígio em dois clientes impostrantes: MIT e Bell
Apesar de nova no mercado, a GE estava se tornando uma ameaça
Os sistemas timesharing estavam começando a se tornar uma necessidade do
mercado. A IBM reagiu, desenvolvendo sistemas que perduraram até hoje.
“Task force na IBM”
1965
• Sistema operacional TSS, para o
computador IBM System 360 Modelo 67
1967
• Sistema operacional CP/67 (CP/CMS)
• CP/CMS --> VM/370 --> VM/XA --> VM/ESA --> VM/390 --> z/VM
• DOS/360 --> DOS/VS --> DOS/VSE --> VSE/ESA --> z/VSE
• OS/360 MVT --> OS/VS2 --> MVS/370 --> MVS/XA --> MVS/ESA -->OS/390 --> z/OS
35
36. E o projeto MULTICS?
No final de 1969 a Bell Labs deixou o Projeto, que continuou com o apoio
do Honeywell (que comprou a divisão de computadores da GE).
O MIT saiu parcialmente do Projeto em 1970 e totalmente em 1975.
Em 1974 a Honeywell lançou sua primeira versão comercial.
A última máquina com o MULTICS foi desligada em Outubro de 2000
(no Depto. de Defesa Nacional do Canadá)
Principais contribuições do MULTICS:
Sistema de arquivos hierárqiuco
Memória virtual
Implementação em linguagem de alto nível
Multiprocessamento
Suporte a múltiplas linguagens
Segurança
Reconfiguração on-line
Engenharia de Software
36
37. 1969 Continuando as pesquisas em
sistemas operacionais
Kenneth Thompson e Dennis Ritchie
(ambos da AT&T Bell Labs) trabalhavam
no desenvolvimento do sistema de
arquivos do sistema operacional
MULTICS no Projeto MAC.
Quando a Bell abandonou o Projeto
MULTICS, resolveram continuar as
pesquisas dentro da AT&T.
Também quiseram preservar um jogo
simulador chamado Space Travel que haviam
desenvolvido durante o Projeto MULTICS e
quiseram portá-lo para outro computador que
houvesse disponível na Bell.
37
38. O Sistema Operacional UNIX
Conseguiram um minicomputador DEC PDP-7
emprestado de outro departamento interno e
começaram a desenvolver um sistema operacional
para rodar o Space Travel.
Escreveram o sistema operacional, uma
interface shell, um editor de textos, um
assembler e o sistema de arquivos. Este novo
sistema foi inicialmente chamado de “UNICS”
(UNIplexed Information and Computing
Service), que depois virou UNIX
Em 1970 o Depto. de Patentes da Bell
comprou um DEC PDP-11/45, para onde o
UNIX foi foi logo portado. A própria Bell
passou a utilizar o sistema.
38
39. 1973
O anúncio do UNIX
Ritchie e Thompson apresentaram
pela primeira vez o UNIX em um
simpósio sobre sistemas
operacionais promovido pela IBM
em um dos seus Centros de
Pesquisas.
Após esse simpósio começaram a
receber pedidos para fornecerem
uma cópia do sistema.
IBM Watson Research Center
Yorktown, New York (EUA)
39
40. 1974
A disseminação do UNIX
Ritchie e Thompson publicaram
um artigo da Communications
of the Association for
Computing Machinery (CACM),
o que aumentou ainda mais a
visibilidade do sistema.
40
41. As universidades e a disseminação do UNIX
• A partir de 1974, várias Universidades
(Harvard, Berkeley, Stanford, etc.) se
interessaram pelo sistema e o
adquiriram por um preço simbólico do
custo da fita e manuais (e sem direito a
suporte).
• A AT&T estava proibida por lei (desde
1956) de comercializar produtos fora do
mercado de telefonia e telegrafia. Esta
lei valeu até 1982.
41
42. A portabilidade do UNIX
Até 1975, para se rodar o UNIX era necessário possuir um computador
DEC PDP 11, até que, na Versão 4 ,o sistema foi completamente
reescrito na linguagem de programação C, o que facilitou sua futura
portabilidade para outras máquinas.
A primeira versão do UNIX em máquina não-
DEC rodou (em 1976) em um computador
IBM System 360 Modelo 91 na
Universidade de Princeton.
Posteriormente, nos Laboratórios da Bell o
UNIX rodou em máquinas Interdata 8/32
42
43. Falando do C...
Linguagem de programação criada por Dennis Ritchie, baseada na
Linguagem B.
A Linguagem B era uma adaptação (simplificação) da linguagem BCPL (Basic
CPL) criada por Martin Richards em 1967, no Projeto MAC, que por sua vez
era um adaptação da linguagem CPL.
A linguagem CPL (Combined Program Language) foi desenvolvida na
Inglaterra em 1963, nas Universidades de Cambridge e Londres e era baseada
na linguagem ALGOL
A linguagem ALGOL (Algorithmic Oriented Language) foi criada em 1958
por um grupo internacional de especialistas. Era uma linguagem estruturada
de alto nível, voltada para aplicações científicas.
A primeira especificação formal da Linguagem C
aconteceu somente em 1978 com o lançamento
do livro “The C Programming Language”,
escrito por Brian Kernighan e Dennis Ritchie
43
44. Berkeley e a disseminação do UNIX
• Em 1975 Thompson foi convidado a dar aulas
sobre sistemas operacionais na Universidade
de Berkeley.
• A partir do ano seguinte o CSRG (Computer
Sciences Research Group) dessa universidade
criou e começou a distribuir fitas com versões de
UNIX com uma série de extensões e
complementos desenvolvidos localmente. Essa
distribuição ficou conhecida como BSD (Berkeley
Software Distribution)
• Uma das extensões mais importantes foi a
implementação do protocolo TCP/IP de forma
nativa, que transformou o UNIX no sistema
padrão da ARPANET (e posteriormente da
Internet).
44
45. O UNIX no Brasil
• Algumas universidades brasileiras tentaram licenciar o UNIX, sem
sucesso. Assim partiram para desenvolver um sistema próprio,
compatível com UNIX, mas sem usar código da AT&T.
• Em 1982 o Núcleo de Computação Eletrônica da UFRJ criou o Projeto
PLURIX. Outras universidades também o fizeram, como a UFMG
(DCC-IX) e USP (Real).
• Algumas empresas nacionais também desenvolveram seus próprios
sistemas, como a COBRA (SOX ), EDISA (Edix), DigiRede (Digix) e
Softec (Analix).
• Depois chegaram os sistems UNIX licenciados e hoje, nenhum desses
sistemas nacionais existe mais, com exceção do Plurix, que se
transformou no TROPIX em 1994, e ainda existe na UFRJ.
45
46. O produto comercial UNIX
A partir 1983 (System III, versão 7),
a AT&T passou a tratar o UNIX como
um produto comercial e a não liberar
mais o código fonte... e a acionar
judicialmente quem usasse o nome ou
código do UNIX sem licença.
Algumas empresas licenciaram o UNIX
para poderem lançar suas “versões”:
DEC Ultrix
HP UX
Sun OS
Microsoft Xenix
IBM AIX
Vertucom Venix
Unisoft UNIPLUS
Etc. Primeira propaganda do UNIX
46
47. Os BSD UNIXes
• As fitas que a BSD distribuía continham código original da AT&T, por
isso também necessitavam licenças.
• No início dos Anos 90 surgiram projetos de se escrever um sistema
BSD sem código da AT&T, como foram os casos do 386BSD e da
BSDi. Mesmo assim as distribuições BSD foram alvo de batalhas
judiciais (que hoje já estão encerradas).
• Em 1993 o 386BSD deu origem aos sistemas NetBSD e FreeBSD.
• Em 1996 surgiu o OpenBSD, derivado do NetBSD.
• Em 2003 surgiu o DragonFlyBSD, derivado do FreeBSD.
47
48. Os UNIX “acadêmicos” (e sem código da AT&T)
XINU (Xinu Is Not Unix) MINIX
Douglas Comer Andrew Tanenbaum
1979 1987
48
49. O Linux
• Kernel de sistema operacional baseado no MINIX, desenvolvido
originalmente por Linus Torvalds, aluno da Universidade de Helsinki
(Finlândia) em meados de 1991.
49
50. O Linux
• Em duas semanas após o anúncio de Torvalds em
1991, 30 pessoas tinham contribuído com cerca de
200 informes de erros, contribuições de utilitários,
drivers e melhorias para serem adicionadas ao
kernel
• Em Julho de 1995, mais de 15.000 pessoas de 90
países em 5 continentes tinham contribuído com
comentários, informes de erro, correções,
alterações, reparos e melhorias.
50
51. GNU + Linux:
No início dos anos 90 o sistema GNU estava praticamente completo
faltando um último (e importante) componente: o kernel do sistema.
Foi decidido então pela implementação do HURD, baseado no Mach (um
microkernel desenvolvido na Universidade Carnegie Mellon).
Mas como:
O HURD ainda levaria muito tempo…
Os sistemas BSD estavam sob batalhas judiciais…
O Linux já estava por aí rodando e dando bons resultados...
Então foi só uma questão de tempo unir o kernel
Linux ao sistema GNU, daí o nome GNU/Linux.
O licenciamento através da GPL e a utilização da Internet como o canal
principal de comunicação e desenvolvimento transformaram o Linux no
mais importante exemplo de software livre desenvolvido de forma aberta
e descentralizada.
51
52. A Lenda…
x
“ Linus and I are not quot;enemiesquot; or anything like that. I met him once and he
seemed like a nice friendly, smart guy. My only regret is that he didn't develop
Linux based on the microkernel technology of MINIX “
I REALLY am not angry with Linus. HONEST. He's not angry with me either.
52
53. A distribuições Linux
O Linux é normalmente usado como parte de um distribuição (“distro”).
As distros são criadas por indivíduos, grupos ou empresas.
Apesar de possuírem um kernel comum (Linux versão x.y.z), as distros
divergem quanto às ferramenta de instalação, qualidade/quantidade de
documentação, programas aplicativos adicionais (de diversos tipos),
suporte, preço, etc.
Existem centenas de distribuições. As mais usadas são:
53
54. A árvore
genealógica
(parcial) do
sistema
operacional UNIX
54
55. EUA ALGOL
URSS
IBM Linguagem CPL
Sputnik DARPA IPTO
MIT
Linguagem BCPL
RAND Project MAC
Linguagem B
AI Lab CTSS
Redes de LCS Bell
MULTICS
Pacotes GNU
BBN Linguagem C
X-Window
UCLA UNIX
Arpanet Berkeley
UCSB
TCP/IP Minix
Utah Linux
Internet
Mozilla
WWW
Netscape Mosaic Apache
55
57. Software Livre = Inovação
Modelo de
desenvolvimento
Software Livre
Modelo de negócios
57
58. Software Livre:
Modelo de Desenvolvimento
Marcelo Sávio
Arquiteto de Software
IBM Brasil
msavio@br.ibm.com
58
59. Projeto de software livre: Definição
Embora não exista uma definição precisa do que seja um projeto de
software livre, existe um consenso informal que abrange:
• Código fonte, que é o software propriamente dito, mas que existe em forma de
inúmeras cópias entre todos seus usuários e repositórios de dados.
• Um grupo de desenvolvedores, que trabalha para codificar e corrigir o
software. Trabalham cooperativamente através da Internet e podem ter status
diferenciados dentro do projeto.
• Os usuários do software. Apesar de todo software ter usuários, sua participação
em projetos de software livre é essencial, pois discutem inovações e apresentam
erros encontrados com freqüência.
• Os repositórios de documentos e códigos. Normalmente todo projeto tem
algum site central que é uma referência para desenvolvedores e usuários
buscarem códigos e informações atualizadas.
59
60. A Catedral e o Bazar
• Eric Raymond rotulou os modelos de desenvolvimento de software:
– Chamou de “Bazar” o modelo descentralizado e cooperativo do
Linux, em contraposição ao “Catedral”, modelo tradicional no qual
o desenvolvimento é realizado de forma fechada e pouco
cooperativa.
• Reforçou esta perspectiva através da afirmação de que o Linux é um
contra-exemplo da “Lei de Brooks”, uma lei clássica da Engenharia
de Software, que dizia o seguinte:
“...o tempo de um programador não é acumulativo, pois ao
adicionar desenvolvedores em um projeto atrasado de software faz
com que ele se torne mais atrasado ainda e que a complexidade e
os custos de comunicação de um projeto crescem com o quadrado
do número de desenvolvedores, enquanto o trabalho feito cresce
somente linearmente” (Frederick Brooks, 1975).
60
61. Catedral x Bazar
Time estruturado (hierarquia) x Rede Social (comunidades)
Liderança formal x Liderança baseada em meritocracia
Tarefas e prazos bem definidos x Tarefas e prazos informais
Roadmap definido (influência do marketing) x Roadmap adaptável
Documentação (parte do produto) x Documentação (tarefa necessária )
Testes estruturados x “Se exposto a um número suficiente de olhos,
todos os bugs são superficiais”
Construção (top down) x Evolução (“Release early, release often”)
Perfeição x Melhorias Contínuas
Redundância (seletividade) x assinalamento de tarefas
61
62. Ciclo de Vida de um Projeto de Software Livre
Gênese
Primeiros
contribuidores
Primeira
versão
Cria-se comunidade
Governança formal
Processos de revisão
Versão
estável
Mais contribuidores
Divergências de
direcionamento
Liderança
reconhecida
Novas Versão Split off para novo
Variantes projeto
funções terminal
(ex: Emacs e Xemacs)
Comunidade desiste
de Variantes podem
evoluir o software continuar evoluindo
(FreeS/Wan) (Openswan/Strongswan)
62
63. Comunidade envolvida no desenvolvimento
de um Software Livre
Desenvolvedores
principais
Principais
Contribuidores
esporádicos
Usuários
Meritocracia tende a concentrar as colaborações:
10% dos colaboradores escrevem mais de 70% do código.
63
64. Qualidade de código
Densidade de defeitos de software: Segundo o Software Engineering
Institute, um programador experiente produz aproximadamente 1 defeito por 10
LOC (Lines of Code). Se, durante o processo de desenvolvimento, 99% desses
defeitos forem descobertos e corrigidos, existirão mil defeitos por cada 1 milhão
de LOC ou 1 defeito por KLOC.
Uma distribuição Red Hat Linux possui aproximadamente 30 milhões de LOC;
Estudo da Reasoning (2003)
Código TCP/IP no Linux (v2.4.19) : 0,1 bugs/KLOC
Apache (v2.1): 0,51 bugs/KLOC
Estudo da Coverity (Jul 2005) mostrou que entre Dez/2004 e Jul/2005 a
densidade de defeitos do kernel Linux baixou de 0,17 para 0,16 bugs/KLOC.
A densidade de defeitos reduziu em 2,2%, ainda o kernel tenha crescido de 5,76
para 6,03 milhões de LOC, o que representa um aumento de 4,7%
64
65. Código aberto é mais seguro?
A disponibilidade do código fonte é um benefício ou malefício?
Confiabilidade = segurança
Transparência vs. “Segurança pela obscuridade”
Diversos estudos independentes mostram o Linux mais seguro, e mais rápido do
que outros sistemas na identificação e aplicação de correções (Bloor Research,
Mitre, Evans, etc.)
Não há consenso...
65
66. Alguns projetos famosos
– As linguagens de programação Perl, Python e PHP;
– O serviço de diretório OpenLDAP;
– Os ambientes gráficos GNOME e KDE;
– O browser Mozilla;
– O compilador GCC;
– O kit de aplicativos de escritório OpenOffice;
– O servidor de aplicativos Zope;
Sendmai
– Os servidores de aplicativos Java Gluecode e JBoss; l
– O servidor HTTP Apache;
– O servidor de Proxy Squid;
– Os servidores de correio Sendmail, QMail e PostFix;
– O sistema de ERP GNUe;
– Os sistemas bancos de dados MySQL e PostgreSQL;
– O sistema de integração com redes Windows Samba;
– O ambiente de desenvolvimento Eclipse;
– Os sistemas operacionais FreeBSD e Linux.
66
67. Alguns desafios ao modelo de
desenvolvimento de software livre (em geral)
• Redundância de esforços (muitas alternativas e variantes…)
• Problemas de comunicação (inglês, emails)
• Senso de prioridade (Agilidade no processo decisório)
• Proliferação de “grupos fechados” (“panelinhas”)
• Falta de foco
• Dependência de pessoas-chave
• Escassez de lideranças competentes
• Problemas legais (propriedade intelectual)
67
68. A “seleção natural” aplicada ao software livre
Existem milhares de projetos de Software Livre
( Exemplo: Projetos em andamento no Sourceforge - Agosto de 2005)
Estágio do Quantidade Percentual
Projeto de Projetos
Planejamento 16.121 21,60 %
Pré-Alfa 12.652 16,95 %
Alfa 12.788 17,13 %
Beta 16.493 22,09 %
Estável 13.883 18,60 %
Maduro 1.223 1,64 %
Inativo 1.487 1,99 %
68
69. Atual estrutura de desenvolvimento do Linux
Andrew Morton
(staff LF)
Mantenedor do kernel
em produção
Código fonte Código fonte
Mercado
Contribuidores
Mantenedores
dos
Staff da LF também subsistemas
Mantenedor do kernel
contribui com código
Mantenedores dos
em desenvolvimento Linux User Advisory
Council
Subsistemas
Linus Torvalds (LF)
no staff LF
(staff LF)
69
70. Estrutura de desenvolvimento do Linux
Papel da LF e do ecossistema
Patrocinadores
da indústria
IBM, HP, Cisco, CA, EMC, Fujitsu,
Hitachi, Intel, Nokia, Novell, Sun,
Toshia, Unisys, etc. Data Center Linux
for the Enterprise
Expertise e $$
Carrier Grade Linux
for Telecom
Internet
Linux Kernel
Expertise e Pessoas
Comunidade
e
Arquitetos e coordenadores
da Linux Foundation Fonte: LF
70
71. A evolução do modelo de desenvolvimento de
Software Livre (caso Linux)
✔
Desenvolvedores 100% voluntários ✔
90% dos desenvolvedores principais
trabalham em fundações mantidas pela
✔
Desenvolvimento anárquico indústria (ex. ASF/LF) ou em empresas
✔
Não existe roadmap claro (visão ✔
Organização mais hierárquica (ex: Linux
pessoal do criador) Foundation como ponto focal para o Linux)
✔
Inexiste scheduling para deployment ✔
Roadmap mais claro (influência da industria)
(desenvolvedores escrevem código
para rotinas que querem e gostam/ e ✔
Scheduling mais organizado com novos
para quando querem) códigos sendo gerados como projeto por
organizações (ex. O LTC da IBM)
✔
Qualidade do código é variável (teste
baseado na filosofia de “massively ✔
Melhoria da qualidade do código (mantém
parallel debugging”) depuração maciça, mas implementa testes
sistemáticos no código gerado por profissionais
✔
Código instável (desenvolvedores de empresas de TI)
submetendo contribuições “bleeding
edge”) ✔
Maior controle das versões
✔
“ideologia”/romantismo ✔
Ecossistema de negócios
✔
Percepção de que os fundamentos ✔
Percepção da sustentabilidade dos modelos
econômicos eram intangíveis (gift de negócio
economy)
71
72. Software Livre:
Modelo de Negócios
Marcelo Sávio
Arquiteto de Software
IBM Brasil
msavio@br.ibm.com
72
73. Software livre e/ou aberto?
• Muitas vezes o termo software livre (free software) se
confunde com software aberto (open source). Isso passou
a acontecer principalmente após a criação da
Open Source Initiative (OSI), em 1988.
• Diferentemente da FSF, a OSI não tem licenças próprias, mas certifica
todas as dezenas licenças atualmente existentes no mercado (inclusive
as da própria FSF) dentro de seus próprios parâmetros de software
aberto.
• A OSI é uma entidade conciliadora, que garante às empresas que
praticam o modelo comercial de desenvolvimento de software, uma porta
de entrada no movimento de software aberto sem necessariamente
adotar as licenças da FSF, representando assim uma espécie de
alternativa intermediária.
• Todo software livre é, por definição, aberto, porém nem todo software
aberto é livre.
73
74. Tipos de licenças de Software
Não há Tipo de
licença licença
Código fonte aberto
Domínio Não
Público “virótica” “Virótica”
(ex. GPL) Proprietária
(ex.TCP/IP) (ex. BSD)
Existem mais de 40 tipos de licenças cadastrados na OSI....
Acadêmica: BSD, Bind, Sendmail...
Comunidade: Apache...
Corporativa: OSD, CPL, SPL...
74
75. Licenças de Software
Forte
Licenças
(amigável)
Duais
Licenças
comerciais
Licenças
estilo BSD
Viés (ex. IBM CPL)
empresarial
(potencial de
LGPL
lucratividade)
GPL
Fraco
(não
amigável)
Fraco Forte
Incentivo para a
comunidade
75
76. O Ecossistema do Negócio Software
Desenvol Documen Empacota Marketing Consul Implemen Treina Suporte Gerencia
vimento tação mento Vendas toria tação mento mento
Produção/Programação
(Onde modelo do software livre Serviços
interfere diretamente)
• É um bem imaterial
• Apenas cerca de 30% de todo software escrito é vendido ao mercado. A
maioria é desenvolvida internamente ou feita por encomenda.
• Indústria de software não é homogênea em seus modelos de negócio (software
de massa, sob encomenda, embarcado, games…).
76
77. O que é um Sistema Embarcado
Um sistema embarcado é qualquer sistema baseado em
computador mas que não é um computador...
Infra-estrutura de comunicações (ERB, roteadores,PABXs...)
Eletrônica de consumo (celulares, cameras digitais, MP3 …)
Sistemas militares e aeroespacial (aviônicos)
Automação industrial (robótica, controle de processos...)
Equipamentos médicos (defibriladores, marca passo...)
Automóveis...(Freios ABS...)
77
78. Impacto do Software Livre na indústria de software
Obsolescência do produto
Disponibilidade do
produto Surge equivalente Software
Aberto
Receita sem Software Aberto
Receita
Receita com Software Aberto
Custos/investimentos
Pesquisa
Desenvolvimento
Reação da indústria
Testes alfa/beta • Redução e novas políticas de preços
Produção,
Manutenção
atualizações • Offload de produtos/componentes
vendas, marketing comoditizados para o modelo de SW livre/aberto
e suporte
• Disponibilizar softwares que não conseguiram
Acionistas estão mais interessados no market-share/tendem a obsolescência
potencial futuro que nas receitas atuais ... • Maiores investimentos em P&D (inovação)
• Diferenciação em serviços
78
79. Algumas outras lições aprendidas
• Difícil contabilizar base instalada de software livre!
• Alguns produtos, como o IBM Rational, embutem software livre (Eclipse),
que os usuários não refletem nas respostas das pesquisas;
• Movimento do software livre começou pelas áreas técnicas;
• Pesquisas com CIOs/gestores ainda tendem a mostrar % pequeno;
• Pesquisas com técnicos mostram % bem maior;
• Alguns executivos tendem a subestimar uso de software livre por:
• Proteção do orçamento
• Evitar explicações de porque adquiriram software proprietário.
79
80. Algumas lições aprendidas
Softwares de infra-estrutura ainda são os mais
adequados para modelo de Software Livre
Aplicações Diferencial
Estreita competitivo
verticalizadas
ERP/SCM/CRM
Amplitude de Ferramentas de
Utilização desenvolvimento
Interesse da
comunidade Desktop suites
Middleware
Compiladores
Sistema Operacional
(Linux)
Ampla
Baixo
Comoditização Alto
Nível de comoditização
80
81. Perspectiva dos analistas e da imprensa
“People thought this wouldn't work. There are just too many
people and companies to hang together. But now it's clear it
does work,” says Mark Blowers, an analyst at market
researcher Butler Group. (BusinessWeek)
“More and more you will hear about free software, Linux, principally
in the government and corporate environments, and less about
Windows,” Oscar Clarke, head of Intel in Brazil, said at a press
conference. “It's an inexorable trend.” (Reuters)
“Linux is the first natural business ecosystem,” says
James F. Moore, a senior fellow at the Berkman Center for
Internet & Society at Harvard Law School. (BusinessWeek)
81
82. Linux e os benefícios da redução de TCO
Linux é 40% mais barato se comparado com Windows
Baseado em um período de 3 anos de propriedade de um sistema
que suporte 100 mil operações por segundo no benchmark
SPECjbb
82
84. Envolvimento/Comprometimento da IBM com Software Livre
Como e quando começou?
Jikes (1998)
Relatório apresentado ao Corporate Technology Council, março de 1999
Linux World 2001 (anunciou investimento de US$ 1 bilhão)
Iniciativas importantes: Jikes, Eclipse, Apache, Gluecode, Globus, GCC...
IBM + Zend Technologies (PHP)
Doação de 500 patentes de software
Linux: Essencial na estratégia on demand
+150 projetos (sourceforge.net, developerWorks, etc.)
Intenso uso interno (servidores e posteriormente estações de trabalho – rich client)
+700 profissionais envolvidos diretamente com projetos Linux/Apache Foundations…
OSSC (Open Source Steering Committee) e OSPG (Open Source Participation Guidelines)
84
85. Linux: Transformando a TI interna da IBM
Quase 4 mil servidores em produção
– 25 mil clientes
Internet e Intranet
– A Intranet suporta mais de 350 mil funcionários em todo o mundo
Ambiente do serviço de Application Hosting (HTTP workload)
– Blade servers
Infra-estrutura de Eventos Especiais – Wimbledon, The Ryder Cup, The US Open
– Linux clusters
Serviços de Segurança (Internet Vulnerability Security Scanning)
– Scanning de mais de 30 mil endereços IP por semana
Instalações industriais de produção de chips
– Aumento de confiabilidade com a utilização de servidores Linux em produção
85
86. Padrões abertos são a base da arquitetura On-Demand da IBM
Padrões
Tecnológicos
Modelagem Valor para o
UML/BPEL
Negócio Eclipse Flexibilidade
JEE Agilidade
Aplicações e
Middleware de Padrões de
Indústria
Integração
Escolha
Linux
Web Services
Recursos dos Sistemas TCP/IP
OGSI (Grid) Skills
Hardware Sistema Open Power
Operacional Open Blade
Storage Rede
Requisito-chave Padrões abertos
86
87. IBM Linux Integration Centers (LIC)
Missão
Apoio aos ISVs (Independent Software Vendors)
Migração de aplicações
Suporte e desenvolvimento
Projetos Pilotos para clientes
Documentação de melhores práticas
Homologação e certificação de produtos
87
88. IBM Linux Technology Centers (LTC)
Produtos IBM
Linux em servidores Power
Linux em Mainframes (zSeries)
Otimizar produtos Linux em Intel (xSeries)
IBM em Linux Software IBM para Linux
Áreas de
Desenvolvimento
Escalabilidade
RAS
Redes
Gerenciamento Tornar o Linux Expandir o alcance
Segurança cada vez do Linux
Desempenho
melhor
Padronização Novas Áreas
Testes Carrier Grade Linux
Qualidade
Data Center Linux
Interoperabilidade com
Windows
Linux em notebooks
Mais de 600 pessoas Linux embarcado
Mais de 40 Localidades (inclusive Brasil)
Mais de 150 Projetos Open Source
88
90. 90
SOFTWARE
HARDWARE
xSeries
pSeries
zSeries
iSeries
Linux na IBM
BladeCenter
OpenPower
IBM Global Services
SERVIÇOS
91. Linux em Mainframes (Z series)
L
L L L
L L
L LL L
L L L
L L L
L
V z/ z/ z/ z/ z/ ii
V z/ z/ z/ z/ i ii ii ii ii i ii i ii L
S O O O O O n
S O O O O n n n
n n
n nn n
n n n
n n n
n i
E S S S S S u
E S S S S S u u u
u u
u uu u
u u u
u u u
u
n
x
x x x
x x
x xx x
x x x
x x x
x
u
z/VM V4
V5 z/OS z/VM V4
V5 x
LPAR
LPAR LPAR LPAR LPAR
CP0 CP1 CP2 CP3 CP4 CP5 LN0 LN1 LN2
Standard Processor Engines IFL Engines
zSeries Server
91
92. OpenPower Project
The OpenPower Project intends to
give Linux developers an opportunity
to try out the latest POWER5
processor-based OpenPower™
servers, comment on them and share
their experiences. This project will
demonstrate that OpenPower is not
only viable, but a supremely capable
and stable platform for running
mission-critical business applications
in a true 64-bit environment. Two
leading universities host the servers,
so you have a choice of different
builds and geographic entry points
from which you can start.
92
93. Exemplo de algumas contribuições da IBM ao kernel 2.6...
Area Contribution Description
Management Extended File Atributes Greater control for file sharing
Performance 8-way SMP scalability Benchmark TPC – demonstrate scalability
Performance 16-way scalability Benchmark TPC
Scalability Semaphore improvements Light weight user level semaphores
Serviceability Multi-threaded dump Debug multi-threaded applications
Scalability IPC locking Faster IPC locking
I/O Large file system Support for huge block devices
Scalability Ddcache Directory cache read-copy update
Scalability Resource affinity Resource affinity for NUMA
Serviceability Online diagnostics Common framework for diagnostics
Scalability NUMA scheduler Enhancement to scheduler
Serviceability System trace Trace package to allow diagnose
Availability CPU hot plug enablers CPUs can be onlined or offlined
Availability Fast reboot Bypassing firmware on a rebbot
Serviceability Crash data collection Crash dump and analyzer
93
94. Obrigado pelo interesse
e atenção
Marcelo Sávio
http://www.linkedin.com/in/msavio
http://msavio.myplaxo.com
http://www.slideshare.net/msavio/slideshows
http://www.scribd.com/msavio
http://betarrabios.blogspot.com
94