A notícia já é meio velha, datada de Outubro do ano passado. Na ocasião eu a comentei em meu blog, e agora, que comecei a participar mais efetivamente aqui no Viva o Linux, resolvi dar um pequeno upgrade na minha análise e compartilhar com quem entende do assunto, ou seja, vocês membros da comunidade. Quando eu, por acaso, vi isso no site
Notícias Linux, o título do post me deixou preocupado: o kernel Linux está inchado. Pra mim, que estava começando a me aprofundar mais no mundo GNU/Linux através do Ubuntu, foi quase que um choque (eu estava saindo do mundo Windows, abandonando de vez o dual-boot), choque ainda maior por descobrir que a declaração foi feita por ele,
Linus Torvalds, o pai do Linux, na LinuxCon em Setembro de 2009.
Mas, depois de deixar o tempo passar, estudar, de reler toda a reportagem, de ler outros artigos que falavam sobre o assunto, tanto em sites brasileiros como em sites gringos, e também depois de ter dado uma passada por fóruns e ter comparado minhas opiniões com opiniões de várias pessoas, e de ter lido artigos que comentam essa afirmação do ponto de vista técnico, percebi que a declaração foi impactante, porém na prática a coisa não é tão grave quanto pode parecer.
Talvez tenha sido uma declaração "infeliz" ou (creio assim) mal interpretada. A notícia se espalhou como um relâmpago (inclusive vi vários comentários aqui no Viva o Linux sobre ela), e ela foi reproduzida também muitas vezes de forma descontextualizada e sensacionalista, principalmente por aqueles que criticam o
GNU/Linux - foi quase um trunfo pra alguns setores defensores das "janelas". E antes que os entusiastas do Windows digam "eu falei que o Linux não era isso tudo" e que os "experientes" dinossauros destilem sua razão dizendo que "não tem jeito, todo sistema um dia acaba indo pra este caminho" (tudo bem que isso pode ter até um fundo de verdade, mas o problema é que muitos usam isso como pretexto para o seu comodismo e justificativa pra sua falta de capacidade e má qualidade daquilo que fazem), eu tinha baixado os 326 MB da versão 2.6.31 do kernel e visto os códigos dele por curiosidade, tenho uma ideia conceitual e sei pelo menos na teoria o que é um kernel, então vamos aos fatos...
Toda a polêmica se baseou naquela única frase, e praticamente desconsidera todo o resto da história - e eu particularmente também só sei do que é escrito, mas pra mim o contexto envolvido já é o suficiente pra entender o que realmente essa declaração significa. Primeiro, que o próprio Linus completou que esse inchaço não significa perda de performance no
Linux. Quando ele falou do inchaço e o classificou como assustador ele se referia ao tamanho do kernel, mais precisamente ao número de linhas de código de programação dentro dele, algo que hoje não é o que ele imaginava há 15 anos atrás no lançamento da primeira versão pública do GNU/Linux. Ele também não imaginava que o GNU/Linux se tornaria tão popular e tão portável.
Boa parte das pessoas classifica o GNU/Linux simplesmente em relação aos cerca de 1 a 3% de sua participação no mercado de PCs (e desse mercado mais de 50% dos Windows são, digamos, não "genuínos", principalmente por causa do preço, enquanto o GNU/Linux por ser livre é sempre legal e genuíno, e quando raramente é pago não é abusivamente caro), mas o fato é que o GNU/Linux ainda domina em servidores de rede e datacenter e roda em mais da metade dos smartphones do mundo, podendo ser instalado de relógios de pulso a poderosos e modernos mainframes, rodando com qualidade, segurança e performance singular em praticamente todo tipo de dispositivo, e atualmente até em Macs. Essa é a principal causa do crescimento exponencial do kernel, que a cada versão suporta mais e mais tipos de hardware, por isso cada novo recurso suportado requer mais e mais linhas de programação.
Hoje milhares de empresas desenvolvedoras de diversos tipos de dispositivos eletrônicos e componentes para computadores se interessam pelo GNU/Linux, o que fez com que o número de desenvolvedores envolvidos também se multiplicasse exponencialmente, levando centenas de milhares de programadores a colaborem hoje diretamente com o desenvolvimento do kernel, tudo isso para que o Linux possa rodar em novos dispositivos e arquiteturas que são lançados periodicamente, atendendo aos interesses dessas empresas e também dos usuários finais.
Daí o crescimento é inevitável, por isso que de 2005 pra cá o número de linhas do kernel duplicou, chegando hoje a mais de 11 milhões e meio, 66 vezes mais que a contagem da primeira versão de 15 anos atrás, e a maioria dessas novas linhas são justamente pra isso, suportar novos hardwares, tanto que hoje desse total praticamente menos 3% dessas novas linhas são "escritas" pelo próprio Linus, que hoje, junto com seu "alto-clero", mais coordena do que programa - o que também é muito bom - e o resto vem da colaboração dos desenvolvedores e empresas interessados ao redor do mundo.
Se formos falar apenas em números, esses 11 milhões e meio de linhas não são nada em relação ao kernel do Windows, que no Windows Vista ultrapassou a marca dos 50 milhões de linhas. E se a comparação for feita em megabytes então, a extensão dessa diferença é enormemente maior: no Windows Vista, compilado e instalado, só kernel, tirando todo o resto do sistema, ocupa cerca de 2 GB de espaço em disco, enquanto o kernel do Linux no Ubuntu, por exemplo, ocupa pouco mais do que 140 MB. É claro que o número de linhas de programação reflete no espaço ocupado e no comportamento de um sistema, porém o que está acontecendo com kernel Linux ainda não é motivo, e praticamente nunca será, para que os fiéis seguidores da Microsoft possam tripudiar sobre o GNU/Linux.
Análises apontam que desde o seu lançamento o Linux perdeu 12% de sua performance, porém, lembrando do quanto ele cresceu, o tipo e número de dispositivos atendidos que existiam na época em relação a hoje, colocando isso diante do Windows não há o que dizer - se eu comparar meu 486-DX 60 MHz, 8 MB de RAM, rodando MS-DOS 6.22 e Windows 3.11 de quase 15 anos atrás com o meu atual, compacto (e modesto) notebook DualCore 1.6 GHz com 1 GB de RAM (depois aumentei pra 2,5) que veio rodando Windows Vista Starter (depois passei pra uma versão Business do programa partner fornecido pela empresa na qual trabalhava) aí sim está algo a ser chamado de perda de performance (e olha que meu 486 antigo já travava com o 3.11 naquela época, mesmo sendo uma máquina boa, o que também acontece hoje, e até com mais frequência, com muitos DualCore novos com o Windows Vista - e até com o Seven, eu provei isso - mesmo sendo máquinas boas).
Eu mantive GNU/Linux e Windows nesse mesmo notebook por um tempo devido a uma questão de "demanda de mercado", eu ainda era "obrigado" a usar e desenvolver para Windows na minha máquina pessoal, até que chutei o balde, inclusive deixei alguns "projetos" de lado, mas a liberdade não tem preço - no fim das contas vi que estes "projetos" me davam muito prejuízo, e hoje só desenvolvo coisas novas pra GNU/Linux nos meus free-lances (ainda uso e desenvolvo pra Windows na empresa em que trabalho atualmente pois infelizmente a visão dela é deferente e ela está muito "presa" à plataforma Win32, mas isso é até útil pra eu perceber o quanto foi inteligente minha decisão pessoal de adotar o GNU/Linux em casa e nos projetos paralelos).