Software Livre - Trajetoria, potencialidades e modelo de negocios - Presentation Transcript
1. Software Livre: Trajetória, Potencialidades e Modelos Negócio 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 1 2. Software livre como4 Uma história do Software Livre 4Agenda Aceitação do4Inovação – Modelos de Desenvolvimento – Modelos de Negócio A IBM e o software livre 24mercado 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. Richard Stallman era um hacker♣O último hacker (“do bem” ) 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. Em 1974,♣Stallman e o início do movimento do software livre o AILab do MIT iniciou o projeto LispMachine, um sistema operacional monousuário especializado para rodar programas em Lisp, linguagem de programação voltada Esse projeto, no início da década de 80, deu♣para a Inteligência Artificial 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 Em 1982 também chegaram ao AILab os novos computadores DEC VAX,♣código fonte. Esses fatos ( principalmente)♣com sistema operacional sem código fonte. 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 é Liberdade de executar um programa, para qualquer♣uma questão de liberdade” Liberdade de estudar como um programa funciona, e adaptá-lo para as♣propósito; Liberdade de redistribuir cópias de modo que você possa♣suas necessidades; Liberdade de aperfeiçoar um programa, e liberar os seus♣ajudar aos demais; 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 19. E desencadearam outro... A Guerra Fria 19 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 22. Semi-Automated Ground Environment (SAGE) Ameaça Nos Estados Unidos.... 22 23. • 24 Centros • Cada um com cerca de 100 operadores • Ambiente funcionava em modo 24 x 7 23 24. 24 25. 25 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. Na ARPA foi criada a♣1962 As pesquisas em computação O objetivo original♣divisão IPTO (Information Processing Techniques Office). do IPTO era incentivar a pesquisa em tecnologias de computadores – redes, sistemas multiusuário (timesharing), interfaces homem-máquina, etc., estendendo MIT♣ As Instituições inicialmente agraciadas: ♣a experiência feita no SAGE. RAND♣ Carnegie-Mellon University ♣(Massachussets Institute of Technology) System Development Corporation♣ Stanford Research Institute (SRI) ♣Corporation University of California at Santa♣ University of California at Berkeley (UCB) ♣ University of♣ University of California at Los Angeles (UCLA) ♣Barbara (UCSB) University of Utah 29♣South Carolina 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. O♣1963 O Projeto MAC Massassuchetts Institute of Technology IPTO patrocinou o Projeto MAC (Multiple Access Computers que visava desenvolver Este projeto inicialmente criou o♣sistemas de uso compartilhado (time sharing) sistema operacional CTSS (Compatible Time Sharing System) para o computador IBM 7094 que suportava 30 usuários on-line simultaneamente. . 32 33. No Projeto MAC, o MIT♣1964 O Sistema Operacional MULTICS começou o desenvolvimento de um novo sistema operacional multiusuário que fosse Este sistema♣capaz de suportar mais de 300 usuários simultâneos on-line. A General♣chamava-se MULTICS (Multiplexed Information and Computing Service) Electric e a Bell Laboratories se juntaram ao MIT neste projeto e cada um tinha O MIT queria desenvolver pesquisas em sistemas operacionais (time♣um objetivo: A♣ A GE queria vender computadores com o novo Sistema Operacional; ♣sharing); Bell Labs queria um bom sistema para usar no ambiente administrativo. 33 34. O Sistema Operacional MULTICS Rodou inicialmente no computador GE-645 34 35. A IBM estava perdendo prestígio em dois♣A Reação da IBM Apesar de nova no mercado, a GE estava se♣clientes impostrantes: MIT e Bell Os sistemas timesharing estavam começando a se tornar uma♣tornando uma ameaça necessidade do mercado. A IBM reagiu, desenvolvendo sistemas que perduraram até 1965 • Sistema operacional TSS, para o computador♣hoje. “Task force na IBM” 1967 • Sistema operacional CP/67 (CP/CMS) • CP/CMS♣IBM System 360 Modelo 67 --> 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. No final de 1969 a Bell Labs deixou o♣E o projeto MULTICS? Projeto, que continuou com o apoio do Honeywell (que comprou a divisão de O MIT saiu parcialmente do Projeto em 1970 e totalmente♣computadores da GE). A última4 Em 1974 a Honeywell lançou sua primeira versão comercial. ♣em 1975. máquina com o MULTICS foi desligada em Outubro de 2000 (no Depto. de Defesa Sistema de arquivos♣Nacional do Canadá) Principais contribuições do MULTICS: ♣ Implementação em linguagem de alto nível ♣ Memória virtual ♣hierárqiuco Reconfiguração♣ Segurança ♣ Suporte a múltiplas linguagens ♣Multiprocessamento Engenharia de Software 36♣on-line 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 Quando a Bell abandonou o Projeto MULTICS, resolveram continuar as♣MAC. pesquisas dentro da AT& Também quiseram preservar um jogo simulador♣T. 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 Escreveram o sistema♣sistema operacional para rodar o Space Travel. operacional, uma interface shell, um editor de textos, um assembler e o sistema de arquivos. Este novo sistema foi inicialmente chamado de “UNICS” (UNIplexed Em 1970 o Depto. de♣Information and Computing Service), que depois virou UNIX 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. Ritchie e Thompson apresentaram pela♣1973 O anúncio do UNIX primeira vez o UNIX em um simpósio sobre sistemas operacionais promovido pela Após esse simpósio começaram a♣IBM em um dos seus Centros de Pesquisas. receber pedidos para fornecerem uma cópia do sistema. IBM Watson Research Center Yorktown, New York (EUA) 39 40. Ritchie e Thompson publicaram♣1974 A disseminação do UNIX 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. Até 1975, para se rodar o UNIX era♣A portabilidade do UNIX 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 A primeira versão do UNIX em♣futura portabilidade para outras máquinas. máquina não- DEC rodou (em 1976) em um computador IBM System 360 Modelo 91 na Posteriormente, nos Laboratórios da Bell o UNIX♣Universidade de Princeton. rodou em máquinas Interdata 8/32 42 43. Linguagem de programação criada por Dennis♣Falando do C... A Linguagem B era uma adaptação♣Ritchie, baseada na Linguagem B. (simplificação) da linguagem BCPL (Basic CPL) criada por Martin Richards em A♣1967, no Projeto MAC, que por sua vez era um adaptação da linguagem CPL. 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. A partir 1983 (System III, versão♣O produto comercial UNIX 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 Algumas empresas licenciaram o UNIX para poderem lançar suas♣UNIX sem licença. Vertucom4 IBM AIX 4 Microsoft Xenix 4 Sun OS 4 HP UX 4 DEC Ultrix 4“versões”: Etc. Primeira propaganda do UNIX 464 Unisoft UNIPLUS 4Venix 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. No início dos anos 90 o sistema GNU estava♣GNU + Linux: praticamente completo faltando um último (e importante) componente: o kernel do Foi decidido então pela implementação do HURD, baseado no Mach (um♣sistema. O HURD♣ Mas como: ♣microkernel desenvolvido na Universidade Carnegie Mellon). O♣ Os sistemas BSD estavam sob batalhas judiciais… ♣ainda levaria muito tempo… Então foi só uma♣Linux já estava por aí rodando e dando bons resultados... O♣questão de tempo unir o kernel Linux ao sistema GNU, daí o nome GNU/Linux. 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 \"enemies\" 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. O Linux é normalmente usado como♣A distribuições Linux As distros são criadas por indivíduos,♣parte de um distribuição (“distro”). Apesar de possuírem um kernel comum (Linux versão x.y.z),♣grupos ou empresas. as distros divergem quanto às ferramenta de instalação, qualidade/quantidade de documentação, programas aplicativos adicionais (de diversos tipos), suporte, Existem centenas de distribuições. As mais usadas são: 53♣preço, etc. 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 56. Sugestões de leitura da história da Informática 56 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. Time estruturado (hierarquia) x Rede♣Catedral x Bazar ♣ Liderança formal x Liderança baseada em meritocracia ♣Social (comunidades) Tarefas e prazos bem definidos x Roadmap definido♣Tarefas e prazos informais Documentação (parte do produto)♣(influência do marketing) x Roadmap adaptável Testes estruturados x “Se exposto a um♣x Documentação (tarefa necessária ) Construção (top♣número suficiente de olhos, todos os bugs são superficiais” Perfeição x Melhorias♣down) x Evolução (“Release early, release often”) Redundância (seletividade) x assinalamento de tarefas 61♣Contínuas 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. Densidade de defeitos de software:♣Qualidade de código 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 Uma distribuição♣mil defeitos por cada 1 milhão de LOC ou 1 defeito por KLOC. Estudo da Reasoning♣Red Hat Linux possui aproximadamente 30 milhões de LOC; Apache (v2.1): 0,51♣ Código TCP/IP no Linux (v2.4.19) : 0,1 bugs/KLOC ♣(2003) Estudo da Coverity (Jul 2005) mostrou que entre Dez/2004 e Jul/2005♣bugs/KLOC A♣a densidade de defeitos do kernel Linux baixou de 0,17 para 0,16 bugs/KLOC. 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. A disponibilidade do código♣Código aberto é mais seguro? Transparência♣ Confiabilidade = segurança ♣fonte é um benefício ou malefício? Diversos estudos independentes mostram o♣vs. “Segurança pela obscuridade” Linux mais seguro, e mais rápido do que outros sistemas na identificação e Não há consenso...♣aplicação de correções (Bloor Research, Mitre, Evans, etc.) 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. Um sistema embarcado é♣O que é um Sistema Embarcado 4qualquer sistema baseado em computador mas que não é um computador... Eletrônica de4Infra-estrutura de comunicações (ERB, roteadores,PABXs...) Sistemas militares e aeroespacial4consumo (celulares, cameras digitais, MP3 …) 4 Automação industrial (robótica, controle de processos...) 4(aviônicos) Automóveis...(Freios4Equipamentos médicos (defibriladores, marca passo...) 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 Aplicações Diferencialλ são os mais adequados para modelo de Software Livre Ferramentas deλ ERP/SCM/CRM Amplitude de λ Estreita competitivo verticalizadas Middlewareλ Desktop suites λ Utilização desenvolvimento Interesse da comunidade Sistema Operacional (Linux) Ampla Baixo Comoditização Altoλ Compiladores λ 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 83. A IBM, o Linux eo Software Livre 83 84. Como♣Envolvimento/Comprometimento da IBM com Software Livre Relatório apresentado ao Corporate Technology♣ Jikes (1998) ♣e quando começou? Linux World 2001 (anunciou investimento de US$ 1♣Council, março de 1999 Iniciativas importantes: Jikes, Eclipse, Apache, Gluecode, Globus,♣bilhão) ♣ Doação de 500 patentes de software ♣ IBM + Zend Technologies (PHP) ♣GCC... +150 projetos (sourceforge.net,♣Linux: Essencial na estratégia on demand Intenso uso interno (servidores e posteriormente♣developerWorks, etc.) +700 profissionais envolvidos diretamente♣estações de trabalho – rich client) OSSC (Open Source Steering Committee) e♣com projetos Linux/Apache Foundations… OSPG (Open Source Participation Guidelines) 84 85. Quase 4 mil♣Linux: Transformando a TI interna da IBM Internet e Intranet – A Intranet♣servidores em produção – 25 mil clientes Ambiente do serviço de♣suporta mais de 350 mil funcionários em todo o mundo Infra-estrutura de Eventos♣Application Hosting (HTTP workload) – Blade servers Serviços de♣Especiais – Wimbledon, The Ryder Cup, The US Open – Linux clusters Segurança (Internet Vulnerability Security Scanning) – Scanning de mais de 30 Instalações industriais de produção de chips –♣mil endereços IP por semana 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. Apoio aos ISVs♣IBM Linux Integration Centers (LIC) Missão Suporte e♣ Migração de aplicações ♣(Independent Software Vendors) Documentação de melhores♣ Projetos Pilotos para clientes ♣desenvolvimento Homologação e certificação de produtos 87♣práticas 88. Linux em♣IBM Linux Technology Centers (LTC) Produtos IBM Linux em♣ Linux em Mainframes (zSeries) Otimizar produtos ♣servidores Power Software IBM para Linux Áreas de Desenvolvimento♣Intel (xSeries) IBM em Linux Gerenciamento Tornar o Linux Expandir o alcance♣ Redes ♣ RAS ♣ Escalabilidade ♣ ♣ Padronização Novas Áreas ♣ Desempenho melhor ♣ Segurança cada vez do Linux ♣ ♣ Data Center Linux ♣ Qualidade ♣ Carrier Grade Linux ♣Testes Linux♣ Linux em notebooks Mais de 600 pessoas ♣Interoperabilidade com Windows embarcado Mais de 40 Localidades (inclusive Brasil) Mais de 150 Projetos Open Source 88 89. 89 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